Commit 797a2d68 authored by unknown's avatar unknown

Merge trift2.:/MySQL/M51/mysql-5.1

into  trift2.:/MySQL/M51/push-5.1


configure.in:
  Auto merged
mysql-test/r/federated.result:
  Auto merged
mysql-test/t/federated.test:
  Auto merged
parents 321f392f db9df4c7
......@@ -153,6 +153,14 @@ IF(WIN32)
ADD_DEFINITIONS("-D_WINDOWS -D__WIN__ -D_CRT_SECURE_NO_DEPRECATE")
ENDIF(WIN32)
# This definition is necessary to work around a bug with Intellisense described
# here: http://tinyurl.com/2cb428. Syntax highlighting is important for proper
# debugger functionality.
IF(CMAKE_SIZEOF_VOID_P MATCHES 8)
MESSAGE(STATUS "Detected 64-bit platform.")
ADD_DEFINITIONS("-D_WIN64")
ENDIF(CMAKE_SIZEOF_VOID_P MATCHES 8)
IF(EMBED_MANIFESTS)
# Search for the tools (mt, makecat, signtool) necessary for embedding
# manifests and signing executables with the MySQL AB authenticode cert.
......
......@@ -113,6 +113,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
......@@ -1239,11 +1241,27 @@ static void restore_time_zone(FILE *sql_file,
}
/**
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'",
......@@ -1457,11 +1475,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.
......
......@@ -199,7 +199,7 @@ do
;;
*)
AC_MSG_ERROR([Charset '$cs' not available. (Available are: $CHARSETS_AVAILABLE).
See the Installation chapter in the Reference Manual.]);
See the Installation chapter in the Reference Manual.])
esac
done
......@@ -380,7 +380,7 @@ case $default_charset in
;;
*)
AC_MSG_ERROR([Charset $cs not available. (Available are: $CHARSETS_AVAILABLE).
See the Installation chapter in the Reference Manual.]);
See the Installation chapter in the Reference Manual.])
esac
if test "$default_collation" = default; then
......@@ -405,7 +405,7 @@ else
Collation $default_collation is not valid for character set $default_charset.
Valid collations are: $default_charset_collations.
See the Installation chapter in the Reference Manual.
]);
])
fi
AC_DEFINE_UNQUOTED([MYSQL_DEFAULT_CHARSET_NAME], ["$default_charset"],
......
......@@ -2,9 +2,9 @@ dnl ---------------------------------------------------------------------------
dnl Macro: MYSQL_CHECK_NDBCLUSTER
dnl ---------------------------------------------------------------------------
NDB_VERSION_MAJOR=`echo $MYSQL_NO_DASH_VERSION | cut -d. -f1`
NDB_VERSION_MINOR=`echo $MYSQL_NO_DASH_VERSION | cut -d. -f2`
NDB_VERSION_BUILD=`echo $MYSQL_NO_DASH_VERSION | cut -d. -f3`
NDB_VERSION_MAJOR=`echo $MYSQL_NUMERIC_VERSION | cut -d. -f1`
NDB_VERSION_MINOR=`echo $MYSQL_NUMERIC_VERSION | cut -d. -f2`
NDB_VERSION_BUILD=`echo $MYSQL_NUMERIC_VERSION | cut -d. -f3`
NDB_VERSION_STATUS=`echo $VERSION | sed 's/^[[-.0-9]]*//'`
TEST_NDBCLUSTER=""
......
......@@ -631,7 +631,7 @@ case $SYSTEM_TYPE in
esac
if test "$CXX_VERSION"
then
AC_MSG_CHECKING("C++ compiler version");
AC_MSG_CHECKING("C++ compiler version")
AC_MSG_RESULT("$CXX $CXX_VERSION")
fi
AC_SUBST(CXX_VERSION)
......
......@@ -23,9 +23,19 @@ NDB_SHARED_LIB_VERSION=$NDB_SHARED_LIB_MAJOR_VERSION:0:0
# Set all version vars based on $VERSION. How do we do this more elegant ?
# Remember that regexps needs to quote [ and ] since this is run through m4
MYSQL_NO_DASH_VERSION=`echo $VERSION | sed -e "s|[[a-z]]*-.*$||"`
MYSQL_BASE_VERSION=`echo $MYSQL_NO_DASH_VERSION | sed -e "s|\.[[^.]]*$||"`
MYSQL_VERSION_ID=`echo $MYSQL_NO_DASH_VERSION | sed -e 's|[[^0-9.]].*$||;s|$|.|' | sed -e 's/[[^0-9.]]//g; s/\./ /g; s/ \([[0-9]]\) / 0\\1 /g; s/ //g'`
# We take some made up examples
#
# VERSION 5.1.40sp1-alpha 5.0.34a
# MYSQL_NO_DASH_VERSION 5.1.40sp1 5.0.34a
# MYSQL_NUMERIC_VERSION 5.1.40 5.0.34
# MYSQL_BASE_VERSION 5.1 5.0
# MYSQL_VERSION_ID 50140 50034
#
MYSQL_NO_DASH_VERSION=`echo $VERSION | sed -e "s|-.*$||"`
MYSQL_NUMERIC_VERSION=`echo $MYSQL_NO_DASH_VERSION | sed -e "s|[[a-z]][[a-z0-9]]*$||"`
MYSQL_BASE_VERSION=`echo $MYSQL_NUMERIC_VERSION | sed -e "s|\.[[^.]]*$||"`
MYSQL_VERSION_ID=`echo $MYSQL_NUMERIC_VERSION | \
awk -F. '{printf "%d%0.2d%0.2d", $1, $2, $3}'`
# Add previous major version for debian package upgrade path
MYSQL_PREVIOUS_BASE_VERSION=5.0
......
......@@ -260,71 +260,6 @@ inline double ulonglong2double(ulonglong value)
#define STACK_DIRECTION -1
/* Optimized store functions for Intel x86 */
#ifndef _WIN64
#define sint2korr(A) (*((int16 *) (A)))
#define sint3korr(A) ((int32) ((((uchar) (A)[2]) & 128) ? \
(((uint32) 255L << 24) | \
(((uint32) (uchar) (A)[2]) << 16) |\
(((uint32) (uchar) (A)[1]) << 8) | \
((uint32) (uchar) (A)[0])) : \
(((uint32) (uchar) (A)[2]) << 16) |\
(((uint32) (uchar) (A)[1]) << 8) | \
((uint32) (uchar) (A)[0])))
#define sint4korr(A) (*((long *) (A)))
#define uint2korr(A) (*((uint16 *) (A)))
/*
ATTENTION !
Please, note, uint3korr reads 4 bytes (not 3) !
It means, that you have to provide enough allocated space !
*/
#define uint3korr(A) (long) (*((unsigned int *) (A)) & 0xFFFFFF)
#define uint4korr(A) (*((unsigned long *) (A)))
#define uint5korr(A) ((ulonglong)(((uint32) ((uchar) (A)[0])) +\
(((uint32) ((uchar) (A)[1])) << 8) +\
(((uint32) ((uchar) (A)[2])) << 16) +\
(((uint32) ((uchar) (A)[3])) << 24)) +\
(((ulonglong) ((uchar) (A)[4])) << 32))
#define uint6korr(A) ((ulonglong)(((uint32) ((uchar) (A)[0])) + \
(((uint32) ((uchar) (A)[1])) << 8) + \
(((uint32) ((uchar) (A)[2])) << 16) + \
(((uint32) ((uchar) (A)[3])) << 24)) + \
(((ulonglong) ((uchar) (A)[4])) << 32) + \
(((ulonglong) ((uchar) (A)[5])) << 40))
#define uint8korr(A) (*((ulonglong *) (A)))
#define sint8korr(A) (*((longlong *) (A)))
#define int2store(T,A) *((uint16*) (T))= (uint16) (A)
#define int3store(T,A) { *(T)= (uchar) ((A));\
*(T+1)=(uchar) (((uint) (A) >> 8));\
*(T+2)=(uchar) (((A) >> 16)); }
#define int4store(T,A) *((long *) (T))= (long) (A)
#define int5store(T,A) { *(T)= (uchar)((A));\
*((T)+1)=(uchar) (((A) >> 8));\
*((T)+2)=(uchar) (((A) >> 16));\
*((T)+3)=(uchar) (((A) >> 24)); \
*((T)+4)=(uchar) (((A) >> 32)); }
#define int6store(T,A) { *(T) =(uchar)((A)); \
*((T)+1)=(uchar) (((A) >> 8)); \
*((T)+2)=(uchar) (((A) >> 16)); \
*((T)+3)=(uchar) (((A) >> 24)); \
*((T)+4)=(uchar) (((A) >> 32)); \
*((T)+5)=(uchar) (((A) >> 40)); }
#define int8store(T,A) *((ulonglong *) (T))= (ulonglong) (A)
#define doubleget(V,M) do { *((long *) &V) = *((long*) M); \
*(((long *) &V)+1) = *(((long*) M)+1); } while(0)
#define doublestore(T,V) do { *((long *) T) = *((long*) &V); \
*(((long *) T)+1) = *(((long*) &V)+1); } while(0)
#define float4get(V,M) { *((long *) &(V)) = *((long*) (M)); }
#define floatstore(T,V) memcpy((uchar*)(T), (uchar*)(&V), sizeof(float))
#define floatget(V,M) memcpy((uchar*)(&V), (uchar*)(M), sizeof(float))
#define float8get(V,M) doubleget((V),(M))
#define float4store(V,M) memcpy((uchar*) V,(uchar*) (&M),sizeof(float))
#define float8store(V,M) doublestore((V),(M))
#endif /* _WIN64 */
#define HAVE_PERROR
#define HAVE_VFPRINT
#define HAVE_RENAME /* Have rename() as function */
......
......@@ -1140,7 +1140,7 @@ typedef char bool; /* Ordinary boolean values 0 1 */
*/
/* Optimized store functions for Intel x86 */
#if defined(__i386__) && !defined(_WIN64)
#if defined(__i386__) || defined(_WIN32)
#define sint2korr(A) (*((int16 *) (A)))
#define sint3korr(A) ((int32) ((((uchar) (A)[2]) & 128) ? \
(((uint32) 255L << 24) | \
......@@ -1152,7 +1152,7 @@ typedef char bool; /* Ordinary boolean values 0 1 */
((uint32) (uchar) (A)[0])))
#define sint4korr(A) (*((long *) (A)))
#define uint2korr(A) (*((uint16 *) (A)))
#ifdef HAVE_purify
#if defined(HAVE_purify) && !defined(_WIN32)
#define uint3korr(A) (uint32) (((uint32) ((uchar) (A)[0])) +\
(((uint32) ((uchar) (A)[1])) << 8) +\
(((uint32) ((uchar) (A)[2])) << 16))
......@@ -1164,7 +1164,7 @@ typedef char bool; /* Ordinary boolean values 0 1 */
It means, that you have to provide enough allocated space !
*/
#define uint3korr(A) (long) (*((unsigned int *) (A)) & 0xFFFFFF)
#endif
#endif /* HAVE_purify && !_WIN32 */
#define uint4korr(A) (*((uint32 *) (A)))
#define uint5korr(A) ((ulonglong)(((uint32) ((uchar) (A)[0])) +\
(((uint32) ((uchar) (A)[1])) << 8) +\
......@@ -1215,9 +1215,8 @@ do { doubleget_union _tmp; \
#define floatstore(T,V) memcpy((uchar*)(T), (uchar*)(&V),sizeof(float))
#define floatget(V,M) memcpy((uchar*) &V,(uchar*) (M),sizeof(float))
#define float8store(V,M) doublestore((V),(M))
#endif /* __i386__ */
#else
#ifndef sint2korr
/*
We're here if it's not a IA-32 architecture (Win32 and UNIX IA-32 defines
were done before)
......@@ -1356,7 +1355,7 @@ do { doubleget_union _tmp; \
#define float8store(V,M) doublestore((V),(M))
#endif /* WORDS_BIGENDIAN */
#endif /* sint2korr */
#endif /* __i386__ OR _WIN32 */
/*
Macro for reading 32-bit integer from network byte order (big-endian)
......
......@@ -21,13 +21,14 @@ MYSQLDATAdir = $(localstatedir)
MYSQLSHAREdir = $(pkgdatadir)
MYSQLBASEdir= $(prefix)
MYSQLLIBdir= $(libdir)
pkgplugindir = $(pkglibdir)/plugin
EXTRA_DIST = libmysqld.def CMakeLists.txt
DEFS = -DEMBEDDED_LIBRARY -DMYSQL_SERVER \
-DDEFAULT_MYSQL_HOME="\"$(MYSQLBASEdir)\"" \
-DDATADIR="\"$(MYSQLDATAdir)\"" \
-DSHAREDIR="\"$(MYSQLSHAREdir)\"" \
-DLIBDIR="\"$(MYSQLLIBdir)\""
-DPLUGINDIR="\"$(pkgplugindir)\""
INCLUDES= -I$(top_builddir)/include -I$(top_srcdir)/include \
-I$(top_builddir)/sql -I$(top_srcdir)/sql \
-I$(top_srcdir)/sql/examples \
......
......@@ -107,4 +107,15 @@ Error 1146 Table 'mysql.proc' doesn't exist
# -- End of Bug#29958.
# --
create database mysqltestbug26703;
use mysqltestbug26703;
create table `#mysql50#abc``def` ( id int );
create table `aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa` (a int);
ERROR 42000: Incorrect table name 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
create table `aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa` (a int);
create table `#mysql50#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa` (a int);
create table `#mysql50#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa` (a int);
ERROR 42000: Incorrect table name '#mysql50#aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
use test;
drop database mysqltestbug26703;
End of 5.1 tests
......@@ -14,6 +14,9 @@ Warnings:
Note 1051 Unknown table 't1'
CREATE TABLE federated.t1 (
`id` int(20) NOT NULL,
`group` int NOT NULL default 0,
`a\\b` int NOT NULL default 0,
`a\\` int NOT NULL default 0,
`name` varchar(32) NOT NULL default ''
)
DEFAULT CHARSET=latin1;
......@@ -22,6 +25,9 @@ Warnings:
Note 1051 Unknown table 't1'
CREATE TABLE federated.t1 (
`id` int(20) NOT NULL,
`group` int NOT NULL default 0,
`a\\b` inT NOT NULL default 0,
`a\\` int NOT NULL default 0,
`name` varchar(32) NOT NULL default ''
)
ENGINE="FEDERATED" DEFAULT CHARSET=latin1
......@@ -29,6 +35,9 @@ CONNECTION='mysql://root@127.0.0.1:@/too/many/items/federated/t1';
ERROR HY000: Can't create federated table. The data source connection string 'mysql://root@127.0.0.1:@/too/many/items/federated/t1' is not in the correct format
CREATE TABLE federated.t1 (
`id` int(20) NOT NULL,
`group` int NOT NULL default 0,
`a\\b` iNt NOT NULL default 0,
`a\\` int NOT NULL default 0,
`name` varchar(32) NOT NULL default ''
)
ENGINE="FEDERATED" DEFAULT CHARSET=latin1
......@@ -36,6 +45,9 @@ CONNECTION='mysql://root@127.0.0.1';
ERROR HY000: Can't create federated table. The data source connection string 'mysql://root@127.0.0.1' is not in the correct format
CREATE TABLE federated.t1 (
`id` int(20) NOT NULL,
`group` int NOT NULL default 0,
`a\\b` iNT NOT NULL default 0,
`a\\` int NOT NULL default 0,
`name` varchar(32) NOT NULL default ''
)
ENGINE="FEDERATED" DEFAULT CHARSET=latin1
......@@ -45,6 +57,9 @@ ERROR HY000: The foreign data source you are trying to reference does not exist.
DROP TABLE federated.t1;
CREATE TABLE federated.t1 (
`id` int(20) NOT NULL,
`group` int NOT NULL default 0,
`a\\b` Int NOT NULL default 0,
`a\\` int NOT NULL default 0,
`name` varchar(32) NOT NULL default ''
)
ENGINE="FEDERATED" DEFAULT CHARSET=latin1
......@@ -54,16 +69,25 @@ ERROR HY000: Unable to connect to foreign data source: Access denied for user 'u
DROP TABLE federated.t1;
CREATE TABLE federated.t1 (
`id` int(20) NOT NULL,
`group` int NOT NULL default 0,
`a\\b` InT NOT NULL default 0,
`a\\` int NOT NULL default 0,
`name` varchar(32) NOT NULL default ''
)
ENGINE="FEDERATED" DEFAULT CHARSET=latin1
CONNECTION='mysql://root@127.0.0.1:SLAVE_PORT/federated/t1';
INSERT INTO federated.t1 (id, name) VALUES (1, 'foo');
INSERT INTO federated.t1 (id, name) VALUES (2, 'fee');
INSERT INTO federated.t1 (id, `group`) VALUES (3, 42);
INSERT INTO federated.t1 (id, `a\\b`) VALUES (4, 23);
INSERT INTO federated.t1 (id, `a\\`) VALUES (5, 1);
SELECT * FROM federated.t1;
id name
1 foo
2 fee
id group a\\b a\\ name
1 0 0 0 foo
2 0 0 0 fee
3 42 0 0
4 0 23 0
5 0 0 1
DELETE FROM federated.t1;
DROP TABLE federated.t1;
DROP TABLE IF EXISTS federated.t2;
......
......@@ -1306,4 +1306,43 @@ DROP DATABASE mysqltest1;
RENAME TABLE mysql.procs_gone TO mysql.procs_priv;
DROP USER mysqltest_1@localhost;
FLUSH PRIVILEGES;
CREATE DATABASE dbbug33464;
CREATE USER 'userbug33464'@'localhost';
GRANT CREATE ROUTINE ON dbbug33464.* TO 'userbug33464'@'localhost';
userbug33464@localhost dbbug33464
DROP PROCEDURE IF EXISTS sp3;
DROP FUNCTION IF EXISTS fn1;
CREATE PROCEDURE sp3(v1 char(20))
BEGIN
SELECT * from dbbug33464.t6 where t6.f2= 'xyz';
END//
CREATE FUNCTION fn1() returns char(50) SQL SECURITY INVOKER
BEGIN
return 1;
END//
CREATE FUNCTION fn2() returns char(50) SQL SECURITY DEFINER
BEGIN
return 2;
END//
USE dbbug33464;
root@localhost dbbug33464
SELECT fn1();
fn1()
1
SELECT fn2();
fn2()
2
DROP USER 'userbug33464'@'localhost';
DROP FUNCTION fn1;
Warnings:
Warning 1403 There is no such grant defined for user 'userbug33464' on host 'localhost' on routine 'fn1'
DROP FUNCTION fn2;
Warnings:
Warning 1403 There is no such grant defined for user 'userbug33464' on host 'localhost' on routine 'fn2'
DROP PROCEDURE sp3;
DROP USER 'userbug33464'@'localhost';
use test;
DROP DATABASE dbbug33464;
End of 5.1 tests
......@@ -3245,3 +3245,22 @@ where table_schema='test' and table_name = 't1';
table_comment data_free_is_set
this is a comment 1
drop table t1;
CREATE TABLE t1 (
c1 INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
c2 VARCHAR(128) NOT NULL,
PRIMARY KEY(c1)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=100;
CREATE TABLE t2 (
c1 INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
c2 INT(10) UNSIGNED DEFAULT NULL,
PRIMARY KEY(c1)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=200;
SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE table_name = 't2';
AUTO_INCREMENT
200
ALTER TABLE t2 ADD CONSTRAINT t1_t2_1 FOREIGN KEY(c1) REFERENCES t1(c1);
SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE table_name = 't2';
AUTO_INCREMENT
200
DROP TABLE t2;
DROP TABLE t1;
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
=========================
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.
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).
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
3. Some hints:
- SHOW TABLES ... LIKE '<pattern>'
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'
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.
Any database not in ('mysql','test') and any tables
needed within a testcase ( t/<storage engine>_<test filed>.test )
will be (re)created at the beginning of the test.
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
All databases and tables will be (re)created by the script
<storage engine>__load.test .
6. I am not sure of the files
./funcs_1/include/create_<whatever>.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 <storage>_triggers.test files based on Matthias's
structure above.
3. Added three <storage>__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 <storage_engine>_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_<engine> testcases have been changed in nearly
all occurrencies of --error <n> 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_<engine>.result files after the change that added 2 columns to
the VIEWS table (DEFINER varchar(77), SECURITY_TYPE varchar(7)).
===================================================================
Matthias 25.08.2007
-------------------
Data dictionary tests:
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.
6. Note about new Bug#30689 at the beginning of the test.
The files with expected results contain incomplete result sets.
7. Fix the NDB variant of the data dictionary test (ndb__datadict) as far as
it was necessary for the bug fixes mentioned above.
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
the data dictionary test into a storage engine specific part and
a non storage engine specific part in future.
# 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';
#### suite/funcs_1/datadict/datadict_tables.inc
#### 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:
# --source suite/funcs_1/datadict/datadict_tables_err_<no>.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
# 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 1051
--error ER_DBACCESS_DENIED_ERROR
eval $dd_part1 schemata $dd_part2;
--error 1051
--error ER_DBACCESS_DENIED_ERROR
eval $dd_part1 tables $dd_part2;
--error 1051
--error ER_DBACCESS_DENIED_ERROR
eval $dd_part1 columns $dd_part2;
--error 1051
--error ER_DBACCESS_DENIED_ERROR
eval $dd_part1 character_sets $dd_part2;
--error 1051
--error ER_DBACCESS_DENIED_ERROR
eval $dd_part1 collations $dd_part2;
--error 1051
--error ER_DBACCESS_DENIED_ERROR
eval $dd_part1 collation_character_set_applicability $dd_part2;
--error 1051
--error ER_DBACCESS_DENIED_ERROR
eval $dd_part1 routines $dd_part2;
--error 1051
--error ER_DBACCESS_DENIED_ERROR
eval $dd_part1 statistics $dd_part2;
--error 1051
--error ER_DBACCESS_DENIED_ERROR
eval $dd_part1 views $dd_part2;
--error 1051
--error ER_DBACCESS_DENIED_ERROR
eval $dd_part1 user_privileges $dd_part2;
--error 1051
--error ER_DBACCESS_DENIED_ERROR
eval $dd_part1 schema_privileges $dd_part2;
--error 1051
--error ER_DBACCESS_DENIED_ERROR
eval $dd_part1 table_privileges $dd_part2;
--error 1051
--error ER_DBACCESS_DENIED_ERROR
eval $dd_part1 column_privileges $dd_part2;
--error 1051
--error ER_DBACCESS_DENIED_ERROR
eval $dd_part1 table_constraints $dd_part2;
--error 1051
--error ER_DBACCESS_DENIED_ERROR
eval $dd_part1 key_column_usage $dd_part2;
--error 1051
--error ER_DBACCESS_DENIED_ERROR
eval $dd_part1 triggers $dd_part2;
#### 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%';
# 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 <number>
# (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 <number>
# (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;
# suite/funcs_1/datadict/is_columns.inc
#
# Auxiliary script to be sourced by
# is_columns_is
# is_columns_mysql
# is_columns_<engine>
#
# 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;
#### 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 <whatever>_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 <SERVER_NAME>
let $SERVER_NAME= `SELECT DISTINCT host FROM mysql.user
WHERE host NOT In ("localhost", "127.0.0.1", "%")`;
--enable_query_log
......@@ -71,67 +71,51 @@ let $engine_ndb= `SELECT @ENGINE_NDB = 1`;
# Note: The NDB variant with their own tb1 - tb4 tables is not ready for use.
let $engine_ndb= 0;
# 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;
--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_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_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
}
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_ndb)
{
--source suite/funcs_1/include/ndb_tb1.inc
--source suite/funcs_1/include/ndb_tb2.inc
--source suite/funcs_1/include/ndb_tb3.inc
--source suite/funcs_1/include/ndb_tb4.inc
USE test1;
--source suite/funcs_1/include/ndb_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
if ($engine_ndb)
{
--source suite/funcs_1/include/ndb_tb1.inc
--source suite/funcs_1/include/ndb_tb2.inc
--source suite/funcs_1/include/ndb_tb3.inc
--source suite/funcs_1/include/ndb_tb4.inc
USE test1;
--source suite/funcs_1/include/ndb_tb2.inc
}
USE test;
--source suite/funcs_1/include/sp_tb.inc
This diff is collapsed.
#### suite/funcs_1/datadict/datadict_show_schema.test
# shows content of tables from INFORMATION_SCHEMA
# usage:
# let $message= <a message for the .result file>;
# let $dbname= <prefix_of_a_cb_name>;
# --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 <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%';
#### 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= <name of one of the tables>;
# --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;
#### 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 <Created> 17 <Last_Altered>
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_<errno>.test !
--error 1109
eval $dd_part1 parameters $dd_part2;
--error 0,1109
eval $dd_part1 referential_constraints $dd_part2;
#### 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
#### suite/funcs_1/datadict/datadict_tables.inc
# contains all tables from INFORMATION_SCHEMA
# usage:
# --source suite/funcs_1/datadict/datadict_tables_err_<no>.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;
#### suite/funcs_1/datadict/datadict_tables_error_1044.inc
# contains all tables from INFORMATION_SCHEMA
# usage:
# --source suite/funcs_1/datadict/datadict_tables_err_<no>.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;
#### suite/funcs_1/datadict/datadict_tables.inc
# contains all tables from INFORMATION_SCHEMA
# usage:
# --source suite/funcs_1/datadict/datadict_tables_err_<no>.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;
#### suite/funcs_1/datadict/datadict_tables.inc
# contains all tables from INFORMATION_SCHEMA
# usage:
# --source suite/funcs_1/datadict/datadict_tables_err_<no>.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;
#### suite/funcs_1/datadict/datadict_tables.inc
# contains all tables from INFORMATION_SCHEMA
# usage:
# --source suite/funcs_1/datadict/datadict_tables_err_<no>.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;
# 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;
......@@ -112,11 +112,11 @@ connect (con100,localhost,ddicttestuser1,ddictpass,information_schema);
--echo ####################################################################################
connection default;
eval SHOW CREATE TABLE $table;
--replace_column 6 TIME
--replace_column 1 ID 6 TIME
eval SHOW $table;
--replace_column 6 TIME
--replace_column 1 ID 6 TIME
eval SELECT * FROM $table $select_where ORDER BY id;
--replace_column 6 TIME
--replace_column 1 ID 6 TIME
eval SELECT $columns FROM $table $select_where ORDER BY id;
--source suite/funcs_1/datadict/datadict_priv.inc
--real_sleep 0.3
......@@ -128,11 +128,11 @@ connection con100;
--echo SHOW/SELECT shows only the processes (1) of the user.
--echo ####################################################################################
eval SHOW CREATE TABLE $table;
--replace_column 6 TIME
--replace_column 1 ID 6 TIME
eval SHOW $table;
--replace_column 6 TIME
--replace_column 1 ID 6 TIME
eval SELECT * FROM $table $select_where ORDER BY id;
--replace_column 6 TIME
--replace_column 1 ID 6 TIME
eval SELECT $columns FROM $table $select_where ORDER BY id;
--source suite/funcs_1/datadict/datadict_priv.inc
--real_sleep 0.3
......@@ -154,9 +154,9 @@ GRANT PROCESS ON *.* TO ddicttestuser1@'localhost' IDENTIFIED BY 'ddictpass';
--echo ####################################################################################
connection con100;
SHOW GRANTS;
--replace_column 6 TIME
--replace_column 1 ID 6 TIME
SHOW processlist;
--replace_column 6 TIME
--replace_column 1 ID 6 TIME
SELECT * FROM information_schema.processlist;
--real_sleep 0.3
......@@ -166,9 +166,9 @@ SELECT * FROM information_schema.processlist;
--echo ####################################################################################
connect (con101,localhost,ddicttestuser1,ddictpass,information_schema);
SHOW GRANTS;
--replace_column 6 TIME
--replace_column 1 ID 6 TIME
SHOW processlist;
--replace_column 6 TIME
--replace_column 1 ID 6 TIME
SELECT * FROM information_schema.processlist;
--real_sleep 0.3
......@@ -188,9 +188,9 @@ GRANT PROCESS ON *.* TO ''@'localhost';
--echo ####################################################################################
connect (anonymous1,localhost,'',,information_schema);
SHOW GRANTS;
--replace_column 6 TIME
--replace_column 1 ID 6 TIME
SHOW processlist;
--replace_column 6 TIME
--replace_column 1 ID 6 TIME
SELECT * FROM information_schema.processlist;
--real_sleep 0.3
......@@ -210,9 +210,9 @@ connect (con102,localhost,ddicttestuser1,ddictpass,information_schema);
--echo ddicttestuser1 are visible.
--echo ####################################################################################
SHOW GRANTS;
--replace_column 6 TIME
--replace_column 1 ID 6 TIME
SHOW processlist;
--replace_column 6 TIME
--replace_column 1 ID 6 TIME
SELECT * FROM information_schema.processlist;
--real_sleep 0.3
......@@ -235,10 +235,10 @@ SHOW GRANTS FOR ''@'localhost';
if ($fixed_bug_30395)
{
# Bug#30395 strange results after REVOKE PROCESS ON *.* FROM ...
--replace_column 6 TIME
--replace_column 1 ID 6 TIME
SHOW processlist;
}
--replace_column 6 TIME
--replace_column 1 ID 6 TIME
SELECT * FROM information_schema.processlist;
--real_sleep 0.3
......@@ -257,9 +257,9 @@ connect (con103,localhost,ddicttestuser1,ddictpass,information_schema);
--echo Only the processes of ddicttestuser1 user are visible.
--echo ####################################################################################
SHOW GRANTS FOR 'ddicttestuser1'@'localhost';
--replace_column 6 TIME
--replace_column 1 ID 6 TIME
SHOW processlist;
--replace_column 6 TIME
--replace_column 1 ID 6 TIME
SELECT * FROM information_schema.processlist;
--real_sleep 0.3
......@@ -279,9 +279,9 @@ connect (con104,localhost,ddicttestuser1,ddictpass,information_schema);
--echo Only the processes of ddicttestuser1 are visible.
--echo ####################################################################################
SHOW GRANTS FOR 'ddicttestuser1'@'localhost';
--replace_column 6 TIME
--replace_column 1 ID 6 TIME
SHOW processlist;
--replace_column 6 TIME
--replace_column 1 ID 6 TIME
SELECT * FROM information_schema.processlist;
--real_sleep 0.3
......@@ -326,9 +326,9 @@ connect (con200,localhost,ddicttestuser2,ddictpass,information_schema);
--echo ddicttestuser2 has now the PROCESS privilege and sees all connections
--echo ####################################################################################
SHOW GRANTS FOR 'ddicttestuser2'@'localhost';
--replace_column 6 TIME
--replace_column 1 ID 6 TIME
SHOW processlist;
--replace_column 6 TIME
--replace_column 1 ID 6 TIME
SELECT * FROM information_schema.processlist;
--real_sleep 0.3
......@@ -347,9 +347,9 @@ connect (con201,localhost,ddicttestuser2,ddictpass,information_schema);
--echo ddicttestuser2 has no more the PROCESS privilege and can only see own connects
--echo ####################################################################################
SHOW GRANTS;
--replace_column 6 TIME
--replace_column 1 ID 6 TIME
SHOW processlist;
--replace_column 6 TIME
--replace_column 1 ID 6 TIME
SELECT * FROM information_schema.processlist;
--real_sleep 0.3
......@@ -370,9 +370,9 @@ connect (con107,localhost,ddicttestuser1,ddictpass,information_schema);
SHOW GRANTS FOR 'ddicttestuser1'@'localhost';
--error ER_ACCESS_DENIED_ERROR
GRANT PROCESS ON *.* TO 'ddicttestuser2'@'localhost';
--replace_column 6 TIME
--replace_column 1 ID 6 TIME
SHOW processlist;
--replace_column 6 TIME
--replace_column 1 ID 6 TIME
SELECT * FROM information_schema.processlist;
--real_sleep 0.3
......@@ -394,9 +394,9 @@ connect (con108,localhost,ddicttestuser1,ddictpass,information_schema);
--echo Therefore the missing SELECT privilege does not affect SELECTs on PROCESSLIST.
--echo ####################################################################################
SHOW GRANTS FOR 'ddicttestuser1'@'localhost';
--replace_column 6 TIME
--replace_column 1 ID 6 TIME
SHOW processlist;
--replace_column 6 TIME
--replace_column 1 ID 6 TIME
SELECT * FROM information_schema.processlist;
--real_sleep 0.3
......
......@@ -306,3 +306,4 @@ connection default;
--echo ----- close connection ddicttestuser1 -----
disconnect ddicttestuser1;
DROP USER ddicttestuser1@'localhost';
DROP TABLE test.t1;
# suite/funcs_1/datadict/statistics.inc
#
# Auxiliary script to be sourced by
# is_statistics_is
# is_statistics_mysql
# is_statistics_<engine>
#
# 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;
# 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;
# suite/funcs_1/datadict/tables1.inc
#
# Auxiliary script to be sourced by
# is_tables_mysql.test
# is_tables_is.test
# is_tables_<engine>.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;
# 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: <number>" appended
# + InnoDB: "InnoDB free: <number_kB> kB" appended
# <number_kB> 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
# 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;
##### suite/funcs_1/include/create_database.inc
--disable_warnings
eval DROP DATABASE IF EXISTS $new_database;
--enable_warnings
eval CREATE DATABASE $new_database;
##### suite/funcs_1/include/create_user_no_priv.inc
#
# $new_user must contain the name (with @<host> 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;
##### suite/funcs_1/include/create_user_no_super.inc
#
# $new_user must contain the name (with @<host> 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;
##### 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
......
##### 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
......
##### 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
......
##### 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
......
--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
......
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
cp1250_polish_ci cp1250 99 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
cp1250_polish_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
filename filename
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;
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
cp1250_polish_ci cp1250 99 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
cp1250_polish_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
filename filename
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;
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;
DELETE FROM mysql.help_category LIMIT <number>;
DELETE FROM mysql.help_keyword LIMIT <number>;
DELETE FROM mysql.help_relation LIMIT <number>;
DELETE FROM mysql.help_topic LIMIT <number>;
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
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
This diff is collapsed.
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
--------------------------------------------------------------------------------
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
--------------------------------------------------------------------------------
--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
--------------------------------------------------------------------------------
......
--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
--------------------------------------------------------------------------------
......
--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
--------------------------------------------------------------------------------
......
--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
--------------------------------------------------------------------------------
......
--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
--------------------------------------------------------------------------------
......
--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
--------------------------------------------------------------------------------
......
SET @NO_REFRESH = IF( '' = '', 0, 1);
USE test;
drop table if exists tb3 ;
create table tb3 (
......@@ -367,3 +366,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;
SET @NO_REFRESH = IF( '' = '', 0, 1);
USE test;
drop table if exists tb3 ;
create table tb3 (
......@@ -698,3 +697,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;
SET @NO_REFRESH = IF( '' = '', 0, 1);
USE test;
Testcase for db level:
......
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;
SET @NO_REFRESH = IF( '' = '', 0, 1);
USE test;
drop table if exists tb3 ;
create table tb3 (
......@@ -534,3 +533,4 @@ ERROR HY000: Explicit or implicit commit is not allowed in stored function or tr
drop user test_general@localhost;
drop user test_general;
drop user test_super@localhost;
DROP TABLE test.tb3;
SET @NO_REFRESH = IF( '' = '', 0, 1);
USE test;
drop table if exists tb3 ;
create table tb3 (
......@@ -270,3 +269,4 @@ drop trigger trg6c;
Testcase 3.5.9.14: (implied in previous tests)
----------------------------------------------
DROP TABLE test.tb3;
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;
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;
This diff is collapsed.
SET @NO_REFRESH = IF( '' = '', 0, 1);
USE test;
drop table if exists tb2 ;
create table tb2 (
......@@ -22896,4 +22895,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;
This diff is collapsed.
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;
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;
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;
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
SELECT * FROM information_schema.engines
WHERE ENGINE = 'ARCHIVE';
ENGINE ARCHIVE
SUPPORT YES
COMMENT Archive storage engine
TRANSACTIONS NO
XA NO
SAVEPOINTS NO
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
This diff is collapsed.
This diff is collapsed.
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
File mode changed from 100755 to 100644
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment