初版
This commit is contained in:
54
build/lib/mysql/mysql-test/suite/funcs_1/README.txt
Normal file
54
build/lib/mysql/mysql-test/suite/funcs_1/README.txt
Normal file
@@ -0,0 +1,54 @@
|
||||
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 for maintainers of this suite:
|
||||
- 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'
|
||||
- Try to unify results by
|
||||
--replace_result $engine_type <engine_to_be_tested>
|
||||
if we could expect that the results for storage engine variants of a
|
||||
test differ only in the engine names.
|
||||
This makes future maintenance easier.
|
||||
- Avoid the use of include/show_msg*.inc.
|
||||
They produce "SQL" noise which annoys during server debugging and can be
|
||||
easy replaced by "--echo ...".
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
#### suite/funcs_1/bitdata/bitdata_master.test
|
||||
|
||||
let $message= NOT YET IMPLEMENTED: bitdata tests;
|
||||
--source include/show_msg80.inc
|
||||
|
||||
exit;
|
||||
@@ -0,0 +1,3 @@
|
||||
#### suite/funcs_1/cursors/cursors_master.test
|
||||
let $message= NOT YET IMPLEMENTED: cursor tests;
|
||||
--source include/show_msg80.inc
|
||||
@@ -0,0 +1,53 @@
|
||||
# suite/funcs_1/datadict/basics_mixed1.inc
|
||||
#
|
||||
# Auxiliary script to be sourced by suite/funcs_1/t/is_basics_mixed.test
|
||||
#
|
||||
# Author:
|
||||
# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of
|
||||
# testsuite funcs_1
|
||||
# Create this script based on older scripts and new code.
|
||||
#
|
||||
|
||||
# 1 Attempt to create tables and views when residing in information_schema
|
||||
# 1.1 CREATE TABLE
|
||||
USE information_schema;
|
||||
let $message= root: create a table with a name of an IS table directly in IS;
|
||||
let $dd_part1= CREATE TABLE;
|
||||
let $dd_part2= ( c1 INT );
|
||||
--source suite/funcs_1/datadict/basics_mixed2.inc
|
||||
# FIXME 3.2.1.6: error message ER_UNKNOWN_TABLE is misleading
|
||||
--error ER_UNKNOWN_TABLE
|
||||
CREATE TABLE t1 (f1 INT, f2 INT, f3 INT);
|
||||
#
|
||||
# 1.2 CREATE VIEW
|
||||
# 1.2.1 Hit on existing INFORMATION_SCHEMA table
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
CREATE VIEW tables AS SELECT 'garbage';
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
CREATE VIEW tables AS SELECT * FROM information_schema.tables;
|
||||
# 1.2.2 New view
|
||||
# ER_DBACCESS_DENIED_ERROR would be better.
|
||||
--error ER_UNKNOWN_TABLE
|
||||
CREATE VIEW v1 AS SELECT 'garbage';
|
||||
|
||||
# 2 Attempt to create tables and views when residing in information_schema
|
||||
# 1.1 CREATE TABLE
|
||||
USE test;
|
||||
let $message= root: create a table with a name of an IS table from other db;
|
||||
let $dd_part1= CREATE TABLE information_schema.;
|
||||
let $dd_part2= ( c1 INT );
|
||||
--source suite/funcs_1/datadict/basics_mixed2.inc
|
||||
# FIXME 3.2.1.6: error message ER_UNKNOWN_TABLE is misleading
|
||||
--error ER_UNKNOWN_TABLE
|
||||
CREATE TABLE information_schema.t1 (f1 INT, f2 INT, f3 INT);
|
||||
#
|
||||
# Hit on existing INFORMATION_SCHEMA table
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
CREATE VIEW information_schema.tables AS SELECT 'garbage';
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
CREATE VIEW information_schema.tables AS
|
||||
SELECT * FROM information_schema.tables;
|
||||
# New table
|
||||
# ER_DBACCESS_DENIED_ERROR would be better.
|
||||
--error ER_UNKNOWN_TABLE
|
||||
CREATE VIEW information_schema.v1 AS SELECT 'garbage';
|
||||
@@ -0,0 +1,55 @@
|
||||
#### suite/funcs_1/datadict/basics_mixed2.inc
|
||||
#
|
||||
# Auxiliary script to be sourced by suite/funcs_1/datadict/is_basics_mixed1.inc
|
||||
#
|
||||
# contains all tables from INFORMATION_SCHEMA
|
||||
#
|
||||
# Usage example(snip of script):
|
||||
# let $dd_part1= CREATE TABLE information_schema.;
|
||||
# let $dd_part2= ( c1 INT );
|
||||
# --source suite/funcs_1/datadict/basics_mixed2.inc
|
||||
#
|
||||
# We expect to get
|
||||
# ERROR 42000: Access denied for user 'root'@'localhost'
|
||||
# to database 'information_schema'
|
||||
# for every statement.
|
||||
#
|
||||
# Author:
|
||||
# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of
|
||||
# testsuite funcs_1
|
||||
# Create this script based on older scripts and new code.
|
||||
#
|
||||
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
eval $dd_part1 schemata $dd_part2;
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
eval $dd_part1 tables $dd_part2;
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
eval $dd_part1 columns $dd_part2;
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
eval $dd_part1 character_sets $dd_part2;
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
eval $dd_part1 collations $dd_part2;
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
eval $dd_part1 collation_character_set_applicability $dd_part2;
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
eval $dd_part1 routines $dd_part2;
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
eval $dd_part1 statistics $dd_part2;
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
eval $dd_part1 views $dd_part2;
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
eval $dd_part1 user_privileges $dd_part2;
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
eval $dd_part1 schema_privileges $dd_part2;
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
eval $dd_part1 table_privileges $dd_part2;
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
eval $dd_part1 column_privileges $dd_part2;
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
eval $dd_part1 table_constraints $dd_part2;
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
eval $dd_part1 key_column_usage $dd_part2;
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
eval $dd_part1 triggers $dd_part2;
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
#### suite/funcs_1/datadict/basics_mixed3.inc
|
||||
#
|
||||
# Auxiliary routine to be sourced by suite/funcs_1/t/is_basics_mixed.test
|
||||
#
|
||||
# Check if INFORMATION_SCHEMA tables contain a schema_name like 'db_data%'.
|
||||
#
|
||||
# Author:
|
||||
# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of
|
||||
# testsuite funcs_1
|
||||
# Create this script based on older scripts and new code.
|
||||
#
|
||||
|
||||
# No column with the name of a database contained in:
|
||||
# character_sets collations collation_character_set_applicability
|
||||
# user_privileges
|
||||
SELECT DISTINCT table_schema FROM information_schema.columns
|
||||
WHERE table_schema LIKE 'db_data%';
|
||||
SELECT DISTINCT table_schema FROM information_schema.column_privileges
|
||||
WHERE table_schema LIKE 'db_data%';
|
||||
SELECT DISTINCT constraint_schema,table_schema
|
||||
FROM information_schema.key_column_usage
|
||||
WHERE constraint_schema LIKE 'db_data%' OR table_schema LIKE 'db_data%';
|
||||
SELECT DISTINCT routine_schema FROM information_schema.routines
|
||||
WHERE routine_schema LIKE 'db_data%';
|
||||
SELECT DISTINCT schema_name FROM information_schema.schemata
|
||||
WHERE schema_name LIKE 'db_data%';
|
||||
SELECT DISTINCT table_schema FROM information_schema.schema_privileges
|
||||
WHERE table_schema LIKE 'db_data%';
|
||||
SELECT DISTINCT table_schema,index_schema FROM information_schema.statistics
|
||||
WHERE table_schema LIKE 'db_data%' OR index_schema LIKE 'db_data%';
|
||||
SELECT DISTINCT table_schema FROM information_schema.tables
|
||||
WHERE table_schema LIKE 'db_data%';
|
||||
SELECT DISTINCT constraint_schema,table_schema
|
||||
FROM information_schema.table_constraints
|
||||
WHERE constraint_schema LIKE 'db_data%' OR table_schema LIKE 'db_data%';
|
||||
SELECT DISTINCT table_schema FROM information_schema.table_privileges
|
||||
WHERE table_schema LIKE 'db_data%';
|
||||
SELECT DISTINCT trigger_schema,event_object_schema
|
||||
FROM information_schema.triggers
|
||||
WHERE trigger_schema LIKE 'db_data%' OR event_object_schema LIKE 'db_data%';
|
||||
SELECT DISTINCT table_schema FROM information_schema.views
|
||||
WHERE table_schema LIKE 'db_data%';
|
||||
@@ -0,0 +1,86 @@
|
||||
# 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;
|
||||
@@ -0,0 +1,54 @@
|
||||
#### suite/funcs_1/datadict/datadict.pre
|
||||
#
|
||||
# Auxiliary script which loads prerequisites
|
||||
# (variables needed for --replace_result ...)
|
||||
# in datadictionary tests.
|
||||
#
|
||||
# Author:
|
||||
# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of
|
||||
# testsuite funcs_1
|
||||
# Create this script based on older scripts and new code.
|
||||
#
|
||||
--disable_query_log
|
||||
|
||||
# Bug#12777 Different size shown for VARCHAR(n) columns (with n> 64)
|
||||
# in INFORMATION_SCHEMA
|
||||
# This bug was unfortunately (for testers) declared to be no bug.
|
||||
# So CHARACTER_MAXIMUM_LENGTH of several <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
|
||||
|
||||
@@ -0,0 +1,60 @@
|
||||
#### --source suite/funcs_1/datadict/datadict_bug_12777.inc
|
||||
#
|
||||
|
||||
# columns in INFORMATION_SCHEMA with VARCHAR(4096) on Linux and Intel or AMD
|
||||
# processor are shown as VARCHAR(512) on Windows, VARCHAR(1023) on AIX and HPUX,
|
||||
# VARCHAR(1024) on Solaris10, ... see below and in bug #12777 for details.
|
||||
# So we need to replace the output for these systems. There may be other still
|
||||
# not tested / detected systems.
|
||||
#
|
||||
# Setting the variables used below has been moved to the beginning of the datadict
|
||||
# tests to "suite/funcs_1/datadict/datadict_load.inc".
|
||||
#
|
||||
# SELECT character_maximum_length INTO @CML
|
||||
# FROM information_schema.columns
|
||||
# WHERE table_schema = 'information_schema'
|
||||
# AND table_name = 'columns'
|
||||
# AND column_name = 'table_catalog';
|
||||
|
||||
# this enables the --replace_result only if needed, using this we never replace
|
||||
# results on 'simple Linux' and so we will see any changes that might be
|
||||
# suppressed by the - only on some systems used - replacements.
|
||||
|
||||
|
||||
# Windows XP 32bit
|
||||
if ($bug_12777_0512)
|
||||
{
|
||||
# switch next 2 lines on for debugging the correct detection of the operating systems
|
||||
# let $message= value 512 detected - 1st replace statement activated!;
|
||||
# --source include/show_msg.inc
|
||||
# nnnn 3*n
|
||||
--replace_result 512 4096 1536 12288
|
||||
}
|
||||
|
||||
# aix52, aix52-64bit, hp3750, hp3750-64bit, hpux11, hpux11-64bit,
|
||||
if ($bug_12777_1023)
|
||||
{
|
||||
# nnnn 3*n
|
||||
--replace_result 1023 4096 3069 12288
|
||||
}
|
||||
|
||||
# Solaris10, 32bit
|
||||
if ($bug_12777_1024)
|
||||
{
|
||||
# nnnn 3*n
|
||||
--replace_result 1024 4096 3072 12288
|
||||
}
|
||||
|
||||
# Linux Suse 9.3 32bit Intel/AMD
|
||||
if ($bug_12777_2048)
|
||||
{
|
||||
# nnnn 3*n
|
||||
--replace_result 2048 4096 6144 12288
|
||||
}
|
||||
|
||||
# build-5.0-standard
|
||||
if ($bug_12777_4095)
|
||||
{
|
||||
# nnnn 3*n
|
||||
--replace_result 4095 4096 12285 12288
|
||||
}
|
||||
@@ -0,0 +1,121 @@
|
||||
#### suite/funcs_1/datadict/datadict_load.inc
|
||||
#
|
||||
# The sub testcases are nearly independend. That is the reason why we do not
|
||||
# want to abort after the first error.
|
||||
--disable_abort_on_error
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# prepare variables for --replace_result
|
||||
#
|
||||
################################################################################
|
||||
--disable_query_log
|
||||
|
||||
# ------------------------------------------------------------------------------
|
||||
# Get the size of ONE known colum and check the size against some values to
|
||||
# be able to use the correct --replace_result statement. Using this only the
|
||||
# one pair of 'wrong' values is replaced and not all occurrencies of all
|
||||
# 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 .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 LIKE "%\%" AND host NOT In ("localhost", "127.0.0.1", "%")`;
|
||||
let $SERVER_NAME= `SELECT DISTINCT host FROM mysql.user WHERE host NOT In ("localhost", "127.0.0.1", "%")`;
|
||||
|
||||
|
||||
################################################################################
|
||||
#
|
||||
# load tables
|
||||
# -----------
|
||||
#
|
||||
# this was part of the 4 files $<engine>_datadict.test, but it has been moved
|
||||
# here to have only one place where all preparation for the test is done.
|
||||
#
|
||||
################################################################################
|
||||
|
||||
eval SET @ENGINE_INNODB = IF( '$engine_type' = 'innodb', 1, 0);
|
||||
eval SET @ENGINE_MEMORY = IF( '$engine_type' = 'memory', 1, 0);
|
||||
eval SET @ENGINE_MYISAM = IF( '$engine_type' = 'myisam', 1, 0);
|
||||
eval SET @ENGINE_NDB = IF( '$engine_type' = 'ndb', 1, 0);
|
||||
--enable_query_log
|
||||
|
||||
let $engine_myisam= `SELECT @ENGINE_MYISAM = 1`;
|
||||
let $engine_innodb= `SELECT @ENGINE_INNODB = 1`;
|
||||
let $engine_memory= `SELECT @ENGINE_MEMORY = 1`;
|
||||
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;
|
||||
|
||||
--disable_warnings
|
||||
DROP DATABASE IF EXISTS test1;
|
||||
--enable_warnings
|
||||
CREATE DATABASE test1;
|
||||
USE test;
|
||||
|
||||
if ($engine_innodb)
|
||||
{
|
||||
--source suite/funcs_1/include/innodb_tb1.inc
|
||||
--source suite/funcs_1/include/innodb_tb2.inc
|
||||
--source suite/funcs_1/include/innodb_tb3.inc
|
||||
--source suite/funcs_1/include/innodb_tb4.inc
|
||||
USE test1;
|
||||
--source suite/funcs_1/include/innodb_tb2.inc
|
||||
}
|
||||
|
||||
if ($engine_memory)
|
||||
{
|
||||
--source suite/funcs_1/include/memory_tb1.inc
|
||||
--source suite/funcs_1/include/memory_tb2.inc
|
||||
--source suite/funcs_1/include/memory_tb3.inc
|
||||
--source suite/funcs_1/include/memory_tb4.inc
|
||||
USE test1;
|
||||
--source suite/funcs_1/include/memory_tb2.inc
|
||||
}
|
||||
|
||||
if ($engine_myisam)
|
||||
{
|
||||
--source suite/funcs_1/include/myisam_tb1.inc
|
||||
--source suite/funcs_1/include/myisam_tb2.inc
|
||||
--source suite/funcs_1/include/myisam_tb3.inc
|
||||
--source suite/funcs_1/include/myisam_tb4.inc
|
||||
USE test1;
|
||||
--source suite/funcs_1/include/myisam_tb2.inc
|
||||
}
|
||||
|
||||
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
|
||||
@@ -0,0 +1,110 @@
|
||||
############## suite/funcs_1/datadict/datadict_priv.inc ################
|
||||
# #
|
||||
# DDL and DML operations on information_schema tables #
|
||||
# #
|
||||
# Creation: #
|
||||
# 2007-08 hhunger Implement this test as part of #
|
||||
# WL#3982 Test information_schema.processlist #
|
||||
# #
|
||||
# Last update: #
|
||||
# 2007-08-14 mleich Some cleanup #
|
||||
# #
|
||||
########################################################################
|
||||
|
||||
# These variables have to be set before sourcing this file.
|
||||
#
|
||||
# information_schema table to be tested
|
||||
# let $table= processlist;
|
||||
#
|
||||
# columns of the information_schema table e.g. to use in a select.
|
||||
# let $columns= ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO;
|
||||
#
|
||||
# Where clause for an update.
|
||||
# let $update_where= WHERE id=1 ;
|
||||
#
|
||||
# Column to be used in the SET of an update.
|
||||
# let $set_column= user='any_user' ;
|
||||
#
|
||||
# Where clause of a delete.
|
||||
# let $delete_where= WHERE id=1 ;
|
||||
#
|
||||
# Column to be dropped.
|
||||
# let $drop_column= user;
|
||||
#
|
||||
# Column to be indexed
|
||||
# let $index_col= user;
|
||||
|
||||
|
||||
# data access
|
||||
|
||||
eval CREATE TEMPORARY TABLE test.t_$table AS SELECT * FROM $table;
|
||||
|
||||
eval UPDATE test.t_$table SET user='horst' $update_where ;
|
||||
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
eval INSERT INTO $table SELECT * FROM test.t_$table;
|
||||
|
||||
# bug#30208: CREATE TABLE ...LIKE does not accept dbname.tablename:unknown database
|
||||
eval DROP TABLE test.t_$table;
|
||||
|
||||
--error ER_VIEW_NONUPD_CHECK
|
||||
eval CREATE VIEW test.v_$table ($columns) AS SELECT * FROM $table WITH CHECK OPTION;
|
||||
|
||||
eval CREATE VIEW test.v_$table ($columns) AS SELECT * FROM $table;
|
||||
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
eval UPDATE test.v_$TABLE SET TIME=NOW() WHERE id = 1;
|
||||
|
||||
eval DROP VIEW test.v_$table;
|
||||
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
eval UPDATE $table SET $set_column $update_where;
|
||||
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
eval DELETE FROM $table $delete_where;
|
||||
|
||||
# change privileges
|
||||
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
eval REVOKE ALL ON $table FROM current_user;
|
||||
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
eval GRANT INSERT,UPDATE ON $table TO current_user;
|
||||
|
||||
SHOW GRANTS;
|
||||
|
||||
#----------------------------------------------------------------------
|
||||
# table access
|
||||
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
eval CREATE INDEX i_$table ON $table ($index_col);
|
||||
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
eval DROP TABLE $table;
|
||||
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
eval ALTER TABLE $table DROP COLUMN $drop_column;
|
||||
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
eval ALTER TABLE $table ADD COLUMN (my_column INT);
|
||||
|
||||
--error ER_UNKNOWN_TABLE
|
||||
eval RENAME TABLE $table TO new_$table;
|
||||
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
eval RENAME TABLE $table TO files;
|
||||
|
||||
--error ER_UNKNOWN_TABLE
|
||||
eval CREATE TABLE new_$table AS SELECT * FROM $table;
|
||||
|
||||
#----------------------------------------------------------------------
|
||||
# database access
|
||||
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
DROP DATABASE information_schema;
|
||||
|
||||
--error ER_PARSE_ERROR
|
||||
RENAME DATABASE information_schema TO info_schema;
|
||||
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
ALTER DATABASE information_schema UPGRADE DATA DIRECTORY NAME;
|
||||
@@ -0,0 +1,362 @@
|
||||
# suite/funcs_1/datadict/is_key_column_usage.inc
|
||||
#
|
||||
# Check the layout of information_schema.key_column_usage and the impact of
|
||||
# CREATE/ALTER/DROP TABLE/VIEW/SCHEMA/COLUMN ... on it.
|
||||
#
|
||||
# Note:
|
||||
# This test is not intended
|
||||
# - to show information about the all time existing tables
|
||||
# within the databases information_schema and mysql
|
||||
# - for checking storage engine properties
|
||||
# Therefore please do not alter $engine_type.
|
||||
#
|
||||
# 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.
|
||||
# Last Change:
|
||||
# 2008-06-11 mleich Move t/is_key_column_usage.test to this file and
|
||||
# create variants for embedded/non embedded server.
|
||||
#
|
||||
|
||||
let $engine_type = MEMORY;
|
||||
|
||||
let $is_table = KEY_COLUMN_USAGE;
|
||||
|
||||
# The table INFORMATION_SCHEMA.KEY_COLUMN_USAGE must exist
|
||||
eval SHOW TABLES FROM information_schema LIKE '$is_table';
|
||||
|
||||
--echo #######################################################################
|
||||
--echo # Testcase 3.2.1.1: INFORMATION_SCHEMA tables can be queried via SELECT
|
||||
--echo #######################################################################
|
||||
# Ensure that every INFORMATION_SCHEMA table can be queried with a SELECT
|
||||
# statement, just as if it were an ordinary user-defined table.
|
||||
#
|
||||
--source suite/funcs_1/datadict/is_table_query.inc
|
||||
|
||||
|
||||
--echo #########################################################################
|
||||
--echo # Testcase 3.2.7.1: INFORMATION_SCHEMA.KEY_COLUMN_USAGE layout
|
||||
--echo #########################################################################
|
||||
# Ensure that the INFORMATION_SCHEMA.KEY_COLUMN_USAGE table has the following
|
||||
# columns, in the following order:
|
||||
#
|
||||
# CONSTRAINT_CATALOG (always shows NULL),
|
||||
# CONSTRAINT_SCHEMA (shows the database, or schema, in which an accessible
|
||||
# constraint, or index, resides),
|
||||
# CONSTRAINT_NAME (shows the name of the accessible constraint),
|
||||
# TABLE_CATALOG (always shows NULL),
|
||||
# TABLE_SCHEMA (shows the database, or schema, in which the table constrained
|
||||
# by that constraint resides),
|
||||
# TABLE_NAME (shows the name of the table constrained by the constraint),
|
||||
# COLUMN_NAME (shows the name of a column that is the index key, or part of
|
||||
# the index key),
|
||||
# ORDINAL_POSITION (shows the ordinal position of the column within the
|
||||
# constraint index),
|
||||
# POSITION_IN_UNIQUE_CONSTRAINT (shows, for a foreign key column, the ordinal
|
||||
# position of the referenced column within the referenced unique index;
|
||||
# otherwise NULL).
|
||||
# added with 5.0.6:
|
||||
# REFERENCED_TABLE_SCHEMA,
|
||||
# REFERENCED_TABLE_NAME,
|
||||
# REFERENCED_COLUMN_NAME
|
||||
#
|
||||
--source suite/funcs_1/datadict/datadict_bug_12777.inc
|
||||
eval DESCRIBE information_schema.$is_table;
|
||||
--source suite/funcs_1/datadict/datadict_bug_12777.inc
|
||||
eval SHOW CREATE TABLE information_schema.$is_table;
|
||||
--source suite/funcs_1/datadict/datadict_bug_12777.inc
|
||||
eval SHOW COLUMNS FROM information_schema.$is_table;
|
||||
|
||||
# Note: Retrieval of information within information_schema.columns about
|
||||
# information_schema.key_column_usage is in is_columns_is.test.
|
||||
|
||||
# Show that CONSTRAINT_CATALOG and TABLE_CATALOG are always NULL.
|
||||
SELECT constraint_catalog, constraint_schema, constraint_name, table_catalog,
|
||||
table_schema, table_name, column_name
|
||||
FROM information_schema.key_column_usage
|
||||
WHERE constraint_catalog IS NOT NULL OR table_catalog IS NOT NULL;
|
||||
|
||||
|
||||
--echo ########################################################################################
|
||||
--echo # Testcase 3.2.7.2 + 3.2.7.3: INFORMATION_SCHEMA.KEY_COLUMN_USAGE accessible information
|
||||
--echo ########################################################################################
|
||||
# 3.2.7.2: Ensure that the table shows the relevant information on every column, defined to
|
||||
# be part of an index key, which is accessible to the current user or to PUBLIC.
|
||||
# 3.2.7.3: Ensure that the table does not show any information on any indexed column that is
|
||||
# not accessible to the current user or PUBLIC.
|
||||
#
|
||||
--disable_warnings
|
||||
DROP DATABASE IF EXISTS db_datadict;
|
||||
--enable_warnings
|
||||
CREATE DATABASE db_datadict;
|
||||
|
||||
--error 0,ER_CANNOT_USER
|
||||
DROP USER 'testuser1'@'localhost';
|
||||
CREATE USER 'testuser1'@'localhost';
|
||||
--error 0,ER_CANNOT_USER
|
||||
DROP USER 'testuser2'@'localhost';
|
||||
CREATE USER 'testuser2'@'localhost';
|
||||
|
||||
USE db_datadict;
|
||||
|
||||
--replace_result $engine_type <engine_type>
|
||||
eval
|
||||
CREATE TABLE t1_1
|
||||
(f1 INT NOT NULL, PRIMARY KEY(f1),
|
||||
f2 INT, INDEX f2_ind(f2))
|
||||
ENGINE = $engine_type;
|
||||
GRANT SELECT ON t1_1 to 'testuser1'@'localhost';
|
||||
|
||||
--replace_result $engine_type <engine_type>
|
||||
eval
|
||||
CREATE TABLE t1_2
|
||||
(f1 INT NOT NULL, PRIMARY KEY(f1),
|
||||
f2 INT, INDEX f2_ind(f2))
|
||||
ENGINE = $engine_type;
|
||||
GRANT SELECT ON t1_2 to 'testuser2'@'localhost';
|
||||
#FIXME: add foreign keys
|
||||
|
||||
let $select= SELECT * FROM information_schema.key_column_usage
|
||||
WHERE table_name LIKE 't1_%'
|
||||
ORDER BY constraint_catalog, constraint_schema, constraint_name,
|
||||
table_catalog, table_schema, table_name, ordinal_position;
|
||||
|
||||
# show view of user root
|
||||
eval $select;
|
||||
|
||||
--echo # Establish connection testuser1 (user=testuser1)
|
||||
--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
|
||||
connect (testuser1, localhost, testuser1, , db_datadict);
|
||||
eval $select;
|
||||
|
||||
--echo # Establish connection testuser2 (user=testuser2)
|
||||
--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
|
||||
connect (testuser2, localhost, testuser2, , db_datadict);
|
||||
eval $select;
|
||||
|
||||
# Cleanup
|
||||
--echo # Switch to connection default and close connections testuser1, testuser2
|
||||
connection default;
|
||||
disconnect testuser1;
|
||||
disconnect testuser2;
|
||||
DROP USER 'testuser1'@'localhost';
|
||||
DROP USER 'testuser2'@'localhost';
|
||||
DROP TABLE t1_1;
|
||||
DROP TABLE t1_2;
|
||||
DROP DATABASE IF EXISTS db_datadict;
|
||||
|
||||
|
||||
--echo ########################################################################################
|
||||
--echo # Testcase 3.2.1.13+3.2.1.14+3.2.1.15: INFORMATION_SCHEMA.KEY_COLUMN_USAGE modifications
|
||||
--echo ########################################################################################
|
||||
# 3.2.1.13: Ensure that the creation of any new database object (e.g. table or
|
||||
# column) automatically inserts all relevant information on that
|
||||
# object into every appropriate INFORMATION_SCHEMA table.
|
||||
# 3.2.1.14: Ensure that the alteration of any existing database object
|
||||
# automatically updates all relevant information on that object in
|
||||
# every appropriate INFORMATION_SCHEMA table.
|
||||
# 3.2.1.15: Ensure that the dropping of any existing database object
|
||||
# automatically deletes all relevant information on that object from
|
||||
# every appropriate INFORMATION_SCHEMA table.
|
||||
#
|
||||
--disable_warnings
|
||||
DROP DATABASE IF EXISTS db_datadict;
|
||||
DROP TABLE IF EXISTS test.t1_my_table;
|
||||
--enable_warnings
|
||||
CREATE DATABASE db_datadict;
|
||||
|
||||
SELECT table_name FROM information_schema.key_column_usage
|
||||
WHERE table_name LIKE 't1_my_table%';
|
||||
--replace_result $engine_type <engine_type>
|
||||
eval
|
||||
CREATE TABLE test.t1_my_table
|
||||
(f1 CHAR(12), f2 TIMESTAMP, f4 BIGINT, PRIMARY KEY(f1,f2))
|
||||
DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci
|
||||
ENGINE = $engine_type;
|
||||
# Settings used in CREATE TABLE must be visible
|
||||
# in information_schema.key_column_usage.
|
||||
--vertical_results
|
||||
SELECT * FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_table';
|
||||
--horizontal_results
|
||||
#
|
||||
# Check modification of TABLE_NAME
|
||||
SELECT DISTINCT table_name FROM information_schema.key_column_usage
|
||||
WHERE table_name LIKE 't1_my_table%';
|
||||
RENAME TABLE test.t1_my_table TO test.t1_my_tablex;
|
||||
SELECT DISTINCT table_name FROM information_schema.key_column_usage
|
||||
WHERE table_name LIKE 't1_my_table%';
|
||||
#
|
||||
# Check modification of TABLE_SCHEMA
|
||||
SELECT DISTINCT table_schema,table_name FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
RENAME TABLE test.t1_my_tablex TO db_datadict.t1_my_tablex;
|
||||
SELECT DISTINCT table_schema,table_name FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
#
|
||||
# Check modification of COLUMN_NAME
|
||||
SELECT DISTINCT table_name, column_name FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex'
|
||||
ORDER BY table_name, column_name;
|
||||
ALTER TABLE db_datadict.t1_my_tablex CHANGE COLUMN f1 first_col CHAR(12);
|
||||
SELECT DISTINCT table_name, column_name FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex'
|
||||
ORDER BY table_name, column_name;
|
||||
#
|
||||
# Note: The size of the column list and the not very selective qualification
|
||||
# is intended. I want to see that the schema names are equal and
|
||||
# all records about 't1_my_tablex'.
|
||||
let $my_select = SELECT constraint_schema, constraint_name, table_schema,
|
||||
table_name, column_name, ordinal_position
|
||||
FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex'
|
||||
ORDER BY constraint_schema, constraint_name, table_schema,
|
||||
table_name, ordinal_position;
|
||||
#
|
||||
# Check ADD INDEX being not UNIQUE (does not show up in key_column_usage)
|
||||
eval $my_select;
|
||||
CREATE INDEX f2 ON db_datadict.t1_my_tablex(f2);
|
||||
eval $my_select;
|
||||
DROP INDEX f2 ON db_datadict.t1_my_tablex;
|
||||
#
|
||||
# Check ADD UNIQUE INDEX without name explicit assigned
|
||||
eval $my_select;
|
||||
ALTER TABLE db_datadict.t1_my_tablex ADD UNIQUE (f2);
|
||||
eval $my_select;
|
||||
DROP INDEX f2 ON db_datadict.t1_my_tablex;
|
||||
#
|
||||
# Check ADD UNIQUE INDEX with name explicit assigned
|
||||
eval $my_select;
|
||||
ALTER TABLE db_datadict.t1_my_tablex ADD UNIQUE my_idx (f2);
|
||||
eval $my_select;
|
||||
DROP INDEX my_idx ON db_datadict.t1_my_tablex;
|
||||
eval $my_select;
|
||||
ALTER TABLE db_datadict.t1_my_tablex ADD UNIQUE my_idx (f4,first_col);
|
||||
eval $my_select;
|
||||
#
|
||||
# Check DROP COLUMN
|
||||
eval $my_select;
|
||||
ALTER TABLE db_datadict.t1_my_tablex
|
||||
DROP COLUMN first_col;
|
||||
eval $my_select;
|
||||
#
|
||||
# Check impact of DROP TABLE
|
||||
SELECT table_name, column_name
|
||||
FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex'
|
||||
ORDER BY table_name, column_name;
|
||||
DROP TABLE db_datadict.t1_my_tablex;
|
||||
SELECT table_name, column_name
|
||||
FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
#
|
||||
# No UNIQUE CONSTRAINT -> no entry in key_column_usage
|
||||
SELECT table_name FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
--replace_result $engine_type <engine_type>
|
||||
eval
|
||||
CREATE TABLE db_datadict.t1_my_tablex
|
||||
ENGINE = $engine_type AS
|
||||
SELECT 1 AS f1;
|
||||
SELECT table_name FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
# UNIQUE CONSTRAINT -> entry in key_column_usage
|
||||
ALTER TABLE db_datadict.t1_my_tablex ADD PRIMARY KEY(f1);
|
||||
SELECT table_name FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
#
|
||||
# Check impact of DROP SCHEMA
|
||||
SELECT table_name FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
DROP DATABASE db_datadict;
|
||||
SELECT table_name FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
#
|
||||
|
||||
|
||||
--echo ########################################################################
|
||||
--echo # Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and
|
||||
--echo # DDL on INFORMATION_SCHEMA table are not supported
|
||||
--echo ########################################################################
|
||||
# 3.2.1.3: Ensure that no user may execute an INSERT statement on any
|
||||
# INFORMATION_SCHEMA table.
|
||||
# 3.2.1.4: Ensure that no user may execute an UPDATE statement on any
|
||||
# INFORMATION_SCHEMA table.
|
||||
# 3.2.1.5: Ensure that no user may execute a DELETE statement on any
|
||||
# INFORMATION_SCHEMA table.
|
||||
# 3.2.1.8: Ensure that no user may create an index on an
|
||||
# INFORMATION_SCHEMA table.
|
||||
# 3.2.1.9: Ensure that no user may alter the definition of an
|
||||
# INFORMATION_SCHEMA table.
|
||||
# 3.2.1.10: Ensure that no user may drop an INFORMATION_SCHEMA table.
|
||||
# 3.2.1.11: Ensure that no user may move an INFORMATION_SCHEMA table to any
|
||||
# other database.
|
||||
# 3.2.1.12: Ensure that no user may directly add to, alter, or delete any data
|
||||
# in an INFORMATION_SCHEMA table.
|
||||
#
|
||||
--disable_warnings
|
||||
DROP DATABASE IF EXISTS db_datadict;
|
||||
DROP TABLE IF EXISTS db_datadict.t1;
|
||||
--enable_warnings
|
||||
CREATE DATABASE db_datadict;
|
||||
--replace_result $engine_type <engine_type>
|
||||
eval
|
||||
CREATE TABLE db_datadict.t1 (f1 BIGINT)
|
||||
ENGINE = $engine_type;
|
||||
|
||||
# Note(mleich):
|
||||
# 1. We can get here different error messages.
|
||||
# 2. We do not want to unify the individual messages to the far to unspecific
|
||||
# 'Got one of the listed errors'.
|
||||
let $my_error_message =
|
||||
##### The previous statement must fail ######
|
||||
# Server type | expected error name | expected error message
|
||||
# --------------------------------------------------------------------------------------------------------------------
|
||||
# not embedded | ER_DBACCESS_DENIED_ERROR | ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
# embedded | ER_NON_INSERTABLE_TABLE | ERROR HY000: The target table schemata of the INSERT is not insertable-into
|
||||
# | or similar | or similar
|
||||
;
|
||||
|
||||
--disable_abort_on_error
|
||||
INSERT INTO information_schema.key_column_usage
|
||||
(constraint_schema, constraint_name, table_name)
|
||||
VALUES ( 'mysql', 'primary', 'db');
|
||||
if (!$mysql_errno)
|
||||
{
|
||||
--echo $my_error_message
|
||||
exit;
|
||||
}
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
INSERT INTO information_schema.key_column_usage
|
||||
SELECT * FROM information_schema.key_column_usage;
|
||||
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
UPDATE information_schema.key_column_usage
|
||||
SET table_name = 'db1' WHERE constraint_name = 'primary';
|
||||
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
DELETE FROM information_schema.key_column_usage WHERE table_name = 't1';
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
TRUNCATE information_schema.key_column_usage;
|
||||
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
CREATE INDEX i3 ON information_schema.key_column_usage(table_name);
|
||||
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
ALTER TABLE information_schema.key_column_usage ADD f1 INT;
|
||||
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
DROP TABLE information_schema.key_column_usage;
|
||||
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
ALTER TABLE information_schema.key_column_usage
|
||||
RENAME db_datadict.key_column_usage;
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
ALTER TABLE information_schema.key_column_usage
|
||||
RENAME information_schema.xkey_column_usage;
|
||||
--enable_abort_on_error
|
||||
|
||||
# Cleanup
|
||||
DROP TABLE db_datadict.t1;
|
||||
DROP DATABASE db_datadict;
|
||||
@@ -0,0 +1,523 @@
|
||||
# suite/funcs_1/datadict/is_routines.inc
|
||||
#
|
||||
# Check the layout of information_schema.routines and the impact of
|
||||
# CREATE/ALTER/DROP PROCEDURE/FUNCTION ... on it.
|
||||
#
|
||||
# Note:
|
||||
# This test is not intended
|
||||
# - to show information about the all time existing routines (there are no
|
||||
# in the moment) within the databases information_schema and mysql
|
||||
# - for checking storage engine properties
|
||||
# Therefore please do not alter $engine_type and $other_engine_type.
|
||||
#
|
||||
# Author:
|
||||
# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of
|
||||
# testsuite funcs_1
|
||||
# Create this script based on older scripts and new code.
|
||||
# Last Change:
|
||||
# 2008-06-11 mleich Move t/is_routines.test to this file and
|
||||
# create variants for embedded/non embedded server.
|
||||
#
|
||||
|
||||
let $engine_type = MEMORY;
|
||||
let $other_engine_type = MyISAM;
|
||||
|
||||
let $is_table = ROUTINES;
|
||||
|
||||
# The table INFORMATION_SCHEMA.TABLES must exist
|
||||
eval SHOW TABLES FROM information_schema LIKE '$is_table';
|
||||
|
||||
--echo #######################################################################
|
||||
--echo # Testcase 3.2.1.1: INFORMATION_SCHEMA tables can be queried via SELECT
|
||||
--echo #######################################################################
|
||||
# Ensure that every INFORMATION_SCHEMA table can be queried with a SELECT
|
||||
# statement, just as if it were an ordinary user-defined table.
|
||||
#
|
||||
--source suite/funcs_1/datadict/is_table_query.inc
|
||||
|
||||
|
||||
--echo #########################################################################
|
||||
--echo # Testcase 3.2.8.1: INFORMATION_SCHEMA.ROUTINES layout
|
||||
--echo #########################################################################
|
||||
# Ensure that the INFORMATION_SCHEMA.ROUTINES table has the following columns,
|
||||
# in the following order:
|
||||
#
|
||||
# SPECIFIC_NAME (shows the name of an accessible stored procedure, or routine),
|
||||
# ROUTINE_CATALOG (always shows NULL),
|
||||
# ROUTINE_SCHEMA (shows the database, or schema, in which the routine resides),
|
||||
# ROUTINE_NAME (shows the same stored procedure name),
|
||||
# ROUTINE_TYPE (shows whether the stored procedure is a procedure or a function),
|
||||
# DTD_IDENTIFIER (shows, for a function, the complete data type definition of
|
||||
# the value the function will return; otherwise NULL),
|
||||
# ROUTINE_BODY (shows the language in which the stored procedure is written;
|
||||
# currently always SQL),
|
||||
# ROUTINE_DEFINITION (shows as much of the routine body as is possible in the
|
||||
# allotted space),
|
||||
# EXTERNAL_NAME (always shows NULL),
|
||||
# EXTERNAL_LANGUAGE (always shows NULL),
|
||||
# PARAMETER_STYLE (shows the routine's parameter style; always SQL),
|
||||
# IS_DETERMINISTIC (shows whether the routine is deterministic),
|
||||
# SQL_DATA_ACCESS (shows the routine's defined sql-data-access clause value),
|
||||
# SQL_PATH (always shows NULL),
|
||||
# SECURITY_TYPE (shows whether the routine's defined security_type is 'definer'
|
||||
# or 'invoker'),
|
||||
# CREATED (shows the timestamp of the time the routine was created),
|
||||
# LAST_ALTERED (shows the timestamp of the time the routine was last altered),
|
||||
# SQL_MODE (shows the sql_mode setting at the time the routine was created),
|
||||
# ROUTINE_COMMENT (shows the comment, if any, defined for the routine;
|
||||
# otherwise NULL),
|
||||
# DEFINER (shows the user who created the routine).
|
||||
# Starting with MySQL 5.1
|
||||
# CHARACTER_SET_CLIENT
|
||||
# COLLATION_CONNECTION
|
||||
# DATABASE_COLLATION
|
||||
#
|
||||
--source suite/funcs_1/datadict/datadict_bug_12777.inc
|
||||
eval DESCRIBE information_schema.$is_table;
|
||||
--source suite/funcs_1/datadict/datadict_bug_12777.inc
|
||||
eval SHOW CREATE TABLE information_schema.$is_table;
|
||||
--source suite/funcs_1/datadict/datadict_bug_12777.inc
|
||||
eval SHOW COLUMNS FROM information_schema.$is_table;
|
||||
|
||||
USE test;
|
||||
--disable_warnings
|
||||
DROP PROCEDURE IF EXISTS sp_for_routines;
|
||||
DROP FUNCTION IF EXISTS function_for_routines;
|
||||
--enable_warnings
|
||||
CREATE PROCEDURE sp_for_routines() SELECT 'db_datadict';
|
||||
CREATE FUNCTION function_for_routines() RETURNS INT RETURN 0;
|
||||
|
||||
# Show that the column values of
|
||||
# ROUTINE_CATALOG, EXTERNAL_NAME, EXTERNAL_LANGUAGE, SQL_PATH are always NULL
|
||||
# and
|
||||
# ROUTINE_BODY, PARAMETER_STYLE are 'SQL'
|
||||
# and
|
||||
# SPECIFIC_NAME = ROUTINE_NAME.
|
||||
SELECT specific_name,routine_catalog,routine_schema,routine_name,routine_type,
|
||||
routine_body,external_name,external_language,parameter_style,sql_path
|
||||
FROM information_schema.routines
|
||||
WHERE routine_schema = 'test' AND
|
||||
(routine_catalog IS NOT NULL OR external_name IS NOT NULL
|
||||
OR external_language IS NOT NULL OR sql_path IS NOT NULL
|
||||
OR routine_body <> 'SQL' OR parameter_style <> 'SQL'
|
||||
OR specific_name <> routine_name);
|
||||
|
||||
DROP PROCEDURE sp_for_routines;
|
||||
DROP FUNCTION function_for_routines;
|
||||
|
||||
|
||||
--echo ################################################################################
|
||||
--echo # Testcase 3.2.8.2 + 3.2.8.3: INFORMATION_SCHEMA.ROUTINES accessible information
|
||||
--echo ################################################################################
|
||||
# 3.2.8.2: Ensure that the table shows the relevant information on every SQL-invoked
|
||||
# routine (i.e. stored procedure) which is accessible to the current user
|
||||
# or to PUBLIC.
|
||||
# 3.2.8.3: Ensure that the table does not show any information on any stored procedure
|
||||
# that is not accessible to the current user or PUBLIC.
|
||||
#
|
||||
--disable_warnings
|
||||
DROP DATABASE IF EXISTS db_datadict;
|
||||
DROP DATABASE IF EXISTS db_datadict_2;
|
||||
--enable_warnings
|
||||
|
||||
CREATE DATABASE db_datadict;
|
||||
USE db_datadict;
|
||||
--replace_result $other_engine_type <other_engine_type>
|
||||
eval
|
||||
CREATE TABLE res_6_408002_1(f1 CHAR(3), f2 TEXT(25), f3 DATE, f4 INT)
|
||||
ENGINE = $other_engine_type;
|
||||
INSERT INTO res_6_408002_1(f1, f2, f3, f4)
|
||||
VALUES('abc', 'xyz', '1989-11-09', 0815);
|
||||
--disable_warnings
|
||||
DROP PROCEDURE IF EXISTS sp_6_408002_1;
|
||||
--enable_warnings
|
||||
delimiter //;
|
||||
CREATE PROCEDURE sp_6_408002_1()
|
||||
BEGIN
|
||||
SELECT * FROM db_datadict.res_6_408002_1;
|
||||
END//
|
||||
delimiter ;//
|
||||
|
||||
CREATE DATABASE db_datadict_2;
|
||||
USE db_datadict_2;
|
||||
--replace_result $other_engine_type <other_engine_type>
|
||||
eval
|
||||
CREATE TABLE res_6_408002_2(f1 CHAR(3), f2 TEXT(25), f3 DATE, f4 INT)
|
||||
ENGINE = $other_engine_type;
|
||||
INSERT INTO res_6_408002_2(f1, f2, f3, f4)
|
||||
VALUES('abc', 'xyz', '1990-10-03', 4711);
|
||||
--disable_warnings
|
||||
DROP PROCEDURE IF EXISTS sp_6_408002_2;
|
||||
--enable_warnings
|
||||
delimiter //;
|
||||
CREATE PROCEDURE sp_6_408002_2()
|
||||
BEGIN
|
||||
SELECT * FROM db_datadict_2.res_6_408002_2;
|
||||
END//
|
||||
delimiter ;//
|
||||
|
||||
--error 0,ER_CANNOT_USER
|
||||
DROP USER 'testuser1'@'localhost';
|
||||
CREATE USER 'testuser1'@'localhost';
|
||||
--error 0,ER_CANNOT_USER
|
||||
DROP USER 'testuser2'@'localhost';
|
||||
CREATE USER 'testuser2'@'localhost';
|
||||
--error 0,ER_CANNOT_USER
|
||||
DROP USER 'testuser3'@'localhost';
|
||||
CREATE USER 'testuser3'@'localhost';
|
||||
|
||||
|
||||
GRANT SELECT ON db_datadict_2.* TO 'testuser1'@'localhost';
|
||||
GRANT EXECUTE ON db_datadict_2.* TO 'testuser1'@'localhost';
|
||||
|
||||
GRANT EXECUTE ON db_datadict.* TO 'testuser1'@'localhost';
|
||||
GRANT SELECT ON db_datadict.* TO 'testuser2'@'localhost';
|
||||
|
||||
GRANT EXECUTE ON PROCEDURE db_datadict_2.sp_6_408002_2
|
||||
TO 'testuser2'@'localhost';
|
||||
GRANT EXECUTE ON db_datadict_2.* TO 'testuser2'@'localhost';
|
||||
FLUSH PRIVILEGES;
|
||||
|
||||
--echo # Establish connection testuser1 (user=testuser1)
|
||||
--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
|
||||
connect (testuser1, localhost, testuser1, , db_datadict);
|
||||
--replace_column 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss"
|
||||
SELECT * FROM information_schema.routines;
|
||||
|
||||
--echo # Establish connection testuser2 (user=testuser2)
|
||||
--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
|
||||
connect (testuser2, localhost, testuser2, , db_datadict);
|
||||
--replace_column 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss"
|
||||
SELECT * FROM information_schema.routines;
|
||||
|
||||
--echo # Establish connection testuser3 (user=testuser3)
|
||||
--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
|
||||
connect (testuser3, localhost, testuser3, , test);
|
||||
--replace_column 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss"
|
||||
SELECT * FROM information_schema.routines;
|
||||
|
||||
# Cleanup
|
||||
--echo # Switch to connection default and close connections testuser1,testuser2,testuser3
|
||||
connection default;
|
||||
disconnect testuser1;
|
||||
disconnect testuser2;
|
||||
disconnect testuser3;
|
||||
|
||||
DROP USER 'testuser1'@'localhost';
|
||||
DROP USER 'testuser2'@'localhost';
|
||||
DROP USER 'testuser3'@'localhost';
|
||||
|
||||
USE test;
|
||||
DROP DATABASE db_datadict;
|
||||
DROP DATABASE db_datadict_2;
|
||||
|
||||
|
||||
--echo #########################################################################
|
||||
--echo # 3.2.1.13+3.2.1.14+3.2.1.15: INFORMATION_SCHEMA.ROUTINES modifications
|
||||
--echo #########################################################################
|
||||
# 3.2.1.13: Ensure that the creation of any new database object (e.g. table or
|
||||
# column) automatically inserts all relevant information on that
|
||||
# object into every appropriate INFORMATION_SCHEMA table.
|
||||
# 3.2.1.14: Ensure that the alteration of any existing database object
|
||||
# automatically updates all relevant information on that object in
|
||||
# every appropriate INFORMATION_SCHEMA table.
|
||||
# 3.2.1.15: Ensure that the dropping of any existing database object
|
||||
# automatically deletes all relevant information on that object from
|
||||
# every appropriate INFORMATION_SCHEMA table.
|
||||
#
|
||||
# Some more tests are in t/information_schema_routines.test which exists
|
||||
# in MySQL 5.1 and up only.
|
||||
#
|
||||
--disable_warnings
|
||||
DROP DATABASE IF EXISTS db_datadict;
|
||||
--enable_warnings
|
||||
CREATE DATABASE db_datadict;
|
||||
|
||||
SELECT * FROM information_schema.routines WHERE routine_schema = 'db_datadict';
|
||||
USE db_datadict;
|
||||
CREATE PROCEDURE sp_for_routines() SELECT 'db_datadict';
|
||||
CREATE FUNCTION function_for_routines() RETURNS INT RETURN 0;
|
||||
--vertical_results
|
||||
--replace_column 16 <created> 17 <modified>
|
||||
SELECT * FROM information_schema.routines WHERE routine_schema = 'db_datadict'
|
||||
ORDER BY routine_name;
|
||||
--horizontal_results
|
||||
|
||||
ALTER PROCEDURE sp_for_routines SQL SECURITY INVOKER;
|
||||
ALTER FUNCTION function_for_routines COMMENT 'updated comments';
|
||||
--vertical_results
|
||||
--replace_column 16 <created> 17 <modified>
|
||||
SELECT * FROM information_schema.routines WHERE routine_schema = 'db_datadict'
|
||||
ORDER BY routine_name;
|
||||
--horizontal_results
|
||||
|
||||
DROP PROCEDURE sp_for_routines;
|
||||
DROP FUNCTION function_for_routines;
|
||||
SELECT * FROM information_schema.routines WHERE routine_schema = 'db_datadict';
|
||||
|
||||
CREATE PROCEDURE sp_for_routines() SELECT 'db_datadict';
|
||||
CREATE FUNCTION function_for_routines() RETURNS INT RETURN 0;
|
||||
--vertical_results
|
||||
--replace_column 16 <created> 17 <modified>
|
||||
SELECT * FROM information_schema.routines WHERE routine_schema = 'db_datadict'
|
||||
ORDER BY routine_name;
|
||||
--horizontal_results
|
||||
use test;
|
||||
DROP DATABASE db_datadict;
|
||||
SELECT * FROM information_schema.routines WHERE routine_schema = 'db_datadict';
|
||||
|
||||
|
||||
--echo #########################################################################
|
||||
--echo # 3.2.8.4: INFORMATION_SCHEMA.ROUTINES routine body too big for
|
||||
--echo # ROUTINE_DEFINITION column
|
||||
--echo #########################################################################
|
||||
# Ensure that a stored procedure with a routine body that is too large to fit
|
||||
# into the INFORMATION_SCHEMA.ROUTINES.ROUTINE_DEFINITION column correctly shows
|
||||
# as much of the information as is possible within the allotted size.
|
||||
#
|
||||
--disable_warnings
|
||||
DROP DATABASE IF EXISTS db_datadict;
|
||||
--enable_warnings
|
||||
CREATE DATABASE db_datadict;
|
||||
USE db_datadict;
|
||||
#
|
||||
--replace_result $other_engine_type <other_engine_type>
|
||||
eval
|
||||
CREATE TABLE db_datadict.res_6_408004_1
|
||||
(f1 LONGTEXT , f2 MEDIUMINT , f3 LONGBLOB , f4 REAL , f5 YEAR)
|
||||
ENGINE = $other_engine_type;
|
||||
INSERT INTO db_datadict.res_6_408004_1
|
||||
VALUES ('abc', 98765 , 99999999 , 98765, 10);
|
||||
#
|
||||
--replace_result $other_engine_type <other_engine_type>
|
||||
eval
|
||||
CREATE TABLE db_datadict.res_6_408004_2
|
||||
(f1 LONGTEXT , f2 MEDIUMINT , f3 LONGBLOB , f4 REAL , f5 YEAR)
|
||||
ENGINE = $other_engine_type;
|
||||
INSERT INTO db_datadict.res_6_408004_2
|
||||
VALUES ('abc', 98765 , 99999999 , 98765, 10);
|
||||
|
||||
--echo # Checking the max. possible length of (currently) 4 GByte is not
|
||||
--echo # in this environment here.
|
||||
|
||||
delimiter //;
|
||||
CREATE PROCEDURE sp_6_408004 ()
|
||||
BEGIN
|
||||
DECLARE done INTEGER DEFAULt 0;
|
||||
DECLARE variable_number_1 LONGTEXT;
|
||||
DECLARE variable_number_2 MEDIUMINT;
|
||||
DECLARE variable_number_3 LONGBLOB;
|
||||
DECLARE variable_number_4 REAL;
|
||||
DECLARE variable_number_5 YEAR;
|
||||
DECLARE cursor_number_1 CURSOR FOR SELECT * FROM res_6_408004_1 LIMIT 0, 10;
|
||||
DECLARE cursor_number_2 CURSOR FOR SELECT * FROM res_6_408004_1 LIMIT 0, 10;
|
||||
DECLARE cursor_number_3 CURSOR FOR SELECT * FROM res_6_408004_1 LIMIT 0, 10;
|
||||
DECLARE cursor_number_4 CURSOR FOR SELECT * FROM res_6_408004_1 LIMIT 0, 10;
|
||||
DECLARE cursor_number_5 CURSOR FOR SELECT * FROM res_6_408004_1 LIMIT 0, 10;
|
||||
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = 1;
|
||||
BEGIN
|
||||
OPEN cursor_number_1;
|
||||
WHILE done <> 1 DO
|
||||
FETCH cursor_number_1
|
||||
INTO variable_number_1, variable_number_2, variable_number_3,
|
||||
variable_number_4, variable_number_5;
|
||||
IF done <> 0 THEN
|
||||
INSERT INTO res_6_408004_2
|
||||
VALUES (variable_number_1, variable_number_2, variable_number_3,
|
||||
variable_number_4, variable_number_5);
|
||||
END IF;
|
||||
END WHILE;
|
||||
BEGIN
|
||||
BEGIN
|
||||
SET done = 0;
|
||||
OPEN cursor_number_2;
|
||||
WHILE done <> 1 DO
|
||||
FETCH cursor_number_2
|
||||
INTO variable_number_1, variable_number_2, variable_number_3,
|
||||
variable_number_4, variable_number_5;
|
||||
IF done <> 0 THEN
|
||||
INSERT INTO res_6_408004_2
|
||||
VALUES(variable_number_1, variable_number_2, variable_number_3,
|
||||
variable_number_4, variable_number_5);
|
||||
END IF;
|
||||
END WHILE;
|
||||
END;
|
||||
SET done = 0;
|
||||
OPEN cursor_number_3;
|
||||
WHILE done <> 1 DO
|
||||
FETCH cursor_number_3
|
||||
INTO variable_number_1, variable_number_2, variable_number_3,
|
||||
variable_number_4, variable_number_5;
|
||||
IF done <> 0 THEN
|
||||
INSERT INTO res_6_408004_2
|
||||
VALUES(variable_number_1, variable_number_2, variable_number_3,
|
||||
variable_number_4, variable_number_5);
|
||||
END IF;
|
||||
END WHILE;
|
||||
END;
|
||||
END;
|
||||
BEGIN
|
||||
SET done = 0;
|
||||
OPEN cursor_number_4;
|
||||
WHILE done <> 1 DO
|
||||
FETCH cursor_number_4
|
||||
INTO variable_number_1, variable_number_2, variable_number_3,
|
||||
variable_number_4, variable_number_5;
|
||||
IF done <> 0 THEN
|
||||
INSERT INTO res_6_408004_2
|
||||
VALUES (variable_number_1, variable_number_2, variable_number_3,
|
||||
variable_number_4, variable_number_5);
|
||||
END IF;
|
||||
END WHILE;
|
||||
END;
|
||||
BEGIN
|
||||
SET @a='test row';
|
||||
SELECT @a;
|
||||
SELECT @a;
|
||||
SELECT @a;
|
||||
END;
|
||||
BEGIN
|
||||
SET done = 0;
|
||||
OPEN cursor_number_5;
|
||||
WHILE done <> 1 DO
|
||||
FETCH cursor_number_5
|
||||
INTO variable_number_1, variable_number_2, variable_number_3,
|
||||
variable_number_4, variable_number_5;
|
||||
IF done <> 0 THEN
|
||||
INSERT INTO res_6_408004_2
|
||||
VALUES (variable_number_1, variable_number_2, variable_number_3,
|
||||
variable_number_4, variable_number_5);
|
||||
END IF;
|
||||
END WHILE;
|
||||
END;
|
||||
BEGIN
|
||||
SET @a='test row';
|
||||
SELECT @a;
|
||||
SELECT @a;
|
||||
SELECT @a;
|
||||
END;
|
||||
END//
|
||||
delimiter ;//
|
||||
|
||||
CALL db_datadict.sp_6_408004 ();
|
||||
SELECT * FROM db_datadict.res_6_408004_2;
|
||||
|
||||
--vertical_results
|
||||
--replace_column 16 "YYYY-MM-DD hh:mm:ss" 17 "YYYY-MM-DD hh:mm:ss"
|
||||
SELECT *, LENGTH(routine_definition) FROM information_schema.routines
|
||||
WHERE routine_schema = 'db_datadict';
|
||||
--horizontal_results
|
||||
|
||||
# Cleanup
|
||||
DROP DATABASE db_datadict;
|
||||
# ----------------------------------------------------------------------------------------------
|
||||
|
||||
|
||||
--echo ########################################################################
|
||||
--echo # Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and
|
||||
--echo # DDL on INFORMATION_SCHEMA table are not supported
|
||||
--echo ########################################################################
|
||||
# 3.2.1.3: Ensure that no user may execute an INSERT statement on any
|
||||
# INFORMATION_SCHEMA table.
|
||||
# 3.2.1.4: Ensure that no user may execute an UPDATE statement on any
|
||||
# INFORMATION_SCHEMA table.
|
||||
# 3.2.1.5: Ensure that no user may execute a DELETE statement on any
|
||||
# INFORMATION_SCHEMA table.
|
||||
# 3.2.1.8: Ensure that no user may create an index on an INFORMATION_SCHEMA table.
|
||||
# 3.2.1.9: Ensure that no user may alter the definition of an
|
||||
# INFORMATION_SCHEMA table.
|
||||
# 3.2.1.10: Ensure that no user may drop an INFORMATION_SCHEMA table.
|
||||
# 3.2.1.11: Ensure that no user may move an INFORMATION_SCHEMA table to any
|
||||
# other database.
|
||||
# 3.2.1.12: Ensure that no user may directly add to, alter, or delete any data
|
||||
# in an INFORMATION_SCHEMA table.
|
||||
#
|
||||
--disable_warnings
|
||||
DROP DATABASE IF EXISTS db_datadict;
|
||||
--enable_warnings
|
||||
CREATE DATABASE db_datadict;
|
||||
USE db_datadict;
|
||||
CREATE PROCEDURE sp_for_routines() SELECT 'db_datadict';
|
||||
USE test;
|
||||
|
||||
# Note(mleich):
|
||||
# 1. We can get here different error messages.
|
||||
# 2. We do not want to unify the individual messages to the far to unspecific
|
||||
# 'Got one of the listed errors'.
|
||||
let $my_error_message =
|
||||
##### The previous statement must fail ######
|
||||
# Server type | expected error name | expected error message
|
||||
# --------------------------------------------------------------------------------------------------------------------
|
||||
# not embedded | ER_DBACCESS_DENIED_ERROR | ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
# embedded | ER_NON_INSERTABLE_TABLE | ERROR HY000: The target table schemata of the INSERT is not insertable-into
|
||||
# | or similar | or similar
|
||||
;
|
||||
|
||||
--disable_abort_on_error
|
||||
INSERT INTO information_schema.routines (routine_name, routine_type )
|
||||
VALUES ('p2', 'procedure');
|
||||
if (!$mysql_errno)
|
||||
{
|
||||
--echo $my_error_message
|
||||
exit;
|
||||
}
|
||||
UPDATE information_schema.routines SET routine_name = 'p2'
|
||||
WHERE routine_body = 'sql';
|
||||
if (!$mysql_errno)
|
||||
{
|
||||
--echo $my_error_message
|
||||
exit;
|
||||
}
|
||||
DELETE FROM information_schema.routines ;
|
||||
if (!$mysql_errno)
|
||||
{
|
||||
--echo $my_error_message
|
||||
exit;
|
||||
}
|
||||
TRUNCATE information_schema.routines ;
|
||||
if (!$mysql_errno)
|
||||
{
|
||||
--echo $my_error_message
|
||||
exit;
|
||||
}
|
||||
CREATE INDEX i7 ON information_schema.routines (routine_name);
|
||||
if (!$mysql_errno)
|
||||
{
|
||||
--echo $my_error_message
|
||||
exit;
|
||||
}
|
||||
ALTER TABLE information_schema.routines ADD f1 INT;
|
||||
if (!$mysql_errno)
|
||||
{
|
||||
--echo $my_error_message
|
||||
exit;
|
||||
}
|
||||
ALTER TABLE information_schema.routines DISCARD TABLESPACE;
|
||||
if (!$mysql_errno)
|
||||
{
|
||||
--echo $my_error_message
|
||||
exit;
|
||||
}
|
||||
DROP TABLE information_schema.routines ;
|
||||
if (!$mysql_errno)
|
||||
{
|
||||
--echo $my_error_message
|
||||
exit;
|
||||
}
|
||||
ALTER TABLE information_schema.routines RENAME db_datadict.routines;
|
||||
if (!$mysql_errno)
|
||||
{
|
||||
--echo $my_error_message
|
||||
exit;
|
||||
}
|
||||
ALTER TABLE information_schema.routines RENAME information_schema.xroutines;
|
||||
if (!$mysql_errno)
|
||||
{
|
||||
--echo $my_error_message
|
||||
exit;
|
||||
}
|
||||
--enable_abort_on_error
|
||||
|
||||
# Cleanup
|
||||
DROP DATABASE db_datadict;
|
||||
|
||||
@@ -0,0 +1,300 @@
|
||||
# suite/funcs_1/datadict/is_schemata.inc
|
||||
#
|
||||
# Check the layout of information_schema.schemata, permissions and the impact of
|
||||
# CREATE/ALTER/DROP SCHEMA on it.
|
||||
#
|
||||
# Note:
|
||||
# This test is not intended
|
||||
# - to show information about the all time existing databases
|
||||
# information_schema and mysql
|
||||
# - for checking storage engine properties
|
||||
#
|
||||
# Author:
|
||||
# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of
|
||||
# testsuite funcs_1
|
||||
# Create this script based on older scripts and new code.
|
||||
# Last Change:
|
||||
# 2008-06-11 mleich Move t/is_schemata.test to this file and
|
||||
# create variants for embedded/non embedded server.
|
||||
#
|
||||
|
||||
let $is_table = SCHEMATA;
|
||||
|
||||
# The table INFORMATION_SCHEMA.SCHEMATA must exist
|
||||
eval SHOW TABLES FROM information_schema LIKE '$is_table';
|
||||
|
||||
--echo #######################################################################
|
||||
--echo # Testcase 3.2.1.1: INFORMATION_SCHEMA tables can be queried via SELECT
|
||||
--echo #######################################################################
|
||||
# Ensure that every INFORMATION_SCHEMA table can be queried with a SELECT
|
||||
# statement, just as if it were an ordinary user-defined table.
|
||||
#
|
||||
--source suite/funcs_1/datadict/is_table_query.inc
|
||||
|
||||
|
||||
--echo #########################################################################
|
||||
--echo # Testcase 3.2.9.1: INFORMATION_SCHEMA.SCHEMATA layout;
|
||||
--echo #########################################################################
|
||||
# Ensure that the INFORMATION_SCHEMA.SCHEMATA table has the following columns,
|
||||
# in the following order:
|
||||
#
|
||||
# CATALOG_NAME (always shows NULL),
|
||||
# SCHEMA_NAME (shows the name of a database, or schema, on which the current
|
||||
# user or PUBLIC has privileges),
|
||||
# DEFAULT_CHARACTER_SET_NAME (shows the name of that database's default
|
||||
# character set),
|
||||
# DEFAULT_COLLATION_NAME (shows the database defaul collation)
|
||||
# SQL_PATH (always shows NULL).
|
||||
#
|
||||
--source suite/funcs_1/datadict/datadict_bug_12777.inc
|
||||
eval DESCRIBE information_schema.$is_table;
|
||||
--source suite/funcs_1/datadict/datadict_bug_12777.inc
|
||||
eval SHOW CREATE TABLE information_schema.$is_table;
|
||||
--source suite/funcs_1/datadict/datadict_bug_12777.inc
|
||||
eval SHOW COLUMNS FROM information_schema.$is_table;
|
||||
|
||||
# Note: Retrieval of information within information_schema.columns about
|
||||
# information_schema.schemata is in is_columns_is.test.
|
||||
|
||||
# Show that CATALOG_NAME and SQL_PATH are always NULL.
|
||||
SELECT catalog_name, schema_name, sql_path
|
||||
FROM information_schema.schemata
|
||||
WHERE catalog_name IS NOT NULL or sql_path IS NOT NULL;
|
||||
|
||||
|
||||
--echo ###############################################################################
|
||||
--echo # Testcases 3.2.9.2+3.2.9.3: INFORMATION_SCHEMA.SCHEMATA accessible information
|
||||
--echo ###############################################################################
|
||||
# 3.2.9.2 Ensure that the table shows the relevant information for every
|
||||
# database on which the current user or PUBLIC have privileges.
|
||||
# 3.2.9.3 Ensure that the table does not show any information on any databases
|
||||
# on which the current user and PUBLIC have no privileges.
|
||||
#
|
||||
# Note: Check of content within information_schema.schemata about the databases
|
||||
# information_schema and mysql is in
|
||||
# suite/funcs_1/t/is_schemata_is_mysql.test.
|
||||
#
|
||||
--disable_warnings
|
||||
DROP DATABASE IF EXISTS db_datadict_1;
|
||||
DROP DATABASE IF EXISTS db_datadict_2;
|
||||
--enable_warnings
|
||||
CREATE DATABASE db_datadict_1;
|
||||
CREATE DATABASE db_datadict_2;
|
||||
|
||||
--error 0,ER_CANNOT_USER
|
||||
DROP USER 'testuser1'@'localhost';
|
||||
CREATE USER 'testuser1'@'localhost';
|
||||
--error 0,ER_CANNOT_USER
|
||||
DROP USER 'testuser2'@'localhost';
|
||||
CREATE USER 'testuser2'@'localhost';
|
||||
--error 0,ER_CANNOT_USER
|
||||
DROP USER 'testuser3'@'localhost';
|
||||
CREATE USER 'testuser3'@'localhost';
|
||||
|
||||
GRANT SELECT ON db_datadict_1.* to 'testuser1'@'localhost';
|
||||
GRANT SELECT ON db_datadict_1.* to 'testuser2'@'localhost';
|
||||
GRANT SELECT ON db_datadict_2.* to 'testuser2'@'localhost';
|
||||
|
||||
let $my_select = SELECT * FROM information_schema.schemata
|
||||
WHERE schema_name LIKE 'db_datadict_%' ORDER BY schema_name;
|
||||
let $my_show = SHOW DATABASES LIKE 'db_datadict_%';
|
||||
|
||||
eval $my_select;
|
||||
--sorted_result
|
||||
eval $my_show;
|
||||
|
||||
--echo # Establish connection testuser1 (user=testuser1)
|
||||
--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
|
||||
connect (testuser1, localhost, testuser1, , db_datadict_1);
|
||||
# Shows db_datadict_1
|
||||
eval $my_select;
|
||||
--sorted_result
|
||||
eval $my_show;
|
||||
|
||||
--echo # Establish connection testuser2 (user=testuser2)
|
||||
--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
|
||||
connect (testuser2, localhost, testuser2, , db_datadict_2);
|
||||
# Shows db_datadict_1 and db_datadict_2
|
||||
eval $my_select;
|
||||
--sorted_result
|
||||
eval $my_show;
|
||||
|
||||
--echo # Establish connection testuser3 (user=testuser3)
|
||||
--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
|
||||
connect (testuser3, localhost, testuser3, , test);
|
||||
# Shows neither db_datadict_1 nor db_datadict_2
|
||||
eval $my_select;
|
||||
--sorted_result
|
||||
eval $my_show;
|
||||
|
||||
# Cleanup
|
||||
--echo # Switch to connection default and close connections testuser1,testuser2,testuser3
|
||||
connection default;
|
||||
disconnect testuser1;
|
||||
disconnect testuser2;
|
||||
disconnect testuser3;
|
||||
DROP USER 'testuser1'@'localhost';
|
||||
DROP USER 'testuser2'@'localhost';
|
||||
DROP USER 'testuser3'@'localhost';
|
||||
DROP DATABASE db_datadict_1;
|
||||
DROP DATABASE db_datadict_2;
|
||||
|
||||
|
||||
--echo #################################################################################
|
||||
--echo # Testcases 3.2.1.13+3.2.1.14+3.2.1.15: INFORMATION_SCHEMA.SCHEMATA modifications
|
||||
--echo #################################################################################
|
||||
# 3.2.1.13: Ensure that the creation of any new database object (e.g. table or
|
||||
# column) automatically inserts all relevant information on that
|
||||
# object into every appropriate INFORMATION_SCHEMA table.
|
||||
# 3.2.1.14: Ensure that the alteration of any existing database object
|
||||
# automatically updates all relevant information on that object in
|
||||
# every appropriate INFORMATION_SCHEMA table.
|
||||
# 3.2.1.15: Ensure that the dropping of any existing database object
|
||||
# automatically deletes all relevant information on that object from
|
||||
# every appropriate INFORMATION_SCHEMA table.
|
||||
#
|
||||
--disable_warnings
|
||||
DROP DATABASE IF EXISTS db_datadict;
|
||||
--enable_warnings
|
||||
|
||||
SELECT * FROM information_schema.schemata WHERE schema_name = 'db_datadict';
|
||||
CREATE DATABASE db_datadict CHARACTER SET 'latin1' COLLATE 'latin1_swedish_ci';
|
||||
SELECT * FROM information_schema.schemata WHERE schema_name = 'db_datadict';
|
||||
|
||||
# Check modify default CHARACTER SET
|
||||
SELECT schema_name, default_character_set_name
|
||||
FROM information_schema.schemata WHERE schema_name = 'db_datadict';
|
||||
ALTER SCHEMA db_datadict CHARACTER SET 'utf8';
|
||||
SELECT schema_name, default_character_set_name
|
||||
FROM information_schema.schemata WHERE schema_name = 'db_datadict';
|
||||
ALTER SCHEMA db_datadict CHARACTER SET 'latin1';
|
||||
|
||||
# Check modify default COLLATION
|
||||
SELECT schema_name, default_collation_name FROM information_schema.schemata
|
||||
WHERE schema_name = 'db_datadict';
|
||||
ALTER SCHEMA db_datadict COLLATE 'latin1_general_cs';
|
||||
SELECT schema_name, default_collation_name FROM information_schema.schemata
|
||||
WHERE schema_name = 'db_datadict';
|
||||
|
||||
# Check DROP DATABASE
|
||||
SELECT schema_name
|
||||
FROM information_schema.schemata WHERE schema_name = 'db_datadict';
|
||||
DROP DATABASE db_datadict;
|
||||
SELECT schema_name
|
||||
FROM information_schema.schemata WHERE schema_name = 'db_datadict';
|
||||
|
||||
|
||||
--echo ########################################################################
|
||||
--echo # Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and
|
||||
--echo # DDL on INFORMATION_SCHEMA tables are not supported
|
||||
--echo ########################################################################
|
||||
# 3.2.1.3: Ensure that no user may execute an INSERT statement on any
|
||||
# INFORMATION_SCHEMA table.
|
||||
# 3.2.1.4: Ensure that no user may execute an UPDATE statement on any
|
||||
# INFORMATION_SCHEMA table.
|
||||
# 3.2.1.5: Ensure that no user may execute a DELETE statement on any
|
||||
# INFORMATION_SCHEMA table.
|
||||
# 3.2.1.8: Ensure that no user may create an index on an INFORMATION_SCHEMA table.
|
||||
# 3.2.1.9: Ensure that no user may alter the definition of an
|
||||
# INFORMATION_SCHEMA table.
|
||||
# 3.2.1.10: Ensure that no user may drop an INFORMATION_SCHEMA table.
|
||||
# 3.2.1.11: Ensure that no user may move an INFORMATION_SCHEMA table to any
|
||||
# other database.
|
||||
# 3.2.1.12: Ensure that no user may directly add to, alter, or delete any data
|
||||
# in an INFORMATION_SCHEMA table.
|
||||
#
|
||||
--disable_warnings
|
||||
DROP DATABASE IF EXISTS db_datadict;
|
||||
--enable_warnings
|
||||
CREATE DATABASE db_datadict CHARACTER SET 'latin1' COLLATE 'latin1_swedish_ci';
|
||||
|
||||
# Note(mleich):
|
||||
# 1. We can get here different error messages.
|
||||
# 2. We do not want to unify the individual messages to the far to unspecific
|
||||
# 'Got one of the listed errors'.
|
||||
let $my_error_message =
|
||||
##### The previous statement must fail ######
|
||||
# Server type | expected error name | expected error message
|
||||
# --------------------------------------------------------------------------------------------------------------------
|
||||
# not embedded | ER_DBACCESS_DENIED_ERROR | ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
# embedded | ER_NON_INSERTABLE_TABLE | ERROR HY000: The target table schemata of the INSERT is not insertable-into
|
||||
# | or similar | or similar
|
||||
;
|
||||
|
||||
--disable_abort_on_error
|
||||
INSERT INTO information_schema.schemata
|
||||
(catalog_name, schema_name, default_character_set_name, sql_path)
|
||||
VALUES (NULL, 'db1', 'latin1', NULL);
|
||||
if (!$mysql_errno)
|
||||
{
|
||||
--echo $my_error_message
|
||||
exit;
|
||||
}
|
||||
INSERT INTO information_schema.schemata
|
||||
SELECT * FROM information_schema.schemata;
|
||||
if (!$mysql_errno)
|
||||
{
|
||||
--echo $my_error_message
|
||||
exit;
|
||||
}
|
||||
UPDATE information_schema.schemata
|
||||
SET default_character_set_name = 'utf8'
|
||||
WHERE schema_name = 'db_datadict';
|
||||
if (!$mysql_errno)
|
||||
{
|
||||
--echo $my_error_message
|
||||
exit;
|
||||
}
|
||||
UPDATE information_schema.schemata SET catalog_name = 't_4711';
|
||||
if (!$mysql_errno)
|
||||
{
|
||||
--echo $my_error_message
|
||||
exit;
|
||||
}
|
||||
DELETE FROM information_schema.schemata WHERE schema_name = 'db_datadict';
|
||||
if (!$mysql_errno)
|
||||
{
|
||||
--echo $my_error_message
|
||||
exit;
|
||||
}
|
||||
TRUNCATE information_schema.schemata;
|
||||
if (!$mysql_errno)
|
||||
{
|
||||
--echo $my_error_message
|
||||
exit;
|
||||
}
|
||||
CREATE INDEX i1 ON information_schema.schemata(schema_name);
|
||||
if (!$mysql_errno)
|
||||
{
|
||||
--echo $my_error_message
|
||||
exit;
|
||||
}
|
||||
ALTER TABLE information_schema.schemata ADD f1 INT;
|
||||
if (!$mysql_errno)
|
||||
{
|
||||
--echo $my_error_message
|
||||
exit;
|
||||
}
|
||||
DROP TABLE information_schema.schemata;
|
||||
if (!$mysql_errno)
|
||||
{
|
||||
--echo $my_error_message
|
||||
exit;
|
||||
}
|
||||
ALTER TABLE information_schema.schemata RENAME db_datadict.schemata;
|
||||
if (!$mysql_errno)
|
||||
{
|
||||
--echo $my_error_message
|
||||
exit;
|
||||
}
|
||||
ALTER TABLE information_schema.schemata RENAME information_schema.xschemata;
|
||||
if (!$mysql_errno)
|
||||
{
|
||||
--echo $my_error_message
|
||||
exit;
|
||||
}
|
||||
--enable_abort_on_error
|
||||
|
||||
# Cleanup
|
||||
DROP DATABASE db_datadict;
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
# suite/funcs_1/datadict/is_table_query.inc
|
||||
#
|
||||
# Check that every INFORMATION_SCHEMA table can be queried with a SELECT
|
||||
# statement, just as if it were an ordinary user-defined table.
|
||||
# (Requirement 3.2.1.1)
|
||||
#
|
||||
# The variable $is_table must be set before sourcing this script.
|
||||
#
|
||||
# Author:
|
||||
# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of
|
||||
# testsuite funcs_1
|
||||
# Create this script based on older scripts and new code.
|
||||
#
|
||||
--disable_warnings
|
||||
DROP VIEW IF EXISTS test.v1;
|
||||
DROP PROCEDURE IF EXISTS test.p1;
|
||||
DROP FUNCTION IF EXISTS test.f1;
|
||||
--enable_warnings
|
||||
eval CREATE VIEW test.v1 AS SELECT * FROM information_schema.$is_table;
|
||||
eval CREATE PROCEDURE test.p1() SELECT * FROM information_schema.$is_table;
|
||||
delimiter //;
|
||||
eval CREATE FUNCTION test.f1() returns BIGINT
|
||||
BEGIN
|
||||
DECLARE counter BIGINT DEFAULT NULL;
|
||||
SELECT COUNT(*) INTO counter FROM information_schema.$is_table;
|
||||
RETURN counter;
|
||||
END//
|
||||
delimiter ;//
|
||||
|
||||
|
||||
# We are not interested to check the content here.
|
||||
--echo # Attention: The printing of the next result sets is disabled.
|
||||
--disable_result_log
|
||||
eval SELECT * FROM information_schema.$is_table;
|
||||
SELECT * FROM test.v1;
|
||||
CALL test.p1;
|
||||
SELECT test.f1();
|
||||
--enable_result_log
|
||||
|
||||
DROP VIEW test.v1;
|
||||
DROP PROCEDURE test.p1;
|
||||
DROP FUNCTION test.f1;
|
||||
476
build/lib/mysql/mysql-test/suite/funcs_1/datadict/is_tables.inc
Normal file
476
build/lib/mysql/mysql-test/suite/funcs_1/datadict/is_tables.inc
Normal file
@@ -0,0 +1,476 @@
|
||||
# suite/funcs_1/datadict/is_tables.inc
|
||||
#
|
||||
# Check the layout of information_schema.tables and the impact of
|
||||
# CREATE/ALTER/DROP TABLE/VIEW/SCHEMA ... on it.
|
||||
#
|
||||
# Note:
|
||||
# This test is not intended
|
||||
# - to show information about the all time existing tables
|
||||
# within the databases information_schema and mysql
|
||||
# - for checking storage engine properties
|
||||
# Therefore please do not alter $engine_type and $other_engine_type.
|
||||
# Some results of the subtests depend on the storage engines assigned.
|
||||
#
|
||||
# Author:
|
||||
# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of
|
||||
# testsuite funcs_1
|
||||
# Create this script based on older scripts and new code.
|
||||
# Last Change:
|
||||
# 2008-06-11 mleich Move t/is_tables.test to this file and
|
||||
# create variants for embedded/non embedded server.
|
||||
#
|
||||
|
||||
let $engine_type = MEMORY;
|
||||
let $other_engine_type = MyISAM;
|
||||
|
||||
let $is_table = TABLES;
|
||||
|
||||
# The table INFORMATION_SCHEMA.TABLES must exist
|
||||
eval SHOW TABLES FROM information_schema LIKE '$is_table';
|
||||
|
||||
--echo #######################################################################
|
||||
--echo # Testcase 3.2.1.1: INFORMATION_SCHEMA tables can be queried via SELECT
|
||||
--echo #######################################################################
|
||||
# Ensure that every INFORMATION_SCHEMA table can be queried with a SELECT
|
||||
# statement, just as if it were an ordinary user-defined table.
|
||||
#
|
||||
--source suite/funcs_1/datadict/is_table_query.inc
|
||||
|
||||
|
||||
--echo #########################################################################
|
||||
--echo # Testcase 3.2.12.1: INFORMATION_SCHEMA.TABLES layout
|
||||
--echo #########################################################################
|
||||
# Ensure that the INFORMATION_SCHEMA.TABLES table has the following columns,
|
||||
# in the following order:
|
||||
#
|
||||
# TABLE_CATALOG (always shows NULL),
|
||||
# TABLE_SCHEMA (shows the name of the database, or schema, in which an
|
||||
# accessible table resides),
|
||||
# TABLE_NAME (shows the name of a table which the current user may access),
|
||||
# TABLE_TYPE (shows whether the table is a BASE TABLE, a TEMPORARY table,
|
||||
# or a VIEW),
|
||||
# ENGINE (shows the storage engine used for the table),
|
||||
# VERSION (shows the version number of the table's .frm file),
|
||||
# ROW_FORMAT (shows the table's row storage format; either FIXED, DYNAMIC
|
||||
# or COMPRESSED),
|
||||
# TABLE_ROWS (shows the number of rows in the table),
|
||||
# AVG_ROW_LENGTH (shows the average length of the table's rows),
|
||||
# DATA_LENGTH (shows the length of the table's data file),
|
||||
# MAX_DATA_LENGTH (shows the maximum length of the table's data file),
|
||||
# INDEX_LENGTH (shows the length of the index file associated with the table),
|
||||
# DATA_FREE (shows the number of allocated, unused bytes),
|
||||
# AUTO_INCREMENT (shows the next AUTO_INCREMENT value, where applicable),
|
||||
# CREATE_TIME (shows the timestamp of the time the table was created),
|
||||
# UPDATE_TIME (shows the timestamp of the time the table's data file was
|
||||
# last updated),
|
||||
# CHECK_TIME (shows the timestamp of the time the table was last checked),
|
||||
# TABLE_COLLATION (shows the table's default collation),
|
||||
# CHECKSUM (shows the live checksum value for the table, if any; otherwise NULL),
|
||||
# CREATE_OPTIONS (shows any additional options used in the table's definition;
|
||||
# otherwise NULL),
|
||||
# TABLE_COMMENT (shows the comment added to the table's definition;
|
||||
# otherwise NULL).
|
||||
#
|
||||
--source suite/funcs_1/datadict/datadict_bug_12777.inc
|
||||
eval DESCRIBE information_schema.$is_table;
|
||||
--source suite/funcs_1/datadict/datadict_bug_12777.inc
|
||||
eval SHOW CREATE TABLE information_schema.$is_table;
|
||||
--source suite/funcs_1/datadict/datadict_bug_12777.inc
|
||||
eval SHOW COLUMNS FROM information_schema.$is_table;
|
||||
|
||||
# Note: Retrieval of information within information_schema.columns about
|
||||
# information_schema.tables is in is_columns_is.test.
|
||||
|
||||
# Show that TABLE_CATALOG is always NULL.
|
||||
SELECT table_catalog, table_schema, table_name
|
||||
FROM information_schema.tables WHERE table_catalog IS NOT NULL;
|
||||
|
||||
|
||||
--echo ################################################################################
|
||||
--echo # Testcase 3.2.12.2 + 3.2.12.3: INFORMATION_SCHEMA.TABLES accessible information
|
||||
--echo ################################################################################
|
||||
# 3.2.12.2: Ensure that the table shows the relevant information on every base table
|
||||
# and view on which the current user or PUBLIC has privileges.
|
||||
# 3.2.12.3: Ensure that the table does not show any information on any tables
|
||||
# on which the current user and public have no privileges.
|
||||
#
|
||||
# Note: Check of content within information_schema.tables about tables within
|
||||
# database is in
|
||||
# mysql is_tables_mysql.test
|
||||
# information_schema is_tables_is.test
|
||||
# test% is_tables_<engine>.test
|
||||
#
|
||||
--disable_warnings
|
||||
DROP DATABASE IF EXISTS db_datadict;
|
||||
--enable_warnings
|
||||
CREATE DATABASE db_datadict;
|
||||
|
||||
--error 0,ER_CANNOT_USER
|
||||
DROP USER 'testuser1'@'localhost';
|
||||
CREATE USER 'testuser1'@'localhost';
|
||||
GRANT CREATE, CREATE VIEW, INSERT, SELECT ON db_datadict.*
|
||||
TO 'testuser1'@'localhost' WITH GRANT OPTION;
|
||||
--error 0,ER_CANNOT_USER
|
||||
DROP USER 'testuser2'@'localhost';
|
||||
CREATE USER 'testuser2'@'localhost';
|
||||
--error 0,ER_CANNOT_USER
|
||||
DROP USER 'testuser3'@'localhost';
|
||||
CREATE USER 'testuser3'@'localhost';
|
||||
|
||||
--replace_result $engine_type <engine_type>
|
||||
eval
|
||||
CREATE TABLE db_datadict.tb1 (f1 INT, f2 INT, f3 INT)
|
||||
ENGINE = $engine_type;
|
||||
|
||||
GRANT SELECT ON db_datadict.tb1 TO 'testuser1'@'localhost';
|
||||
GRANT ALL ON db_datadict.tb1 TO 'testuser2'@'localhost' WITH GRANT OPTION;
|
||||
|
||||
let $my_select = SELECT * FROM information_schema.tables
|
||||
WHERE table_schema = 'db_datadict' ORDER BY table_name;
|
||||
let $my_show = SHOW TABLES FROM db_datadict;
|
||||
|
||||
--echo # Establish connection testuser1 (user=testuser1)
|
||||
--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
|
||||
connect (testuser1, localhost, testuser1, , db_datadict);
|
||||
# tb2 is not granted to anyone
|
||||
--replace_result $engine_type <engine_type>
|
||||
eval
|
||||
CREATE TABLE tb2 (f1 DECIMAL)
|
||||
ENGINE = $engine_type;
|
||||
--replace_result $engine_type <engine_type>
|
||||
eval
|
||||
CREATE TABLE tb3 (f1 VARCHAR(200))
|
||||
ENGINE = $engine_type;
|
||||
GRANT SELECT ON db_datadict.tb3 to 'testuser3'@'localhost';
|
||||
GRANT INSERT ON db_datadict.tb3 to 'testuser2'@'localhost';
|
||||
CREATE VIEW v3 AS SELECT * FROM tb3;
|
||||
GRANT SELECT ON db_datadict.v3 to 'testuser3'@'localhost';
|
||||
|
||||
if ($have_bug_32285)
|
||||
{
|
||||
--disable_ps_protocol
|
||||
}
|
||||
# We do not want to check here values affected by
|
||||
# - the storage engine used
|
||||
# - Operating system / Filesystem
|
||||
# - start time of test
|
||||
# 1 TABLE_CATALOG
|
||||
# 2 TABLE_SCHEMA
|
||||
# 3 TABLE_NAME
|
||||
# 4 TABLE_TYPE
|
||||
# 5 ENGINE affected by storage engine used
|
||||
# 6 VERSION
|
||||
# 7 ROW_FORMAT affected by storage engine used
|
||||
# 8 TABLE_ROWS
|
||||
# 9 AVG_ROW_LENGTH affected by storage engine used
|
||||
# 10 DATA_LENGTH affected by storage engine used and maybe OS
|
||||
# 11 MAX_DATA_LENGTH affected by storage engine used and maybe OS
|
||||
# 12 INDEX_LENGTH affected by storage engine used and maybe OS
|
||||
# 13 DATA_FREE affected by storage engine used and maybe OS
|
||||
# 14 AUTO_INCREMENT
|
||||
# 15 CREATE_TIME depends roughly on start time of test (*)
|
||||
# 16 UPDATE_TIME depends roughly on start time of test (*)
|
||||
# 17 CHECK_TIME depends roughly on start time of test and storage engine (*)
|
||||
# 18 TABLE_COLLATION
|
||||
# 19 CHECKSUM affected by storage engine used
|
||||
# 20 CREATE_OPTIONS
|
||||
# 21 TABLE_COMMENT affected by some storage engines
|
||||
# (*) In case of view or temporary table NULL.
|
||||
--replace_column 5 "#ENG#" 7 "#RF#" 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "#CRT" 16 "#UT#" 17 "#CT#" 19 "#CS#"
|
||||
eval $my_select;
|
||||
--enable_ps_protocol
|
||||
--sorted_result
|
||||
eval $my_show;
|
||||
|
||||
--echo # Establish connection testuser2 (user=testuser2)
|
||||
--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
|
||||
connect (testuser2, localhost, testuser2, , db_datadict);
|
||||
if ($have_bug_32285)
|
||||
{
|
||||
--disable_ps_protocol
|
||||
}
|
||||
--replace_column 5 "#ENG#" 7 "#RF#" 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "#CRT" 16 "#UT#" 17 "#CT#" 19 "#CS#"
|
||||
eval $my_select;
|
||||
--enable_ps_protocol
|
||||
--sorted_result
|
||||
eval $my_show;
|
||||
|
||||
--echo # Establish connection testuser3 (user=testuser3)
|
||||
--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
|
||||
connect (testuser3, localhost, testuser3, , db_datadict);
|
||||
if ($have_bug_32285)
|
||||
{
|
||||
--disable_ps_protocol
|
||||
}
|
||||
--replace_column 5 "#ENG#" 7 "#RF#" 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "#CRT" 16 "#UT#" 17 "#CT#" 19 "#CS#"
|
||||
eval $my_select;
|
||||
--enable_ps_protocol
|
||||
--sorted_result
|
||||
eval $my_show;
|
||||
|
||||
--echo # Switch to connection default (user=root)
|
||||
connection default;
|
||||
# we see only 'public' tables
|
||||
if ($have_bug_32285)
|
||||
{
|
||||
--disable_ps_protocol
|
||||
}
|
||||
--replace_column 5 "#ENG#" 7 "#RF#" 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "#CRT" 16 "#UT#" 17 "#CT#" 19 "#CS#"
|
||||
eval $my_select;
|
||||
--enable_ps_protocol
|
||||
--sorted_result
|
||||
eval $my_show;
|
||||
|
||||
# Cleanup
|
||||
--echo # Close connection testuser1, testuser2, testuser3
|
||||
disconnect testuser1;
|
||||
disconnect testuser2;
|
||||
disconnect testuser3;
|
||||
DROP USER 'testuser1'@'localhost';
|
||||
DROP USER 'testuser2'@'localhost';
|
||||
DROP USER 'testuser3'@'localhost';
|
||||
DROP DATABASE db_datadict;
|
||||
|
||||
|
||||
--echo #########################################################################
|
||||
--echo # 3.2.1.13+3.2.1.14+3.2.1.15: INFORMATION_SCHEMA.TABLES modifications
|
||||
--echo #########################################################################
|
||||
# 3.2.1.13: Ensure that the creation of any new database object (e.g. table or
|
||||
# column) automatically inserts all relevant information on that
|
||||
# object into every appropriate INFORMATION_SCHEMA table.
|
||||
# 3.2.1.14: Ensure that the alteration of any existing database object
|
||||
# automatically updates all relevant information on that object in
|
||||
# every appropriate INFORMATION_SCHEMA table.
|
||||
# 3.2.1.15: Ensure that the dropping of any existing database object
|
||||
# automatically deletes all relevant information on that object from
|
||||
# every appropriate INFORMATION_SCHEMA table.
|
||||
#
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS test.t1_my_table;
|
||||
DROP DATABASE IF EXISTS db_datadict;
|
||||
--enable_warnings
|
||||
CREATE DATABASE db_datadict;
|
||||
|
||||
SELECT table_name FROM information_schema.tables
|
||||
WHERE table_name LIKE 't1_my_table%';
|
||||
--replace_result $engine_type <engine_type>
|
||||
eval
|
||||
CREATE TABLE test.t1_my_table (f1 BIGINT)
|
||||
DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci
|
||||
COMMENT = 'Initial Comment' ENGINE = $engine_type;
|
||||
# Settings used in CREATE TABLE must be visible in information_schema.tables.
|
||||
--vertical_results
|
||||
--replace_column 5 "#ENG#" 7 "#RF#" 9 "#ARL#" 10 "#DL#" 11 "#MDL#" 12 "#IL#" 13 "#DF#" 15 "#CRT" 16 "#UT#" 17 "#CT#" 19 "#CS#"
|
||||
SELECT * FROM information_schema.tables
|
||||
WHERE table_name = 't1_my_table';
|
||||
--horizontal_results
|
||||
#
|
||||
# Check modification of TABLE_NAME
|
||||
SELECT table_name FROM information_schema.tables
|
||||
WHERE table_name LIKE 't1_my_table%';
|
||||
RENAME TABLE test.t1_my_table TO test.t1_my_tablex;
|
||||
SELECT table_name FROM information_schema.tables
|
||||
WHERE table_name LIKE 't1_my_table%';
|
||||
#
|
||||
# Check modification of TABLE_SCHEMA
|
||||
SELECT table_schema,table_name FROM information_schema.tables
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
RENAME TABLE test.t1_my_tablex TO db_datadict.t1_my_tablex;
|
||||
SELECT table_schema,table_name FROM information_schema.tables
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
#
|
||||
# Check modification of ENGINE
|
||||
--replace_result $engine_type <engine_type>
|
||||
SELECT table_name, engine FROM information_schema.tables
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
--replace_result $other_engine_type <other_engine_type>
|
||||
eval
|
||||
ALTER TABLE db_datadict.t1_my_tablex
|
||||
ENGINE = $other_engine_type;
|
||||
--replace_result $other_engine_type <other_engine_type>
|
||||
SELECT table_name, engine FROM information_schema.tables
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
#
|
||||
# Check modification of TABLE_ROWS
|
||||
SELECT table_name, table_rows FROM information_schema.tables
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
INSERT INTO db_datadict.t1_my_tablex VALUES(1),(2);
|
||||
SELECT table_name, table_rows FROM information_schema.tables
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
#
|
||||
# Check indirect modification of TABLE_COLLATION
|
||||
SELECT table_name, table_collation FROM information_schema.tables
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
ALTER TABLE db_datadict.t1_my_tablex DEFAULT CHARACTER SET utf8;
|
||||
SELECT table_name, table_collation FROM information_schema.tables
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
# Check direct modification of TABLE_COLLATION
|
||||
SELECT table_name, table_collation FROM information_schema.tables
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
ALTER TABLE db_datadict.t1_my_tablex
|
||||
DEFAULT CHARACTER SET latin1 COLLATE latin1_german1_ci;
|
||||
SELECT table_name, table_collation FROM information_schema.tables
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
#
|
||||
# Check modification of TABLE_COMMENT
|
||||
SELECT table_name, TABLE_COMMENT FROM information_schema.tables
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
ALTER TABLE db_datadict.t1_my_tablex COMMENT 'Changed Comment';
|
||||
SELECT table_name, TABLE_COMMENT FROM information_schema.tables
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
#
|
||||
# Check modification of AUTO_INCREMENT
|
||||
SELECT table_name, AUTO_INCREMENT FROM information_schema.tables
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
ALTER TABLE db_datadict.t1_my_tablex
|
||||
ADD f2 BIGINT AUTO_INCREMENT, ADD PRIMARY KEY (f2);
|
||||
SELECT table_name, AUTO_INCREMENT FROM information_schema.tables
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
#
|
||||
# Check modification of ROW_FORMAT
|
||||
SELECT table_name, ROW_FORMAT FROM information_schema.tables
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
ALTER TABLE db_datadict.t1_my_tablex ROW_FORMAT = dynamic;
|
||||
SELECT table_name, ROW_FORMAT FROM information_schema.tables
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
#
|
||||
# Check "growth" of UPDATE_TIME and modification of CHECKSUM
|
||||
SELECT table_name, checksum FROM information_schema.tables
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
ALTER TABLE db_datadict.t1_my_tablex CHECKSUM = 1;
|
||||
SELECT table_name, checksum IS NOT NULL FROM information_schema.tables
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
SELECT UPDATE_TIME, checksum INTO @UPDATE_TIME, @checksum
|
||||
FROM information_schema.tables
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
# Enforce a time difference bigger than the smallest unit (1 second).
|
||||
--real_sleep 1.1
|
||||
INSERT INTO db_datadict.t1_my_tablex SET f1 = 3;
|
||||
FLUSH TABLES;
|
||||
SELECT UPDATE_TIME > @UPDATE_TIME
|
||||
AS "Is current UPDATE_TIME bigger than before last INSERT?"
|
||||
FROM information_schema.tables
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
SELECT checksum <> @checksum
|
||||
AS "Is current CHECKSUM different than before last INSERT?"
|
||||
FROM information_schema.tables
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
#
|
||||
# Information is used later
|
||||
SELECT CREATE_TIME INTO @CREATE_TIME FROM information_schema.tables
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
#
|
||||
# Check impact of DROP TABLE
|
||||
SELECT table_name FROM information_schema.tables
|
||||
WHERE table_name LIKE 't1_my_table%';
|
||||
DROP TABLE db_datadict.t1_my_tablex;
|
||||
SELECT table_name FROM information_schema.tables
|
||||
WHERE table_name LIKE 't1_my_table%';
|
||||
#
|
||||
# Check "growth" of CREATE_TIME
|
||||
--replace_result $other_engine_type <other_engine_type>
|
||||
eval
|
||||
CREATE TABLE test.t1_my_tablex (f1 BIGINT)
|
||||
ENGINE = $other_engine_type;
|
||||
SELECT CREATE_TIME > @CREATE_TIME
|
||||
AS "Is current CREATE_TIME bigger than for the old dropped table?"
|
||||
FROM information_schema.tables
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
DROP TABLE test.t1_my_tablex;
|
||||
#
|
||||
# Check a VIEW
|
||||
CREATE VIEW test.t1_my_tablex AS SELECT 1;
|
||||
--vertical_results
|
||||
SELECT * FROM information_schema.tables
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
--horizontal_results
|
||||
DROP VIEW test.t1_my_tablex;
|
||||
SELECT table_name FROM information_schema.tables
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
#
|
||||
# Check a temporary table
|
||||
--replace_result $other_engine_type <other_engine_type>
|
||||
eval
|
||||
CREATE TEMPORARY TABLE test.t1_my_tablex
|
||||
ENGINE = $other_engine_type
|
||||
AS SELECT 1;
|
||||
--vertical_results
|
||||
SELECT table_name, table_type FROM information_schema.tables
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
--horizontal_results
|
||||
DROP TEMPORARY TABLE test.t1_my_tablex;
|
||||
#
|
||||
# Check impact of DROP SCHEMA
|
||||
--replace_result $engine_type <engine_type>
|
||||
eval
|
||||
CREATE TABLE db_datadict.t1_my_tablex
|
||||
ENGINE = $engine_type AS
|
||||
SELECT 1;
|
||||
SELECT table_name FROM information_schema.tables
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
DROP DATABASE db_datadict;
|
||||
SELECT table_name FROM information_schema.tables
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
|
||||
|
||||
--echo ########################################################################
|
||||
--echo # Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and
|
||||
--echo # DDL on INFORMATION_SCHEMA tables are not supported
|
||||
--echo ########################################################################
|
||||
# 3.2.1.3: Ensure that no user may execute an INSERT statement on any
|
||||
# INFORMATION_SCHEMA table.
|
||||
# 3.2.1.4: Ensure that no user may execute an UPDATE statement on any
|
||||
# INFORMATION_SCHEMA table.
|
||||
# 3.2.1.5: Ensure that no user may execute a DELETE statement on any
|
||||
# INFORMATION_SCHEMA table.
|
||||
# 3.2.1.8: Ensure that no user may create an index on an
|
||||
# INFORMATION_SCHEMA table.
|
||||
# 3.2.1.9: Ensure that no user may alter the definition of an
|
||||
# INFORMATION_SCHEMA table.
|
||||
# 3.2.1.10: Ensure that no user may drop an INFORMATION_SCHEMA table.
|
||||
# 3.2.1.11: Ensure that no user may move an INFORMATION_SCHEMA table to any
|
||||
# other database.
|
||||
# 3.2.1.12: Ensure that no user may directly add to, alter, or delete any data
|
||||
# in an INFORMATION_SCHEMA table.
|
||||
#
|
||||
--disable_warnings
|
||||
DROP DATABASE IF EXISTS db_datadict;
|
||||
--enable_warnings
|
||||
CREATE DATABASE db_datadict;
|
||||
--replace_result $engine_type <engine_type>
|
||||
eval
|
||||
CREATE TABLE db_datadict.t1 (f1 BIGINT)
|
||||
ENGINE = $engine_type;
|
||||
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
INSERT INTO information_schema.tables
|
||||
SELECT * FROM information_schema.tables;
|
||||
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
UPDATE information_schema.tables SET table_schema = 'test'
|
||||
WHERE table_name = 't1';
|
||||
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
DELETE FROM information_schema.tables WHERE table_name = 't1';
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
TRUNCATE information_schema.tables;
|
||||
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
CREATE INDEX my_idx_on_tables ON information_schema.tables(table_schema);
|
||||
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
ALTER TABLE information_schema.tables DROP PRIMARY KEY;
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
ALTER TABLE information_schema.tables ADD f1 INT;
|
||||
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
DROP TABLE information_schema.tables;
|
||||
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
ALTER TABLE information_schema.tables RENAME db_datadict.tables;
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
ALTER TABLE information_schema.tables RENAME information_schema.xtables;
|
||||
|
||||
# Cleanup
|
||||
DROP DATABASE db_datadict;
|
||||
|
||||
@@ -0,0 +1,258 @@
|
||||
# suite/funcs_1/datadict/is_triggers.inc
|
||||
#
|
||||
# Check the layout of information_schema.triggers and the impact of
|
||||
# CREATE/ALTER/DROP TABLE/VIEW/SCHEMA ... on it.
|
||||
#
|
||||
# Note:
|
||||
# This test is not intended
|
||||
# - to show information about the all time existing triggers
|
||||
# (there are no in the moment) within the databases information_schema
|
||||
# and mysql
|
||||
# - for checking storage engine properties
|
||||
# Therefore please do not alter $engine_type and $other_engine_type.
|
||||
#
|
||||
# Author:
|
||||
# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of
|
||||
# testsuite funcs_1
|
||||
# Create this script based on older scripts and new code.
|
||||
# Last Change:
|
||||
# 2008-06-11 mleich Move t/is_triggers.test to this file and
|
||||
# create variants for embedded/non embedded server.
|
||||
#
|
||||
|
||||
let $engine_type = MEMORY;
|
||||
let $other_engine_type = MyISAM;
|
||||
|
||||
let $is_table = TRIGGERS;
|
||||
|
||||
# The table INFORMATION_SCHEMA.TRIGGERS must exist
|
||||
eval SHOW TABLES FROM information_schema LIKE '$is_table';
|
||||
|
||||
--echo #######################################################################
|
||||
--echo # Testcase 3.2.1.1: INFORMATION_SCHEMA tables can be queried via SELECT
|
||||
--echo #######################################################################
|
||||
# Ensure that every INFORMATION_SCHEMA table can be queried with a SELECT
|
||||
# statement, just as if it were an ordinary user-defined table.
|
||||
#
|
||||
--source suite/funcs_1/datadict/is_table_query.inc
|
||||
|
||||
|
||||
--echo #########################################################################
|
||||
--echo # Testcase 3.2.12.1: INFORMATION_SCHEMA.TRIGGERS layout
|
||||
--echo #########################################################################
|
||||
# Ensure that the INFORMATION_SCHEMA.TRIGGERS table has the following columns,
|
||||
# in the following order:
|
||||
#
|
||||
# TRIGGER_CATALOG NULL
|
||||
# TRIGGER_SCHEMA name of the database in which the trigger occurs
|
||||
# TRIGGER_NAME
|
||||
# EVENT_MANIPULATION event associated with the trigger
|
||||
# ('INSERT', 'DELETE', or 'UPDATE')
|
||||
# EVENT_OBJECT_CATALOG NULL
|
||||
# EVENT_OBJECT_SCHEMA database in which the table associated with the
|
||||
# trigger occurs
|
||||
# EVENT_OBJECT_TABLE name of the table associated with the trigger
|
||||
# ACTION_ORDER 0
|
||||
# ACTION_CONDITION NULL
|
||||
# ACTION_STATEMENT
|
||||
# ACTION_ORIENTATION ROW
|
||||
# ACTION_TIMING 'BEFORE' or 'AFTER'
|
||||
# ACTION_REFERENCE_OLD_TABLE NULL
|
||||
# ACTION_REFERENCE_NEW_TABLE NULL
|
||||
# ACTION_REFERENCE_OLD_ROW OLD
|
||||
# ACTION_REFERENCE_NEW_ROW NEW
|
||||
# CREATED NULL (0)
|
||||
# SQL_MODE server SQL mode that was in effect at the time
|
||||
# when the trigger was created
|
||||
# (also used during trigger execution)
|
||||
# DEFINER who defined the trigger
|
||||
#
|
||||
--source suite/funcs_1/datadict/datadict_bug_12777.inc
|
||||
eval DESCRIBE information_schema.$is_table;
|
||||
--source suite/funcs_1/datadict/datadict_bug_12777.inc
|
||||
eval SHOW CREATE TABLE information_schema.$is_table;
|
||||
--source suite/funcs_1/datadict/datadict_bug_12777.inc
|
||||
eval SHOW COLUMNS FROM information_schema.$is_table;
|
||||
|
||||
|
||||
# Note: Retrieval of information within information_schema.columns about
|
||||
# information_schema.tables is in is_columns_is.test.
|
||||
|
||||
# Show that several columns are always NULL.
|
||||
SELECT * FROM information_schema.triggers
|
||||
WHERE trigger_catalog IS NOT NULL OR event_object_catalog IS NOT NULL
|
||||
OR action_condition IS NOT NULL OR action_reference_old_table IS NOT NULL
|
||||
OR action_reference_new_table IS NOT NULL;
|
||||
|
||||
|
||||
--echo ##################################################################################
|
||||
--echo # Testcase 3.2.18.2 + 3.2.18.3: INFORMATION_SCHEMA.TRIGGERS accessible information
|
||||
--echo ##################################################################################
|
||||
# 3.2.18.2: Ensure that the table shows the relevant information on every
|
||||
# trigger on which the current user or PUBLIC has privileges.
|
||||
# 3.2.18.3: Ensure that the table does not show any information on any trigger
|
||||
# on which the current user and public have no privileges.
|
||||
# The SUPER (before 5.1.22) or TRIGGER (since 5.1.22) privilege is required for
|
||||
# - creation of triggers
|
||||
# - retrieval in INFORMATION_SCHEMA.TRIGGERS (affects size of result set)
|
||||
#
|
||||
--disable_warnings
|
||||
DROP DATABASE IF EXISTS db_datadict;
|
||||
--enable_warnings
|
||||
CREATE DATABASE db_datadict;
|
||||
--error 0,ER_CANNOT_USER
|
||||
DROP USER 'testuser1'@'localhost';
|
||||
CREATE USER 'testuser1'@'localhost';
|
||||
--error 0,ER_CANNOT_USER
|
||||
DROP USER 'testuser2'@'localhost';
|
||||
CREATE USER 'testuser2'@'localhost';
|
||||
--error 0,ER_CANNOT_USER
|
||||
DROP USER 'testuser3'@'localhost';
|
||||
CREATE USER 'testuser3'@'localhost';
|
||||
--error 0,ER_CANNOT_USER
|
||||
DROP USER 'testuser4'@'localhost';
|
||||
CREATE USER 'testuser4'@'localhost';
|
||||
|
||||
GRANT TRIGGER ON *.* TO 'testuser1'@'localhost';
|
||||
GRANT TRIGGER ON *.* TO 'testuser3'@'localhost';
|
||||
GRANT TRIGGER ON *.* TO 'testuser4'@'localhost';
|
||||
GRANT ALL ON db_datadict.* TO 'testuser1'@'localhost' WITH GRANT OPTION;
|
||||
|
||||
let $my_select = SELECT * FROM information_schema.triggers
|
||||
WHERE trigger_name = 'trg1';
|
||||
let $my_show = SHOW TRIGGERS FROM db_datadict;
|
||||
--echo # Establish connection testuser1 (user=testuser1)
|
||||
--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
|
||||
connect (testuser1, localhost, testuser1, , db_datadict);
|
||||
--replace_result $engine_type <engine_type>
|
||||
eval
|
||||
CREATE TABLE db_datadict.t1 (f1 INT, f2 INT, f3 INT)
|
||||
ENGINE = $engine_type;
|
||||
CREATE TRIGGER trg1 BEFORE INSERT
|
||||
ON db_datadict.t1 FOR EACH ROW SET @test_before = 2, new.f1 = @test_before;
|
||||
GRANT ALL ON db_datadict.t1 TO 'testuser2'@'localhost';
|
||||
REVOKE TRIGGER ON db_datadict.t1 FROM 'testuser2'@'localhost';
|
||||
GRANT SELECT ON db_datadict.t1 TO 'testuser3'@'localhost';
|
||||
eval $my_select;
|
||||
eval $my_show;
|
||||
|
||||
--echo # Establish connection testuser2 (user=testuser2)
|
||||
--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
|
||||
connect (testuser2, localhost, testuser2, , db_datadict);
|
||||
SHOW GRANTS FOR 'testuser2'@'localhost';
|
||||
--echo # No TRIGGER Privilege --> no result for query
|
||||
eval $my_select;
|
||||
eval $my_show;
|
||||
|
||||
--echo # Establish connection testuser3 (user=testuser3)
|
||||
--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
|
||||
connect (testuser3, localhost, testuser3, , test);
|
||||
SHOW GRANTS FOR 'testuser3'@'localhost';
|
||||
--echo # TRIGGER Privilege + SELECT Privilege on t1 --> result for query
|
||||
eval $my_select;
|
||||
eval $my_show;
|
||||
|
||||
--echo # Establish connection testuser4 (user=testuser4)
|
||||
--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
|
||||
connect (testuser4, localhost, testuser4, , test);
|
||||
SHOW GRANTS FOR 'testuser4'@'localhost';
|
||||
--echo # TRIGGER Privilege + no SELECT Privilege on t1 --> result for query
|
||||
--disable_abort_on_error
|
||||
SELECT * FROM db_datadict.t1;
|
||||
DESC db_datadict.t1;
|
||||
eval $my_select;
|
||||
eval $my_show;
|
||||
|
||||
--echo # Switch to connection default and close connections testuser1 - testuser4
|
||||
connection default;
|
||||
disconnect testuser1;
|
||||
disconnect testuser2;
|
||||
disconnect testuser3;
|
||||
disconnect testuser4;
|
||||
eval $my_select;
|
||||
eval $my_show;
|
||||
DROP USER 'testuser1'@'localhost';
|
||||
DROP USER 'testuser2'@'localhost';
|
||||
DROP USER 'testuser3'@'localhost';
|
||||
DROP USER 'testuser4'@'localhost';
|
||||
DROP DATABASE db_datadict;
|
||||
|
||||
|
||||
--echo #########################################################################
|
||||
--echo # 3.2.1.13+3.2.1.14+3.2.1.15: INFORMATION_SCHEMA.TRIGGERS modifications
|
||||
--echo #########################################################################
|
||||
# 3.2.1.13: Ensure that the creation of any new database object (e.g. table or
|
||||
# column) automatically inserts all relevant information on that
|
||||
# object into every appropriate INFORMATION_SCHEMA table.
|
||||
# 3.2.1.14: Ensure that the alteration of any existing database object
|
||||
# automatically updates all relevant information on that object in
|
||||
# every appropriate INFORMATION_SCHEMA table.
|
||||
# 3.2.1.15: Ensure that the dropping of any existing database object
|
||||
# automatically deletes all relevant information on that object from
|
||||
# every appropriate INFORMATION_SCHEMA table.
|
||||
# FIXME: To be implemented
|
||||
|
||||
|
||||
--echo ########################################################################
|
||||
--echo # Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and
|
||||
--echo # DDL on INFORMATION_SCHEMA tables are not supported
|
||||
--echo ########################################################################
|
||||
# 3.2.1.3: Ensure that no user may execute an INSERT statement on any
|
||||
# INFORMATION_SCHEMA table.
|
||||
# 3.2.1.4: Ensure that no user may execute an UPDATE statement on any
|
||||
# INFORMATION_SCHEMA table.
|
||||
# 3.2.1.5: Ensure that no user may execute a DELETE statement on any
|
||||
# INFORMATION_SCHEMA table.
|
||||
# 3.2.1.8: Ensure that no user may create an index on an
|
||||
# INFORMATION_SCHEMA table.
|
||||
# 3.2.1.9: Ensure that no user may alter the definition of an
|
||||
# INFORMATION_SCHEMA table.
|
||||
# 3.2.1.10: Ensure that no user may drop an INFORMATION_SCHEMA table.
|
||||
# 3.2.1.11: Ensure that no user may move an INFORMATION_SCHEMA table to any
|
||||
# other database.
|
||||
# 3.2.1.12: Ensure that no user may directly add to, alter, or delete any data
|
||||
# in an INFORMATION_SCHEMA table.
|
||||
#
|
||||
--disable_warnings
|
||||
DROP DATABASE IF EXISTS db_datadict;
|
||||
--enable_warnings
|
||||
CREATE DATABASE db_datadict;
|
||||
--replace_result $engine_type <engine_type>
|
||||
eval
|
||||
CREATE TABLE db_datadict.t1 (f1 BIGINT)
|
||||
ENGINE = $engine_type;
|
||||
CREATE TRIGGER db_datadict.trg1 BEFORE INSERT
|
||||
ON db_datadict.t1 FOR EACH ROW SET @test_before = 2, new.f1 = @test_before;
|
||||
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
INSERT INTO information_schema.triggers
|
||||
SELECT * FROM information_schema.triggers;
|
||||
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
UPDATE information_schema.triggers SET trigger_schema = 'test'
|
||||
WHERE table_name = 't1';
|
||||
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
DELETE FROM information_schema.triggers WHERE trigger_name = 't1';
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
TRUNCATE information_schema.triggers;
|
||||
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
CREATE INDEX my_idx_on_triggers ON information_schema.triggers(trigger_schema);
|
||||
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
ALTER TABLE information_schema.triggers DROP PRIMARY KEY;
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
ALTER TABLE information_schema.triggers ADD f1 INT;
|
||||
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
DROP TABLE information_schema.triggers;
|
||||
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
ALTER TABLE information_schema.triggers RENAME db_datadict.triggers;
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
ALTER TABLE information_schema.triggers RENAME information_schema.xtriggers;
|
||||
|
||||
# Cleanup
|
||||
DROP DATABASE db_datadict;
|
||||
|
||||
306
build/lib/mysql/mysql-test/suite/funcs_1/datadict/is_views.inc
Normal file
306
build/lib/mysql/mysql-test/suite/funcs_1/datadict/is_views.inc
Normal file
@@ -0,0 +1,306 @@
|
||||
# suite/funcs_1/datadict/is_views.inc
|
||||
#
|
||||
# Check the layout of information_schema.views and the impact of
|
||||
# CREATE/ALTER/DROP TABLE/VIEW/SCHEMA ... on it.
|
||||
#
|
||||
# Note:
|
||||
# - This test should not check storage engine properties.
|
||||
# - Please do not change the storage engines used within this test
|
||||
# except you know that the impact is acceptable.
|
||||
# Some storage engines might not support the modification of
|
||||
# properties like in the following tests.
|
||||
#
|
||||
# Author:
|
||||
# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of
|
||||
# testsuite funcs_1
|
||||
# Create this script based on older scripts and new code.
|
||||
# Last Change:
|
||||
# 2008-06-11 mleich Move t/is_views.test to this file and
|
||||
# create variants for embedded/non embedded server.
|
||||
#
|
||||
|
||||
let $engine_type = MEMORY;
|
||||
let $other_engine_type = MyISAM;
|
||||
|
||||
let $is_table = VIEWS;
|
||||
|
||||
# The table INFORMATION_SCHEMA.VIEWS must exist
|
||||
eval SHOW TABLES FROM information_schema LIKE '$is_table';
|
||||
|
||||
--echo #######################################################################
|
||||
--echo # Testcase 3.2.1.1: INFORMATION_SCHEMA tables can be queried via SELECT
|
||||
--echo #######################################################################
|
||||
# Ensure that every INFORMATION_SCHEMA table can be queried with a SELECT
|
||||
# statement, just as if it were an ordinary user-defined table.
|
||||
#
|
||||
--source suite/funcs_1/datadict/is_table_query.inc
|
||||
|
||||
|
||||
--echo #########################################################################
|
||||
--echo # Testcase 3.2.13.1: INFORMATION_SCHEMA.VIEWS layout
|
||||
--echo #########################################################################
|
||||
# Ensure that the INFORMATION_SCHEMA.VIEWS table has the following columns,
|
||||
# in the following order:
|
||||
#
|
||||
# TABLE_CATALOG (always shows NULL),
|
||||
# TABLE_SCHEMA (shows the database, or schema, in which an accessible
|
||||
# view resides),
|
||||
# TABLE_NAME (shows the name of a view accessible to the current user),
|
||||
# VIEW_DEFINITION (shows the SELECT statement that makes up the
|
||||
# view's definition),
|
||||
# CHECK_OPTION (shows the value of the WITH CHECK OPTION clause used to define
|
||||
# the view, either NONE, LOCAL or CASCADED),
|
||||
# IS_UPDATABLE (shows whether the view is an updatable view),
|
||||
# DEFINER (added with 5.0.14),
|
||||
# SECURITY_TYPE (added with 5.0.14).
|
||||
#
|
||||
--source suite/funcs_1/datadict/datadict_bug_12777.inc
|
||||
eval DESCRIBE information_schema.$is_table;
|
||||
--source suite/funcs_1/datadict/datadict_bug_12777.inc
|
||||
eval SHOW CREATE TABLE information_schema.$is_table;
|
||||
--source suite/funcs_1/datadict/datadict_bug_12777.inc
|
||||
eval SHOW COLUMNS FROM information_schema.$is_table;
|
||||
|
||||
# Note: Retrieval of information within information_schema.columns about
|
||||
# information_schema.views is in is_columns_is.test.
|
||||
|
||||
# Show that TABLE_CATALOG is always NULL.
|
||||
SELECT table_catalog, table_schema, table_name
|
||||
FROM information_schema.views WHERE table_catalog IS NOT NULL;
|
||||
|
||||
|
||||
--echo ################################################################################
|
||||
--echo # Testcase 3.2.13.2 + 3.2.13.3: INFORMATION_SCHEMA.VIEWS accessible information
|
||||
--echo ################################################################################
|
||||
# 3.2.13.2: Ensure that the table shows the relevant information on every view for
|
||||
# which the current user or PUBLIC has the SHOW CREATE VIEW privilege.
|
||||
# 3.2.13.3: Ensure that the table does not show any information on any views for which
|
||||
# the current user and PUBLIC have no SHOW CREATE VIEW privilege.
|
||||
#
|
||||
--disable_warnings
|
||||
DROP DATABASE IF EXISTS db_datadict;
|
||||
--enable_warnings
|
||||
CREATE DATABASE db_datadict;
|
||||
|
||||
--error 0,ER_CANNOT_USER
|
||||
DROP USER 'testuser1'@'localhost';
|
||||
CREATE USER 'testuser1'@'localhost';
|
||||
--error 0,ER_CANNOT_USER
|
||||
DROP USER 'testuser2'@'localhost';
|
||||
CREATE USER 'testuser2'@'localhost';
|
||||
--error 0,ER_CANNOT_USER
|
||||
DROP USER 'test_no_views'@'localhost';
|
||||
CREATE USER 'test_no_views'@'localhost';
|
||||
|
||||
--replace_result $engine_type <engine_type>
|
||||
eval
|
||||
CREATE TABLE db_datadict.t1(f1 INT, f2 INT, f3 INT)
|
||||
ENGINE = $engine_type;
|
||||
CREATE VIEW db_datadict.v_granted_to_1 AS SELECT * FROM db_datadict.t1;
|
||||
CREATE VIEW db_datadict.v_granted_glob AS SELECT f2, f3 FROM db_datadict.t1;
|
||||
|
||||
GRANT SELECT ON db_datadict.t1 TO 'testuser1'@'localhost';
|
||||
GRANT SELECT ON db_datadict.v_granted_to_1 TO 'testuser1'@'localhost';
|
||||
GRANT SHOW VIEW, CREATE VIEW ON db_datadict.* TO 'testuser2'@'localhost';
|
||||
|
||||
let $select = SELECT * FROM information_schema.views
|
||||
WHERE table_schema = 'db_datadict' ORDER BY table_name;
|
||||
eval $select;
|
||||
|
||||
--echo # Establish connection testuser1 (user=testuser1)
|
||||
--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
|
||||
connect (testuser1, localhost, testuser1, , test);
|
||||
eval $select;
|
||||
|
||||
--echo # Establish connection testuser2 (user=testuser2)
|
||||
--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
|
||||
connect (testuser2, localhost, testuser2, , test);
|
||||
eval $select;
|
||||
|
||||
--echo # Establish connection test_no_views (user=test_no_views)
|
||||
--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
|
||||
connect (test_no_views, localhost, test_no_views, , test);
|
||||
eval $select;
|
||||
|
||||
# Cleanup
|
||||
--echo # Switch to connection default and close all other connections
|
||||
connection default;
|
||||
disconnect testuser1;
|
||||
disconnect testuser2;
|
||||
disconnect test_no_views;
|
||||
DROP USER 'testuser1'@'localhost';
|
||||
DROP USER 'testuser2'@'localhost';
|
||||
DROP USER 'test_no_views'@'localhost';
|
||||
DROP DATABASE db_datadict;
|
||||
|
||||
--echo #########################################################################
|
||||
--echo # 3.2.1.13+3.2.1.14+3.2.1.15: INFORMATION_SCHEMA.VIEWS modifications
|
||||
--echo #########################################################################
|
||||
# 3.2.1.13: Ensure that the creation of any new database object (e.g. table or
|
||||
# column) automatically inserts all relevant information on that
|
||||
# object into every appropriate INFORMATION_SCHEMA table.
|
||||
# 3.2.1.14: Ensure that the alteration of any existing database object
|
||||
# automatically updates all relevant information on that object in
|
||||
# every appropriate INFORMATION_SCHEMA table.
|
||||
# 3.2.1.15: Ensure that the dropping of any existing database object
|
||||
# automatically deletes all relevant information on that object from
|
||||
# every appropriate INFORMATION_SCHEMA table.
|
||||
#
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS test.t1_my_table;
|
||||
DROP DATABASE IF EXISTS db_datadict;
|
||||
--enable_warnings
|
||||
CREATE DATABASE db_datadict;
|
||||
--replace_result $engine_type <engine_type>
|
||||
eval
|
||||
CREATE TABLE test.t1_table (f1 BIGINT, f2 CHAR(10))
|
||||
DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci
|
||||
ENGINE = $engine_type;
|
||||
--error 0,ER_CANNOT_USER
|
||||
DROP USER 'testuser1'@'localhost';
|
||||
CREATE USER 'testuser1'@'localhost';
|
||||
|
||||
# Check just created VIEW
|
||||
SELECT * FROM information_schema.views
|
||||
WHERE table_name LIKE 't1_%';
|
||||
CREATE VIEW test.t1_view AS SELECT DISTINCT f1 FROM test.t1_table;
|
||||
SELECT * FROM information_schema.views
|
||||
WHERE table_name LIKE 't1_%';
|
||||
#
|
||||
# Check modification of DEFINER, SECURITY_TYPE, IS_UPDATABLE, VIEW_DEFINITION,
|
||||
# CHECK_OPTION
|
||||
SELECT table_name,definer FROM information_schema.views
|
||||
WHERE table_name = 't1_view';
|
||||
ALTER DEFINER = 'testuser1'@'localhost' VIEW test.t1_view AS
|
||||
SELECT DISTINCT f1 FROM test.t1_table;
|
||||
# The next result set could suffer from
|
||||
# Bug#22763 Disrepancy between SHOW CREATE VIEW and I_S.VIEWS
|
||||
# because the VIEW definition is missing.
|
||||
# Therefore we exclude the problematic columns from the result set.
|
||||
SELECT table_name,definer,security_type FROM information_schema.views
|
||||
WHERE table_name LIKE 't1_%';
|
||||
ALTER DEFINER = 'root'@'localhost' SQL SECURITY INVOKER VIEW test.t1_view AS
|
||||
SELECT f1 FROM test.t1_table WITH LOCAL CHECK OPTION;
|
||||
SELECT table_name,definer,security_type FROM information_schema.views
|
||||
WHERE table_name LIKE 't1_%';
|
||||
#
|
||||
# Check modification of TABLE_SCHEMA
|
||||
SELECT table_schema,table_name FROM information_schema.views
|
||||
WHERE table_name LIKE 't1_%'
|
||||
ORDER BY table_schema,table_name;
|
||||
--error ER_FORBID_SCHEMA_CHANGE
|
||||
RENAME TABLE test.t1_view TO db_datadict.t1_view;
|
||||
# Workaround for missing move to another database
|
||||
DROP VIEW test.t1_view;
|
||||
CREATE VIEW db_datadict.t1_view AS SELECT * FROM test.t1_table;
|
||||
SELECT table_schema,table_name FROM information_schema.views
|
||||
WHERE table_name LIKE 't1_%'
|
||||
ORDER BY table_schema,table_name;
|
||||
#
|
||||
# Check modification of TABLE_NAME
|
||||
SELECT table_name FROM information_schema.views
|
||||
WHERE table_name LIKE 't1_%'
|
||||
ORDER BY table_name;
|
||||
RENAME TABLE db_datadict.t1_view TO db_datadict.t1_viewx;
|
||||
SELECT table_name FROM information_schema.views
|
||||
WHERE table_name LIKE 't1_%'
|
||||
ORDER BY table_name;
|
||||
#
|
||||
# Check impact of DROP VIEW
|
||||
SELECT table_name FROM information_schema.views
|
||||
WHERE table_name LIKE 't1_%'
|
||||
ORDER BY table_name;
|
||||
DROP VIEW db_datadict.t1_viewx;
|
||||
SELECT table_name FROM information_schema.views
|
||||
WHERE table_name LIKE 't1_%'
|
||||
ORDER BY table_name;
|
||||
CREATE VIEW db_datadict.t1_view AS SELECT * FROM test.t1_table;
|
||||
#
|
||||
# Check impact of DROP base TABLE of VIEW
|
||||
SELECT table_name FROM information_schema.views
|
||||
WHERE table_name LIKE 't1_%'
|
||||
ORDER BY table_name;
|
||||
DROP TABLE test.t1_table;
|
||||
SELECT table_name FROM information_schema.views
|
||||
WHERE table_name LIKE 't1_%'
|
||||
ORDER BY table_name;
|
||||
--replace_result $engine_type <engine_type>
|
||||
eval
|
||||
CREATE TABLE test.t1_table (f1 BIGINT, f2 CHAR(10))
|
||||
DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci COMMENT = 'Initial Comment'
|
||||
ENGINE = $engine_type;
|
||||
#
|
||||
# Check impact of DROP SCHEMA
|
||||
SELECT table_name FROM information_schema.views
|
||||
WHERE table_name LIKE 't1_%'
|
||||
ORDER BY table_name;
|
||||
DROP DATABASE db_datadict;
|
||||
SELECT table_name FROM information_schema.views
|
||||
WHERE table_name LIKE 't1_%'
|
||||
ORDER BY table_name;
|
||||
|
||||
# Cleanup
|
||||
DROP USER 'testuser1'@'localhost';
|
||||
DROP TABLE test.t1_table;
|
||||
|
||||
--echo ########################################################################
|
||||
--echo # Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and
|
||||
--echo # DDL on INFORMATION_SCHEMA table are not supported
|
||||
--echo ########################################################################
|
||||
# 3.2.1.3: Ensure that no user may execute an INSERT statement on any
|
||||
# INFORMATION_SCHEMA table.
|
||||
# 3.2.1.4: Ensure that no user may execute an UPDATE statement on any
|
||||
# INFORMATION_SCHEMA table.
|
||||
# 3.2.1.5: Ensure that no user may execute a DELETE statement on any
|
||||
# INFORMATION_SCHEMA table.
|
||||
# 3.2.1.8: Ensure that no user may create an index on an
|
||||
# INFORMATION_SCHEMA table.
|
||||
# 3.2.1.9: Ensure that no user may alter the definition of an
|
||||
# INFORMATION_SCHEMA table.
|
||||
# 3.2.1.10: Ensure that no user may drop an INFORMATION_SCHEMA table.
|
||||
# 3.2.1.11: Ensure that no user may move an INFORMATION_SCHEMA table to any
|
||||
# other database.
|
||||
# 3.2.1.12: Ensure that no user may directly add to, alter, or delete any data
|
||||
# in an INFORMATION_SCHEMA table.
|
||||
#
|
||||
--disable_warnings
|
||||
DROP DATABASE IF EXISTS db_datadict;
|
||||
--enable_warnings
|
||||
CREATE DATABASE db_datadict;
|
||||
CREATE VIEW db_datadict.v1 AS SELECT 1;
|
||||
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
INSERT INTO information_schema.views
|
||||
SELECT * FROM information_schema.views;
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
INSERT INTO information_schema.views(table_schema, table_name)
|
||||
VALUES ('db2', 'v2');
|
||||
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
UPDATE information_schema.views SET table_schema = 'test'
|
||||
WHERE table_name = 't1';
|
||||
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
DELETE FROM information_schema.views WHERE table_name = 't1';
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
TRUNCATE information_schema.views;
|
||||
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
CREATE INDEX my_idx_on_views ON information_schema.views(table_schema);
|
||||
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
ALTER TABLE information_schema.views DROP PRIMARY KEY;
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
ALTER TABLE information_schema.views ADD f1 INT;
|
||||
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
DROP TABLE information_schema.views;
|
||||
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
ALTER TABLE information_schema.views RENAME db_datadict.views;
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
ALTER TABLE information_schema.views RENAME information_schema.xviews;
|
||||
|
||||
# Cleanup
|
||||
DROP DATABASE db_datadict;
|
||||
|
||||
@@ -0,0 +1,460 @@
|
||||
############ suite/funcs_1/datadict/processlist_priv.inc ###############
|
||||
# #
|
||||
# Testing of privileges around #
|
||||
# SELECT ... PROCESSLIST/SHOW PROCESSLIST #
|
||||
# #
|
||||
# Note(mleich): #
|
||||
# There is a significant risk to get an unstable test because of #
|
||||
# timing issues. #
|
||||
# Example1: #
|
||||
# 1. Disconnect connection X #
|
||||
# 2. Switch to connection Y #
|
||||
# 3. SHOW PROCESSLIST might present a record like #
|
||||
# <ID> <user> <host> <db> Quit 0 cleaning up NULL #
|
||||
# or even a row where connection X is without #
|
||||
# "Quit" or "cleaning up". #
|
||||
# That means our SHOW PROCESSLIST can come too early. #
|
||||
# Solution: #
|
||||
# Close the connections at the end of the test. #
|
||||
# Example2 (2008-08-14 again observed): #
|
||||
# 1. connection X: SHOW PROCESSLIST/GRANT ... etc. #
|
||||
# 2. Switch to connection Y #
|
||||
# 3. SHOW PROCESSLIST might present a record like #
|
||||
# <ID> <user> <host> <db> Query TIME cleaning up <command> #
|
||||
# <ID> <user> <host> <db> Query TIME writing to net <command> #
|
||||
# Problems happens more often in case of slow filesystem! #
|
||||
# First Solution: #
|
||||
# Insert a dummy SQL command where the cleanup is most probably #
|
||||
# fast before switching to another connection and running #
|
||||
# SHOW/SELECT PROCESSLIST. #
|
||||
# Suppress writing to protocol by assignment to $variable. #
|
||||
# let $my_var= `SELECT 1`; #
|
||||
# Even the 'SELECT 1' was in some cases in state #
|
||||
# "writing to net". #
|
||||
# Final Solution: #
|
||||
# --real_sleep 0.3 #
|
||||
# This value was at least on my box sufficient. #
|
||||
# Please inform us if this test fails so that we can adjust #
|
||||
# the sleep time better or switch to poll routines. #
|
||||
# #
|
||||
# Storage engine variants of this test do not make sense. #
|
||||
# - I_S tables use the MEMORY storage engine whenever possible. #
|
||||
# - There are some I_S table which need column data types which #
|
||||
# are not supported by MEMORY. Example: LONGTEXT/BLOB #
|
||||
# MyISAM will be used for such tables. #
|
||||
# The column PROCESSLIST.INFO is of data type LONGTEXT #
|
||||
# ----> MyISAM #
|
||||
# - There is no impact of the GLOBAL(server) or SESSION default #
|
||||
# storage engine setting on the engine used for I_S tables. #
|
||||
# That means we cannot get NDB or InnoDB instead. #
|
||||
# #
|
||||
# Creation: #
|
||||
# 2007-08 hhunger Implement this test as part of #
|
||||
# WL#3982 Test information_schema.processlist #
|
||||
# #
|
||||
# Last update: #
|
||||
# 2008-08-14 mleich Bug#38270 Test "processlist_priv_ps" fails on #
|
||||
# varying "processlist" output #
|
||||
# - Replace one sleep by a poll routines #
|
||||
# - Remove or disable superfluous sleeps #
|
||||
# #
|
||||
########################################################################
|
||||
|
||||
# The following variables are used in "datadict_priv.inc" and here.
|
||||
#
|
||||
# information_schema table to be tested
|
||||
let $table= processlist;
|
||||
#
|
||||
# columns of the information_schema table e.g. to use in a select.
|
||||
let $columns= ID, USER, HOST, DB, COMMAND, TIME, STATE, INFO;
|
||||
#
|
||||
# Where clause for an update.
|
||||
let $update_where= WHERE id=1 ;
|
||||
#
|
||||
# Column to be used in the SET of an update.
|
||||
let $set_column= user='any_user' ;
|
||||
#
|
||||
# Where clause of a delete.
|
||||
let $delete_where= WHERE id=1 ;
|
||||
#
|
||||
# Column to be dropped.
|
||||
let $drop_column= user;
|
||||
#
|
||||
# Column to be indexed
|
||||
let $index_col= user;
|
||||
|
||||
USE information_schema;
|
||||
|
||||
--echo ####################################################################################
|
||||
--echo 1 Prepare test.
|
||||
--echo connection default (user=root)
|
||||
--echo ####################################################################################
|
||||
if (`SELECT COUNT(*) <> 1 FROM processlist`)
|
||||
{
|
||||
--echo This test expects one connection to the server.
|
||||
--echo Expectation: USER HOST DB COMMAND STATE INFO
|
||||
--echo Expectation: root localhost information_schema Query executing SELECT USER,HOST,DB,COMMAND,STATE,INFO FROM processlist ORDER BY ID
|
||||
--echo But we found in the moment:
|
||||
SELECT USER,HOST,DB,COMMAND,STATE,INFO FROM processlist ORDER BY ID;
|
||||
--echo Maybe
|
||||
--echo - the base configuration (no of parallel auxiliary sessions) of the server has changed
|
||||
--echo - a parallel test intended for another server accidently connected to our current one
|
||||
--echo We cannot proceed in this situation. Abort
|
||||
exit;
|
||||
}
|
||||
|
||||
--echo ####################################################################################
|
||||
--echo 1.1 Create two user
|
||||
--echo ####################################################################################
|
||||
# access to info tables as normal user
|
||||
--error 0, ER_CANNOT_USER
|
||||
DROP USER ddicttestuser1@'localhost';
|
||||
--error 0, ER_CANNOT_USER
|
||||
DROP USER ddicttestuser2@'localhost';
|
||||
CREATE USER ddicttestuser1@'localhost';
|
||||
CREATE USER ddicttestuser2@'localhost';
|
||||
SET PASSWORD FOR ddicttestuser1@'localhost' = PASSWORD('ddictpass');
|
||||
SET PASSWORD FOR ddicttestuser2@'localhost' = PASSWORD('ddictpass');
|
||||
|
||||
--echo ####################################################################################
|
||||
--echo 1.2 Establish connection con100 (user=ddicttestuser1 with no PROCESS privilege):
|
||||
connect (con100,localhost,ddicttestuser1,ddictpass,information_schema);
|
||||
--echo ####################################################################################
|
||||
|
||||
|
||||
--echo ####################################################################################
|
||||
--echo 2 connection default(user=root with default privileges):
|
||||
--echo SHOW/SELECT shows all processes/threads.
|
||||
--echo ####################################################################################
|
||||
connection default;
|
||||
# Avoid Bug#38270 Test "processlist_priv_ps" fails on varying "processlist" output
|
||||
# This subtest expects that the connection con100 is in state 'Sleep'.
|
||||
# Poll till the connection con100 is in state COMMAND = 'Sleep'.
|
||||
let $wait_timeout= 10;
|
||||
let $wait_condition=
|
||||
SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST
|
||||
WHERE DB = 'information_schema' AND COMMAND = 'Sleep' AND USER = 'ddicttestuser1';
|
||||
--source include/wait_condition.inc
|
||||
eval SHOW CREATE TABLE $table;
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME
|
||||
eval SHOW $table;
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME
|
||||
eval SELECT * FROM $table $select_where ORDER BY id;
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME
|
||||
eval SELECT $columns FROM $table $select_where ORDER BY id;
|
||||
--source suite/funcs_1/datadict/datadict_priv.inc
|
||||
|
||||
|
||||
--echo ####################################################################################
|
||||
--echo 3 Switch to connection con100 (user=ddicttestuser1 with no PROCESS privilege):
|
||||
connection con100;
|
||||
--echo SHOW/SELECT shows only the processes (1) of the user.
|
||||
--echo ####################################################################################
|
||||
# No need for poll routine here.
|
||||
# The current state of the default session might depend on load of testing box
|
||||
# but "ddicttestuser1" must not see anything of the root session.
|
||||
eval SHOW CREATE TABLE $table;
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME
|
||||
eval SHOW $table;
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME
|
||||
eval SELECT * FROM $table $select_where ORDER BY id;
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME
|
||||
eval SELECT $columns FROM $table $select_where ORDER BY id;
|
||||
--source suite/funcs_1/datadict/datadict_priv.inc
|
||||
--real_sleep 0.3
|
||||
|
||||
|
||||
--echo ####################################################################################
|
||||
--echo 4 Grant PROCESS privilege to ddicttestuser1
|
||||
--echo connection default (user=root)
|
||||
--echo ####################################################################################
|
||||
connection default;
|
||||
GRANT PROCESS ON *.* TO ddicttestuser1@'localhost' IDENTIFIED BY 'ddictpass';
|
||||
--real_sleep 0.3
|
||||
|
||||
--echo ####################################################################################
|
||||
--echo 4.1 Existing connection con100 (ddicttestuser1)
|
||||
--echo The user ddicttestuser1 has the PROCESS privilege, but the connection was
|
||||
--echo established before PROCESS was granted.
|
||||
--echo SHOW/SELECT shows only the processes (1) of the user.
|
||||
--echo ####################################################################################
|
||||
connection con100;
|
||||
SHOW GRANTS;
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME
|
||||
SHOW processlist;
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME
|
||||
SELECT * FROM information_schema.processlist;
|
||||
--real_sleep 0.3
|
||||
|
||||
--echo ####################################################################################
|
||||
--echo 4.2 New connection con101 (ddicttestuser1 with PROCESS privilege)
|
||||
--echo SHOW/SELECT shows all processes/threads.
|
||||
--echo ####################################################################################
|
||||
connect (con101,localhost,ddicttestuser1,ddictpass,information_schema);
|
||||
SHOW GRANTS;
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME
|
||||
SHOW processlist;
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME
|
||||
SELECT * FROM information_schema.processlist;
|
||||
--real_sleep 0.3
|
||||
|
||||
|
||||
--echo ####################################################################################
|
||||
--echo 5 Grant PROCESS privilege to anonymous user.
|
||||
--echo connection default (user=root)
|
||||
--echo ####################################################################################
|
||||
connection default;
|
||||
GRANT PROCESS ON *.* TO ''@'localhost';
|
||||
--real_sleep 0.3
|
||||
|
||||
--echo ####################################################################################
|
||||
--echo 5.1 Establish connection (anonymous1,localhost,'',,information_schema)
|
||||
--echo anonymous user with PROCESS privilege
|
||||
--echo SHOW/SELECT shows all processes/threads.
|
||||
--echo ####################################################################################
|
||||
connect (anonymous1,localhost,"''",,information_schema);
|
||||
SHOW GRANTS;
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME
|
||||
SHOW processlist;
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME
|
||||
SELECT * FROM information_schema.processlist;
|
||||
--real_sleep 0.3
|
||||
|
||||
|
||||
--echo ####################################################################################
|
||||
--echo 6 Revoke PROCESS privilege from ddicttestuser1
|
||||
--echo connection default (user=root)
|
||||
--echo ####################################################################################
|
||||
connection default;
|
||||
REVOKE PROCESS ON *.* FROM ddicttestuser1@'localhost' IDENTIFIED BY 'ddictpass';
|
||||
--real_sleep 0.3
|
||||
|
||||
--echo ####################################################################################
|
||||
--echo 6.1 New connection con102 (ddicttestuser1 has no more PROCESS privilege)
|
||||
connect (con102,localhost,ddicttestuser1,ddictpass,information_schema);
|
||||
--echo Again (compared to state before GRANT PROCESS) only the processes of
|
||||
--echo ddicttestuser1 are visible.
|
||||
--echo ####################################################################################
|
||||
SHOW GRANTS;
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME
|
||||
SHOW processlist;
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME
|
||||
SELECT * FROM information_schema.processlist;
|
||||
--real_sleep 0.3
|
||||
|
||||
|
||||
--echo ####################################################################################
|
||||
--echo 7 Revoke PROCESS privilege from anonymous user
|
||||
--echo connection default (user=root)
|
||||
--echo ####################################################################################
|
||||
connection default;
|
||||
REVOKE PROCESS ON *.* FROM ''@'localhost';
|
||||
--real_sleep 0.3
|
||||
|
||||
--echo ####################################################################################
|
||||
--echo 7.1 New connection (anonymous2,localhost,'',,information_schema)
|
||||
connect (anonymous2,localhost,"''",,information_schema);
|
||||
--echo The anonymous user has no more the PROCESS privilege
|
||||
--echo Again only the processes of the anonymous user are visible.
|
||||
--echo ####################################################################################
|
||||
SHOW GRANTS FOR ''@'localhost';
|
||||
if ($fixed_bug_30395)
|
||||
{
|
||||
# Bug#30395 strange results after REVOKE PROCESS ON *.* FROM ...
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME
|
||||
SHOW processlist;
|
||||
}
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME
|
||||
SELECT * FROM information_schema.processlist;
|
||||
--real_sleep 0.3
|
||||
|
||||
|
||||
--echo ####################################################################################
|
||||
--echo 8 Grant SUPER (does not imply PROCESS) privilege to ddicttestuser1
|
||||
--echo connection default (user=root)
|
||||
--echo ####################################################################################
|
||||
connection default;
|
||||
GRANT SUPER ON *.* TO 'ddicttestuser1'@'localhost';
|
||||
--real_sleep 0.3
|
||||
|
||||
--echo ####################################################################################
|
||||
--echo 8.1 New connection con103 (ddicttestuser1 with SUPER privilege)
|
||||
connect (con103,localhost,ddicttestuser1,ddictpass,information_schema);
|
||||
--echo Only the processes of ddicttestuser1 user are visible.
|
||||
--echo ####################################################################################
|
||||
SHOW GRANTS FOR 'ddicttestuser1'@'localhost';
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME
|
||||
SHOW processlist;
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME
|
||||
SELECT * FROM information_schema.processlist;
|
||||
--real_sleep 0.3
|
||||
|
||||
|
||||
--echo ####################################################################################
|
||||
--echo 9 Revoke SUPER privilege from user ddicttestuser1
|
||||
--echo connection default (user=root)
|
||||
--echo ####################################################################################
|
||||
connection default;
|
||||
REVOKE SUPER ON *.* FROM 'ddicttestuser1'@'localhost';
|
||||
--real_sleep 0.3
|
||||
|
||||
--echo ####################################################################################
|
||||
--echo 9.1 New connection con104 (ddicttestuser1 without SUPER privilege)
|
||||
connect (con104,localhost,ddicttestuser1,ddictpass,information_schema);
|
||||
--echo ddicttestuser1 has no more the SUPER privilege.
|
||||
--echo Only the processes of ddicttestuser1 are visible.
|
||||
--echo ####################################################################################
|
||||
SHOW GRANTS FOR 'ddicttestuser1'@'localhost';
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME
|
||||
SHOW processlist;
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME
|
||||
SELECT * FROM information_schema.processlist;
|
||||
--real_sleep 0.3
|
||||
|
||||
|
||||
--echo ####################################################################################
|
||||
--echo 10 Grant SUPER privilege with grant option to user ddicttestuser1.
|
||||
--echo connection default (user=root)
|
||||
--echo ####################################################################################
|
||||
connection default;
|
||||
GRANT SUPER ON *.* TO 'ddicttestuser1'@'localhost' WITH GRANT OPTION;
|
||||
--real_sleep 0.3
|
||||
|
||||
--echo ####################################################################################
|
||||
--echo 10.1 New connection con105 (ddicttestuser1 with SUPER privilege and GRANT OPTION)
|
||||
connect (con105,localhost,ddicttestuser1,ddictpass,information_schema);
|
||||
--echo Try to grant PROCESS privilege to user ddicttestuser2 without having it.
|
||||
--echo ####################################################################################
|
||||
SHOW GRANTS FOR 'ddicttestuser1'@'localhost';
|
||||
--error ER_ACCESS_DENIED_ERROR
|
||||
GRANT PROCESS ON *.* TO 'ddicttestuser2'@'localhost';
|
||||
|
||||
--echo ####################################################################################
|
||||
--echo 10.2 Grant SUPER and PROCESS privilege with grant option to user ddicttestuser1
|
||||
--echo connection default (user=root)
|
||||
--echo ####################################################################################
|
||||
connection default;
|
||||
GRANT SUPER,PROCESS ON *.* TO 'ddicttestuser1'@'localhost' WITH GRANT OPTION;
|
||||
--real_sleep 0.3
|
||||
|
||||
--echo ####################################################################################
|
||||
--echo 10.3 New connection con106 (ddicttestuser1 with SUPER,PROCESS WITH GRANT OPTION)
|
||||
connect (con106,localhost,ddicttestuser1,ddictpass,information_schema);
|
||||
--echo Grant PROCESS privilege to user ddicttestuser2
|
||||
--echo ####################################################################################
|
||||
SHOW GRANTS FOR 'ddicttestuser1'@'localhost';
|
||||
GRANT PROCESS ON *.* TO 'ddicttestuser2'@'localhost';
|
||||
--real_sleep 0.3
|
||||
|
||||
--echo ####################################################################################
|
||||
--echo 10.4 New connection con200 (ddicttestuser2 with PROCESS privilege)
|
||||
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 1 ID 3 HOST_NAME 6 TIME
|
||||
SHOW processlist;
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME
|
||||
SELECT * FROM information_schema.processlist;
|
||||
--real_sleep 0.3
|
||||
|
||||
|
||||
--echo ####################################################################################
|
||||
--echo 11 User ddicttestuser1 revokes PROCESS privilege from user ddicttestuser2
|
||||
--echo connection ddicttestuser1;
|
||||
--echo ####################################################################################
|
||||
connection con106;
|
||||
REVOKE PROCESS ON *.* FROM 'ddicttestuser2'@'localhost';
|
||||
--real_sleep 0.3
|
||||
|
||||
--echo ####################################################################################
|
||||
--echo 11.1 New connection con201 (ddicttestuser2)
|
||||
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 1 ID 3 HOST_NAME 6 TIME
|
||||
SHOW processlist;
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME
|
||||
SELECT * FROM information_schema.processlist;
|
||||
--real_sleep 0.3
|
||||
|
||||
--echo ####################################################################################
|
||||
--echo 11.2 Revoke SUPER,PROCESS,GRANT OPTION privilege from user ddicttestuser1
|
||||
--echo connection default (user=root)
|
||||
--echo ####################################################################################
|
||||
connection default;
|
||||
REVOKE SUPER,PROCESS,GRANT OPTION ON *.* FROM 'ddicttestuser1'@'localhost';
|
||||
--real_sleep 0.3
|
||||
|
||||
--echo ####################################################################################
|
||||
--echo 11.3 New connection con107 (ddicttestuser1)
|
||||
connect (con107,localhost,ddicttestuser1,ddictpass,information_schema);
|
||||
--echo ddicttestuser1 has no more the PROCESS privilege and can only see own connects
|
||||
--echo He is also unable to GRANT the PROCESS privilege to ddicttestuser2
|
||||
--echo ####################################################################################
|
||||
SHOW GRANTS FOR 'ddicttestuser1'@'localhost';
|
||||
--error ER_ACCESS_DENIED_ERROR
|
||||
GRANT PROCESS ON *.* TO 'ddicttestuser2'@'localhost';
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME
|
||||
SHOW processlist;
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME
|
||||
SELECT * FROM information_schema.processlist;
|
||||
--real_sleep 0.3
|
||||
|
||||
|
||||
--echo ####################################################################################
|
||||
--echo 12 Revoke the SELECT privilege from user ddicttestuser1
|
||||
--echo connection default (user=root)
|
||||
--echo ####################################################################################
|
||||
connection default;
|
||||
REVOKE SELECT ON *.* FROM 'ddicttestuser1'@'localhost';
|
||||
--real_sleep 0.3
|
||||
|
||||
--echo ####################################################################################
|
||||
--echo 12.1 New connection con108 (ddicttestuser1)
|
||||
connect (con108,localhost,ddicttestuser1,ddictpass,information_schema);
|
||||
--echo ddicttestuser1 has neither PROCESS nor SELECT privilege
|
||||
--echo Manual says: Each MySQL user has the right to access these tables, but can see
|
||||
--echo only the rows ...
|
||||
--echo Therefore the missing SELECT privilege does not affect SELECTs on PROCESSLIST.
|
||||
--echo ####################################################################################
|
||||
SHOW GRANTS FOR 'ddicttestuser1'@'localhost';
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME
|
||||
SHOW processlist;
|
||||
--replace_column 1 ID 3 HOST_NAME 6 TIME
|
||||
SELECT * FROM information_schema.processlist;
|
||||
--real_sleep 0.3
|
||||
|
||||
--echo ####################################################################################
|
||||
--echo 12.2 Revoke only the SELECT privilege on the information_schema from ddicttestuser1.
|
||||
--echo connection default (user=root)
|
||||
--echo ####################################################################################
|
||||
connection default;
|
||||
--error ER_DBACCESS_DENIED_ERROR
|
||||
REVOKE SELECT ON information_schema.* FROM 'ddicttestuser3'@'localhost';
|
||||
--real_sleep 0.3
|
||||
|
||||
|
||||
--echo ####################################################################################
|
||||
--echo connection default (user=root)
|
||||
--echo Cleanup: close connections, DROP USER etc.
|
||||
--echo ####################################################################################
|
||||
connection default;
|
||||
disconnect con100;
|
||||
disconnect con101;
|
||||
disconnect con102;
|
||||
disconnect con103;
|
||||
disconnect con104;
|
||||
disconnect con105;
|
||||
disconnect con106;
|
||||
disconnect con107;
|
||||
disconnect con108;
|
||||
disconnect con200;
|
||||
disconnect con201;
|
||||
disconnect anonymous1;
|
||||
disconnect anonymous2;
|
||||
DROP USER ddicttestuser1@'localhost';
|
||||
DROP USER ddicttestuser2@'localhost';
|
||||
REVOKE USAGE ON *.* FROM ''@'localhost';
|
||||
DROP USER ''@'localhost';
|
||||
@@ -0,0 +1,465 @@
|
||||
########### suite/funcs_1/datadict/processlist_val.inc #########################
|
||||
# #
|
||||
# Testing of values within INFORMATION_SCHEMA.PROCESSLIST #
|
||||
# #
|
||||
# Ensure that the values fit to the current state of the connection and #
|
||||
# especially that they change if a connection does nothing or runs some SQL. #
|
||||
# runs some SQL. #
|
||||
# Examples: #
|
||||
# - change the default database #
|
||||
# - send some period of time no SQL command to the server #
|
||||
# - send a long running query #
|
||||
# #
|
||||
# Note(mleich): #
|
||||
# 1. Please inform me if this test fails because of timing problems. #
|
||||
# 2. Storage engine variants of this test do not make sense. #
|
||||
# - I_S tables use the MEMORY storage engine whenever possible. #
|
||||
# - There are some I_S tables which need column data types which are not #
|
||||
# supported by MEMORY. Example: LONGTEXT/BLOB #
|
||||
# MyISAM will be used for such tables. #
|
||||
# The column PROCESSLIST.INFO is of data type LONGTEXT ----> MyISAM #
|
||||
# - There is no impact of the GLOBAL(server) or SESSION default storage #
|
||||
# engine setting on the engine used for I_S tables. #
|
||||
# That means we cannot get NDB or InnoDB instead. #
|
||||
# 3. The SHOW (FULL) PROCESSLIST command are for comparison. #
|
||||
# The main test target is INFORMATION_SCHEMA.PROCESSLIST ! #
|
||||
# 4. Attention: #
|
||||
# The values of the PROCESSLIST columns HOST and TIME tend to cause #
|
||||
# problems and therefore their printing has to be suppressed. #
|
||||
# Examples of the exact values: #
|
||||
# HOST: 'localhost' (UNIX derivates) #
|
||||
# 'localhost:<varying_port>' (WINDOWS) #
|
||||
# TIME: In many cases within this test 0 seconds but if the testing box is #
|
||||
# overloaded we might get up to 2 seconds. #
|
||||
# Solution: #
|
||||
# --replace_column 1 <ID> 3 <HOST_NAME> 6 <TIME> #
|
||||
# 5. How to debug the script? #
|
||||
# <graphical diff tool> \ #
|
||||
# suite/funcs_1/datadict/processlist_val.inc \ #
|
||||
# <Result|Reject|Log file> #
|
||||
# I tweaked a lot of the script lines around "echo" so that you will get a #
|
||||
# lot of useful synchronisation. #
|
||||
# #
|
||||
# Creation: #
|
||||
# 2007-08-09 mleich Implement this test as part of #
|
||||
# WL#3982 Test information_schema.processlist #
|
||||
# #
|
||||
# Last Modification: #
|
||||
# 2008-07-04 mleich Fix for #
|
||||
# Bug#37853 Test "funcs_1.processlist_val_ps" fails in #
|
||||
# various ways #
|
||||
# - issues with printing of port (Win only) #
|
||||
# - too optimistic assumptions about timing #
|
||||
# + corrections of logic in poll routines #
|
||||
# + minor improvements #
|
||||
################################################################################
|
||||
|
||||
# Basic preparations
|
||||
--error 0, ER_CANNOT_USER
|
||||
DROP USER test_user@'localhost';
|
||||
CREATE USER test_user@'localhost';
|
||||
GRANT ALL ON *.* TO test_user@'localhost';
|
||||
REVOKE PROCESS ON *.* FROM test_user@'localhost';
|
||||
SET PASSWORD FOR test_user@'localhost' = PASSWORD('ddictpass');
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS test.t1;
|
||||
--enable_warnings
|
||||
CREATE TABLE test.t1 (f1 BIGINT);
|
||||
USE test;
|
||||
|
||||
|
||||
echo
|
||||
# Show the definition of the PROCESSLIST table
|
||||
#--------------------------------------------------------------------------
|
||||
;
|
||||
SHOW CREATE TABLE INFORMATION_SCHEMA.PROCESSLIST;
|
||||
|
||||
echo
|
||||
# Ensure that the information about the own connection is correct.
|
||||
#--------------------------------------------------------------------------
|
||||
;
|
||||
# Expected values
|
||||
# - USER = 'root'
|
||||
# - HOST (printed value is unified), the exact values are often like
|
||||
# UNIX: 'localhost'
|
||||
# WIN: 'localhost:<some port>'
|
||||
# - DB = 'test'
|
||||
# - Command IN (no protocol -> 'Query', ps-protocol -> 'Execute')
|
||||
# - TIME (printed value will be unified), the exact values are like
|
||||
# "normal" load: 0 (seconds)
|
||||
# "heavy" load: 1 or more (seconds)
|
||||
# - State 'executing'
|
||||
# - INFO must contain the corresponding SHOW/SELECT PROCESSLIST
|
||||
#
|
||||
# 1. Just dump what we get
|
||||
--replace_column 1 <ID> 3 <HOST_NAME> 6 <TIME>
|
||||
SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
|
||||
--replace_column 1 <ID> 3 <HOST_NAME> 6 <TIME>
|
||||
SHOW FULL PROCESSLIST;
|
||||
#
|
||||
# Determine the connection id of the current connection (default)
|
||||
SET @default_id = CONNECTION_ID();
|
||||
#
|
||||
# 2. There must be exact one connection with @default_id;
|
||||
SELECT COUNT(*) = 1 AS "Expect exact one connection with this id"
|
||||
FROM INFORMATION_SCHEMA.PROCESSLIST WHERE ID = @default_id;
|
||||
#
|
||||
# 3. Check the remaining stuff
|
||||
SELECT COUNT(*) = 1 AS "Expect 1"
|
||||
FROM INFORMATION_SCHEMA.PROCESSLIST WHERE ID = @default_id
|
||||
AND USER = 'root' AND DB = 'test' AND Command IN('Query','Execute')
|
||||
AND State = 'executing';
|
||||
#
|
||||
# 4. Change the DB
|
||||
USE information_schema;
|
||||
SELECT COUNT(*) = 1 AS "Is the DB correct?"
|
||||
FROM INFORMATION_SCHEMA.PROCESSLIST
|
||||
WHERE ID = @default_id AND DB = 'information_schema';
|
||||
#
|
||||
# 5. Change the statement
|
||||
let $my_statement =
|
||||
SELECT @my_info := INFO FROM INFORMATION_SCHEMA.PROCESSLIST
|
||||
WHERE ID = @default_id;
|
||||
eval $my_statement;
|
||||
eval
|
||||
SELECT @my_info = '$my_statement'
|
||||
AS 'Is the content of PROCESSLIST.INFO correct?';
|
||||
#
|
||||
# 6. TIME must have a reasonable value
|
||||
SELECT COUNT(*) = 1 AS "Has TIME a reasonable value?"
|
||||
FROM INFORMATION_SCHEMA.PROCESSLIST
|
||||
WHERE ID = @default_id AND 0 <= TIME < 10;
|
||||
|
||||
|
||||
echo
|
||||
# Ensure that the information about an inactive connection is correct.
|
||||
#--------------------------------------------------------------------------
|
||||
;
|
||||
echo
|
||||
# ----- establish connection con1 (user = test_user) -----
|
||||
;
|
||||
connect (con1,localhost,test_user,ddictpass,information_schema);
|
||||
#
|
||||
echo
|
||||
# ----- switch to connection default (user = root) -----
|
||||
;
|
||||
connection default;
|
||||
# We have now a second connection.
|
||||
# First working phase for the new connection is with Command = 'Connect'.
|
||||
# This is a very short phase and the likelihood to meet it is
|
||||
# - nearly zero on average boxes with low parallel load
|
||||
# - around some percent on weak or overloaded boxes
|
||||
# (Bug#32153 Status output differs - scheduling ?)
|
||||
# Therefore we do not try to catch this state.
|
||||
# We poll till we reach the long lasting phase with Command = 'Sleep'.
|
||||
# - USER = 'test_user'
|
||||
# - DB = 'information_schema'
|
||||
# - Command = 'Sleep'
|
||||
# - State is empty
|
||||
# - INFO IS NULL
|
||||
echo
|
||||
# Poll till the connection con1 is in state COMMAND = 'Sleep'.
|
||||
;
|
||||
let $wait_timeout= 10;
|
||||
let $wait_condition= SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST
|
||||
WHERE COMMAND = 'Sleep' AND USER = 'test_user';
|
||||
--source include/wait_condition.inc
|
||||
# 1. Just dump what we get
|
||||
--replace_column 1 <ID> 3 <HOST_NAME> 6 <TIME>
|
||||
SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
|
||||
--replace_column 1 <ID> 3 <HOST_NAME> 6 <TIME>
|
||||
SHOW FULL PROCESSLIST;
|
||||
#
|
||||
# Pull ID and TIME of the second connection
|
||||
SELECT ID,TIME INTO @test_user_con1_id,@time FROM INFORMATION_SCHEMA.PROCESSLIST
|
||||
WHERE COMMAND = 'Sleep' AND USER = 'test_user';
|
||||
#
|
||||
# 2. The second connection must (behaviour at least since 2007) have an
|
||||
# ID = ID_of_previous_connection + 1
|
||||
SELECT @test_user_con1_id = @default_id + 1
|
||||
AS "Did we got the next higher PROCESSLIST ID?";
|
||||
#
|
||||
# 3. TIME must have a reasonable value
|
||||
SELECT 0 <= @time < 10 AS "Has TIME a reasonable value?";
|
||||
#
|
||||
# 4. HOST must be for both connections similar (varying port on Win)
|
||||
SELECT COUNT(*) = 2 AS "Is HOST LIKE 'localhost%'?"
|
||||
FROM INFORMATION_SCHEMA.PROCESSLIST
|
||||
WHERE HOST LIKE 'localhost%';
|
||||
#
|
||||
# 5. Check the remaining stuff
|
||||
SELECT COUNT(*) = 1 AS "Expect 1"
|
||||
FROM INFORMATION_SCHEMA.PROCESSLIST WHERE ID = @test_user_con1_id
|
||||
AND USER = 'test_user' AND DB = 'information_schema'
|
||||
AND Command = 'Sleep' AND State = '' AND INFO IS NULL;
|
||||
#
|
||||
# 6. Check that TIME increases
|
||||
let $wait_timeout= 10;
|
||||
let $wait_condition= SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST
|
||||
WHERE COMMAND = 'Sleep' AND USER = 'test_user'
|
||||
AND TIME > @time;
|
||||
--source include/wait_condition.inc
|
||||
|
||||
|
||||
echo
|
||||
# Ensure that the user test_user sees only connections with his username
|
||||
# because he has not the PROCESS privilege.
|
||||
#----------------------------------------------------------------------------
|
||||
;
|
||||
echo
|
||||
# ----- switch to connection con1 (user = test_user) -----
|
||||
;
|
||||
connection con1;
|
||||
--replace_column 1 <ID> 3 <HOST_NAME> 6 <TIME>
|
||||
SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
|
||||
--replace_column 1 <ID> 3 <HOST_NAME> 6 <TIME>
|
||||
SHOW FULL PROCESSLIST;
|
||||
|
||||
|
||||
echo
|
||||
# Ensure that the user test_user sees all connections with his username.
|
||||
#----------------------------------------------------------------------------
|
||||
;
|
||||
echo
|
||||
----- establish connection con2 (user = test_user) ------
|
||||
;
|
||||
connect (con2,localhost,test_user,ddictpass,information_schema);
|
||||
echo
|
||||
# ----- switch to connection default (user = root) -----
|
||||
;
|
||||
connection default;
|
||||
# If the testing box is under heavy load we might see within some of the
|
||||
# next queries connection
|
||||
# con2 with Command = 'Connect'
|
||||
# con1 with INFO = 'SHOW FULL PROCESSLIST' and STATE = 'Writing to net'
|
||||
# Both phases are too short to be checked.
|
||||
echo
|
||||
# Poll till all connections of 'test_user' are in a state with COMMAND = 'Sleep'
|
||||
;
|
||||
let $wait_condition= SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.PROCESSLIST
|
||||
WHERE USER = 'test_user' AND COMMAND = 'Sleep';
|
||||
--source include/wait_condition.inc
|
||||
echo
|
||||
# ----- switch to connection con2 (user = test_user) -----
|
||||
;
|
||||
connection con2;
|
||||
# Just dump what we get
|
||||
--replace_column 1 <ID> 3 <HOST_NAME> 6 <TIME>
|
||||
SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
|
||||
--replace_column 1 <ID> 3 <HOST_NAME> 6 <TIME>
|
||||
SHOW FULL PROCESSLIST;
|
||||
#
|
||||
echo
|
||||
# ----- switch to connection default (user = root) -----
|
||||
;
|
||||
connection default;
|
||||
# Pull the ID of con2, we will need it later
|
||||
SELECT ID INTO @test_user_con2_id FROM INFORMATION_SCHEMA.PROCESSLIST
|
||||
WHERE ID <> @test_user_con1_id
|
||||
AND USER = 'test_user' AND DB = 'information_schema';
|
||||
|
||||
|
||||
echo
|
||||
# Ensure we get correct information about a connection during work
|
||||
#----------------------------------------------------------------------------
|
||||
;
|
||||
echo
|
||||
# ----- switch to connection con2 (user = test_user) -----
|
||||
;
|
||||
connection con2;
|
||||
# "Organise" a long running command to be observed by the root user.
|
||||
echo
|
||||
# Send a long enough running statement to the server, but do not
|
||||
# wait till the result comes back.
|
||||
;
|
||||
# Worst case scenario (=high I/O load on testing box):
|
||||
# - My experience:
|
||||
# Up to 2 seconds runtime per SELECT ... FROM INFORMATION_SCHEMA.PROCESSLIST
|
||||
# in rare cases.
|
||||
# - The following sequence contains ~ 4 of such SELECTs
|
||||
# Therefore we sleep 10 seconds.
|
||||
let $sleep_command =
|
||||
SELECT sleep(10), 17;
|
||||
send;
|
||||
eval $sleep_command;
|
||||
#
|
||||
echo
|
||||
# ----- switch to connection default (user = root) -----
|
||||
;
|
||||
connection default;
|
||||
echo
|
||||
# Poll till connection con2 is in state 'User sleep'.
|
||||
;
|
||||
# Expect to see within the processlist the other connection just during
|
||||
# statement execution.
|
||||
# - USER = 'test_user'
|
||||
# - DB = 'information_schema'
|
||||
# - Command = 'Query'(run without --ps-protocol)/'Execute' (run --ps-protocol)
|
||||
# - TIME >= 0
|
||||
# - State = 'User sleep'
|
||||
# - INFO = $sleep_command
|
||||
let $wait_condition=
|
||||
SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST
|
||||
WHERE ID = @test_user_con2_id AND Command IN('Query','Execute')
|
||||
AND State = 'User sleep' AND INFO IS NOT NULL ;
|
||||
--source include/wait_condition.inc
|
||||
# 1. Just dump what we get
|
||||
--replace_column 1 <ID> 3 <HOST_NAME> 6 <TIME>
|
||||
SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
|
||||
--replace_column 1 <ID> 3 <HOST_NAME> 6 <TIME>
|
||||
SHOW FULL PROCESSLIST;
|
||||
#
|
||||
# Pull some information about the connection con2
|
||||
SELECT STATE, TIME, INFO INTO @state, @time, @info
|
||||
FROM INFORMATION_SCHEMA.PROCESSLIST
|
||||
WHERE ID = @test_user_con2_id;
|
||||
# 2. TIME must have a reasonable value
|
||||
SELECT 0 <= @time < 10 AS "Has TIME a reasonable value?";
|
||||
# 3. STATE must be 'User sleep'
|
||||
SELECT @state = 'User sleep' AS "Has STATE the expected value?";
|
||||
# 4. INFO must fit
|
||||
eval SELECT @info = '$sleep_command' AS "Has INFO the expected value?";
|
||||
# 5. Check that TIME increases
|
||||
let $wait_timeout= 10;
|
||||
let $wait_condition= SELECT COUNT(*) = 1 FROM INFORMATION_SCHEMA.PROCESSLIST
|
||||
WHERE ID = @test_user_con2_id AND INFO IS NOT NULL AND TIME > @time;
|
||||
--source include/wait_condition.inc
|
||||
echo
|
||||
# ----- switch to connection con2 (user = testuser) -----
|
||||
;
|
||||
connection con2;
|
||||
echo
|
||||
# Pull("reap") the result set from the statement executed with "send".
|
||||
;
|
||||
reap;
|
||||
echo
|
||||
# ----- switch to connection default (user = root) -----
|
||||
;
|
||||
connection default;
|
||||
echo
|
||||
# Poll till all connections of 'test_user' are in a state with COMMAND = 'Sleep'
|
||||
;
|
||||
let $wait_timeout= 10;
|
||||
let $wait_condition= SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.PROCESSLIST
|
||||
WHERE COMMAND = 'Sleep' AND USER = 'test_user';
|
||||
--source include/wait_condition.inc
|
||||
|
||||
|
||||
echo
|
||||
# Ensure that we see that a connection "hangs" when colliding with a
|
||||
# WRITE TABLE LOCK
|
||||
#----------------------------------------------------------------------------
|
||||
;
|
||||
LOCK TABLE test.t1 WRITE;
|
||||
#
|
||||
echo
|
||||
# ----- switch to connection con2 (user = test_user) -----
|
||||
;
|
||||
connection con2;
|
||||
echo
|
||||
# Send a statement to the server, but do not wait till the result
|
||||
# comes back. We will pull this later.
|
||||
;
|
||||
send
|
||||
SELECT COUNT(*) FROM test.t1;
|
||||
echo
|
||||
# ----- switch to connection default (user = root) -----
|
||||
;
|
||||
connection default;
|
||||
echo
|
||||
# Poll till INFO is no more NULL and State = 'Locked'.
|
||||
;
|
||||
let $wait_condition= SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST
|
||||
WHERE INFO IS NOT NULL AND STATE = 'Locked';
|
||||
--source include/wait_condition.inc
|
||||
#
|
||||
# Expect to see the state 'Locked' for the third connection because the SELECT
|
||||
# collides with the WRITE TABLE LOCK.
|
||||
--replace_column 1 <ID> 3 <HOST_NAME> 6 <TIME>
|
||||
SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
|
||||
UNLOCK TABLES;
|
||||
#
|
||||
echo
|
||||
# ----- switch to connection con2 (user = test_user) -----
|
||||
;
|
||||
connection con2;
|
||||
echo
|
||||
# Pull("reap") the result set from the statement executed with "send".
|
||||
;
|
||||
reap;
|
||||
|
||||
|
||||
echo
|
||||
# Ensure that SHOW/SELECT processlist can handle extreme long commands
|
||||
#----------------------------------------------------------------------------
|
||||
;
|
||||
# We do not want to waste runtime, therefore we run the following test based
|
||||
# on "Lock collision" and not with some "sleep(10)".
|
||||
echo
|
||||
# ----- switch to connection default (user = root) -----
|
||||
;
|
||||
connection default;
|
||||
LOCK TABLE test.t1 WRITE;
|
||||
#
|
||||
echo
|
||||
# ----- switch to connection con2 (user = test_user) -----
|
||||
;
|
||||
connection con2;
|
||||
echo
|
||||
# Send a long (~20 KB code) statement to the server, but do not wait
|
||||
# till the result comes back. We will pull this later.
|
||||
;
|
||||
let $string=
|
||||
`SELECT CONCAT('BEGIN-',
|
||||
REPEAT('This is the representative of a very long statement.',400),
|
||||
'-END')`;
|
||||
let $my_statement =
|
||||
SELECT count(*),'$string' AS "Long string" FROM test.t1;
|
||||
send;
|
||||
eval $my_statement;
|
||||
echo
|
||||
# ----- switch to connection default (user = root) -----
|
||||
;
|
||||
connection default;
|
||||
echo
|
||||
# Poll till INFO is no more NULL and State = 'Locked'.
|
||||
;
|
||||
let $wait_condition= SELECT COUNT(*) FROM INFORMATION_SCHEMA.PROCESSLIST
|
||||
WHERE INFO IS NOT NULL AND STATE = 'Locked';
|
||||
--source include/wait_condition.inc
|
||||
echo
|
||||
# Expect result:
|
||||
# Statement Content of INFO
|
||||
# SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST Complete statement
|
||||
# SHOW FULL PROCESSLIST Complete statement
|
||||
# SHOW PROCESSLIST statement truncated after 100 char
|
||||
;
|
||||
--replace_column 1 <ID> 3 <HOST_NAME> 5 <COMMAND> 6 <TIME> 7 <STATE>
|
||||
SELECT * FROM INFORMATION_SCHEMA.PROCESSLIST;
|
||||
--replace_column 1 <ID> 3 <HOST_NAME> 5 <COMMAND> 6 <TIME> 7 <STATE>
|
||||
SHOW FULL PROCESSLIST;
|
||||
--replace_column 1 <ID> 3 <HOST_NAME> 5 <COMMAND> 6 <TIME> 7 <STATE>
|
||||
SHOW PROCESSLIST;
|
||||
UNLOCK TABLES;
|
||||
echo
|
||||
# ----- switch to connection con2 (user = test_user) -----
|
||||
;
|
||||
connection con2;
|
||||
echo
|
||||
# Pull("reap") the result set from the monster statement executed with "send".
|
||||
;
|
||||
reap;
|
||||
|
||||
|
||||
# Cleanup
|
||||
echo
|
||||
# ----- switch to connection default (user = root) -----
|
||||
;
|
||||
connection default;
|
||||
echo
|
||||
----- disconnect con1 and con2 -----
|
||||
;
|
||||
disconnect con1;
|
||||
disconnect con2;
|
||||
DROP USER test_user@'localhost';
|
||||
DROP TABLE test.t1;
|
||||
@@ -0,0 +1,55 @@
|
||||
# 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;
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
# suite/funcs_1/datadict/table_constraints.inc
|
||||
#
|
||||
# Auxiliary script to be sourced by
|
||||
# suite/funcs_1/t/is_table_constraints_mysql.test
|
||||
# suite/funcs_1/t/is_table_constraints_is.test
|
||||
#
|
||||
# The variable
|
||||
# $table_schema database to be inspected
|
||||
# has to be set before sourcing this script.
|
||||
#
|
||||
# Author:
|
||||
# 2008-01-23 mleich WL#4203 Reorganize and fix the data dictionary tests of
|
||||
# testsuite funcs_1
|
||||
# Create this script based on older scripts and new code.
|
||||
#
|
||||
|
||||
--disable_warnings
|
||||
DROP DATABASE IF EXISTS db_datadict;
|
||||
--enable_warnings
|
||||
CREATE DATABASE db_datadict;
|
||||
|
||||
# Create a low privileged user.
|
||||
# Note: The database db_datadict is just a "home" for the low privileged user
|
||||
# and not in the focus of testing.
|
||||
--error 0,ER_CANNOT_USER
|
||||
DROP USER testuser1@localhost;
|
||||
CREATE USER testuser1@localhost;
|
||||
GRANT SELECT ON db_datadict.* TO testuser1@localhost;
|
||||
|
||||
let $my_select = SELECT * FROM information_schema.table_constraints
|
||||
WHERE table_schema = '$table_schema'
|
||||
ORDER BY table_schema,table_name,constraint_name;
|
||||
eval $my_select;
|
||||
|
||||
--echo # Establish connection testuser1 (user=testuser1)
|
||||
--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
|
||||
connect (testuser1,localhost,testuser1,,db_datadict);
|
||||
eval $my_select;
|
||||
|
||||
--echo # Switch to connection default and close connection testuser1
|
||||
connection default;
|
||||
disconnect testuser1;
|
||||
DROP USER testuser1@localhost;
|
||||
DROP DATABASE db_datadict;
|
||||
|
||||
55
build/lib/mysql/mysql-test/suite/funcs_1/datadict/tables.inc
Normal file
55
build/lib/mysql/mysql-test/suite/funcs_1/datadict/tables.inc
Normal file
@@ -0,0 +1,55 @@
|
||||
# suite/funcs_1/datadict/tables.inc
|
||||
#
|
||||
# Auxiliary script to be sourced by
|
||||
# is_tables_<engine>.test
|
||||
#
|
||||
# The variable $engine_type has to be assigned before sourcing ths script.
|
||||
#
|
||||
# Author:
|
||||
# 2008-06-04 mleich Create this script based on older scripts and new code.
|
||||
#
|
||||
|
||||
# Just have some tables within different databases.
|
||||
--disable_warnings
|
||||
DROP DATABASE IF EXISTS test1;
|
||||
DROP DATABASE IF EXISTS test2;
|
||||
--enable_warnings
|
||||
CREATE DATABASE test1;
|
||||
CREATE DATABASE test2;
|
||||
|
||||
--replace_result $engine_type <engine_to_be_used>
|
||||
eval CREATE TABLE test1.t1 (f1 VARCHAR(20)) ENGINE = $engine_type;
|
||||
--replace_result $engine_type <engine_to_be_used>
|
||||
eval CREATE TABLE test1.t2 (f1 VARCHAR(20)) ENGINE = $engine_type;
|
||||
--replace_result $engine_type <engine_to_be_used>
|
||||
eval CREATE TABLE test2.t1 (f1 VARCHAR(20)) ENGINE = $engine_type;
|
||||
|
||||
--source suite/funcs_1/datadict/tables2.inc
|
||||
SHOW TABLES FROM test1;
|
||||
SHOW TABLES FROM test2;
|
||||
|
||||
# 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 test1.* TO testuser1@localhost;
|
||||
|
||||
--echo # Establish connection testuser1 (user=testuser1)
|
||||
--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
|
||||
connect (testuser1,localhost,testuser1,,test1);
|
||||
--source suite/funcs_1/datadict/tables2.inc
|
||||
SHOW TABLES FROM test1;
|
||||
# The lowprivileged user testuser1 will get here an error.
|
||||
--disable_abort_on_error
|
||||
SHOW TABLES FROM test2;
|
||||
--enable_abort_on_error
|
||||
|
||||
--echo # Switch to connection default and close connection testuser1
|
||||
connection default;
|
||||
disconnect testuser1;
|
||||
DROP USER testuser1@localhost;
|
||||
|
||||
DROP DATABASE test1;
|
||||
DROP DATABASE test2;
|
||||
@@ -0,0 +1,38 @@
|
||||
# suite/funcs_1/datadict/tables1.inc
|
||||
#
|
||||
# Auxiliary script to be sourced by
|
||||
# is_tables_mysql.test
|
||||
# is_tables_mysql_embedded.test
|
||||
# is_tables_is.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 test1;
|
||||
--enable_warnings
|
||||
CREATE DATABASE test1;
|
||||
|
||||
--source suite/funcs_1/datadict/tables2.inc
|
||||
|
||||
# Create a low privileged user.
|
||||
# Note: The database test1 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 test1.* TO testuser1@localhost;
|
||||
|
||||
--echo # Establish connection testuser1 (user=testuser1)
|
||||
--replace_result $MASTER_MYPORT MYSQL_PORT $MASTER_MYSOCK MYSQL_SOCK
|
||||
connect (testuser1,localhost,testuser1,,test1);
|
||||
--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 test1;
|
||||
@@ -0,0 +1,48 @@
|
||||
# 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
|
||||
# We do not unify the engine name here, because the rowformat is
|
||||
# specific to the engine.
|
||||
--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
|
||||
@@ -0,0 +1,13 @@
|
||||
# Skip tests which suffer from
|
||||
# Bug#28309 First insert violates unique constraint
|
||||
# - was "memory" table empty?
|
||||
# if the folowing conditions are fulfilled:
|
||||
# - MySQL Version is 5.0 (Bug is fixed in 5.1 and up)
|
||||
# - use of embedded server
|
||||
# - run on a case insensitive filesystem
|
||||
#
|
||||
let $value= query_get_value(SHOW VARIABLES LIKE 'lower_case_file_system', Value, 1);
|
||||
if (`SELECT '$value' = 'ON' AND VERSION() LIKE '5.0%embedded%'`)
|
||||
{
|
||||
skip # Test requires backport of fix for Bug#28309 First insert violates unique constraint - was "memory" table empty ?;
|
||||
}
|
||||
21
build/lib/mysql/mysql-test/suite/funcs_1/include/cleanup.inc
Normal file
21
build/lib/mysql/mysql-test/suite/funcs_1/include/cleanup.inc
Normal file
@@ -0,0 +1,21 @@
|
||||
# suite/funcs_1/include/cleanup.inc
|
||||
#
|
||||
# Remove all objects created by sourcing
|
||||
# suite/funcs_1/datadict/datadict_load.inc
|
||||
#
|
||||
DROP DATABASE test1;
|
||||
DROP DATABASE test4;
|
||||
DROP TABLE test.t1;
|
||||
DROP TABLE test.t2;
|
||||
DROP TABLE test.t3;
|
||||
DROP TABLE test.t4;
|
||||
DROP TABLE test.t7;
|
||||
DROP TABLE test.t8;
|
||||
DROP TABLE test.t9;
|
||||
DROP TABLE test.t10;
|
||||
DROP TABLE test.t11;
|
||||
DROP TABLE test.tb1;
|
||||
DROP TABLE test.tb2;
|
||||
DROP TABLE test.tb3;
|
||||
DROP TABLE test.tb4;
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
##### suite/funcs_1/include/innodb_tb1.inc
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists tb1 ;
|
||||
--enable_warnings
|
||||
create table tb1 (
|
||||
f1 char(0),
|
||||
f2 char(0) binary,
|
||||
f3 char(0) ascii,
|
||||
f4 tinytext,
|
||||
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;
|
||||
|
||||
--replace_result $MYSQLTEST_VARDIR <MYSQLTEST_VARDIR>
|
||||
eval
|
||||
load data infile '$MYSQLTEST_VARDIR/std_data/funcs_1/innodb_tb1.txt'
|
||||
into table tb1;
|
||||
@@ -0,0 +1,63 @@
|
||||
##### suite/funcs_1/include/innodb_tb2.inc
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists tb2 ;
|
||||
--enable_warnings
|
||||
create table tb2 (
|
||||
f59 numeric (0) unsigned,
|
||||
f60 numeric (64) unsigned,
|
||||
f61 numeric (0) zerofill,
|
||||
f62 numeric (64) zerofill,
|
||||
f63 numeric (0) unsigned zerofill,
|
||||
f64 numeric (64) unsigned zerofill,
|
||||
f65 numeric (0,0),
|
||||
f66 numeric (63,30),
|
||||
f67 numeric (0,0) unsigned,
|
||||
f68 numeric (63,30) unsigned,
|
||||
f69 numeric (0,0) zerofill,
|
||||
f70 numeric (63,30) zerofill,
|
||||
f71 numeric (0,0) unsigned zerofill,
|
||||
f72 numeric (63,30) unsigned zerofill,
|
||||
f73 real,
|
||||
f74 real unsigned,
|
||||
f75 real zerofill,
|
||||
f76 real unsigned zerofill,
|
||||
f77 double default 7.7,
|
||||
f78 double unsigned default 7.7,
|
||||
f79 double zerofill default 7.7,
|
||||
f80 double unsigned zerofill default 8.8,
|
||||
f81 float not null default 8.8,
|
||||
f82 float unsigned not null default 8.8,
|
||||
f83 float zerofill not null default 8.8,
|
||||
f84 float unsigned zerofill not null default 8.8,
|
||||
f85 float(0) not null default 8.8,
|
||||
f86 float(23) not null default 8.8,
|
||||
f87 float(0) unsigned not null default 8.8,
|
||||
f88 float(23) unsigned not null default 8.8,
|
||||
f89 float(0) zerofill not null default 8.8,
|
||||
f90 float(23) zerofill not null default 8.8,
|
||||
f91 float(0) unsigned zerofill not null default 8.8,
|
||||
f92 float(23) unsigned zerofill not null default 8.8,
|
||||
f93 float(24) not null default 8.8,
|
||||
f94 float(53) not null default 8.8,
|
||||
f95 float(24) unsigned not null default 8.8,
|
||||
f96 float(53) unsigned not null default 8.8,
|
||||
f97 float(24) zerofill not null default 8.8,
|
||||
f98 float(53) zerofill not null default 8.8,
|
||||
f99 float(24) unsigned zerofill not null default 8.8,
|
||||
f100 float(53) unsigned zerofill not null default 8.8,
|
||||
f101 date not null default '2000-01-01',
|
||||
f102 time not null default 20,
|
||||
f103 datetime not null default '2/2/2',
|
||||
f104 timestamp not null default 20001231235959,
|
||||
f105 year not null default 2000,
|
||||
f106 year(3) not null default 2000,
|
||||
f107 year(4) not null default 2000,
|
||||
f108 enum("1enum","2enum") not null default "1enum",
|
||||
f109 set("1set","2set") not null default "1set"
|
||||
) engine = innodb;
|
||||
|
||||
--replace_result $MYSQLTEST_VARDIR <MYSQLTEST_VARDIR>
|
||||
eval
|
||||
load data infile '$MYSQLTEST_VARDIR/std_data/funcs_1/innodb_tb2.txt'
|
||||
into table tb2;
|
||||
@@ -0,0 +1,70 @@
|
||||
##### suite/funcs_1/include/innodb_tb3.inc
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists tb3 ;
|
||||
--enable_warnings
|
||||
create table tb3 (
|
||||
f118 char not null DEFAULT 'a',
|
||||
f119 char binary not null DEFAULT b'101',
|
||||
f120 char ascii not null DEFAULT b'101',
|
||||
f121 tinytext,
|
||||
f122 text,
|
||||
f123 mediumtext,
|
||||
f124 longtext,
|
||||
f125 tinyblob,
|
||||
f126 blob,
|
||||
f127 mediumblob,
|
||||
f128 longblob,
|
||||
f129 binary not null DEFAULT b'101',
|
||||
f130 tinyint not null DEFAULT 99,
|
||||
f131 tinyint unsigned not null DEFAULT 99,
|
||||
f132 tinyint zerofill not null DEFAULT 99,
|
||||
f133 tinyint unsigned zerofill not null DEFAULT 99,
|
||||
f134 smallint not null DEFAULT 999,
|
||||
f135 smallint unsigned not null DEFAULT 999,
|
||||
f136 smallint zerofill not null DEFAULT 999,
|
||||
f137 smallint unsigned zerofill not null DEFAULT 999,
|
||||
f138 mediumint not null DEFAULT 9999,
|
||||
f139 mediumint unsigned not null DEFAULT 9999,
|
||||
f140 mediumint zerofill not null DEFAULT 9999,
|
||||
f141 mediumint unsigned zerofill not null DEFAULT 9999,
|
||||
f142 int not null DEFAULT 99999,
|
||||
f143 int unsigned not null DEFAULT 99999,
|
||||
f144 int zerofill not null DEFAULT 99999,
|
||||
f145 int unsigned zerofill not null DEFAULT 99999,
|
||||
f146 bigint not null DEFAULT 999999,
|
||||
f147 bigint unsigned not null DEFAULT 999999,
|
||||
f148 bigint zerofill not null DEFAULT 999999,
|
||||
f149 bigint unsigned zerofill not null DEFAULT 999999,
|
||||
f150 decimal not null DEFAULT 999.999,
|
||||
f151 decimal unsigned not null DEFAULT 999.17,
|
||||
f152 decimal zerofill not null DEFAULT 999.999,
|
||||
f153 decimal unsigned zerofill,
|
||||
f154 decimal (0),
|
||||
f155 decimal (64),
|
||||
f156 decimal (0) unsigned,
|
||||
f157 decimal (64) unsigned,
|
||||
f158 decimal (0) zerofill,
|
||||
f159 decimal (64) zerofill,
|
||||
f160 decimal (0) unsigned zerofill,
|
||||
f161 decimal (64) unsigned zerofill,
|
||||
f162 decimal (0,0),
|
||||
f163 decimal (63,30),
|
||||
f164 decimal (0,0) unsigned,
|
||||
f165 decimal (63,30) unsigned,
|
||||
f166 decimal (0,0) zerofill,
|
||||
f167 decimal (63,30) zerofill,
|
||||
f168 decimal (0,0) unsigned zerofill,
|
||||
f169 decimal (63,30) unsigned zerofill,
|
||||
f170 numeric,
|
||||
f171 numeric unsigned,
|
||||
f172 numeric zerofill,
|
||||
f173 numeric unsigned zerofill,
|
||||
f174 numeric (0),
|
||||
f175 numeric (64)
|
||||
) engine = innodb;
|
||||
|
||||
--replace_result $MYSQLTEST_VARDIR <MYSQLTEST_VARDIR>
|
||||
eval
|
||||
load data infile '$MYSQLTEST_VARDIR/std_data/funcs_1/innodb_tb3.txt'
|
||||
into table tb3;
|
||||
@@ -0,0 +1,70 @@
|
||||
##### suite/funcs_1/include/innodb_tb4.inc
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists tb4;
|
||||
--enable_warnings
|
||||
create table tb4 (
|
||||
f176 numeric (0) unsigned not null DEFAULT 9,
|
||||
f177 numeric (64) unsigned not null DEFAULT 9,
|
||||
f178 numeric (0) zerofill not null DEFAULT 9,
|
||||
f179 numeric (64) zerofill not null DEFAULT 9,
|
||||
f180 numeric (0) unsigned zerofill not null DEFAULT 9,
|
||||
f181 numeric (64) unsigned zerofill not null DEFAULT 9,
|
||||
f182 numeric (0,0) not null DEFAULT 9,
|
||||
f183 numeric (63,30) not null DEFAULT 9,
|
||||
f184 numeric (0,0) unsigned not null DEFAULT 9,
|
||||
f185 numeric (63,30) unsigned not null DEFAULT 9,
|
||||
f186 numeric (0,0) zerofill not null DEFAULT 9,
|
||||
f187 numeric (63,30) zerofill not null DEFAULT 9,
|
||||
f188 numeric (0,0) unsigned zerofill not null DEFAULT 9,
|
||||
f189 numeric (63,30) unsigned zerofill not null DEFAULT 9,
|
||||
f190 real not null DEFAULT 88.8,
|
||||
f191 real unsigned not null DEFAULT 88.8,
|
||||
f192 real zerofill not null DEFAULT 88.8,
|
||||
f193 real unsigned zerofill not null DEFAULT 88.8,
|
||||
f194 double not null DEFAULT 55.5,
|
||||
f195 double unsigned not null DEFAULT 55.5,
|
||||
f196 double zerofill not null DEFAULT 55.5,
|
||||
f197 double unsigned zerofill not null DEFAULT 55.5,
|
||||
f198 float,
|
||||
f199 float unsigned,
|
||||
f200 float zerofill,
|
||||
f201 float unsigned zerofill,
|
||||
f202 float(0),
|
||||
f203 float(23),
|
||||
f204 float(0) unsigned,
|
||||
f205 float(23) unsigned,
|
||||
f206 float(0) zerofill,
|
||||
f207 float(23) zerofill,
|
||||
f208 float(0) unsigned zerofill,
|
||||
f209 float(23) unsigned zerofill,
|
||||
f210 float(24),
|
||||
f211 float(53),
|
||||
f212 float(24) unsigned,
|
||||
f213 float(53) unsigned,
|
||||
f214 float(24) zerofill,
|
||||
f215 float(53) zerofill,
|
||||
f216 float(24) unsigned zerofill,
|
||||
f217 float(53) unsigned zerofill,
|
||||
f218 date,
|
||||
f219 time,
|
||||
f220 datetime,
|
||||
f221 timestamp,
|
||||
f222 year,
|
||||
f223 year(3),
|
||||
f224 year(4),
|
||||
f225 enum("1enum","2enum"),
|
||||
f226 set("1set","2set"),
|
||||
f235 char(0),
|
||||
f236 char(90),
|
||||
f237 char(255) ascii,
|
||||
f238 varchar(0),
|
||||
f239 varchar(20000) binary,
|
||||
f240 varchar(2000),
|
||||
f241 char(100)
|
||||
) engine = innodb;
|
||||
|
||||
--replace_result $MYSQLTEST_VARDIR <MYSQLTEST_VARDIR>
|
||||
eval
|
||||
load data infile '$MYSQLTEST_VARDIR/std_data/funcs_1/innodb_tb4.txt'
|
||||
into table tb4;
|
||||
@@ -0,0 +1,62 @@
|
||||
##### suite/funcs_1/include/memory_tb1.inc
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists tb1 ;
|
||||
--enable_warnings
|
||||
create table tb1 (
|
||||
f1 char,
|
||||
f2 char binary,
|
||||
f3 char ascii,
|
||||
f12 binary,
|
||||
f13 tinyint,
|
||||
f14 tinyint unsigned,
|
||||
f15 tinyint zerofill,
|
||||
f16 tinyint unsigned zerofill,
|
||||
f17 smallint,
|
||||
f18 smallint unsigned,
|
||||
f19 smallint zerofill,
|
||||
f20 smallint unsigned zerofill,
|
||||
f21 mediumint,
|
||||
f22 mediumint unsigned,
|
||||
f23 mediumint zerofill,
|
||||
f24 mediumint unsigned zerofill,
|
||||
f25 int,
|
||||
f26 int unsigned,
|
||||
f27 int zerofill,
|
||||
f28 int unsigned zerofill,
|
||||
f29 bigint,
|
||||
f30 bigint unsigned,
|
||||
f31 bigint zerofill,
|
||||
f32 bigint unsigned zerofill,
|
||||
f33 decimal not null DEFAULT 9.9,
|
||||
f34 decimal unsigned not null DEFAULT 9.9,
|
||||
f35 decimal zerofill not null DEFAULT 9.9,
|
||||
f36 decimal unsigned zerofill not null DEFAULT 9.9,
|
||||
f37 decimal (0) not null DEFAULT 9.9,
|
||||
f38 decimal (64) not null DEFAULT 9.9,
|
||||
f39 decimal (0) unsigned not null DEFAULT 9.9,
|
||||
f40 decimal (64) unsigned not null DEFAULT 9.9,
|
||||
f41 decimal (0) zerofill not null DEFAULT 9.9,
|
||||
f42 decimal (64) zerofill not null DEFAULT 9.9,
|
||||
f43 decimal (0) unsigned zerofill not null DEFAULT 9.9,
|
||||
f44 decimal (64) unsigned zerofill not null DEFAULT 9.9,
|
||||
f45 decimal (0,0) not null DEFAULT 9.9,
|
||||
f46 decimal (63,30) not null DEFAULT 9.9,
|
||||
f47 decimal (0,0) unsigned not null DEFAULT 9.9,
|
||||
f48 decimal (63,30) unsigned not null DEFAULT 9.9,
|
||||
f49 decimal (0,0) zerofill not null DEFAULT 9.9,
|
||||
f50 decimal (63,30) zerofill not null DEFAULT 9.9,
|
||||
f51 decimal (0,0) unsigned zerofill not null DEFAULT 9.9,
|
||||
f52 decimal (63,30) unsigned zerofill not null DEFAULT 9.9,
|
||||
f53 numeric not null DEFAULT 99,
|
||||
f54 numeric unsigned not null DEFAULT 99,
|
||||
f55 numeric zerofill not null DEFAULT 99,
|
||||
f56 numeric unsigned zerofill not null DEFAULT 99,
|
||||
f57 numeric (0) not null DEFAULT 99,
|
||||
f58 numeric (64) not null DEFAULT 99
|
||||
) engine = memory;
|
||||
|
||||
--replace_result $MYSQLTEST_VARDIR <MYSQLTEST_VARDIR>
|
||||
eval
|
||||
load data infile '$MYSQLTEST_VARDIR/std_data/funcs_1/memory_tb1.txt'
|
||||
into table tb1;
|
||||
@@ -0,0 +1,63 @@
|
||||
##### suite/funcs_1/include/memory_tb2.inc
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists tb2 ;
|
||||
--enable_warnings
|
||||
create table tb2 (
|
||||
f59 numeric (0) unsigned,
|
||||
f60 numeric (64) unsigned,
|
||||
f61 numeric (0) zerofill,
|
||||
f62 numeric (64) zerofill,
|
||||
f63 numeric (0) unsigned zerofill,
|
||||
f64 numeric (64) unsigned zerofill,
|
||||
f65 numeric (0,0),
|
||||
f66 numeric (63,30),
|
||||
f67 numeric (0,0) unsigned,
|
||||
f68 numeric (63,30) unsigned,
|
||||
f69 numeric (0,0) zerofill,
|
||||
f70 numeric (63,30) zerofill,
|
||||
f71 numeric (0,0) unsigned zerofill,
|
||||
f72 numeric (63,30) unsigned zerofill,
|
||||
f73 real,
|
||||
f74 real unsigned,
|
||||
f75 real zerofill,
|
||||
f76 real unsigned zerofill,
|
||||
f77 double default 7.7,
|
||||
f78 double unsigned default 7.7,
|
||||
f79 double zerofill default 7.7,
|
||||
f80 double unsigned zerofill default 8.8,
|
||||
f81 float not null default 8.8,
|
||||
f82 float unsigned not null default 8.8,
|
||||
f83 float zerofill not null default 8.8,
|
||||
f84 float unsigned zerofill not null default 8.8,
|
||||
f85 float(0) not null default 8.8,
|
||||
f86 float(23) not null default 8.8,
|
||||
f87 float(0) unsigned not null default 8.8,
|
||||
f88 float(23) unsigned not null default 8.8,
|
||||
f89 float(0) zerofill not null default 8.8,
|
||||
f90 float(23) zerofill not null default 8.8,
|
||||
f91 float(0) unsigned zerofill not null default 8.8,
|
||||
f92 float(23) unsigned zerofill not null default 8.8,
|
||||
f93 float(24) not null default 8.8,
|
||||
f94 float(53) not null default 8.8,
|
||||
f95 float(24) unsigned not null default 8.8,
|
||||
f96 float(53) unsigned not null default 8.8,
|
||||
f97 float(24) zerofill not null default 8.8,
|
||||
f98 float(53) zerofill not null default 8.8,
|
||||
f99 float(24) unsigned zerofill not null default 8.8,
|
||||
f100 float(53) unsigned zerofill not null default 8.8,
|
||||
f101 date not null default '2000-01-01',
|
||||
f102 time not null default 20,
|
||||
f103 datetime not null default '2/2/2',
|
||||
f104 timestamp not null default 20001231235959,
|
||||
f105 year not null default 2000,
|
||||
f106 year(3) not null default 2000,
|
||||
f107 year(4) not null default 2000,
|
||||
f108 enum("1enum","2enum") not null default "1enum",
|
||||
f109 set("1set","2set") not null default "1set"
|
||||
) engine = memory;
|
||||
|
||||
--replace_result $MYSQLTEST_VARDIR <MYSQLTEST_VARDIR>
|
||||
eval
|
||||
load data infile '$MYSQLTEST_VARDIR/std_data/funcs_1/memory_tb2.txt'
|
||||
into table tb2 ;
|
||||
@@ -0,0 +1,64 @@
|
||||
##### suite/funcs_1/include/memory_tb3.inc
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists tb3;
|
||||
--enable_warnings
|
||||
create table tb3 (
|
||||
f118 char not null DEFAULT 'a',
|
||||
f119 char binary not null DEFAULT b'101',
|
||||
f120 char ascii not null DEFAULT b'101',
|
||||
f121 char(50),
|
||||
f122 char(50),
|
||||
f129 binary not null DEFAULT b'101',
|
||||
f130 tinyint not null DEFAULT 99,
|
||||
f131 tinyint unsigned not null DEFAULT 99,
|
||||
f132 tinyint zerofill not null DEFAULT 99,
|
||||
f133 tinyint unsigned zerofill not null DEFAULT 99,
|
||||
f134 smallint not null DEFAULT 999,
|
||||
f135 smallint unsigned not null DEFAULT 999,
|
||||
f136 smallint zerofill not null DEFAULT 999,
|
||||
f137 smallint unsigned zerofill not null DEFAULT 999,
|
||||
f138 mediumint not null DEFAULT 9999,
|
||||
f139 mediumint unsigned not null DEFAULT 9999,
|
||||
f140 mediumint zerofill not null DEFAULT 9999,
|
||||
f141 mediumint unsigned zerofill not null DEFAULT 9999,
|
||||
f142 int not null DEFAULT 99999,
|
||||
f143 int unsigned not null DEFAULT 99999,
|
||||
f144 int zerofill not null DEFAULT 99999,
|
||||
f145 int unsigned zerofill not null DEFAULT 99999,
|
||||
f146 bigint not null DEFAULT 999999,
|
||||
f147 bigint unsigned not null DEFAULT 999999,
|
||||
f148 bigint zerofill not null DEFAULT 999999,
|
||||
f149 bigint unsigned zerofill not null DEFAULT 999999,
|
||||
f150 decimal not null DEFAULT 999.999,
|
||||
f151 decimal unsigned not null DEFAULT 999.17,
|
||||
f152 decimal zerofill not null DEFAULT 999.999,
|
||||
f153 decimal unsigned zerofill,
|
||||
f154 decimal (0),
|
||||
f155 decimal (64),
|
||||
f156 decimal (0) unsigned,
|
||||
f157 decimal (64) unsigned,
|
||||
f158 decimal (0) zerofill,
|
||||
f159 decimal (64) zerofill,
|
||||
f160 decimal (0) unsigned zerofill,
|
||||
f161 decimal (64) unsigned zerofill,
|
||||
f162 decimal (0,0),
|
||||
f163 decimal (63,30),
|
||||
f164 decimal (0,0) unsigned,
|
||||
f165 decimal (63,30) unsigned,
|
||||
f166 decimal (0,0) zerofill,
|
||||
f167 decimal (63,30) zerofill,
|
||||
f168 decimal (0,0) unsigned zerofill,
|
||||
f169 decimal (63,30) unsigned zerofill,
|
||||
f170 numeric,
|
||||
f171 numeric unsigned,
|
||||
f172 numeric zerofill,
|
||||
f173 numeric unsigned zerofill,
|
||||
f174 numeric (0),
|
||||
f175 numeric (64)
|
||||
) engine = memory;
|
||||
|
||||
--replace_result $MYSQLTEST_VARDIR <MYSQLTEST_VARDIR>
|
||||
eval
|
||||
load data infile '$MYSQLTEST_VARDIR/std_data/funcs_1/memory_tb3.txt'
|
||||
into table tb3;
|
||||
@@ -0,0 +1,69 @@
|
||||
##### suite/funcs_1/include/memory_tb4.inc
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists tb4 ;
|
||||
--enable_warnings
|
||||
create table tb4 (
|
||||
f176 numeric (0) unsigned not null DEFAULT 9,
|
||||
f177 numeric (64) unsigned not null DEFAULT 9,
|
||||
f178 numeric (0) zerofill not null DEFAULT 9,
|
||||
f179 numeric (64) zerofill not null DEFAULT 9,
|
||||
f180 numeric (0) unsigned zerofill not null DEFAULT 9,
|
||||
f181 numeric (64) unsigned zerofill not null DEFAULT 9,
|
||||
f182 numeric (0,0) not null DEFAULT 9,
|
||||
f183 numeric (63,30) not null DEFAULT 9,
|
||||
f184 numeric (0,0) unsigned not null DEFAULT 9,
|
||||
f185 numeric (63,30) unsigned not null DEFAULT 9,
|
||||
f186 numeric (0,0) zerofill not null DEFAULT 9,
|
||||
f187 numeric (63,30) zerofill not null DEFAULT 9,
|
||||
f188 numeric (0,0) unsigned zerofill not null DEFAULT 9,
|
||||
f189 numeric (63,30) unsigned zerofill not null DEFAULT 9,
|
||||
f190 real not null DEFAULT 88.8,
|
||||
f191 real unsigned not null DEFAULT 88.8,
|
||||
f192 real zerofill not null DEFAULT 88.8,
|
||||
f193 real unsigned zerofill not null DEFAULT 88.8,
|
||||
f194 double not null DEFAULT 55.5,
|
||||
f195 double unsigned not null DEFAULT 55.5,
|
||||
f196 double zerofill not null DEFAULT 55.5,
|
||||
f197 double unsigned zerofill not null DEFAULT 55.5,
|
||||
f198 float,
|
||||
f199 float unsigned,
|
||||
f200 float zerofill,
|
||||
f201 float unsigned zerofill,
|
||||
f202 float(0),
|
||||
f203 float(23),
|
||||
f204 float(0) unsigned,
|
||||
f205 float(23) unsigned,
|
||||
f206 float(0) zerofill,
|
||||
f207 float(23) zerofill,
|
||||
f208 float(0) unsigned zerofill,
|
||||
f209 float(23) unsigned zerofill,
|
||||
f210 float(24),
|
||||
f211 float(53),
|
||||
f212 float(24) unsigned,
|
||||
f213 float(53) unsigned,
|
||||
f214 float(24) zerofill,
|
||||
f215 float(53) zerofill,
|
||||
f216 float(24) unsigned zerofill,
|
||||
f217 float(53) unsigned zerofill,
|
||||
f218 date,
|
||||
f219 time,
|
||||
f220 datetime,
|
||||
f221 timestamp,
|
||||
f222 year,
|
||||
f223 year(3),
|
||||
f224 year(4),
|
||||
f225 enum("1enum","2enum"),
|
||||
f226 set("1set","2set"),
|
||||
f236 char(95),
|
||||
f241 char(255),
|
||||
f237 char(130) binary,
|
||||
f238 varchar(25000) binary,
|
||||
f239 varbinary(0),
|
||||
f240 varchar(1200)
|
||||
) engine = memory;
|
||||
|
||||
--replace_result $MYSQLTEST_VARDIR <MYSQLTEST_VARDIR>
|
||||
eval
|
||||
load data infile '$MYSQLTEST_VARDIR/std_data/funcs_1/memory_tb4.txt'
|
||||
into table tb4;
|
||||
@@ -0,0 +1,70 @@
|
||||
##### suite/funcs_1/include/myisam_tb1.inc
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists tb1 ;
|
||||
--enable_warnings
|
||||
create table tb1 (
|
||||
f1 char,
|
||||
f2 char binary,
|
||||
f3 char ascii,
|
||||
f4 tinytext,
|
||||
f5 text,
|
||||
f6 mediumtext,
|
||||
f7 longtext,
|
||||
f8 tinyblob,
|
||||
f9 blob,
|
||||
f10 mediumblob,
|
||||
f11 longblob,
|
||||
f12 binary,
|
||||
f13 tinyint,
|
||||
f14 tinyint unsigned,
|
||||
f15 tinyint zerofill,
|
||||
f16 tinyint unsigned zerofill,
|
||||
f17 smallint,
|
||||
f18 smallint unsigned,
|
||||
f19 smallint zerofill,
|
||||
f20 smallint unsigned zerofill,
|
||||
f21 mediumint,
|
||||
f22 mediumint unsigned,
|
||||
f23 mediumint zerofill,
|
||||
f24 mediumint unsigned zerofill,
|
||||
f25 int,
|
||||
f26 int unsigned,
|
||||
f27 int zerofill,
|
||||
f28 int unsigned zerofill,
|
||||
f29 bigint,
|
||||
f30 bigint unsigned,
|
||||
f31 bigint zerofill,
|
||||
f32 bigint unsigned zerofill,
|
||||
f33 decimal not null DEFAULT 9.9,
|
||||
f34 decimal unsigned not null DEFAULT 9.9,
|
||||
f35 decimal zerofill not null DEFAULT 9.9,
|
||||
f36 decimal unsigned zerofill not null DEFAULT 9.9,
|
||||
f37 decimal (0) not null DEFAULT 9.9,
|
||||
f38 decimal (64) not null DEFAULT 9.9,
|
||||
f39 decimal (0) unsigned not null DEFAULT 9.9,
|
||||
f40 decimal (64) unsigned not null DEFAULT 9.9,
|
||||
f41 decimal (0) zerofill not null DEFAULT 9.9,
|
||||
f42 decimal (64) zerofill not null DEFAULT 9.9,
|
||||
f43 decimal (0) unsigned zerofill not null DEFAULT 9.9,
|
||||
f44 decimal (64) unsigned zerofill not null DEFAULT 9.9,
|
||||
f45 decimal (0,0) not null DEFAULT 9.9,
|
||||
f46 decimal (63,30) not null DEFAULT 9.9,
|
||||
f47 decimal (0,0) unsigned not null DEFAULT 9.9,
|
||||
f48 decimal (63,30) unsigned not null DEFAULT 9.9,
|
||||
f49 decimal (0,0) zerofill not null DEFAULT 9.9,
|
||||
f50 decimal (63,30) zerofill not null DEFAULT 9.9,
|
||||
f51 decimal (0,0) unsigned zerofill not null DEFAULT 9.9,
|
||||
f52 decimal (63,30) unsigned zerofill not null DEFAULT 9.9,
|
||||
f53 numeric not null DEFAULT 99,
|
||||
f54 numeric unsigned not null DEFAULT 99,
|
||||
f55 numeric zerofill not null DEFAULT 99,
|
||||
f56 numeric unsigned zerofill not null DEFAULT 99,
|
||||
f57 numeric (0) not null DEFAULT 99,
|
||||
f58 numeric (64) not null DEFAULT 99
|
||||
) engine = myisam;
|
||||
|
||||
--replace_result $MYSQLTEST_VARDIR <MYSQLTEST_VARDIR>
|
||||
eval
|
||||
load data infile '$MYSQLTEST_VARDIR/std_data/funcs_1/myisam_tb1.txt'
|
||||
into table tb1;
|
||||
@@ -0,0 +1,82 @@
|
||||
###### suite/funcs_1/include/myisam_tb2.inc
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists tb2 ;
|
||||
--enable_warnings
|
||||
create table tb2 (
|
||||
f59 numeric (0) unsigned,
|
||||
f60 numeric (64) unsigned,
|
||||
f61 numeric (0) zerofill,
|
||||
f62 numeric (64) zerofill,
|
||||
f63 numeric (0) unsigned zerofill,
|
||||
f64 numeric (64) unsigned zerofill,
|
||||
f65 numeric (0,0),
|
||||
f66 numeric (63,30),
|
||||
f67 numeric (0,0) unsigned,
|
||||
f68 numeric (63,30) unsigned,
|
||||
f69 numeric (0,0) zerofill,
|
||||
f70 numeric (63,30) zerofill,
|
||||
f71 numeric (0,0) unsigned zerofill,
|
||||
f72 numeric (63,30) unsigned zerofill,
|
||||
f73 real,
|
||||
f74 real unsigned,
|
||||
f75 real zerofill,
|
||||
f76 real unsigned zerofill,
|
||||
f77 double default 7.7,
|
||||
f78 double unsigned default 7.7,
|
||||
f79 double zerofill default 7.7,
|
||||
f80 double unsigned zerofill default 8.8,
|
||||
f81 float not null default 8.8,
|
||||
f82 float unsigned not null default 8.8,
|
||||
f83 float zerofill not null default 8.8,
|
||||
f84 float unsigned zerofill not null default 8.8,
|
||||
f85 float(0) not null default 8.8,
|
||||
f86 float(23) not null default 8.8,
|
||||
f87 float(0) unsigned not null default 8.8,
|
||||
f88 float(23) unsigned not null default 8.8,
|
||||
f89 float(0) zerofill not null default 8.8,
|
||||
f90 float(23) zerofill not null default 8.8,
|
||||
f91 float(0) unsigned zerofill not null default 8.8,
|
||||
f92 float(23) unsigned zerofill not null default 8.8,
|
||||
f93 float(24) not null default 8.8,
|
||||
f94 float(53) not null default 8.8,
|
||||
f95 float(24) unsigned not null default 8.8,
|
||||
f96 float(53) unsigned not null default 8.8,
|
||||
f97 float(24) zerofill not null default 8.8,
|
||||
f98 float(53) zerofill not null default 8.8,
|
||||
f99 float(24) unsigned zerofill not null default 8.8,
|
||||
f100 float(53) unsigned zerofill not null default 8.8,
|
||||
f101 date not null default '2000-01-01',
|
||||
f102 time not null default 20,
|
||||
f103 datetime not null default '2/2/2',
|
||||
f104 timestamp not null default 20001231235959,
|
||||
f105 year not null default 2000,
|
||||
f106 year(3) not null default 2000,
|
||||
f107 year(4) not null default 2000,
|
||||
f108 enum("1enum","2enum") not null default "1enum",
|
||||
f109 set("1set","2set") not null default "1set",
|
||||
f110 VARBINARY(64) null,
|
||||
f111 VARBINARY(27) null ,
|
||||
f112 VARBINARY(64) null ,
|
||||
f113 VARBINARY(192) null ,
|
||||
f114 VARBINARY(192) ,
|
||||
f115 VARBINARY(27) null ,
|
||||
f116 VARBINARY(64) null,
|
||||
f117 VARBINARY(192) null
|
||||
) engine = myisam;
|
||||
|
||||
# The original columns. They are replaced by varbinary, because the funcs_1 tests should
|
||||
# not depend on the optional availability of the geometry feature.
|
||||
# f110 geometry null,
|
||||
# f111 point null ,
|
||||
# f112 linestring null ,
|
||||
# f113 polygon null ,
|
||||
# f114 geometrycollection ,
|
||||
# f115 multipoint null ,
|
||||
# f116 multilinestring null,
|
||||
# f117 multipolygon null
|
||||
|
||||
--replace_result $MYSQLTEST_VARDIR <MYSQLTEST_VARDIR>
|
||||
eval
|
||||
load data infile '$MYSQLTEST_VARDIR/std_data/funcs_1/myisam_tb2.txt'
|
||||
into table tb2;
|
||||
@@ -0,0 +1,70 @@
|
||||
##### suite/funcs_1/include/myisam_tb3.inc
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists tb3 ;
|
||||
--enable_warnings
|
||||
create table tb3 (
|
||||
f118 char not null DEFAULT 'a',
|
||||
f119 char binary not null DEFAULT b'101',
|
||||
f120 char ascii not null DEFAULT b'101',
|
||||
f121 tinytext,
|
||||
f122 text,
|
||||
f123 mediumtext,
|
||||
f124 longtext,
|
||||
f125 tinyblob,
|
||||
f126 blob,
|
||||
f127 mediumblob,
|
||||
f128 longblob,
|
||||
f129 binary not null DEFAULT b'101',
|
||||
f130 tinyint not null DEFAULT 99,
|
||||
f131 tinyint unsigned not null DEFAULT 99,
|
||||
f132 tinyint zerofill not null DEFAULT 99,
|
||||
f133 tinyint unsigned zerofill not null DEFAULT 99,
|
||||
f134 smallint not null DEFAULT 999,
|
||||
f135 smallint unsigned not null DEFAULT 999,
|
||||
f136 smallint zerofill not null DEFAULT 999,
|
||||
f137 smallint unsigned zerofill not null DEFAULT 999,
|
||||
f138 mediumint not null DEFAULT 9999,
|
||||
f139 mediumint unsigned not null DEFAULT 9999,
|
||||
f140 mediumint zerofill not null DEFAULT 9999,
|
||||
f141 mediumint unsigned zerofill not null DEFAULT 9999,
|
||||
f142 int not null DEFAULT 99999,
|
||||
f143 int unsigned not null DEFAULT 99999,
|
||||
f144 int zerofill not null DEFAULT 99999,
|
||||
f145 int unsigned zerofill not null DEFAULT 99999,
|
||||
f146 bigint not null DEFAULT 999999,
|
||||
f147 bigint unsigned not null DEFAULT 999999,
|
||||
f148 bigint zerofill not null DEFAULT 999999,
|
||||
f149 bigint unsigned zerofill not null DEFAULT 999999,
|
||||
f150 decimal not null DEFAULT 999.999,
|
||||
f151 decimal unsigned not null DEFAULT 999.17,
|
||||
f152 decimal zerofill not null DEFAULT 999.999,
|
||||
f153 decimal unsigned zerofill,
|
||||
f154 decimal (0),
|
||||
f155 decimal (64),
|
||||
f156 decimal (0) unsigned,
|
||||
f157 decimal (64) unsigned,
|
||||
f158 decimal (0) zerofill,
|
||||
f159 decimal (64) zerofill,
|
||||
f160 decimal (0) unsigned zerofill,
|
||||
f161 decimal (64) unsigned zerofill,
|
||||
f162 decimal (0,0),
|
||||
f163 decimal (63,30),
|
||||
f164 decimal (0,0) unsigned,
|
||||
f165 decimal (63,30) unsigned,
|
||||
f166 decimal (0,0) zerofill,
|
||||
f167 decimal (63,30) zerofill,
|
||||
f168 decimal (0,0) unsigned zerofill,
|
||||
f169 decimal (63,30) unsigned zerofill,
|
||||
f170 numeric,
|
||||
f171 numeric unsigned,
|
||||
f172 numeric zerofill,
|
||||
f173 numeric unsigned zerofill,
|
||||
f174 numeric (0),
|
||||
f175 numeric (64)
|
||||
) Engine = myisam;
|
||||
|
||||
--replace_result $MYSQLTEST_VARDIR <MYSQLTEST_VARDIR>
|
||||
eval
|
||||
load data infile '$MYSQLTEST_VARDIR/std_data/funcs_1/myisam_tb3.txt'
|
||||
into table tb3;
|
||||
@@ -0,0 +1,90 @@
|
||||
##### suite/funcs_1/include/myisam_tb4.inc
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists tb4 ;
|
||||
--enable_warnings
|
||||
create table tb4 (
|
||||
f176 numeric (0) unsigned not null DEFAULT 9,
|
||||
f177 numeric (64) unsigned not null DEFAULT 9,
|
||||
f178 numeric (0) zerofill not null DEFAULT 9,
|
||||
f179 numeric (64) zerofill not null DEFAULT 9,
|
||||
f180 numeric (0) unsigned zerofill not null DEFAULT 9,
|
||||
f181 numeric (64) unsigned zerofill not null DEFAULT 9,
|
||||
f182 numeric (0,0) not null DEFAULT 9,
|
||||
f183 numeric (63,30) not null DEFAULT 9,
|
||||
f184 numeric (0,0) unsigned not null DEFAULT 9,
|
||||
f185 numeric (63,30) unsigned not null DEFAULT 9,
|
||||
f186 numeric (0,0) zerofill not null DEFAULT 9,
|
||||
f187 numeric (63,30) zerofill not null DEFAULT 9,
|
||||
f188 numeric (0,0) unsigned zerofill not null DEFAULT 9,
|
||||
f189 numeric (63,30) unsigned zerofill not null DEFAULT 9,
|
||||
f190 real not null DEFAULT 88.8,
|
||||
f191 real unsigned not null DEFAULT 88.8,
|
||||
f192 real zerofill not null DEFAULT 88.8,
|
||||
f193 real unsigned zerofill not null DEFAULT 88.8,
|
||||
f194 double not null DEFAULT 55.5,
|
||||
f195 double unsigned not null DEFAULT 55.5,
|
||||
f196 double zerofill not null DEFAULT 55.5,
|
||||
f197 double unsigned zerofill not null DEFAULT 55.5,
|
||||
f198 float,
|
||||
f199 float unsigned,
|
||||
f200 float zerofill,
|
||||
f201 float unsigned zerofill,
|
||||
f202 float(0),
|
||||
f203 float(23),
|
||||
f204 float(0) unsigned,
|
||||
f205 float(23) unsigned,
|
||||
f206 float(0) zerofill,
|
||||
f207 float(23) zerofill,
|
||||
f208 float(0) unsigned zerofill,
|
||||
f209 float(23) unsigned zerofill,
|
||||
f210 float(24),
|
||||
f211 float(53),
|
||||
f212 float(24) unsigned,
|
||||
f213 float(53) unsigned,
|
||||
f214 float(24) zerofill,
|
||||
f215 float(53) zerofill,
|
||||
f216 float(24) unsigned zerofill,
|
||||
f217 float(53) unsigned zerofill,
|
||||
f218 date,
|
||||
f219 time,
|
||||
f220 datetime,
|
||||
f221 timestamp,
|
||||
f222 year,
|
||||
f223 year(3),
|
||||
f224 year(4),
|
||||
f225 enum("1enum","2enum"),
|
||||
f226 set("1set","2set"),
|
||||
f227 VARBINARY(64),
|
||||
f228 VARBINARY(27),
|
||||
f229 VARBINARY(64),
|
||||
f230 VARBINARY(192),
|
||||
f231 VARBINARY(192),
|
||||
f232 VARBINARY(27),
|
||||
f233 VARBINARY(64),
|
||||
f234 VARBINARY(192),
|
||||
f235 char(255),
|
||||
f236 char(60) ascii,
|
||||
f237 char(255) binary,
|
||||
f238 varchar(0) binary,
|
||||
f239 varbinary(1000),
|
||||
f240 varchar(120),
|
||||
f241 char(100),
|
||||
f242 bit(30)
|
||||
) engine = myisam;
|
||||
|
||||
# The original columns. They are replaced by varbinary, because the funcs_1 tests should
|
||||
# not depend on the optional availability of the geometry feature.
|
||||
# f227 geometry,
|
||||
# f228 point,
|
||||
# f229 linestring,
|
||||
# f230 polygon,
|
||||
# f231 geometrycollection,
|
||||
# f232 multipoint,
|
||||
# f233 multilinestring,
|
||||
# f234 multipolygon,
|
||||
|
||||
--replace_result $MYSQLTEST_VARDIR <MYSQLTEST_VARDIR>
|
||||
eval
|
||||
load data infile '$MYSQLTEST_VARDIR/std_data/funcs_1/myisam_tb4.txt'
|
||||
into table tb4;
|
||||
70
build/lib/mysql/mysql-test/suite/funcs_1/include/ndb_tb1.inc
Normal file
70
build/lib/mysql/mysql-test/suite/funcs_1/include/ndb_tb1.inc
Normal file
@@ -0,0 +1,70 @@
|
||||
##### suite/funcs_1/include/ndb_tb1.inc
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists tb1 ;
|
||||
--enable_warnings
|
||||
create table tb1 (
|
||||
f1 char(0),
|
||||
f2 char(0) binary,
|
||||
f3 char(0) ascii,
|
||||
f4 tinytext unicode,
|
||||
f5 text,
|
||||
f6 mediumtext,
|
||||
f7 longtext,
|
||||
f8 tinyblob,
|
||||
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 = ndb;
|
||||
|
||||
--replace_result $MYSQLTEST_VARDIR <MYSQLTEST_VARDIR>
|
||||
eval
|
||||
load data infile '$MYSQLTEST_VARDIR/std_data/funcs_1/ndb_tb1.txt'
|
||||
into table tb1 ;
|
||||
63
build/lib/mysql/mysql-test/suite/funcs_1/include/ndb_tb2.inc
Normal file
63
build/lib/mysql/mysql-test/suite/funcs_1/include/ndb_tb2.inc
Normal file
@@ -0,0 +1,63 @@
|
||||
##### suite/funcs_1/include/ndb_tb2.inc
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists tb2 ;
|
||||
--enable_warnings
|
||||
create table tb2 (
|
||||
f59 numeric (0) unsigned,
|
||||
f60 numeric (64) unsigned,
|
||||
f61 numeric (0) zerofill,
|
||||
f62 numeric (64) zerofill,
|
||||
f63 numeric (0) unsigned zerofill,
|
||||
f64 numeric (64) unsigned zerofill,
|
||||
f65 numeric (0,0),
|
||||
f66 numeric (63,30),
|
||||
f67 numeric (0,0) unsigned,
|
||||
f68 numeric (63,30) unsigned,
|
||||
f69 numeric (0,0) zerofill,
|
||||
f70 numeric (63,30) zerofill,
|
||||
f71 numeric (0,0) unsigned zerofill,
|
||||
f72 numeric (63,30) unsigned zerofill,
|
||||
f73 real,
|
||||
f74 real unsigned,
|
||||
f75 real zerofill,
|
||||
f76 real unsigned zerofill,
|
||||
f77 double default 7.7,
|
||||
f78 double unsigned default 7.7,
|
||||
f79 double zerofill default 7.7,
|
||||
f80 double unsigned zerofill default 8.8,
|
||||
f81 float not null default 8.8,
|
||||
f82 float unsigned not null default 8.8,
|
||||
f83 float zerofill not null default 8.8,
|
||||
f84 float unsigned zerofill not null default 8.8,
|
||||
f85 float(0) not null default 8.8,
|
||||
f86 float(23) not null default 8.8,
|
||||
f87 float(0) unsigned not null default 8.8,
|
||||
f88 float(23) unsigned not null default 8.8,
|
||||
f89 float(0) zerofill not null default 8.8,
|
||||
f90 float(23) zerofill not null default 8.8,
|
||||
f91 float(0) unsigned zerofill not null default 8.8,
|
||||
f92 float(23) unsigned zerofill not null default 8.8,
|
||||
f93 float(24) not null default 8.8,
|
||||
f94 float(53) not null default 8.8,
|
||||
f95 float(24) unsigned not null default 8.8,
|
||||
f96 float(53) unsigned not null default 8.8,
|
||||
f97 float(24) zerofill not null default 8.8,
|
||||
f98 float(53) zerofill not null default 8.8,
|
||||
f99 float(24) unsigned zerofill not null default 8.8,
|
||||
f100 float(53) unsigned zerofill not null default 8.8,
|
||||
f101 date not null default '2000-01-01',
|
||||
f102 time not null default 20,
|
||||
f103 datetime not null default '2/2/2',
|
||||
f104 timestamp not null default 20001231235959,
|
||||
f105 year not null default 2000,
|
||||
f106 year(3) not null default 2000,
|
||||
f107 year(4) not null default 2000,
|
||||
f108 enum("1enum","2enum") not null default "1enum",
|
||||
f109 set("1set","2set") not null default "1set"
|
||||
) engine = ndb;
|
||||
|
||||
--replace_result $MYSQLTEST_VARDIR <MYSQLTEST_VARDIR>
|
||||
eval
|
||||
load data infile '$MYSQLTEST_VARDIR/std_data/funcs_1/ndb_tb2.txt'
|
||||
into table tb2 ;
|
||||
70
build/lib/mysql/mysql-test/suite/funcs_1/include/ndb_tb3.inc
Normal file
70
build/lib/mysql/mysql-test/suite/funcs_1/include/ndb_tb3.inc
Normal file
@@ -0,0 +1,70 @@
|
||||
##### suite/funcs_1/include/ndb_tb3.inc
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists tb3 ;
|
||||
--enable_warnings
|
||||
create table tb3 (
|
||||
f118 char not null DEFAULT 'a',
|
||||
f119 char binary not null DEFAULT b'101',
|
||||
f120 char ascii not null DEFAULT b'101',
|
||||
f121 tinytext,
|
||||
f122 text,
|
||||
f123 mediumtext,
|
||||
f124 longtext unicode,
|
||||
f125 tinyblob,
|
||||
f126 blob,
|
||||
f127 mediumblob,
|
||||
f128 longblob,
|
||||
f129 binary not null DEFAULT b'101',
|
||||
f130 tinyint not null DEFAULT 99,
|
||||
f131 tinyint unsigned not null DEFAULT 99,
|
||||
f132 tinyint zerofill not null DEFAULT 99,
|
||||
f133 tinyint unsigned zerofill not null DEFAULT 99,
|
||||
f134 smallint not null DEFAULT 999,
|
||||
f135 smallint unsigned not null DEFAULT 999,
|
||||
f136 smallint zerofill not null DEFAULT 999,
|
||||
f137 smallint unsigned zerofill not null DEFAULT 999,
|
||||
f138 mediumint not null DEFAULT 9999,
|
||||
f139 mediumint unsigned not null DEFAULT 9999,
|
||||
f140 mediumint zerofill not null DEFAULT 9999,
|
||||
f141 mediumint unsigned zerofill not null DEFAULT 9999,
|
||||
f142 int not null DEFAULT 99999,
|
||||
f143 int unsigned not null DEFAULT 99999,
|
||||
f144 int zerofill not null DEFAULT 99999,
|
||||
f145 int unsigned zerofill not null DEFAULT 99999,
|
||||
f146 bigint not null DEFAULT 999999,
|
||||
f147 bigint unsigned not null DEFAULT 999999,
|
||||
f148 bigint zerofill not null DEFAULT 999999,
|
||||
f149 bigint unsigned zerofill not null DEFAULT 999999,
|
||||
f150 decimal not null DEFAULT 999.999,
|
||||
f151 decimal unsigned not null DEFAULT 999.17,
|
||||
f152 decimal zerofill not null DEFAULT 999.999,
|
||||
f153 decimal unsigned zerofill,
|
||||
f154 decimal (0),
|
||||
f155 decimal (64),
|
||||
f156 decimal (0) unsigned,
|
||||
f157 decimal (64) unsigned,
|
||||
f158 decimal (0) zerofill,
|
||||
f159 decimal (64) zerofill,
|
||||
f160 decimal (0) unsigned zerofill,
|
||||
f161 decimal (64) unsigned zerofill,
|
||||
f162 decimal (0,0),
|
||||
f163 decimal (63,30),
|
||||
f164 decimal (0,0) unsigned,
|
||||
f165 decimal (63,30) unsigned,
|
||||
f166 decimal (0,0) zerofill,
|
||||
f167 decimal (63,30) zerofill,
|
||||
f168 decimal (0,0) unsigned zerofill,
|
||||
f169 decimal (63,30) unsigned zerofill,
|
||||
f170 numeric,
|
||||
f171 numeric unsigned,
|
||||
f172 numeric zerofill,
|
||||
f173 numeric unsigned zerofill,
|
||||
f174 numeric (0),
|
||||
f175 numeric (64)
|
||||
) engine = ndb;
|
||||
|
||||
--replace_result $MYSQLTEST_VARDIR <MYSQLTEST_VARDIR>
|
||||
eval
|
||||
load data infile '$MYSQLTEST_VARDIR/std_data/funcs_1/ndb_tb3.txt'
|
||||
into table tb3;
|
||||
70
build/lib/mysql/mysql-test/suite/funcs_1/include/ndb_tb4.inc
Normal file
70
build/lib/mysql/mysql-test/suite/funcs_1/include/ndb_tb4.inc
Normal file
@@ -0,0 +1,70 @@
|
||||
##### suite/funcs_1/include/ndb_tb4.inc
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists tb4;
|
||||
--enable_warnings
|
||||
create table tb4 (
|
||||
f176 numeric (0) unsigned not null DEFAULT 9,
|
||||
f177 numeric (64) unsigned not null DEFAULT 9,
|
||||
f178 numeric (0) zerofill not null DEFAULT 9,
|
||||
f179 numeric (64) zerofill not null DEFAULT 9,
|
||||
f180 numeric (0) unsigned zerofill not null DEFAULT 9,
|
||||
f181 numeric (64) unsigned zerofill not null DEFAULT 9,
|
||||
f182 numeric (0,0) not null DEFAULT 9,
|
||||
f183 numeric (63,30) not null DEFAULT 9,
|
||||
f184 numeric (0,0) unsigned not null DEFAULT 9,
|
||||
f185 numeric (63,30) unsigned not null DEFAULT 9,
|
||||
f186 numeric (0,0) zerofill not null DEFAULT 9,
|
||||
f187 numeric (63,30) zerofill not null DEFAULT 9,
|
||||
f188 numeric (0,0) unsigned zerofill not null DEFAULT 9,
|
||||
f189 numeric (63,30) unsigned zerofill not null DEFAULT 9,
|
||||
f190 real not null DEFAULT 88.8,
|
||||
f191 real unsigned not null DEFAULT 88.8,
|
||||
f192 real zerofill not null DEFAULT 88.8,
|
||||
f193 real unsigned zerofill not null DEFAULT 88.8,
|
||||
f194 double not null DEFAULT 55.5,
|
||||
f195 double unsigned not null DEFAULT 55.5,
|
||||
f196 double zerofill not null DEFAULT 55.5,
|
||||
f197 double unsigned zerofill not null DEFAULT 55.5,
|
||||
f198 float,
|
||||
f199 float unsigned,
|
||||
f200 float zerofill,
|
||||
f201 float unsigned zerofill,
|
||||
f202 float(0),
|
||||
f203 float(23),
|
||||
f204 float(0) unsigned,
|
||||
f205 float(23) unsigned,
|
||||
f206 float(0) zerofill,
|
||||
f207 float(23) zerofill,
|
||||
f208 float(0) unsigned zerofill,
|
||||
f209 float(23) unsigned zerofill,
|
||||
f210 float(24),
|
||||
f211 float(53),
|
||||
f212 float(24) unsigned,
|
||||
f213 float(53) unsigned,
|
||||
f214 float(24) zerofill,
|
||||
f215 float(53) zerofill,
|
||||
f216 float(24) unsigned zerofill,
|
||||
f217 float(53) unsigned zerofill,
|
||||
f218 date,
|
||||
f219 time,
|
||||
f220 datetime,
|
||||
f221 timestamp,
|
||||
f222 year,
|
||||
f223 year(3),
|
||||
f224 year(4),
|
||||
f225 enum("1enum","2enum"),
|
||||
f226 set("1set","2set"),
|
||||
f235 char(0) unicode,
|
||||
f236 char(90),
|
||||
f237 char(255) ascii,
|
||||
f238 varchar(0),
|
||||
f239 varchar(3000) binary,
|
||||
f240 varchar(2000) unicode,
|
||||
f241 char(100) unicode
|
||||
) engine = ndb;
|
||||
|
||||
--replace_result $MYSQLTEST_VARDIR <MYSQLTEST_VARDIR>
|
||||
eval
|
||||
load data infile '$MYSQLTEST_VARDIR/std_data/funcs_1/ndb_tb4.txt'
|
||||
into table tb4 ;
|
||||
@@ -0,0 +1,14 @@
|
||||
#### suite/funcs_1/include/show_connection.inc
|
||||
#
|
||||
# This file shows the current connection information into the result file
|
||||
# By using the '... AS "" ' an empty line will separate this in the result.
|
||||
#
|
||||
# Usage:
|
||||
# Add the following to any *.test file:
|
||||
# :
|
||||
# --source suite/funcs_1/include/show_connection.inc
|
||||
# :
|
||||
|
||||
--disable_query_log
|
||||
SELECT USER() AS "", DATABASE() AS "";
|
||||
--enable_query_log
|
||||
89
build/lib/mysql/mysql-test/suite/funcs_1/include/sp_tb.inc
Normal file
89
build/lib/mysql/mysql-test/suite/funcs_1/include/sp_tb.inc
Normal file
@@ -0,0 +1,89 @@
|
||||
--disable_abort_on_error
|
||||
|
||||
USE test;
|
||||
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS t1, t2, t4, t10, t11;
|
||||
--enable_warnings
|
||||
eval
|
||||
CREATE TABLE t1 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int)
|
||||
ENGINE = $engine_type;
|
||||
eval
|
||||
CREATE TABLE t2 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int)
|
||||
ENGINE = $engine_type;
|
||||
eval
|
||||
CREATE TABLE t4 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int)
|
||||
ENGINE = $engine_type;
|
||||
eval
|
||||
CREATE TABLE t10 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int)
|
||||
ENGINE = $engine_type;
|
||||
eval
|
||||
CREATE TABLE t11 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int)
|
||||
ENGINE = $engine_type;
|
||||
--replace_result $MYSQLTEST_VARDIR <MYSQLTEST_VARDIR>
|
||||
eval
|
||||
LOAD DATA INFILE '$MYSQLTEST_VARDIR/std_data/funcs_1/t4.txt' INTO TABLE t1;
|
||||
--replace_result $MYSQLTEST_VARDIR <MYSQLTEST_VARDIR>
|
||||
eval
|
||||
LOAD DATA INFILE '$MYSQLTEST_VARDIR/std_data/funcs_1/t4.txt' INTO TABLE t2;
|
||||
--replace_result $MYSQLTEST_VARDIR <MYSQLTEST_VARDIR>
|
||||
eval
|
||||
LOAD DATA INFILE '$MYSQLTEST_VARDIR/std_data/funcs_1/t4.txt' INTO TABLE t4;
|
||||
--replace_result $MYSQLTEST_VARDIR <MYSQLTEST_VARDIR>
|
||||
eval
|
||||
LOAD DATA INFILE '$MYSQLTEST_VARDIR/std_data/funcs_1/t4.txt' INTO TABLE t10;
|
||||
--replace_result $MYSQLTEST_VARDIR <MYSQLTEST_VARDIR>
|
||||
eval
|
||||
LOAD DATA INFILE '$MYSQLTEST_VARDIR/std_data/funcs_1/t4.txt' INTO TABLE t11;
|
||||
|
||||
|
||||
--disable_warnings
|
||||
drop TABLE if exists t3;
|
||||
--enable_warnings
|
||||
eval
|
||||
CREATE TABLE t3 (f1 char(20), f2 char(20), f3 integer) ENGINE = $engine_type;
|
||||
--replace_result $MYSQLTEST_VARDIR <MYSQLTEST_VARDIR>
|
||||
eval
|
||||
LOAD DATA INFILE '$MYSQLTEST_VARDIR/std_data/funcs_1/t3.txt' INTO TABLE t3;
|
||||
|
||||
#---------------------------
|
||||
|
||||
--disable_warnings
|
||||
drop database if exists test4;
|
||||
--enable_warnings
|
||||
CREATE database test4;
|
||||
use test4;
|
||||
|
||||
eval
|
||||
CREATE TABLE t6 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int)
|
||||
ENGINE = $engine_type;
|
||||
--replace_result $MYSQLTEST_VARDIR <MYSQLTEST_VARDIR>
|
||||
eval
|
||||
LOAD DATA INFILE '$MYSQLTEST_VARDIR/std_data/funcs_1/t4.txt' INTO TABLE t6;
|
||||
#---------------------------
|
||||
|
||||
use test;
|
||||
|
||||
--disable_warnings
|
||||
drop TABLE if exists t7, t8;
|
||||
--enable_warnings
|
||||
eval
|
||||
CREATE TABLE t7 (f1 char(20),f2 char(25),f3 date,f4 int) ENGINE = $engine_type;
|
||||
eval
|
||||
CREATE TABLE t8 (f1 char(20),f2 char(25),f3 date,f4 int) ENGINE = $engine_type;
|
||||
--replace_result $MYSQLTEST_VARDIR <MYSQLTEST_VARDIR>
|
||||
eval
|
||||
LOAD DATA INFILE '$MYSQLTEST_VARDIR/std_data/funcs_1/t7.txt' INTO TABLE t7;
|
||||
--replace_result $MYSQLTEST_VARDIR <MYSQLTEST_VARDIR>
|
||||
eval
|
||||
LOAD DATA INFILE '$MYSQLTEST_VARDIR/std_data/funcs_1/t7.txt' INTO TABLE t8;
|
||||
|
||||
|
||||
--disable_warnings
|
||||
drop TABLE if exists t9;
|
||||
--enable_warnings
|
||||
eval CREATE TABLE t9 (f1 int, f2 char(25), f3 int) ENGINE = $engine_type;
|
||||
--replace_result $MYSQLTEST_VARDIR <MYSQLTEST_VARDIR>
|
||||
eval
|
||||
LOAD DATA INFILE '$MYSQLTEST_VARDIR/std_data/funcs_1/t9.txt' INTO TABLE t9;
|
||||
|
||||
66
build/lib/mysql/mysql-test/suite/funcs_1/include/tb3.inc
Normal file
66
build/lib/mysql/mysql-test/suite/funcs_1/include/tb3.inc
Normal file
@@ -0,0 +1,66 @@
|
||||
##### suite/funcs_1/include/tb3.inc
|
||||
#
|
||||
# This auxiliary script is used in several Trigger tests.
|
||||
#
|
||||
# If the table need data than the file std_data/funcs_1/memory_tb3.txt
|
||||
# could be used.
|
||||
#
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists tb3;
|
||||
--enable_warnings
|
||||
--replace_result $engine_type <engine_to_be_used>
|
||||
eval create table tb3 (
|
||||
f118 char not null DEFAULT 'a',
|
||||
f119 char binary not null DEFAULT b'101',
|
||||
f120 char ascii not null DEFAULT b'101',
|
||||
f121 char(50),
|
||||
f122 char(50),
|
||||
f129 binary not null DEFAULT b'101',
|
||||
f130 tinyint not null DEFAULT 99,
|
||||
f131 tinyint unsigned not null DEFAULT 99,
|
||||
f132 tinyint zerofill not null DEFAULT 99,
|
||||
f133 tinyint unsigned zerofill not null DEFAULT 99,
|
||||
f134 smallint not null DEFAULT 999,
|
||||
f135 smallint unsigned not null DEFAULT 999,
|
||||
f136 smallint zerofill not null DEFAULT 999,
|
||||
f137 smallint unsigned zerofill not null DEFAULT 999,
|
||||
f138 mediumint not null DEFAULT 9999,
|
||||
f139 mediumint unsigned not null DEFAULT 9999,
|
||||
f140 mediumint zerofill not null DEFAULT 9999,
|
||||
f141 mediumint unsigned zerofill not null DEFAULT 9999,
|
||||
f142 int not null DEFAULT 99999,
|
||||
f143 int unsigned not null DEFAULT 99999,
|
||||
f144 int zerofill not null DEFAULT 99999,
|
||||
f145 int unsigned zerofill not null DEFAULT 99999,
|
||||
f146 bigint not null DEFAULT 999999,
|
||||
f147 bigint unsigned not null DEFAULT 999999,
|
||||
f148 bigint zerofill not null DEFAULT 999999,
|
||||
f149 bigint unsigned zerofill not null DEFAULT 999999,
|
||||
f150 decimal not null DEFAULT 999.999,
|
||||
f151 decimal unsigned not null DEFAULT 999.17,
|
||||
f152 decimal zerofill not null DEFAULT 999.999,
|
||||
f153 decimal unsigned zerofill,
|
||||
f154 decimal (0),
|
||||
f155 decimal (64),
|
||||
f156 decimal (0) unsigned,
|
||||
f157 decimal (64) unsigned,
|
||||
f158 decimal (0) zerofill,
|
||||
f159 decimal (64) zerofill,
|
||||
f160 decimal (0) unsigned zerofill,
|
||||
f161 decimal (64) unsigned zerofill,
|
||||
f162 decimal (0,0),
|
||||
f163 decimal (63,30),
|
||||
f164 decimal (0,0) unsigned,
|
||||
f165 decimal (63,30) unsigned,
|
||||
f166 decimal (0,0) zerofill,
|
||||
f167 decimal (63,30) zerofill,
|
||||
f168 decimal (0,0) unsigned zerofill,
|
||||
f169 decimal (63,30) unsigned zerofill,
|
||||
f170 numeric,
|
||||
f171 numeric unsigned,
|
||||
f172 numeric zerofill,
|
||||
f173 numeric unsigned zerofill,
|
||||
f174 numeric (0),
|
||||
f175 numeric (64)
|
||||
) engine = $engine_type;
|
||||
1247
build/lib/mysql/mysql-test/suite/funcs_1/lib/DataGen_local.pl
Normal file
1247
build/lib/mysql/mysql-test/suite/funcs_1/lib/DataGen_local.pl
Normal file
File diff suppressed because it is too large
Load Diff
3960
build/lib/mysql/mysql-test/suite/funcs_1/lib/DataGen_modify.pl
Normal file
3960
build/lib/mysql/mysql-test/suite/funcs_1/lib/DataGen_modify.pl
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,40 @@
|
||||
DROP USER dbdict_test@localhost;
|
||||
CREATE USER dbdict_test@localhost;
|
||||
# Establish connection con (user=dbdict_test)
|
||||
|
||||
SELECT *
|
||||
FROM information_schema.character_sets
|
||||
WHERE character_set_name IN ('utf8','latin1','binary')
|
||||
ORDER BY character_set_name;
|
||||
CHARACTER_SET_NAME DEFAULT_COLLATE_NAME DESCRIPTION MAXLEN
|
||||
binary binary Binary pseudo charset 1
|
||||
latin1 latin1_swedish_ci cp1252 West European 1
|
||||
utf8 utf8_general_ci UTF-8 Unicode 3
|
||||
|
||||
SELECT *
|
||||
FROM information_schema.collations
|
||||
WHERE character_set_name IN ('utf8','latin1','binary')
|
||||
AND (collation_name LIKE CONCAT(character_set_name,'_general_ci')
|
||||
OR
|
||||
collation_name LIKE CONCAT(character_set_name,'_bin'))
|
||||
ORDER BY collation_name;
|
||||
COLLATION_NAME CHARACTER_SET_NAME ID IS_DEFAULT IS_COMPILED SORTLEN
|
||||
latin1_bin latin1 47 Yes 1
|
||||
latin1_general_ci latin1 48 Yes 1
|
||||
utf8_bin utf8 83 Yes 1
|
||||
utf8_general_ci utf8 33 Yes Yes 1
|
||||
|
||||
SELECT *
|
||||
FROM information_schema.collation_character_set_applicability
|
||||
WHERE character_set_name IN ('utf8','latin1','binary')
|
||||
AND (collation_name LIKE CONCAT(character_set_name,'_general_ci')
|
||||
OR
|
||||
collation_name LIKE CONCAT(character_set_name,'_bin'))
|
||||
ORDER BY collation_name, character_set_name;
|
||||
COLLATION_NAME CHARACTER_SET_NAME
|
||||
latin1_bin latin1
|
||||
latin1_general_ci latin1
|
||||
utf8_bin utf8
|
||||
utf8_general_ci utf8
|
||||
# Switch to connection default + disconnect con
|
||||
DROP USER dbdict_test@localhost;
|
||||
@@ -0,0 +1,3 @@
|
||||
|
||||
NOT YET IMPLEMENTED: bitdata tests
|
||||
--------------------------------------------------------------------------------
|
||||
@@ -0,0 +1,3 @@
|
||||
|
||||
NOT YET IMPLEMENTED: cursor tests
|
||||
--------------------------------------------------------------------------------
|
||||
5270
build/lib/mysql/mysql-test/suite/funcs_1/r/innodb_func_view.result
Normal file
5270
build/lib/mysql/mysql-test/suite/funcs_1/r/innodb_func_view.result
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,496 @@
|
||||
|
||||
--source suite/funcs_1/storedproc/load_sp_tb.inc
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
|
||||
--------------------------------------------------------------------------------
|
||||
DROP DATABASE IF EXISTS db_storedproc;
|
||||
DROP DATABASE IF EXISTS db_storedproc_1;
|
||||
CREATE DATABASE db_storedproc;
|
||||
CREATE DATABASE db_storedproc_1;
|
||||
USE db_storedproc;
|
||||
create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int)
|
||||
engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t4.txt' into table t1;
|
||||
create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int)
|
||||
engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t4.txt' into table t2;
|
||||
create table t3(f1 char(20),f2 char(20),f3 integer) engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t3.txt' into table t3;
|
||||
create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int)
|
||||
engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t4.txt' into table t4;
|
||||
USE db_storedproc_1;
|
||||
create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int)
|
||||
engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t4.txt' into table t6;
|
||||
USE db_storedproc;
|
||||
create table t7 (f1 char(20), f2 char(25), f3 date, f4 int)
|
||||
engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t7.txt' into table t7;
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'f3' at row 1
|
||||
Warning 1265 Data truncated for column 'f3' at row 2
|
||||
Warning 1265 Data truncated for column 'f3' at row 3
|
||||
Warning 1265 Data truncated for column 'f3' at row 4
|
||||
Warning 1265 Data truncated for column 'f3' at row 5
|
||||
Warning 1265 Data truncated for column 'f3' at row 6
|
||||
Warning 1265 Data truncated for column 'f3' at row 7
|
||||
Warning 1265 Data truncated for column 'f3' at row 8
|
||||
Warning 1265 Data truncated for column 'f3' at row 9
|
||||
Warning 1265 Data truncated for column 'f3' at row 10
|
||||
create table t8 (f1 char(20), f2 char(25), f3 date, f4 int)
|
||||
engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t7.txt' into table t8;
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'f3' at row 1
|
||||
Warning 1265 Data truncated for column 'f3' at row 2
|
||||
Warning 1265 Data truncated for column 'f3' at row 3
|
||||
Warning 1265 Data truncated for column 'f3' at row 4
|
||||
Warning 1265 Data truncated for column 'f3' at row 5
|
||||
Warning 1265 Data truncated for column 'f3' at row 6
|
||||
Warning 1265 Data truncated for column 'f3' at row 7
|
||||
Warning 1265 Data truncated for column 'f3' at row 8
|
||||
Warning 1265 Data truncated for column 'f3' at row 9
|
||||
Warning 1265 Data truncated for column 'f3' at row 10
|
||||
create table t9(f1 int, f2 char(25), f3 int) engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t9.txt' into table t9;
|
||||
create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int)
|
||||
engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t4.txt' into table t10;
|
||||
create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int)
|
||||
engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t4.txt' into table t11;
|
||||
|
||||
Section 3.1.3 - Syntax checks for the stored procedure-specific flow
|
||||
control statements IF, CASE, LOOP, LEAVE, ITERATE, REPEAT, WHILE:
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Testcase 3.1.3.7:
|
||||
-----------------
|
||||
|
||||
Ensure that the IF statement acts correctly for all variants, including cases
|
||||
where statements are nested.
|
||||
--------------------------------------------------------------------------------
|
||||
DROP TABLE IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;
|
||||
DROP PROCEDURE IF EXISTS sp9;
|
||||
CREATE TABLE res_t3_itisalongname_1381742_itsaverylongname_1381742( f1 CHAR(20), f2 VARCHAR(20), f3 SMALLINT);
|
||||
CREATE PROCEDURE sp9( action char(20), subaction char(20) )
|
||||
BEGIN
|
||||
if action = 'action' then
|
||||
if subaction = 'subaction' then
|
||||
insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'action', 'subaction' , 1);
|
||||
else
|
||||
insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'action', 'none' , 2);
|
||||
END if;
|
||||
else
|
||||
if subaction = 'subaction'
|
||||
then
|
||||
insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'none', 'subaction' , 3);
|
||||
elseif subaction = 'subaction1'
|
||||
then
|
||||
BEGIN
|
||||
insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values ('none', 'subaction1', 4);
|
||||
END;
|
||||
else
|
||||
insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'none', 'none' , 5);
|
||||
END if;
|
||||
END if;
|
||||
END//
|
||||
CALL sp9( 'action', 'subaction' );
|
||||
SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742 where f3=1;
|
||||
f1 f2 f3
|
||||
action subaction 1
|
||||
CALL sp9( 'temp', 'subaction' );
|
||||
SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742 where f3=3;
|
||||
f1 f2 f3
|
||||
none subaction 3
|
||||
CALL sp9( 'temp', 'subaction1' );
|
||||
SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742 where f3=4;
|
||||
f1 f2 f3
|
||||
none subaction1 4
|
||||
CALL sp9( 'action', 'temp' );
|
||||
SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742 where f3=2;
|
||||
f1 f2 f3
|
||||
action none 2
|
||||
CALL sp9( 'temp', 'temp' );
|
||||
SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742 where f3=5;
|
||||
f1 f2 f3
|
||||
none none 5
|
||||
DROP PROCEDURE sp9;
|
||||
DROP TABLE res_t3_itisalongname_1381742_itsaverylongname_1381742;
|
||||
|
||||
Testcase 3.1.3.8.:
|
||||
------------------
|
||||
|
||||
Ensure that the CASE statement acts correctly for all variants, including cases
|
||||
where statements are nested.
|
||||
--------------------------------------------------------------------------------
|
||||
drop table IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;
|
||||
DROP PROCEDURE IF EXISTS sp10;
|
||||
create table res_t3_itisalongname_1381742_itsaverylongname_1381742( f1 char(20), f2 varchar(20), f3 smallint);
|
||||
CREATE PROCEDURE sp10( action char(20), subaction char(20) )
|
||||
BEGIN
|
||||
case action
|
||||
when 'action' then
|
||||
case
|
||||
when subaction = 'subaction_1' then
|
||||
insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'action', 'subaction_2' , 1);
|
||||
when subaction = 'subaction_2' then
|
||||
insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'action', 'subaction_2' , 2);
|
||||
else
|
||||
insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'action', 'none' , 3);
|
||||
END case;
|
||||
else
|
||||
case
|
||||
when subaction = 'subaction_1' then
|
||||
insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'none', 'subaction_1' , 4);
|
||||
when subaction = 'subaction_2' then
|
||||
insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'none', 'subaction_2' , 5);
|
||||
else
|
||||
insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'none', 'none' , 6);
|
||||
END case;
|
||||
END case;
|
||||
END//
|
||||
CALL sp10( 'action', 'subaction_1' );
|
||||
SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
|
||||
f1 f2 f3
|
||||
action subaction_2 1
|
||||
delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
|
||||
CALL sp10( 'action', 'subaction_2' );
|
||||
SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
|
||||
f1 f2 f3
|
||||
action subaction_2 2
|
||||
delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
|
||||
CALL sp10( 'temp', 'subaction_1' );
|
||||
SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
|
||||
f1 f2 f3
|
||||
none subaction_1 4
|
||||
delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
|
||||
CALL sp10( 'temp', 'subaction_2' );
|
||||
SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
|
||||
f1 f2 f3
|
||||
none subaction_2 5
|
||||
delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
|
||||
CALL sp10( 'action', 'temp' );
|
||||
SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
|
||||
f1 f2 f3
|
||||
action none 3
|
||||
delete from res_t3_itisalongname_1381742_itsaverylongname_1381742;
|
||||
CALL sp10( 'temp', 'temp' );
|
||||
SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
|
||||
f1 f2 f3
|
||||
none none 6
|
||||
DROP PROCEDURE sp10;
|
||||
DROP TABLE res_t3_itisalongname_1381742_itsaverylongname_1381742;
|
||||
|
||||
Testcase 3.1.3.9 + 3.1.3.15:
|
||||
----------------------------
|
||||
|
||||
09. Ensure that the LOOP statement acts correctly for all variants, including
|
||||
. cases where statements are nested.
|
||||
15. Ensure that the LEAVE statement acts correctly for all variants, including
|
||||
. cases where statements are nested.
|
||||
--------------------------------------------------------------------------------
|
||||
DROP TABLE IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;
|
||||
DROP PROCEDURE IF EXISTS sp11;
|
||||
CREATE TABLE res_t3_itisalongname_1381742_itsaverylongname_1381742( f1 CHAR(20), f2 VARCHAR(20), f3 SMALLINT);
|
||||
CREATE PROCEDURE sp11( )
|
||||
BEGIN
|
||||
declare count1 integer default 1;
|
||||
declare count2 integer default 1;
|
||||
label1: loop
|
||||
if count2 > 3 then leave label1;
|
||||
END if;
|
||||
set count1 = 1;
|
||||
label2: loop
|
||||
if count1 > 4 then leave label2;
|
||||
END if;
|
||||
insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
|
||||
set count1 = count1 + 1;
|
||||
iterate label2;
|
||||
END loop label2;
|
||||
set count2 = count2 + 1;
|
||||
iterate label1;
|
||||
END loop label1;
|
||||
END//
|
||||
CALL sp11();
|
||||
SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
|
||||
f1 f2 f3
|
||||
xyz pqr 1
|
||||
xyz pqr 2
|
||||
xyz pqr 3
|
||||
xyz pqr 4
|
||||
xyz pqr 1
|
||||
xyz pqr 2
|
||||
xyz pqr 3
|
||||
xyz pqr 4
|
||||
xyz pqr 1
|
||||
xyz pqr 2
|
||||
xyz pqr 3
|
||||
xyz pqr 4
|
||||
DROP PROCEDURE sp11;
|
||||
DROP TABLE res_t3_itisalongname_1381742_itsaverylongname_1381742;
|
||||
|
||||
Testcase 3.1.3.16:
|
||||
------------------
|
||||
|
||||
Ensure that the ITERATE statement acts correctly for all variants, including
|
||||
cases where statements are nested.
|
||||
(tests for this testcase are also included in other testcases)
|
||||
--------------------------------------------------------------------------------
|
||||
DROP PROCEDURE IF EXISTS sp31316;
|
||||
CREATE PROCEDURE sp31316( )
|
||||
BEGIN
|
||||
declare count1 integer default 1;
|
||||
declare count2 integer default 1;
|
||||
label1: loop
|
||||
if count2 > 3 then leave label1;
|
||||
END if;
|
||||
set count1 = 1;
|
||||
label2: loop
|
||||
if count1 > 4 then leave label2;
|
||||
END if;
|
||||
insert into temp values( count1, count2);
|
||||
set count1 = count1 + 1;
|
||||
iterate label3;
|
||||
END loop label2;
|
||||
set count2 = count2 + 1;
|
||||
iterate label1;
|
||||
END loop label1;
|
||||
END//
|
||||
ERROR 42000: ITERATE with no matching label: label3
|
||||
|
||||
Testcase 3.1.3.18:
|
||||
------------------
|
||||
|
||||
Ensure that the REPEAT statement acts correctly for all variants, including
|
||||
cases where statements are nested.
|
||||
--------------------------------------------------------------------------------
|
||||
DROP PROCEDURE IF EXISTS sp17;
|
||||
DROP TABLE IF EXISTS res_t3_itisalongname_1381742_itsaverylongname_1381742;
|
||||
CREATE TABLE res_t3_itisalongname_1381742_itsaverylongname_1381742( f1 CHAR(20), f2 VARCHAR(20), f3 SMALLINT);
|
||||
CREATE PROCEDURE sp17( )
|
||||
BEGIN
|
||||
declare count1 integer default 1;
|
||||
declare count2 integer default 1;
|
||||
repeat
|
||||
set count1 = count1 + 1;
|
||||
set count2 = 1;
|
||||
label1: repeat
|
||||
set count2 = count2 + 1;
|
||||
insert into res_t3_itisalongname_1381742_itsaverylongname_1381742 values( 'xyz' , 'pqr', count1);
|
||||
until count2 > 3
|
||||
END repeat label1;
|
||||
until count1 > 3
|
||||
END repeat;
|
||||
END//
|
||||
CALL sp17();
|
||||
SELECT * from res_t3_itisalongname_1381742_itsaverylongname_1381742;
|
||||
f1 f2 f3
|
||||
xyz pqr 2
|
||||
xyz pqr 2
|
||||
xyz pqr 2
|
||||
xyz pqr 3
|
||||
xyz pqr 3
|
||||
xyz pqr 3
|
||||
xyz pqr 4
|
||||
xyz pqr 4
|
||||
xyz pqr 4
|
||||
DROP PROCEDURE sp17;
|
||||
DROP TABLE res_t3_itisalongname_1381742_itsaverylongname_1381742;
|
||||
|
||||
Testcase 3.1.3.24:
|
||||
------------------
|
||||
|
||||
Ensure that the WHILE statement acts correctly for all variants, including cases
|
||||
where statements are nested.
|
||||
--------------------------------------------------------------------------------
|
||||
drop table IF EXISTS res_t21;
|
||||
DROP PROCEDURE IF EXISTS sp21;
|
||||
create table res_t21(name text(10), surname blob(20), age_averylongfieldname_averylongname_1234569 smallint);
|
||||
insert into res_t21 values('ashwin', 'mokadam', 25);
|
||||
CREATE PROCEDURE sp21( )
|
||||
BEGIN
|
||||
declare count1 integer default 0;
|
||||
declare count2 integer default 0;
|
||||
while count1 < 3 do
|
||||
BEGIN
|
||||
declare ithisissamevariablename int default 100;
|
||||
SELECT ithisissamevariablename;
|
||||
BEGIN
|
||||
declare ithisissamevariablename int default 200;
|
||||
SELECT ithisissamevariablename;
|
||||
END;
|
||||
set count2 = 0;
|
||||
label1: while count2 < 3 do
|
||||
BEGIN
|
||||
declare count1 integer default 7;
|
||||
set count2 = count2 + 1;
|
||||
insert into res_t21 values( 'xyz' , 'pqr', count2);
|
||||
label2: while count1 < 10 do
|
||||
set count1 = count1 + 1;
|
||||
insert into res_t21 values( 'xyz' , 'pqr', count1);
|
||||
END while label2;
|
||||
END;
|
||||
END while label1;
|
||||
set count1 = count1 + 1;
|
||||
END;
|
||||
END while;
|
||||
END//
|
||||
CALL sp21();
|
||||
ithisissamevariablename
|
||||
100
|
||||
ithisissamevariablename
|
||||
200
|
||||
ithisissamevariablename
|
||||
100
|
||||
ithisissamevariablename
|
||||
200
|
||||
ithisissamevariablename
|
||||
100
|
||||
ithisissamevariablename
|
||||
200
|
||||
SELECT * from res_t21;
|
||||
name surname age_averylongfieldname_averylongname_1234569
|
||||
ashwin mokadam 25
|
||||
xyz pqr 1
|
||||
xyz pqr 8
|
||||
xyz pqr 9
|
||||
xyz pqr 10
|
||||
xyz pqr 2
|
||||
xyz pqr 8
|
||||
xyz pqr 9
|
||||
xyz pqr 10
|
||||
xyz pqr 3
|
||||
xyz pqr 8
|
||||
xyz pqr 9
|
||||
xyz pqr 10
|
||||
xyz pqr 1
|
||||
xyz pqr 8
|
||||
xyz pqr 9
|
||||
xyz pqr 10
|
||||
xyz pqr 2
|
||||
xyz pqr 8
|
||||
xyz pqr 9
|
||||
xyz pqr 10
|
||||
xyz pqr 3
|
||||
xyz pqr 8
|
||||
xyz pqr 9
|
||||
xyz pqr 10
|
||||
xyz pqr 1
|
||||
xyz pqr 8
|
||||
xyz pqr 9
|
||||
xyz pqr 10
|
||||
xyz pqr 2
|
||||
xyz pqr 8
|
||||
xyz pqr 9
|
||||
xyz pqr 10
|
||||
xyz pqr 3
|
||||
xyz pqr 8
|
||||
xyz pqr 9
|
||||
xyz pqr 10
|
||||
DROP PROCEDURE sp21;
|
||||
drop table res_t21;
|
||||
|
||||
Testcase 3.1.3.30:
|
||||
------------------
|
||||
|
||||
Ensure that multiple cases of all possible combinations of the control flow
|
||||
statements, nested within multiple compound statements within a stored
|
||||
procedure, always act correctly and return the expected result.
|
||||
--------------------------------------------------------------------------------
|
||||
DROP TABLE IF EXISTS res_tbl;
|
||||
DROP PROCEDURE IF EXISTS sp31330;
|
||||
create table res_tbl (f1 int, f2 text, f3 blob, f4 date,
|
||||
f5 set('one', 'two', 'three', 'four', 'five') default 'one');
|
||||
CREATE PROCEDURE sp31330 (path int)
|
||||
BEGIN
|
||||
declare count int default 1;
|
||||
declare var1 text;
|
||||
declare var2 blob;
|
||||
declare var3 date;
|
||||
declare var4 set('one', 'two', 'three', 'four', 'five') DEFAULT 'five';
|
||||
case
|
||||
when path=1 then
|
||||
set var3 = '2000-11-09';
|
||||
set var1 = 'flowing through case 1';
|
||||
label1: loop
|
||||
if count > 5 then
|
||||
if var4=1000 then
|
||||
set var2 = 'exiting out of case 1 - invalid SET';
|
||||
END if;
|
||||
if var4='two' then
|
||||
set var2 = 'exiting out of case 1';
|
||||
END if;
|
||||
insert into res_tbl values (1, var1, var2, var3, (count-2));
|
||||
leave label1;
|
||||
elseif count = 5 then
|
||||
set count= count + 2;
|
||||
set var4='two';
|
||||
iterate label1;
|
||||
else
|
||||
set count= count + 1;
|
||||
END if;
|
||||
set var4='one';
|
||||
END loop label1;
|
||||
when path=2 then
|
||||
set var3 = '1989-11-09';
|
||||
set var1 = 'flowing through case 2';
|
||||
set @count3=0;
|
||||
label2: repeat
|
||||
set count=count + 1;
|
||||
set @count2=1;
|
||||
while @count2 <= 5 do
|
||||
set @count2 = @count2 + 1;
|
||||
END while;
|
||||
SELECT @count2;
|
||||
set @count3=@count3 + @count2;
|
||||
until count > 5
|
||||
END repeat label2;
|
||||
set var2 = 'exiting out of case 2';
|
||||
set var4 = count-3;
|
||||
SELECT @count3;
|
||||
insert into res_tbl values (2, var1, var2, var3, var4);
|
||||
ELSE BEGIN
|
||||
set @error_opt='undefined path specified';
|
||||
SELECT @error_opt;
|
||||
END;
|
||||
END case;
|
||||
END//
|
||||
CALL sp31330();
|
||||
ERROR 42000: Incorrect number of arguments for PROCEDURE db_storedproc.sp31330; expected 1, got 0
|
||||
CALL sp31330(1);
|
||||
SELECT * from res_tbl;
|
||||
f1 f2 f3 f4 f5
|
||||
1 flowing through case 1 exiting out of case 1 2000-11-09 one,three
|
||||
CALL sp31330(2);
|
||||
@count2
|
||||
6
|
||||
@count2
|
||||
6
|
||||
@count2
|
||||
6
|
||||
@count2
|
||||
6
|
||||
@count2
|
||||
6
|
||||
@count3
|
||||
30
|
||||
SELECT * from res_tbl;
|
||||
f1 f2 f3 f4 f5
|
||||
1 flowing through case 1 exiting out of case 1 2000-11-09 one,three
|
||||
2 flowing through case 2 exiting out of case 2 1989-11-09 one,two
|
||||
CALL sp31330(4);
|
||||
@error_opt
|
||||
undefined path specified
|
||||
DROP PROCEDURE sp31330;
|
||||
drop table res_tbl;
|
||||
|
||||
--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
|
||||
--------------------------------------------------------------------------------
|
||||
DROP DATABASE IF EXISTS db_storedproc;
|
||||
DROP DATABASE IF EXISTS db_storedproc_1;
|
||||
|
||||
. +++ END OF SCRIPT +++
|
||||
--------------------------------------------------------------------------------
|
||||
@@ -0,0 +1,393 @@
|
||||
|
||||
--source suite/funcs_1/storedproc/load_sp_tb.inc
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
|
||||
--------------------------------------------------------------------------------
|
||||
DROP DATABASE IF EXISTS db_storedproc;
|
||||
DROP DATABASE IF EXISTS db_storedproc_1;
|
||||
CREATE DATABASE db_storedproc;
|
||||
CREATE DATABASE db_storedproc_1;
|
||||
USE db_storedproc;
|
||||
create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int)
|
||||
engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t4.txt' into table t1;
|
||||
create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int)
|
||||
engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t4.txt' into table t2;
|
||||
create table t3(f1 char(20),f2 char(20),f3 integer) engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t3.txt' into table t3;
|
||||
create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int)
|
||||
engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t4.txt' into table t4;
|
||||
USE db_storedproc_1;
|
||||
create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int)
|
||||
engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t4.txt' into table t6;
|
||||
USE db_storedproc;
|
||||
create table t7 (f1 char(20), f2 char(25), f3 date, f4 int)
|
||||
engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t7.txt' into table t7;
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'f3' at row 1
|
||||
Warning 1265 Data truncated for column 'f3' at row 2
|
||||
Warning 1265 Data truncated for column 'f3' at row 3
|
||||
Warning 1265 Data truncated for column 'f3' at row 4
|
||||
Warning 1265 Data truncated for column 'f3' at row 5
|
||||
Warning 1265 Data truncated for column 'f3' at row 6
|
||||
Warning 1265 Data truncated for column 'f3' at row 7
|
||||
Warning 1265 Data truncated for column 'f3' at row 8
|
||||
Warning 1265 Data truncated for column 'f3' at row 9
|
||||
Warning 1265 Data truncated for column 'f3' at row 10
|
||||
create table t8 (f1 char(20), f2 char(25), f3 date, f4 int)
|
||||
engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t7.txt' into table t8;
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'f3' at row 1
|
||||
Warning 1265 Data truncated for column 'f3' at row 2
|
||||
Warning 1265 Data truncated for column 'f3' at row 3
|
||||
Warning 1265 Data truncated for column 'f3' at row 4
|
||||
Warning 1265 Data truncated for column 'f3' at row 5
|
||||
Warning 1265 Data truncated for column 'f3' at row 6
|
||||
Warning 1265 Data truncated for column 'f3' at row 7
|
||||
Warning 1265 Data truncated for column 'f3' at row 8
|
||||
Warning 1265 Data truncated for column 'f3' at row 9
|
||||
Warning 1265 Data truncated for column 'f3' at row 10
|
||||
create table t9(f1 int, f2 char(25), f3 int) engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t9.txt' into table t9;
|
||||
create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int)
|
||||
engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t4.txt' into table t10;
|
||||
create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int)
|
||||
engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t4.txt' into table t11;
|
||||
|
||||
Section 3.1.6 - Privilege Checks:
|
||||
--------------------------------------------------------------------------------
|
||||
USE db_storedproc_1;
|
||||
|
||||
root@localhost db_storedproc_1
|
||||
|
||||
Testcase 3.1.6.1:
|
||||
-----------------
|
||||
Ensure that no user may create a stored procedure without the GRANT CREATE
|
||||
ROUTINE privilege.
|
||||
--------------------------------------------------------------------------------
|
||||
create user 'user_1'@'localhost';
|
||||
grant all on db_storedproc_1.* to 'user_1'@'localhost';
|
||||
revoke create routine on db_storedproc_1.* from 'user_1'@'localhost';
|
||||
flush privileges;
|
||||
DROP PROCEDURE IF EXISTS sp1;
|
||||
|
||||
user_1@localhost db_storedproc_1
|
||||
USE db_storedproc_1;
|
||||
CREATE PROCEDURE sp1(v1 char(20))
|
||||
BEGIN
|
||||
SELECT * from db_storedproc_1.t6 where t6.f2= 'xyz';
|
||||
END//
|
||||
ERROR 42000: Access denied for user 'user_1'@'localhost' to database 'db_storedproc_1'
|
||||
USE db_storedproc_1;
|
||||
|
||||
root@localhost db_storedproc_1
|
||||
GRANT CREATE ROUTINE ON db_storedproc_1.* TO 'user_1'@'localhost';
|
||||
|
||||
user_1@localhost db_storedproc_1
|
||||
USE db_storedproc_1;
|
||||
CREATE PROCEDURE sp1(v1 char(20))
|
||||
BEGIN
|
||||
SELECT * from db_storedproc_1.t6 where t6.f2= 'xyz';
|
||||
END//
|
||||
USE db_storedproc_1;
|
||||
|
||||
root@localhost db_storedproc_1
|
||||
DROP USER 'user_1'@'localhost';
|
||||
DROP PROCEDURE sp1;
|
||||
|
||||
Testcase 3.1.6.2:
|
||||
-----------------
|
||||
Ensure that root always has the GRANT CREATE ROUTINE privilege.
|
||||
(checked by other testscases)
|
||||
--------------------------------------------------------------------------------
|
||||
grant create routine on db_storedproc_1.* to 'user_1'@'localhost';
|
||||
flush privileges;
|
||||
|
||||
user_1@localhost db_storedproc_1
|
||||
DROP PROCEDURE IF EXISTS sp3;
|
||||
DROP FUNCTION IF EXISTS fn1;
|
||||
CREATE PROCEDURE sp3(v1 char(20))
|
||||
BEGIN
|
||||
SELECT * from db_storedproc_1.t6 where t6.f2= 'xyz';
|
||||
END//
|
||||
CREATE FUNCTION fn1(v1 int) returns int
|
||||
BEGIN
|
||||
return v1;
|
||||
END//
|
||||
USE db_storedproc_1;
|
||||
|
||||
root@localhost db_storedproc_1
|
||||
drop user 'user_1'@'localhost';
|
||||
DROP PROCEDURE sp3;
|
||||
DROP FUNCTION fn1;
|
||||
|
||||
Testcase 3.1.6.4:
|
||||
-----------------
|
||||
Ensure that the default security provision of a stored procedure is SQL SECURITY
|
||||
DEFINER.
|
||||
--------------------------------------------------------------------------------
|
||||
CREATE USER 'user_1'@'localhost';
|
||||
grant update on db_storedproc_1.t6 to 'user_1'@'localhost';
|
||||
grant execute on db_storedproc_1.* to 'user_1'@'localhost';
|
||||
flush privileges;
|
||||
USE db_storedproc_1;
|
||||
DROP PROCEDURE IF EXISTS sp4;
|
||||
CREATE PROCEDURE sp4(v1 char(20))
|
||||
BEGIN
|
||||
SELECT * from db_storedproc_1.t6 where t6.f2= 'xyz';
|
||||
END//
|
||||
|
||||
user_1@localhost db_storedproc_1
|
||||
USE db_storedproc_1;
|
||||
CALL sp4('a');
|
||||
f1 f2 f3 f4 f5 f6
|
||||
SELECT SPECIFIC_NAME, ROUTINE_SCHEMA, ROUTINE_NAME, ROUTINE_TYPE,
|
||||
ROUTINE_BODY, ROUTINE_DEFINITION, IS_DETERMINISTIC,
|
||||
SQL_DATA_ACCESS, SECURITY_TYPE, SQL_MODE, ROUTINE_COMMENT
|
||||
FROM information_schema.routines
|
||||
WHERE routine_schema LIKE 'db_sto%';
|
||||
SPECIFIC_NAME sp4
|
||||
ROUTINE_SCHEMA db_storedproc_1
|
||||
ROUTINE_NAME sp4
|
||||
ROUTINE_TYPE PROCEDURE
|
||||
ROUTINE_BODY SQL
|
||||
ROUTINE_DEFINITION NULL
|
||||
IS_DETERMINISTIC NO
|
||||
SQL_DATA_ACCESS CONTAINS SQL
|
||||
SECURITY_TYPE DEFINER
|
||||
SQL_MODE
|
||||
ROUTINE_COMMENT
|
||||
|
||||
root@localhost db_storedproc_1
|
||||
DROP PROCEDURE sp4;
|
||||
DROP USER 'user_1'@'localhost';
|
||||
|
||||
Testcase 3.1.6.5:
|
||||
-----------------
|
||||
Ensure that a stored procedure defined with SQL SECURITY DEFINER can be
|
||||
called/executed by any user, using only the privileges (including database
|
||||
access privileges) associated with the user who created the stored procedure.
|
||||
--------------------------------------------------------------------------------
|
||||
USE db_storedproc_1;
|
||||
CREATE TABLE t3165 ( c1 char(20), c2 char(20), c3 date);
|
||||
INSERT INTO t3165 VALUES ('inserted', 'outside of SP', NULL);
|
||||
create user 'user_1'@'localhost';
|
||||
create user 'user_2'@'localhost';
|
||||
grant create routine on db_storedproc_1.* to 'user_1'@'localhost';
|
||||
grant SELECT on db_storedproc_1.* to 'user_2'@'localhost';
|
||||
grant execute on db_storedproc_1.* to 'user_2'@'localhost';
|
||||
flush privileges;
|
||||
|
||||
user_1@localhost db_storedproc_1
|
||||
CREATE PROCEDURE sp5_s_i () sql security definer
|
||||
BEGIN
|
||||
SELECT * from db_storedproc_1.t3165;
|
||||
insert into db_storedproc_1.t3165 values ('inserted', 'from sp5_s_i', 1000);
|
||||
END//
|
||||
CREATE PROCEDURE sp5_sel () sql security definer
|
||||
BEGIN
|
||||
SELECT * from db_storedproc_1.t3165;
|
||||
END//
|
||||
CREATE PROCEDURE sp5_ins () sql security definer
|
||||
BEGIN
|
||||
insert into db_storedproc_1.t3165 values ('inserted', 'from sp5_ins', 1000);
|
||||
END//
|
||||
|
||||
user_2@localhost db_storedproc_1
|
||||
CALL sp5_s_i();
|
||||
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165'
|
||||
CALL sp5_ins();
|
||||
ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table 't3165'
|
||||
CALL sp5_sel();
|
||||
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165'
|
||||
|
||||
root@localhost db_storedproc_1
|
||||
CALL sp5_sel();
|
||||
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165'
|
||||
grant insert on db_storedproc_1.* to 'user_1'@'localhost';
|
||||
flush privileges;
|
||||
|
||||
user_2@localhost db_storedproc_1
|
||||
CALL sp5_s_i();
|
||||
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165'
|
||||
CALL sp5_ins();
|
||||
CALL sp5_sel();
|
||||
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165'
|
||||
|
||||
root@localhost db_storedproc_1
|
||||
CALL sp5_sel();
|
||||
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165'
|
||||
grant SELECT on db_storedproc_1.* to 'user_1'@'localhost';
|
||||
flush privileges;
|
||||
|
||||
user_2@localhost db_storedproc_1
|
||||
CALL sp5_s_i();
|
||||
c1 c2 c3
|
||||
inserted outside of SP NULL
|
||||
inserted from sp5_ins 2000-10-00
|
||||
CALL sp5_ins();
|
||||
CALL sp5_sel();
|
||||
c1 c2 c3
|
||||
inserted outside of SP NULL
|
||||
inserted from sp5_ins 2000-10-00
|
||||
inserted from sp5_s_i 2000-10-00
|
||||
inserted from sp5_ins 2000-10-00
|
||||
|
||||
root@localhost db_storedproc_1
|
||||
REVOKE INSERT on db_storedproc_1.* from 'user_1'@'localhost';
|
||||
flush privileges;
|
||||
|
||||
user_2@localhost db_storedproc_1
|
||||
CALL sp5_s_i();
|
||||
c1 c2 c3
|
||||
inserted outside of SP NULL
|
||||
inserted from sp5_ins 2000-10-00
|
||||
inserted from sp5_s_i 2000-10-00
|
||||
inserted from sp5_ins 2000-10-00
|
||||
ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table 't3165'
|
||||
CALL sp5_ins();
|
||||
ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table 't3165'
|
||||
CALL sp5_sel();
|
||||
c1 c2 c3
|
||||
inserted outside of SP NULL
|
||||
inserted from sp5_ins 2000-10-00
|
||||
inserted from sp5_s_i 2000-10-00
|
||||
inserted from sp5_ins 2000-10-00
|
||||
|
||||
root@localhost db_storedproc_1
|
||||
REVOKE SELECT on db_storedproc_1.* from 'user_1'@'localhost';
|
||||
flush privileges;
|
||||
|
||||
user_2@localhost db_storedproc_1
|
||||
CALL sp5_s_i();
|
||||
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165'
|
||||
CALL sp5_ins();
|
||||
ERROR 42000: INSERT command denied to user 'user_1'@'localhost' for table 't3165'
|
||||
CALL sp5_sel();
|
||||
ERROR 42000: SELECT command denied to user 'user_1'@'localhost' for table 't3165'
|
||||
|
||||
root@localhost db_storedproc_1
|
||||
DROP PROCEDURE sp5_s_i;
|
||||
DROP PROCEDURE sp5_sel;
|
||||
DROP PROCEDURE sp5_ins;
|
||||
DROP TABLE t3165;
|
||||
DROP USER 'user_1'@'localhost';
|
||||
DROP USER 'user_2'@'localhost';
|
||||
|
||||
Testcase 3.1.6.6:
|
||||
-----------------
|
||||
Ensure that a stored procedure defined with SQL SECURITY INVOKER can be
|
||||
called/executed by any user, using only the privileges (including database
|
||||
access privileges) associated with the user executing the stored procedure.
|
||||
--------------------------------------------------------------------------------
|
||||
USE db_storedproc_1;
|
||||
CREATE TABLE t3166 ( c1 char(30) );
|
||||
INSERT INTO db_storedproc_1.t3166 VALUES ('inserted outside SP');
|
||||
create user 'user_1'@'localhost';
|
||||
create user 'user_2'@'localhost';
|
||||
GRANT CREATE ROUTINE ON db_storedproc_1.* TO 'user_1'@'localhost';
|
||||
GRANT SELECT ON db_storedproc_1.* TO 'user_2'@'localhost';
|
||||
GRANT EXECUTE ON db_storedproc_1.* TO 'user_2'@'localhost';
|
||||
FLUSH PRIVILEGES;
|
||||
|
||||
user_1@localhost db_storedproc_1
|
||||
CREATE PROCEDURE sp3166_s_i () SQL SECURITY INVOKER
|
||||
BEGIN
|
||||
SELECT * from db_storedproc_1.t3166;
|
||||
insert into db_storedproc_1.t3166 values ('inserted from sp3166_s_i');
|
||||
END//
|
||||
CREATE PROCEDURE sp3166_sel () SQL SECURITY INVOKER
|
||||
BEGIN
|
||||
SELECT * from db_storedproc_1.t3166;
|
||||
END//
|
||||
CREATE PROCEDURE sp3166_ins () SQL SECURITY INVOKER
|
||||
BEGIN
|
||||
insert into db_storedproc_1.t3166 values ('inserted from sp3166_ins');
|
||||
END//
|
||||
|
||||
user_2@localhost db_storedproc_1
|
||||
CALL sp3166_s_i();
|
||||
c1
|
||||
inserted outside SP
|
||||
ERROR 42000: INSERT command denied to user 'user_2'@'localhost' for table 't3166'
|
||||
CALL sp3166_ins();
|
||||
ERROR 42000: INSERT command denied to user 'user_2'@'localhost' for table 't3166'
|
||||
CALL sp3166_sel();
|
||||
c1
|
||||
inserted outside SP
|
||||
|
||||
root@localhost db_storedproc_1
|
||||
CALL sp3166_sel();
|
||||
c1
|
||||
inserted outside SP
|
||||
GRANT INSERT ON db_storedproc_1.* TO 'user_2'@'localhost';
|
||||
FLUSH PRIVILEGES;
|
||||
|
||||
user_2@localhost db_storedproc_1
|
||||
CALL sp3166_s_i();
|
||||
c1
|
||||
inserted outside SP
|
||||
CALL sp3166_ins();
|
||||
CALL sp3166_sel();
|
||||
c1
|
||||
inserted outside SP
|
||||
inserted from sp3166_s_i
|
||||
inserted from sp3166_ins
|
||||
|
||||
root@localhost db_storedproc_1
|
||||
CALL sp3166_sel();
|
||||
c1
|
||||
inserted outside SP
|
||||
inserted from sp3166_s_i
|
||||
inserted from sp3166_ins
|
||||
REVOKE SELECT ON db_storedproc_1.* FROM 'user_2'@'localhost';
|
||||
FLUSH PRIVILEGES;
|
||||
|
||||
user_2@localhost db_storedproc_1
|
||||
CALL sp3166_s_i();
|
||||
ERROR 42000: SELECT command denied to user 'user_2'@'localhost' for table 't3166'
|
||||
CALL sp3166_ins();
|
||||
CALL sp3166_sel();
|
||||
ERROR 42000: SELECT command denied to user 'user_2'@'localhost' for table 't3166'
|
||||
CALL sp3166_s_i();
|
||||
c1
|
||||
inserted outside SP
|
||||
inserted from sp3166_s_i
|
||||
inserted from sp3166_ins
|
||||
inserted from sp3166_ins
|
||||
|
||||
root@localhost db_storedproc_1
|
||||
REVOKE EXECUTE on db_storedproc_1.* FROM 'user_2'@'localhost';
|
||||
FLUSH PRIVILEGES;
|
||||
|
||||
user_2@localhost db_storedproc_1
|
||||
CALL sp3166_s_i();
|
||||
ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc_1.sp3166_s_i'
|
||||
CALL sp3166_ins();
|
||||
ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc_1.sp3166_ins'
|
||||
CALL sp3166_sel();
|
||||
ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc_1.sp3166_sel'
|
||||
|
||||
root@localhost db_storedproc_1
|
||||
DROP PROCEDURE sp3166_s_i;
|
||||
DROP PROCEDURE sp3166_sel;
|
||||
DROP PROCEDURE sp3166_ins;
|
||||
DROP TABLE t3166;
|
||||
DROP USER 'user_1'@'localhost';
|
||||
DROP USER 'user_2'@'localhost';
|
||||
|
||||
--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
|
||||
--------------------------------------------------------------------------------
|
||||
DROP DATABASE IF EXISTS db_storedproc;
|
||||
DROP DATABASE IF EXISTS db_storedproc_1;
|
||||
|
||||
. +++ END OF SCRIPT +++
|
||||
--------------------------------------------------------------------------------
|
||||
@@ -0,0 +1,178 @@
|
||||
|
||||
--source suite/funcs_1/storedproc/load_sp_tb.inc
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
|
||||
--------------------------------------------------------------------------------
|
||||
DROP DATABASE IF EXISTS db_storedproc;
|
||||
DROP DATABASE IF EXISTS db_storedproc_1;
|
||||
CREATE DATABASE db_storedproc;
|
||||
CREATE DATABASE db_storedproc_1;
|
||||
USE db_storedproc;
|
||||
create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int)
|
||||
engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t4.txt' into table t1;
|
||||
create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int)
|
||||
engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t4.txt' into table t2;
|
||||
create table t3(f1 char(20),f2 char(20),f3 integer) engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t3.txt' into table t3;
|
||||
create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int)
|
||||
engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t4.txt' into table t4;
|
||||
USE db_storedproc_1;
|
||||
create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int)
|
||||
engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t4.txt' into table t6;
|
||||
USE db_storedproc;
|
||||
create table t7 (f1 char(20), f2 char(25), f3 date, f4 int)
|
||||
engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t7.txt' into table t7;
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'f3' at row 1
|
||||
Warning 1265 Data truncated for column 'f3' at row 2
|
||||
Warning 1265 Data truncated for column 'f3' at row 3
|
||||
Warning 1265 Data truncated for column 'f3' at row 4
|
||||
Warning 1265 Data truncated for column 'f3' at row 5
|
||||
Warning 1265 Data truncated for column 'f3' at row 6
|
||||
Warning 1265 Data truncated for column 'f3' at row 7
|
||||
Warning 1265 Data truncated for column 'f3' at row 8
|
||||
Warning 1265 Data truncated for column 'f3' at row 9
|
||||
Warning 1265 Data truncated for column 'f3' at row 10
|
||||
create table t8 (f1 char(20), f2 char(25), f3 date, f4 int)
|
||||
engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t7.txt' into table t8;
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'f3' at row 1
|
||||
Warning 1265 Data truncated for column 'f3' at row 2
|
||||
Warning 1265 Data truncated for column 'f3' at row 3
|
||||
Warning 1265 Data truncated for column 'f3' at row 4
|
||||
Warning 1265 Data truncated for column 'f3' at row 5
|
||||
Warning 1265 Data truncated for column 'f3' at row 6
|
||||
Warning 1265 Data truncated for column 'f3' at row 7
|
||||
Warning 1265 Data truncated for column 'f3' at row 8
|
||||
Warning 1265 Data truncated for column 'f3' at row 9
|
||||
Warning 1265 Data truncated for column 'f3' at row 10
|
||||
create table t9(f1 int, f2 char(25), f3 int) engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t9.txt' into table t9;
|
||||
create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int)
|
||||
engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t4.txt' into table t10;
|
||||
create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int)
|
||||
engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t4.txt' into table t11;
|
||||
|
||||
Section 3.1.7 - SQL mode checks:
|
||||
--------------------------------------------------------------------------------
|
||||
USE db_storedproc;
|
||||
|
||||
Testcase 3.1.7.1:
|
||||
-----------------
|
||||
Ensure that the sql_mode setting in effect at the time a stored procedure is
|
||||
created is the same setting under which the stored procedure runs when it is
|
||||
called/executed.
|
||||
--------------------------------------------------------------------------------
|
||||
DROP PROCEDURE IF EXISTS sp1;
|
||||
DROP TABLE IF EXISTS temp_tbl;
|
||||
DROP TABLE IF EXISTS result;
|
||||
CREATE TABLE temp_tbl (f1 tinyint);
|
||||
CREATE TABLE result (f1 text(200), f2 char(20));
|
||||
set @@sql_mode='traditional';
|
||||
SHOW VARIABLES LIKE 'sql_mode';
|
||||
Variable_name Value
|
||||
sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER
|
||||
CREATE PROCEDURE sp1()
|
||||
BEGIN
|
||||
declare a tinyint;
|
||||
declare count_ int default 1;
|
||||
declare continue handler for sqlstate '22003' set count_=1000;
|
||||
SHOW VARIABLES LIKE 'sql_mode';
|
||||
SELECT @@sql_mode into @cur_val_sql_mode;
|
||||
insert into temp_tbl values (1000);
|
||||
if count_ = 1000 THEN
|
||||
INSERT INTO result VALUES (@cur_val_sql_mode, 'value restored');
|
||||
ELSE
|
||||
INSERT INTO result VALUES (@cur_val_sql_mode, 'value not restored');
|
||||
END if;
|
||||
END//
|
||||
SHOW CREATE PROCEDURE sp1;
|
||||
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
|
||||
sp1 STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER CREATE DEFINER=`root`@`localhost` PROCEDURE `sp1`()
|
||||
BEGIN
|
||||
declare a tinyint;
|
||||
declare count_ int default 1;
|
||||
declare continue handler for sqlstate '22003' set count_=1000;
|
||||
SHOW VARIABLES LIKE 'sql_mode';
|
||||
SELECT @@sql_mode into @cur_val_sql_mode;
|
||||
insert into temp_tbl values (1000);
|
||||
if count_ = 1000 THEN
|
||||
INSERT INTO result VALUES (@cur_val_sql_mode, 'value restored');
|
||||
ELSE
|
||||
INSERT INTO result VALUES (@cur_val_sql_mode, 'value not restored');
|
||||
END if;
|
||||
END latin1 latin1_swedish_ci latin1_swedish_ci
|
||||
set @@sql_mode='';
|
||||
SHOW VARIABLES LIKE 'sql_mode';
|
||||
Variable_name Value
|
||||
sql_mode
|
||||
CALL sp1();
|
||||
Variable_name Value
|
||||
sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER
|
||||
SELECT * from result;
|
||||
f1 f2
|
||||
STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER value restored
|
||||
SHOW VARIABLES LIKE 'sql_mode';
|
||||
Variable_name Value
|
||||
sql_mode
|
||||
SELECT @@sql_mode;
|
||||
@@sql_mode
|
||||
|
||||
SET @@sql_mode='TRADITIONAL';
|
||||
DROP PROCEDURE sp1;
|
||||
DROP TABLE temp_tbl;
|
||||
DROP TABLE result;
|
||||
|
||||
Testcase 3.1.7.2:
|
||||
-----------------
|
||||
Ensure that if the sql_mode setting is changed when a stored procedure is run,
|
||||
that the original setting is restored as soon as the stored procedure execution
|
||||
is complete.
|
||||
--------------------------------------------------------------------------------
|
||||
DROP PROCEDURE IF EXISTS sp2;
|
||||
... show initial value
|
||||
SHOW VARIABLES LIKE 'sql_mode';
|
||||
Variable_name Value
|
||||
sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER
|
||||
CREATE PROCEDURE sp2()
|
||||
BEGIN
|
||||
SET @@sql_mode='MAXDB';
|
||||
SHOW VARIABLES LIKE 'sql_mode';
|
||||
END//
|
||||
SHOW CREATE PROCEDURE sp2;
|
||||
Procedure sql_mode Create Procedure character_set_client collation_connection Database Collation
|
||||
sp2 STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER CREATE DEFINER=`root`@`localhost` PROCEDURE `sp2`()
|
||||
BEGIN
|
||||
SET @@sql_mode='MAXDB';
|
||||
SHOW VARIABLES LIKE 'sql_mode';
|
||||
END latin1 latin1_swedish_ci latin1_swedish_ci
|
||||
... show value prior calling procedure
|
||||
SHOW VARIABLES LIKE 'sql_mode';
|
||||
Variable_name Value
|
||||
sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER
|
||||
... call procedure that changes sql_mode
|
||||
CALL sp2();
|
||||
Variable_name Value
|
||||
sql_mode PIPES_AS_CONCAT,ANSI_QUOTES,IGNORE_SPACE,MAXDB,NO_KEY_OPTIONS,NO_TABLE_OPTIONS,NO_FIELD_OPTIONS,NO_AUTO_CREATE_USER
|
||||
... check whether old value is re-set
|
||||
SHOW VARIABLES LIKE 'sql_mode';
|
||||
Variable_name Value
|
||||
sql_mode STRICT_TRANS_TABLES,STRICT_ALL_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,TRADITIONAL,NO_AUTO_CREATE_USER
|
||||
DROP PROCEDURE sp2;
|
||||
|
||||
--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
|
||||
--------------------------------------------------------------------------------
|
||||
DROP DATABASE IF EXISTS db_storedproc;
|
||||
DROP DATABASE IF EXISTS db_storedproc_1;
|
||||
|
||||
. +++ END OF SCRIPT +++
|
||||
--------------------------------------------------------------------------------
|
||||
@@ -0,0 +1,751 @@
|
||||
|
||||
--source suite/funcs_1/storedproc/load_sp_tb.inc
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
|
||||
--------------------------------------------------------------------------------
|
||||
DROP DATABASE IF EXISTS db_storedproc;
|
||||
DROP DATABASE IF EXISTS db_storedproc_1;
|
||||
CREATE DATABASE db_storedproc;
|
||||
CREATE DATABASE db_storedproc_1;
|
||||
USE db_storedproc;
|
||||
create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int)
|
||||
engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t4.txt' into table t1;
|
||||
create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int)
|
||||
engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t4.txt' into table t2;
|
||||
create table t3(f1 char(20),f2 char(20),f3 integer) engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t3.txt' into table t3;
|
||||
create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int)
|
||||
engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t4.txt' into table t4;
|
||||
USE db_storedproc_1;
|
||||
create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int)
|
||||
engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t4.txt' into table t6;
|
||||
USE db_storedproc;
|
||||
create table t7 (f1 char(20), f2 char(25), f3 date, f4 int)
|
||||
engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t7.txt' into table t7;
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'f3' at row 1
|
||||
Warning 1265 Data truncated for column 'f3' at row 2
|
||||
Warning 1265 Data truncated for column 'f3' at row 3
|
||||
Warning 1265 Data truncated for column 'f3' at row 4
|
||||
Warning 1265 Data truncated for column 'f3' at row 5
|
||||
Warning 1265 Data truncated for column 'f3' at row 6
|
||||
Warning 1265 Data truncated for column 'f3' at row 7
|
||||
Warning 1265 Data truncated for column 'f3' at row 8
|
||||
Warning 1265 Data truncated for column 'f3' at row 9
|
||||
Warning 1265 Data truncated for column 'f3' at row 10
|
||||
create table t8 (f1 char(20), f2 char(25), f3 date, f4 int)
|
||||
engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t7.txt' into table t8;
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'f3' at row 1
|
||||
Warning 1265 Data truncated for column 'f3' at row 2
|
||||
Warning 1265 Data truncated for column 'f3' at row 3
|
||||
Warning 1265 Data truncated for column 'f3' at row 4
|
||||
Warning 1265 Data truncated for column 'f3' at row 5
|
||||
Warning 1265 Data truncated for column 'f3' at row 6
|
||||
Warning 1265 Data truncated for column 'f3' at row 7
|
||||
Warning 1265 Data truncated for column 'f3' at row 8
|
||||
Warning 1265 Data truncated for column 'f3' at row 9
|
||||
Warning 1265 Data truncated for column 'f3' at row 10
|
||||
create table t9(f1 int, f2 char(25), f3 int) engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t9.txt' into table t9;
|
||||
create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int)
|
||||
engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t4.txt' into table t10;
|
||||
create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int)
|
||||
engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t4.txt' into table t11;
|
||||
|
||||
Section 3.1.8 - SHOW statement checks:
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Testcase 3.1.8.9:
|
||||
-----------------
|
||||
|
||||
Ensure that all stored procedure changes made with ALTER PROCEDURE or ALTER
|
||||
FUNCTION are properly recorded and displayed when a SHOW CREATE PROCEDURE or
|
||||
SHOW CREATE PROCEDURE STATUS statement, or a SHOW CREATE FUNCTION or SHOW CREATE
|
||||
FUNCTION STATUS statement (respectively) is executed.
|
||||
--------------------------------------------------------------------------------
|
||||
DROP FUNCTION IF EXISTS fn_1;
|
||||
DROP FUNCTION IF EXISTS fn_2;
|
||||
DROP PROCEDURE IF EXISTS sp_1;
|
||||
DROP PROCEDURE IF EXISTS sp_2;
|
||||
CREATE PROCEDURE sp_1 (i1 int)
|
||||
BEGIN
|
||||
set @x=i1;
|
||||
END//
|
||||
CREATE PROCEDURE sp_2 (i1 int) SQL SECURITY INVOKER COMMENT 'created with INVOKER'
|
||||
BEGIN
|
||||
set @x=i1;
|
||||
END//
|
||||
CREATE FUNCTION fn_1 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real) returns year
|
||||
BEGIN
|
||||
set @x=i1;
|
||||
set @y=@x;
|
||||
return i4;
|
||||
END//
|
||||
CREATE FUNCTION fn_2 (i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real)
|
||||
RETURNS YEAR
|
||||
SQL SECURITY INVOKER
|
||||
COMMENT 'created with INVOKER'
|
||||
BEGIN
|
||||
set @x=i1;
|
||||
set @y=@x;
|
||||
return i4;
|
||||
END//
|
||||
|
||||
... now check what is stored:
|
||||
-----------------------------
|
||||
SELECT * FROM information_schema.routines where routine_schema = 'db_storedproc';
|
||||
SPECIFIC_NAME fn_1
|
||||
ROUTINE_CATALOG NULL
|
||||
ROUTINE_SCHEMA db_storedproc
|
||||
ROUTINE_NAME fn_1
|
||||
ROUTINE_TYPE FUNCTION
|
||||
DTD_IDENTIFIER year(4)
|
||||
ROUTINE_BODY SQL
|
||||
ROUTINE_DEFINITION BEGIN
|
||||
set @x=i1;
|
||||
set @y=@x;
|
||||
return i4;
|
||||
END
|
||||
EXTERNAL_NAME NULL
|
||||
EXTERNAL_LANGUAGE NULL
|
||||
PARAMETER_STYLE SQL
|
||||
IS_DETERMINISTIC NO
|
||||
SQL_DATA_ACCESS CONTAINS SQL
|
||||
SQL_PATH NULL
|
||||
SECURITY_TYPE DEFINER
|
||||
CREATED <modified>
|
||||
LAST_ALTERED <created>
|
||||
SQL_MODE
|
||||
ROUTINE_COMMENT
|
||||
DEFINER root@localhost
|
||||
CHARACTER_SET_CLIENT latin1
|
||||
COLLATION_CONNECTION latin1_swedish_ci
|
||||
DATABASE_COLLATION latin1_swedish_ci
|
||||
SPECIFIC_NAME fn_2
|
||||
ROUTINE_CATALOG NULL
|
||||
ROUTINE_SCHEMA db_storedproc
|
||||
ROUTINE_NAME fn_2
|
||||
ROUTINE_TYPE FUNCTION
|
||||
DTD_IDENTIFIER year(4)
|
||||
ROUTINE_BODY SQL
|
||||
ROUTINE_DEFINITION BEGIN
|
||||
set @x=i1;
|
||||
set @y=@x;
|
||||
return i4;
|
||||
END
|
||||
EXTERNAL_NAME NULL
|
||||
EXTERNAL_LANGUAGE NULL
|
||||
PARAMETER_STYLE SQL
|
||||
IS_DETERMINISTIC NO
|
||||
SQL_DATA_ACCESS CONTAINS SQL
|
||||
SQL_PATH NULL
|
||||
SECURITY_TYPE INVOKER
|
||||
CREATED <modified>
|
||||
LAST_ALTERED <created>
|
||||
SQL_MODE
|
||||
ROUTINE_COMMENT created with INVOKER
|
||||
DEFINER root@localhost
|
||||
CHARACTER_SET_CLIENT latin1
|
||||
COLLATION_CONNECTION latin1_swedish_ci
|
||||
DATABASE_COLLATION latin1_swedish_ci
|
||||
SPECIFIC_NAME sp_1
|
||||
ROUTINE_CATALOG NULL
|
||||
ROUTINE_SCHEMA db_storedproc
|
||||
ROUTINE_NAME sp_1
|
||||
ROUTINE_TYPE PROCEDURE
|
||||
DTD_IDENTIFIER NULL
|
||||
ROUTINE_BODY SQL
|
||||
ROUTINE_DEFINITION BEGIN
|
||||
set @x=i1;
|
||||
END
|
||||
EXTERNAL_NAME NULL
|
||||
EXTERNAL_LANGUAGE NULL
|
||||
PARAMETER_STYLE SQL
|
||||
IS_DETERMINISTIC NO
|
||||
SQL_DATA_ACCESS CONTAINS SQL
|
||||
SQL_PATH NULL
|
||||
SECURITY_TYPE DEFINER
|
||||
CREATED <modified>
|
||||
LAST_ALTERED <created>
|
||||
SQL_MODE
|
||||
ROUTINE_COMMENT
|
||||
DEFINER root@localhost
|
||||
CHARACTER_SET_CLIENT latin1
|
||||
COLLATION_CONNECTION latin1_swedish_ci
|
||||
DATABASE_COLLATION latin1_swedish_ci
|
||||
SPECIFIC_NAME sp_2
|
||||
ROUTINE_CATALOG NULL
|
||||
ROUTINE_SCHEMA db_storedproc
|
||||
ROUTINE_NAME sp_2
|
||||
ROUTINE_TYPE PROCEDURE
|
||||
DTD_IDENTIFIER NULL
|
||||
ROUTINE_BODY SQL
|
||||
ROUTINE_DEFINITION BEGIN
|
||||
set @x=i1;
|
||||
END
|
||||
EXTERNAL_NAME NULL
|
||||
EXTERNAL_LANGUAGE NULL
|
||||
PARAMETER_STYLE SQL
|
||||
IS_DETERMINISTIC NO
|
||||
SQL_DATA_ACCESS CONTAINS SQL
|
||||
SQL_PATH NULL
|
||||
SECURITY_TYPE INVOKER
|
||||
CREATED <modified>
|
||||
LAST_ALTERED <created>
|
||||
SQL_MODE
|
||||
ROUTINE_COMMENT created with INVOKER
|
||||
DEFINER root@localhost
|
||||
CHARACTER_SET_CLIENT latin1
|
||||
COLLATION_CONNECTION latin1_swedish_ci
|
||||
DATABASE_COLLATION latin1_swedish_ci
|
||||
SHOW CREATE FUNCTION fn_1;
|
||||
Function fn_1
|
||||
sql_mode
|
||||
Create Function CREATE DEFINER=`root`@`localhost` FUNCTION `fn_1`(i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real) RETURNS year(4)
|
||||
BEGIN
|
||||
set @x=i1;
|
||||
set @y=@x;
|
||||
return i4;
|
||||
END
|
||||
character_set_client latin1
|
||||
collation_connection latin1_swedish_ci
|
||||
Database Collation latin1_swedish_ci
|
||||
SHOW CREATE FUNCTION fn_2;
|
||||
Function fn_2
|
||||
sql_mode
|
||||
Create Function CREATE DEFINER=`root`@`localhost` FUNCTION `fn_2`(i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real) RETURNS year(4)
|
||||
SQL SECURITY INVOKER
|
||||
COMMENT 'created with INVOKER'
|
||||
BEGIN
|
||||
set @x=i1;
|
||||
set @y=@x;
|
||||
return i4;
|
||||
END
|
||||
character_set_client latin1
|
||||
collation_connection latin1_swedish_ci
|
||||
Database Collation latin1_swedish_ci
|
||||
SHOW CREATE PROCEDURE sp_1;
|
||||
Procedure sp_1
|
||||
sql_mode
|
||||
Create Procedure CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_1`(i1 int)
|
||||
BEGIN
|
||||
set @x=i1;
|
||||
END
|
||||
character_set_client latin1
|
||||
collation_connection latin1_swedish_ci
|
||||
Database Collation latin1_swedish_ci
|
||||
SHOW CREATE PROCEDURE sp_2;
|
||||
Procedure sp_2
|
||||
sql_mode
|
||||
Create Procedure CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_2`(i1 int)
|
||||
SQL SECURITY INVOKER
|
||||
COMMENT 'created with INVOKER'
|
||||
BEGIN
|
||||
set @x=i1;
|
||||
END
|
||||
character_set_client latin1
|
||||
collation_connection latin1_swedish_ci
|
||||
Database Collation latin1_swedish_ci
|
||||
SHOW FUNCTION STATUS LIKE 'fn_%';
|
||||
Db db_storedproc
|
||||
Name fn_1
|
||||
Type FUNCTION
|
||||
Definer root@localhost
|
||||
Modified <modified>
|
||||
Created <created>
|
||||
Security_type DEFINER
|
||||
Comment
|
||||
character_set_client latin1
|
||||
collation_connection latin1_swedish_ci
|
||||
Database Collation latin1_swedish_ci
|
||||
Db db_storedproc
|
||||
Name fn_2
|
||||
Type FUNCTION
|
||||
Definer root@localhost
|
||||
Modified <modified>
|
||||
Created <created>
|
||||
Security_type INVOKER
|
||||
Comment created with INVOKER
|
||||
character_set_client latin1
|
||||
collation_connection latin1_swedish_ci
|
||||
Database Collation latin1_swedish_ci
|
||||
SHOW PROCEDURE STATUS LIKE 'sp_%';
|
||||
Db db_storedproc
|
||||
Name sp_1
|
||||
Type PROCEDURE
|
||||
Definer root@localhost
|
||||
Modified <modified>
|
||||
Created <created>
|
||||
Security_type DEFINER
|
||||
Comment
|
||||
character_set_client latin1
|
||||
collation_connection latin1_swedish_ci
|
||||
Database Collation latin1_swedish_ci
|
||||
Db db_storedproc
|
||||
Name sp_2
|
||||
Type PROCEDURE
|
||||
Definer root@localhost
|
||||
Modified <modified>
|
||||
Created <created>
|
||||
Security_type INVOKER
|
||||
Comment created with INVOKER
|
||||
character_set_client latin1
|
||||
collation_connection latin1_swedish_ci
|
||||
Database Collation latin1_swedish_ci
|
||||
|
||||
... now change some stuff:
|
||||
--------------------------
|
||||
ALTER PROCEDURE sp_1 SQL SECURITY INVOKER;
|
||||
ALTER PROCEDURE sp_1 COMMENT 'new comment, SP changed to INVOKER';
|
||||
ALTER PROCEDURE sp_2 SQL SECURITY DEFINER;
|
||||
ALTER PROCEDURE sp_2 DROP COMMENT;
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DROP COMMENT' at line 1
|
||||
ALTER PROCEDURE sp_2 COMMENT 'SP changed to DEFINER';
|
||||
ALTER PROCEDURE sp_2 READS SQL DATA;
|
||||
ALTER FUNCTION fn_1 SQL SECURITY INVOKER;
|
||||
ALTER FUNCTION fn_1 COMMENT 'new comment, FN changed to INVOKER';
|
||||
ALTER FUNCTION fn_1 NO SQL;
|
||||
ALTER FUNCTION fn_2 SQL SECURITY DEFINER;
|
||||
ALTER FUNCTION fn_2 COMMENT 'FN changed to DEFINER';
|
||||
ALTER FUNCTION fn_2 MODIFIES SQL DATA;
|
||||
|
||||
... now check what is stored:
|
||||
-----------------------------
|
||||
SELECT * FROM information_schema.routines where routine_schema = 'db_storedproc';
|
||||
SPECIFIC_NAME fn_1
|
||||
ROUTINE_CATALOG NULL
|
||||
ROUTINE_SCHEMA db_storedproc
|
||||
ROUTINE_NAME fn_1
|
||||
ROUTINE_TYPE FUNCTION
|
||||
DTD_IDENTIFIER year(4)
|
||||
ROUTINE_BODY SQL
|
||||
ROUTINE_DEFINITION BEGIN
|
||||
set @x=i1;
|
||||
set @y=@x;
|
||||
return i4;
|
||||
END
|
||||
EXTERNAL_NAME NULL
|
||||
EXTERNAL_LANGUAGE NULL
|
||||
PARAMETER_STYLE SQL
|
||||
IS_DETERMINISTIC NO
|
||||
SQL_DATA_ACCESS NO SQL
|
||||
SQL_PATH NULL
|
||||
SECURITY_TYPE INVOKER
|
||||
CREATED <modified>
|
||||
LAST_ALTERED <created>
|
||||
SQL_MODE
|
||||
ROUTINE_COMMENT new comment, FN changed to INVOKER
|
||||
DEFINER root@localhost
|
||||
CHARACTER_SET_CLIENT latin1
|
||||
COLLATION_CONNECTION latin1_swedish_ci
|
||||
DATABASE_COLLATION latin1_swedish_ci
|
||||
SPECIFIC_NAME fn_2
|
||||
ROUTINE_CATALOG NULL
|
||||
ROUTINE_SCHEMA db_storedproc
|
||||
ROUTINE_NAME fn_2
|
||||
ROUTINE_TYPE FUNCTION
|
||||
DTD_IDENTIFIER year(4)
|
||||
ROUTINE_BODY SQL
|
||||
ROUTINE_DEFINITION BEGIN
|
||||
set @x=i1;
|
||||
set @y=@x;
|
||||
return i4;
|
||||
END
|
||||
EXTERNAL_NAME NULL
|
||||
EXTERNAL_LANGUAGE NULL
|
||||
PARAMETER_STYLE SQL
|
||||
IS_DETERMINISTIC NO
|
||||
SQL_DATA_ACCESS MODIFIES SQL DATA
|
||||
SQL_PATH NULL
|
||||
SECURITY_TYPE DEFINER
|
||||
CREATED <modified>
|
||||
LAST_ALTERED <created>
|
||||
SQL_MODE
|
||||
ROUTINE_COMMENT FN changed to DEFINER
|
||||
DEFINER root@localhost
|
||||
CHARACTER_SET_CLIENT latin1
|
||||
COLLATION_CONNECTION latin1_swedish_ci
|
||||
DATABASE_COLLATION latin1_swedish_ci
|
||||
SPECIFIC_NAME sp_1
|
||||
ROUTINE_CATALOG NULL
|
||||
ROUTINE_SCHEMA db_storedproc
|
||||
ROUTINE_NAME sp_1
|
||||
ROUTINE_TYPE PROCEDURE
|
||||
DTD_IDENTIFIER NULL
|
||||
ROUTINE_BODY SQL
|
||||
ROUTINE_DEFINITION BEGIN
|
||||
set @x=i1;
|
||||
END
|
||||
EXTERNAL_NAME NULL
|
||||
EXTERNAL_LANGUAGE NULL
|
||||
PARAMETER_STYLE SQL
|
||||
IS_DETERMINISTIC NO
|
||||
SQL_DATA_ACCESS CONTAINS SQL
|
||||
SQL_PATH NULL
|
||||
SECURITY_TYPE INVOKER
|
||||
CREATED <modified>
|
||||
LAST_ALTERED <created>
|
||||
SQL_MODE
|
||||
ROUTINE_COMMENT new comment, SP changed to INVOKER
|
||||
DEFINER root@localhost
|
||||
CHARACTER_SET_CLIENT latin1
|
||||
COLLATION_CONNECTION latin1_swedish_ci
|
||||
DATABASE_COLLATION latin1_swedish_ci
|
||||
SPECIFIC_NAME sp_2
|
||||
ROUTINE_CATALOG NULL
|
||||
ROUTINE_SCHEMA db_storedproc
|
||||
ROUTINE_NAME sp_2
|
||||
ROUTINE_TYPE PROCEDURE
|
||||
DTD_IDENTIFIER NULL
|
||||
ROUTINE_BODY SQL
|
||||
ROUTINE_DEFINITION BEGIN
|
||||
set @x=i1;
|
||||
END
|
||||
EXTERNAL_NAME NULL
|
||||
EXTERNAL_LANGUAGE NULL
|
||||
PARAMETER_STYLE SQL
|
||||
IS_DETERMINISTIC NO
|
||||
SQL_DATA_ACCESS READS SQL DATA
|
||||
SQL_PATH NULL
|
||||
SECURITY_TYPE DEFINER
|
||||
CREATED <modified>
|
||||
LAST_ALTERED <created>
|
||||
SQL_MODE
|
||||
ROUTINE_COMMENT SP changed to DEFINER
|
||||
DEFINER root@localhost
|
||||
CHARACTER_SET_CLIENT latin1
|
||||
COLLATION_CONNECTION latin1_swedish_ci
|
||||
DATABASE_COLLATION latin1_swedish_ci
|
||||
SHOW CREATE FUNCTION fn_1;
|
||||
Function fn_1
|
||||
sql_mode
|
||||
Create Function CREATE DEFINER=`root`@`localhost` FUNCTION `fn_1`(i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real) RETURNS year(4)
|
||||
NO SQL
|
||||
SQL SECURITY INVOKER
|
||||
COMMENT 'new comment, FN changed to INVOKER'
|
||||
BEGIN
|
||||
set @x=i1;
|
||||
set @y=@x;
|
||||
return i4;
|
||||
END
|
||||
character_set_client latin1
|
||||
collation_connection latin1_swedish_ci
|
||||
Database Collation latin1_swedish_ci
|
||||
SHOW CREATE FUNCTION fn_2;
|
||||
Function fn_2
|
||||
sql_mode
|
||||
Create Function CREATE DEFINER=`root`@`localhost` FUNCTION `fn_2`(i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real) RETURNS year(4)
|
||||
MODIFIES SQL DATA
|
||||
COMMENT 'FN changed to DEFINER'
|
||||
BEGIN
|
||||
set @x=i1;
|
||||
set @y=@x;
|
||||
return i4;
|
||||
END
|
||||
character_set_client latin1
|
||||
collation_connection latin1_swedish_ci
|
||||
Database Collation latin1_swedish_ci
|
||||
SHOW CREATE PROCEDURE sp_1;
|
||||
Procedure sp_1
|
||||
sql_mode
|
||||
Create Procedure CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_1`(i1 int)
|
||||
SQL SECURITY INVOKER
|
||||
COMMENT 'new comment, SP changed to INVOKER'
|
||||
BEGIN
|
||||
set @x=i1;
|
||||
END
|
||||
character_set_client latin1
|
||||
collation_connection latin1_swedish_ci
|
||||
Database Collation latin1_swedish_ci
|
||||
SHOW CREATE PROCEDURE sp_2;
|
||||
Procedure sp_2
|
||||
sql_mode
|
||||
Create Procedure CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_2`(i1 int)
|
||||
READS SQL DATA
|
||||
COMMENT 'SP changed to DEFINER'
|
||||
BEGIN
|
||||
set @x=i1;
|
||||
END
|
||||
character_set_client latin1
|
||||
collation_connection latin1_swedish_ci
|
||||
Database Collation latin1_swedish_ci
|
||||
SHOW FUNCTION STATUS LIKE 'fn_%';
|
||||
Db db_storedproc
|
||||
Name fn_1
|
||||
Type FUNCTION
|
||||
Definer root@localhost
|
||||
Modified <modified>
|
||||
Created <created>
|
||||
Security_type INVOKER
|
||||
Comment new comment, FN changed to INVOKER
|
||||
character_set_client latin1
|
||||
collation_connection latin1_swedish_ci
|
||||
Database Collation latin1_swedish_ci
|
||||
Db db_storedproc
|
||||
Name fn_2
|
||||
Type FUNCTION
|
||||
Definer root@localhost
|
||||
Modified <modified>
|
||||
Created <created>
|
||||
Security_type DEFINER
|
||||
Comment FN changed to DEFINER
|
||||
character_set_client latin1
|
||||
collation_connection latin1_swedish_ci
|
||||
Database Collation latin1_swedish_ci
|
||||
SHOW PROCEDURE STATUS LIKE 'sp_%';
|
||||
Db db_storedproc
|
||||
Name sp_1
|
||||
Type PROCEDURE
|
||||
Definer root@localhost
|
||||
Modified <modified>
|
||||
Created <created>
|
||||
Security_type INVOKER
|
||||
Comment new comment, SP changed to INVOKER
|
||||
character_set_client latin1
|
||||
collation_connection latin1_swedish_ci
|
||||
Database Collation latin1_swedish_ci
|
||||
Db db_storedproc
|
||||
Name sp_2
|
||||
Type PROCEDURE
|
||||
Definer root@localhost
|
||||
Modified <modified>
|
||||
Created <created>
|
||||
Security_type DEFINER
|
||||
Comment SP changed to DEFINER
|
||||
character_set_client latin1
|
||||
collation_connection latin1_swedish_ci
|
||||
Database Collation latin1_swedish_ci
|
||||
|
||||
... change back to default and check result:
|
||||
--------------------------------------------
|
||||
ALTER FUNCTION fn_2 CONTAINS SQL;
|
||||
|
||||
... now check what is stored:
|
||||
-----------------------------
|
||||
SELECT * FROM information_schema.routines where routine_schema = 'db_storedproc';
|
||||
SPECIFIC_NAME fn_1
|
||||
ROUTINE_CATALOG NULL
|
||||
ROUTINE_SCHEMA db_storedproc
|
||||
ROUTINE_NAME fn_1
|
||||
ROUTINE_TYPE FUNCTION
|
||||
DTD_IDENTIFIER year(4)
|
||||
ROUTINE_BODY SQL
|
||||
ROUTINE_DEFINITION BEGIN
|
||||
set @x=i1;
|
||||
set @y=@x;
|
||||
return i4;
|
||||
END
|
||||
EXTERNAL_NAME NULL
|
||||
EXTERNAL_LANGUAGE NULL
|
||||
PARAMETER_STYLE SQL
|
||||
IS_DETERMINISTIC NO
|
||||
SQL_DATA_ACCESS NO SQL
|
||||
SQL_PATH NULL
|
||||
SECURITY_TYPE INVOKER
|
||||
CREATED <modified>
|
||||
LAST_ALTERED <created>
|
||||
SQL_MODE
|
||||
ROUTINE_COMMENT new comment, FN changed to INVOKER
|
||||
DEFINER root@localhost
|
||||
CHARACTER_SET_CLIENT latin1
|
||||
COLLATION_CONNECTION latin1_swedish_ci
|
||||
DATABASE_COLLATION latin1_swedish_ci
|
||||
SPECIFIC_NAME fn_2
|
||||
ROUTINE_CATALOG NULL
|
||||
ROUTINE_SCHEMA db_storedproc
|
||||
ROUTINE_NAME fn_2
|
||||
ROUTINE_TYPE FUNCTION
|
||||
DTD_IDENTIFIER year(4)
|
||||
ROUTINE_BODY SQL
|
||||
ROUTINE_DEFINITION BEGIN
|
||||
set @x=i1;
|
||||
set @y=@x;
|
||||
return i4;
|
||||
END
|
||||
EXTERNAL_NAME NULL
|
||||
EXTERNAL_LANGUAGE NULL
|
||||
PARAMETER_STYLE SQL
|
||||
IS_DETERMINISTIC NO
|
||||
SQL_DATA_ACCESS CONTAINS SQL
|
||||
SQL_PATH NULL
|
||||
SECURITY_TYPE DEFINER
|
||||
CREATED <modified>
|
||||
LAST_ALTERED <created>
|
||||
SQL_MODE
|
||||
ROUTINE_COMMENT FN changed to DEFINER
|
||||
DEFINER root@localhost
|
||||
CHARACTER_SET_CLIENT latin1
|
||||
COLLATION_CONNECTION latin1_swedish_ci
|
||||
DATABASE_COLLATION latin1_swedish_ci
|
||||
SPECIFIC_NAME sp_1
|
||||
ROUTINE_CATALOG NULL
|
||||
ROUTINE_SCHEMA db_storedproc
|
||||
ROUTINE_NAME sp_1
|
||||
ROUTINE_TYPE PROCEDURE
|
||||
DTD_IDENTIFIER NULL
|
||||
ROUTINE_BODY SQL
|
||||
ROUTINE_DEFINITION BEGIN
|
||||
set @x=i1;
|
||||
END
|
||||
EXTERNAL_NAME NULL
|
||||
EXTERNAL_LANGUAGE NULL
|
||||
PARAMETER_STYLE SQL
|
||||
IS_DETERMINISTIC NO
|
||||
SQL_DATA_ACCESS CONTAINS SQL
|
||||
SQL_PATH NULL
|
||||
SECURITY_TYPE INVOKER
|
||||
CREATED <modified>
|
||||
LAST_ALTERED <created>
|
||||
SQL_MODE
|
||||
ROUTINE_COMMENT new comment, SP changed to INVOKER
|
||||
DEFINER root@localhost
|
||||
CHARACTER_SET_CLIENT latin1
|
||||
COLLATION_CONNECTION latin1_swedish_ci
|
||||
DATABASE_COLLATION latin1_swedish_ci
|
||||
SPECIFIC_NAME sp_2
|
||||
ROUTINE_CATALOG NULL
|
||||
ROUTINE_SCHEMA db_storedproc
|
||||
ROUTINE_NAME sp_2
|
||||
ROUTINE_TYPE PROCEDURE
|
||||
DTD_IDENTIFIER NULL
|
||||
ROUTINE_BODY SQL
|
||||
ROUTINE_DEFINITION BEGIN
|
||||
set @x=i1;
|
||||
END
|
||||
EXTERNAL_NAME NULL
|
||||
EXTERNAL_LANGUAGE NULL
|
||||
PARAMETER_STYLE SQL
|
||||
IS_DETERMINISTIC NO
|
||||
SQL_DATA_ACCESS READS SQL DATA
|
||||
SQL_PATH NULL
|
||||
SECURITY_TYPE DEFINER
|
||||
CREATED <modified>
|
||||
LAST_ALTERED <created>
|
||||
SQL_MODE
|
||||
ROUTINE_COMMENT SP changed to DEFINER
|
||||
DEFINER root@localhost
|
||||
CHARACTER_SET_CLIENT latin1
|
||||
COLLATION_CONNECTION latin1_swedish_ci
|
||||
DATABASE_COLLATION latin1_swedish_ci
|
||||
SHOW CREATE FUNCTION fn_1;
|
||||
Function fn_1
|
||||
sql_mode
|
||||
Create Function CREATE DEFINER=`root`@`localhost` FUNCTION `fn_1`(i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real) RETURNS year(4)
|
||||
NO SQL
|
||||
SQL SECURITY INVOKER
|
||||
COMMENT 'new comment, FN changed to INVOKER'
|
||||
BEGIN
|
||||
set @x=i1;
|
||||
set @y=@x;
|
||||
return i4;
|
||||
END
|
||||
character_set_client latin1
|
||||
collation_connection latin1_swedish_ci
|
||||
Database Collation latin1_swedish_ci
|
||||
SHOW CREATE FUNCTION fn_2;
|
||||
Function fn_2
|
||||
sql_mode
|
||||
Create Function CREATE DEFINER=`root`@`localhost` FUNCTION `fn_2`(i1 longtext, i2 mediumint , i3 longblob, i4 year, i5 real) RETURNS year(4)
|
||||
COMMENT 'FN changed to DEFINER'
|
||||
BEGIN
|
||||
set @x=i1;
|
||||
set @y=@x;
|
||||
return i4;
|
||||
END
|
||||
character_set_client latin1
|
||||
collation_connection latin1_swedish_ci
|
||||
Database Collation latin1_swedish_ci
|
||||
SHOW CREATE PROCEDURE sp_1;
|
||||
Procedure sp_1
|
||||
sql_mode
|
||||
Create Procedure CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_1`(i1 int)
|
||||
SQL SECURITY INVOKER
|
||||
COMMENT 'new comment, SP changed to INVOKER'
|
||||
BEGIN
|
||||
set @x=i1;
|
||||
END
|
||||
character_set_client latin1
|
||||
collation_connection latin1_swedish_ci
|
||||
Database Collation latin1_swedish_ci
|
||||
SHOW CREATE PROCEDURE sp_2;
|
||||
Procedure sp_2
|
||||
sql_mode
|
||||
Create Procedure CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_2`(i1 int)
|
||||
READS SQL DATA
|
||||
COMMENT 'SP changed to DEFINER'
|
||||
BEGIN
|
||||
set @x=i1;
|
||||
END
|
||||
character_set_client latin1
|
||||
collation_connection latin1_swedish_ci
|
||||
Database Collation latin1_swedish_ci
|
||||
SHOW FUNCTION STATUS LIKE 'fn_%';
|
||||
Db db_storedproc
|
||||
Name fn_1
|
||||
Type FUNCTION
|
||||
Definer root@localhost
|
||||
Modified <modified>
|
||||
Created <created>
|
||||
Security_type INVOKER
|
||||
Comment new comment, FN changed to INVOKER
|
||||
character_set_client latin1
|
||||
collation_connection latin1_swedish_ci
|
||||
Database Collation latin1_swedish_ci
|
||||
Db db_storedproc
|
||||
Name fn_2
|
||||
Type FUNCTION
|
||||
Definer root@localhost
|
||||
Modified <modified>
|
||||
Created <created>
|
||||
Security_type DEFINER
|
||||
Comment FN changed to DEFINER
|
||||
character_set_client latin1
|
||||
collation_connection latin1_swedish_ci
|
||||
Database Collation latin1_swedish_ci
|
||||
SHOW PROCEDURE STATUS LIKE 'sp_%';
|
||||
Db db_storedproc
|
||||
Name sp_1
|
||||
Type PROCEDURE
|
||||
Definer root@localhost
|
||||
Modified <modified>
|
||||
Created <created>
|
||||
Security_type INVOKER
|
||||
Comment new comment, SP changed to INVOKER
|
||||
character_set_client latin1
|
||||
collation_connection latin1_swedish_ci
|
||||
Database Collation latin1_swedish_ci
|
||||
Db db_storedproc
|
||||
Name sp_2
|
||||
Type PROCEDURE
|
||||
Definer root@localhost
|
||||
Modified <modified>
|
||||
Created <created>
|
||||
Security_type DEFINER
|
||||
Comment SP changed to DEFINER
|
||||
character_set_client latin1
|
||||
collation_connection latin1_swedish_ci
|
||||
Database Collation latin1_swedish_ci
|
||||
|
||||
... cleanup
|
||||
-----------
|
||||
DROP FUNCTION fn_1;
|
||||
DROP FUNCTION fn_2;
|
||||
DROP PROCEDURE sp_1;
|
||||
|
||||
--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
|
||||
--------------------------------------------------------------------------------
|
||||
DROP DATABASE IF EXISTS db_storedproc;
|
||||
DROP DATABASE IF EXISTS db_storedproc_1;
|
||||
|
||||
. +++ END OF SCRIPT +++
|
||||
--------------------------------------------------------------------------------
|
||||
@@ -0,0 +1,400 @@
|
||||
|
||||
--source suite/funcs_1/storedproc/load_sp_tb.inc
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
|
||||
--------------------------------------------------------------------------------
|
||||
DROP DATABASE IF EXISTS db_storedproc;
|
||||
DROP DATABASE IF EXISTS db_storedproc_1;
|
||||
CREATE DATABASE db_storedproc;
|
||||
CREATE DATABASE db_storedproc_1;
|
||||
USE db_storedproc;
|
||||
create table t1(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int)
|
||||
engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t4.txt' into table t1;
|
||||
create table t2(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int)
|
||||
engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t4.txt' into table t2;
|
||||
create table t3(f1 char(20),f2 char(20),f3 integer) engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t3.txt' into table t3;
|
||||
create table t4(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int)
|
||||
engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t4.txt' into table t4;
|
||||
USE db_storedproc_1;
|
||||
create table t6(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int)
|
||||
engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t4.txt' into table t6;
|
||||
USE db_storedproc;
|
||||
create table t7 (f1 char(20), f2 char(25), f3 date, f4 int)
|
||||
engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t7.txt' into table t7;
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'f3' at row 1
|
||||
Warning 1265 Data truncated for column 'f3' at row 2
|
||||
Warning 1265 Data truncated for column 'f3' at row 3
|
||||
Warning 1265 Data truncated for column 'f3' at row 4
|
||||
Warning 1265 Data truncated for column 'f3' at row 5
|
||||
Warning 1265 Data truncated for column 'f3' at row 6
|
||||
Warning 1265 Data truncated for column 'f3' at row 7
|
||||
Warning 1265 Data truncated for column 'f3' at row 8
|
||||
Warning 1265 Data truncated for column 'f3' at row 9
|
||||
Warning 1265 Data truncated for column 'f3' at row 10
|
||||
create table t8 (f1 char(20), f2 char(25), f3 date, f4 int)
|
||||
engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t7.txt' into table t8;
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'f3' at row 1
|
||||
Warning 1265 Data truncated for column 'f3' at row 2
|
||||
Warning 1265 Data truncated for column 'f3' at row 3
|
||||
Warning 1265 Data truncated for column 'f3' at row 4
|
||||
Warning 1265 Data truncated for column 'f3' at row 5
|
||||
Warning 1265 Data truncated for column 'f3' at row 6
|
||||
Warning 1265 Data truncated for column 'f3' at row 7
|
||||
Warning 1265 Data truncated for column 'f3' at row 8
|
||||
Warning 1265 Data truncated for column 'f3' at row 9
|
||||
Warning 1265 Data truncated for column 'f3' at row 10
|
||||
create table t9(f1 int, f2 char(25), f3 int) engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t9.txt' into table t9;
|
||||
create table t10(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int)
|
||||
engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t4.txt' into table t10;
|
||||
create table t11(f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int)
|
||||
engine = <engine_to_be_tested>;
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t4.txt' into table t11;
|
||||
|
||||
Section 3.1.10 - CALL checks:
|
||||
--------------------------------------------------------------------------------
|
||||
USE db_storedproc;
|
||||
|
||||
Testcase 3.1.10.2 + 3.1.10.5:
|
||||
-----------------------------
|
||||
|
||||
2. Ensure that a procedure cannot be called if the appropriate privileges do not
|
||||
exist.
|
||||
5. Ensure that a function cannot be executed if the appropriate privileges do
|
||||
not exist.
|
||||
--------------------------------------------------------------------------------
|
||||
DROP PROCEDURE IF EXISTS sp31102;
|
||||
DROP FUNCTION IF EXISTS fn31105;
|
||||
create user 'user_1'@'localhost';
|
||||
create user 'user_2'@'localhost';
|
||||
GRANT CREATE ROUTINE ON db_storedproc.* TO 'user_1'@'localhost';
|
||||
GRANT SELECT ON db_storedproc.* TO 'user_2'@'localhost';
|
||||
FLUSH PRIVILEGES;
|
||||
|
||||
user_1@localhost db_storedproc
|
||||
CREATE PROCEDURE sp31102 () SQL SECURITY INVOKER
|
||||
BEGIN
|
||||
SELECT * FROM db_storedproc.t1 WHERE f4=-5000 LIMIT 1;
|
||||
END//
|
||||
CREATE FUNCTION fn31105(n INT) RETURNS INT
|
||||
BEGIN
|
||||
DECLARE res INT;
|
||||
SET res = n * n;
|
||||
RETURN res;
|
||||
END//
|
||||
|
||||
user_2@localhost db_storedproc
|
||||
CALL sp31102();
|
||||
ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.sp31102'
|
||||
SELECT fn31105( 9 );
|
||||
ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.fn31105'
|
||||
connection default;
|
||||
USE db_storedproc;
|
||||
|
||||
root@localhost db_storedproc
|
||||
CALL sp31102();
|
||||
f1 f2 f3 f4 f5 f6
|
||||
a` a` 1000-01-01 -5000 a` -5000
|
||||
SELECT fn31105( 9 );
|
||||
fn31105( 9 )
|
||||
81
|
||||
GRANT EXECUTE ON db_storedproc.* TO 'user_2'@'localhost';
|
||||
FLUSH PRIVILEGES;
|
||||
|
||||
user_2@localhost db_storedproc
|
||||
CALL sp31102();
|
||||
f1 f2 f3 f4 f5 f6
|
||||
a` a` 1000-01-01 -5000 a` -5000
|
||||
SELECT fn31105( 9 );
|
||||
fn31105( 9 )
|
||||
81
|
||||
connection default;
|
||||
USE db_storedproc;
|
||||
|
||||
root@localhost db_storedproc
|
||||
REVOKE EXECUTE ON db_storedproc.* FROM 'user_2'@'localhost';
|
||||
FLUSH PRIVILEGES;
|
||||
CALL sp31102();
|
||||
f1 f2 f3 f4 f5 f6
|
||||
a` a` 1000-01-01 -5000 a` -5000
|
||||
SELECT fn31105( 9 );
|
||||
fn31105( 9 )
|
||||
81
|
||||
|
||||
user_2@localhost db_storedproc
|
||||
CALL sp31102();
|
||||
ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.sp31102'
|
||||
SELECT fn31105( 9 );
|
||||
ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.fn31105'
|
||||
USE db_storedproc;
|
||||
|
||||
root@localhost db_storedproc
|
||||
DROP PROCEDURE sp31102;
|
||||
DROP FUNCTION fn31105;
|
||||
DROP USER 'user_1'@'localhost';
|
||||
DROP USER 'user_2'@'localhost';
|
||||
|
||||
Testcase 3.1.10.3:
|
||||
------------------
|
||||
|
||||
Ensure that a function can never be called.
|
||||
--------------------------------------------------------------------------------
|
||||
DROP FUNCTION IF EXISTS fn1;
|
||||
CREATE FUNCTION fn1(a int) returns int
|
||||
BEGIN
|
||||
set @b = 0.9 * a;
|
||||
return @b;
|
||||
END//
|
||||
CALL fn1();
|
||||
ERROR 42000: PROCEDURE db_storedproc.fn1 does not exist
|
||||
DROP FUNCTION fn1;
|
||||
|
||||
Testcase 3.1.10.6:
|
||||
------------------
|
||||
|
||||
Ensure that a procedure can never be executed.
|
||||
--------------------------------------------------------------------------------
|
||||
DROP PROCEDURE IF EXISTS sp1;
|
||||
DROP FUNCTION IF EXISTS sp1;
|
||||
CREATE PROCEDURE sp1()
|
||||
BEGIN
|
||||
SELECT * from t10;
|
||||
END//
|
||||
SELECT sp1();
|
||||
ERROR 42000: FUNCTION db_storedproc.sp1 does not exist
|
||||
DROP PROCEDURE sp1;
|
||||
|
||||
Testcase 3.1.10.7:
|
||||
------------------
|
||||
|
||||
Ensure that the ROW_COUNT() SQL function always returns the correct number of
|
||||
rows affected by the execution of a stored procedure.
|
||||
--------------------------------------------------------------------------------
|
||||
DROP PROCEDURE IF EXISTS sp_ins_1;
|
||||
DROP PROCEDURE IF EXISTS sp_ins_3;
|
||||
DROP PROCEDURE IF EXISTS sp_upd;
|
||||
DROP PROCEDURE IF EXISTS sp_ins_upd;
|
||||
DROP PROCEDURE IF EXISTS sp_del;
|
||||
DROP PROCEDURE IF EXISTS sp_with_rowcount;
|
||||
CREATE TABLE temp(f1 CHAR(20),f2 CHAR(25),f3 DATE,f4 INT,f5 CHAR(25),f6 INT);
|
||||
INSERT INTO temp SELECT * FROM t10;
|
||||
CREATE PROCEDURE sp_ins_1()
|
||||
BEGIN
|
||||
INSERT INTO temp VALUES ('abc', 'abc', '20051003', 100, 'uvw', 1000);
|
||||
END//
|
||||
CREATE PROCEDURE sp_ins_3()
|
||||
BEGIN
|
||||
INSERT INTO temp VALUES ('abc', 'xyz', '19490523', 100, 'uvw', 1000);
|
||||
INSERT INTO temp VALUES ('abc', 'xyz', '1989-11-09', 100, 'uvw', 1000);
|
||||
INSERT INTO temp VALUES ('abc', 'xyz', '2005-10-24', 100, 'uvw', 1000);
|
||||
END//
|
||||
CREATE PROCEDURE sp_upd()
|
||||
BEGIN
|
||||
UPDATE temp SET temp.f1 = 'updated' WHERE temp.f1 ='abc';
|
||||
END//
|
||||
CREATE PROCEDURE sp_ins_upd()
|
||||
BEGIN
|
||||
BEGIN
|
||||
INSERT INTO temp VALUES ('qwe', 'abc', '1989-11-09', 100, 'uvw', 1000);
|
||||
INSERT INTO temp VALUES ('qwe', 'xyz', '1998-03-26', 100, 'uvw', 1000);
|
||||
INSERT INTO temp VALUES ('qwe', 'abc', '2000-11-09', 100, 'uvw', 1000);
|
||||
INSERT INTO temp VALUES ('qwe', 'abc', '2005-11-07', 100, 'uvw', 1000);
|
||||
END;
|
||||
SELECT COUNT( f1 ), f1 FROM temp GROUP BY f1;
|
||||
UPDATE temp SET temp.f1 = 'updated_2' WHERE temp.f1 ='qwe' AND temp.f2 = 'abc';
|
||||
END//
|
||||
CREATE PROCEDURE sp_del()
|
||||
BEGIN
|
||||
DELETE FROM temp WHERE temp.f1 ='qwe' OR temp.f1 = 'updated_2';
|
||||
END//
|
||||
CREATE PROCEDURE sp_with_rowcount()
|
||||
BEGIN
|
||||
BEGIN
|
||||
INSERT INTO temp VALUES ('qwe', 'abc', '1989-11-09', 100, 'uvw', 1000),
|
||||
('qwe', 'xyz', '1998-03-26', 100, 'uvw', 1000),
|
||||
('qwe', 'abc', '2000-11-09', 100, 'uvw', 1000),
|
||||
('qwe', 'xyz', '2005-11-07', 100, 'uvw', 1000);
|
||||
END;
|
||||
SELECT row_count() AS 'row_count() after insert';
|
||||
SELECT row_count() AS 'row_count() after select row_count()';
|
||||
SELECT f1,f2,f3 FROM temp ORDER BY f1,f2,f3;
|
||||
UPDATE temp SET temp.f1 = 'updated_2' WHERE temp.f2 = 'abc';
|
||||
SELECT row_count() AS 'row_count() after update';
|
||||
SELECT f1,f2,f3 FROM temp ORDER BY f1,f2,f3;
|
||||
DELETE FROM temp WHERE temp.f1 = 'updated_2';
|
||||
SELECT row_count() AS 'row_count() after delete';
|
||||
END//
|
||||
CALL sp_ins_1();
|
||||
SELECT row_count();
|
||||
row_count()
|
||||
1
|
||||
SELECT * FROM temp;
|
||||
f1 f2 f3 f4 f5 f6
|
||||
a^aaaaaaaa a^aaaaaaaa 1000-01-09 -4992 a^aaaaaaaa -4992
|
||||
a_aaaaaaaaa a_aaaaaaaaa 1000-01-10 -4991 a_aaaaaaaaa -4991
|
||||
a` a` 1000-01-01 -5000 a` -5000
|
||||
aaa aaa 1000-01-02 -4999 aaa -4999
|
||||
abaa abaa 1000-01-03 -4998 abaa -4998
|
||||
abc abc 2005-10-03 100 uvw 1000
|
||||
acaaa acaaa 1000-01-04 -4997 acaaa -4997
|
||||
adaaaa adaaaa 1000-01-05 -4996 adaaaa -4996
|
||||
aeaaaaa aeaaaaa 1000-01-06 -4995 aeaaaaa -4995
|
||||
afaaaaaa afaaaaaa 1000-01-07 -4994 afaaaaaa -4994
|
||||
agaaaaaaa agaaaaaaa 1000-01-08 -4993 agaaaaaaa -4993
|
||||
CALL sp_ins_3();
|
||||
SELECT row_count();
|
||||
row_count()
|
||||
1
|
||||
SELECT * FROM temp;
|
||||
f1 f2 f3 f4 f5 f6
|
||||
a^aaaaaaaa a^aaaaaaaa 1000-01-09 -4992 a^aaaaaaaa -4992
|
||||
a_aaaaaaaaa a_aaaaaaaaa 1000-01-10 -4991 a_aaaaaaaaa -4991
|
||||
a` a` 1000-01-01 -5000 a` -5000
|
||||
aaa aaa 1000-01-02 -4999 aaa -4999
|
||||
abaa abaa 1000-01-03 -4998 abaa -4998
|
||||
abc abc 2005-10-03 100 uvw 1000
|
||||
abc xyz 1949-05-23 100 uvw 1000
|
||||
abc xyz 1989-11-09 100 uvw 1000
|
||||
abc xyz 2005-10-24 100 uvw 1000
|
||||
acaaa acaaa 1000-01-04 -4997 acaaa -4997
|
||||
adaaaa adaaaa 1000-01-05 -4996 adaaaa -4996
|
||||
aeaaaaa aeaaaaa 1000-01-06 -4995 aeaaaaa -4995
|
||||
afaaaaaa afaaaaaa 1000-01-07 -4994 afaaaaaa -4994
|
||||
agaaaaaaa agaaaaaaa 1000-01-08 -4993 agaaaaaaa -4993
|
||||
CALL sp_upd();
|
||||
SELECT row_count();
|
||||
row_count()
|
||||
4
|
||||
SELECT * FROM temp;
|
||||
f1 f2 f3 f4 f5 f6
|
||||
a^aaaaaaaa a^aaaaaaaa 1000-01-09 -4992 a^aaaaaaaa -4992
|
||||
a_aaaaaaaaa a_aaaaaaaaa 1000-01-10 -4991 a_aaaaaaaaa -4991
|
||||
a` a` 1000-01-01 -5000 a` -5000
|
||||
aaa aaa 1000-01-02 -4999 aaa -4999
|
||||
abaa abaa 1000-01-03 -4998 abaa -4998
|
||||
acaaa acaaa 1000-01-04 -4997 acaaa -4997
|
||||
adaaaa adaaaa 1000-01-05 -4996 adaaaa -4996
|
||||
aeaaaaa aeaaaaa 1000-01-06 -4995 aeaaaaa -4995
|
||||
afaaaaaa afaaaaaa 1000-01-07 -4994 afaaaaaa -4994
|
||||
agaaaaaaa agaaaaaaa 1000-01-08 -4993 agaaaaaaa -4993
|
||||
updated abc 2005-10-03 100 uvw 1000
|
||||
updated xyz 1949-05-23 100 uvw 1000
|
||||
updated xyz 1989-11-09 100 uvw 1000
|
||||
updated xyz 2005-10-24 100 uvw 1000
|
||||
CALL sp_ins_upd();
|
||||
COUNT( f1 ) f1
|
||||
1 aaa
|
||||
1 abaa
|
||||
1 acaaa
|
||||
1 adaaaa
|
||||
1 aeaaaaa
|
||||
1 afaaaaaa
|
||||
1 agaaaaaaa
|
||||
1 a^aaaaaaaa
|
||||
1 a_aaaaaaaaa
|
||||
1 a`
|
||||
4 qwe
|
||||
4 updated
|
||||
SELECT row_count();
|
||||
row_count()
|
||||
3
|
||||
SELECT * FROM temp;
|
||||
f1 f2 f3 f4 f5 f6
|
||||
a^aaaaaaaa a^aaaaaaaa 1000-01-09 -4992 a^aaaaaaaa -4992
|
||||
a_aaaaaaaaa a_aaaaaaaaa 1000-01-10 -4991 a_aaaaaaaaa -4991
|
||||
a` a` 1000-01-01 -5000 a` -5000
|
||||
aaa aaa 1000-01-02 -4999 aaa -4999
|
||||
abaa abaa 1000-01-03 -4998 abaa -4998
|
||||
acaaa acaaa 1000-01-04 -4997 acaaa -4997
|
||||
adaaaa adaaaa 1000-01-05 -4996 adaaaa -4996
|
||||
aeaaaaa aeaaaaa 1000-01-06 -4995 aeaaaaa -4995
|
||||
afaaaaaa afaaaaaa 1000-01-07 -4994 afaaaaaa -4994
|
||||
agaaaaaaa agaaaaaaa 1000-01-08 -4993 agaaaaaaa -4993
|
||||
qwe xyz 1998-03-26 100 uvw 1000
|
||||
updated abc 2005-10-03 100 uvw 1000
|
||||
updated xyz 1949-05-23 100 uvw 1000
|
||||
updated xyz 1989-11-09 100 uvw 1000
|
||||
updated xyz 2005-10-24 100 uvw 1000
|
||||
updated_2 abc 1989-11-09 100 uvw 1000
|
||||
updated_2 abc 2000-11-09 100 uvw 1000
|
||||
updated_2 abc 2005-11-07 100 uvw 1000
|
||||
CALL sp_del();
|
||||
SELECT row_count();
|
||||
row_count()
|
||||
4
|
||||
SELECT * FROM temp;
|
||||
f1 f2 f3 f4 f5 f6
|
||||
a^aaaaaaaa a^aaaaaaaa 1000-01-09 -4992 a^aaaaaaaa -4992
|
||||
a_aaaaaaaaa a_aaaaaaaaa 1000-01-10 -4991 a_aaaaaaaaa -4991
|
||||
a` a` 1000-01-01 -5000 a` -5000
|
||||
aaa aaa 1000-01-02 -4999 aaa -4999
|
||||
abaa abaa 1000-01-03 -4998 abaa -4998
|
||||
acaaa acaaa 1000-01-04 -4997 acaaa -4997
|
||||
adaaaa adaaaa 1000-01-05 -4996 adaaaa -4996
|
||||
aeaaaaa aeaaaaa 1000-01-06 -4995 aeaaaaa -4995
|
||||
afaaaaaa afaaaaaa 1000-01-07 -4994 afaaaaaa -4994
|
||||
agaaaaaaa agaaaaaaa 1000-01-08 -4993 agaaaaaaa -4993
|
||||
updated abc 2005-10-03 100 uvw 1000
|
||||
updated xyz 1949-05-23 100 uvw 1000
|
||||
updated xyz 1989-11-09 100 uvw 1000
|
||||
updated xyz 2005-10-24 100 uvw 1000
|
||||
DELETE FROM temp;
|
||||
CALL sp_with_rowcount();
|
||||
row_count() after insert
|
||||
4
|
||||
row_count() after select row_count()
|
||||
-1
|
||||
f1 f2 f3
|
||||
qwe abc 1989-11-09
|
||||
qwe abc 2000-11-09
|
||||
qwe xyz 1998-03-26
|
||||
qwe xyz 2005-11-07
|
||||
row_count() after update
|
||||
2
|
||||
f1 f2 f3
|
||||
qwe xyz 1998-03-26
|
||||
qwe xyz 2005-11-07
|
||||
updated_2 abc 1989-11-09
|
||||
updated_2 abc 2000-11-09
|
||||
row_count() after delete
|
||||
2
|
||||
SELECT row_count();
|
||||
row_count()
|
||||
-1
|
||||
SELECT * FROM temp;
|
||||
f1 f2 f3 f4 f5 f6
|
||||
qwe xyz 1998-03-26 100 uvw 1000
|
||||
qwe xyz 2005-11-07 100 uvw 1000
|
||||
DROP PROCEDURE sp_ins_1;
|
||||
DROP PROCEDURE sp_ins_3;
|
||||
DROP PROCEDURE sp_upd;
|
||||
DROP PROCEDURE sp_ins_upd;
|
||||
DROP PROCEDURE sp_del;
|
||||
DROP PROCEDURE sp_with_rowcount;
|
||||
DROP TABLE temp;
|
||||
|
||||
Testcase 3.1.10.8:
|
||||
------------------
|
||||
|
||||
Ensure that the mysql_affected_rows() C API function always returns the correct
|
||||
number of rows affected by the execution of a stored procedure.
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
--source suite/funcs_1/storedproc/cleanup_sp_tb.inc
|
||||
--------------------------------------------------------------------------------
|
||||
DROP DATABASE IF EXISTS db_storedproc;
|
||||
DROP DATABASE IF EXISTS db_storedproc_1;
|
||||
|
||||
. +++ END OF SCRIPT +++
|
||||
--------------------------------------------------------------------------------
|
||||
@@ -0,0 +1,366 @@
|
||||
USE test;
|
||||
drop table if exists tb3;
|
||||
create table tb3 (
|
||||
f118 char not null DEFAULT 'a',
|
||||
f119 char binary not null DEFAULT b'101',
|
||||
f120 char ascii not null DEFAULT b'101',
|
||||
f121 char(50),
|
||||
f122 char(50),
|
||||
f129 binary not null DEFAULT b'101',
|
||||
f130 tinyint not null DEFAULT 99,
|
||||
f131 tinyint unsigned not null DEFAULT 99,
|
||||
f132 tinyint zerofill not null DEFAULT 99,
|
||||
f133 tinyint unsigned zerofill not null DEFAULT 99,
|
||||
f134 smallint not null DEFAULT 999,
|
||||
f135 smallint unsigned not null DEFAULT 999,
|
||||
f136 smallint zerofill not null DEFAULT 999,
|
||||
f137 smallint unsigned zerofill not null DEFAULT 999,
|
||||
f138 mediumint not null DEFAULT 9999,
|
||||
f139 mediumint unsigned not null DEFAULT 9999,
|
||||
f140 mediumint zerofill not null DEFAULT 9999,
|
||||
f141 mediumint unsigned zerofill not null DEFAULT 9999,
|
||||
f142 int not null DEFAULT 99999,
|
||||
f143 int unsigned not null DEFAULT 99999,
|
||||
f144 int zerofill not null DEFAULT 99999,
|
||||
f145 int unsigned zerofill not null DEFAULT 99999,
|
||||
f146 bigint not null DEFAULT 999999,
|
||||
f147 bigint unsigned not null DEFAULT 999999,
|
||||
f148 bigint zerofill not null DEFAULT 999999,
|
||||
f149 bigint unsigned zerofill not null DEFAULT 999999,
|
||||
f150 decimal not null DEFAULT 999.999,
|
||||
f151 decimal unsigned not null DEFAULT 999.17,
|
||||
f152 decimal zerofill not null DEFAULT 999.999,
|
||||
f153 decimal unsigned zerofill,
|
||||
f154 decimal (0),
|
||||
f155 decimal (64),
|
||||
f156 decimal (0) unsigned,
|
||||
f157 decimal (64) unsigned,
|
||||
f158 decimal (0) zerofill,
|
||||
f159 decimal (64) zerofill,
|
||||
f160 decimal (0) unsigned zerofill,
|
||||
f161 decimal (64) unsigned zerofill,
|
||||
f162 decimal (0,0),
|
||||
f163 decimal (63,30),
|
||||
f164 decimal (0,0) unsigned,
|
||||
f165 decimal (63,30) unsigned,
|
||||
f166 decimal (0,0) zerofill,
|
||||
f167 decimal (63,30) zerofill,
|
||||
f168 decimal (0,0) unsigned zerofill,
|
||||
f169 decimal (63,30) unsigned zerofill,
|
||||
f170 numeric,
|
||||
f171 numeric unsigned,
|
||||
f172 numeric zerofill,
|
||||
f173 numeric unsigned zerofill,
|
||||
f174 numeric (0),
|
||||
f175 numeric (64)
|
||||
) engine = <engine_to_be_used>;
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'f150' at row 1
|
||||
Note 1265 Data truncated for column 'f151' at row 1
|
||||
Note 1265 Data truncated for column 'f152' at row 1
|
||||
|
||||
Testcase: 3.5.1.1:
|
||||
------------------
|
||||
use test;
|
||||
Create trigger trg1_1 BEFORE INSERT
|
||||
on tb3 for each row set @test_before = 2, new.f142 = @test_before;
|
||||
Create trigger trg1_2 AFTER INSERT
|
||||
on tb3 for each row set @test_after = 6;
|
||||
Create trigger trg1_4 BEFORE UPDATE
|
||||
on tb3 for each row set @test_before = 27,
|
||||
new.f142 = @test_before,
|
||||
new.f122 = 'Before Update Trigger';
|
||||
Create trigger trg1_3 AFTER UPDATE
|
||||
on tb3 for each row set @test_after = '15';
|
||||
Create trigger trg1_5 BEFORE DELETE on tb3 for each row
|
||||
select count(*) into @test_before from tb3 as tr_tb3
|
||||
where f121 = 'Test 3.5.1.1';
|
||||
Create trigger trg1_6 AFTER DELETE on tb3 for each row
|
||||
select count(*) into @test_after from tb3 as tr_tb3
|
||||
where f121 = 'Test 3.5.1.1';
|
||||
set @test_before = 1;
|
||||
set @test_after = 5;
|
||||
select @test_before, @test_after;
|
||||
@test_before @test_after
|
||||
1 5
|
||||
Insert into tb3 (f121, f122, f142, f144, f134)
|
||||
values ('Test 3.5.1.1', 'First Row', @test_before, @test_after, 1);
|
||||
select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1';
|
||||
f121 f122 f142 f144 f134
|
||||
Test 3.5.1.1 First Row 2 0000000005 1
|
||||
select @test_before, @test_after;
|
||||
@test_before @test_after
|
||||
2 6
|
||||
set @test_before = 18;
|
||||
set @test_after = 8;
|
||||
select @test_before, @test_after;
|
||||
@test_before @test_after
|
||||
18 8
|
||||
Update tb3 set tb3.f122 = 'Update',
|
||||
tb3.f142 = @test_before,
|
||||
tb3.f144 = @test_after
|
||||
where tb3.f121 = 'Test 3.5.1.1';
|
||||
select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1';
|
||||
f121 f122 f142 f144 f134
|
||||
Test 3.5.1.1 Before Update Trigger 27 0000000008 1
|
||||
select @test_before, @test_after;
|
||||
@test_before @test_after
|
||||
27 15
|
||||
Insert into tb3 (f121, f122, f142, f144, f134)
|
||||
values ('Test 3.5.1.1', 'Second Row', 5, 6, 2);
|
||||
set @test_before = 0;
|
||||
set @test_after = 0;
|
||||
select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1';
|
||||
f121 f122 f142 f144 f134
|
||||
Test 3.5.1.1 Before Update Trigger 27 0000000008 1
|
||||
Test 3.5.1.1 Second Row 2 0000000006 2
|
||||
select @test_before, @test_after;
|
||||
@test_before @test_after
|
||||
0 0
|
||||
Delete from tb3 where f121 = 'Test 3.5.1.1' and f134 = 2;
|
||||
select f121, f122, f142, f144, f134 from tb3 where f121 = 'Test 3.5.1.1';
|
||||
f121 f122 f142 f144 f134
|
||||
Test 3.5.1.1 Before Update Trigger 27 0000000008 1
|
||||
select @test_before, @test_after;
|
||||
@test_before @test_after
|
||||
2 1
|
||||
drop trigger trg1_1;
|
||||
drop trigger trg1_2;
|
||||
drop trigger trg1_3;
|
||||
drop trigger trg1_4;
|
||||
drop trigger trg1_5;
|
||||
drop trigger trg1_6;
|
||||
delete from tb3 where f121='Test 3.5.1.1';
|
||||
|
||||
Testcase: 3.5.1.2:
|
||||
------------------
|
||||
Create trigger trg_1 after insert
|
||||
on tb3 for each statement set @x= 1;
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'statement set @x= 1' at line 2
|
||||
drop trigger trg_1;
|
||||
|
||||
Testcase 3.5.1.3:
|
||||
-----------------
|
||||
CREATE TRIGGER trg3_1 on tb3 BEFORE INSERT for each row set new.f120 = 't';
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'on tb3 BEFORE INSERT for each row set new.f120 = 't'' at line 1
|
||||
CREATE trg3_2 TRIGGER AFTER INSERT on tb3 for each row set new.f120 = 's';
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'trg3_2 TRIGGER AFTER INSERT on tb3 for each row set new.f120 = 's'' at line 1
|
||||
CREATE TRIGGER trg3_3 Before DELETE on tb3 set @ret1 = 'test' for each row;
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'set @ret1 = 'test' for each row' at line 1
|
||||
CREATE TRIGGER trg3_4 DELETE AFTER on tb3 set @ret1 = 'test' for each row;
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELETE AFTER on tb3 set @ret1 = 'test' for each row' at line 1
|
||||
CREATE for each row TRIGGER trg3_5 AFTER UPDATE on tb3 set @ret1 = 'test';
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'for each row TRIGGER trg3_5 AFTER UPDATE on tb3 set @ret1 = 'test'' at line 1
|
||||
drop trigger trg3_1;
|
||||
drop trigger trg3_2;
|
||||
drop trigger trg3_3;
|
||||
drop trigger trg3_4;
|
||||
drop trigger trg3_5;
|
||||
|
||||
Testcase: 3.5.1.5:
|
||||
------------------
|
||||
CREATE TRIGGER trg4_1 AFTER on tb3 for each row set new.f120 = 'e';
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'on tb3 for each row set new.f120 = 'e'' at line 1
|
||||
CREATE TRIGGER trg4_2 INSERT on tb3 for each set row new.f120 = 'f';
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INSERT on tb3 for each set row new.f120 = 'f'' at line 1
|
||||
CREATE TRIGGER trg4_3 BEFORE INSERT tb3 for each row set new.f120 = 'g';
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'tb3 for each row set new.f120 = 'g'' at line 1
|
||||
CREATE TRIGGER trg4_4 AFTER UPDATE on tb3 for each set new.f120 = 'g';
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'set new.f120 = 'g'' at line 1
|
||||
CREATE trg4_5 AFTER DELETE on tb3 for each set new.f120 = 'g';
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'trg4_5 AFTER DELETE on tb3 for each set new.f120 = 'g'' at line 1
|
||||
CREATE TRIGGER trg4_6 BEFORE DELETE for each row set new.f120 = 'g';
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'for each row set new.f120 = 'g'' at line 1
|
||||
drop trigger trg4_1;
|
||||
drop trigger trg4_2;
|
||||
drop trigger trg4_3;
|
||||
drop trigger trg4_4;
|
||||
drop trigger trg4_5;
|
||||
drop trigger trg4_6;
|
||||
|
||||
Testcase 3.5.1.6: - Need to fix
|
||||
-------------------------------
|
||||
|
||||
Testcase 3.5.1.7: - need to fix
|
||||
-------------------------------
|
||||
drop table if exists t1;
|
||||
Warnings:
|
||||
Note 1051 Unknown table 't1'
|
||||
create table t1 (f1 int, f2 char(25),f3 int) engine = <engine_to_be_used>;
|
||||
CREATE TRIGGER trg5_1 BEFORE INSERT on test.t1
|
||||
for each row set new.f3 = '14';
|
||||
CREATE TRIGGER trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ
|
||||
BEFORE UPDATE on test.t1 for each row set new.f3 = '42';
|
||||
ERROR 42000: Identifier name 'trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ' is too long
|
||||
CREATE TRIGGER trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWX
|
||||
BEFORE UPDATE on test.t1 for each row set new.f3 = '42';
|
||||
insert into t1 (f2) values ('insert 3.5.1.7');
|
||||
select * from t1;
|
||||
f1 f2 f3
|
||||
NULL insert 3.5.1.7 14
|
||||
update t1 set f2='update 3.5.1.7';
|
||||
select * from t1;
|
||||
f1 f2 f3
|
||||
NULL update 3.5.1.7 42
|
||||
select trigger_name from information_schema.triggers order by trigger_name;
|
||||
trigger_name
|
||||
gs_insert
|
||||
trg5_1
|
||||
trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWX
|
||||
ts_insert
|
||||
drop trigger trg5_1;
|
||||
drop trigger trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ;
|
||||
ERROR 42000: Identifier name 'trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ' is too long
|
||||
drop trigger trg_abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWX;
|
||||
drop table t1;
|
||||
|
||||
Testcase 3.5.1.8:
|
||||
-----------------
|
||||
CREATE TRIGGER trg12* before insert on tb3 for each row set new.f120 = 't';
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '* before insert on tb3 for each row set new.f120 = 't'' at line 1
|
||||
CREATE TRIGGER trigger before insert on tb3 for each row set new.f120 = 't';
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'trigger before insert on tb3 for each row set new.f120 = 't'' at line 1
|
||||
CREATE TRIGGER 100 before insert on tb3 for each row set new.f120 = 't';
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '100 before insert on tb3 for each row set new.f120 = 't'' at line 1
|
||||
CREATE TRIGGER @@view before insert on tb3 for each row set new.f120 = 't';
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@@view before insert on tb3 for each row set new.f120 = 't'' at line 1
|
||||
CREATE TRIGGER @name before insert on tb3 for each row set new.f120 = 't';
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '@name before insert on tb3 for each row set new.f120 = 't'' at line 1
|
||||
CREATE TRIGGER tb3.trg6_1 BEFORE INSERT on test.tb3
|
||||
for each row set new.f120 ='X';
|
||||
ERROR HY000: Trigger in wrong schema
|
||||
drop database if exists trig_db;
|
||||
create database trig_db;
|
||||
use trig_db;
|
||||
create table t1 (f1 integer) engine = <engine_to_be_used>;
|
||||
use test;
|
||||
CREATE TRIGGER trig_db.trg6_2 AFTER INSERT on tb3
|
||||
for each row set @ret_trg6_2 = 5;
|
||||
ERROR 42S02: Table 'trig_db.tb3' doesn't exist
|
||||
use trig_db;
|
||||
CREATE TRIGGER trg6_3 AFTER INSERT on test.tb3
|
||||
for each row set @ret_trg6_3 = 18;
|
||||
ERROR HY000: Trigger in wrong schema
|
||||
use test;
|
||||
drop database trig_db;
|
||||
drop trigger trg6_1;
|
||||
drop trigger trg6_3;
|
||||
|
||||
Testcase 3.5.1.9:(cannot be inplemented at this point)
|
||||
------------------------------------------------------
|
||||
|
||||
Testcase 3.5.1.10:
|
||||
------------------
|
||||
CREATE TRIGGER trg7_1 BEFORE UPDATE on tb3 for each row set new.f120 ='X';
|
||||
CREATE TRIGGER trg7_1 AFTER INSERT on tb3 for each row set @x ='Y';
|
||||
ERROR HY000: Trigger already exists
|
||||
drop trigger trg7_1;
|
||||
|
||||
Testcase 3.5.1.?:
|
||||
-----------------
|
||||
drop table if exists t1;
|
||||
drop table if exists t2;
|
||||
create table t1 (f1 char(50), f2 integer) engine = <engine_to_be_used>;
|
||||
create table t2 (f1 char(50), f2 integer) engine = <engine_to_be_used>;
|
||||
create trigger trig before insert on t1
|
||||
for each row set new.f1 ='trig t1';
|
||||
create trigger trig before update on t2
|
||||
for each row set new.f1 ='trig t2';
|
||||
ERROR HY000: Trigger already exists
|
||||
insert into t1 value ('insert to t1',1);
|
||||
select * from t1;
|
||||
f1 f2
|
||||
trig t1 1
|
||||
update t1 set f1='update to t1';
|
||||
select * from t1;
|
||||
f1 f2
|
||||
update to t1 1
|
||||
insert into t2 value ('insert to t2',2);
|
||||
update t2 set f1='update to t1';
|
||||
select * from t2;
|
||||
f1 f2
|
||||
update to t1 2
|
||||
drop table t1;
|
||||
drop table t2;
|
||||
drop trigger trig;
|
||||
|
||||
Testcase 3.5.1.11:
|
||||
------------------
|
||||
drop database if exists trig_db1;
|
||||
drop database if exists trig_db2;
|
||||
drop database if exists trig_db3;
|
||||
create database trig_db1;
|
||||
create database trig_db2;
|
||||
create database trig_db3;
|
||||
use trig_db1;
|
||||
create table t1 (f1 char(50), f2 integer) engine = <engine_to_be_used>;
|
||||
create trigger trig before insert on t1
|
||||
for each row set new.f1 ='trig1', @test_var1='trig1';
|
||||
use trig_db2;
|
||||
create table t2 (f1 char(50), f2 integer) engine = <engine_to_be_used>;
|
||||
create trigger trig before insert on t2
|
||||
for each row set new.f1 ='trig2', @test_var2='trig2';
|
||||
use trig_db3;
|
||||
create table t1 (f1 char(50), f2 integer) engine = <engine_to_be_used>;
|
||||
create trigger trig before insert on t1
|
||||
for each row set new.f1 ='trig3', @test_var3='trig3';
|
||||
set @test_var1= '', @test_var2= '', @test_var3= '';
|
||||
use trig_db1;
|
||||
insert into t1 (f1,f2) values ('insert to db1 t1',1);
|
||||
insert into trig_db1.t1 (f1,f2) values ('insert to db1 t1 from db1',2);
|
||||
insert into trig_db2.t2 (f1,f2) values ('insert to db2 t2 from db1',3);
|
||||
insert into trig_db3.t1 (f1,f2) values ('insert to db3 t1 from db1',4);
|
||||
select @test_var1, @test_var2, @test_var3;
|
||||
@test_var1 @test_var2 @test_var3
|
||||
trig1 trig2 trig3
|
||||
select * from t1 order by f2;
|
||||
f1 f2
|
||||
trig1 1
|
||||
trig1 2
|
||||
select * from trig_db2.t2;
|
||||
f1 f2
|
||||
trig2 3
|
||||
select * from trig_db3.t1;
|
||||
f1 f2
|
||||
trig3 4
|
||||
select * from t1 order by f2;
|
||||
f1 f2
|
||||
trig1 1
|
||||
trig1 2
|
||||
use test;
|
||||
drop database trig_db1;
|
||||
drop database trig_db2;
|
||||
drop database trig_db3;
|
||||
|
||||
Testcase 3.5.2.1/2/3:
|
||||
---------------------
|
||||
drop database if exists trig_db1;
|
||||
drop database if exists trig_db2;
|
||||
create database trig_db1;
|
||||
create database trig_db2;
|
||||
use trig_db1;
|
||||
create table t1 (f1 char(50), f2 integer) engine = <engine_to_be_used>;
|
||||
create table trig_db2.t1 (f1 char(50), f2 integer) engine = <engine_to_be_used>;
|
||||
create trigger trig1_b before insert on t1
|
||||
for each row set @test_var1='trig1_b';
|
||||
create trigger trig_db1.trig1_a after insert on t1
|
||||
for each row set @test_var2='trig1_a';
|
||||
create trigger trig_db2.trig2 before insert on trig_db2.t1
|
||||
for each row set @test_var3='trig2';
|
||||
select trigger_schema, trigger_name, event_object_table
|
||||
from information_schema.triggers
|
||||
where trigger_schema like 'trig_db%'
|
||||
order by trigger_name;
|
||||
trigger_schema trigger_name event_object_table
|
||||
trig_db1 trig1_a t1
|
||||
trig_db1 trig1_b t1
|
||||
trig_db2 trig2 t1
|
||||
set @test_var1= '', @test_var2= '', @test_var3= '';
|
||||
insert into t1 (f1,f2) values ('insert to db1 t1 from db1',352);
|
||||
insert into trig_db2.t1 (f1,f2) values ('insert to db2 t1 from db1',352);
|
||||
select @test_var1, @test_var2, @test_var3;
|
||||
@test_var1 @test_var2 @test_var3
|
||||
trig1_b trig1_a trig2
|
||||
drop database trig_db1;
|
||||
drop database trig_db2;
|
||||
DROP TABLE test.tb3;
|
||||
675
build/lib/mysql/mysql-test/suite/funcs_1/r/innodb_trig_03.result
Normal file
675
build/lib/mysql/mysql-test/suite/funcs_1/r/innodb_trig_03.result
Normal file
@@ -0,0 +1,675 @@
|
||||
USE test;
|
||||
drop table if exists tb3;
|
||||
create table tb3 (
|
||||
f118 char not null DEFAULT 'a',
|
||||
f119 char binary not null DEFAULT b'101',
|
||||
f120 char ascii not null DEFAULT b'101',
|
||||
f121 char(50),
|
||||
f122 char(50),
|
||||
f129 binary not null DEFAULT b'101',
|
||||
f130 tinyint not null DEFAULT 99,
|
||||
f131 tinyint unsigned not null DEFAULT 99,
|
||||
f132 tinyint zerofill not null DEFAULT 99,
|
||||
f133 tinyint unsigned zerofill not null DEFAULT 99,
|
||||
f134 smallint not null DEFAULT 999,
|
||||
f135 smallint unsigned not null DEFAULT 999,
|
||||
f136 smallint zerofill not null DEFAULT 999,
|
||||
f137 smallint unsigned zerofill not null DEFAULT 999,
|
||||
f138 mediumint not null DEFAULT 9999,
|
||||
f139 mediumint unsigned not null DEFAULT 9999,
|
||||
f140 mediumint zerofill not null DEFAULT 9999,
|
||||
f141 mediumint unsigned zerofill not null DEFAULT 9999,
|
||||
f142 int not null DEFAULT 99999,
|
||||
f143 int unsigned not null DEFAULT 99999,
|
||||
f144 int zerofill not null DEFAULT 99999,
|
||||
f145 int unsigned zerofill not null DEFAULT 99999,
|
||||
f146 bigint not null DEFAULT 999999,
|
||||
f147 bigint unsigned not null DEFAULT 999999,
|
||||
f148 bigint zerofill not null DEFAULT 999999,
|
||||
f149 bigint unsigned zerofill not null DEFAULT 999999,
|
||||
f150 decimal not null DEFAULT 999.999,
|
||||
f151 decimal unsigned not null DEFAULT 999.17,
|
||||
f152 decimal zerofill not null DEFAULT 999.999,
|
||||
f153 decimal unsigned zerofill,
|
||||
f154 decimal (0),
|
||||
f155 decimal (64),
|
||||
f156 decimal (0) unsigned,
|
||||
f157 decimal (64) unsigned,
|
||||
f158 decimal (0) zerofill,
|
||||
f159 decimal (64) zerofill,
|
||||
f160 decimal (0) unsigned zerofill,
|
||||
f161 decimal (64) unsigned zerofill,
|
||||
f162 decimal (0,0),
|
||||
f163 decimal (63,30),
|
||||
f164 decimal (0,0) unsigned,
|
||||
f165 decimal (63,30) unsigned,
|
||||
f166 decimal (0,0) zerofill,
|
||||
f167 decimal (63,30) zerofill,
|
||||
f168 decimal (0,0) unsigned zerofill,
|
||||
f169 decimal (63,30) unsigned zerofill,
|
||||
f170 numeric,
|
||||
f171 numeric unsigned,
|
||||
f172 numeric zerofill,
|
||||
f173 numeric unsigned zerofill,
|
||||
f174 numeric (0),
|
||||
f175 numeric (64)
|
||||
) engine = <engine_to_be_used>;
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'f150' at row 1
|
||||
Note 1265 Data truncated for column 'f151' at row 1
|
||||
Note 1265 Data truncated for column 'f152' at row 1
|
||||
|
||||
Testcase 3.5.3:
|
||||
---------------
|
||||
drop database if exists priv_db;
|
||||
create database priv_db;
|
||||
use priv_db;
|
||||
create table t1 (f1 char(20)) engine= <engine_to_be_used>;
|
||||
create User test_noprivs@localhost;
|
||||
set password for test_noprivs@localhost = password('PWD');
|
||||
create User test_yesprivs@localhost;
|
||||
set password for test_yesprivs@localhost = password('PWD');
|
||||
|
||||
Testcase 3.5.3.2/6:
|
||||
-------------------
|
||||
revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
|
||||
grant ALL on *.* to test_noprivs@localhost;
|
||||
revoke TRIGGER on *.* from test_noprivs@localhost;
|
||||
show grants for test_noprivs@localhost;
|
||||
Grants for test_noprivs@localhost
|
||||
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
|
||||
revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
|
||||
grant TRIGGER on *.* to test_yesprivs@localhost;
|
||||
grant SELECT on priv_db.t1 to test_yesprivs@localhost;
|
||||
show grants for test_yesprivs@localhost;
|
||||
Grants for test_yesprivs@localhost
|
||||
GRANT TRIGGER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
|
||||
GRANT SELECT ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
|
||||
|
||||
Testcase 3.5.3.2:
|
||||
-----------------
|
||||
select current_user;
|
||||
current_user
|
||||
test_noprivs@localhost
|
||||
use priv_db;
|
||||
create trigger trg1_1 before INSERT on t1 for each row
|
||||
set new.f1 = 'trig 3.5.3.2_1-no';
|
||||
ERROR 42000: TRIGGER command denied to user 'test_noprivs'@'localhost' for table 't1'
|
||||
use priv_db;
|
||||
insert into t1 (f1) values ('insert 3.5.3.2-no');
|
||||
select f1 from t1 order by f1;
|
||||
f1
|
||||
insert 3.5.3.2-no
|
||||
select current_user;
|
||||
current_user
|
||||
test_yesprivs@localhost
|
||||
use priv_db;
|
||||
create trigger trg1_2 before INSERT on t1 for each row
|
||||
set new.f1 = 'trig 3.5.3.2_2-yes';
|
||||
select current_user;
|
||||
current_user
|
||||
root@localhost
|
||||
use priv_db;
|
||||
insert into t1 (f1) values ('insert 3.5.3.2-yes');
|
||||
ERROR 42000: UPDATE command denied to user 'test_yesprivs'@'localhost' for column 'f1' in table 't1'
|
||||
select f1 from t1 order by f1;
|
||||
f1
|
||||
insert 3.5.3.2-no
|
||||
grant UPDATE on priv_db.t1 to test_yesprivs@localhost;
|
||||
insert into t1 (f1) values ('insert 3.5.3.2-yes');
|
||||
select f1 from t1 order by f1;
|
||||
f1
|
||||
insert 3.5.3.2-no
|
||||
trig 3.5.3.2_2-yes
|
||||
|
||||
Testcase 3.5.3.6:
|
||||
-----------------
|
||||
use priv_db;
|
||||
drop trigger trg1_2;
|
||||
ERROR 42000: TRIGGER command denied to user 'test_noprivs'@'localhost' for table 't1'
|
||||
use priv_db;
|
||||
insert into t1 (f1) values ('insert 3.5.3.6-yes');
|
||||
select f1 from t1 order by f1;
|
||||
f1
|
||||
insert 3.5.3.2-no
|
||||
trig 3.5.3.2_2-yes
|
||||
trig 3.5.3.2_2-yes
|
||||
use priv_db;
|
||||
drop trigger trg1_2;
|
||||
use priv_db;
|
||||
insert into t1 (f1) values ('insert 3.5.3.6-no');
|
||||
select f1 from t1 order by f1;
|
||||
f1
|
||||
insert 3.5.3.2-no
|
||||
insert 3.5.3.6-no
|
||||
trig 3.5.3.2_2-yes
|
||||
trig 3.5.3.2_2-yes
|
||||
drop trigger trg1_2;
|
||||
|
||||
Testcase 3.5.3.7a:
|
||||
------------------
|
||||
revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
|
||||
grant ALL on *.* to test_noprivs@localhost;
|
||||
revoke UPDATE on *.* from test_noprivs@localhost;
|
||||
show grants for test_noprivs@localhost;
|
||||
Grants for test_noprivs@localhost
|
||||
GRANT SELECT, INSERT, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
|
||||
revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
|
||||
grant TRIGGER, UPDATE on *.* to test_yesprivs@localhost;
|
||||
show grants for test_yesprivs@localhost;
|
||||
Grants for test_yesprivs@localhost
|
||||
GRANT UPDATE, TRIGGER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
|
||||
select current_user;
|
||||
current_user
|
||||
test_noprivs@localhost
|
||||
use priv_db;
|
||||
show grants;
|
||||
Grants for test_noprivs@localhost
|
||||
GRANT SELECT, INSERT, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
|
||||
select f1 from t1 order by f1;
|
||||
f1
|
||||
insert 3.5.3.2-no
|
||||
insert 3.5.3.6-no
|
||||
trig 3.5.3.2_2-yes
|
||||
trig 3.5.3.2_2-yes
|
||||
create trigger trg4a_1 before INSERT on t1 for each row
|
||||
set new.f1 = 'trig 3.5.3.7-1a';
|
||||
insert into t1 (f1) values ('insert 3.5.3.7-1a');
|
||||
ERROR 42000: UPDATE command denied to user 'test_noprivs'@'localhost' for column 'f1' in table 't1'
|
||||
select f1 from t1 order by f1;
|
||||
f1
|
||||
insert 3.5.3.2-no
|
||||
insert 3.5.3.6-no
|
||||
trig 3.5.3.2_2-yes
|
||||
trig 3.5.3.2_2-yes
|
||||
drop trigger trg4a_1;
|
||||
use priv_db;
|
||||
select current_user;
|
||||
current_user
|
||||
test_yesprivs@localhost
|
||||
show grants;
|
||||
Grants for test_yesprivs@localhost
|
||||
GRANT UPDATE, TRIGGER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
|
||||
create trigger trg4a_2 before INSERT on t1 for each row
|
||||
set new.f1 = 'trig 3.5.3.7-2a';
|
||||
insert into t1 (f1) values ('insert 3.5.3.7-2b');
|
||||
select f1 from t1 order by f1;
|
||||
f1
|
||||
insert 3.5.3.2-no
|
||||
insert 3.5.3.6-no
|
||||
trig 3.5.3.2_2-yes
|
||||
trig 3.5.3.2_2-yes
|
||||
trig 3.5.3.7-2a
|
||||
drop trigger trg4a_2;
|
||||
|
||||
Testcase 3.5.3.7b:
|
||||
------------------
|
||||
revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
|
||||
grant TRIGGER on *.* to test_noprivs;
|
||||
grant ALL on priv_db.* to test_noprivs@localhost;
|
||||
revoke UPDATE on priv_db.* from test_noprivs@localhost;
|
||||
show grants for test_noprivs;
|
||||
Grants for test_noprivs@%
|
||||
GRANT TRIGGER ON *.* TO 'test_noprivs'@'%'
|
||||
revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
|
||||
grant TRIGGER on *.* to test_yesprivs@localhost;
|
||||
grant UPDATE on priv_db.* to test_yesprivs@localhost;
|
||||
show grants for test_yesprivs@localhost;
|
||||
Grants for test_yesprivs@localhost
|
||||
GRANT TRIGGER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
|
||||
GRANT UPDATE ON `priv_db`.* TO 'test_yesprivs'@'localhost'
|
||||
show grants;
|
||||
Grants for test_noprivs@localhost
|
||||
GRANT USAGE ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
|
||||
GRANT SELECT, INSERT, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER ON `priv_db`.* TO 'test_noprivs'@'localhost'
|
||||
use priv_db;
|
||||
create trigger trg4b_1 before UPDATE on t1 for each row
|
||||
set new.f1 = 'trig 3.5.3.7-1b';
|
||||
insert into t1 (f1) values ('insert 3.5.3.7-1b');
|
||||
select f1 from t1 order by f1;
|
||||
f1
|
||||
insert 3.5.3.2-no
|
||||
insert 3.5.3.6-no
|
||||
insert 3.5.3.7-1b
|
||||
trig 3.5.3.2_2-yes
|
||||
trig 3.5.3.2_2-yes
|
||||
trig 3.5.3.7-2a
|
||||
update t1 set f1 = 'update 3.5.3.7-1b' where f1 = 'insert 3.5.3.7-1b';
|
||||
ERROR 42000: UPDATE command denied to user 'test_noprivs'@'localhost' for column 'f1' in table 't1'
|
||||
select f1 from t1 order by f1;
|
||||
f1
|
||||
insert 3.5.3.2-no
|
||||
insert 3.5.3.6-no
|
||||
insert 3.5.3.7-1b
|
||||
trig 3.5.3.2_2-yes
|
||||
trig 3.5.3.2_2-yes
|
||||
trig 3.5.3.7-2a
|
||||
drop trigger trg4b_1;
|
||||
show grants;
|
||||
Grants for test_yesprivs@localhost
|
||||
GRANT TRIGGER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
|
||||
GRANT UPDATE ON `priv_db`.* TO 'test_yesprivs'@'localhost'
|
||||
use priv_db;
|
||||
create trigger trg4b_2 before UPDATE on t1 for each row
|
||||
set new.f1 = 'trig 3.5.3.7-2b';
|
||||
insert into t1 (f1) values ('insert 3.5.3.7-2b');
|
||||
select f1 from t1 order by f1;
|
||||
f1
|
||||
insert 3.5.3.2-no
|
||||
insert 3.5.3.6-no
|
||||
insert 3.5.3.7-1b
|
||||
insert 3.5.3.7-2b
|
||||
trig 3.5.3.2_2-yes
|
||||
trig 3.5.3.2_2-yes
|
||||
trig 3.5.3.7-2a
|
||||
update t1 set f1 = 'update 3.5.3.7-2b' where f1 = 'insert 3.5.3.7-2b';
|
||||
select f1 from t1 order by f1;
|
||||
f1
|
||||
insert 3.5.3.2-no
|
||||
insert 3.5.3.6-no
|
||||
insert 3.5.3.7-1b
|
||||
trig 3.5.3.2_2-yes
|
||||
trig 3.5.3.2_2-yes
|
||||
trig 3.5.3.7-2a
|
||||
trig 3.5.3.7-2b
|
||||
drop trigger trg4b_2;
|
||||
|
||||
Testcase 3.5.3.7c
|
||||
-----------------
|
||||
revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
|
||||
grant TRIGGER on *.* to test_noprivs@localhost;
|
||||
grant ALL on priv_db.t1 to test_noprivs@localhost;
|
||||
revoke UPDATE on priv_db.t1 from test_noprivs@localhost;
|
||||
show grants for test_noprivs;
|
||||
Grants for test_noprivs@%
|
||||
GRANT TRIGGER ON *.* TO 'test_noprivs'@'%'
|
||||
revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
|
||||
grant TRIGGER on *.* to test_yesprivs@localhost;
|
||||
grant UPDATE on priv_db.t1 to test_yesprivs@localhost;
|
||||
show grants for test_yesprivs@localhost;
|
||||
Grants for test_yesprivs@localhost
|
||||
GRANT TRIGGER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
|
||||
GRANT UPDATE ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
|
||||
show grants;
|
||||
Grants for test_noprivs@localhost
|
||||
GRANT TRIGGER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
|
||||
GRANT SELECT, INSERT, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE VIEW, SHOW VIEW, TRIGGER ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
|
||||
use priv_db;
|
||||
create trigger trg4c_1 before INSERT on t1 for each row
|
||||
set new.f1 = 'trig 3.5.3.7-1c';
|
||||
insert into t1 (f1) values ('insert 3.5.3.7-1c');
|
||||
ERROR 42000: UPDATE command denied to user 'test_noprivs'@'localhost' for column 'f1' in table 't1'
|
||||
select f1 from t1 order by f1;
|
||||
f1
|
||||
insert 3.5.3.2-no
|
||||
insert 3.5.3.6-no
|
||||
insert 3.5.3.7-1b
|
||||
trig 3.5.3.2_2-yes
|
||||
trig 3.5.3.2_2-yes
|
||||
trig 3.5.3.7-2a
|
||||
trig 3.5.3.7-2b
|
||||
drop trigger trg4c_1;
|
||||
show grants;
|
||||
Grants for test_yesprivs@localhost
|
||||
GRANT TRIGGER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
|
||||
GRANT UPDATE ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
|
||||
use priv_db;
|
||||
create trigger trg4c_2 before INSERT on t1 for each row
|
||||
set new.f1 = 'trig 3.5.3.7-2c';
|
||||
insert into t1 (f1) values ('insert 3.5.3.7-2c');
|
||||
select f1 from t1 order by f1;
|
||||
f1
|
||||
insert 3.5.3.2-no
|
||||
insert 3.5.3.6-no
|
||||
insert 3.5.3.7-1b
|
||||
trig 3.5.3.2_2-yes
|
||||
trig 3.5.3.2_2-yes
|
||||
trig 3.5.3.7-2a
|
||||
trig 3.5.3.7-2b
|
||||
trig 3.5.3.7-2c
|
||||
drop trigger trg4c_2;
|
||||
|
||||
Testcase 3.5.3.7d:
|
||||
------------------
|
||||
revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
|
||||
grant TRIGGER on *.* to test_noprivs@localhost;
|
||||
grant SELECT (f1), INSERT (f1) on priv_db.t1 to test_noprivs@localhost;
|
||||
show grants for test_noprivs;
|
||||
Grants for test_noprivs@%
|
||||
GRANT TRIGGER ON *.* TO 'test_noprivs'@'%'
|
||||
revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
|
||||
grant TRIGGER on *.* to test_yesprivs@localhost;
|
||||
grant UPDATE (f1) on priv_db.t1 to test_yesprivs@localhost;
|
||||
show grants for test_noprivs;
|
||||
Grants for test_noprivs@%
|
||||
GRANT TRIGGER ON *.* TO 'test_noprivs'@'%'
|
||||
show grants;
|
||||
Grants for test_noprivs@localhost
|
||||
GRANT TRIGGER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
|
||||
GRANT SELECT (f1), INSERT (f1) ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
|
||||
use priv_db;
|
||||
create trigger trg4d_1 before INSERT on t1 for each row
|
||||
set new.f1 = 'trig 3.5.3.7-1d';
|
||||
insert into t1 (f1) values ('insert 3.5.3.7-1d');
|
||||
ERROR 42000: UPDATE command denied to user 'test_noprivs'@'localhost' for column 'f1' in table 't1'
|
||||
select f1 from t1 order by f1;
|
||||
f1
|
||||
insert 3.5.3.2-no
|
||||
insert 3.5.3.6-no
|
||||
insert 3.5.3.7-1b
|
||||
trig 3.5.3.2_2-yes
|
||||
trig 3.5.3.2_2-yes
|
||||
trig 3.5.3.7-2a
|
||||
trig 3.5.3.7-2b
|
||||
trig 3.5.3.7-2c
|
||||
drop trigger trg4d_1;
|
||||
show grants;
|
||||
Grants for test_yesprivs@localhost
|
||||
GRANT TRIGGER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
|
||||
GRANT UPDATE (f1) ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
|
||||
use priv_db;
|
||||
create trigger trg4d_2 before INSERT on t1 for each row
|
||||
set new.f1 = 'trig 3.5.3.7-2d';
|
||||
insert into t1 (f1) values ('insert 3.5.3.7-2d');
|
||||
select f1 from t1 order by f1;
|
||||
f1
|
||||
insert 3.5.3.2-no
|
||||
insert 3.5.3.6-no
|
||||
insert 3.5.3.7-1b
|
||||
trig 3.5.3.2_2-yes
|
||||
trig 3.5.3.2_2-yes
|
||||
trig 3.5.3.7-2a
|
||||
trig 3.5.3.7-2b
|
||||
trig 3.5.3.7-2c
|
||||
trig 3.5.3.7-2d
|
||||
drop trigger trg4d_2;
|
||||
|
||||
Testcase 3.5.3.8a:
|
||||
------------------
|
||||
revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
|
||||
grant ALL on *.* to test_noprivs@localhost;
|
||||
revoke SELECT on *.* from test_noprivs@localhost;
|
||||
show grants for test_noprivs@localhost;
|
||||
Grants for test_noprivs@localhost
|
||||
GRANT INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
|
||||
revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
|
||||
grant TRIGGER, SELECT on *.* to test_yesprivs@localhost;
|
||||
show grants for test_yesprivs@localhost;
|
||||
Grants for test_yesprivs@localhost
|
||||
GRANT SELECT, TRIGGER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
|
||||
select current_user;
|
||||
current_user
|
||||
test_noprivs@localhost
|
||||
use priv_db;
|
||||
show grants;
|
||||
Grants for test_noprivs@localhost
|
||||
GRANT INSERT, UPDATE, DELETE, CREATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
|
||||
create trigger trg5a_1 before INSERT on t1 for each row
|
||||
set @test_var = new.f1;
|
||||
set @test_var = 'before trig 3.5.3.8-1a';
|
||||
select @test_var;
|
||||
@test_var
|
||||
before trig 3.5.3.8-1a
|
||||
insert into t1 (f1) values ('insert 3.5.3.8-1a');
|
||||
ERROR 42000: SELECT command denied to user 'test_noprivs'@'localhost' for column 'f1' in table 't1'
|
||||
select @test_var;
|
||||
@test_var
|
||||
before trig 3.5.3.8-1a
|
||||
drop trigger trg5a_1;
|
||||
use priv_db;
|
||||
select current_user;
|
||||
current_user
|
||||
test_yesprivs@localhost
|
||||
show grants;
|
||||
Grants for test_yesprivs@localhost
|
||||
GRANT SELECT, TRIGGER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
|
||||
create trigger trg5a_2 before INSERT on t1 for each row
|
||||
set @test_var= new.f1;
|
||||
set @test_var= 'before trig 3.5.3.8-2a';
|
||||
select @test_var;
|
||||
@test_var
|
||||
before trig 3.5.3.8-2a
|
||||
insert into t1 (f1) values ('insert 3.5.3.8-2a');
|
||||
select @test_var;
|
||||
@test_var
|
||||
insert 3.5.3.8-2a
|
||||
drop trigger trg5a_2;
|
||||
|
||||
Testcase: 3.5.3.8b
|
||||
------------------
|
||||
revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
|
||||
grant TRIGGER on *.* to test_noprivs@localhost;
|
||||
grant ALL on priv_db.* to test_noprivs@localhost;
|
||||
revoke SELECT on priv_db.* from test_noprivs@localhost;
|
||||
show grants for test_noprivs@localhost;
|
||||
Grants for test_noprivs@localhost
|
||||
GRANT TRIGGER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
|
||||
GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER ON `priv_db`.* TO 'test_noprivs'@'localhost'
|
||||
revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
|
||||
grant TRIGGER on *.* to test_yesprivs@localhost;
|
||||
grant SELECT on priv_db.* to test_yesprivs@localhost;
|
||||
show grants for test_yesprivs@localhost;
|
||||
Grants for test_yesprivs@localhost
|
||||
GRANT TRIGGER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
|
||||
GRANT SELECT ON `priv_db`.* TO 'test_yesprivs'@'localhost'
|
||||
show grants;
|
||||
Grants for test_noprivs@localhost
|
||||
GRANT TRIGGER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
|
||||
GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER ON `priv_db`.* TO 'test_noprivs'@'localhost'
|
||||
use priv_db;
|
||||
create trigger trg5b_1 before UPDATE on t1 for each row
|
||||
set @test_var= new.f1;
|
||||
set @test_var= 'before trig 3.5.3.8-1b';
|
||||
insert into t1 (f1) values ('insert 3.5.3.8-1b');
|
||||
select @test_var;
|
||||
@test_var
|
||||
before trig 3.5.3.8-1b
|
||||
update t1 set f1= 'update 3.5.3.8-1b' where f1 = 'insert 3.5.3.8-1b';
|
||||
ERROR 42000: SELECT command denied to user 'test_noprivs'@'localhost' for column 'f1' in table 't1'
|
||||
select @test_var;
|
||||
@test_var
|
||||
before trig 3.5.3.8-1b
|
||||
drop trigger trg5b_1;
|
||||
show grants;
|
||||
Grants for test_yesprivs@localhost
|
||||
GRANT TRIGGER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
|
||||
GRANT SELECT ON `priv_db`.* TO 'test_yesprivs'@'localhost'
|
||||
use priv_db;
|
||||
create trigger trg5b_2 before UPDATE on t1 for each row
|
||||
set @test_var= new.f1;
|
||||
set @test_var= 'before trig 3.5.3.8-2b';
|
||||
insert into t1 (f1) values ('insert 3.5.3.8-2b');
|
||||
select @test_var;
|
||||
@test_var
|
||||
before trig 3.5.3.8-2b
|
||||
update t1 set f1= 'update 3.5.3.8-2b' where f1 = 'insert 3.5.3.8-2b';
|
||||
select @test_var;
|
||||
@test_var
|
||||
update 3.5.3.8-2b
|
||||
drop trigger trg5b_2;
|
||||
|
||||
Testcase 3.5.3.8c:
|
||||
------------------
|
||||
revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
|
||||
grant TRIGGER on *.* to test_noprivs@localhost;
|
||||
grant ALL on priv_db.t1 to test_noprivs@localhost;
|
||||
revoke SELECT on priv_db.t1 from test_noprivs@localhost;
|
||||
show grants for test_noprivs@localhost;
|
||||
Grants for test_noprivs@localhost
|
||||
GRANT TRIGGER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
|
||||
GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE VIEW, SHOW VIEW, TRIGGER ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
|
||||
revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
|
||||
grant TRIGGER on *.* to test_yesprivs@localhost;
|
||||
grant SELECT on priv_db.t1 to test_yesprivs@localhost;
|
||||
show grants for test_yesprivs@localhost;
|
||||
Grants for test_yesprivs@localhost
|
||||
GRANT TRIGGER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
|
||||
GRANT SELECT ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
|
||||
show grants;
|
||||
Grants for test_noprivs@localhost
|
||||
GRANT TRIGGER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
|
||||
GRANT INSERT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE VIEW, SHOW VIEW, TRIGGER ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
|
||||
use priv_db;
|
||||
create trigger trg5c_1 before INSERT on t1 for each row
|
||||
set @test_var= new.f1;
|
||||
set @test_var= 'before trig 3.5.3.8-1c';
|
||||
insert into t1 (f1) values ('insert 3.5.3.8-1c');
|
||||
ERROR 42000: SELECT command denied to user 'test_noprivs'@'localhost' for column 'f1' in table 't1'
|
||||
select @test_var;
|
||||
@test_var
|
||||
before trig 3.5.3.8-1c
|
||||
drop trigger trg5c_1;
|
||||
show grants;
|
||||
Grants for test_yesprivs@localhost
|
||||
GRANT TRIGGER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
|
||||
GRANT SELECT ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
|
||||
use priv_db;
|
||||
create trigger trg5c_2 before INSERT on t1 for each row
|
||||
set @test_var= new.f1;
|
||||
set @test_var='before trig 3.5.3.8-2c';
|
||||
insert into t1 (f1) values ('insert 3.5.3.8-2c');
|
||||
select @test_var;
|
||||
@test_var
|
||||
insert 3.5.3.8-2c
|
||||
drop trigger trg5c_2;
|
||||
|
||||
Testcase: 3.5.3.8d:
|
||||
-------------------
|
||||
revoke ALL PRIVILEGES, GRANT OPTION FROM test_noprivs@localhost;
|
||||
grant TRIGGER on *.* to test_noprivs@localhost;
|
||||
grant UPDATE (f1), INSERT (f1) on priv_db.t1 to test_noprivs@localhost;
|
||||
show grants for test_noprivs@localhost;
|
||||
Grants for test_noprivs@localhost
|
||||
GRANT TRIGGER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
|
||||
GRANT INSERT (f1), UPDATE (f1) ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
|
||||
revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
|
||||
grant TRIGGER on *.* to test_yesprivs@localhost;
|
||||
grant SELECT (f1) on priv_db.t1 to test_yesprivs@localhost;
|
||||
show grants for test_noprivs@localhost;
|
||||
Grants for test_noprivs@localhost
|
||||
GRANT TRIGGER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
|
||||
GRANT INSERT (f1), UPDATE (f1) ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
|
||||
show grants;
|
||||
Grants for test_noprivs@localhost
|
||||
GRANT TRIGGER ON *.* TO 'test_noprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
|
||||
GRANT INSERT (f1), UPDATE (f1) ON `priv_db`.`t1` TO 'test_noprivs'@'localhost'
|
||||
use priv_db;
|
||||
create trigger trg5d_1 before INSERT on t1 for each row
|
||||
set @test_var= new.f1;
|
||||
set @test_var='before trig 3.5.3.8-1d';
|
||||
insert into t1 (f1) values ('insert 3.5.3.8-1d');
|
||||
ERROR 42000: SELECT command denied to user 'test_noprivs'@'localhost' for column 'f1' in table 't1'
|
||||
select @test_var;
|
||||
@test_var
|
||||
before trig 3.5.3.8-1d
|
||||
drop trigger trg5d_1;
|
||||
show grants;
|
||||
Grants for test_yesprivs@localhost
|
||||
GRANT TRIGGER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
|
||||
GRANT SELECT (f1) ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
|
||||
use priv_db;
|
||||
create trigger trg5d_2 before INSERT on t1 for each row
|
||||
set @test_var= new.f1;
|
||||
set @test_var='before trig 3.5.3.8-2d';
|
||||
insert into t1 (f1) values ('insert 3.5.3.8-2d');
|
||||
select @test_var;
|
||||
@test_var
|
||||
insert 3.5.3.8-2d
|
||||
drop trigger trg5d_2;
|
||||
|
||||
Testcase: 3.5.3.x:
|
||||
------------------
|
||||
use priv_db;
|
||||
drop table if exists t1;
|
||||
drop table if exists t2;
|
||||
create table t1 (f1 int) engine= <engine_to_be_used>;
|
||||
create table t2 (f2 int) engine= <engine_to_be_used>;
|
||||
revoke ALL PRIVILEGES, GRANT OPTION FROM test_yesprivs@localhost;
|
||||
grant TRIGGER on *.* to test_yesprivs@localhost;
|
||||
grant SELECT, UPDATE on priv_db.t1 to test_yesprivs@localhost;
|
||||
grant SELECT on priv_db.t2 to test_yesprivs@localhost;
|
||||
show grants for test_yesprivs@localhost;
|
||||
Grants for test_yesprivs@localhost
|
||||
GRANT TRIGGER ON *.* TO 'test_yesprivs'@'localhost' IDENTIFIED BY PASSWORD '*C49735D016A099C0CF104EF9183F374A54CA2576'
|
||||
GRANT SELECT ON `priv_db`.`t2` TO 'test_yesprivs'@'localhost'
|
||||
GRANT SELECT, UPDATE ON `priv_db`.`t1` TO 'test_yesprivs'@'localhost'
|
||||
select current_user;
|
||||
current_user
|
||||
test_yesprivs@localhost
|
||||
use priv_db;
|
||||
create trigger trg1 before insert on t1 for each row
|
||||
insert into t2 values (new.f1);
|
||||
use priv_db;
|
||||
insert into t1 (f1) values (4);
|
||||
ERROR 42000: INSERT command denied to user 'test_yesprivs'@'localhost' for table 't2'
|
||||
revoke SELECT on priv_db.t2 from test_yesprivs@localhost;
|
||||
grant INSERT on priv_db.t2 to test_yesprivs@localhost;
|
||||
insert into t1 (f1) values (4);
|
||||
select f1 from t1 order by f1;
|
||||
f1
|
||||
4
|
||||
select f2 from t2 order by f2;
|
||||
f2
|
||||
4
|
||||
use priv_db;
|
||||
drop trigger trg1;
|
||||
create trigger trg2 before insert on t1 for each row
|
||||
update t2 set f2=new.f1-1;
|
||||
use priv_db;
|
||||
insert into t1 (f1) values (2);
|
||||
ERROR 42000: UPDATE command denied to user 'test_yesprivs'@'localhost' for table 't2'
|
||||
revoke INSERT on priv_db.t2 from test_yesprivs@localhost;
|
||||
grant UPDATE on priv_db.t2 to test_yesprivs@localhost;
|
||||
insert into t1 (f1) values (2);
|
||||
select f1 from t1 order by f1;
|
||||
f1
|
||||
2
|
||||
4
|
||||
select f2 from t2 order by f2;
|
||||
f2
|
||||
1
|
||||
use priv_db;
|
||||
drop trigger trg2;
|
||||
create trigger trg3 before insert on t1 for each row
|
||||
select f2 into @aaa from t2 where f2=new.f1;
|
||||
use priv_db;
|
||||
insert into t1 (f1) values (1);
|
||||
ERROR 42000: SELECT command denied to user 'test_yesprivs'@'localhost' for table 't2'
|
||||
revoke UPDATE on priv_db.t2 from test_yesprivs@localhost;
|
||||
grant SELECT on priv_db.t2 to test_yesprivs@localhost;
|
||||
insert into t1 (f1) values (1);
|
||||
select f1 from t1 order by f1;
|
||||
f1
|
||||
1
|
||||
2
|
||||
4
|
||||
select f2 from t2 order by f2;
|
||||
f2
|
||||
1
|
||||
select @aaa;
|
||||
@aaa
|
||||
1
|
||||
use priv_db;
|
||||
drop trigger trg3;
|
||||
create trigger trg4 before insert on t1 for each row
|
||||
delete from t2;
|
||||
use priv_db;
|
||||
insert into t1 (f1) values (1);
|
||||
ERROR 42000: DELETE command denied to user 'test_yesprivs'@'localhost' for table 't2'
|
||||
revoke SELECT on priv_db.t2 from test_yesprivs@localhost;
|
||||
grant DELETE on priv_db.t2 to test_yesprivs@localhost;
|
||||
insert into t1 (f1) values (1);
|
||||
select f1 from t1 order by f1;
|
||||
f1
|
||||
1
|
||||
1
|
||||
2
|
||||
4
|
||||
select f2 from t2 order by f2;
|
||||
f2
|
||||
drop database if exists priv_db;
|
||||
drop user test_yesprivs@localhost;
|
||||
drop user test_noprivs@localhost;
|
||||
drop user test_noprivs;
|
||||
use test;
|
||||
drop table tb3;
|
||||
1620
build/lib/mysql/mysql-test/suite/funcs_1/r/innodb_trig_03e.result
Normal file
1620
build/lib/mysql/mysql-test/suite/funcs_1/r/innodb_trig_03e.result
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,470 @@
|
||||
USE test;
|
||||
drop table if exists tb3;
|
||||
create table tb3 (
|
||||
f118 char not null DEFAULT 'a',
|
||||
f119 char binary not null DEFAULT b'101',
|
||||
f120 char ascii not null DEFAULT b'101',
|
||||
f121 char(50),
|
||||
f122 char(50),
|
||||
f129 binary not null DEFAULT b'101',
|
||||
f130 tinyint not null DEFAULT 99,
|
||||
f131 tinyint unsigned not null DEFAULT 99,
|
||||
f132 tinyint zerofill not null DEFAULT 99,
|
||||
f133 tinyint unsigned zerofill not null DEFAULT 99,
|
||||
f134 smallint not null DEFAULT 999,
|
||||
f135 smallint unsigned not null DEFAULT 999,
|
||||
f136 smallint zerofill not null DEFAULT 999,
|
||||
f137 smallint unsigned zerofill not null DEFAULT 999,
|
||||
f138 mediumint not null DEFAULT 9999,
|
||||
f139 mediumint unsigned not null DEFAULT 9999,
|
||||
f140 mediumint zerofill not null DEFAULT 9999,
|
||||
f141 mediumint unsigned zerofill not null DEFAULT 9999,
|
||||
f142 int not null DEFAULT 99999,
|
||||
f143 int unsigned not null DEFAULT 99999,
|
||||
f144 int zerofill not null DEFAULT 99999,
|
||||
f145 int unsigned zerofill not null DEFAULT 99999,
|
||||
f146 bigint not null DEFAULT 999999,
|
||||
f147 bigint unsigned not null DEFAULT 999999,
|
||||
f148 bigint zerofill not null DEFAULT 999999,
|
||||
f149 bigint unsigned zerofill not null DEFAULT 999999,
|
||||
f150 decimal not null DEFAULT 999.999,
|
||||
f151 decimal unsigned not null DEFAULT 999.17,
|
||||
f152 decimal zerofill not null DEFAULT 999.999,
|
||||
f153 decimal unsigned zerofill,
|
||||
f154 decimal (0),
|
||||
f155 decimal (64),
|
||||
f156 decimal (0) unsigned,
|
||||
f157 decimal (64) unsigned,
|
||||
f158 decimal (0) zerofill,
|
||||
f159 decimal (64) zerofill,
|
||||
f160 decimal (0) unsigned zerofill,
|
||||
f161 decimal (64) unsigned zerofill,
|
||||
f162 decimal (0,0),
|
||||
f163 decimal (63,30),
|
||||
f164 decimal (0,0) unsigned,
|
||||
f165 decimal (63,30) unsigned,
|
||||
f166 decimal (0,0) zerofill,
|
||||
f167 decimal (63,30) zerofill,
|
||||
f168 decimal (0,0) unsigned zerofill,
|
||||
f169 decimal (63,30) unsigned zerofill,
|
||||
f170 numeric,
|
||||
f171 numeric unsigned,
|
||||
f172 numeric zerofill,
|
||||
f173 numeric unsigned zerofill,
|
||||
f174 numeric (0),
|
||||
f175 numeric (64)
|
||||
) engine = <engine_to_be_used>;
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'f150' at row 1
|
||||
Note 1265 Data truncated for column 'f151' at row 1
|
||||
Note 1265 Data truncated for column 'f152' at row 1
|
||||
|
||||
Testcase: 3.5:
|
||||
--------------
|
||||
create User test_general@localhost;
|
||||
set password for test_general@localhost = password('PWD');
|
||||
revoke ALL PRIVILEGES, GRANT OPTION FROM test_general@localhost;
|
||||
create User test_super@localhost;
|
||||
set password for test_super@localhost = password('PWD');
|
||||
grant ALL on *.* to test_super@localhost with grant OPTION;
|
||||
|
||||
Testcase 3.5.4:
|
||||
---------------
|
||||
use test;
|
||||
|
||||
Testcase 3.5.4.1:
|
||||
-----------------
|
||||
create database db_drop;
|
||||
Use db_drop;
|
||||
create table t1 (f1 char(30)) engine = <engine_to_be_used>;
|
||||
grant INSERT, SELECT on db_drop.t1 to test_general;
|
||||
Use db_drop;
|
||||
Create trigger trg1 BEFORE INSERT on t1
|
||||
for each row set new.f1='Trigger 3.5.4.1';
|
||||
Use db_drop;
|
||||
Insert into t1 values ('Insert error 3.5.4.1');
|
||||
Select * from t1 order by f1;
|
||||
f1
|
||||
Trigger 3.5.4.1
|
||||
drop trigger trg1;
|
||||
select trigger_schema, trigger_name, event_object_table
|
||||
from information_schema.triggers
|
||||
where trigger_schema = 'db_drop'
|
||||
order by trigger_name;
|
||||
trigger_schema trigger_name event_object_table
|
||||
Insert into t1 values ('Insert no trigger 3.5.4.1');
|
||||
Select * from t1 order by f1;
|
||||
f1
|
||||
Insert no trigger 3.5.4.1
|
||||
Trigger 3.5.4.1
|
||||
drop trigger trg1;
|
||||
drop database if exists db_drop;
|
||||
revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
|
||||
|
||||
Testcase 3.5.4.2:
|
||||
-----------------
|
||||
create database db_drop2;
|
||||
Use db_drop2;
|
||||
drop table if exists t1_432 ;
|
||||
create table t1_432 (f1 char (30)) engine = <engine_to_be_used>;
|
||||
Drop trigger tr_does_not_exit;
|
||||
ERROR HY000: Trigger does not exist
|
||||
drop table if exists t1_432 ;
|
||||
drop database if exists db_drop2;
|
||||
|
||||
Testcase 3.5.4.3:
|
||||
-----------------
|
||||
create database db_drop3;
|
||||
Use db_drop3;
|
||||
drop table if exists t1_433 ;
|
||||
drop table if exists t1_433a ;
|
||||
create table t1_433 (f1 char (30)) engine = <engine_to_be_used>;
|
||||
create table t1_433a (f1a char (5)) engine = <engine_to_be_used>;
|
||||
CREATE TRIGGER trg3 BEFORE INSERT on t1_433 for each row
|
||||
set new.f1 = 'Trigger 3.5.4.3';
|
||||
Drop trigger t1.433.trg3;
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.trg3' at line 1
|
||||
Drop trigger db_drop3.t1.433.trg3;
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.433.trg3' at line 1
|
||||
Drop trigger mysql.trg3;
|
||||
ERROR HY000: Trigger does not exist
|
||||
Drop trigger tbx.trg3;
|
||||
ERROR HY000: Trigger does not exist
|
||||
Drop trigger db_drop3.trg3;
|
||||
drop table if exists t1_433;
|
||||
drop table if exists t1_433a;
|
||||
drop database if exists db_drop3;
|
||||
|
||||
Testcase 3.5.4.4:
|
||||
-----------------
|
||||
create database db_drop4;
|
||||
Use db_drop4;
|
||||
create table t1 (f1 char(30)) engine = <engine_to_be_used>;
|
||||
grant INSERT, SELECT on db_drop4.t1 to test_general;
|
||||
Create trigger trg4 BEFORE INSERT on t1
|
||||
for each row set new.f1='Trigger 3.5.4.4';
|
||||
Use db_drop4;
|
||||
Insert into t1 values ('Insert 3.5.4.4');
|
||||
Select * from t1;
|
||||
f1
|
||||
Trigger 3.5.4.4
|
||||
Drop database db_drop4;
|
||||
Show databases like 'db_drop4';
|
||||
Database (db_drop4)
|
||||
select trigger_schema, trigger_name, event_object_table
|
||||
from information_schema.triggers
|
||||
where information_schema.triggers.trigger_name='trg4';
|
||||
trigger_schema trigger_name event_object_table
|
||||
create database db_drop4;
|
||||
Use db_drop4;
|
||||
create table t1 (f1 char(30)) engine = <engine_to_be_used>;
|
||||
grant INSERT, SELECT on db_drop4.t1 to test_general;
|
||||
Insert into t1 values ('2nd Insert 3.5.4.4');
|
||||
Select * from t1;
|
||||
f1
|
||||
2nd Insert 3.5.4.4
|
||||
drop trigger trg4;
|
||||
ERROR HY000: Trigger does not exist
|
||||
drop database if exists db_drop4;
|
||||
revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
|
||||
|
||||
Testcase 3.5.4.5:
|
||||
-----------------
|
||||
create database db_drop5;
|
||||
Use db_drop5;
|
||||
create table t1 (f1 char(50)) engine = <engine_to_be_used>;
|
||||
grant INSERT, SELECT on t1 to test_general;
|
||||
Create trigger trg5 BEFORE INSERT on t1
|
||||
for each row set new.f1='Trigger 3.5.4.5';
|
||||
Use db_drop5;
|
||||
Insert into t1 values ('Insert 3.5.4.5');
|
||||
Select * from t1;
|
||||
f1
|
||||
Trigger 3.5.4.5
|
||||
Drop table t1;
|
||||
Show tables;
|
||||
Tables_in_db_drop5
|
||||
select trigger_schema, trigger_name, event_object_table
|
||||
from information_schema.triggers
|
||||
where information_schema.triggers.trigger_name='trg5';
|
||||
trigger_schema trigger_name event_object_table
|
||||
create table t1 (f1 char(50)) engine = <engine_to_be_used>;
|
||||
grant INSERT, SELECT on t1 to test_general;
|
||||
Insert into t1 values ('2nd Insert 3.5.4.5');
|
||||
Select * from t1;
|
||||
f1
|
||||
2nd Insert 3.5.4.5
|
||||
drop trigger trg5;
|
||||
ERROR HY000: Trigger does not exist
|
||||
drop database if exists db_drop5;
|
||||
revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
|
||||
|
||||
Testcase 3.5.5:
|
||||
---------------
|
||||
use test;
|
||||
|
||||
Testcase 3.5.5.1:
|
||||
-----------------
|
||||
Create trigger trg1 before INSERT on t100 for each row set new.f2=1000;
|
||||
ERROR 42S02: Table 'test.t100' doesn't exist
|
||||
|
||||
Testcase 3.5.5.2:
|
||||
-----------------
|
||||
Create temporary table t1_temp (f1 bigint signed, f2 bigint unsigned);
|
||||
Create trigger trg2 before INSERT
|
||||
on t1_temp for each row set new.f2=9999;
|
||||
ERROR HY000: Trigger's 't1_temp' is view or temporary table
|
||||
drop table t1_temp;
|
||||
|
||||
Testcase 3.5.5.3:
|
||||
-----------------
|
||||
Create view vw3 as select f118 from tb3;
|
||||
Create trigger trg3 before INSERT
|
||||
on vw3 for each row set new.f118='s';
|
||||
ERROR HY000: 'test.vw3' is not BASE TABLE
|
||||
drop view vw3;
|
||||
|
||||
Testcase 3.5.5.4:
|
||||
-----------------
|
||||
create database dbtest_one;
|
||||
create database dbtest_two;
|
||||
use dbtest_two;
|
||||
create table t2 (f1 char(15)) engine = <engine_to_be_used>;
|
||||
use dbtest_one;
|
||||
create trigger trg4 before INSERT
|
||||
on dbtest_two.t2 for each row set new.f1='trig 3.5.5.4';
|
||||
ERROR HY000: Trigger in wrong schema
|
||||
grant INSERT, SELECT on dbtest_two.t2 to test_general;
|
||||
grant SELECT on dbtest_one.* to test_general;
|
||||
use dbtest_two;
|
||||
Insert into t2 values ('1st Insert 3.5.5.4');
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'f1' at row 1
|
||||
Select * from t2;
|
||||
f1
|
||||
1st Insert 3.5.
|
||||
use dbtest_one;
|
||||
Insert into dbtest_two.t2 values ('2nd Insert 3.5.5.4');
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'f1' at row 1
|
||||
Select * from dbtest_two.t2 order by f1;
|
||||
f1
|
||||
1st Insert 3.5.
|
||||
2nd Insert 3.5.
|
||||
revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
|
||||
DROP DATABASE if exists dbtest_one;
|
||||
drop database if EXISTS dbtest_two;
|
||||
|
||||
Testcase 3.5.6:
|
||||
---------------
|
||||
use test;
|
||||
|
||||
Testcase 3.5.6.1 (see Testcase 3.5.1.1)
|
||||
---------------------------------------
|
||||
|
||||
Testcase 3.5.6.2 (see Testcase 3.5.1.1)
|
||||
---------------------------------------
|
||||
|
||||
Testcase 3.5.6.3:
|
||||
-----------------
|
||||
Create trigger trg3_1 DURING UPDATE on tb3 for each row set new.f132=25;
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DURING UPDATE on tb3 for each row set new.f132=25' at line 1
|
||||
Create trigger trg3_2 TIME INSERT on tb3 for each row set new.f132=15;
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TIME INSERT on tb3 for each row set new.f132=15' at line 1
|
||||
drop trigger tb3.trg3_1;
|
||||
drop trigger tb3.trg3_2;
|
||||
|
||||
Testcase 3.5.6.4 (see Testcase 3.5.1.1)
|
||||
---------------------------------------
|
||||
|
||||
Testcase 3.5.6.5 (see Testcase 3.5.1.1)
|
||||
---------------------------------------
|
||||
|
||||
Testcase 3.5.7.1 (see Testcase 3.5.1.1)
|
||||
---------------------------------------
|
||||
|
||||
Testcase 3.5.7.2 (see Testcase 3.5.1.1)
|
||||
---------------------------------------
|
||||
|
||||
Testcase 3.5.7.3 (see Testcase 3.5.1.1)
|
||||
---------------------------------------
|
||||
|
||||
Testcase 3.5.7.4:
|
||||
-----------------
|
||||
Create trigger trg4_1 BEFORE SELECT on tb3 for each row set new.f132=5;
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT on tb3 for each row set new.f132=5' at line 1
|
||||
Create trigger trg4_2 AFTER VALUE on tb3 for each row set new.f132=1;
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VALUE on tb3 for each row set new.f132=1' at line 1
|
||||
drop trigger tb3.trg4_1;
|
||||
drop trigger tb3.trg4_2;
|
||||
|
||||
Testcase 3.5.7.5 / 3.5.7.6:
|
||||
---------------------------
|
||||
Create trigger trg5_1 BEFORE INSERT
|
||||
on tb3 for each row set new.f122='Trigger1 3.5.7.5/6';
|
||||
Create trigger trg5_2 BEFORE INSERT
|
||||
on tb3 for each row set new.f122='Trigger2 3.5.7.5';
|
||||
ERROR 42000: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'
|
||||
Insert into tb3 (f121,f122) values ('Test 3.5.7.5/6','Insert 3.5.7.5');
|
||||
Select f121,f122 from tb3 where f121='Test 3.5.7.5/6';
|
||||
f121 f122
|
||||
Test 3.5.7.5/6 Trigger1 3.5.7.5/6
|
||||
update tb3 set f122='Update 3.5.7.6' where f121= 'Test 3.5.7.5/6';
|
||||
Select f121,f122 from tb3 where f121='Test 3.5.7.5/6';
|
||||
f121 f122
|
||||
Test 3.5.7.5/6 Update 3.5.7.6
|
||||
drop trigger trg5_1;
|
||||
drop trigger trg5_2;
|
||||
delete from tb3 where f121='Test 3.5.7.5/6';
|
||||
|
||||
Testcase 3.5.7.7 / 3.5.7.8:
|
||||
---------------------------
|
||||
set @test_var='Before trig 3.5.7.7';
|
||||
Create trigger trg6_1 AFTER INSERT
|
||||
on tb3 for each row set @test_var='Trigger1 3.5.7.7/8';
|
||||
Create trigger trg6_2 AFTER INSERT
|
||||
on tb3 for each row set @test_var='Trigger2 3.5.7.7';
|
||||
ERROR 42000: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'
|
||||
select @test_var;
|
||||
@test_var
|
||||
Before trig 3.5.7.7
|
||||
Insert into tb3 (f121,f122) values ('Test 3.5.7.7/8','Insert 3.5.7.7');
|
||||
Select f121,f122 from tb3 where f121='Test 3.5.7.7/8';
|
||||
f121 f122
|
||||
Test 3.5.7.7/8 Insert 3.5.7.7
|
||||
select @test_var;
|
||||
@test_var
|
||||
Trigger1 3.5.7.7/8
|
||||
update tb3 set f122='Update 3.5.7.8' where f121= 'Test 3.5.7.7/8';
|
||||
Select f121,f122 from tb3 where f121='Test 3.5.7.7/8';
|
||||
f121 f122
|
||||
Test 3.5.7.7/8 Update 3.5.7.8
|
||||
select @test_var;
|
||||
@test_var
|
||||
Trigger1 3.5.7.7/8
|
||||
drop trigger trg6_1;
|
||||
drop trigger trg6_2;
|
||||
delete from tb3 where f121='Test 3.5.7.7/8';
|
||||
|
||||
Testcase 3.5.7.9/10:
|
||||
--------------------
|
||||
Create trigger trg7_1 BEFORE UPDATE
|
||||
on tb3 for each row set new.f122='Trigger1 3.5.7.9/10';
|
||||
Create trigger trg7_2 BEFORE UPDATE
|
||||
on tb3 for each row set new.f122='Trigger2 3.5.7.9';
|
||||
ERROR 42000: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'
|
||||
Insert into tb3 (f121,f122) values ('Test 3.5.7.9/10','Insert 3.5.7.9');
|
||||
Select f121,f122 from tb3 where f121='Test 3.5.7.9/10';
|
||||
f121 f122
|
||||
Test 3.5.7.9/10 Insert 3.5.7.9
|
||||
update tb3 set f122='update 3.5.7.10' where f121='Test 3.5.7.9/10';
|
||||
Select f121,f122 from tb3 where f121='Test 3.5.7.9/10';
|
||||
f121 f122
|
||||
Test 3.5.7.9/10 Trigger1 3.5.7.9/10
|
||||
drop trigger trg7_1;
|
||||
drop trigger trg7_2;
|
||||
delete from tb3 where f121='Test 3.5.7.9/10';
|
||||
|
||||
Testcase 3.5.7.11/12:
|
||||
---------------------
|
||||
set @test_var='Before trig 3.5.7.11';
|
||||
Create trigger trg8_1 AFTER UPDATE
|
||||
on tb3 for each row set @test_var='Trigger 3.5.7.11/12';
|
||||
Create trigger trg8_2 AFTER UPDATE
|
||||
on tb3 for each row set @test_var='Trigger2 3.5.7.11';
|
||||
ERROR 42000: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'
|
||||
select @test_var;
|
||||
@test_var
|
||||
Before trig 3.5.7.11
|
||||
Insert into tb3 (f121,f122) values ('Test 3.5.7.11/12','Insert 3.5.7.11/12');
|
||||
select @test_var;
|
||||
@test_var
|
||||
Before trig 3.5.7.11
|
||||
Select f121,f122 from tb3 where f121='Test 3.5.7.11/12';
|
||||
f121 f122
|
||||
Test 3.5.7.11/12 Insert 3.5.7.11/12
|
||||
update tb3 set f122='update 3.5.7.12' where f121='Test 3.5.7.11/12';
|
||||
Select f121,f122 from tb3 where f121='Test 3.5.7.11/12';
|
||||
f121 f122
|
||||
Test 3.5.7.11/12 update 3.5.7.12
|
||||
select @test_var;
|
||||
@test_var
|
||||
Trigger 3.5.7.11/12
|
||||
delete from tb3 where f121='Test 3.5.7.11/12';
|
||||
drop trigger trg8_1;
|
||||
drop trigger trg8_2;
|
||||
delete from tb3 where f121='Test 3.5.7.11/12';
|
||||
|
||||
Testcase 3.5.7.13/14:
|
||||
---------------------
|
||||
set @test_var=1;
|
||||
Create trigger trg9_1 BEFORE DELETE
|
||||
on tb3 for each row set @test_var=@test_var+1;
|
||||
Create trigger trg9_2 BEFORE DELETE
|
||||
on tb3 for each row set @test_var=@test_var+10;
|
||||
ERROR 42000: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'
|
||||
select @test_var;
|
||||
@test_var
|
||||
1
|
||||
Insert into tb3 (f121,f122) values ('Test 3.5.7.13/14','Insert 3.5.7.13');
|
||||
Select f121,f122 from tb3 where f121='Test 3.5.7.13/14';
|
||||
f121 f122
|
||||
Test 3.5.7.13/14 Insert 3.5.7.13
|
||||
select @test_var;
|
||||
@test_var
|
||||
1
|
||||
delete from tb3 where f121='Test 3.5.7.13/14';
|
||||
Select f121,f122 from tb3 where f121='Test 3.5.7.13/14';
|
||||
f121 f122
|
||||
select @test_var;
|
||||
@test_var
|
||||
2
|
||||
delete from tb3 where f121='Test 3.5.7.13/14';
|
||||
select @test_var;
|
||||
@test_var
|
||||
2
|
||||
drop trigger trg9_1;
|
||||
drop trigger trg9_2;
|
||||
delete from tb3 where f121='Test 3.5.7.13/14';
|
||||
|
||||
Testcase 3.5.7.15/16:
|
||||
---------------------
|
||||
set @test_var=1;
|
||||
Create trigger trg_3_406010_1 AFTER DELETE
|
||||
on tb3 for each row set @test_var=@test_var+5;
|
||||
Create trigger trg_3_406010_2 AFTER DELETE
|
||||
on tb3 for each row set @test_var=@test_var+50;
|
||||
ERROR 42000: This version of MySQL doesn't yet support 'multiple triggers with the same action time and event for one table'
|
||||
Create trigger trg_3_406010_1 AFTER INSERT
|
||||
on tb3 for each row set @test_var=@test_var+1;
|
||||
ERROR HY000: Trigger already exists
|
||||
select @test_var;
|
||||
@test_var
|
||||
1
|
||||
Insert into tb3 (f121,f122) values ('Test 3.5.7.15/16','Insert 3.5.7.15/16');
|
||||
Select f121,f122 from tb3 where f121='Test 3.5.7.15/16';
|
||||
f121 f122
|
||||
Test 3.5.7.15/16 Insert 3.5.7.15/16
|
||||
select @test_var;
|
||||
@test_var
|
||||
1
|
||||
delete from tb3 where f121='Test 3.5.7.15/16';
|
||||
Select f121,f122 from tb3 where f121='Test 3.5.7.15/16';
|
||||
f121 f122
|
||||
select @test_var;
|
||||
@test_var
|
||||
6
|
||||
delete from tb3 where f121='Test 3.5.7.15/16';
|
||||
select @test_var;
|
||||
@test_var
|
||||
6
|
||||
drop trigger trg_3_406010_1;
|
||||
drop trigger trg_3_406010_2;
|
||||
delete from tb3 where f121='Test 3.5.7.15/16';
|
||||
|
||||
Testcase 3.5.7.17 (see Testcase 3.5.1.1)
|
||||
----------------------------------------
|
||||
drop user test_general@localhost;
|
||||
drop user test_general;
|
||||
drop user test_super@localhost;
|
||||
DROP TABLE test.tb3;
|
||||
527
build/lib/mysql/mysql-test/suite/funcs_1/r/innodb_trig_08.result
Normal file
527
build/lib/mysql/mysql-test/suite/funcs_1/r/innodb_trig_08.result
Normal file
@@ -0,0 +1,527 @@
|
||||
USE test;
|
||||
drop table if exists tb3;
|
||||
create table tb3 (
|
||||
f118 char not null DEFAULT 'a',
|
||||
f119 char binary not null DEFAULT b'101',
|
||||
f120 char ascii not null DEFAULT b'101',
|
||||
f121 char(50),
|
||||
f122 char(50),
|
||||
f129 binary not null DEFAULT b'101',
|
||||
f130 tinyint not null DEFAULT 99,
|
||||
f131 tinyint unsigned not null DEFAULT 99,
|
||||
f132 tinyint zerofill not null DEFAULT 99,
|
||||
f133 tinyint unsigned zerofill not null DEFAULT 99,
|
||||
f134 smallint not null DEFAULT 999,
|
||||
f135 smallint unsigned not null DEFAULT 999,
|
||||
f136 smallint zerofill not null DEFAULT 999,
|
||||
f137 smallint unsigned zerofill not null DEFAULT 999,
|
||||
f138 mediumint not null DEFAULT 9999,
|
||||
f139 mediumint unsigned not null DEFAULT 9999,
|
||||
f140 mediumint zerofill not null DEFAULT 9999,
|
||||
f141 mediumint unsigned zerofill not null DEFAULT 9999,
|
||||
f142 int not null DEFAULT 99999,
|
||||
f143 int unsigned not null DEFAULT 99999,
|
||||
f144 int zerofill not null DEFAULT 99999,
|
||||
f145 int unsigned zerofill not null DEFAULT 99999,
|
||||
f146 bigint not null DEFAULT 999999,
|
||||
f147 bigint unsigned not null DEFAULT 999999,
|
||||
f148 bigint zerofill not null DEFAULT 999999,
|
||||
f149 bigint unsigned zerofill not null DEFAULT 999999,
|
||||
f150 decimal not null DEFAULT 999.999,
|
||||
f151 decimal unsigned not null DEFAULT 999.17,
|
||||
f152 decimal zerofill not null DEFAULT 999.999,
|
||||
f153 decimal unsigned zerofill,
|
||||
f154 decimal (0),
|
||||
f155 decimal (64),
|
||||
f156 decimal (0) unsigned,
|
||||
f157 decimal (64) unsigned,
|
||||
f158 decimal (0) zerofill,
|
||||
f159 decimal (64) zerofill,
|
||||
f160 decimal (0) unsigned zerofill,
|
||||
f161 decimal (64) unsigned zerofill,
|
||||
f162 decimal (0,0),
|
||||
f163 decimal (63,30),
|
||||
f164 decimal (0,0) unsigned,
|
||||
f165 decimal (63,30) unsigned,
|
||||
f166 decimal (0,0) zerofill,
|
||||
f167 decimal (63,30) zerofill,
|
||||
f168 decimal (0,0) unsigned zerofill,
|
||||
f169 decimal (63,30) unsigned zerofill,
|
||||
f170 numeric,
|
||||
f171 numeric unsigned,
|
||||
f172 numeric zerofill,
|
||||
f173 numeric unsigned zerofill,
|
||||
f174 numeric (0),
|
||||
f175 numeric (64)
|
||||
) engine = <engine_to_be_used>;
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'f150' at row 1
|
||||
Note 1265 Data truncated for column 'f151' at row 1
|
||||
Note 1265 Data truncated for column 'f152' at row 1
|
||||
|
||||
Testcase: 3.5:
|
||||
--------------
|
||||
create User test_general@localhost;
|
||||
set password for test_general@localhost = password('PWD');
|
||||
revoke ALL PRIVILEGES, GRANT OPTION FROM test_general@localhost;
|
||||
create User test_super@localhost;
|
||||
set password for test_super@localhost = password('PWD');
|
||||
grant ALL on *.* to test_super@localhost with grant OPTION;
|
||||
|
||||
Testcase 3.5.8.1: (implied in previous tests)
|
||||
---------------------------------------------
|
||||
|
||||
Testcase 3.5.8.2: (implied in previous tests)
|
||||
---------------------------------------------
|
||||
|
||||
Testcase 3.5.8.3/4:
|
||||
-------------------
|
||||
create database db_test;
|
||||
grant SELECT, INSERT, UPDATE, DELETE on db_test.* to test_general;
|
||||
grant LOCK TABLES on db_test.* to test_general;
|
||||
Use db_test;
|
||||
create table t1_i (
|
||||
i120 char ascii not null DEFAULT b'101',
|
||||
i136 smallint zerofill not null DEFAULT 999,
|
||||
i144 int zerofill not null DEFAULT 99999,
|
||||
i163 decimal (63,30)) engine=<engine_to_be_used>;
|
||||
create table t1_u (
|
||||
u120 char ascii not null DEFAULT b'101',
|
||||
u136 smallint zerofill not null DEFAULT 999,
|
||||
u144 int zerofill not null DEFAULT 99999,
|
||||
u163 decimal (63,30)) engine=<engine_to_be_used>;
|
||||
create table t1_d (
|
||||
d120 char ascii not null DEFAULT b'101',
|
||||
d136 smallint zerofill not null DEFAULT 999,
|
||||
d144 int zerofill not null DEFAULT 99999,
|
||||
d163 decimal (63,30)) engine=<engine_to_be_used>;
|
||||
Insert into t1_u values ('a',111,99999,999.99);
|
||||
Insert into t1_u values ('b',222,99999,999.99);
|
||||
Insert into t1_u values ('c',333,99999,999.99);
|
||||
Insert into t1_u values ('d',222,99999,999.99);
|
||||
Insert into t1_u values ('e',222,99999,999.99);
|
||||
Insert into t1_u values ('f',333,99999,999.99);
|
||||
Insert into t1_d values ('a',111,99999,999.99);
|
||||
Insert into t1_d values ('b',222,99999,999.99);
|
||||
Insert into t1_d values ('c',333,99999,999.99);
|
||||
Insert into t1_d values ('d',444,99999,999.99);
|
||||
Insert into t1_d values ('e',222,99999,999.99);
|
||||
Insert into t1_d values ('f',222,99999,999.99);
|
||||
|
||||
3.5.8.4 - multiple SQL
|
||||
----------------------
|
||||
use test;
|
||||
Create trigger trg1 AFTER INSERT on tb3 for each row
|
||||
BEGIN
|
||||
insert into db_test.t1_i
|
||||
values (new.f120, new.f136, new.f144, new.f163);
|
||||
update db_test.t1_u
|
||||
set u144=new.f144, u163=new.f163
|
||||
where u136=new.f136;
|
||||
delete from db_test.t1_d where d136= new.f136;
|
||||
select sum(db_test.t1_u.u163) into @test_var from db_test.t1_u
|
||||
where u136= new.f136;
|
||||
END//
|
||||
Use test;
|
||||
set @test_var=0;
|
||||
Insert into tb3 (f120, f122, f136, f144, f163)
|
||||
values ('1', 'Test 3.5.8.4', 222, 23456, 1.05);
|
||||
Select f120, f122, f136, f144, f163 from tb3 where f122= 'Test 3.5.8.4';
|
||||
f120 f122 f136 f144 f163
|
||||
1 Test 3.5.8.4 00222 0000023456 1.050000000000000000000000000000
|
||||
select * from db_test.t1_i;
|
||||
i120 i136 i144 i163
|
||||
1 00222 0000023456 1.050000000000000000000000000000
|
||||
select * from db_test.t1_u;
|
||||
u120 u136 u144 u163
|
||||
a 00111 0000099999 999.990000000000000000000000000000
|
||||
b 00222 0000023456 1.050000000000000000000000000000
|
||||
c 00333 0000099999 999.990000000000000000000000000000
|
||||
d 00222 0000023456 1.050000000000000000000000000000
|
||||
e 00222 0000023456 1.050000000000000000000000000000
|
||||
f 00333 0000099999 999.990000000000000000000000000000
|
||||
select * from db_test.t1_d;
|
||||
d120 d136 d144 d163
|
||||
a 00111 0000099999 999.990000000000000000000000000000
|
||||
c 00333 0000099999 999.990000000000000000000000000000
|
||||
d 00444 0000099999 999.990000000000000000000000000000
|
||||
select @test_var;
|
||||
@test_var
|
||||
3.150000000000000000000000000000
|
||||
|
||||
3.5.8.4 - single SQL - insert
|
||||
-----------------------------
|
||||
Create trigger trg2 BEFORE UPDATE on tb3 for each row
|
||||
BEGIN
|
||||
insert into db_test.t1_i
|
||||
values (new.f120, new.f136, new.f144, new.f163);
|
||||
END//
|
||||
Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%';
|
||||
f120 f122 f136 f144 f163
|
||||
1 Test 3.5.8.4 00222 0000023456 1.050000000000000000000000000000
|
||||
select * from db_test.t1_i order by i120;
|
||||
i120 i136 i144 i163
|
||||
1 00222 0000023456 1.050000000000000000000000000000
|
||||
update tb3 set f120='I', f122='Test 3.5.8.4-Single Insert'
|
||||
where f122='Test 3.5.8.4';
|
||||
Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%';
|
||||
f120 f122 f136 f144 f163
|
||||
I Test 3.5.8.4-Single Insert 00222 0000023456 1.050000000000000000000000000000
|
||||
select * from db_test.t1_i order by i120;
|
||||
i120 i136 i144 i163
|
||||
1 00222 0000023456 1.050000000000000000000000000000
|
||||
I 00222 0000023456 1.050000000000000000000000000000
|
||||
|
||||
3.5.8.4 - single SQL - update
|
||||
-----------------------------
|
||||
drop trigger trg2;
|
||||
Create trigger trg3 BEFORE UPDATE on tb3 for each row
|
||||
update db_test.t1_u
|
||||
set u120=new.f120
|
||||
where u136=new.f136;
|
||||
update tb3 set f120='U', f122='Test 3.5.8.4-Single Update'
|
||||
where f122='Test 3.5.8.4-Single Insert';
|
||||
Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%';
|
||||
f120 f122 f136 f144 f163
|
||||
U Test 3.5.8.4-Single Update 00222 0000023456 1.050000000000000000000000000000
|
||||
select * from db_test.t1_u order by u120;
|
||||
u120 u136 u144 u163
|
||||
a 00111 0000099999 999.990000000000000000000000000000
|
||||
c 00333 0000099999 999.990000000000000000000000000000
|
||||
f 00333 0000099999 999.990000000000000000000000000000
|
||||
U 00222 0000023456 1.050000000000000000000000000000
|
||||
U 00222 0000023456 1.050000000000000000000000000000
|
||||
U 00222 0000023456 1.050000000000000000000000000000
|
||||
|
||||
3.5.8.3/4 - single SQL - delete
|
||||
-------------------------------
|
||||
drop trigger trg3;
|
||||
Create trigger trg4 AFTER UPDATE on tb3 for each row
|
||||
delete from db_test.t1_d where d136= new.f136;
|
||||
update tb3 set f120='D', f136=444,
|
||||
f122='Test 3.5.8.4-Single Delete'
|
||||
where f122='Test 3.5.8.4-Single Update';
|
||||
Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%';
|
||||
f120 f122 f136 f144 f163
|
||||
D Test 3.5.8.4-Single Delete 00444 0000023456 1.050000000000000000000000000000
|
||||
select * from db_test.t1_d order by d120;
|
||||
d120 d136 d144 d163
|
||||
a 00111 0000099999 999.990000000000000000000000000000
|
||||
c 00333 0000099999 999.990000000000000000000000000000
|
||||
|
||||
3.5.8.3/4 - single SQL - select
|
||||
-------------------------------
|
||||
drop trigger trg4;
|
||||
Create trigger trg5 AFTER UPDATE on tb3 for each row
|
||||
select sum(db_test.t1_u.u163) into @test_var from db_test.t1_u
|
||||
where u136= new.f136;
|
||||
set @test_var=0;
|
||||
update tb3 set f120='S', f136=111,
|
||||
f122='Test 3.5.8.4-Single Select'
|
||||
where f122='Test 3.5.8.4-Single Delete';
|
||||
Select f120, f122, f136, f144, f163 from tb3 where f122 like 'Test 3.5.8.4%';
|
||||
f120 f122 f136 f144 f163
|
||||
S Test 3.5.8.4-Single Select 00111 0000023456 1.050000000000000000000000000000
|
||||
select @test_var;
|
||||
@test_var
|
||||
999.990000000000000000000000000000
|
||||
drop trigger trg1;
|
||||
drop trigger trg5;
|
||||
drop database if exists db_test;
|
||||
delete from tb3 where f122 like 'Test 3.5.8.4%';
|
||||
revoke ALL PRIVILEGES, GRANT OPTION FROM 'test_general'@'localhost';
|
||||
|
||||
Testcase 3.5.8.5 (IF):
|
||||
----------------------
|
||||
create trigger trg2 before insert on tb3 for each row
|
||||
BEGIN
|
||||
IF new.f120='1' then
|
||||
set @test_var='one', new.f120='2';
|
||||
ELSEIF new.f120='2' then
|
||||
set @test_var='two', new.f120='3';
|
||||
ELSEIF new.f120='3' then
|
||||
set @test_var='three', new.f120='4';
|
||||
END IF;
|
||||
IF (new.f120='4') and (new.f136=10) then
|
||||
set @test_var2='2nd if', new.f120='d';
|
||||
ELSE
|
||||
set @test_var2='2nd else', new.f120='D';
|
||||
END IF;
|
||||
END//
|
||||
set @test_var='Empty', @test_var2=0;
|
||||
Insert into tb3 (f120, f122, f136) values ('1', 'Test 3.5.8.5-if', 101);
|
||||
select f120, f122, f136, @test_var, @test_var2
|
||||
from tb3 where f122 = 'Test 3.5.8.5-if' order by f136;
|
||||
f120 f122 f136 @test_var @test_var2
|
||||
D Test 3.5.8.5-if 00101 one 2nd else
|
||||
Insert into tb3 (f120, f122, f136) values ('2', 'Test 3.5.8.5-if', 102);
|
||||
select f120, f122, f136, @test_var, @test_var2
|
||||
from tb3 where f122 = 'Test 3.5.8.5-if' order by f136;
|
||||
f120 f122 f136 @test_var @test_var2
|
||||
D Test 3.5.8.5-if 00101 two 2nd else
|
||||
D Test 3.5.8.5-if 00102 two 2nd else
|
||||
Insert into tb3 (f120, f122, f136) values ('3', 'Test 3.5.8.5-if', 10);
|
||||
select f120, f122, f136, @test_var, @test_var2
|
||||
from tb3 where f122 = 'Test 3.5.8.5-if' order by f136;
|
||||
f120 f122 f136 @test_var @test_var2
|
||||
d Test 3.5.8.5-if 00010 three 2nd if
|
||||
D Test 3.5.8.5-if 00101 three 2nd if
|
||||
D Test 3.5.8.5-if 00102 three 2nd if
|
||||
Insert into tb3 (f120, f122, f136) values ('3', 'Test 3.5.8.5-if', 103);
|
||||
select f120, f122, f136, @test_var, @test_var2
|
||||
from tb3 where f122 = 'Test 3.5.8.5-if' order by f136;
|
||||
f120 f122 f136 @test_var @test_var2
|
||||
d Test 3.5.8.5-if 00010 three 2nd else
|
||||
D Test 3.5.8.5-if 00101 three 2nd else
|
||||
D Test 3.5.8.5-if 00102 three 2nd else
|
||||
D Test 3.5.8.5-if 00103 three 2nd else
|
||||
create trigger trg3 before update on tb3 for each row
|
||||
BEGIN
|
||||
ELSEIF new.f120='2' then
|
||||
END IF;
|
||||
END//
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ELSEIF new.f120='2' then
|
||||
END IF;
|
||||
END' at line 3
|
||||
drop trigger trg3//
|
||||
create trigger trg4 before update on tb3 for each row
|
||||
BEGIN
|
||||
IF (new.f120='4') and (new.f136=10) then
|
||||
set @test_var2='2nd if', new.f120='d';
|
||||
ELSE
|
||||
set @test_var2='2nd else', new.f120='D';
|
||||
END//
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 7
|
||||
drop trigger trg4;
|
||||
drop trigger trg2;
|
||||
delete from tb3 where f121='Test 3.5.8.5-if';
|
||||
|
||||
Testcase 3.5.8.5-case:
|
||||
----------------------
|
||||
create trigger trg3 before insert on tb3 for each row
|
||||
BEGIN
|
||||
SET new.f120=char(ascii(new.f120)-32);
|
||||
CASE
|
||||
when new.f136<100 then set new.f136=new.f136+120;
|
||||
when new.f136<10 then set new.f144=777;
|
||||
when new.f136>100 then set new.f120=new.f136-1;
|
||||
END case;
|
||||
CASE
|
||||
when new.f136=200 then set @test_var=CONCAT(new.f120, '=');
|
||||
ELSE set @test_var=concat(new.f120, '*');
|
||||
END case;
|
||||
CASE new.f144
|
||||
when 1 then set @test_var=concat(@test_var, 'one');
|
||||
when 2 then set @test_var=concat(@test_var, 'two');
|
||||
when 3 then set @test_var=concat(@test_var, 'three');
|
||||
when 4 then set @test_var=concat(@test_var, 'four');
|
||||
when 5 then set @test_var=concat(@test_var, 'five');
|
||||
when 6 then set @test_var=concat(@test_var, 'six');
|
||||
when 7 then set @test_var=concat(@test_var, 'seven');
|
||||
when 8 then set @test_var=concat(@test_var, 'eight');
|
||||
when 9 then set @test_var=concat(@test_var, 'nine');
|
||||
when 10 then set @test_var=concat(@test_var, 'ten');
|
||||
when 11 then set @test_var=concat(@test_var, 'eleven');
|
||||
when 12 then set @test_var=concat(@test_var, 'twelve');
|
||||
when 13 then set @test_var=concat(@test_var, 'thirteen');
|
||||
when 14 then set @test_var=concat(@test_var, 'fourteen');
|
||||
when 15 then set @test_var=concat(@test_var, 'fifteen');
|
||||
ELSE set @test_var=CONCAT(new.f120, '*', new.f144);
|
||||
END case;
|
||||
END//
|
||||
set @test_var='Empty';
|
||||
Insert into tb3 (f120, f122, f136, f144)
|
||||
values ('a', 'Test 3.5.8.5-case', 5, 7);
|
||||
select f120, f122, f136, f144, @test_var
|
||||
from tb3 where f122 = 'Test 3.5.8.5-case' order by f120,f136;
|
||||
f120 f122 f136 f144 @test_var
|
||||
A Test 3.5.8.5-case 00125 0000000007 A*seven
|
||||
Insert into tb3 (f120, f122, f136, f144)
|
||||
values ('b', 'Test 3.5.8.5-case', 71,16);
|
||||
select f120, f122, f136, f144, @test_var
|
||||
from tb3 where f122 = 'Test 3.5.8.5-case' order by f120,f136;
|
||||
f120 f122 f136 f144 @test_var
|
||||
A Test 3.5.8.5-case 00125 0000000007 B*0000000016
|
||||
B Test 3.5.8.5-case 00191 0000000016 B*0000000016
|
||||
Insert into tb3 (f120, f122, f136, f144)
|
||||
values ('c', 'Test 3.5.8.5-case', 80,1);
|
||||
select f120, f122, f136, f144, @test_var
|
||||
from tb3 where f122 = 'Test 3.5.8.5-case' order by f120,f136;
|
||||
f120 f122 f136 f144 @test_var
|
||||
A Test 3.5.8.5-case 00125 0000000007 C=one
|
||||
B Test 3.5.8.5-case 00191 0000000016 C=one
|
||||
C Test 3.5.8.5-case 00200 0000000001 C=one
|
||||
Insert into tb3 (f120, f122, f136)
|
||||
values ('d', 'Test 3.5.8.5-case', 152);
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'f120' at row 1
|
||||
select f120, f122, f136, f144, @test_var
|
||||
from tb3 where f122 = 'Test 3.5.8.5-case' order by f120,f136;
|
||||
f120 f122 f136 f144 @test_var
|
||||
1 Test 3.5.8.5-case 00152 0000099999 1*0000099999
|
||||
A Test 3.5.8.5-case 00125 0000000007 1*0000099999
|
||||
B Test 3.5.8.5-case 00191 0000000016 1*0000099999
|
||||
C Test 3.5.8.5-case 00200 0000000001 1*0000099999
|
||||
Insert into tb3 (f120, f122, f136, f144)
|
||||
values ('e', 'Test 3.5.8.5-case', 200, 8);
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'f120' at row 1
|
||||
select f120, f122, f136, f144, @test_var
|
||||
from tb3 where f122 = 'Test 3.5.8.5-case' order by f120,f136;
|
||||
f120 f122 f136 f144 @test_var
|
||||
1 Test 3.5.8.5-case 00152 0000099999 1=eight
|
||||
1 Test 3.5.8.5-case 00200 0000000008 1=eight
|
||||
A Test 3.5.8.5-case 00125 0000000007 1=eight
|
||||
B Test 3.5.8.5-case 00191 0000000016 1=eight
|
||||
C Test 3.5.8.5-case 00200 0000000001 1=eight
|
||||
Insert into tb3 (f120, f122, f136, f144)
|
||||
values ('f', 'Test 3.5.8.5-case', 100, 8);
|
||||
select f120, f122, f136, f144, @test_var
|
||||
from tb3 where f122 = 'Test 3.5.8.5-case' order by f120,f136;
|
||||
f120 f122 f136 f144 @test_var
|
||||
1 Test 3.5.8.5-case 00152 0000099999 1=eight
|
||||
1 Test 3.5.8.5-case 00200 0000000008 1=eight
|
||||
A Test 3.5.8.5-case 00125 0000000007 1=eight
|
||||
B Test 3.5.8.5-case 00191 0000000016 1=eight
|
||||
C Test 3.5.8.5-case 00200 0000000001 1=eight
|
||||
create trigger trg3a before update on tb3 for each row
|
||||
BEGIN
|
||||
CASE
|
||||
when new.f136<100 then set new.f120='p';
|
||||
END//
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 5
|
||||
drop trigger trg3a;
|
||||
drop trigger trg3;
|
||||
delete from tb3 where f121='Test 3.5.8.5-case';
|
||||
|
||||
Testcase 3.5.8.5-loop/leave:
|
||||
----------------------------
|
||||
Create trigger trg4 after insert on tb3 for each row
|
||||
BEGIN
|
||||
set @counter=0, @flag='Initial';
|
||||
Label1: loop
|
||||
if new.f136<new.f144 then
|
||||
set @counter='Nothing to loop';
|
||||
leave Label1;
|
||||
else
|
||||
set @counter=@counter+1;
|
||||
if new.f136=new.f144+@counter then
|
||||
set @counter=concat(@counter, ' loops');
|
||||
leave Label1;
|
||||
end if;
|
||||
end if;
|
||||
iterate label1;
|
||||
set @flag='Final';
|
||||
END loop Label1;
|
||||
END//
|
||||
Insert into tb3 (f122, f136, f144)
|
||||
values ('Test 3.5.8.5-loop', 2, 8);
|
||||
select @counter, @flag;
|
||||
@counter @flag
|
||||
Nothing to loop Initial
|
||||
Insert into tb3 (f122, f136, f144)
|
||||
values ('Test 3.5.8.5-loop', 11, 8);
|
||||
select @counter, @flag;
|
||||
@counter @flag
|
||||
3 loops Initial
|
||||
Create trigger trg4_2 after update on tb3 for each row
|
||||
BEGIN
|
||||
Label1: loop
|
||||
set @counter=@counter+1;
|
||||
END;
|
||||
END//
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ';
|
||||
END' at line 5
|
||||
drop trigger trg4_2;
|
||||
drop trigger trg4;
|
||||
delete from tb3 where f122='Test 3.5.8.5-loop';
|
||||
|
||||
Testcase 3.5.8.5-repeat:
|
||||
------------------------
|
||||
Create trigger trg6 after insert on tb3 for each row
|
||||
BEGIN
|
||||
rp_label: REPEAT
|
||||
SET @counter1 = @counter1 + 1;
|
||||
IF (@counter1 MOD 2 = 0) THEN ITERATE rp_label;
|
||||
END IF;
|
||||
SET @counter2 = @counter2 + 1;
|
||||
UNTIL @counter1> new.f136 END REPEAT rp_label;
|
||||
END//
|
||||
set @counter1= 0, @counter2= 0;
|
||||
Insert into tb3 (f122, f136)
|
||||
values ('Test 3.5.8.5-repeat', 13);
|
||||
select @counter1, @counter2;
|
||||
@counter1 @counter2
|
||||
15 8
|
||||
Create trigger trg6_2 after update on tb3 for each row
|
||||
BEGIN
|
||||
REPEAT
|
||||
SET @counter2 = @counter2 + 1;
|
||||
END//
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'END' at line 5
|
||||
drop trigger trg6;
|
||||
delete from tb3 where f122='Test 3.5.8.5-repeat';
|
||||
|
||||
Testcase 3.5.8.5-while:
|
||||
-----------------------
|
||||
Create trigger trg7 after insert on tb3 for each row
|
||||
wl_label: WHILE @counter1 < new.f136 DO
|
||||
SET @counter1 = @counter1 + 1;
|
||||
IF (@counter1 MOD 2 = 0) THEN ITERATE wl_label;
|
||||
END IF;
|
||||
SET @counter2 = @counter2 + 1;
|
||||
END WHILE wl_label//
|
||||
set @counter1= 0, @counter2= 0;
|
||||
Insert into tb3 (f122, f136)
|
||||
values ('Test 3.5.8.5-while', 7);
|
||||
select @counter1, @counter2;
|
||||
@counter1 @counter2
|
||||
7 4
|
||||
Create trigger trg7_2 after update on tb3 for each row
|
||||
BEGIN
|
||||
WHILE @counter1 < new.f136
|
||||
SET @counter1 = @counter1 + 1;
|
||||
END//
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET @counter1 = @counter1 + 1;
|
||||
END' at line 4
|
||||
delete from tb3 where f122='Test 3.5.8.5-while';
|
||||
drop trigger trg7;
|
||||
|
||||
Testcase 3.5.8.6: (requirement void)
|
||||
------------------------------------
|
||||
CREATE PROCEDURE sp_01 () BEGIN set @v1=1; END//
|
||||
CREATE TRIGGER trg8_1 BEFORE UPDATE ON tb3 FOR EACH ROW
|
||||
BEGIN
|
||||
CALL sp_01 ();
|
||||
END//
|
||||
Insert into tb3 (f120, f122, f136) values ('6', 'Test 3.5.8.6-insert', 101);
|
||||
update tb3 set f120='S', f136=111,
|
||||
f122='Test 3.5.8.6-tr8_1'
|
||||
where f122='Test 3.5.8.6-insert';
|
||||
select f120, f122
|
||||
from tb3 where f122 like 'Test 3.5.8.6%' order by f120;
|
||||
f120 f122
|
||||
S Test 3.5.8.6-tr8_1
|
||||
DROP TRIGGER trg8_1;
|
||||
DROP PROCEDURE sp_01;
|
||||
|
||||
Testcase 3.5.8.7
|
||||
----------------
|
||||
Create trigger trg9_1 before update on tb3 for each row
|
||||
BEGIN
|
||||
Start transaction;
|
||||
Set new.f120='U';
|
||||
Commit;
|
||||
END//
|
||||
ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
|
||||
Create trigger trg9_2 before delete on tb3 for each row
|
||||
BEGIN
|
||||
Start transaction;
|
||||
Set @var2=old.f120;
|
||||
Rollback;
|
||||
END//
|
||||
ERROR HY000: Explicit or implicit commit is not allowed in stored function or trigger.
|
||||
drop user test_general@localhost;
|
||||
drop user test_general;
|
||||
drop user test_super@localhost;
|
||||
DROP TABLE test.tb3;
|
||||
269
build/lib/mysql/mysql-test/suite/funcs_1/r/innodb_trig_09.result
Normal file
269
build/lib/mysql/mysql-test/suite/funcs_1/r/innodb_trig_09.result
Normal file
@@ -0,0 +1,269 @@
|
||||
USE test;
|
||||
drop table if exists tb3;
|
||||
create table tb3 (
|
||||
f118 char not null DEFAULT 'a',
|
||||
f119 char binary not null DEFAULT b'101',
|
||||
f120 char ascii not null DEFAULT b'101',
|
||||
f121 char(50),
|
||||
f122 char(50),
|
||||
f129 binary not null DEFAULT b'101',
|
||||
f130 tinyint not null DEFAULT 99,
|
||||
f131 tinyint unsigned not null DEFAULT 99,
|
||||
f132 tinyint zerofill not null DEFAULT 99,
|
||||
f133 tinyint unsigned zerofill not null DEFAULT 99,
|
||||
f134 smallint not null DEFAULT 999,
|
||||
f135 smallint unsigned not null DEFAULT 999,
|
||||
f136 smallint zerofill not null DEFAULT 999,
|
||||
f137 smallint unsigned zerofill not null DEFAULT 999,
|
||||
f138 mediumint not null DEFAULT 9999,
|
||||
f139 mediumint unsigned not null DEFAULT 9999,
|
||||
f140 mediumint zerofill not null DEFAULT 9999,
|
||||
f141 mediumint unsigned zerofill not null DEFAULT 9999,
|
||||
f142 int not null DEFAULT 99999,
|
||||
f143 int unsigned not null DEFAULT 99999,
|
||||
f144 int zerofill not null DEFAULT 99999,
|
||||
f145 int unsigned zerofill not null DEFAULT 99999,
|
||||
f146 bigint not null DEFAULT 999999,
|
||||
f147 bigint unsigned not null DEFAULT 999999,
|
||||
f148 bigint zerofill not null DEFAULT 999999,
|
||||
f149 bigint unsigned zerofill not null DEFAULT 999999,
|
||||
f150 decimal not null DEFAULT 999.999,
|
||||
f151 decimal unsigned not null DEFAULT 999.17,
|
||||
f152 decimal zerofill not null DEFAULT 999.999,
|
||||
f153 decimal unsigned zerofill,
|
||||
f154 decimal (0),
|
||||
f155 decimal (64),
|
||||
f156 decimal (0) unsigned,
|
||||
f157 decimal (64) unsigned,
|
||||
f158 decimal (0) zerofill,
|
||||
f159 decimal (64) zerofill,
|
||||
f160 decimal (0) unsigned zerofill,
|
||||
f161 decimal (64) unsigned zerofill,
|
||||
f162 decimal (0,0),
|
||||
f163 decimal (63,30),
|
||||
f164 decimal (0,0) unsigned,
|
||||
f165 decimal (63,30) unsigned,
|
||||
f166 decimal (0,0) zerofill,
|
||||
f167 decimal (63,30) zerofill,
|
||||
f168 decimal (0,0) unsigned zerofill,
|
||||
f169 decimal (63,30) unsigned zerofill,
|
||||
f170 numeric,
|
||||
f171 numeric unsigned,
|
||||
f172 numeric zerofill,
|
||||
f173 numeric unsigned zerofill,
|
||||
f174 numeric (0),
|
||||
f175 numeric (64)
|
||||
) engine = <engine_to_be_used>;
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'f150' at row 1
|
||||
Note 1265 Data truncated for column 'f151' at row 1
|
||||
Note 1265 Data truncated for column 'f152' at row 1
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/memory_tb3.txt'
|
||||
into table tb3;
|
||||
|
||||
Testcase 3.5.9.1/2:
|
||||
-------------------
|
||||
Create trigger trg1 BEFORE UPDATE on tb3 for each row
|
||||
set new.f142 = 94087, @counter=@counter+1;
|
||||
TotalRows
|
||||
10
|
||||
Affected
|
||||
9
|
||||
NotAffected
|
||||
1
|
||||
NewValuew
|
||||
0
|
||||
set @counter=0;
|
||||
Update tb3 Set f142='1' where f130<100;
|
||||
select count(*) as ExpectedChanged, @counter as TrigCounter
|
||||
from tb3 where f142=94087;
|
||||
ExpectedChanged TrigCounter
|
||||
9 9
|
||||
select count(*) as ExpectedNotChange from tb3
|
||||
where f130<100 and f142<>94087;
|
||||
ExpectedNotChange
|
||||
0
|
||||
select count(*) as NonExpectedChanged from tb3
|
||||
where f130>=130 and f142=94087;
|
||||
NonExpectedChanged
|
||||
0
|
||||
drop trigger trg1;
|
||||
|
||||
Testcase 3.5.9.3:
|
||||
-----------------
|
||||
Create trigger trg2_a before update on tb3 for each row
|
||||
set @tr_var_b4_118=old.f118, @tr_var_b4_121=old.f121,
|
||||
@tr_var_b4_122=old.f122, @tr_var_b4_136=old.f136,
|
||||
@tr_var_b4_163=old.f163;
|
||||
Create trigger trg2_b after update on tb3 for each row
|
||||
set @tr_var_af_118=old.f118, @tr_var_af_121=old.f121,
|
||||
@tr_var_af_122=old.f122, @tr_var_af_136=old.f136,
|
||||
@tr_var_af_163=old.f163;
|
||||
Create trigger trg2_c before delete on tb3 for each row
|
||||
set @tr_var_b4_118=old.f118, @tr_var_b4_121=old.f121,
|
||||
@tr_var_b4_122=old.f122, @tr_var_b4_136=old.f136,
|
||||
@tr_var_b4_163=old.f163;
|
||||
Create trigger trg2_d after delete on tb3 for each row
|
||||
set @tr_var_af_118=old.f118, @tr_var_af_121=old.f121,
|
||||
@tr_var_af_122=old.f122, @tr_var_af_136=old.f136,
|
||||
@tr_var_af_163=old.f163;
|
||||
@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_163
|
||||
0 0 0 0 0
|
||||
@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163
|
||||
0 0 0 0 0
|
||||
Insert into tb3 (f122, f136, f163)
|
||||
values ('Test 3.5.9.3', 7, 123.17);
|
||||
Update tb3 Set f136=8 where f122='Test 3.5.9.3';
|
||||
select f118, f121, f122, f136, f163 from tb3 where f122='Test 3.5.9.3' order by f136;
|
||||
f118 f121 f122 f136 f163
|
||||
a NULL Test 3.5.9.3 00008 123.170000000000000000000000000000
|
||||
select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122,
|
||||
@tr_var_b4_136, @tr_var_b4_163;
|
||||
@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_163
|
||||
a NULL Test 3.5.9.3 7 123.170000000000000000000000000000
|
||||
select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122,
|
||||
@tr_var_af_136, @tr_var_af_163;
|
||||
@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163
|
||||
a NULL Test 3.5.9.3 7 123.170000000000000000000000000000
|
||||
@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_163
|
||||
0 0 0 0 0
|
||||
@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163
|
||||
0 0 0 0 0
|
||||
delete from tb3 where f122='Test 3.5.9.3';
|
||||
select f118, f121, f122, f136, f163 from tb3 where f122='Test 3.5.9.3' order by f136;
|
||||
f118 f121 f122 f136 f163
|
||||
select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122,
|
||||
@tr_var_b4_136, @tr_var_b4_163;
|
||||
@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_163
|
||||
a NULL Test 3.5.9.3 8 123.170000000000000000000000000000
|
||||
select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122,
|
||||
@tr_var_af_136, @tr_var_af_163;
|
||||
@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_163
|
||||
a NULL Test 3.5.9.3 8 123.170000000000000000000000000000
|
||||
drop trigger trg2_a;
|
||||
drop trigger trg2_b;
|
||||
drop trigger trg2_c;
|
||||
drop trigger trg2_d;
|
||||
|
||||
Testcase 3.5.9.4:
|
||||
-----------------
|
||||
Create trigger trg3_a before insert on tb3 for each row
|
||||
set @tr_var_b4_118=new.f118, @tr_var_b4_121=new.f121,
|
||||
@tr_var_b4_122=new.f122, @tr_var_b4_136=new.f136,
|
||||
@tr_var_b4_151=new.f151, @tr_var_b4_163=new.f163;
|
||||
Create trigger trg3_b after insert on tb3 for each row
|
||||
set @tr_var_af_118=new.f118, @tr_var_af_121=new.f121,
|
||||
@tr_var_af_122=new.f122, @tr_var_af_136=new.f136,
|
||||
@tr_var_af_151=new.f151, @tr_var_af_163=new.f163;
|
||||
Create trigger trg3_c before update on tb3 for each row
|
||||
set @tr_var_b4_118=new.f118, @tr_var_b4_121=new.f121,
|
||||
@tr_var_b4_122=new.f122, @tr_var_b4_136=new.f136,
|
||||
@tr_var_b4_151=new.f151, @tr_var_b4_163=new.f163;
|
||||
Create trigger trg3_d after update on tb3 for each row
|
||||
set @tr_var_af_118=new.f118, @tr_var_af_121=new.f121,
|
||||
@tr_var_af_122=new.f122, @tr_var_af_136=new.f136,
|
||||
@tr_var_af_151=new.f151, @tr_var_af_163=new.f163;
|
||||
@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_151 @tr_var_b4_163
|
||||
0 0 0 0 0 0
|
||||
@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163
|
||||
0 0 0 0 0 0
|
||||
Insert into tb3 (f122, f136, f151, f163)
|
||||
values ('Test 3.5.9.4', 7, DEFAULT, 995.24);
|
||||
select f118, f121, f122, f136, f151, f163 from tb3
|
||||
where f122 like 'Test 3.5.9.4%' order by f163;
|
||||
f118 f121 f122 f136 f151 f163
|
||||
a NULL Test 3.5.9.4 00007 999 995.240000000000000000000000000000
|
||||
select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122,
|
||||
@tr_var_b4_136, @tr_var_b4_151, @tr_var_b4_163;
|
||||
@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_151 @tr_var_b4_163
|
||||
a NULL Test 3.5.9.4 7 999 995.240000000000000000000000000000
|
||||
select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122,
|
||||
@tr_var_af_136, @tr_var_af_151, @tr_var_af_163;
|
||||
@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163
|
||||
a NULL Test 3.5.9.4 7 999 995.240000000000000000000000000000
|
||||
@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_151 @tr_var_b4_163
|
||||
0 0 0 0 0 0
|
||||
@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163
|
||||
0 0 0 0 0 0
|
||||
Update tb3 Set f122='Test 3.5.9.4-trig', f136=NULL, f151=DEFAULT, f163=NULL
|
||||
where f122='Test 3.5.9.4';
|
||||
Warnings:
|
||||
Warning 1048 Column 'f136' cannot be null
|
||||
Update tb3 Set f122='Test 3.5.9.4-trig', f136=0, f151=DEFAULT, f163=NULL
|
||||
where f122='Test 3.5.9.4';
|
||||
select f118, f121, f122, f136, f151, f163 from tb3
|
||||
where f122 like 'Test 3.5.9.4-trig' order by f163;
|
||||
f118 f121 f122 f136 f151 f163
|
||||
a NULL Test 3.5.9.4-trig 00000 999 NULL
|
||||
select @tr_var_b4_118, @tr_var_b4_121, @tr_var_b4_122,
|
||||
@tr_var_b4_136, @tr_var_b4_151, @tr_var_b4_163;
|
||||
@tr_var_b4_118 @tr_var_b4_121 @tr_var_b4_122 @tr_var_b4_136 @tr_var_b4_151 @tr_var_b4_163
|
||||
a NULL Test 3.5.9.4-trig 0 999 NULL
|
||||
select @tr_var_af_118, @tr_var_af_121, @tr_var_af_122,
|
||||
@tr_var_af_136, @tr_var_af_151, @tr_var_af_163;
|
||||
@tr_var_af_118 @tr_var_af_121 @tr_var_af_122 @tr_var_af_136 @tr_var_af_151 @tr_var_af_163
|
||||
a NULL Test 3.5.9.4-trig 0 999 NULL
|
||||
drop trigger trg3_a;
|
||||
drop trigger trg3_b;
|
||||
drop trigger trg3_c;
|
||||
drop trigger trg3_d;
|
||||
delete from tb3 where f122='Test 3.5.9.4-trig';
|
||||
|
||||
Testcase 3.5.9.5: (implied in previous tests)
|
||||
---------------------------------------------
|
||||
|
||||
Testcase 3.5.9.6:
|
||||
-----------------
|
||||
create trigger trg4a before insert on tb3 for each row
|
||||
set @temp1= old.f120;
|
||||
ERROR HY000: There is no OLD row in on INSERT trigger
|
||||
create trigger trg4b after insert on tb3 for each row
|
||||
set old.f120= 'test';
|
||||
ERROR HY000: Updating of OLD row is not allowed in trigger
|
||||
drop trigger trg4a;
|
||||
drop trigger trg4b;
|
||||
|
||||
Testcase 3.5.9.7: (implied in previous tests)
|
||||
---------------------------------------------
|
||||
|
||||
Testcase 3.5.9.8: (implied in previous tests)
|
||||
---------------------------------------------
|
||||
|
||||
Testcase 3.5.9.9:
|
||||
-----------------
|
||||
create trigger trg5a before DELETE on tb3 for each row
|
||||
set @temp1=new.f122;
|
||||
ERROR HY000: There is no NEW row in on DELETE trigger
|
||||
create trigger trg5b after DELETE on tb3 for each row
|
||||
set new.f122='test';
|
||||
ERROR HY000: There is no NEW row in on DELETE trigger
|
||||
drop trigger trg5a;
|
||||
drop trigger trg5b;
|
||||
|
||||
Testcase 3.5.9.10: (implied in previous tests)
|
||||
----------------------------------------------
|
||||
|
||||
Testcase 3.5.9.11: covered by 3.5.9.9
|
||||
-------------------------------------
|
||||
|
||||
Testcase 3.5.9.12: covered by 3.5.9.6
|
||||
-------------------------------------
|
||||
|
||||
Testcase 3.5.9.13:
|
||||
------------------
|
||||
create trigger trg6a before UPDATE on tb3 for each row
|
||||
set old.f118='C', new.f118='U';
|
||||
ERROR HY000: Updating of OLD row is not allowed in trigger
|
||||
create trigger trg6b after INSERT on tb3 for each row
|
||||
set old.f136=163, new.f118='U';
|
||||
ERROR HY000: Updating of OLD row is not allowed in trigger
|
||||
create trigger trg6c after UPDATE on tb3 for each row
|
||||
set old.f136=NULL;
|
||||
ERROR HY000: Updating of OLD row is not allowed in trigger
|
||||
drop trigger trg6a;
|
||||
drop trigger trg6b;
|
||||
drop trigger trg6c;
|
||||
|
||||
Testcase 3.5.9.14: (implied in previous tests)
|
||||
----------------------------------------------
|
||||
DROP TABLE test.tb3;
|
||||
@@ -0,0 +1,394 @@
|
||||
USE test;
|
||||
drop table if exists tb3;
|
||||
create table tb3 (
|
||||
f118 char not null DEFAULT 'a',
|
||||
f119 char binary not null DEFAULT b'101',
|
||||
f120 char ascii not null DEFAULT b'101',
|
||||
f121 char(50),
|
||||
f122 char(50),
|
||||
f129 binary not null DEFAULT b'101',
|
||||
f130 tinyint not null DEFAULT 99,
|
||||
f131 tinyint unsigned not null DEFAULT 99,
|
||||
f132 tinyint zerofill not null DEFAULT 99,
|
||||
f133 tinyint unsigned zerofill not null DEFAULT 99,
|
||||
f134 smallint not null DEFAULT 999,
|
||||
f135 smallint unsigned not null DEFAULT 999,
|
||||
f136 smallint zerofill not null DEFAULT 999,
|
||||
f137 smallint unsigned zerofill not null DEFAULT 999,
|
||||
f138 mediumint not null DEFAULT 9999,
|
||||
f139 mediumint unsigned not null DEFAULT 9999,
|
||||
f140 mediumint zerofill not null DEFAULT 9999,
|
||||
f141 mediumint unsigned zerofill not null DEFAULT 9999,
|
||||
f142 int not null DEFAULT 99999,
|
||||
f143 int unsigned not null DEFAULT 99999,
|
||||
f144 int zerofill not null DEFAULT 99999,
|
||||
f145 int unsigned zerofill not null DEFAULT 99999,
|
||||
f146 bigint not null DEFAULT 999999,
|
||||
f147 bigint unsigned not null DEFAULT 999999,
|
||||
f148 bigint zerofill not null DEFAULT 999999,
|
||||
f149 bigint unsigned zerofill not null DEFAULT 999999,
|
||||
f150 decimal not null DEFAULT 999.999,
|
||||
f151 decimal unsigned not null DEFAULT 999.17,
|
||||
f152 decimal zerofill not null DEFAULT 999.999,
|
||||
f153 decimal unsigned zerofill,
|
||||
f154 decimal (0),
|
||||
f155 decimal (64),
|
||||
f156 decimal (0) unsigned,
|
||||
f157 decimal (64) unsigned,
|
||||
f158 decimal (0) zerofill,
|
||||
f159 decimal (64) zerofill,
|
||||
f160 decimal (0) unsigned zerofill,
|
||||
f161 decimal (64) unsigned zerofill,
|
||||
f162 decimal (0,0),
|
||||
f163 decimal (63,30),
|
||||
f164 decimal (0,0) unsigned,
|
||||
f165 decimal (63,30) unsigned,
|
||||
f166 decimal (0,0) zerofill,
|
||||
f167 decimal (63,30) zerofill,
|
||||
f168 decimal (0,0) unsigned zerofill,
|
||||
f169 decimal (63,30) unsigned zerofill,
|
||||
f170 numeric,
|
||||
f171 numeric unsigned,
|
||||
f172 numeric zerofill,
|
||||
f173 numeric unsigned zerofill,
|
||||
f174 numeric (0),
|
||||
f175 numeric (64)
|
||||
) engine = <engine_to_be_used>;
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'f150' at row 1
|
||||
Note 1265 Data truncated for column 'f151' at row 1
|
||||
Note 1265 Data truncated for column 'f152' at row 1
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/memory_tb3.txt'
|
||||
into table tb3;
|
||||
|
||||
Testcase 3.5.10.1/2/3:
|
||||
----------------------
|
||||
Create view vw11 as select * from tb3
|
||||
where f122 like 'Test 3.5.10.1/2/3%';
|
||||
Create trigger trg1a before insert on tb3
|
||||
for each row set new.f163=111.11;
|
||||
Create trigger trg1b after insert on tb3
|
||||
for each row set @test_var='After Insert';
|
||||
Create trigger trg1c before update on tb3
|
||||
for each row set new.f121='Y', new.f122='Test 3.5.10.1/2/3-Update';
|
||||
Create trigger trg1d after update on tb3
|
||||
for each row set @test_var='After Update';
|
||||
Create trigger trg1e before delete on tb3
|
||||
for each row set @test_var=5;
|
||||
Create trigger trg1f after delete on tb3
|
||||
for each row set @test_var= 2* @test_var+7;
|
||||
Insert into vw11 (f122, f151) values ('Test 3.5.10.1/2/3', 1);
|
||||
Insert into vw11 (f122, f151) values ('Test 3.5.10.1/2/3', 2);
|
||||
Insert into vw11 (f122, f151) values ('Not in View', 3);
|
||||
select f121, f122, f151, f163
|
||||
from tb3 where f122 like 'Test 3.5.10.1/2/3%' order by f151;
|
||||
f121 f122 f151 f163
|
||||
NULL Test 3.5.10.1/2/3 1 111.110000000000000000000000000000
|
||||
NULL Test 3.5.10.1/2/3 2 111.110000000000000000000000000000
|
||||
select f121, f122, f151, f163 from vw11;
|
||||
f121 f122 f151 f163
|
||||
NULL Test 3.5.10.1/2/3 1 111.110000000000000000000000000000
|
||||
NULL Test 3.5.10.1/2/3 2 111.110000000000000000000000000000
|
||||
select f121, f122, f151, f163
|
||||
from tb3 where f122 like 'Not in View';
|
||||
f121 f122 f151 f163
|
||||
NULL Not in View 3 111.110000000000000000000000000000
|
||||
Update vw11 set f163=1;
|
||||
select f121, f122, f151, f163 from tb3
|
||||
where f122 like 'Test 3.5.10.1/2/3%' order by f151;
|
||||
f121 f122 f151 f163
|
||||
Y Test 3.5.10.1/2/3-Update 1 1.000000000000000000000000000000
|
||||
Y Test 3.5.10.1/2/3-Update 2 1.000000000000000000000000000000
|
||||
select f121, f122, f151, f163 from vw11;
|
||||
f121 f122 f151 f163
|
||||
Y Test 3.5.10.1/2/3-Update 1 1.000000000000000000000000000000
|
||||
Y Test 3.5.10.1/2/3-Update 2 1.000000000000000000000000000000
|
||||
set @test_var=0;
|
||||
Select @test_var as 'before delete';
|
||||
before delete
|
||||
0
|
||||
delete from vw11 where f151=1;
|
||||
select f121, f122, f151, f163 from tb3
|
||||
where f122 like 'Test 3.5.10.1/2/3%' order by f151;
|
||||
f121 f122 f151 f163
|
||||
Y Test 3.5.10.1/2/3-Update 2 1.000000000000000000000000000000
|
||||
select f121, f122, f151, f163 from vw11;
|
||||
f121 f122 f151 f163
|
||||
Y Test 3.5.10.1/2/3-Update 2 1.000000000000000000000000000000
|
||||
Select @test_var as 'after delete';
|
||||
after delete
|
||||
17
|
||||
drop view vw11;
|
||||
drop trigger trg1a;
|
||||
drop trigger trg1b;
|
||||
drop trigger trg1c;
|
||||
drop trigger trg1d;
|
||||
drop trigger trg1e;
|
||||
drop trigger trg1f;
|
||||
delete from tb3 where f122 like 'Test 3.5.10.1/2/3%';
|
||||
|
||||
Testcase 3.5.10.4:
|
||||
------------------
|
||||
create table tb_load (f1 int, f2 char(25),f3 int) engine = <engine_to_be_used>;
|
||||
Create trigger trg4 before insert on tb_load
|
||||
for each row set new.f3=-(new.f1 div 5), @counter= @counter+1;
|
||||
set @counter= 0;
|
||||
select @counter as 'Rows Loaded Before';
|
||||
Rows Loaded Before
|
||||
0
|
||||
load data infile '<MYSQLTEST_VARDIR>/std_data/funcs_1/t9.txt' into table tb_load;
|
||||
select @counter as 'Rows Loaded After';
|
||||
Rows Loaded After
|
||||
10
|
||||
Select * from tb_load order by f1 limit 10;
|
||||
f1 f2 f3
|
||||
-5000 a` 1000
|
||||
-4999 aaa 999
|
||||
-4998 abaa 999
|
||||
-4997 acaaa 999
|
||||
-4996 adaaaa 999
|
||||
-4995 aeaaaaa 999
|
||||
-4994 afaaaaaa 998
|
||||
-4993 agaaaaaaa 998
|
||||
-4992 a^aaaaaaaa 998
|
||||
-4991 a_aaaaaaaaa 998
|
||||
drop trigger trg4;
|
||||
drop table tb_load;
|
||||
|
||||
Testcase 3.5.10.5: (implemented in trig_frkey.test)
|
||||
---------------------------------------------------
|
||||
|
||||
Testcase 3.5.10.6: (implemented in trig_frkey.test)
|
||||
---------------------------------------------------
|
||||
|
||||
Testcase 3.5.10.extra:
|
||||
----------------------
|
||||
create table t1_sp (var136 tinyint, var151 decimal) engine = <engine_to_be_used>;
|
||||
create trigger trg before insert on t1_sp
|
||||
for each row set @counter=@counter+1;
|
||||
create procedure trig_sp()
|
||||
begin
|
||||
declare done int default 0;
|
||||
declare var151 decimal;
|
||||
declare var136 tinyint;
|
||||
declare cur1 cursor for select f136, f151 from tb3;
|
||||
declare continue handler for sqlstate '01000' set done = 1;
|
||||
open cur1;
|
||||
fetch cur1 into var136, var151;
|
||||
wl_loop: WHILE NOT done DO
|
||||
insert into t1_sp values (var136, var151);
|
||||
fetch cur1 into var136, var151;
|
||||
END WHILE wl_loop;
|
||||
close cur1;
|
||||
end//
|
||||
set @counter=0;
|
||||
select @counter;
|
||||
@counter
|
||||
0
|
||||
call trig_sp();
|
||||
ERROR 02000: No data - zero rows fetched, selected, or processed
|
||||
select @counter;
|
||||
@counter
|
||||
11
|
||||
select count(*) from tb3;
|
||||
count(*)
|
||||
11
|
||||
select count(*) from t1_sp;
|
||||
count(*)
|
||||
11
|
||||
drop procedure trig_sp;
|
||||
drop trigger trg;
|
||||
drop table t1_sp;
|
||||
|
||||
Testcase 3.5.11.1 (implemented in trig_perf.test)
|
||||
-------------------------------------------------
|
||||
|
||||
Testcase y.y.y.2: Check for triggers starting triggers
|
||||
------------------------------------------------------
|
||||
use test;
|
||||
drop table if exists t1;
|
||||
drop table if exists t2_1;
|
||||
drop table if exists t2_2;
|
||||
drop table if exists t2_3;
|
||||
drop table if exists t2_4;
|
||||
drop table if exists t3;
|
||||
create table t1 (f1 integer) engine = <engine_to_be_used>;
|
||||
create table t2_1 (f1 integer) engine = <engine_to_be_used>;
|
||||
create table t2_2 (f1 integer) engine = <engine_to_be_used>;
|
||||
create table t2_3 (f1 integer) engine = <engine_to_be_used>;
|
||||
create table t2_4 (f1 integer) engine = <engine_to_be_used>;
|
||||
create table t3 (f1 integer) engine = <engine_to_be_used>;
|
||||
insert into t1 values (1);
|
||||
create trigger tr1 after insert on t1 for each row
|
||||
BEGIN
|
||||
insert into t2_1 (f1) values (new.f1+1);
|
||||
insert into t2_2 (f1) values (new.f1+1);
|
||||
insert into t2_3 (f1) values (new.f1+1);
|
||||
insert into t2_4 (f1) values (new.f1+1);
|
||||
END//
|
||||
create trigger tr2_1 after insert on t2_1 for each row
|
||||
insert into t3 (f1) values (new.f1+10);
|
||||
create trigger tr2_2 after insert on t2_2 for each row
|
||||
insert into t3 (f1) values (new.f1+100);
|
||||
create trigger tr2_3 after insert on t2_3 for each row
|
||||
insert into t3 (f1) values (new.f1+1000);
|
||||
create trigger tr2_4 after insert on t2_4 for each row
|
||||
insert into t3 (f1) values (new.f1+10000);
|
||||
insert into t1 values (1);
|
||||
select * from t3 order by f1;
|
||||
f1
|
||||
12
|
||||
102
|
||||
1002
|
||||
10002
|
||||
drop trigger tr1;
|
||||
drop trigger tr2_1;
|
||||
drop trigger tr2_2;
|
||||
drop trigger tr2_3;
|
||||
drop trigger tr2_4;
|
||||
drop table t1, t2_1, t2_2, t2_3, t2_4, t3;
|
||||
|
||||
Testcase y.y.y.3: Circular trigger reference
|
||||
--------------------------------------------
|
||||
use test;
|
||||
drop table if exists t1;
|
||||
drop table if exists t2;
|
||||
drop table if exists t3;
|
||||
drop table if exists t4;
|
||||
create table t1 (f1 integer) engine = <engine_to_be_used>;
|
||||
create table t2 (f2 integer) engine = <engine_to_be_used>;
|
||||
create table t3 (f3 integer) engine = <engine_to_be_used>;
|
||||
create table t4 (f4 integer) engine = <engine_to_be_used>;
|
||||
insert into t1 values (0);
|
||||
create trigger tr1 after insert on t1
|
||||
for each row insert into t2 (f2) values (new.f1+1);
|
||||
create trigger tr2 after insert on t2
|
||||
for each row insert into t3 (f3) values (new.f2+1);
|
||||
create trigger tr3 after insert on t3
|
||||
for each row insert into t4 (f4) values (new.f3+1);
|
||||
create trigger tr4 after insert on t4
|
||||
for each row insert into t1 (f1) values (new.f4+1);
|
||||
insert into t1 values (1);
|
||||
ERROR HY000: Can't update table 't1' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
|
||||
select * from t1 order by f1;
|
||||
f1
|
||||
0
|
||||
select * from t2 order by f2;
|
||||
f2
|
||||
select * from t3 order by f3;
|
||||
f3
|
||||
select * from t4 order by f4;
|
||||
f4
|
||||
drop trigger tr1;
|
||||
drop trigger tr2;
|
||||
drop trigger tr3;
|
||||
drop trigger tr4;
|
||||
drop table t1;
|
||||
drop table t2;
|
||||
drop table t3;
|
||||
drop table t4;
|
||||
|
||||
Testcase y.y.y.4: Recursive trigger/SP references
|
||||
-------------------------------------------------
|
||||
set @sql_mode='traditional';
|
||||
create table t1_sp (
|
||||
count integer,
|
||||
var136 tinyint,
|
||||
var151 decimal) engine = <engine_to_be_used>;
|
||||
create procedure trig_sp()
|
||||
begin
|
||||
declare done int default 0;
|
||||
declare var151 decimal;
|
||||
declare var136 tinyint;
|
||||
declare cur1 cursor for select f136, f151 from tb3;
|
||||
declare continue handler for sqlstate '01000' set done = 1;
|
||||
set @counter= @counter+1;
|
||||
open cur1;
|
||||
fetch cur1 into var136, var151;
|
||||
wl_loop: WHILE NOT done DO
|
||||
insert into t1_sp values (@counter, var136, var151);
|
||||
fetch cur1 into var136, var151;
|
||||
END WHILE wl_loop;
|
||||
close cur1;
|
||||
end//
|
||||
create trigger trg before insert on t1_sp
|
||||
for each row call trig_sp();
|
||||
set @counter=0;
|
||||
select @counter;
|
||||
@counter
|
||||
0
|
||||
call trig_sp();
|
||||
ERROR HY000: Recursive limit 0 (as set by the max_sp_recursion_depth variable) was exceeded for routine trig_sp
|
||||
select @counter;
|
||||
@counter
|
||||
1
|
||||
select count(*) from tb3;
|
||||
count(*)
|
||||
11
|
||||
select count(*) from t1_sp;
|
||||
count(*)
|
||||
0
|
||||
set @@max_sp_recursion_depth= 10;
|
||||
set @counter=0;
|
||||
select @counter;
|
||||
@counter
|
||||
0
|
||||
call trig_sp();
|
||||
ERROR HY000: Can't update table 't1_sp' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
|
||||
select @counter;
|
||||
@counter
|
||||
2
|
||||
select count(*) from tb3;
|
||||
count(*)
|
||||
11
|
||||
select count(*) from t1_sp;
|
||||
count(*)
|
||||
0
|
||||
drop procedure trig_sp;
|
||||
drop trigger trg;
|
||||
drop table t1_sp;
|
||||
|
||||
Testcase y.y.y.5: Rollback of nested trigger references
|
||||
-------------------------------------------------------
|
||||
set @@sql_mode='traditional';
|
||||
use test;
|
||||
drop table if exists t1;
|
||||
drop table if exists t2;
|
||||
drop table if exists t3;
|
||||
drop table if exists t4;
|
||||
create table t1 (f1 integer) engine = <engine_to_be_used>;
|
||||
create table t2 (f2 integer) engine = <engine_to_be_used>;
|
||||
create table t3 (f3 integer) engine = <engine_to_be_used>;
|
||||
create table t4 (f4 tinyint) engine = <engine_to_be_used>;
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`f1` int(11) DEFAULT NULL
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
insert into t1 values (1);
|
||||
create trigger tr1 after insert on t1
|
||||
for each row insert into t2 (f2) values (new.f1+1);
|
||||
create trigger tr2 after insert on t2
|
||||
for each row insert into t3 (f3) values (new.f2+1);
|
||||
create trigger tr3 after insert on t3
|
||||
for each row insert into t4 (f4) values (new.f3+1000);
|
||||
set autocommit=0;
|
||||
start transaction;
|
||||
insert into t1 values (1);
|
||||
ERROR 22003: Out of range value for column 'f4' at row 1
|
||||
commit;
|
||||
select * from t1 order by f1;
|
||||
f1
|
||||
1
|
||||
select * from t2 order by f2;
|
||||
f2
|
||||
select * from t3 order by f3;
|
||||
f3
|
||||
drop trigger tr1;
|
||||
drop trigger tr2;
|
||||
drop trigger tr3;
|
||||
drop table t1;
|
||||
drop table t2;
|
||||
drop table t3;
|
||||
drop table t4;
|
||||
DROP TABLE test.tb3;
|
||||
@@ -0,0 +1,73 @@
|
||||
|
||||
Testcase x.x.x.1:
|
||||
-----------------
|
||||
DROP TABLE IF EXISTS t0, t1, t2;
|
||||
CREATE TABLE t0 (col1 CHAR(50))
|
||||
ENGINE = <engine_to_be_tested>;
|
||||
CREATE TABLE t1 (id INT NOT NULL, col1 CHAR(50), PRIMARY KEY (id))
|
||||
ENGINE = <engine_to_be_tested>;
|
||||
CREATE TABLE t2 (id INT PRIMARY KEY, f_id INT,
|
||||
INDEX par_ind (f_id), col1 CHAR(50),
|
||||
FOREIGN KEY (f_id) REFERENCES t1(id) ON DELETE SET NULL)
|
||||
ENGINE = <engine_to_be_tested>;
|
||||
INSERT INTO t1 VALUES (1,'Department A');
|
||||
INSERT INTO t1 VALUES (2,'Department B');
|
||||
INSERT INTO t1 VALUES (3,'Department C');
|
||||
INSERT INTO t2 VALUES (1,2,'Emp 1');
|
||||
INSERT INTO t2 VALUES (2,2,'Emp 2');
|
||||
INSERT INTO t2 VALUES (3,2,'Emp 3');
|
||||
CREATE TRIGGER trig AFTER INSERT ON t0 FOR EACH ROW
|
||||
DELETE FROM t1 WHERE col1 = new.col1;
|
||||
SELECT * FROM t2;
|
||||
id f_id col1
|
||||
1 2 Emp 1
|
||||
2 2 Emp 2
|
||||
3 2 Emp 3
|
||||
LOCK TABLES t0 WRITE, t1 WRITE;
|
||||
INSERT INTO t0 VALUES ('Department B');
|
||||
UNLOCK TABLES;
|
||||
SELECT * FROM t2;
|
||||
id f_id col1
|
||||
1 NULL Emp 1
|
||||
2 NULL Emp 2
|
||||
3 NULL Emp 3
|
||||
DROP TRIGGER trig;
|
||||
DROP TABLE t2, t1;
|
||||
|
||||
Testcase x.x.x.2:
|
||||
-----------------
|
||||
DROP TABLE IF EXISTS t1, t2;
|
||||
CREATE TABLE t1 (id INT NOT NULL, col1 CHAR(50), PRIMARY KEY (id))
|
||||
ENGINE = <engine_to_be_tested>;
|
||||
CREATE TABLE t2 (id INT PRIMARY KEY, f_id INT,
|
||||
INDEX par_ind (f_id), col1 CHAR(50),
|
||||
FOREIGN KEY (f_id) REFERENCES t1(id) ON UPDATE CASCADE)
|
||||
ENGINE = <engine_to_be_tested>;
|
||||
INSERT INTO t1 VALUES (1,'Department A');
|
||||
INSERT INTO t1 VALUES (2,'Department B');
|
||||
INSERT INTO t1 VALUES (3,'Department C');
|
||||
INSERT INTO t2 VALUES (1,2,'Emp 1');
|
||||
INSERT INTO t2 VALUES (2,3,'Emp 2');
|
||||
insert into t2 VALUES (3,4,'Emp 3');
|
||||
ERROR 23000: Cannot add or update a child row: a foreign key constraint fails (`test`.`t2`, CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`f_id`) REFERENCES `t1` (`id`) ON UPDATE CASCADE)
|
||||
CREATE TRIGGER tr_t2 BEFORE INSERT ON t2 FOR EACH ROW
|
||||
INSERT INTO t1 VALUES(new.f_id, CONCAT('New Department ', new.f_id));
|
||||
LOCK TABLES t1 WRITE, t2 WRITE;
|
||||
INSERT INTO t2 VALUES (3,4,'Emp 3');
|
||||
UNLOCK TABLES;
|
||||
SELECT * FROM t1;
|
||||
id col1
|
||||
1 Department A
|
||||
2 Department B
|
||||
3 Department C
|
||||
4 New Department 4
|
||||
SELECT * FROM t2;
|
||||
id f_id col1
|
||||
1 2 Emp 1
|
||||
2 3 Emp 2
|
||||
3 4 Emp 3
|
||||
DROP TRIGGER tr_t2;
|
||||
DROP TABLE t2, t1, t0;
|
||||
|
||||
Foreign Key tests disabled (bug 11472 - stored in trig_frkey2.test)
|
||||
-------------------------------------------------------------------
|
||||
22905
build/lib/mysql/mysql-test/suite/funcs_1/r/innodb_views.result
Normal file
22905
build/lib/mysql/mysql-test/suite/funcs_1/r/innodb_views.result
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,602 @@
|
||||
SHOW DATABASES LIKE 'information_schema';
|
||||
Database (information_schema)
|
||||
information_schema
|
||||
#######################################################################
|
||||
# Testcase 3.2.1.20: USE INFORMATION_SCHEMA is supported
|
||||
#######################################################################
|
||||
# Switch to connection default
|
||||
USE test;
|
||||
SELECT DATABASE();
|
||||
DATABASE()
|
||||
test
|
||||
USE information_schema;
|
||||
SELECT DATABASE();
|
||||
DATABASE()
|
||||
information_schema
|
||||
DROP USER 'testuser1'@'localhost';
|
||||
CREATE USER 'testuser1'@'localhost';
|
||||
# Establish connection testuser1 (user=testuser1)
|
||||
SELECT DATABASE();
|
||||
DATABASE()
|
||||
test
|
||||
USE information_schema;
|
||||
SELECT DATABASE();
|
||||
DATABASE()
|
||||
information_schema
|
||||
# Switch to connection default and close connection testuser1
|
||||
DROP USER 'testuser1'@'localhost';
|
||||
#######################################################################
|
||||
# Testcase TBD1: The INFORMATION_SCHEMA cannot be dropped.
|
||||
#######################################################################
|
||||
DROP DATABASE information_schema;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
#######################################################################
|
||||
# Testcase TBD2: There cannot be a second database INFORMATION_SCHEMA.
|
||||
#######################################################################
|
||||
CREATE DATABASE information_schema;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
##################################################################################
|
||||
# Testcase 3.2.1.6+3.2.1.7: No user may create an INFORMATION_SCHEMA table or view
|
||||
##################################################################################
|
||||
# Switch to connection default (user=root)
|
||||
USE information_schema;
|
||||
CREATE TABLE schemata ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE tables ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE columns ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE character_sets ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE collations ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE collation_character_set_applicability ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE routines ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE statistics ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE views ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE user_privileges ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE schema_privileges ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE table_privileges ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE column_privileges ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE table_constraints ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE key_column_usage ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE triggers ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE t1 (f1 INT, f2 INT, f3 INT);
|
||||
ERROR 42S02: Unknown table 't1' in information_schema
|
||||
CREATE VIEW tables AS SELECT 'garbage';
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
CREATE VIEW tables AS SELECT * FROM information_schema.tables;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
CREATE VIEW v1 AS SELECT 'garbage';
|
||||
ERROR 42S02: Unknown table 'v1' in information_schema
|
||||
USE test;
|
||||
CREATE TABLE information_schema. schemata ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE information_schema. tables ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE information_schema. columns ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE information_schema. character_sets ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE information_schema. collations ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE information_schema. collation_character_set_applicability ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE information_schema. routines ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE information_schema. statistics ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE information_schema. views ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE information_schema. user_privileges ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE information_schema. schema_privileges ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE information_schema. table_privileges ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE information_schema. column_privileges ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE information_schema. table_constraints ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE information_schema. key_column_usage ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE information_schema. triggers ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE information_schema.t1 (f1 INT, f2 INT, f3 INT);
|
||||
ERROR 42S02: Unknown table 't1' in information_schema
|
||||
CREATE VIEW information_schema.tables AS SELECT 'garbage';
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
CREATE VIEW information_schema.tables AS
|
||||
SELECT * FROM information_schema.tables;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
CREATE VIEW information_schema.v1 AS SELECT 'garbage';
|
||||
ERROR 42S02: Unknown table 'v1' in information_schema
|
||||
DROP USER 'testuser1'@'localhost';
|
||||
CREATE USER 'testuser1'@'localhost';
|
||||
GRANT ALL ON *.* TO testuser1@localhost;
|
||||
SHOW GRANTS FOR testuser1@localhost;
|
||||
Grants for testuser1@localhost
|
||||
GRANT ALL PRIVILEGES ON *.* TO 'testuser1'@'localhost'
|
||||
# Establish connection testuser1 (user=testuser1)
|
||||
USE information_schema;
|
||||
CREATE TABLE schemata ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE tables ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE columns ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE character_sets ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE collations ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE collation_character_set_applicability ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE routines ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE statistics ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE views ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE user_privileges ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE schema_privileges ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE table_privileges ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE column_privileges ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE table_constraints ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE key_column_usage ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE triggers ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE t1 (f1 INT, f2 INT, f3 INT);
|
||||
ERROR 42S02: Unknown table 't1' in information_schema
|
||||
CREATE VIEW tables AS SELECT 'garbage';
|
||||
ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema'
|
||||
CREATE VIEW tables AS SELECT * FROM information_schema.tables;
|
||||
ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema'
|
||||
CREATE VIEW v1 AS SELECT 'garbage';
|
||||
ERROR 42S02: Unknown table 'v1' in information_schema
|
||||
USE test;
|
||||
CREATE TABLE information_schema. schemata ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE information_schema. tables ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE information_schema. columns ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE information_schema. character_sets ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE information_schema. collations ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE information_schema. collation_character_set_applicability ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE information_schema. routines ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE information_schema. statistics ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE information_schema. views ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE information_schema. user_privileges ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE information_schema. schema_privileges ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE information_schema. table_privileges ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE information_schema. column_privileges ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE information_schema. table_constraints ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE information_schema. key_column_usage ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE information_schema. triggers ( c1 INT );
|
||||
ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema'
|
||||
CREATE TABLE information_schema.t1 (f1 INT, f2 INT, f3 INT);
|
||||
ERROR 42S02: Unknown table 't1' in information_schema
|
||||
CREATE VIEW information_schema.tables AS SELECT 'garbage';
|
||||
ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema'
|
||||
CREATE VIEW information_schema.tables AS
|
||||
SELECT * FROM information_schema.tables;
|
||||
ERROR 42000: Access denied for user 'testuser1'@'localhost' to database 'information_schema'
|
||||
CREATE VIEW information_schema.v1 AS SELECT 'garbage';
|
||||
ERROR 42S02: Unknown table 'v1' in information_schema
|
||||
# Switch to connection default (user=root) and close connection testuser1
|
||||
DROP USER 'testuser1'@'localhost';
|
||||
###############################################################################
|
||||
# Testcase 3.2.1.1+3.2.1.2: INFORMATION_SCHEMA tables can be queried via SELECT
|
||||
###############################################################################
|
||||
DROP DATABASE IF EXISTS db_datadict;
|
||||
CREATE DATABASE db_datadict;
|
||||
CREATE TABLE db_datadict.t1_first (f1 BIGINT UNIQUE, f2 BIGINT)
|
||||
ENGINE = <some_engine>;
|
||||
CREATE TABLE db_datadict.t1_second (f1 BIGINT UNIQUE, f2 BIGINT)
|
||||
ENGINE = <some_engine>;
|
||||
# Attention: The protocolling of the next result set is disabled.
|
||||
SELECT * FROM information_schema.tables;
|
||||
SELECT table_name FROM information_schema.tables
|
||||
WHERE table_schema = 'db_datadict';
|
||||
table_name
|
||||
t1_first
|
||||
t1_second
|
||||
SELECT LENGTH(table_name) FROM information_schema.tables
|
||||
WHERE table_schema = 'db_datadict' ORDER BY table_name;
|
||||
LENGTH(table_name)
|
||||
8
|
||||
9
|
||||
SELECT count(table_name) FROM information_schema.tables
|
||||
WHERE table_schema LIKE 'db_datadic%';
|
||||
count(table_name)
|
||||
2
|
||||
SELECT CAST((LENGTH(table_schema) + LENGTH(table_name)) AS DECIMAL(15,1))
|
||||
FROM information_schema.tables
|
||||
WHERE table_schema = 'db_datadict';
|
||||
CAST((LENGTH(table_schema) + LENGTH(table_name)) AS DECIMAL(15,1))
|
||||
19.0
|
||||
20.0
|
||||
SELECT table_name FROM information_schema.tables
|
||||
WHERE table_name IN ('t1_first','t1_second') ORDER BY table_name LIMIT 1;
|
||||
table_name
|
||||
t1_first
|
||||
SELECT table_name FROM information_schema.tables
|
||||
WHERE table_name IN ('t1_first','t1_second') ORDER BY table_name LIMIT 1,1;
|
||||
table_name
|
||||
t1_second
|
||||
SELECT table_name,table_schema AS my_col FROM information_schema.tables
|
||||
WHERE table_name = 't1_first' AND table_schema = 'db_datadict';
|
||||
table_name my_col
|
||||
t1_first db_datadict
|
||||
SELECT HIGH_PRIORITY table_name AS my_col FROM information_schema.tables
|
||||
WHERE table_name = 't1_first' OR table_name = 't1_second';
|
||||
my_col
|
||||
t1_first
|
||||
t1_second
|
||||
SELECT 1 AS my_col FROM information_schema.tables
|
||||
WHERE table_name = 't1_third';
|
||||
my_col
|
||||
SELECT table_name,table_schema INTO @table_name,@table_schema
|
||||
FROM information_schema.tables
|
||||
WHERE table_schema = 'db_datadict' ORDER BY table_name LIMIT 1;
|
||||
SELECT @table_name,@table_schema;
|
||||
@table_name @table_schema
|
||||
t1_first db_datadict
|
||||
SELECT table_name,table_schema
|
||||
INTO OUTFILE '<OUTFILE>'
|
||||
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
|
||||
LINES TERMINATED BY '\n'
|
||||
FROM information_schema.tables
|
||||
WHERE table_schema = 'db_datadict' ORDER BY table_name;
|
||||
"t1_first","db_datadict"
|
||||
"t1_second","db_datadict"
|
||||
SELECT table_name FROM information_schema.tables
|
||||
WHERE table_name = 't1_first'
|
||||
UNION ALL
|
||||
SELECT table_name FROM information_schema.tables
|
||||
WHERE table_name = 't1_second';
|
||||
table_name
|
||||
t1_first
|
||||
t1_second
|
||||
SELECT DISTINCT table_schema FROM information_schema.tables
|
||||
WHERE table_name IN (SELECT table_name FROM information_schema.tables
|
||||
WHERE table_schema = 'db_datadict')
|
||||
ORDER BY table_name;
|
||||
table_schema
|
||||
db_datadict
|
||||
SELECT table_name FROM information_schema.tables t1
|
||||
LEFT JOIN information_schema.tables t2 USING(table_name,table_schema)
|
||||
WHERE t2.table_schema = 'db_datadict'
|
||||
ORDER BY table_name;
|
||||
table_name
|
||||
t1_first
|
||||
t1_second
|
||||
USE test;
|
||||
SELECT * FROM tables;
|
||||
ERROR 42S02: Table 'test.tables' doesn't exist
|
||||
#########################################################################
|
||||
# Testcase 3.2.1.17+3.2.1.18
|
||||
#########################################################################
|
||||
DROP DATABASE IF EXISTS db_datadict;
|
||||
CREATE DATABASE db_datadict;
|
||||
CREATE TABLE db_datadict.t1 (f1 BIGINT UNIQUE, f2 BIGINT)
|
||||
ENGINE = <some_engine>;
|
||||
SELECT * FROM db_datadict.t1;
|
||||
f1 f2
|
||||
DROP USER 'testuser1'@'localhost';
|
||||
CREATE USER 'testuser1'@'localhost';
|
||||
DROP USER 'testuser2'@'localhost';
|
||||
CREATE USER 'testuser2'@'localhost';
|
||||
GRANT CREATE VIEW,SELECT ON db_datadict.* TO testuser1@localhost
|
||||
WITH GRANT OPTION;
|
||||
GRANT USAGE ON db_datadict.* TO testuser2@localhost;
|
||||
FLUSH PRIVILEGES;
|
||||
GRANT SELECT on information_schema.* TO testuser1@localhost;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
GRANT CREATE VIEW ON information_schema.* TO 'u_6_401018'@'localhost';
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
# Establish connection testuser1 (user=testuser1)
|
||||
SELECT table_schema,table_name FROM information_schema.tables
|
||||
WHERE table_schema = 'information_schema' AND table_name = 'tables';
|
||||
table_schema table_name
|
||||
information_schema TABLES
|
||||
SELECT * FROM information_schema.table_privileges
|
||||
WHERE table_schema = 'information_schema';
|
||||
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
|
||||
SELECT * FROM information_schema.schema_privileges
|
||||
WHERE table_schema = 'information_schema';
|
||||
GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
|
||||
CREATE VIEW db_datadict.v2 AS
|
||||
SELECT TABLE_SCHEMA,TABLE_NAME,TABLE_TYPE
|
||||
FROM information_schema.tables WHERE table_schema = 'db_datadict';
|
||||
SELECT TABLE_SCHEMA,TABLE_NAME,TABLE_TYPE
|
||||
FROM db_datadict.v2;
|
||||
TABLE_SCHEMA TABLE_NAME TABLE_TYPE
|
||||
db_datadict t1 BASE TABLE
|
||||
db_datadict v2 VIEW
|
||||
SELECT TABLE_SCHEMA,TABLE_NAME,TABLE_TYPE
|
||||
FROM information_schema.tables WHERE table_schema = 'db_datadict';
|
||||
TABLE_SCHEMA TABLE_NAME TABLE_TYPE
|
||||
db_datadict t1 BASE TABLE
|
||||
db_datadict v2 VIEW
|
||||
GRANT SELECT ON db_datadict.v2 to testuser2@localhost;
|
||||
# Establish connection testuser2 (user=testuser2)
|
||||
SELECT TABLE_SCHEMA,TABLE_NAME,TABLE_TYPE
|
||||
FROM db_datadict.v2;
|
||||
TABLE_SCHEMA TABLE_NAME TABLE_TYPE
|
||||
db_datadict v2 VIEW
|
||||
SELECT TABLE_SCHEMA,TABLE_NAME,TABLE_TYPE
|
||||
FROM information_schema.tables WHERE table_schema = 'db_datadict';
|
||||
TABLE_SCHEMA TABLE_NAME TABLE_TYPE
|
||||
db_datadict v2 VIEW
|
||||
# Switch to connection default and close connections testuser1 and testuser2
|
||||
DROP USER 'testuser1'@'localhost';
|
||||
DROP USER 'testuser2'@'localhost';
|
||||
DROP DATABASE db_datadict;
|
||||
#########################################################################
|
||||
# Testcase 3.2.1.19
|
||||
#########################################################################
|
||||
DROP USER 'testuser1'@'localhost';
|
||||
CREATE USER 'testuser1'@'localhost';
|
||||
SELECT 'empty result set was expected' AS my_col
|
||||
FROM information_schema.schema_privileges
|
||||
WHERE table_schema = 'information_schema';
|
||||
my_col
|
||||
SELECT 'empty result set was expected' AS my_col
|
||||
FROM information_schema.table_privileges
|
||||
WHERE table_schema = 'information_schema';
|
||||
my_col
|
||||
SELECT 'empty result set was expected' AS my_col
|
||||
FROM information_schema.column_privileges
|
||||
WHERE table_schema = 'information_schema';
|
||||
my_col
|
||||
GRANT ALTER ON information_schema.*
|
||||
TO 'testuser1'@'localhost';
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
GRANT ALTER ROUTINE ON information_schema.*
|
||||
TO 'testuser1'@'localhost';
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
GRANT CREATE ON information_schema.*
|
||||
TO 'testuser1'@'localhost';
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
GRANT CREATE ROUTINE ON information_schema.*
|
||||
TO 'testuser1'@'localhost';
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
GRANT CREATE TEMPORARY TABLES ON information_schema.*
|
||||
TO 'testuser1'@'localhost';
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
GRANT DELETE ON information_schema.*
|
||||
TO 'testuser1'@'localhost';
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
GRANT DROP ON information_schema.*
|
||||
TO 'testuser1'@'localhost';
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
GRANT EXECUTE ON information_schema.*
|
||||
TO 'testuser1'@'localhost';
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
GRANT INDEX ON information_schema.*
|
||||
TO 'testuser1'@'localhost';
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
GRANT INSERT ON information_schema.*
|
||||
TO 'testuser1'@'localhost';
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
GRANT LOCK TABLES ON information_schema.*
|
||||
TO 'testuser1'@'localhost';
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
GRANT UPDATE ON information_schema.*
|
||||
TO 'testuser1'@'localhost';
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
SELECT 'empty result set was expected' AS my_col
|
||||
FROM information_schema.schema_privileges
|
||||
WHERE table_schema = 'information_schema';
|
||||
my_col
|
||||
SELECT 'empty result set was expected' AS my_col
|
||||
FROM information_schema.table_privileges
|
||||
WHERE table_schema = 'information_schema';
|
||||
my_col
|
||||
SELECT 'empty result set was expected' AS my_col
|
||||
FROM information_schema.column_privileges
|
||||
WHERE table_schema = 'information_schema';
|
||||
my_col
|
||||
DROP USER 'testuser1'@'localhost';
|
||||
#########################################################################
|
||||
# Testcase 3.2.1.16
|
||||
#########################################################################
|
||||
SELECT DISTINCT table_schema FROM information_schema.columns
|
||||
WHERE table_schema LIKE 'db_data%';
|
||||
table_schema
|
||||
SELECT DISTINCT table_schema FROM information_schema.column_privileges
|
||||
WHERE table_schema LIKE 'db_data%';
|
||||
table_schema
|
||||
SELECT DISTINCT constraint_schema,table_schema
|
||||
FROM information_schema.key_column_usage
|
||||
WHERE constraint_schema LIKE 'db_data%' OR table_schema LIKE 'db_data%';
|
||||
constraint_schema table_schema
|
||||
SELECT DISTINCT routine_schema FROM information_schema.routines
|
||||
WHERE routine_schema LIKE 'db_data%';
|
||||
routine_schema
|
||||
SELECT DISTINCT schema_name FROM information_schema.schemata
|
||||
WHERE schema_name LIKE 'db_data%';
|
||||
schema_name
|
||||
SELECT DISTINCT table_schema FROM information_schema.schema_privileges
|
||||
WHERE table_schema LIKE 'db_data%';
|
||||
table_schema
|
||||
SELECT DISTINCT table_schema,index_schema FROM information_schema.statistics
|
||||
WHERE table_schema LIKE 'db_data%' OR index_schema LIKE 'db_data%';
|
||||
table_schema index_schema
|
||||
SELECT DISTINCT table_schema FROM information_schema.tables
|
||||
WHERE table_schema LIKE 'db_data%';
|
||||
table_schema
|
||||
SELECT DISTINCT constraint_schema,table_schema
|
||||
FROM information_schema.table_constraints
|
||||
WHERE constraint_schema LIKE 'db_data%' OR table_schema LIKE 'db_data%';
|
||||
constraint_schema table_schema
|
||||
SELECT DISTINCT table_schema FROM information_schema.table_privileges
|
||||
WHERE table_schema LIKE 'db_data%';
|
||||
table_schema
|
||||
SELECT DISTINCT trigger_schema,event_object_schema
|
||||
FROM information_schema.triggers
|
||||
WHERE trigger_schema LIKE 'db_data%' OR event_object_schema LIKE 'db_data%';
|
||||
trigger_schema event_object_schema
|
||||
SELECT DISTINCT table_schema FROM information_schema.views
|
||||
WHERE table_schema LIKE 'db_data%';
|
||||
table_schema
|
||||
DROP DATABASE IF EXISTS db_datadict;
|
||||
CREATE DATABASE db_datadict;
|
||||
CREATE TABLE db_datadict.t1 (f1 BIGINT, f2 BIGINT NOT NULL, f3 BIGINT,
|
||||
PRIMARY KEY(f1))
|
||||
ENGINE = <some_engine>;
|
||||
CREATE UNIQUE INDEX UIDX ON db_datadict.t1(f3);
|
||||
CREATE PROCEDURE db_datadict.sproc1() SELECT 'db_datadict';
|
||||
CREATE FUNCTION db_datadict.func1() RETURNS INT RETURN 0;
|
||||
CREATE TRIGGER db_datadict.trig1 BEFORE INSERT ON db_datadict.t1
|
||||
FOR EACH ROW SET @aux = 1;
|
||||
CREATE VIEW db_datadict.v1 AS SELECT * FROM db_datadict.t1;
|
||||
CREATE VIEW db_datadict.v2 AS SELECT * FROM information_schema.tables;
|
||||
SELECT DISTINCT table_schema FROM information_schema.columns
|
||||
WHERE table_schema LIKE 'db_data%';
|
||||
table_schema
|
||||
db_datadict
|
||||
SELECT DISTINCT table_schema FROM information_schema.column_privileges
|
||||
WHERE table_schema LIKE 'db_data%';
|
||||
table_schema
|
||||
SELECT DISTINCT constraint_schema,table_schema
|
||||
FROM information_schema.key_column_usage
|
||||
WHERE constraint_schema LIKE 'db_data%' OR table_schema LIKE 'db_data%';
|
||||
constraint_schema table_schema
|
||||
db_datadict db_datadict
|
||||
SELECT DISTINCT routine_schema FROM information_schema.routines
|
||||
WHERE routine_schema LIKE 'db_data%';
|
||||
routine_schema
|
||||
db_datadict
|
||||
SELECT DISTINCT schema_name FROM information_schema.schemata
|
||||
WHERE schema_name LIKE 'db_data%';
|
||||
schema_name
|
||||
db_datadict
|
||||
SELECT DISTINCT table_schema FROM information_schema.schema_privileges
|
||||
WHERE table_schema LIKE 'db_data%';
|
||||
table_schema
|
||||
SELECT DISTINCT table_schema,index_schema FROM information_schema.statistics
|
||||
WHERE table_schema LIKE 'db_data%' OR index_schema LIKE 'db_data%';
|
||||
table_schema index_schema
|
||||
db_datadict db_datadict
|
||||
SELECT DISTINCT table_schema FROM information_schema.tables
|
||||
WHERE table_schema LIKE 'db_data%';
|
||||
table_schema
|
||||
db_datadict
|
||||
SELECT DISTINCT constraint_schema,table_schema
|
||||
FROM information_schema.table_constraints
|
||||
WHERE constraint_schema LIKE 'db_data%' OR table_schema LIKE 'db_data%';
|
||||
constraint_schema table_schema
|
||||
db_datadict db_datadict
|
||||
SELECT DISTINCT table_schema FROM information_schema.table_privileges
|
||||
WHERE table_schema LIKE 'db_data%';
|
||||
table_schema
|
||||
SELECT DISTINCT trigger_schema,event_object_schema
|
||||
FROM information_schema.triggers
|
||||
WHERE trigger_schema LIKE 'db_data%' OR event_object_schema LIKE 'db_data%';
|
||||
trigger_schema event_object_schema
|
||||
db_datadict db_datadict
|
||||
SELECT DISTINCT table_schema FROM information_schema.views
|
||||
WHERE table_schema LIKE 'db_data%';
|
||||
table_schema
|
||||
db_datadict
|
||||
DROP USER 'testuser1'@'localhost';
|
||||
CREATE USER 'testuser1'@'localhost';
|
||||
GRANT ALL ON test.* TO 'testuser1'@'localhost';
|
||||
# Establish connection testuser1 (user=testuser1)
|
||||
SELECT DISTINCT table_schema FROM information_schema.columns
|
||||
WHERE table_schema LIKE 'db_data%';
|
||||
table_schema
|
||||
SELECT DISTINCT table_schema FROM information_schema.column_privileges
|
||||
WHERE table_schema LIKE 'db_data%';
|
||||
table_schema
|
||||
SELECT DISTINCT constraint_schema,table_schema
|
||||
FROM information_schema.key_column_usage
|
||||
WHERE constraint_schema LIKE 'db_data%' OR table_schema LIKE 'db_data%';
|
||||
constraint_schema table_schema
|
||||
SELECT DISTINCT routine_schema FROM information_schema.routines
|
||||
WHERE routine_schema LIKE 'db_data%';
|
||||
routine_schema
|
||||
SELECT DISTINCT schema_name FROM information_schema.schemata
|
||||
WHERE schema_name LIKE 'db_data%';
|
||||
schema_name
|
||||
SELECT DISTINCT table_schema FROM information_schema.schema_privileges
|
||||
WHERE table_schema LIKE 'db_data%';
|
||||
table_schema
|
||||
SELECT DISTINCT table_schema,index_schema FROM information_schema.statistics
|
||||
WHERE table_schema LIKE 'db_data%' OR index_schema LIKE 'db_data%';
|
||||
table_schema index_schema
|
||||
SELECT DISTINCT table_schema FROM information_schema.tables
|
||||
WHERE table_schema LIKE 'db_data%';
|
||||
table_schema
|
||||
SELECT DISTINCT constraint_schema,table_schema
|
||||
FROM information_schema.table_constraints
|
||||
WHERE constraint_schema LIKE 'db_data%' OR table_schema LIKE 'db_data%';
|
||||
constraint_schema table_schema
|
||||
SELECT DISTINCT table_schema FROM information_schema.table_privileges
|
||||
WHERE table_schema LIKE 'db_data%';
|
||||
table_schema
|
||||
SELECT DISTINCT trigger_schema,event_object_schema
|
||||
FROM information_schema.triggers
|
||||
WHERE trigger_schema LIKE 'db_data%' OR event_object_schema LIKE 'db_data%';
|
||||
trigger_schema event_object_schema
|
||||
SELECT DISTINCT table_schema FROM information_schema.views
|
||||
WHERE table_schema LIKE 'db_data%';
|
||||
table_schema
|
||||
# Switch to connection default and close connections testuser1 and testuser2
|
||||
DROP USER 'testuser1'@'localhost';
|
||||
DROP DATABASE db_datadict;
|
||||
########################################################################
|
||||
# Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and
|
||||
# DDL on INFORMATION_SCHEMA tables are not supported
|
||||
########################################################################
|
||||
DROP PROCEDURE IF EXISTS test.p1;
|
||||
CREATE PROCEDURE test.p1()
|
||||
INSERT INTO information_schema.tables
|
||||
SELECT * FROM information_schema.tables LIMIT 1;
|
||||
CALL test.p1();
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
DROP PROCEDURE test.p1;
|
||||
CREATE PROCEDURE test.p1()
|
||||
UPDATE information_schema.columns SET table_schema = 'garbage';
|
||||
CALL test.p1();
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
DROP PROCEDURE test.p1;
|
||||
CREATE PROCEDURE test.p1()
|
||||
DELETE FROM information_schema.schemata;
|
||||
CALL test.p1();
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
DROP PROCEDURE test.p1;
|
||||
#########################################################################
|
||||
# Testcase 3.2.17.1+3.2.17.2: To be implemented outside of this script
|
||||
#########################################################################
|
||||
@@ -0,0 +1,78 @@
|
||||
SHOW TABLES FROM information_schema LIKE 'CHARACTER_SETS';
|
||||
Tables_in_information_schema (CHARACTER_SETS)
|
||||
CHARACTER_SETS
|
||||
#######################################################################
|
||||
# Testcase 3.2.1.1: INFORMATION_SCHEMA tables can be queried via SELECT
|
||||
#######################################################################
|
||||
DROP VIEW IF EXISTS test.v1;
|
||||
DROP PROCEDURE IF EXISTS test.p1;
|
||||
DROP FUNCTION IF EXISTS test.f1;
|
||||
CREATE VIEW test.v1 AS SELECT * FROM information_schema.CHARACTER_SETS;
|
||||
CREATE PROCEDURE test.p1() SELECT * FROM information_schema.CHARACTER_SETS;
|
||||
CREATE FUNCTION test.f1() returns BIGINT
|
||||
BEGIN
|
||||
DECLARE counter BIGINT DEFAULT NULL;
|
||||
SELECT COUNT(*) INTO counter FROM information_schema.CHARACTER_SETS;
|
||||
RETURN counter;
|
||||
END//
|
||||
# Attention: The printing of the next result sets is disabled.
|
||||
SELECT * FROM information_schema.CHARACTER_SETS;
|
||||
SELECT * FROM test.v1;
|
||||
CALL test.p1;
|
||||
SELECT test.f1();
|
||||
DROP VIEW test.v1;
|
||||
DROP PROCEDURE test.p1;
|
||||
DROP FUNCTION test.f1;
|
||||
#########################################################################
|
||||
# Testcase 3.2.2.1: INFORMATION_SCHEMA.CHARACTER_SETS layout
|
||||
#########################################################################
|
||||
DESCRIBE information_schema.CHARACTER_SETS;
|
||||
Field Type Null Key Default Extra
|
||||
CHARACTER_SET_NAME varchar(32) NO
|
||||
DEFAULT_COLLATE_NAME varchar(32) 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(32) NOT NULL DEFAULT '',
|
||||
`DEFAULT_COLLATE_NAME` varchar(32) 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(32) NO
|
||||
DEFAULT_COLLATE_NAME varchar(32) 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;
|
||||
@@ -0,0 +1,97 @@
|
||||
USE test;
|
||||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1
|
||||
(
|
||||
f1 CHAR UNICODE,
|
||||
f2 CHAR(0) UNICODE,
|
||||
f3 CHAR(10) UNICODE,
|
||||
f5 VARCHAR(0) UNICODE,
|
||||
f6 VARCHAR(255) UNICODE,
|
||||
f7 VARCHAR(260) UNICODE,
|
||||
f8 TEXT UNICODE,
|
||||
f9 TINYTEXT UNICODE,
|
||||
f10 MEDIUMTEXT UNICODE,
|
||||
f11 LONGTEXT UNICODE
|
||||
) ENGINE = InnoDB;
|
||||
SELECT * FROM information_schema.columns
|
||||
WHERE table_schema LIKE 'test%'
|
||||
ORDER BY table_schema, table_name, column_name;
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
|
||||
NULL test t1 f1 1 NULL YES char 1 2 NULL NULL ucs2 ucs2_general_ci char(1) select,insert,update,references
|
||||
NULL test t1 f10 9 NULL YES mediumtext 8388607 16777215 NULL NULL ucs2 ucs2_general_ci mediumtext select,insert,update,references
|
||||
NULL test t1 f11 10 NULL YES longtext 2147483647 4294967295 NULL NULL ucs2 ucs2_general_ci longtext select,insert,update,references
|
||||
NULL test t1 f2 2 NULL YES char 0 0 NULL NULL ucs2 ucs2_general_ci char(0) select,insert,update,references
|
||||
NULL test t1 f3 3 NULL YES char 10 20 NULL NULL ucs2 ucs2_general_ci char(10) select,insert,update,references
|
||||
NULL test t1 f5 4 NULL YES varchar 0 0 NULL NULL ucs2 ucs2_general_ci varchar(0) select,insert,update,references
|
||||
NULL test t1 f6 5 NULL YES varchar 255 510 NULL NULL ucs2 ucs2_general_ci varchar(255) select,insert,update,references
|
||||
NULL test t1 f7 6 NULL YES varchar 260 520 NULL NULL ucs2 ucs2_general_ci varchar(260) select,insert,update,references
|
||||
NULL test t1 f8 7 NULL YES text 32767 65535 NULL NULL ucs2 ucs2_general_ci text select,insert,update,references
|
||||
NULL test t1 f9 8 NULL YES tinytext 127 255 NULL NULL ucs2 ucs2_general_ci tinytext select,insert,update,references
|
||||
##########################################################################
|
||||
# Show the quotient of CHARACTER_OCTET_LENGTH and CHARACTER_MAXIMUM_LENGTH
|
||||
##########################################################################
|
||||
SELECT DISTINCT
|
||||
CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
|
||||
DATA_TYPE,
|
||||
CHARACTER_SET_NAME,
|
||||
COLLATION_NAME
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema LIKE 'test%'
|
||||
AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH = 1
|
||||
ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML;
|
||||
COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME
|
||||
SELECT DISTINCT
|
||||
CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
|
||||
DATA_TYPE,
|
||||
CHARACTER_SET_NAME,
|
||||
COLLATION_NAME
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema LIKE 'test%'
|
||||
AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH <> 1
|
||||
ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML;
|
||||
COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME
|
||||
2.0000 char ucs2 ucs2_general_ci
|
||||
2.0000 longtext ucs2 ucs2_general_ci
|
||||
2.0000 mediumtext ucs2 ucs2_general_ci
|
||||
2.0000 text ucs2 ucs2_general_ci
|
||||
2.0000 varchar ucs2 ucs2_general_ci
|
||||
2.0079 tinytext ucs2 ucs2_general_ci
|
||||
SELECT DISTINCT
|
||||
CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
|
||||
DATA_TYPE,
|
||||
CHARACTER_SET_NAME,
|
||||
COLLATION_NAME
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema LIKE 'test%'
|
||||
AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH IS NULL
|
||||
ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML;
|
||||
COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME
|
||||
NULL char ucs2 ucs2_general_ci
|
||||
NULL varchar ucs2 ucs2_general_ci
|
||||
--> CHAR(0) is allowed (see manual), and here both CHARACHTER_* values
|
||||
--> are 0, which is intended behavior, and the result of 0 / 0 IS NULL
|
||||
SELECT CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
|
||||
TABLE_SCHEMA,
|
||||
TABLE_NAME,
|
||||
COLUMN_NAME,
|
||||
DATA_TYPE,
|
||||
CHARACTER_MAXIMUM_LENGTH,
|
||||
CHARACTER_OCTET_LENGTH,
|
||||
CHARACTER_SET_NAME,
|
||||
COLLATION_NAME,
|
||||
COLUMN_TYPE
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema LIKE 'test%'
|
||||
ORDER BY TABLE_SCHEMA, TABLE_NAME, ORDINAL_POSITION;
|
||||
COL_CML TABLE_SCHEMA TABLE_NAME COLUMN_NAME DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE
|
||||
2.0000 test t1 f1 char 1 2 ucs2 ucs2_general_ci char(1)
|
||||
NULL test t1 f2 char 0 0 ucs2 ucs2_general_ci char(0)
|
||||
2.0000 test t1 f3 char 10 20 ucs2 ucs2_general_ci char(10)
|
||||
NULL test t1 f5 varchar 0 0 ucs2 ucs2_general_ci varchar(0)
|
||||
2.0000 test t1 f6 varchar 255 510 ucs2 ucs2_general_ci varchar(255)
|
||||
2.0000 test t1 f7 varchar 260 520 ucs2 ucs2_general_ci varchar(260)
|
||||
2.0000 test t1 f8 text 32767 65535 ucs2 ucs2_general_ci text
|
||||
2.0079 test t1 f9 tinytext 127 255 ucs2 ucs2_general_ci tinytext
|
||||
2.0000 test t1 f10 mediumtext 8388607 16777215 ucs2 ucs2_general_ci mediumtext
|
||||
2.0000 test t1 f11 longtext 2147483647 4294967295 ucs2 ucs2_general_ci longtext
|
||||
DROP TABLE t1;
|
||||
@@ -0,0 +1,82 @@
|
||||
SET @@session.sql_mode = 'NO_ENGINE_SUBSTITUTION';
|
||||
USE test;
|
||||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1
|
||||
(
|
||||
f1 CHAR UNICODE,
|
||||
f2 CHAR(0) UNICODE,
|
||||
f3 CHAR(10) UNICODE,
|
||||
f5 VARCHAR(0) UNICODE,
|
||||
f6 VARCHAR(255) UNICODE,
|
||||
f7 VARCHAR(260) UNICODE
|
||||
) ENGINE = MEMORY;
|
||||
SELECT * FROM information_schema.columns
|
||||
WHERE table_schema LIKE 'test%'
|
||||
ORDER BY table_schema, table_name, column_name;
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
|
||||
NULL test t1 f1 1 NULL YES char 1 2 NULL NULL ucs2 ucs2_general_ci char(1) select,insert,update,references
|
||||
NULL test t1 f2 2 NULL YES char 0 0 NULL NULL ucs2 ucs2_general_ci char(0) select,insert,update,references
|
||||
NULL test t1 f3 3 NULL YES char 10 20 NULL NULL ucs2 ucs2_general_ci char(10) select,insert,update,references
|
||||
NULL test t1 f5 4 NULL YES varchar 0 0 NULL NULL ucs2 ucs2_general_ci varchar(0) select,insert,update,references
|
||||
NULL test t1 f6 5 NULL YES varchar 255 510 NULL NULL ucs2 ucs2_general_ci varchar(255) select,insert,update,references
|
||||
NULL test t1 f7 6 NULL YES varchar 260 520 NULL NULL ucs2 ucs2_general_ci varchar(260) select,insert,update,references
|
||||
##########################################################################
|
||||
# Show the quotient of CHARACTER_OCTET_LENGTH and CHARACTER_MAXIMUM_LENGTH
|
||||
##########################################################################
|
||||
SELECT DISTINCT
|
||||
CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
|
||||
DATA_TYPE,
|
||||
CHARACTER_SET_NAME,
|
||||
COLLATION_NAME
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema LIKE 'test%'
|
||||
AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH = 1
|
||||
ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML;
|
||||
COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME
|
||||
SELECT DISTINCT
|
||||
CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
|
||||
DATA_TYPE,
|
||||
CHARACTER_SET_NAME,
|
||||
COLLATION_NAME
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema LIKE 'test%'
|
||||
AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH <> 1
|
||||
ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML;
|
||||
COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME
|
||||
2.0000 char ucs2 ucs2_general_ci
|
||||
2.0000 varchar ucs2 ucs2_general_ci
|
||||
SELECT DISTINCT
|
||||
CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
|
||||
DATA_TYPE,
|
||||
CHARACTER_SET_NAME,
|
||||
COLLATION_NAME
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema LIKE 'test%'
|
||||
AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH IS NULL
|
||||
ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML;
|
||||
COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME
|
||||
NULL char ucs2 ucs2_general_ci
|
||||
NULL varchar ucs2 ucs2_general_ci
|
||||
--> CHAR(0) is allowed (see manual), and here both CHARACHTER_* values
|
||||
--> are 0, which is intended behavior, and the result of 0 / 0 IS NULL
|
||||
SELECT CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
|
||||
TABLE_SCHEMA,
|
||||
TABLE_NAME,
|
||||
COLUMN_NAME,
|
||||
DATA_TYPE,
|
||||
CHARACTER_MAXIMUM_LENGTH,
|
||||
CHARACTER_OCTET_LENGTH,
|
||||
CHARACTER_SET_NAME,
|
||||
COLLATION_NAME,
|
||||
COLUMN_TYPE
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema LIKE 'test%'
|
||||
ORDER BY TABLE_SCHEMA, TABLE_NAME, ORDINAL_POSITION;
|
||||
COL_CML TABLE_SCHEMA TABLE_NAME COLUMN_NAME DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE
|
||||
2.0000 test t1 f1 char 1 2 ucs2 ucs2_general_ci char(1)
|
||||
NULL test t1 f2 char 0 0 ucs2 ucs2_general_ci char(0)
|
||||
2.0000 test t1 f3 char 10 20 ucs2 ucs2_general_ci char(10)
|
||||
NULL test t1 f5 varchar 0 0 ucs2 ucs2_general_ci varchar(0)
|
||||
2.0000 test t1 f6 varchar 255 510 ucs2 ucs2_general_ci varchar(255)
|
||||
2.0000 test t1 f7 varchar 260 520 ucs2 ucs2_general_ci varchar(260)
|
||||
DROP TABLE t1;
|
||||
@@ -0,0 +1,98 @@
|
||||
SET @@session.sql_mode = 'NO_ENGINE_SUBSTITUTION';
|
||||
USE test;
|
||||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1
|
||||
(
|
||||
f1 CHAR UNICODE,
|
||||
f2 CHAR(0) UNICODE,
|
||||
f3 CHAR(10) UNICODE,
|
||||
f5 VARCHAR(0) UNICODE,
|
||||
f6 VARCHAR(255) UNICODE,
|
||||
f7 VARCHAR(260) UNICODE,
|
||||
f8 TEXT UNICODE,
|
||||
f9 TINYTEXT UNICODE,
|
||||
f10 MEDIUMTEXT UNICODE,
|
||||
f11 LONGTEXT UNICODE
|
||||
) ENGINE = MyISAM;
|
||||
SELECT * FROM information_schema.columns
|
||||
WHERE table_schema LIKE 'test%'
|
||||
ORDER BY table_schema, table_name, column_name;
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
|
||||
NULL test t1 f1 1 NULL YES char 1 2 NULL NULL ucs2 ucs2_general_ci char(1) select,insert,update,references
|
||||
NULL test t1 f10 9 NULL YES mediumtext 8388607 16777215 NULL NULL ucs2 ucs2_general_ci mediumtext select,insert,update,references
|
||||
NULL test t1 f11 10 NULL YES longtext 2147483647 4294967295 NULL NULL ucs2 ucs2_general_ci longtext select,insert,update,references
|
||||
NULL test t1 f2 2 NULL YES char 0 0 NULL NULL ucs2 ucs2_general_ci char(0) select,insert,update,references
|
||||
NULL test t1 f3 3 NULL YES char 10 20 NULL NULL ucs2 ucs2_general_ci char(10) select,insert,update,references
|
||||
NULL test t1 f5 4 NULL YES varchar 0 0 NULL NULL ucs2 ucs2_general_ci varchar(0) select,insert,update,references
|
||||
NULL test t1 f6 5 NULL YES varchar 255 510 NULL NULL ucs2 ucs2_general_ci varchar(255) select,insert,update,references
|
||||
NULL test t1 f7 6 NULL YES varchar 260 520 NULL NULL ucs2 ucs2_general_ci varchar(260) select,insert,update,references
|
||||
NULL test t1 f8 7 NULL YES text 32767 65535 NULL NULL ucs2 ucs2_general_ci text select,insert,update,references
|
||||
NULL test t1 f9 8 NULL YES tinytext 127 255 NULL NULL ucs2 ucs2_general_ci tinytext select,insert,update,references
|
||||
##########################################################################
|
||||
# Show the quotient of CHARACTER_OCTET_LENGTH and CHARACTER_MAXIMUM_LENGTH
|
||||
##########################################################################
|
||||
SELECT DISTINCT
|
||||
CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
|
||||
DATA_TYPE,
|
||||
CHARACTER_SET_NAME,
|
||||
COLLATION_NAME
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema LIKE 'test%'
|
||||
AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH = 1
|
||||
ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML;
|
||||
COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME
|
||||
SELECT DISTINCT
|
||||
CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
|
||||
DATA_TYPE,
|
||||
CHARACTER_SET_NAME,
|
||||
COLLATION_NAME
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema LIKE 'test%'
|
||||
AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH <> 1
|
||||
ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML;
|
||||
COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME
|
||||
2.0000 char ucs2 ucs2_general_ci
|
||||
2.0000 longtext ucs2 ucs2_general_ci
|
||||
2.0000 mediumtext ucs2 ucs2_general_ci
|
||||
2.0000 text ucs2 ucs2_general_ci
|
||||
2.0000 varchar ucs2 ucs2_general_ci
|
||||
2.0079 tinytext ucs2 ucs2_general_ci
|
||||
SELECT DISTINCT
|
||||
CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
|
||||
DATA_TYPE,
|
||||
CHARACTER_SET_NAME,
|
||||
COLLATION_NAME
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema LIKE 'test%'
|
||||
AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH IS NULL
|
||||
ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML;
|
||||
COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME
|
||||
NULL char ucs2 ucs2_general_ci
|
||||
NULL varchar ucs2 ucs2_general_ci
|
||||
--> CHAR(0) is allowed (see manual), and here both CHARACHTER_* values
|
||||
--> are 0, which is intended behavior, and the result of 0 / 0 IS NULL
|
||||
SELECT CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
|
||||
TABLE_SCHEMA,
|
||||
TABLE_NAME,
|
||||
COLUMN_NAME,
|
||||
DATA_TYPE,
|
||||
CHARACTER_MAXIMUM_LENGTH,
|
||||
CHARACTER_OCTET_LENGTH,
|
||||
CHARACTER_SET_NAME,
|
||||
COLLATION_NAME,
|
||||
COLUMN_TYPE
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema LIKE 'test%'
|
||||
ORDER BY TABLE_SCHEMA, TABLE_NAME, ORDINAL_POSITION;
|
||||
COL_CML TABLE_SCHEMA TABLE_NAME COLUMN_NAME DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE
|
||||
2.0000 test t1 f1 char 1 2 ucs2 ucs2_general_ci char(1)
|
||||
NULL test t1 f2 char 0 0 ucs2 ucs2_general_ci char(0)
|
||||
2.0000 test t1 f3 char 10 20 ucs2 ucs2_general_ci char(10)
|
||||
NULL test t1 f5 varchar 0 0 ucs2 ucs2_general_ci varchar(0)
|
||||
2.0000 test t1 f6 varchar 255 510 ucs2 ucs2_general_ci varchar(255)
|
||||
2.0000 test t1 f7 varchar 260 520 ucs2 ucs2_general_ci varchar(260)
|
||||
2.0000 test t1 f8 text 32767 65535 ucs2 ucs2_general_ci text
|
||||
2.0079 test t1 f9 tinytext 127 255 ucs2 ucs2_general_ci tinytext
|
||||
2.0000 test t1 f10 mediumtext 8388607 16777215 ucs2 ucs2_general_ci mediumtext
|
||||
2.0000 test t1 f11 longtext 2147483647 4294967295 ucs2 ucs2_general_ci longtext
|
||||
DROP TABLE t1;
|
||||
98
build/lib/mysql/mysql-test/suite/funcs_1/r/is_cml_ndb.result
Normal file
98
build/lib/mysql/mysql-test/suite/funcs_1/r/is_cml_ndb.result
Normal file
@@ -0,0 +1,98 @@
|
||||
USE test;
|
||||
DROP TABLE IF EXISTS t1;
|
||||
CREATE TABLE t1
|
||||
(
|
||||
f1 CHAR UNICODE,
|
||||
f2 CHAR(0) UNICODE,
|
||||
f3 CHAR(10) UNICODE,
|
||||
f5 VARCHAR(0) UNICODE,
|
||||
f6 VARCHAR(255) UNICODE,
|
||||
f7 VARCHAR(260) UNICODE,
|
||||
f8 TEXT UNICODE,
|
||||
f9 TINYTEXT UNICODE,
|
||||
f10 MEDIUMTEXT UNICODE,
|
||||
f11 LONGTEXT UNICODE,
|
||||
PRIMARY KEY(f1)
|
||||
) ENGINE = NDB;
|
||||
SELECT * FROM information_schema.columns
|
||||
WHERE table_schema LIKE 'test%'
|
||||
ORDER BY table_schema, table_name, column_name;
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
|
||||
NULL test t1 f1 1 NO char 1 2 NULL NULL ucs2 ucs2_general_ci char(1) PRI select,insert,update,references
|
||||
NULL test t1 f10 9 NULL YES mediumtext 8388607 16777215 NULL NULL ucs2 ucs2_general_ci mediumtext select,insert,update,references
|
||||
NULL test t1 f11 10 NULL YES longtext 2147483647 4294967295 NULL NULL ucs2 ucs2_general_ci longtext select,insert,update,references
|
||||
NULL test t1 f2 2 NULL YES char 0 0 NULL NULL ucs2 ucs2_general_ci char(0) select,insert,update,references
|
||||
NULL test t1 f3 3 NULL YES char 10 20 NULL NULL ucs2 ucs2_general_ci char(10) select,insert,update,references
|
||||
NULL test t1 f5 4 NULL YES varchar 0 0 NULL NULL ucs2 ucs2_general_ci varchar(0) select,insert,update,references
|
||||
NULL test t1 f6 5 NULL YES varchar 255 510 NULL NULL ucs2 ucs2_general_ci varchar(255) select,insert,update,references
|
||||
NULL test t1 f7 6 NULL YES varchar 260 520 NULL NULL ucs2 ucs2_general_ci varchar(260) select,insert,update,references
|
||||
NULL test t1 f8 7 NULL YES text 32767 65535 NULL NULL ucs2 ucs2_general_ci text select,insert,update,references
|
||||
NULL test t1 f9 8 NULL YES tinytext 127 255 NULL NULL ucs2 ucs2_general_ci tinytext select,insert,update,references
|
||||
##########################################################################
|
||||
# Show the quotient of CHARACTER_OCTET_LENGTH and CHARACTER_MAXIMUM_LENGTH
|
||||
##########################################################################
|
||||
SELECT DISTINCT
|
||||
CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
|
||||
DATA_TYPE,
|
||||
CHARACTER_SET_NAME,
|
||||
COLLATION_NAME
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema LIKE 'test%'
|
||||
AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH = 1
|
||||
ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML;
|
||||
COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME
|
||||
SELECT DISTINCT
|
||||
CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
|
||||
DATA_TYPE,
|
||||
CHARACTER_SET_NAME,
|
||||
COLLATION_NAME
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema LIKE 'test%'
|
||||
AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH <> 1
|
||||
ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML;
|
||||
COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME
|
||||
2.0000 char ucs2 ucs2_general_ci
|
||||
2.0000 longtext ucs2 ucs2_general_ci
|
||||
2.0000 mediumtext ucs2 ucs2_general_ci
|
||||
2.0000 text ucs2 ucs2_general_ci
|
||||
2.0000 varchar ucs2 ucs2_general_ci
|
||||
2.0079 tinytext ucs2 ucs2_general_ci
|
||||
SELECT DISTINCT
|
||||
CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
|
||||
DATA_TYPE,
|
||||
CHARACTER_SET_NAME,
|
||||
COLLATION_NAME
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema LIKE 'test%'
|
||||
AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH IS NULL
|
||||
ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML;
|
||||
COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME
|
||||
NULL char ucs2 ucs2_general_ci
|
||||
NULL varchar ucs2 ucs2_general_ci
|
||||
--> CHAR(0) is allowed (see manual), and here both CHARACHTER_* values
|
||||
--> are 0, which is intended behavior, and the result of 0 / 0 IS NULL
|
||||
SELECT CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
|
||||
TABLE_SCHEMA,
|
||||
TABLE_NAME,
|
||||
COLUMN_NAME,
|
||||
DATA_TYPE,
|
||||
CHARACTER_MAXIMUM_LENGTH,
|
||||
CHARACTER_OCTET_LENGTH,
|
||||
CHARACTER_SET_NAME,
|
||||
COLLATION_NAME,
|
||||
COLUMN_TYPE
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema LIKE 'test%'
|
||||
ORDER BY TABLE_SCHEMA, TABLE_NAME, ORDINAL_POSITION;
|
||||
COL_CML TABLE_SCHEMA TABLE_NAME COLUMN_NAME DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE
|
||||
2.0000 test t1 f1 char 1 2 ucs2 ucs2_general_ci char(1)
|
||||
NULL test t1 f2 char 0 0 ucs2 ucs2_general_ci char(0)
|
||||
2.0000 test t1 f3 char 10 20 ucs2 ucs2_general_ci char(10)
|
||||
NULL test t1 f5 varchar 0 0 ucs2 ucs2_general_ci varchar(0)
|
||||
2.0000 test t1 f6 varchar 255 510 ucs2 ucs2_general_ci varchar(255)
|
||||
2.0000 test t1 f7 varchar 260 520 ucs2 ucs2_general_ci varchar(260)
|
||||
2.0000 test t1 f8 text 32767 65535 ucs2 ucs2_general_ci text
|
||||
2.0079 test t1 f9 tinytext 127 255 ucs2 ucs2_general_ci tinytext
|
||||
2.0000 test t1 f10 mediumtext 8388607 16777215 ucs2 ucs2_general_ci mediumtext
|
||||
2.0000 test t1 f11 longtext 2147483647 4294967295 ucs2 ucs2_general_ci longtext
|
||||
DROP TABLE t1;
|
||||
@@ -0,0 +1,76 @@
|
||||
SHOW TABLES FROM information_schema LIKE 'COLLATION_CHARACTER_SET_APPLICABILITY';
|
||||
Tables_in_information_schema (COLLATION_CHARACTER_SET_APPLICABILITY)
|
||||
COLLATION_CHARACTER_SET_APPLICABILITY
|
||||
#######################################################################
|
||||
# Testcase 3.2.1.1: INFORMATION_SCHEMA tables can be queried via SELECT
|
||||
#######################################################################
|
||||
DROP VIEW IF EXISTS test.v1;
|
||||
DROP PROCEDURE IF EXISTS test.p1;
|
||||
DROP FUNCTION IF EXISTS test.f1;
|
||||
CREATE VIEW test.v1 AS SELECT * FROM information_schema.COLLATION_CHARACTER_SET_APPLICABILITY;
|
||||
CREATE PROCEDURE test.p1() SELECT * FROM information_schema.COLLATION_CHARACTER_SET_APPLICABILITY;
|
||||
CREATE FUNCTION test.f1() returns BIGINT
|
||||
BEGIN
|
||||
DECLARE counter BIGINT DEFAULT NULL;
|
||||
SELECT COUNT(*) INTO counter FROM information_schema.COLLATION_CHARACTER_SET_APPLICABILITY;
|
||||
RETURN counter;
|
||||
END//
|
||||
# Attention: The printing of the next result sets is disabled.
|
||||
SELECT * FROM information_schema.COLLATION_CHARACTER_SET_APPLICABILITY;
|
||||
SELECT * FROM test.v1;
|
||||
CALL test.p1;
|
||||
SELECT test.f1();
|
||||
DROP VIEW test.v1;
|
||||
DROP PROCEDURE test.p1;
|
||||
DROP FUNCTION test.f1;
|
||||
#########################################################################
|
||||
# Testcase 3.2.4.1: INFORMATION_SCHEMA.CHARACTER_SET_APPLICABILITY layout
|
||||
#########################################################################
|
||||
DESCRIBE information_schema.COLLATION_CHARACTER_SET_APPLICABILITY;
|
||||
Field Type Null Key Default Extra
|
||||
COLLATION_NAME varchar(32) NO
|
||||
CHARACTER_SET_NAME varchar(32) 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(32) NOT NULL DEFAULT '',
|
||||
`CHARACTER_SET_NAME` varchar(32) 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(32) NO
|
||||
CHARACTER_SET_NAME varchar(32) 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;
|
||||
@@ -0,0 +1,90 @@
|
||||
SHOW TABLES FROM information_schema LIKE 'COLLATIONS';
|
||||
Tables_in_information_schema (COLLATIONS)
|
||||
COLLATIONS
|
||||
#######################################################################
|
||||
# Testcase 3.2.1.1: INFORMATION_SCHEMA tables can be queried via SELECT
|
||||
#######################################################################
|
||||
DROP VIEW IF EXISTS test.v1;
|
||||
DROP PROCEDURE IF EXISTS test.p1;
|
||||
DROP FUNCTION IF EXISTS test.f1;
|
||||
CREATE VIEW test.v1 AS SELECT * FROM information_schema.COLLATIONS;
|
||||
CREATE PROCEDURE test.p1() SELECT * FROM information_schema.COLLATIONS;
|
||||
CREATE FUNCTION test.f1() returns BIGINT
|
||||
BEGIN
|
||||
DECLARE counter BIGINT DEFAULT NULL;
|
||||
SELECT COUNT(*) INTO counter FROM information_schema.COLLATIONS;
|
||||
RETURN counter;
|
||||
END//
|
||||
# Attention: The printing of the next result sets is disabled.
|
||||
SELECT * FROM information_schema.COLLATIONS;
|
||||
SELECT * FROM test.v1;
|
||||
CALL test.p1;
|
||||
SELECT test.f1();
|
||||
DROP VIEW test.v1;
|
||||
DROP PROCEDURE test.p1;
|
||||
DROP FUNCTION test.f1;
|
||||
#########################################################################
|
||||
# Testcase 3.2.3.1: INFORMATION_SCHEMA.COLLATIONS layout
|
||||
#########################################################################
|
||||
DESCRIBE information_schema.COLLATIONS;
|
||||
Field Type Null Key Default Extra
|
||||
COLLATION_NAME varchar(32) NO
|
||||
CHARACTER_SET_NAME varchar(32) 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(32) NOT NULL DEFAULT '',
|
||||
`CHARACTER_SET_NAME` varchar(32) 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(32) NO
|
||||
CHARACTER_SET_NAME varchar(32) 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;
|
||||
@@ -0,0 +1,372 @@
|
||||
SHOW TABLES FROM information_schema LIKE 'COLUMN_PRIVILEGES';
|
||||
Tables_in_information_schema (COLUMN_PRIVILEGES)
|
||||
COLUMN_PRIVILEGES
|
||||
#######################################################################
|
||||
# Testcase 3.2.1.1: INFORMATION_SCHEMA tables can be queried via SELECT
|
||||
#######################################################################
|
||||
DROP VIEW IF EXISTS test.v1;
|
||||
DROP PROCEDURE IF EXISTS test.p1;
|
||||
DROP FUNCTION IF EXISTS test.f1;
|
||||
CREATE VIEW test.v1 AS SELECT * FROM information_schema.COLUMN_PRIVILEGES;
|
||||
CREATE PROCEDURE test.p1() SELECT * FROM information_schema.COLUMN_PRIVILEGES;
|
||||
CREATE FUNCTION test.f1() returns BIGINT
|
||||
BEGIN
|
||||
DECLARE counter BIGINT DEFAULT NULL;
|
||||
SELECT COUNT(*) INTO counter FROM information_schema.COLUMN_PRIVILEGES;
|
||||
RETURN counter;
|
||||
END//
|
||||
# Attention: The printing of the next result sets is disabled.
|
||||
SELECT * FROM information_schema.COLUMN_PRIVILEGES;
|
||||
SELECT * FROM test.v1;
|
||||
CALL test.p1;
|
||||
SELECT test.f1();
|
||||
DROP VIEW test.v1;
|
||||
DROP PROCEDURE test.p1;
|
||||
DROP FUNCTION test.f1;
|
||||
#########################################################################
|
||||
# Testcase 3.2.5.1: INFORMATION_SCHEMA.COLUMN_PRIVILEGES layout
|
||||
#########################################################################
|
||||
DESCRIBE information_schema.COLUMN_PRIVILEGES;
|
||||
Field Type Null Key Default Extra
|
||||
GRANTEE varchar(81) NO
|
||||
TABLE_CATALOG varchar(512) YES NULL
|
||||
TABLE_SCHEMA varchar(64) NO
|
||||
TABLE_NAME varchar(64) NO
|
||||
COLUMN_NAME varchar(64) NO
|
||||
PRIVILEGE_TYPE varchar(64) NO
|
||||
IS_GRANTABLE varchar(3) NO
|
||||
SHOW CREATE TABLE information_schema.COLUMN_PRIVILEGES;
|
||||
Table Create Table
|
||||
COLUMN_PRIVILEGES CREATE TEMPORARY TABLE `COLUMN_PRIVILEGES` (
|
||||
`GRANTEE` varchar(81) NOT NULL DEFAULT '',
|
||||
`TABLE_CATALOG` varchar(512) DEFAULT NULL,
|
||||
`TABLE_SCHEMA` varchar(64) NOT NULL DEFAULT '',
|
||||
`TABLE_NAME` varchar(64) NOT NULL DEFAULT '',
|
||||
`COLUMN_NAME` varchar(64) NOT NULL DEFAULT '',
|
||||
`PRIVILEGE_TYPE` varchar(64) NOT NULL DEFAULT '',
|
||||
`IS_GRANTABLE` varchar(3) NOT NULL DEFAULT ''
|
||||
) ENGINE=MEMORY DEFAULT CHARSET=utf8
|
||||
SHOW COLUMNS FROM information_schema.COLUMN_PRIVILEGES;
|
||||
Field Type Null Key Default Extra
|
||||
GRANTEE varchar(81) NO
|
||||
TABLE_CATALOG varchar(512) YES NULL
|
||||
TABLE_SCHEMA varchar(64) NO
|
||||
TABLE_NAME varchar(64) NO
|
||||
COLUMN_NAME varchar(64) NO
|
||||
PRIVILEGE_TYPE varchar(64) NO
|
||||
IS_GRANTABLE varchar(3) NO
|
||||
SELECT table_catalog, table_schema, table_name, column_name, privilege_type
|
||||
FROM information_schema.column_privileges WHERE table_catalog IS NOT NULL;
|
||||
table_catalog table_schema table_name column_name privilege_type
|
||||
######################################################################
|
||||
# Testcase 3.2.5.2+3.2.5.3+3.2.5.4:
|
||||
# INFORMATION_SCHEMA.COLUMN_PRIVILEGES accessible information
|
||||
######################################################################
|
||||
DROP DATABASE IF EXISTS db_datadict;
|
||||
CREATE DATABASE db_datadict;
|
||||
CREATE TABLE db_datadict.t1 (f1 INT, f2 DECIMAL, f3 TEXT)
|
||||
ENGINE = <other_engine_type>;
|
||||
USE db_datadict;
|
||||
DROP USER 'testuser1'@'localhost';
|
||||
CREATE USER 'testuser1'@'localhost';
|
||||
DROP USER 'testuser2'@'localhost';
|
||||
CREATE USER 'testuser2'@'localhost';
|
||||
DROP USER 'testuser3'@'localhost';
|
||||
CREATE USER 'testuser3'@'localhost';
|
||||
GRANT SELECT(f1, f3) ON db_datadict.t1 TO 'testuser1'@'localhost';
|
||||
GRANT INSERT(f1) ON db_datadict.t1 TO 'testuser1'@'localhost';
|
||||
GRANT UPDATE(f2) ON db_datadict.t1 TO 'testuser1'@'localhost';
|
||||
GRANT SELECT(f2) ON db_datadict.t1 TO 'testuser2'@'localhost';
|
||||
GRANT INSERT, SELECT ON db_datadict.t1 TO 'testuser3'@'localhost';
|
||||
GRANT SELECT(f3) ON db_datadict.t1 TO 'testuser3'@'localhost';
|
||||
GRANT INSERT, SELECT ON db_datadict.t1 TO 'testuser3'@'localhost'
|
||||
WITH GRANT OPTION;
|
||||
GRANT ALL ON db_datadict.* TO 'testuser3'@'localhost';
|
||||
SELECT * FROM information_schema.column_privileges
|
||||
WHERE grantee LIKE '''testuser%'''
|
||||
ORDER BY grantee, table_schema,table_name,column_name,privilege_type;
|
||||
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
|
||||
'testuser1'@'localhost' NULL db_datadict t1 f1 INSERT NO
|
||||
'testuser1'@'localhost' NULL db_datadict t1 f1 SELECT NO
|
||||
'testuser1'@'localhost' NULL db_datadict t1 f2 UPDATE NO
|
||||
'testuser1'@'localhost' NULL db_datadict t1 f3 SELECT NO
|
||||
'testuser2'@'localhost' NULL db_datadict t1 f2 SELECT NO
|
||||
'testuser3'@'localhost' NULL db_datadict t1 f3 SELECT YES
|
||||
GRANT UPDATE(f3) ON db_datadict.t1 TO 'testuser1'@'localhost'
|
||||
WITH GRANT OPTION;
|
||||
SELECT * FROM information_schema.column_privileges
|
||||
WHERE grantee LIKE '''testuser%'''
|
||||
ORDER BY grantee, table_schema,table_name,column_name,privilege_type;
|
||||
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
|
||||
'testuser1'@'localhost' NULL db_datadict t1 f1 INSERT YES
|
||||
'testuser1'@'localhost' NULL db_datadict t1 f1 SELECT YES
|
||||
'testuser1'@'localhost' NULL db_datadict t1 f2 UPDATE YES
|
||||
'testuser1'@'localhost' NULL db_datadict t1 f3 SELECT YES
|
||||
'testuser1'@'localhost' NULL db_datadict t1 f3 UPDATE YES
|
||||
'testuser2'@'localhost' NULL db_datadict t1 f2 SELECT NO
|
||||
'testuser3'@'localhost' NULL db_datadict t1 f3 SELECT YES
|
||||
# Establish connection testuser1 (user=testuser1)
|
||||
SELECT * FROM information_schema.column_privileges
|
||||
WHERE grantee LIKE '''testuser%'''
|
||||
ORDER BY grantee, table_schema,table_name,column_name,privilege_type;
|
||||
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
|
||||
'testuser1'@'localhost' NULL db_datadict t1 f1 INSERT YES
|
||||
'testuser1'@'localhost' NULL db_datadict t1 f1 SELECT YES
|
||||
'testuser1'@'localhost' NULL db_datadict t1 f2 UPDATE YES
|
||||
'testuser1'@'localhost' NULL db_datadict t1 f3 SELECT YES
|
||||
'testuser1'@'localhost' NULL db_datadict t1 f3 UPDATE YES
|
||||
# Establish connection testuser2 (user=testuser2)
|
||||
SELECT * FROM information_schema.column_privileges
|
||||
WHERE grantee LIKE '''testuser%'''
|
||||
ORDER BY grantee, table_schema,table_name,column_name,privilege_type;
|
||||
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
|
||||
'testuser2'@'localhost' NULL db_datadict t1 f2 SELECT NO
|
||||
# Establish connection testuser3 (user=testuser3)
|
||||
# FIXME: Is it correct that granted TABLES do not occur in COLUMN_PRIVILEGES?
|
||||
SELECT * FROM information_schema.table_privileges
|
||||
WHERE grantee LIKE '''testuser%'''
|
||||
ORDER BY grantee,table_schema,table_name,privilege_type;
|
||||
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PRIVILEGE_TYPE IS_GRANTABLE
|
||||
'testuser3'@'localhost' NULL db_datadict t1 INSERT YES
|
||||
'testuser3'@'localhost' NULL db_datadict t1 SELECT YES
|
||||
SELECT * FROM information_schema.schema_privileges
|
||||
WHERE grantee LIKE '''testuser%'''
|
||||
ORDER BY grantee,table_schema,privilege_type;
|
||||
GRANTEE TABLE_CATALOG TABLE_SCHEMA PRIVILEGE_TYPE IS_GRANTABLE
|
||||
'testuser3'@'localhost' NULL db_datadict ALTER NO
|
||||
'testuser3'@'localhost' NULL db_datadict ALTER ROUTINE NO
|
||||
'testuser3'@'localhost' NULL db_datadict CREATE NO
|
||||
'testuser3'@'localhost' NULL db_datadict CREATE ROUTINE NO
|
||||
'testuser3'@'localhost' NULL db_datadict CREATE TEMPORARY TABLES NO
|
||||
'testuser3'@'localhost' NULL db_datadict CREATE VIEW NO
|
||||
'testuser3'@'localhost' NULL db_datadict DELETE NO
|
||||
'testuser3'@'localhost' NULL db_datadict DROP NO
|
||||
'testuser3'@'localhost' NULL db_datadict EVENT NO
|
||||
'testuser3'@'localhost' NULL db_datadict EXECUTE NO
|
||||
'testuser3'@'localhost' NULL db_datadict INDEX NO
|
||||
'testuser3'@'localhost' NULL db_datadict INSERT NO
|
||||
'testuser3'@'localhost' NULL db_datadict LOCK TABLES NO
|
||||
'testuser3'@'localhost' NULL db_datadict REFERENCES NO
|
||||
'testuser3'@'localhost' NULL db_datadict SELECT NO
|
||||
'testuser3'@'localhost' NULL db_datadict SHOW VIEW NO
|
||||
'testuser3'@'localhost' NULL db_datadict TRIGGER NO
|
||||
'testuser3'@'localhost' NULL db_datadict UPDATE NO
|
||||
SELECT * FROM information_schema.column_privileges
|
||||
WHERE grantee LIKE '''testuser%'''
|
||||
ORDER BY grantee, table_schema,table_name,column_name,privilege_type;
|
||||
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
|
||||
'testuser3'@'localhost' NULL db_datadict t1 f3 SELECT YES
|
||||
GRANT SELECT(f1, f3) ON db_datadict.t1 TO 'testuser2'@'localhost';
|
||||
# FIXME: Is it intended that *my* grants to others are *NOT* shown here?
|
||||
SELECT * FROM information_schema.column_privileges
|
||||
WHERE grantee LIKE '''testuser%'''
|
||||
ORDER BY grantee, table_schema,table_name,column_name,privilege_type;
|
||||
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
|
||||
'testuser3'@'localhost' NULL db_datadict t1 f3 SELECT YES
|
||||
# Switch to connection testuser2 (user=testuser2)
|
||||
SELECT * FROM information_schema.column_privileges
|
||||
WHERE grantee LIKE '''testuser%'''
|
||||
ORDER BY grantee, table_schema,table_name,column_name,privilege_type;
|
||||
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
|
||||
'testuser2'@'localhost' NULL db_datadict t1 f1 SELECT NO
|
||||
'testuser2'@'localhost' NULL db_datadict t1 f2 SELECT NO
|
||||
'testuser2'@'localhost' NULL db_datadict t1 f3 SELECT NO
|
||||
# Switch to connection default and close connections testuser1,testuser2,testuser3
|
||||
DROP DATABASE db_datadict;
|
||||
DROP USER 'testuser1'@'localhost';
|
||||
DROP USER 'testuser2'@'localhost';
|
||||
DROP USER 'testuser3'@'localhost';
|
||||
################################################################################
|
||||
# 3.2.1.13+3.2.1.14+3.2.1.15: INFORMATION_SCHEMA.COLUMN_PRIVILEGES modifications
|
||||
################################################################################
|
||||
DROP DATABASE IF EXISTS db_datadict;
|
||||
CREATE DATABASE db_datadict;
|
||||
CREATE TABLE db_datadict.my_table (f1 BIGINT, f2 CHAR(10), f3 DATE)
|
||||
ENGINE = <engine_type>;
|
||||
DROP USER 'testuser1'@'localhost';
|
||||
CREATE USER 'testuser1'@'localhost';
|
||||
GRANT ALL ON test.* TO 'testuser1'@'localhost';
|
||||
SELECT * FROM information_schema.column_privileges
|
||||
WHERE table_name = 'my_table'
|
||||
ORDER BY grantee, table_schema,table_name,column_name,privilege_type;
|
||||
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
|
||||
SHOW GRANTS FOR 'testuser1'@'localhost';
|
||||
Grants for testuser1@localhost
|
||||
GRANT USAGE ON *.* TO 'testuser1'@'localhost'
|
||||
GRANT ALL PRIVILEGES ON `test`.* TO 'testuser1'@'localhost'
|
||||
# Establish connection testuser1 (user=testuser1)
|
||||
SELECT * FROM information_schema.column_privileges
|
||||
WHERE table_name = 'my_table'
|
||||
ORDER BY grantee, table_schema,table_name,column_name,privilege_type;
|
||||
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
|
||||
SHOW GRANTS FOR 'testuser1'@'localhost';
|
||||
Grants for testuser1@localhost
|
||||
GRANT USAGE ON *.* TO 'testuser1'@'localhost'
|
||||
GRANT ALL PRIVILEGES ON `test`.* TO 'testuser1'@'localhost'
|
||||
# Switch to connection default
|
||||
GRANT SELECT (f1,f3) ON db_datadict.my_table TO 'testuser1'@'localhost';
|
||||
SELECT * FROM information_schema.column_privileges
|
||||
WHERE table_name = 'my_table'
|
||||
ORDER BY grantee, table_schema,table_name,column_name,privilege_type;
|
||||
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
|
||||
'testuser1'@'localhost' NULL db_datadict my_table f1 SELECT NO
|
||||
'testuser1'@'localhost' NULL db_datadict my_table f3 SELECT NO
|
||||
SHOW GRANTS FOR 'testuser1'@'localhost';
|
||||
Grants for testuser1@localhost
|
||||
GRANT USAGE ON *.* TO 'testuser1'@'localhost'
|
||||
GRANT ALL PRIVILEGES ON `test`.* TO 'testuser1'@'localhost'
|
||||
GRANT SELECT (f3, f1) ON `db_datadict`.`my_table` TO 'testuser1'@'localhost'
|
||||
# Switch to connection testuser1
|
||||
SELECT * FROM information_schema.column_privileges
|
||||
WHERE table_name = 'my_table'
|
||||
ORDER BY grantee, table_schema,table_name,column_name,privilege_type;
|
||||
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
|
||||
'testuser1'@'localhost' NULL db_datadict my_table f1 SELECT NO
|
||||
'testuser1'@'localhost' NULL db_datadict my_table f3 SELECT NO
|
||||
SHOW GRANTS FOR 'testuser1'@'localhost';
|
||||
Grants for testuser1@localhost
|
||||
GRANT USAGE ON *.* TO 'testuser1'@'localhost'
|
||||
GRANT ALL PRIVILEGES ON `test`.* TO 'testuser1'@'localhost'
|
||||
GRANT SELECT (f3, f1) ON `db_datadict`.`my_table` TO 'testuser1'@'localhost'
|
||||
# Switch to connection default
|
||||
ALTER TABLE db_datadict.my_table DROP COLUMN f3;
|
||||
GRANT UPDATE (f1) ON db_datadict.my_table TO 'testuser1'@'localhost';
|
||||
SELECT * FROM information_schema.column_privileges
|
||||
WHERE table_name = 'my_table'
|
||||
ORDER BY grantee, table_schema,table_name,column_name,privilege_type;
|
||||
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
|
||||
'testuser1'@'localhost' NULL db_datadict my_table f1 SELECT NO
|
||||
'testuser1'@'localhost' NULL db_datadict my_table f1 UPDATE NO
|
||||
'testuser1'@'localhost' NULL db_datadict my_table f3 SELECT NO
|
||||
SHOW GRANTS FOR 'testuser1'@'localhost';
|
||||
Grants for testuser1@localhost
|
||||
GRANT USAGE ON *.* TO 'testuser1'@'localhost'
|
||||
GRANT ALL PRIVILEGES ON `test`.* TO 'testuser1'@'localhost'
|
||||
GRANT SELECT (f3, f1), UPDATE (f1) ON `db_datadict`.`my_table` TO 'testuser1'@'localhost'
|
||||
# Switch to connection testuser1
|
||||
SELECT * FROM information_schema.column_privileges
|
||||
WHERE table_name = 'my_table'
|
||||
ORDER BY grantee, table_schema,table_name,column_name,privilege_type;
|
||||
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
|
||||
'testuser1'@'localhost' NULL db_datadict my_table f1 SELECT NO
|
||||
'testuser1'@'localhost' NULL db_datadict my_table f1 UPDATE NO
|
||||
'testuser1'@'localhost' NULL db_datadict my_table f3 SELECT NO
|
||||
SHOW GRANTS FOR 'testuser1'@'localhost';
|
||||
Grants for testuser1@localhost
|
||||
GRANT USAGE ON *.* TO 'testuser1'@'localhost'
|
||||
GRANT ALL PRIVILEGES ON `test`.* TO 'testuser1'@'localhost'
|
||||
GRANT SELECT (f3, f1), UPDATE (f1) ON `db_datadict`.`my_table` TO 'testuser1'@'localhost'
|
||||
SELECT f1, f3 FROM db_datadict.my_table;
|
||||
ERROR 42S22: Unknown column 'f3' in 'field list'
|
||||
# Switch to connection default
|
||||
ALTER TABLE db_datadict.my_table CHANGE COLUMN f1 my_col BIGINT;
|
||||
SELECT * FROM information_schema.column_privileges
|
||||
WHERE table_name = 'my_table'
|
||||
ORDER BY grantee, table_schema,table_name,column_name,privilege_type;
|
||||
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
|
||||
'testuser1'@'localhost' NULL db_datadict my_table f1 SELECT NO
|
||||
'testuser1'@'localhost' NULL db_datadict my_table f1 UPDATE NO
|
||||
'testuser1'@'localhost' NULL db_datadict my_table f3 SELECT NO
|
||||
SHOW GRANTS FOR 'testuser1'@'localhost';
|
||||
Grants for testuser1@localhost
|
||||
GRANT USAGE ON *.* TO 'testuser1'@'localhost'
|
||||
GRANT ALL PRIVILEGES ON `test`.* TO 'testuser1'@'localhost'
|
||||
GRANT SELECT (f3, f1), UPDATE (f1) ON `db_datadict`.`my_table` TO 'testuser1'@'localhost'
|
||||
# Switch to connection testuser1
|
||||
SELECT * FROM information_schema.column_privileges
|
||||
WHERE table_name = 'my_table'
|
||||
ORDER BY grantee, table_schema,table_name,column_name,privilege_type;
|
||||
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
|
||||
'testuser1'@'localhost' NULL db_datadict my_table f1 SELECT NO
|
||||
'testuser1'@'localhost' NULL db_datadict my_table f1 UPDATE NO
|
||||
'testuser1'@'localhost' NULL db_datadict my_table f3 SELECT NO
|
||||
SHOW GRANTS FOR 'testuser1'@'localhost';
|
||||
Grants for testuser1@localhost
|
||||
GRANT USAGE ON *.* TO 'testuser1'@'localhost'
|
||||
GRANT ALL PRIVILEGES ON `test`.* TO 'testuser1'@'localhost'
|
||||
GRANT SELECT (f3, f1), UPDATE (f1) ON `db_datadict`.`my_table` TO 'testuser1'@'localhost'
|
||||
# Switch to connection default
|
||||
DROP TABLE db_datadict.my_table;
|
||||
SELECT * FROM information_schema.column_privileges
|
||||
WHERE table_name = 'my_table'
|
||||
ORDER BY grantee, table_schema,table_name,column_name,privilege_type;
|
||||
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
|
||||
'testuser1'@'localhost' NULL db_datadict my_table f1 SELECT NO
|
||||
'testuser1'@'localhost' NULL db_datadict my_table f1 UPDATE NO
|
||||
'testuser1'@'localhost' NULL db_datadict my_table f3 SELECT NO
|
||||
SHOW GRANTS FOR 'testuser1'@'localhost';
|
||||
Grants for testuser1@localhost
|
||||
GRANT USAGE ON *.* TO 'testuser1'@'localhost'
|
||||
GRANT ALL PRIVILEGES ON `test`.* TO 'testuser1'@'localhost'
|
||||
GRANT SELECT (f3, f1), UPDATE (f1) ON `db_datadict`.`my_table` TO 'testuser1'@'localhost'
|
||||
# Switch to connection testuser1
|
||||
SELECT * FROM information_schema.column_privileges
|
||||
WHERE table_name = 'my_table'
|
||||
ORDER BY grantee, table_schema,table_name,column_name,privilege_type;
|
||||
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
|
||||
'testuser1'@'localhost' NULL db_datadict my_table f1 SELECT NO
|
||||
'testuser1'@'localhost' NULL db_datadict my_table f1 UPDATE NO
|
||||
'testuser1'@'localhost' NULL db_datadict my_table f3 SELECT NO
|
||||
SHOW GRANTS FOR 'testuser1'@'localhost';
|
||||
Grants for testuser1@localhost
|
||||
GRANT USAGE ON *.* TO 'testuser1'@'localhost'
|
||||
GRANT ALL PRIVILEGES ON `test`.* TO 'testuser1'@'localhost'
|
||||
GRANT SELECT (f3, f1), UPDATE (f1) ON `db_datadict`.`my_table` TO 'testuser1'@'localhost'
|
||||
# Switch to connection default
|
||||
REVOKE ALL ON db_datadict.my_table FROM 'testuser1'@'localhost';
|
||||
SELECT * FROM information_schema.column_privileges
|
||||
WHERE table_name = 'my_table'
|
||||
ORDER BY grantee, table_schema,table_name,column_name,privilege_type;
|
||||
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
|
||||
SHOW GRANTS FOR 'testuser1'@'localhost';
|
||||
Grants for testuser1@localhost
|
||||
GRANT USAGE ON *.* TO 'testuser1'@'localhost'
|
||||
GRANT ALL PRIVILEGES ON `test`.* TO 'testuser1'@'localhost'
|
||||
# Switch to connection testuser1
|
||||
SELECT * FROM information_schema.column_privileges
|
||||
WHERE table_name = 'my_table'
|
||||
ORDER BY grantee, table_schema,table_name,column_name,privilege_type;
|
||||
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
|
||||
SHOW GRANTS FOR 'testuser1'@'localhost';
|
||||
Grants for testuser1@localhost
|
||||
GRANT USAGE ON *.* TO 'testuser1'@'localhost'
|
||||
GRANT ALL PRIVILEGES ON `test`.* TO 'testuser1'@'localhost'
|
||||
# Switch to connection default and close connection testuser1
|
||||
DROP USER 'testuser1'@'localhost';
|
||||
DROP DATABASE db_datadict;
|
||||
########################################################################
|
||||
# Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and
|
||||
# DDL on INFORMATION_SCHEMA table are not supported
|
||||
########################################################################
|
||||
DROP DATABASE IF EXISTS db_datadict;
|
||||
CREATE DATABASE db_datadict;
|
||||
CREATE TABLE db_datadict.t1 (f1 BIGINT, f2 BIGINT)
|
||||
ENGINE = <engine_type>;
|
||||
DROP USER 'testuser1'@'localhost';
|
||||
CREATE USER 'testuser1'@'localhost';
|
||||
GRANT SELECT (f1) ON db_datadict.t1 TO 'testuser1'@'localhost';
|
||||
INSERT INTO information_schema.column_privileges
|
||||
SELECT * FROM information_schema.column_privileges;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
UPDATE information_schema.column_privileges SET table_schema = 'test'
|
||||
WHERE table_name = 't1';
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
DELETE FROM information_schema.column_privileges WHERE table_name = 't1';
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
TRUNCATE information_schema.column_privileges;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
CREATE INDEX my_idx_on_tables
|
||||
ON information_schema.column_privileges(table_schema);
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
ALTER TABLE information_schema.column_privileges ADD f1 INT;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
DROP TABLE information_schema.column_privileges;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
ALTER TABLE information_schema.column_privileges
|
||||
RENAME db_datadict.column_privileges;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
ALTER TABLE information_schema.column_privileges
|
||||
RENAME information_schema.xcolumn_privileges;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
DROP DATABASE db_datadict;
|
||||
DROP USER 'testuser1'@'localhost';
|
||||
@@ -0,0 +1,37 @@
|
||||
##############################################################################
|
||||
# Testcases 3.2.9.2+3.2.9.3 INFORMATION_SCHEMA.SCHEMATA accessible information
|
||||
##############################################################################
|
||||
DROP DATABASE IF EXISTS db_datadict;
|
||||
CREATE DATABASE db_datadict;
|
||||
DROP USER 'testuser1'@'localhost';
|
||||
CREATE USER 'testuser1'@'localhost';
|
||||
GRANT SELECT ON db_datadict.* TO 'testuser1'@'localhost';
|
||||
SELECT * FROM information_schema.column_privileges
|
||||
WHERE table_schema IN ('information_schema','mysql','test')
|
||||
ORDER BY table_schema, table_name, column_name;
|
||||
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
|
||||
SHOW DATABASES LIKE 'information_schema';
|
||||
Database (information_schema)
|
||||
information_schema
|
||||
SHOW DATABASES LIKE 'mysql';
|
||||
Database (mysql)
|
||||
mysql
|
||||
SHOW DATABASES LIKE 'test';
|
||||
Database (test)
|
||||
test
|
||||
# Establish connection testuser1 (user=testuser1)
|
||||
SELECT * FROM information_schema.column_privileges
|
||||
WHERE table_schema IN ('information_schema','mysql','test')
|
||||
ORDER BY table_schema, table_name, column_name;
|
||||
GRANTEE TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME PRIVILEGE_TYPE IS_GRANTABLE
|
||||
SHOW DATABASES LIKE 'information_schema';
|
||||
Database (information_schema)
|
||||
information_schema
|
||||
SHOW DATABASES LIKE 'mysql';
|
||||
Database (mysql)
|
||||
SHOW DATABASES LIKE 'test';
|
||||
Database (test)
|
||||
test
|
||||
# Switch to connection default and close connection testuser1
|
||||
DROP USER 'testuser1'@'localhost';
|
||||
DROP DATABASE db_datadict;
|
||||
486
build/lib/mysql/mysql-test/suite/funcs_1/r/is_columns.result
Normal file
486
build/lib/mysql/mysql-test/suite/funcs_1/r/is_columns.result
Normal file
@@ -0,0 +1,486 @@
|
||||
SHOW TABLES FROM information_schema LIKE 'COLUMNS';
|
||||
Tables_in_information_schema (COLUMNS)
|
||||
COLUMNS
|
||||
#######################################################################
|
||||
# Testcase 3.2.1.1: INFORMATION_SCHEMA tables can be queried via SELECT
|
||||
#######################################################################
|
||||
DROP VIEW IF EXISTS test.v1;
|
||||
DROP PROCEDURE IF EXISTS test.p1;
|
||||
DROP FUNCTION IF EXISTS test.f1;
|
||||
CREATE VIEW test.v1 AS SELECT * FROM information_schema.COLUMNS;
|
||||
CREATE PROCEDURE test.p1() SELECT * FROM information_schema.COLUMNS;
|
||||
CREATE FUNCTION test.f1() returns BIGINT
|
||||
BEGIN
|
||||
DECLARE counter BIGINT DEFAULT NULL;
|
||||
SELECT COUNT(*) INTO counter FROM information_schema.COLUMNS;
|
||||
RETURN counter;
|
||||
END//
|
||||
# Attention: The printing of the next result sets is disabled.
|
||||
SELECT * FROM information_schema.COLUMNS;
|
||||
SELECT * FROM test.v1;
|
||||
CALL test.p1;
|
||||
SELECT test.f1();
|
||||
DROP VIEW test.v1;
|
||||
DROP PROCEDURE test.p1;
|
||||
DROP FUNCTION test.f1;
|
||||
#########################################################################
|
||||
# Testcase 3.2.6.1: INFORMATION_SCHEMA.COLUMNS layout
|
||||
#########################################################################
|
||||
DESCRIBE information_schema.COLUMNS;
|
||||
Field Type Null Key Default Extra
|
||||
TABLE_CATALOG varchar(512) YES NULL
|
||||
TABLE_SCHEMA varchar(64) NO
|
||||
TABLE_NAME varchar(64) NO
|
||||
COLUMN_NAME varchar(64) NO
|
||||
ORDINAL_POSITION bigint(21) unsigned NO 0
|
||||
COLUMN_DEFAULT longtext YES NULL
|
||||
IS_NULLABLE varchar(3) NO
|
||||
DATA_TYPE varchar(64) NO
|
||||
CHARACTER_MAXIMUM_LENGTH bigint(21) unsigned YES NULL
|
||||
CHARACTER_OCTET_LENGTH bigint(21) unsigned YES NULL
|
||||
NUMERIC_PRECISION bigint(21) unsigned YES NULL
|
||||
NUMERIC_SCALE bigint(21) unsigned YES NULL
|
||||
CHARACTER_SET_NAME varchar(32) YES NULL
|
||||
COLLATION_NAME varchar(32) YES NULL
|
||||
COLUMN_TYPE longtext NO NULL
|
||||
COLUMN_KEY varchar(3) NO
|
||||
EXTRA varchar(27) NO
|
||||
PRIVILEGES varchar(80) NO
|
||||
COLUMN_COMMENT varchar(255) NO
|
||||
SHOW CREATE TABLE information_schema.COLUMNS;
|
||||
Table Create Table
|
||||
COLUMNS CREATE TEMPORARY TABLE `COLUMNS` (
|
||||
`TABLE_CATALOG` varchar(512) DEFAULT NULL,
|
||||
`TABLE_SCHEMA` varchar(64) NOT NULL DEFAULT '',
|
||||
`TABLE_NAME` varchar(64) NOT NULL DEFAULT '',
|
||||
`COLUMN_NAME` varchar(64) NOT NULL DEFAULT '',
|
||||
`ORDINAL_POSITION` bigint(21) unsigned NOT NULL DEFAULT '0',
|
||||
`COLUMN_DEFAULT` longtext,
|
||||
`IS_NULLABLE` varchar(3) NOT NULL DEFAULT '',
|
||||
`DATA_TYPE` varchar(64) NOT NULL DEFAULT '',
|
||||
`CHARACTER_MAXIMUM_LENGTH` bigint(21) unsigned DEFAULT NULL,
|
||||
`CHARACTER_OCTET_LENGTH` bigint(21) unsigned DEFAULT NULL,
|
||||
`NUMERIC_PRECISION` bigint(21) unsigned DEFAULT NULL,
|
||||
`NUMERIC_SCALE` bigint(21) unsigned DEFAULT NULL,
|
||||
`CHARACTER_SET_NAME` varchar(32) DEFAULT NULL,
|
||||
`COLLATION_NAME` varchar(32) DEFAULT NULL,
|
||||
`COLUMN_TYPE` longtext NOT NULL,
|
||||
`COLUMN_KEY` varchar(3) NOT NULL DEFAULT '',
|
||||
`EXTRA` varchar(27) NOT NULL DEFAULT '',
|
||||
`PRIVILEGES` varchar(80) NOT NULL DEFAULT '',
|
||||
`COLUMN_COMMENT` varchar(255) NOT NULL DEFAULT ''
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8
|
||||
SHOW COLUMNS FROM information_schema.COLUMNS;
|
||||
Field Type Null Key Default Extra
|
||||
TABLE_CATALOG varchar(512) YES NULL
|
||||
TABLE_SCHEMA varchar(64) NO
|
||||
TABLE_NAME varchar(64) NO
|
||||
COLUMN_NAME varchar(64) NO
|
||||
ORDINAL_POSITION bigint(21) unsigned NO 0
|
||||
COLUMN_DEFAULT longtext YES NULL
|
||||
IS_NULLABLE varchar(3) NO
|
||||
DATA_TYPE varchar(64) NO
|
||||
CHARACTER_MAXIMUM_LENGTH bigint(21) unsigned YES NULL
|
||||
CHARACTER_OCTET_LENGTH bigint(21) unsigned YES NULL
|
||||
NUMERIC_PRECISION bigint(21) unsigned YES NULL
|
||||
NUMERIC_SCALE bigint(21) unsigned YES NULL
|
||||
CHARACTER_SET_NAME varchar(32) YES NULL
|
||||
COLLATION_NAME varchar(32) YES NULL
|
||||
COLUMN_TYPE longtext NO NULL
|
||||
COLUMN_KEY varchar(3) NO
|
||||
EXTRA varchar(27) NO
|
||||
PRIVILEGES varchar(80) NO
|
||||
COLUMN_COMMENT varchar(255) NO
|
||||
SELECT table_catalog, table_schema, table_name, column_name
|
||||
FROM information_schema.columns WHERE table_catalog IS NOT NULL;
|
||||
table_catalog table_schema table_name column_name
|
||||
###############################################################################
|
||||
# Testcase 3.2.6.2 + 3.2.6.3: INFORMATION_SCHEMA.COLUMNS accessible information
|
||||
###############################################################################
|
||||
DROP DATABASE IF EXISTS db_datadict;
|
||||
CREATE DATABASE db_datadict;
|
||||
DROP USER 'testuser1'@'localhost';
|
||||
CREATE USER 'testuser1'@'localhost';
|
||||
DROP USER 'testuser2'@'localhost';
|
||||
CREATE USER 'testuser2'@'localhost';
|
||||
CREATE TABLE db_datadict.t1
|
||||
(f1 CHAR(10), f2 TEXT, f3 DATE, f4 INT AUTO_INCREMENT,
|
||||
UNIQUE INDEX MUL_IDX(f1,f3), PRIMARY KEY (f4))
|
||||
ENGINE = <other_engine_type>;
|
||||
CREATE VIEW db_datadict.v1 AS SELECT 1 AS f1, 1 AS f2;
|
||||
GRANT SELECT(f1, f2) ON db_datadict.t1 TO 'testuser1'@'localhost';
|
||||
GRANT SELECT(f2) ON db_datadict.v1 TO 'testuser1'@'localhost';
|
||||
CREATE TABLE db_datadict.t2
|
||||
(f1 CHAR(10), f2 TEXT, f3 DATE, f4 INT, PRIMARY KEY (f1,f4))
|
||||
ENGINE = <other_engine_type>;
|
||||
GRANT INSERT(f1, f2) ON db_datadict.t2 TO 'testuser2'@'localhost';
|
||||
SELECT * FROM information_schema.columns
|
||||
WHERE table_schema = 'db_datadict'
|
||||
ORDER BY table_schema, table_name, ordinal_position;
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
|
||||
NULL db_datadict t1 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) MUL select,insert,update,references
|
||||
NULL db_datadict t1 f2 2 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references
|
||||
NULL db_datadict t1 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
|
||||
NULL db_datadict t1 f4 4 NULL NO int NULL NULL 10 0 NULL NULL int(11) PRI auto_increment select,insert,update,references
|
||||
NULL db_datadict t2 f1 1 NO char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) PRI select,insert,update,references
|
||||
NULL db_datadict t2 f2 2 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select,insert,update,references
|
||||
NULL db_datadict t2 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
|
||||
NULL db_datadict t2 f4 4 0 NO int NULL NULL 10 0 NULL NULL int(11) PRI select,insert,update,references
|
||||
NULL db_datadict v1 f1 1 0 NO int NULL NULL 10 0 NULL NULL int(1) select,insert,update,references
|
||||
NULL db_datadict v1 f2 2 0 NO int NULL NULL 10 0 NULL NULL int(1) select,insert,update,references
|
||||
SHOW COLUMNS FROM db_datadict.t1;
|
||||
Field Type Null Key Default Extra
|
||||
f1 char(10) YES MUL NULL
|
||||
f2 text YES NULL
|
||||
f3 date YES NULL
|
||||
f4 int(11) NO PRI NULL auto_increment
|
||||
SHOW COLUMNS FROM db_datadict.t2;
|
||||
Field Type Null Key Default Extra
|
||||
f1 char(10) NO PRI
|
||||
f2 text YES NULL
|
||||
f3 date YES NULL
|
||||
f4 int(11) NO PRI 0
|
||||
SHOW COLUMNS FROM db_datadict.v1;
|
||||
Field Type Null Key Default Extra
|
||||
f1 int(1) NO 0
|
||||
f2 int(1) NO 0
|
||||
# Establish connection testuser1 (user=testuser1)
|
||||
SELECT * FROM information_schema.columns
|
||||
WHERE table_schema = 'db_datadict'
|
||||
ORDER BY table_schema, table_name, ordinal_position;
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
|
||||
NULL db_datadict t1 f1 1 NULL YES char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) MUL select
|
||||
NULL db_datadict t1 f2 2 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text select
|
||||
NULL db_datadict v1 f2 2 0 NO int NULL NULL 10 0 NULL NULL int(1) select
|
||||
SHOW COLUMNS FROM db_datadict.t1;
|
||||
Field Type Null Key Default Extra
|
||||
f1 char(10) YES MUL NULL
|
||||
f2 text YES NULL
|
||||
SHOW COLUMNS FROM db_datadict.t2;
|
||||
ERROR 42000: SELECT command denied to user 'testuser1'@'localhost' for table 't2'
|
||||
SHOW COLUMNS FROM db_datadict.v1;
|
||||
Field Type Null Key Default Extra
|
||||
f2 int(1) NO 0
|
||||
# Establish connection testuser2 (user=testuser2)
|
||||
SELECT * FROM information_schema.columns
|
||||
WHERE table_schema = 'db_datadict'
|
||||
ORDER BY table_schema, table_name, ordinal_position;
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
|
||||
NULL db_datadict t2 f1 1 NO char 10 10 NULL NULL latin1 latin1_swedish_ci char(10) PRI insert
|
||||
NULL db_datadict t2 f2 2 NULL YES text 65535 65535 NULL NULL latin1 latin1_swedish_ci text insert
|
||||
SHOW COLUMNS FROM db_datadict.t1;
|
||||
ERROR 42000: SELECT command denied to user 'testuser2'@'localhost' for table 't1'
|
||||
SHOW COLUMNS FROM db_datadict.t2;
|
||||
Field Type Null Key Default Extra
|
||||
f1 char(10) NO PRI
|
||||
f2 text YES NULL
|
||||
SHOW COLUMNS FROM db_datadict.v1;
|
||||
ERROR 42000: SELECT command denied to user 'testuser2'@'localhost' for table 'v1'
|
||||
# Switch to connection default and close connections testuser1, testuser2
|
||||
DROP USER 'testuser1'@'localhost';
|
||||
DROP USER 'testuser2'@'localhost';
|
||||
DROP DATABASE IF EXISTS db_datadict;
|
||||
###############################################################################
|
||||
# Testcase 3.2.1.13+3.2.1.14+3.2.1.15: INFORMATION_SCHEMA.COLUMNS modifications
|
||||
###############################################################################
|
||||
DROP TABLE IF EXISTS test.t1_my_table;
|
||||
DROP DATABASE IF EXISTS db_datadict;
|
||||
CREATE DATABASE db_datadict;
|
||||
SELECT table_name FROM information_schema.columns
|
||||
WHERE table_name LIKE 't1_my_table%';
|
||||
table_name
|
||||
CREATE TABLE test.t1_my_table (f1 CHAR(12))
|
||||
DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci
|
||||
ENGINE = <engine_type>;
|
||||
SELECT * FROM information_schema.columns
|
||||
WHERE table_name = 't1_my_table';
|
||||
TABLE_CATALOG NULL
|
||||
TABLE_SCHEMA test
|
||||
TABLE_NAME t1_my_table
|
||||
COLUMN_NAME f1
|
||||
ORDINAL_POSITION 1
|
||||
COLUMN_DEFAULT NULL
|
||||
IS_NULLABLE YES
|
||||
DATA_TYPE char
|
||||
CHARACTER_MAXIMUM_LENGTH 12
|
||||
CHARACTER_OCTET_LENGTH 12
|
||||
NUMERIC_PRECISION NULL
|
||||
NUMERIC_SCALE NULL
|
||||
CHARACTER_SET_NAME latin1
|
||||
COLLATION_NAME latin1_swedish_ci
|
||||
COLUMN_TYPE char(12)
|
||||
COLUMN_KEY
|
||||
EXTRA
|
||||
PRIVILEGES select,insert,update,references
|
||||
COLUMN_COMMENT
|
||||
SELECT table_name FROM information_schema.columns
|
||||
WHERE table_name LIKE 't1_my_table%';
|
||||
table_name
|
||||
t1_my_table
|
||||
RENAME TABLE test.t1_my_table TO test.t1_my_tablex;
|
||||
SELECT table_name FROM information_schema.columns
|
||||
WHERE table_name LIKE 't1_my_table%';
|
||||
table_name
|
||||
t1_my_tablex
|
||||
SELECT table_schema,table_name FROM information_schema.columns
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
table_schema table_name
|
||||
test t1_my_tablex
|
||||
RENAME TABLE test.t1_my_tablex TO db_datadict.t1_my_tablex;
|
||||
SELECT table_schema,table_name FROM information_schema.columns
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
table_schema table_name
|
||||
db_datadict t1_my_tablex
|
||||
SELECT table_name, column_name FROM information_schema.columns
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
table_name column_name
|
||||
t1_my_tablex f1
|
||||
ALTER TABLE db_datadict.t1_my_tablex CHANGE COLUMN f1 first_col CHAR(12);
|
||||
SELECT table_name, column_name FROM information_schema.columns
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
table_name column_name
|
||||
t1_my_tablex first_col
|
||||
SELECT table_name, column_name, character_maximum_length,
|
||||
character_octet_length, column_type
|
||||
FROM information_schema.columns
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
table_name column_name character_maximum_length character_octet_length column_type
|
||||
t1_my_tablex first_col 12 12 char(12)
|
||||
ALTER TABLE db_datadict.t1_my_tablex
|
||||
MODIFY COLUMN first_col CHAR(20);
|
||||
SELECT table_name, column_name, character_maximum_length,
|
||||
character_octet_length, column_type
|
||||
FROM information_schema.columns
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
table_name column_name character_maximum_length character_octet_length column_type
|
||||
t1_my_tablex first_col 20 20 char(20)
|
||||
SELECT table_name, column_name, character_maximum_length,
|
||||
character_octet_length, column_type
|
||||
FROM information_schema.columns
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
table_name column_name character_maximum_length character_octet_length column_type
|
||||
t1_my_tablex first_col 20 20 char(20)
|
||||
ALTER TABLE db_datadict.t1_my_tablex
|
||||
MODIFY COLUMN first_col VARCHAR(20);
|
||||
SELECT table_name, column_name, character_maximum_length,
|
||||
character_octet_length, column_type
|
||||
FROM information_schema.columns
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
table_name column_name character_maximum_length character_octet_length column_type
|
||||
t1_my_tablex first_col 20 20 varchar(20)
|
||||
SELECT table_name, column_name, column_default
|
||||
FROM information_schema.columns
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
table_name column_name column_default
|
||||
t1_my_tablex first_col NULL
|
||||
ALTER TABLE db_datadict.t1_my_tablex
|
||||
MODIFY COLUMN first_col CHAR(10) DEFAULT 'hello';
|
||||
SELECT table_name, column_name, column_default
|
||||
FROM information_schema.columns
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
table_name column_name column_default
|
||||
t1_my_tablex first_col hello
|
||||
SELECT table_name, column_name, is_nullable
|
||||
FROM information_schema.columns
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
table_name column_name is_nullable
|
||||
t1_my_tablex first_col YES
|
||||
ALTER TABLE db_datadict.t1_my_tablex
|
||||
MODIFY COLUMN first_col CHAR(10) NOT NULL;
|
||||
SELECT table_name, column_name, is_nullable
|
||||
FROM information_schema.columns
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
table_name column_name is_nullable
|
||||
t1_my_tablex first_col NO
|
||||
SELECT table_name, column_name, collation_name
|
||||
FROM information_schema.columns
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
table_name column_name collation_name
|
||||
t1_my_tablex first_col latin1_swedish_ci
|
||||
ALTER TABLE db_datadict.t1_my_tablex
|
||||
MODIFY COLUMN first_col CHAR(10) COLLATE 'latin1_general_cs';
|
||||
SELECT table_name, column_name, collation_name
|
||||
FROM information_schema.columns
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
table_name column_name collation_name
|
||||
t1_my_tablex first_col latin1_general_cs
|
||||
SELECT table_name, column_name, character_maximum_length,
|
||||
character_octet_length, character_set_name
|
||||
FROM information_schema.columns
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
table_name column_name character_maximum_length character_octet_length character_set_name
|
||||
t1_my_tablex first_col 10 10 latin1
|
||||
ALTER TABLE db_datadict.t1_my_tablex
|
||||
MODIFY COLUMN first_col CHAR(10) CHARACTER SET utf8;
|
||||
SELECT table_name, column_name, character_maximum_length,
|
||||
character_octet_length, character_set_name
|
||||
FROM information_schema.columns
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
table_name column_name character_maximum_length character_octet_length character_set_name
|
||||
t1_my_tablex first_col 10 30 utf8
|
||||
SELECT table_name, column_name, column_comment
|
||||
FROM information_schema.columns
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
table_name column_name column_comment
|
||||
t1_my_tablex first_col
|
||||
ALTER TABLE db_datadict.t1_my_tablex
|
||||
MODIFY COLUMN first_col CHAR(10) COMMENT 'Hello';
|
||||
SELECT table_name, column_name, column_comment
|
||||
FROM information_schema.columns
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
table_name column_name column_comment
|
||||
t1_my_tablex first_col Hello
|
||||
SELECT table_name, column_name
|
||||
FROM information_schema.columns
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
table_name column_name
|
||||
t1_my_tablex first_col
|
||||
ALTER TABLE db_datadict.t1_my_tablex
|
||||
ADD COLUMN second_col CHAR(10);
|
||||
SELECT table_name, column_name
|
||||
FROM information_schema.columns
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
table_name column_name
|
||||
t1_my_tablex first_col
|
||||
t1_my_tablex second_col
|
||||
SELECT table_name, column_name, ordinal_position
|
||||
FROM information_schema.columns
|
||||
WHERE table_name = 't1_my_tablex'
|
||||
ORDER BY table_name, column_name;
|
||||
table_name column_name ordinal_position
|
||||
t1_my_tablex first_col 1
|
||||
t1_my_tablex second_col 2
|
||||
ALTER TABLE db_datadict.t1_my_tablex
|
||||
MODIFY COLUMN second_col CHAR(10) FIRST;
|
||||
SELECT table_name, column_name, ordinal_position
|
||||
FROM information_schema.columns
|
||||
WHERE table_name = 't1_my_tablex'
|
||||
ORDER BY table_name, column_name;
|
||||
table_name column_name ordinal_position
|
||||
t1_my_tablex first_col 2
|
||||
t1_my_tablex second_col 1
|
||||
SELECT table_name, column_name
|
||||
FROM information_schema.columns
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
table_name column_name
|
||||
t1_my_tablex second_col
|
||||
t1_my_tablex first_col
|
||||
ALTER TABLE db_datadict.t1_my_tablex
|
||||
DROP COLUMN first_col;
|
||||
SELECT table_name, column_name
|
||||
FROM information_schema.columns
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
table_name column_name
|
||||
t1_my_tablex second_col
|
||||
SELECT table_name, column_name, column_key
|
||||
FROM information_schema.columns
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
table_name column_name column_key
|
||||
t1_my_tablex second_col
|
||||
ALTER TABLE db_datadict.t1_my_tablex
|
||||
ADD UNIQUE INDEX IDX(second_col);
|
||||
SELECT table_name, column_name, column_key
|
||||
FROM information_schema.columns
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
table_name column_name column_key
|
||||
t1_my_tablex second_col UNI
|
||||
SELECT table_name, column_name
|
||||
FROM information_schema.columns
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
table_name column_name
|
||||
t1_my_tablex second_col
|
||||
DROP TABLE db_datadict.t1_my_tablex;
|
||||
SELECT table_name, column_name
|
||||
FROM information_schema.columns
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
table_name column_name
|
||||
CREATE VIEW test.t1_my_tablex
|
||||
AS SELECT 1 AS "col1", 'A' collate latin1_german1_ci AS "col2";
|
||||
SELECT * FROM information_schema.columns
|
||||
WHERE table_name = 't1_my_tablex'
|
||||
ORDER BY table_name, column_name;
|
||||
TABLE_CATALOG NULL
|
||||
TABLE_SCHEMA test
|
||||
TABLE_NAME t1_my_tablex
|
||||
COLUMN_NAME col1
|
||||
ORDINAL_POSITION 1
|
||||
COLUMN_DEFAULT 0
|
||||
IS_NULLABLE NO
|
||||
DATA_TYPE int
|
||||
CHARACTER_MAXIMUM_LENGTH NULL
|
||||
CHARACTER_OCTET_LENGTH NULL
|
||||
NUMERIC_PRECISION 10
|
||||
NUMERIC_SCALE 0
|
||||
CHARACTER_SET_NAME NULL
|
||||
COLLATION_NAME NULL
|
||||
COLUMN_TYPE int(1)
|
||||
COLUMN_KEY
|
||||
EXTRA
|
||||
PRIVILEGES select,insert,update,references
|
||||
COLUMN_COMMENT
|
||||
TABLE_CATALOG NULL
|
||||
TABLE_SCHEMA test
|
||||
TABLE_NAME t1_my_tablex
|
||||
COLUMN_NAME col2
|
||||
ORDINAL_POSITION 2
|
||||
COLUMN_DEFAULT
|
||||
IS_NULLABLE NO
|
||||
DATA_TYPE varchar
|
||||
CHARACTER_MAXIMUM_LENGTH 1
|
||||
CHARACTER_OCTET_LENGTH 1
|
||||
NUMERIC_PRECISION NULL
|
||||
NUMERIC_SCALE NULL
|
||||
CHARACTER_SET_NAME latin1
|
||||
COLLATION_NAME latin1_german1_ci
|
||||
COLUMN_TYPE varchar(1)
|
||||
COLUMN_KEY
|
||||
EXTRA
|
||||
PRIVILEGES select,insert,update,references
|
||||
COLUMN_COMMENT
|
||||
DROP VIEW test.t1_my_tablex;
|
||||
SELECT table_name FROM information_schema.columns
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
table_name
|
||||
CREATE TABLE db_datadict.t1_my_tablex
|
||||
ENGINE = <engine_type> AS
|
||||
SELECT 1;
|
||||
SELECT table_name FROM information_schema.columns
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
table_name
|
||||
t1_my_tablex
|
||||
DROP DATABASE db_datadict;
|
||||
SELECT table_name FROM information_schema.columns
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
table_name
|
||||
########################################################################
|
||||
# Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and
|
||||
# DDL on INFORMATION_SCHEMA table are not supported
|
||||
########################################################################
|
||||
DROP DATABASE IF EXISTS db_datadict;
|
||||
DROP TABLE IF EXISTS test.t1;
|
||||
CREATE DATABASE db_datadict;
|
||||
CREATE TABLE test.t1 (f1 BIGINT);
|
||||
INSERT INTO information_schema.columns (table_schema,table_name,column_name)
|
||||
VALUES('test','t1', 'f2');
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
INSERT INTO information_schema.columns (table_schema,table_name,column_name)
|
||||
VALUES('test','t2', 'f1');
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
UPDATE information_schema.columns SET table_name = 't4' WHERE table_name = 't1';
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
DELETE FROM information_schema.columns WHERE table_name = 't1';
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
TRUNCATE information_schema.columns;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
CREATE INDEX i3 ON information_schema.columns(table_name);
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
ALTER TABLE information_schema.columns ADD f1 INT;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
DROP TABLE information_schema.columns;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
ALTER TABLE information_schema.columns RENAME db_datadict.columns;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
ALTER TABLE information_schema.columns RENAME information_schema.xcolumns;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
DROP TABLE test.t1;
|
||||
DROP DATABASE db_datadict;
|
||||
1138
build/lib/mysql/mysql-test/suite/funcs_1/r/is_columns_innodb.result
Normal file
1138
build/lib/mysql/mysql-test/suite/funcs_1/r/is_columns_innodb.result
Normal file
File diff suppressed because it is too large
Load Diff
657
build/lib/mysql/mysql-test/suite/funcs_1/r/is_columns_is.result
Normal file
657
build/lib/mysql/mysql-test/suite/funcs_1/r/is_columns_is.result
Normal file
@@ -0,0 +1,657 @@
|
||||
SELECT * FROM information_schema.columns
|
||||
WHERE table_schema = 'information_schema'
|
||||
AND table_name <> 'profiling'
|
||||
ORDER BY table_schema, table_name, column_name;
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
|
||||
NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32) select
|
||||
NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME 2 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32) select
|
||||
NULL information_schema CHARACTER_SETS DESCRIPTION 3 NO varchar 60 180 NULL NULL utf8 utf8_general_ci varchar(60) select
|
||||
NULL information_schema CHARACTER_SETS MAXLEN 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select
|
||||
NULL information_schema COLLATIONS CHARACTER_SET_NAME 2 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32) select
|
||||
NULL information_schema COLLATIONS COLLATION_NAME 1 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32) select
|
||||
NULL information_schema COLLATIONS ID 3 0 NO bigint NULL NULL 19 0 NULL NULL bigint(11) select
|
||||
NULL information_schema COLLATIONS IS_COMPILED 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
|
||||
NULL information_schema COLLATIONS IS_DEFAULT 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
|
||||
NULL information_schema COLLATIONS SORTLEN 6 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3) select
|
||||
NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME 2 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32) select
|
||||
NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME 1 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32) select
|
||||
NULL information_schema COLUMNS CHARACTER_MAXIMUM_LENGTH 9 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||
NULL information_schema COLUMNS CHARACTER_OCTET_LENGTH 10 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||
NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32) select
|
||||
NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32) select
|
||||
NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select
|
||||
NULL information_schema COLUMNS COLUMN_DEFAULT 6 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
|
||||
NULL information_schema COLUMNS COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
|
||||
NULL information_schema COLUMNS COLUMN_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema COLUMNS COLUMN_TYPE 15 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
|
||||
NULL information_schema COLUMNS DATA_TYPE 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema COLUMNS EXTRA 17 NO varchar 27 81 NULL NULL utf8 utf8_general_ci varchar(27) select
|
||||
NULL information_schema COLUMNS IS_NULLABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
|
||||
NULL information_schema COLUMNS NUMERIC_PRECISION 11 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||
NULL information_schema COLUMNS NUMERIC_SCALE 12 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||
NULL information_schema COLUMNS ORDINAL_POSITION 5 0 NO bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||
NULL information_schema COLUMNS PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select
|
||||
NULL information_schema COLUMNS TABLE_CATALOG 1 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select
|
||||
NULL information_schema COLUMNS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema COLUMNS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema COLUMN_PRIVILEGES COLUMN_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema COLUMN_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
|
||||
NULL information_schema COLUMN_PRIVILEGES IS_GRANTABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
|
||||
NULL information_schema COLUMN_PRIVILEGES PRIVILEGE_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema COLUMN_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select
|
||||
NULL information_schema COLUMN_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema COLUMN_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema ENGINES COMMENT 3 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select
|
||||
NULL information_schema ENGINES ENGINE 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema ENGINES SAVEPOINTS 6 NULL YES varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
|
||||
NULL information_schema ENGINES SUPPORT 2 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
|
||||
NULL information_schema ENGINES TRANSACTIONS 4 NULL YES varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
|
||||
NULL information_schema ENGINES XA 5 NULL YES varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
|
||||
NULL information_schema EVENTS CHARACTER_SET_CLIENT 22 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32) select
|
||||
NULL information_schema EVENTS COLLATION_CONNECTION 23 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32) select
|
||||
NULL information_schema EVENTS CREATED 17 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select
|
||||
NULL information_schema EVENTS DATABASE_COLLATION 24 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32) select
|
||||
NULL information_schema EVENTS DEFINER 4 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select
|
||||
NULL information_schema EVENTS ENDS 14 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
|
||||
NULL information_schema EVENTS EVENT_BODY 6 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
|
||||
NULL information_schema EVENTS EVENT_CATALOG 1 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema EVENTS EVENT_COMMENT 20 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema EVENTS EVENT_DEFINITION 7 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
|
||||
NULL information_schema EVENTS EVENT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema EVENTS EVENT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema EVENTS EVENT_TYPE 8 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select
|
||||
NULL information_schema EVENTS EXECUTE_AT 9 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
|
||||
NULL information_schema EVENTS INTERVAL_FIELD 11 NULL YES varchar 18 54 NULL NULL utf8 utf8_general_ci varchar(18) select
|
||||
NULL information_schema EVENTS INTERVAL_VALUE 10 NULL YES varchar 256 768 NULL NULL utf8 utf8_general_ci varchar(256) select
|
||||
NULL information_schema EVENTS LAST_ALTERED 18 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select
|
||||
NULL information_schema EVENTS LAST_EXECUTED 19 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
|
||||
NULL information_schema EVENTS ON_COMPLETION 16 NO varchar 12 36 NULL NULL utf8 utf8_general_ci varchar(12) select
|
||||
NULL information_schema EVENTS ORIGINATOR 21 0 NO bigint NULL NULL 19 0 NULL NULL bigint(10) select
|
||||
NULL information_schema EVENTS SQL_MODE 12 NO varchar 8192 24576 NULL NULL utf8 utf8_general_ci varchar(8192) select
|
||||
NULL information_schema EVENTS STARTS 13 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
|
||||
NULL information_schema EVENTS STATUS 15 NO varchar 18 54 NULL NULL utf8 utf8_general_ci varchar(18) select
|
||||
NULL information_schema EVENTS TIME_ZONE 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema FILES AUTOEXTEND_SIZE 19 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||
NULL information_schema FILES AVG_ROW_LENGTH 28 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||
NULL information_schema FILES CHECKSUM 36 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||
NULL information_schema FILES CHECK_TIME 35 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
|
||||
NULL information_schema FILES CREATE_TIME 33 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
|
||||
NULL information_schema FILES CREATION_TIME 20 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
|
||||
NULL information_schema FILES DATA_FREE 32 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||
NULL information_schema FILES DATA_LENGTH 29 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||
NULL information_schema FILES DELETED_ROWS 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(4) select
|
||||
NULL information_schema FILES ENGINE 10 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema FILES EXTENT_SIZE 16 0 NO bigint NULL NULL 19 0 NULL NULL bigint(4) select
|
||||
NULL information_schema FILES EXTRA 38 NULL YES varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select
|
||||
NULL information_schema FILES FILE_ID 1 0 NO bigint NULL NULL 19 0 NULL NULL bigint(4) select
|
||||
NULL information_schema FILES FILE_NAME 2 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema FILES FILE_TYPE 3 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select
|
||||
NULL information_schema FILES FREE_EXTENTS 14 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(4) select
|
||||
NULL information_schema FILES FULLTEXT_KEYS 11 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema FILES INDEX_LENGTH 31 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||
NULL information_schema FILES INITIAL_SIZE 17 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||
NULL information_schema FILES LAST_ACCESS_TIME 22 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
|
||||
NULL information_schema FILES LAST_UPDATE_TIME 21 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
|
||||
NULL information_schema FILES LOGFILE_GROUP_NAME 8 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema FILES LOGFILE_GROUP_NUMBER 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(4) select
|
||||
NULL information_schema FILES MAXIMUM_SIZE 18 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||
NULL information_schema FILES MAX_DATA_LENGTH 30 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||
NULL information_schema FILES RECOVER_TIME 23 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(4) select
|
||||
NULL information_schema FILES ROW_FORMAT 26 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select
|
||||
NULL information_schema FILES STATUS 37 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select
|
||||
NULL information_schema FILES TABLESPACE_NAME 4 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema FILES TABLE_CATALOG 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema FILES TABLE_NAME 7 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema FILES TABLE_ROWS 27 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||
NULL information_schema FILES TABLE_SCHEMA 6 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema FILES TOTAL_EXTENTS 15 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(4) select
|
||||
NULL information_schema FILES TRANSACTION_COUNTER 24 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(4) select
|
||||
NULL information_schema FILES UPDATE_COUNT 13 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(4) select
|
||||
NULL information_schema FILES UPDATE_TIME 34 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
|
||||
NULL information_schema FILES VERSION 25 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||
NULL information_schema GLOBAL_STATUS VARIABLE_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema GLOBAL_STATUS VARIABLE_VALUE 2 NULL YES varchar 1024 3072 NULL NULL utf8 utf8_general_ci varchar(1024) select
|
||||
NULL information_schema GLOBAL_VARIABLES VARIABLE_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema GLOBAL_VARIABLES VARIABLE_VALUE 2 NULL YES varchar 1024 3072 NULL NULL utf8 utf8_general_ci varchar(1024) select
|
||||
NULL information_schema KEY_COLUMN_USAGE COLUMN_NAME 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_CATALOG 1 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select
|
||||
NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema KEY_COLUMN_USAGE ORDINAL_POSITION 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(10) select
|
||||
NULL information_schema KEY_COLUMN_USAGE POSITION_IN_UNIQUE_CONSTRAINT 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(10) select
|
||||
NULL information_schema KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME 12 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_NAME 11 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema KEY_COLUMN_USAGE TABLE_CATALOG 4 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select
|
||||
NULL information_schema KEY_COLUMN_USAGE TABLE_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema KEY_COLUMN_USAGE TABLE_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema PARTITIONS AVG_ROW_LENGTH 14 0 NO bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||
NULL information_schema PARTITIONS CHECKSUM 22 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||
NULL information_schema PARTITIONS CHECK_TIME 21 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
|
||||
NULL information_schema PARTITIONS CREATE_TIME 19 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
|
||||
NULL information_schema PARTITIONS DATA_FREE 18 0 NO bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||
NULL information_schema PARTITIONS DATA_LENGTH 15 0 NO bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||
NULL information_schema PARTITIONS INDEX_LENGTH 17 0 NO bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||
NULL information_schema PARTITIONS MAX_DATA_LENGTH 16 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||
NULL information_schema PARTITIONS NODEGROUP 24 NO varchar 12 36 NULL NULL utf8 utf8_general_ci varchar(12) select
|
||||
NULL information_schema PARTITIONS PARTITION_COMMENT 23 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select
|
||||
NULL information_schema PARTITIONS PARTITION_DESCRIPTION 12 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
|
||||
NULL information_schema PARTITIONS PARTITION_EXPRESSION 10 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
|
||||
NULL information_schema PARTITIONS PARTITION_METHOD 8 NULL YES varchar 12 36 NULL NULL utf8 utf8_general_ci varchar(12) select
|
||||
NULL information_schema PARTITIONS PARTITION_NAME 4 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema PARTITIONS PARTITION_ORDINAL_POSITION 6 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||
NULL information_schema PARTITIONS SUBPARTITION_EXPRESSION 11 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
|
||||
NULL information_schema PARTITIONS SUBPARTITION_METHOD 9 NULL YES varchar 12 36 NULL NULL utf8 utf8_general_ci varchar(12) select
|
||||
NULL information_schema PARTITIONS SUBPARTITION_NAME 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema PARTITIONS SUBPARTITION_ORDINAL_POSITION 7 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||
NULL information_schema PARTITIONS TABLESPACE_NAME 25 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema PARTITIONS TABLE_CATALOG 1 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select
|
||||
NULL information_schema PARTITIONS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema PARTITIONS TABLE_ROWS 13 0 NO bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||
NULL information_schema PARTITIONS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema PARTITIONS UPDATE_TIME 20 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
|
||||
NULL information_schema PLUGINS PLUGIN_AUTHOR 8 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema PLUGINS PLUGIN_DESCRIPTION 9 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
|
||||
NULL information_schema PLUGINS PLUGIN_LIBRARY 6 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema PLUGINS PLUGIN_LIBRARY_VERSION 7 NULL YES varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select
|
||||
NULL information_schema PLUGINS PLUGIN_LICENSE 10 NULL YES varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select
|
||||
NULL information_schema PLUGINS PLUGIN_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema PLUGINS PLUGIN_STATUS 3 NO varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select
|
||||
NULL information_schema PLUGINS PLUGIN_TYPE 4 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select
|
||||
NULL information_schema PLUGINS PLUGIN_TYPE_VERSION 5 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select
|
||||
NULL information_schema PLUGINS PLUGIN_VERSION 2 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20) select
|
||||
NULL information_schema PROCESSLIST COMMAND 5 NO varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select
|
||||
NULL information_schema PROCESSLIST DB 4 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema PROCESSLIST HOST 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema PROCESSLIST ID 1 0 NO bigint NULL NULL 19 0 NULL NULL bigint(4) select
|
||||
NULL information_schema PROCESSLIST INFO 8 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
|
||||
NULL information_schema PROCESSLIST STATE 7 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema PROCESSLIST TIME 6 0 NO int NULL NULL 10 0 NULL NULL int(7) select
|
||||
NULL information_schema PROCESSLIST USER 2 NO varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select
|
||||
NULL information_schema REFERENTIAL_CONSTRAINTS CONSTRAINT_CATALOG 1 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select
|
||||
NULL information_schema REFERENTIAL_CONSTRAINTS CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema REFERENTIAL_CONSTRAINTS CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema REFERENTIAL_CONSTRAINTS DELETE_RULE 9 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema REFERENTIAL_CONSTRAINTS MATCH_OPTION 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema REFERENTIAL_CONSTRAINTS REFERENCED_TABLE_NAME 11 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema REFERENTIAL_CONSTRAINTS TABLE_NAME 10 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema REFERENTIAL_CONSTRAINTS UNIQUE_CONSTRAINT_CATALOG 4 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select
|
||||
NULL information_schema REFERENTIAL_CONSTRAINTS UNIQUE_CONSTRAINT_NAME 6 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema REFERENTIAL_CONSTRAINTS UNIQUE_CONSTRAINT_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema REFERENTIAL_CONSTRAINTS UPDATE_RULE 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema ROUTINES CHARACTER_SET_CLIENT 21 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32) select
|
||||
NULL information_schema ROUTINES COLLATION_CONNECTION 22 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32) select
|
||||
NULL information_schema ROUTINES CREATED 16 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select
|
||||
NULL information_schema ROUTINES DATABASE_COLLATION 23 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32) select
|
||||
NULL information_schema ROUTINES DEFINER 20 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select
|
||||
NULL information_schema ROUTINES DTD_IDENTIFIER 6 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema ROUTINES EXTERNAL_LANGUAGE 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema ROUTINES EXTERNAL_NAME 9 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema ROUTINES IS_DETERMINISTIC 12 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
|
||||
NULL information_schema ROUTINES LAST_ALTERED 17 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime select
|
||||
NULL information_schema ROUTINES PARAMETER_STYLE 11 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
|
||||
NULL information_schema ROUTINES ROUTINE_BODY 7 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
|
||||
NULL information_schema ROUTINES ROUTINE_CATALOG 2 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select
|
||||
NULL information_schema ROUTINES ROUTINE_COMMENT 19 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema ROUTINES ROUTINE_DEFINITION 8 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
|
||||
NULL information_schema ROUTINES ROUTINE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema ROUTINES ROUTINE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema ROUTINES ROUTINE_TYPE 5 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select
|
||||
NULL information_schema ROUTINES SECURITY_TYPE 15 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select
|
||||
NULL information_schema ROUTINES SPECIFIC_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema ROUTINES SQL_DATA_ACCESS 13 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema ROUTINES SQL_MODE 18 NO varchar 8192 24576 NULL NULL utf8 utf8_general_ci varchar(8192) select
|
||||
NULL information_schema ROUTINES SQL_PATH 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema SCHEMATA CATALOG_NAME 1 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select
|
||||
NULL information_schema SCHEMATA DEFAULT_CHARACTER_SET_NAME 3 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32) select
|
||||
NULL information_schema SCHEMATA DEFAULT_COLLATION_NAME 4 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32) select
|
||||
NULL information_schema SCHEMATA SCHEMA_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema SCHEMATA SQL_PATH 5 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select
|
||||
NULL information_schema SCHEMA_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
|
||||
NULL information_schema SCHEMA_PRIVILEGES IS_GRANTABLE 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
|
||||
NULL information_schema SCHEMA_PRIVILEGES PRIVILEGE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema SCHEMA_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select
|
||||
NULL information_schema SCHEMA_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema SESSION_STATUS VARIABLE_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema SESSION_STATUS VARIABLE_VALUE 2 NULL YES varchar 1024 3072 NULL NULL utf8 utf8_general_ci varchar(1024) select
|
||||
NULL information_schema SESSION_VARIABLES VARIABLE_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema SESSION_VARIABLES VARIABLE_VALUE 2 NULL YES varchar 1024 3072 NULL NULL utf8 utf8_general_ci varchar(1024) select
|
||||
NULL information_schema STATISTICS CARDINALITY 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21) select
|
||||
NULL information_schema STATISTICS COLLATION 9 NULL YES varchar 1 3 NULL NULL utf8 utf8_general_ci varchar(1) select
|
||||
NULL information_schema STATISTICS COLUMN_NAME 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema STATISTICS COMMENT 15 NULL YES varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select
|
||||
NULL information_schema STATISTICS INDEX_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema STATISTICS INDEX_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema STATISTICS INDEX_TYPE 14 NO varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select
|
||||
NULL information_schema STATISTICS NON_UNIQUE 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(1) select
|
||||
NULL information_schema STATISTICS NULLABLE 13 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
|
||||
NULL information_schema STATISTICS PACKED 12 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select
|
||||
NULL information_schema STATISTICS SEQ_IN_INDEX 7 0 NO bigint NULL NULL 19 0 NULL NULL bigint(2) select
|
||||
NULL information_schema STATISTICS SUB_PART 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(3) select
|
||||
NULL information_schema STATISTICS TABLE_CATALOG 1 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select
|
||||
NULL information_schema STATISTICS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema STATISTICS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema TABLES AUTO_INCREMENT 14 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||
NULL information_schema TABLES AVG_ROW_LENGTH 9 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||
NULL information_schema TABLES CHECKSUM 19 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||
NULL information_schema TABLES CHECK_TIME 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
|
||||
NULL information_schema TABLES CREATE_OPTIONS 20 NULL YES varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255) select
|
||||
NULL information_schema TABLES CREATE_TIME 15 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
|
||||
NULL information_schema TABLES DATA_FREE 13 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||
NULL information_schema TABLES DATA_LENGTH 10 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||
NULL information_schema TABLES ENGINE 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema TABLES INDEX_LENGTH 12 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||
NULL information_schema TABLES MAX_DATA_LENGTH 11 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||
NULL information_schema TABLES ROW_FORMAT 7 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10) select
|
||||
NULL information_schema TABLES TABLE_CATALOG 1 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select
|
||||
NULL information_schema TABLES TABLE_COLLATION 18 NULL YES varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32) select
|
||||
NULL information_schema TABLES TABLE_COMMENT 21 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80) select
|
||||
NULL information_schema TABLES TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema TABLES TABLE_ROWS 8 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||
NULL information_schema TABLES TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema TABLES TABLE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema TABLES UPDATE_TIME 16 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
|
||||
NULL information_schema TABLES VERSION 6 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned select
|
||||
NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_CATALOG 1 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select
|
||||
NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema TABLE_CONSTRAINTS TABLE_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema TABLE_CONSTRAINTS TABLE_SCHEMA 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema TABLE_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
|
||||
NULL information_schema TABLE_PRIVILEGES IS_GRANTABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
|
||||
NULL information_schema TABLE_PRIVILEGES PRIVILEGE_TYPE 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema TABLE_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select
|
||||
NULL information_schema TABLE_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema TABLE_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema TRIGGERS ACTION_CONDITION 9 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
|
||||
NULL information_schema TRIGGERS ACTION_ORDER 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(4) select
|
||||
NULL information_schema TRIGGERS ACTION_ORIENTATION 11 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9) select
|
||||
NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_ROW 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
|
||||
NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_TABLE 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_ROW 15 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
|
||||
NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_TABLE 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema TRIGGERS ACTION_STATEMENT 10 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
|
||||
NULL information_schema TRIGGERS ACTION_TIMING 12 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select
|
||||
NULL information_schema TRIGGERS CHARACTER_SET_CLIENT 20 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32) select
|
||||
NULL information_schema TRIGGERS COLLATION_CONNECTION 21 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32) select
|
||||
NULL information_schema TRIGGERS CREATED 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select
|
||||
NULL information_schema TRIGGERS DATABASE_COLLATION 22 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32) select
|
||||
NULL information_schema TRIGGERS DEFINER 19 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select
|
||||
NULL information_schema TRIGGERS EVENT_MANIPULATION 4 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6) select
|
||||
NULL information_schema TRIGGERS EVENT_OBJECT_CATALOG 5 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select
|
||||
NULL information_schema TRIGGERS EVENT_OBJECT_SCHEMA 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema TRIGGERS EVENT_OBJECT_TABLE 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema TRIGGERS SQL_MODE 18 NO varchar 8192 24576 NULL NULL utf8 utf8_general_ci varchar(8192) select
|
||||
NULL information_schema TRIGGERS TRIGGER_CATALOG 1 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select
|
||||
NULL information_schema TRIGGERS TRIGGER_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema TRIGGERS TRIGGER_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema USER_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81) select
|
||||
NULL information_schema USER_PRIVILEGES IS_GRANTABLE 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
|
||||
NULL information_schema USER_PRIVILEGES PRIVILEGE_TYPE 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema USER_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select
|
||||
NULL information_schema VIEWS CHARACTER_SET_CLIENT 9 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32) select
|
||||
NULL information_schema VIEWS CHECK_OPTION 5 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8) select
|
||||
NULL information_schema VIEWS COLLATION_CONNECTION 10 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32) select
|
||||
NULL information_schema VIEWS DEFINER 7 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77) select
|
||||
NULL information_schema VIEWS IS_UPDATABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3) select
|
||||
NULL information_schema VIEWS SECURITY_TYPE 8 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7) select
|
||||
NULL information_schema VIEWS TABLE_CATALOG 1 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select
|
||||
NULL information_schema VIEWS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema VIEWS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
|
||||
NULL information_schema VIEWS VIEW_DEFINITION 4 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
|
||||
##########################################################################
|
||||
# Show the quotient of CHARACTER_OCTET_LENGTH and CHARACTER_MAXIMUM_LENGTH
|
||||
##########################################################################
|
||||
SELECT DISTINCT
|
||||
CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
|
||||
DATA_TYPE,
|
||||
CHARACTER_SET_NAME,
|
||||
COLLATION_NAME
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema = 'information_schema'
|
||||
AND table_name <> 'profiling'
|
||||
AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH = 1
|
||||
ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML;
|
||||
COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME
|
||||
1.0000 longtext utf8 utf8_general_ci
|
||||
SELECT DISTINCT
|
||||
CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
|
||||
DATA_TYPE,
|
||||
CHARACTER_SET_NAME,
|
||||
COLLATION_NAME
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema = 'information_schema'
|
||||
AND table_name <> 'profiling'
|
||||
AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH <> 1
|
||||
ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML;
|
||||
COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME
|
||||
3.0000 varchar utf8 utf8_general_ci
|
||||
SELECT DISTINCT
|
||||
CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
|
||||
DATA_TYPE,
|
||||
CHARACTER_SET_NAME,
|
||||
COLLATION_NAME
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema = 'information_schema'
|
||||
AND table_name <> 'profiling'
|
||||
AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH IS NULL
|
||||
ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML;
|
||||
COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME
|
||||
NULL bigint NULL NULL
|
||||
NULL datetime NULL NULL
|
||||
NULL int NULL NULL
|
||||
--> CHAR(0) is allowed (see manual), and here both CHARACHTER_* values
|
||||
--> are 0, which is intended behavior, and the result of 0 / 0 IS NULL
|
||||
SELECT CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
|
||||
TABLE_SCHEMA,
|
||||
TABLE_NAME,
|
||||
COLUMN_NAME,
|
||||
DATA_TYPE,
|
||||
CHARACTER_MAXIMUM_LENGTH,
|
||||
CHARACTER_OCTET_LENGTH,
|
||||
CHARACTER_SET_NAME,
|
||||
COLLATION_NAME,
|
||||
COLUMN_TYPE
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema = 'information_schema'
|
||||
AND table_name <> 'profiling'
|
||||
ORDER BY TABLE_SCHEMA, TABLE_NAME, ORDINAL_POSITION;
|
||||
COL_CML TABLE_SCHEMA TABLE_NAME COLUMN_NAME DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE
|
||||
3.0000 information_schema CHARACTER_SETS CHARACTER_SET_NAME varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||
3.0000 information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||
3.0000 information_schema CHARACTER_SETS DESCRIPTION varchar 60 180 utf8 utf8_general_ci varchar(60)
|
||||
NULL information_schema CHARACTER_SETS MAXLEN bigint NULL NULL NULL NULL bigint(3)
|
||||
3.0000 information_schema COLLATIONS COLLATION_NAME varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||
3.0000 information_schema COLLATIONS CHARACTER_SET_NAME varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||
NULL information_schema COLLATIONS ID bigint NULL NULL NULL NULL bigint(11)
|
||||
3.0000 information_schema COLLATIONS IS_DEFAULT varchar 3 9 utf8 utf8_general_ci varchar(3)
|
||||
3.0000 information_schema COLLATIONS IS_COMPILED varchar 3 9 utf8 utf8_general_ci varchar(3)
|
||||
NULL information_schema COLLATIONS SORTLEN bigint NULL NULL NULL NULL bigint(3)
|
||||
3.0000 information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||
3.0000 information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||
3.0000 information_schema COLUMNS TABLE_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||
3.0000 information_schema COLUMNS TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema COLUMNS TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema COLUMNS COLUMN_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema COLUMNS ORDINAL_POSITION bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
1.0000 information_schema COLUMNS COLUMN_DEFAULT longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
|
||||
3.0000 information_schema COLUMNS IS_NULLABLE varchar 3 9 utf8 utf8_general_ci varchar(3)
|
||||
3.0000 information_schema COLUMNS DATA_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema COLUMNS CHARACTER_MAXIMUM_LENGTH bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema COLUMNS CHARACTER_OCTET_LENGTH bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema COLUMNS NUMERIC_PRECISION bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema COLUMNS NUMERIC_SCALE bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
3.0000 information_schema COLUMNS CHARACTER_SET_NAME varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||
3.0000 information_schema COLUMNS COLLATION_NAME varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||
1.0000 information_schema COLUMNS COLUMN_TYPE longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
|
||||
3.0000 information_schema COLUMNS COLUMN_KEY varchar 3 9 utf8 utf8_general_ci varchar(3)
|
||||
3.0000 information_schema COLUMNS EXTRA varchar 27 81 utf8 utf8_general_ci varchar(27)
|
||||
3.0000 information_schema COLUMNS PRIVILEGES varchar 80 240 utf8 utf8_general_ci varchar(80)
|
||||
3.0000 information_schema COLUMNS COLUMN_COMMENT varchar 255 765 utf8 utf8_general_ci varchar(255)
|
||||
3.0000 information_schema COLUMN_PRIVILEGES GRANTEE varchar 81 243 utf8 utf8_general_ci varchar(81)
|
||||
3.0000 information_schema COLUMN_PRIVILEGES TABLE_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||
3.0000 information_schema COLUMN_PRIVILEGES TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema COLUMN_PRIVILEGES TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema COLUMN_PRIVILEGES COLUMN_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema COLUMN_PRIVILEGES PRIVILEGE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema COLUMN_PRIVILEGES IS_GRANTABLE varchar 3 9 utf8 utf8_general_ci varchar(3)
|
||||
3.0000 information_schema ENGINES ENGINE varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema ENGINES SUPPORT varchar 8 24 utf8 utf8_general_ci varchar(8)
|
||||
3.0000 information_schema ENGINES COMMENT varchar 80 240 utf8 utf8_general_ci varchar(80)
|
||||
3.0000 information_schema ENGINES TRANSACTIONS varchar 3 9 utf8 utf8_general_ci varchar(3)
|
||||
3.0000 information_schema ENGINES XA varchar 3 9 utf8 utf8_general_ci varchar(3)
|
||||
3.0000 information_schema ENGINES SAVEPOINTS varchar 3 9 utf8 utf8_general_ci varchar(3)
|
||||
3.0000 information_schema EVENTS EVENT_CATALOG varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema EVENTS EVENT_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema EVENTS EVENT_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema EVENTS DEFINER varchar 77 231 utf8 utf8_general_ci varchar(77)
|
||||
3.0000 information_schema EVENTS TIME_ZONE varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema EVENTS EVENT_BODY varchar 8 24 utf8 utf8_general_ci varchar(8)
|
||||
1.0000 information_schema EVENTS EVENT_DEFINITION longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
|
||||
3.0000 information_schema EVENTS EVENT_TYPE varchar 9 27 utf8 utf8_general_ci varchar(9)
|
||||
NULL information_schema EVENTS EXECUTE_AT datetime NULL NULL NULL NULL datetime
|
||||
3.0000 information_schema EVENTS INTERVAL_VALUE varchar 256 768 utf8 utf8_general_ci varchar(256)
|
||||
3.0000 information_schema EVENTS INTERVAL_FIELD varchar 18 54 utf8 utf8_general_ci varchar(18)
|
||||
3.0000 information_schema EVENTS SQL_MODE varchar 8192 24576 utf8 utf8_general_ci varchar(8192)
|
||||
NULL information_schema EVENTS STARTS datetime NULL NULL NULL NULL datetime
|
||||
NULL information_schema EVENTS ENDS datetime NULL NULL NULL NULL datetime
|
||||
3.0000 information_schema EVENTS STATUS varchar 18 54 utf8 utf8_general_ci varchar(18)
|
||||
3.0000 information_schema EVENTS ON_COMPLETION varchar 12 36 utf8 utf8_general_ci varchar(12)
|
||||
NULL information_schema EVENTS CREATED datetime NULL NULL NULL NULL datetime
|
||||
NULL information_schema EVENTS LAST_ALTERED datetime NULL NULL NULL NULL datetime
|
||||
NULL information_schema EVENTS LAST_EXECUTED datetime NULL NULL NULL NULL datetime
|
||||
3.0000 information_schema EVENTS EVENT_COMMENT varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema EVENTS ORIGINATOR bigint NULL NULL NULL NULL bigint(10)
|
||||
3.0000 information_schema EVENTS CHARACTER_SET_CLIENT varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||
3.0000 information_schema EVENTS COLLATION_CONNECTION varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||
3.0000 information_schema EVENTS DATABASE_COLLATION varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||
NULL information_schema FILES FILE_ID bigint NULL NULL NULL NULL bigint(4)
|
||||
3.0000 information_schema FILES FILE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema FILES FILE_TYPE varchar 20 60 utf8 utf8_general_ci varchar(20)
|
||||
3.0000 information_schema FILES TABLESPACE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema FILES TABLE_CATALOG varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema FILES TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema FILES TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema FILES LOGFILE_GROUP_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema FILES LOGFILE_GROUP_NUMBER bigint NULL NULL NULL NULL bigint(4)
|
||||
3.0000 information_schema FILES ENGINE varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema FILES FULLTEXT_KEYS varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema FILES DELETED_ROWS bigint NULL NULL NULL NULL bigint(4)
|
||||
NULL information_schema FILES UPDATE_COUNT bigint NULL NULL NULL NULL bigint(4)
|
||||
NULL information_schema FILES FREE_EXTENTS bigint NULL NULL NULL NULL bigint(4)
|
||||
NULL information_schema FILES TOTAL_EXTENTS bigint NULL NULL NULL NULL bigint(4)
|
||||
NULL information_schema FILES EXTENT_SIZE bigint NULL NULL NULL NULL bigint(4)
|
||||
NULL information_schema FILES INITIAL_SIZE bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema FILES MAXIMUM_SIZE bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema FILES AUTOEXTEND_SIZE bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema FILES CREATION_TIME datetime NULL NULL NULL NULL datetime
|
||||
NULL information_schema FILES LAST_UPDATE_TIME datetime NULL NULL NULL NULL datetime
|
||||
NULL information_schema FILES LAST_ACCESS_TIME datetime NULL NULL NULL NULL datetime
|
||||
NULL information_schema FILES RECOVER_TIME bigint NULL NULL NULL NULL bigint(4)
|
||||
NULL information_schema FILES TRANSACTION_COUNTER bigint NULL NULL NULL NULL bigint(4)
|
||||
NULL information_schema FILES VERSION bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
3.0000 information_schema FILES ROW_FORMAT varchar 10 30 utf8 utf8_general_ci varchar(10)
|
||||
NULL information_schema FILES TABLE_ROWS bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema FILES AVG_ROW_LENGTH bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema FILES DATA_LENGTH bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema FILES MAX_DATA_LENGTH bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema FILES INDEX_LENGTH bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema FILES DATA_FREE bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema FILES CREATE_TIME datetime NULL NULL NULL NULL datetime
|
||||
NULL information_schema FILES UPDATE_TIME datetime NULL NULL NULL NULL datetime
|
||||
NULL information_schema FILES CHECK_TIME datetime NULL NULL NULL NULL datetime
|
||||
NULL information_schema FILES CHECKSUM bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
3.0000 information_schema FILES STATUS varchar 20 60 utf8 utf8_general_ci varchar(20)
|
||||
3.0000 information_schema FILES EXTRA varchar 255 765 utf8 utf8_general_ci varchar(255)
|
||||
3.0000 information_schema GLOBAL_STATUS VARIABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema GLOBAL_STATUS VARIABLE_VALUE varchar 1024 3072 utf8 utf8_general_ci varchar(1024)
|
||||
3.0000 information_schema GLOBAL_VARIABLES VARIABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema GLOBAL_VARIABLES VARIABLE_VALUE varchar 1024 3072 utf8 utf8_general_ci varchar(1024)
|
||||
3.0000 information_schema KEY_COLUMN_USAGE CONSTRAINT_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||
3.0000 information_schema KEY_COLUMN_USAGE CONSTRAINT_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema KEY_COLUMN_USAGE CONSTRAINT_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema KEY_COLUMN_USAGE TABLE_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||
3.0000 information_schema KEY_COLUMN_USAGE TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema KEY_COLUMN_USAGE TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema KEY_COLUMN_USAGE COLUMN_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema KEY_COLUMN_USAGE ORDINAL_POSITION bigint NULL NULL NULL NULL bigint(10)
|
||||
NULL information_schema KEY_COLUMN_USAGE POSITION_IN_UNIQUE_CONSTRAINT bigint NULL NULL NULL NULL bigint(10)
|
||||
3.0000 information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema PARTITIONS TABLE_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||
3.0000 information_schema PARTITIONS TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema PARTITIONS TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema PARTITIONS PARTITION_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema PARTITIONS SUBPARTITION_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema PARTITIONS PARTITION_ORDINAL_POSITION bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema PARTITIONS SUBPARTITION_ORDINAL_POSITION bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
3.0000 information_schema PARTITIONS PARTITION_METHOD varchar 12 36 utf8 utf8_general_ci varchar(12)
|
||||
3.0000 information_schema PARTITIONS SUBPARTITION_METHOD varchar 12 36 utf8 utf8_general_ci varchar(12)
|
||||
1.0000 information_schema PARTITIONS PARTITION_EXPRESSION longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
|
||||
1.0000 information_schema PARTITIONS SUBPARTITION_EXPRESSION longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
|
||||
1.0000 information_schema PARTITIONS PARTITION_DESCRIPTION longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
|
||||
NULL information_schema PARTITIONS TABLE_ROWS bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema PARTITIONS AVG_ROW_LENGTH bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema PARTITIONS DATA_LENGTH bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema PARTITIONS MAX_DATA_LENGTH bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema PARTITIONS INDEX_LENGTH bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema PARTITIONS DATA_FREE bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema PARTITIONS CREATE_TIME datetime NULL NULL NULL NULL datetime
|
||||
NULL information_schema PARTITIONS UPDATE_TIME datetime NULL NULL NULL NULL datetime
|
||||
NULL information_schema PARTITIONS CHECK_TIME datetime NULL NULL NULL NULL datetime
|
||||
NULL information_schema PARTITIONS CHECKSUM bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
3.0000 information_schema PARTITIONS PARTITION_COMMENT varchar 80 240 utf8 utf8_general_ci varchar(80)
|
||||
3.0000 information_schema PARTITIONS NODEGROUP varchar 12 36 utf8 utf8_general_ci varchar(12)
|
||||
3.0000 information_schema PARTITIONS TABLESPACE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema PLUGINS PLUGIN_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema PLUGINS PLUGIN_VERSION varchar 20 60 utf8 utf8_general_ci varchar(20)
|
||||
3.0000 information_schema PLUGINS PLUGIN_STATUS varchar 10 30 utf8 utf8_general_ci varchar(10)
|
||||
3.0000 information_schema PLUGINS PLUGIN_TYPE varchar 80 240 utf8 utf8_general_ci varchar(80)
|
||||
3.0000 information_schema PLUGINS PLUGIN_TYPE_VERSION varchar 20 60 utf8 utf8_general_ci varchar(20)
|
||||
3.0000 information_schema PLUGINS PLUGIN_LIBRARY varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema PLUGINS PLUGIN_LIBRARY_VERSION varchar 20 60 utf8 utf8_general_ci varchar(20)
|
||||
3.0000 information_schema PLUGINS PLUGIN_AUTHOR varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
1.0000 information_schema PLUGINS PLUGIN_DESCRIPTION longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
|
||||
3.0000 information_schema PLUGINS PLUGIN_LICENSE varchar 80 240 utf8 utf8_general_ci varchar(80)
|
||||
NULL information_schema PROCESSLIST ID bigint NULL NULL NULL NULL bigint(4)
|
||||
3.0000 information_schema PROCESSLIST USER varchar 16 48 utf8 utf8_general_ci varchar(16)
|
||||
3.0000 information_schema PROCESSLIST HOST varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema PROCESSLIST DB varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema PROCESSLIST COMMAND varchar 16 48 utf8 utf8_general_ci varchar(16)
|
||||
NULL information_schema PROCESSLIST TIME int NULL NULL NULL NULL int(7)
|
||||
3.0000 information_schema PROCESSLIST STATE varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
1.0000 information_schema PROCESSLIST INFO longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
|
||||
3.0000 information_schema REFERENTIAL_CONSTRAINTS CONSTRAINT_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||
3.0000 information_schema REFERENTIAL_CONSTRAINTS CONSTRAINT_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema REFERENTIAL_CONSTRAINTS CONSTRAINT_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema REFERENTIAL_CONSTRAINTS UNIQUE_CONSTRAINT_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||
3.0000 information_schema REFERENTIAL_CONSTRAINTS UNIQUE_CONSTRAINT_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema REFERENTIAL_CONSTRAINTS UNIQUE_CONSTRAINT_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema REFERENTIAL_CONSTRAINTS MATCH_OPTION varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema REFERENTIAL_CONSTRAINTS UPDATE_RULE varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema REFERENTIAL_CONSTRAINTS DELETE_RULE varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema REFERENTIAL_CONSTRAINTS TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema REFERENTIAL_CONSTRAINTS REFERENCED_TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema ROUTINES SPECIFIC_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema ROUTINES ROUTINE_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||
3.0000 information_schema ROUTINES ROUTINE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema ROUTINES ROUTINE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema ROUTINES ROUTINE_TYPE varchar 9 27 utf8 utf8_general_ci varchar(9)
|
||||
3.0000 information_schema ROUTINES DTD_IDENTIFIER varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema ROUTINES ROUTINE_BODY varchar 8 24 utf8 utf8_general_ci varchar(8)
|
||||
1.0000 information_schema ROUTINES ROUTINE_DEFINITION longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
|
||||
3.0000 information_schema ROUTINES EXTERNAL_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema ROUTINES EXTERNAL_LANGUAGE varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema ROUTINES PARAMETER_STYLE varchar 8 24 utf8 utf8_general_ci varchar(8)
|
||||
3.0000 information_schema ROUTINES IS_DETERMINISTIC varchar 3 9 utf8 utf8_general_ci varchar(3)
|
||||
3.0000 information_schema ROUTINES SQL_DATA_ACCESS varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema ROUTINES SQL_PATH varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema ROUTINES SECURITY_TYPE varchar 7 21 utf8 utf8_general_ci varchar(7)
|
||||
NULL information_schema ROUTINES CREATED datetime NULL NULL NULL NULL datetime
|
||||
NULL information_schema ROUTINES LAST_ALTERED datetime NULL NULL NULL NULL datetime
|
||||
3.0000 information_schema ROUTINES SQL_MODE varchar 8192 24576 utf8 utf8_general_ci varchar(8192)
|
||||
3.0000 information_schema ROUTINES ROUTINE_COMMENT varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema ROUTINES DEFINER varchar 77 231 utf8 utf8_general_ci varchar(77)
|
||||
3.0000 information_schema ROUTINES CHARACTER_SET_CLIENT varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||
3.0000 information_schema ROUTINES COLLATION_CONNECTION varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||
3.0000 information_schema ROUTINES DATABASE_COLLATION varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||
3.0000 information_schema SCHEMATA CATALOG_NAME varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||
3.0000 information_schema SCHEMATA SCHEMA_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema SCHEMATA DEFAULT_CHARACTER_SET_NAME varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||
3.0000 information_schema SCHEMATA DEFAULT_COLLATION_NAME varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||
3.0000 information_schema SCHEMATA SQL_PATH varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||
3.0000 information_schema SCHEMA_PRIVILEGES GRANTEE varchar 81 243 utf8 utf8_general_ci varchar(81)
|
||||
3.0000 information_schema SCHEMA_PRIVILEGES TABLE_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||
3.0000 information_schema SCHEMA_PRIVILEGES TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema SCHEMA_PRIVILEGES PRIVILEGE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema SCHEMA_PRIVILEGES IS_GRANTABLE varchar 3 9 utf8 utf8_general_ci varchar(3)
|
||||
3.0000 information_schema SESSION_STATUS VARIABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema SESSION_STATUS VARIABLE_VALUE varchar 1024 3072 utf8 utf8_general_ci varchar(1024)
|
||||
3.0000 information_schema SESSION_VARIABLES VARIABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema SESSION_VARIABLES VARIABLE_VALUE varchar 1024 3072 utf8 utf8_general_ci varchar(1024)
|
||||
3.0000 information_schema STATISTICS TABLE_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||
3.0000 information_schema STATISTICS TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema STATISTICS TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema STATISTICS NON_UNIQUE bigint NULL NULL NULL NULL bigint(1)
|
||||
3.0000 information_schema STATISTICS INDEX_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema STATISTICS INDEX_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema STATISTICS SEQ_IN_INDEX bigint NULL NULL NULL NULL bigint(2)
|
||||
3.0000 information_schema STATISTICS COLUMN_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema STATISTICS COLLATION varchar 1 3 utf8 utf8_general_ci varchar(1)
|
||||
NULL information_schema STATISTICS CARDINALITY bigint NULL NULL NULL NULL bigint(21)
|
||||
NULL information_schema STATISTICS SUB_PART bigint NULL NULL NULL NULL bigint(3)
|
||||
3.0000 information_schema STATISTICS PACKED varchar 10 30 utf8 utf8_general_ci varchar(10)
|
||||
3.0000 information_schema STATISTICS NULLABLE varchar 3 9 utf8 utf8_general_ci varchar(3)
|
||||
3.0000 information_schema STATISTICS INDEX_TYPE varchar 16 48 utf8 utf8_general_ci varchar(16)
|
||||
3.0000 information_schema STATISTICS COMMENT varchar 16 48 utf8 utf8_general_ci varchar(16)
|
||||
3.0000 information_schema TABLES TABLE_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||
3.0000 information_schema TABLES TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema TABLES TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema TABLES TABLE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema TABLES ENGINE varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema TABLES VERSION bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
3.0000 information_schema TABLES ROW_FORMAT varchar 10 30 utf8 utf8_general_ci varchar(10)
|
||||
NULL information_schema TABLES TABLE_ROWS bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema TABLES AVG_ROW_LENGTH bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema TABLES DATA_LENGTH bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema TABLES MAX_DATA_LENGTH bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema TABLES INDEX_LENGTH bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema TABLES DATA_FREE bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema TABLES AUTO_INCREMENT bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema TABLES CREATE_TIME datetime NULL NULL NULL NULL datetime
|
||||
NULL information_schema TABLES UPDATE_TIME datetime NULL NULL NULL NULL datetime
|
||||
NULL information_schema TABLES CHECK_TIME datetime NULL NULL NULL NULL datetime
|
||||
3.0000 information_schema TABLES TABLE_COLLATION varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||
NULL information_schema TABLES CHECKSUM bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
3.0000 information_schema TABLES CREATE_OPTIONS varchar 255 765 utf8 utf8_general_ci varchar(255)
|
||||
3.0000 information_schema TABLES TABLE_COMMENT varchar 80 240 utf8 utf8_general_ci varchar(80)
|
||||
3.0000 information_schema TABLE_CONSTRAINTS CONSTRAINT_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||
3.0000 information_schema TABLE_CONSTRAINTS CONSTRAINT_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema TABLE_CONSTRAINTS CONSTRAINT_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema TABLE_CONSTRAINTS TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema TABLE_CONSTRAINTS TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema TABLE_CONSTRAINTS CONSTRAINT_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema TABLE_PRIVILEGES GRANTEE varchar 81 243 utf8 utf8_general_ci varchar(81)
|
||||
3.0000 information_schema TABLE_PRIVILEGES TABLE_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||
3.0000 information_schema TABLE_PRIVILEGES TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema TABLE_PRIVILEGES TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema TABLE_PRIVILEGES PRIVILEGE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema TABLE_PRIVILEGES IS_GRANTABLE varchar 3 9 utf8 utf8_general_ci varchar(3)
|
||||
3.0000 information_schema TRIGGERS TRIGGER_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||
3.0000 information_schema TRIGGERS TRIGGER_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema TRIGGERS TRIGGER_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema TRIGGERS EVENT_MANIPULATION varchar 6 18 utf8 utf8_general_ci varchar(6)
|
||||
3.0000 information_schema TRIGGERS EVENT_OBJECT_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||
3.0000 information_schema TRIGGERS EVENT_OBJECT_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema TRIGGERS EVENT_OBJECT_TABLE varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema TRIGGERS ACTION_ORDER bigint NULL NULL NULL NULL bigint(4)
|
||||
1.0000 information_schema TRIGGERS ACTION_CONDITION longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
|
||||
1.0000 information_schema TRIGGERS ACTION_STATEMENT longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
|
||||
3.0000 information_schema TRIGGERS ACTION_ORIENTATION varchar 9 27 utf8 utf8_general_ci varchar(9)
|
||||
3.0000 information_schema TRIGGERS ACTION_TIMING varchar 6 18 utf8 utf8_general_ci varchar(6)
|
||||
3.0000 information_schema TRIGGERS ACTION_REFERENCE_OLD_TABLE varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema TRIGGERS ACTION_REFERENCE_NEW_TABLE varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema TRIGGERS ACTION_REFERENCE_OLD_ROW varchar 3 9 utf8 utf8_general_ci varchar(3)
|
||||
3.0000 information_schema TRIGGERS ACTION_REFERENCE_NEW_ROW varchar 3 9 utf8 utf8_general_ci varchar(3)
|
||||
NULL information_schema TRIGGERS CREATED datetime NULL NULL NULL NULL datetime
|
||||
3.0000 information_schema TRIGGERS SQL_MODE varchar 8192 24576 utf8 utf8_general_ci varchar(8192)
|
||||
3.0000 information_schema TRIGGERS DEFINER varchar 77 231 utf8 utf8_general_ci varchar(77)
|
||||
3.0000 information_schema TRIGGERS CHARACTER_SET_CLIENT varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||
3.0000 information_schema TRIGGERS COLLATION_CONNECTION varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||
3.0000 information_schema TRIGGERS DATABASE_COLLATION varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||
3.0000 information_schema USER_PRIVILEGES GRANTEE varchar 81 243 utf8 utf8_general_ci varchar(81)
|
||||
3.0000 information_schema USER_PRIVILEGES TABLE_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||
3.0000 information_schema USER_PRIVILEGES PRIVILEGE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema USER_PRIVILEGES IS_GRANTABLE varchar 3 9 utf8 utf8_general_ci varchar(3)
|
||||
3.0000 information_schema VIEWS TABLE_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||
3.0000 information_schema VIEWS TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema VIEWS TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
1.0000 information_schema VIEWS VIEW_DEFINITION longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
|
||||
3.0000 information_schema VIEWS CHECK_OPTION varchar 8 24 utf8 utf8_general_ci varchar(8)
|
||||
3.0000 information_schema VIEWS IS_UPDATABLE varchar 3 9 utf8 utf8_general_ci varchar(3)
|
||||
3.0000 information_schema VIEWS DEFINER varchar 77 231 utf8 utf8_general_ci varchar(77)
|
||||
3.0000 information_schema VIEWS SECURITY_TYPE varchar 7 21 utf8 utf8_general_ci varchar(7)
|
||||
3.0000 information_schema VIEWS CHARACTER_SET_CLIENT varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||
3.0000 information_schema VIEWS COLLATION_CONNECTION varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||
@@ -0,0 +1,657 @@
|
||||
SELECT * FROM information_schema.columns
|
||||
WHERE table_schema = 'information_schema'
|
||||
AND table_name <> 'profiling'
|
||||
ORDER BY table_schema, table_name, column_name;
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
|
||||
NULL information_schema CHARACTER_SETS CHARACTER_SET_NAME 1 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32)
|
||||
NULL information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME 2 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32)
|
||||
NULL information_schema CHARACTER_SETS DESCRIPTION 3 NO varchar 60 180 NULL NULL utf8 utf8_general_ci varchar(60)
|
||||
NULL information_schema CHARACTER_SETS MAXLEN 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3)
|
||||
NULL information_schema COLLATIONS CHARACTER_SET_NAME 2 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32)
|
||||
NULL information_schema COLLATIONS COLLATION_NAME 1 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32)
|
||||
NULL information_schema COLLATIONS ID 3 0 NO bigint NULL NULL 19 0 NULL NULL bigint(11)
|
||||
NULL information_schema COLLATIONS IS_COMPILED 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3)
|
||||
NULL information_schema COLLATIONS IS_DEFAULT 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3)
|
||||
NULL information_schema COLLATIONS SORTLEN 6 0 NO bigint NULL NULL 19 0 NULL NULL bigint(3)
|
||||
NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME 2 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32)
|
||||
NULL information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME 1 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32)
|
||||
NULL information_schema COLUMNS CHARACTER_MAXIMUM_LENGTH 9 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned
|
||||
NULL information_schema COLUMNS CHARACTER_OCTET_LENGTH 10 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned
|
||||
NULL information_schema COLUMNS CHARACTER_SET_NAME 13 NULL YES varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32)
|
||||
NULL information_schema COLUMNS COLLATION_NAME 14 NULL YES varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32)
|
||||
NULL information_schema COLUMNS COLUMN_COMMENT 19 NO varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255)
|
||||
NULL information_schema COLUMNS COLUMN_DEFAULT 6 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext
|
||||
NULL information_schema COLUMNS COLUMN_KEY 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3)
|
||||
NULL information_schema COLUMNS COLUMN_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema COLUMNS COLUMN_TYPE 15 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext
|
||||
NULL information_schema COLUMNS DATA_TYPE 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema COLUMNS EXTRA 17 NO varchar 27 81 NULL NULL utf8 utf8_general_ci varchar(27)
|
||||
NULL information_schema COLUMNS IS_NULLABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3)
|
||||
NULL information_schema COLUMNS NUMERIC_PRECISION 11 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned
|
||||
NULL information_schema COLUMNS NUMERIC_SCALE 12 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned
|
||||
NULL information_schema COLUMNS ORDINAL_POSITION 5 0 NO bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned
|
||||
NULL information_schema COLUMNS PRIVILEGES 18 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80)
|
||||
NULL information_schema COLUMNS TABLE_CATALOG 1 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512)
|
||||
NULL information_schema COLUMNS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema COLUMNS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema COLUMN_PRIVILEGES COLUMN_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema COLUMN_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81)
|
||||
NULL information_schema COLUMN_PRIVILEGES IS_GRANTABLE 7 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3)
|
||||
NULL information_schema COLUMN_PRIVILEGES PRIVILEGE_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema COLUMN_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512)
|
||||
NULL information_schema COLUMN_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema COLUMN_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema ENGINES COMMENT 3 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80)
|
||||
NULL information_schema ENGINES ENGINE 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema ENGINES SAVEPOINTS 6 NULL YES varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3)
|
||||
NULL information_schema ENGINES SUPPORT 2 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8)
|
||||
NULL information_schema ENGINES TRANSACTIONS 4 NULL YES varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3)
|
||||
NULL information_schema ENGINES XA 5 NULL YES varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3)
|
||||
NULL information_schema EVENTS CHARACTER_SET_CLIENT 22 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32)
|
||||
NULL information_schema EVENTS COLLATION_CONNECTION 23 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32)
|
||||
NULL information_schema EVENTS CREATED 17 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime
|
||||
NULL information_schema EVENTS DATABASE_COLLATION 24 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32)
|
||||
NULL information_schema EVENTS DEFINER 4 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77)
|
||||
NULL information_schema EVENTS ENDS 14 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime
|
||||
NULL information_schema EVENTS EVENT_BODY 6 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8)
|
||||
NULL information_schema EVENTS EVENT_CATALOG 1 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema EVENTS EVENT_COMMENT 20 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema EVENTS EVENT_DEFINITION 7 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext
|
||||
NULL information_schema EVENTS EVENT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema EVENTS EVENT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema EVENTS EVENT_TYPE 8 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9)
|
||||
NULL information_schema EVENTS EXECUTE_AT 9 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime
|
||||
NULL information_schema EVENTS INTERVAL_FIELD 11 NULL YES varchar 18 54 NULL NULL utf8 utf8_general_ci varchar(18)
|
||||
NULL information_schema EVENTS INTERVAL_VALUE 10 NULL YES varchar 256 768 NULL NULL utf8 utf8_general_ci varchar(256)
|
||||
NULL information_schema EVENTS LAST_ALTERED 18 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime
|
||||
NULL information_schema EVENTS LAST_EXECUTED 19 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime
|
||||
NULL information_schema EVENTS ON_COMPLETION 16 NO varchar 12 36 NULL NULL utf8 utf8_general_ci varchar(12)
|
||||
NULL information_schema EVENTS ORIGINATOR 21 0 NO bigint NULL NULL 19 0 NULL NULL bigint(10)
|
||||
NULL information_schema EVENTS SQL_MODE 12 NO varchar 8192 24576 NULL NULL utf8 utf8_general_ci varchar(8192)
|
||||
NULL information_schema EVENTS STARTS 13 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime
|
||||
NULL information_schema EVENTS STATUS 15 NO varchar 18 54 NULL NULL utf8 utf8_general_ci varchar(18)
|
||||
NULL information_schema EVENTS TIME_ZONE 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema FILES AUTOEXTEND_SIZE 19 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned
|
||||
NULL information_schema FILES AVG_ROW_LENGTH 28 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned
|
||||
NULL information_schema FILES CHECKSUM 36 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned
|
||||
NULL information_schema FILES CHECK_TIME 35 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime
|
||||
NULL information_schema FILES CREATE_TIME 33 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime
|
||||
NULL information_schema FILES CREATION_TIME 20 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime
|
||||
NULL information_schema FILES DATA_FREE 32 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned
|
||||
NULL information_schema FILES DATA_LENGTH 29 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned
|
||||
NULL information_schema FILES DELETED_ROWS 12 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(4)
|
||||
NULL information_schema FILES ENGINE 10 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema FILES EXTENT_SIZE 16 0 NO bigint NULL NULL 19 0 NULL NULL bigint(4)
|
||||
NULL information_schema FILES EXTRA 38 NULL YES varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255)
|
||||
NULL information_schema FILES FILE_ID 1 0 NO bigint NULL NULL 19 0 NULL NULL bigint(4)
|
||||
NULL information_schema FILES FILE_NAME 2 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema FILES FILE_TYPE 3 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20)
|
||||
NULL information_schema FILES FREE_EXTENTS 14 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(4)
|
||||
NULL information_schema FILES FULLTEXT_KEYS 11 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema FILES INDEX_LENGTH 31 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned
|
||||
NULL information_schema FILES INITIAL_SIZE 17 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned
|
||||
NULL information_schema FILES LAST_ACCESS_TIME 22 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime
|
||||
NULL information_schema FILES LAST_UPDATE_TIME 21 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime
|
||||
NULL information_schema FILES LOGFILE_GROUP_NAME 8 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema FILES LOGFILE_GROUP_NUMBER 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(4)
|
||||
NULL information_schema FILES MAXIMUM_SIZE 18 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned
|
||||
NULL information_schema FILES MAX_DATA_LENGTH 30 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned
|
||||
NULL information_schema FILES RECOVER_TIME 23 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(4)
|
||||
NULL information_schema FILES ROW_FORMAT 26 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10)
|
||||
NULL information_schema FILES STATUS 37 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20)
|
||||
NULL information_schema FILES TABLESPACE_NAME 4 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema FILES TABLE_CATALOG 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema FILES TABLE_NAME 7 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema FILES TABLE_ROWS 27 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned
|
||||
NULL information_schema FILES TABLE_SCHEMA 6 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema FILES TOTAL_EXTENTS 15 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(4)
|
||||
NULL information_schema FILES TRANSACTION_COUNTER 24 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(4)
|
||||
NULL information_schema FILES UPDATE_COUNT 13 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(4)
|
||||
NULL information_schema FILES UPDATE_TIME 34 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime
|
||||
NULL information_schema FILES VERSION 25 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned
|
||||
NULL information_schema GLOBAL_STATUS VARIABLE_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema GLOBAL_STATUS VARIABLE_VALUE 2 NULL YES varchar 1024 3072 NULL NULL utf8 utf8_general_ci varchar(1024)
|
||||
NULL information_schema GLOBAL_VARIABLES VARIABLE_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema GLOBAL_VARIABLES VARIABLE_VALUE 2 NULL YES varchar 1024 3072 NULL NULL utf8 utf8_general_ci varchar(1024)
|
||||
NULL information_schema KEY_COLUMN_USAGE COLUMN_NAME 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_CATALOG 1 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512)
|
||||
NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema KEY_COLUMN_USAGE CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema KEY_COLUMN_USAGE ORDINAL_POSITION 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(10)
|
||||
NULL information_schema KEY_COLUMN_USAGE POSITION_IN_UNIQUE_CONSTRAINT 9 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(10)
|
||||
NULL information_schema KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME 12 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_NAME 11 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema KEY_COLUMN_USAGE TABLE_CATALOG 4 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512)
|
||||
NULL information_schema KEY_COLUMN_USAGE TABLE_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema KEY_COLUMN_USAGE TABLE_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema PARTITIONS AVG_ROW_LENGTH 14 0 NO bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned
|
||||
NULL information_schema PARTITIONS CHECKSUM 22 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned
|
||||
NULL information_schema PARTITIONS CHECK_TIME 21 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime
|
||||
NULL information_schema PARTITIONS CREATE_TIME 19 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime
|
||||
NULL information_schema PARTITIONS DATA_FREE 18 0 NO bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned
|
||||
NULL information_schema PARTITIONS DATA_LENGTH 15 0 NO bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned
|
||||
NULL information_schema PARTITIONS INDEX_LENGTH 17 0 NO bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned
|
||||
NULL information_schema PARTITIONS MAX_DATA_LENGTH 16 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned
|
||||
NULL information_schema PARTITIONS NODEGROUP 24 NO varchar 12 36 NULL NULL utf8 utf8_general_ci varchar(12)
|
||||
NULL information_schema PARTITIONS PARTITION_COMMENT 23 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80)
|
||||
NULL information_schema PARTITIONS PARTITION_DESCRIPTION 12 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext
|
||||
NULL information_schema PARTITIONS PARTITION_EXPRESSION 10 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext
|
||||
NULL information_schema PARTITIONS PARTITION_METHOD 8 NULL YES varchar 12 36 NULL NULL utf8 utf8_general_ci varchar(12)
|
||||
NULL information_schema PARTITIONS PARTITION_NAME 4 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema PARTITIONS PARTITION_ORDINAL_POSITION 6 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned
|
||||
NULL information_schema PARTITIONS SUBPARTITION_EXPRESSION 11 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext
|
||||
NULL information_schema PARTITIONS SUBPARTITION_METHOD 9 NULL YES varchar 12 36 NULL NULL utf8 utf8_general_ci varchar(12)
|
||||
NULL information_schema PARTITIONS SUBPARTITION_NAME 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema PARTITIONS SUBPARTITION_ORDINAL_POSITION 7 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned
|
||||
NULL information_schema PARTITIONS TABLESPACE_NAME 25 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema PARTITIONS TABLE_CATALOG 1 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512)
|
||||
NULL information_schema PARTITIONS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema PARTITIONS TABLE_ROWS 13 0 NO bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned
|
||||
NULL information_schema PARTITIONS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema PARTITIONS UPDATE_TIME 20 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime
|
||||
NULL information_schema PLUGINS PLUGIN_AUTHOR 8 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema PLUGINS PLUGIN_DESCRIPTION 9 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext
|
||||
NULL information_schema PLUGINS PLUGIN_LIBRARY 6 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema PLUGINS PLUGIN_LIBRARY_VERSION 7 NULL YES varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20)
|
||||
NULL information_schema PLUGINS PLUGIN_LICENSE 10 NULL YES varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80)
|
||||
NULL information_schema PLUGINS PLUGIN_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema PLUGINS PLUGIN_STATUS 3 NO varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10)
|
||||
NULL information_schema PLUGINS PLUGIN_TYPE 4 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80)
|
||||
NULL information_schema PLUGINS PLUGIN_TYPE_VERSION 5 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20)
|
||||
NULL information_schema PLUGINS PLUGIN_VERSION 2 NO varchar 20 60 NULL NULL utf8 utf8_general_ci varchar(20)
|
||||
NULL information_schema PROCESSLIST COMMAND 5 NO varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16)
|
||||
NULL information_schema PROCESSLIST DB 4 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema PROCESSLIST HOST 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema PROCESSLIST ID 1 0 NO bigint NULL NULL 19 0 NULL NULL bigint(4)
|
||||
NULL information_schema PROCESSLIST INFO 8 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext
|
||||
NULL information_schema PROCESSLIST STATE 7 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema PROCESSLIST TIME 6 0 NO int NULL NULL 10 0 NULL NULL int(7)
|
||||
NULL information_schema PROCESSLIST USER 2 NO varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16)
|
||||
NULL information_schema REFERENTIAL_CONSTRAINTS CONSTRAINT_CATALOG 1 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512)
|
||||
NULL information_schema REFERENTIAL_CONSTRAINTS CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema REFERENTIAL_CONSTRAINTS CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema REFERENTIAL_CONSTRAINTS DELETE_RULE 9 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema REFERENTIAL_CONSTRAINTS MATCH_OPTION 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema REFERENTIAL_CONSTRAINTS REFERENCED_TABLE_NAME 11 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema REFERENTIAL_CONSTRAINTS TABLE_NAME 10 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema REFERENTIAL_CONSTRAINTS UNIQUE_CONSTRAINT_CATALOG 4 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512)
|
||||
NULL information_schema REFERENTIAL_CONSTRAINTS UNIQUE_CONSTRAINT_NAME 6 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema REFERENTIAL_CONSTRAINTS UNIQUE_CONSTRAINT_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema REFERENTIAL_CONSTRAINTS UPDATE_RULE 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema ROUTINES CHARACTER_SET_CLIENT 21 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32)
|
||||
NULL information_schema ROUTINES COLLATION_CONNECTION 22 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32)
|
||||
NULL information_schema ROUTINES CREATED 16 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime
|
||||
NULL information_schema ROUTINES DATABASE_COLLATION 23 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32)
|
||||
NULL information_schema ROUTINES DEFINER 20 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77)
|
||||
NULL information_schema ROUTINES DTD_IDENTIFIER 6 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema ROUTINES EXTERNAL_LANGUAGE 10 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema ROUTINES EXTERNAL_NAME 9 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema ROUTINES IS_DETERMINISTIC 12 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3)
|
||||
NULL information_schema ROUTINES LAST_ALTERED 17 0000-00-00 00:00:00 NO datetime NULL NULL NULL NULL NULL NULL datetime
|
||||
NULL information_schema ROUTINES PARAMETER_STYLE 11 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8)
|
||||
NULL information_schema ROUTINES ROUTINE_BODY 7 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8)
|
||||
NULL information_schema ROUTINES ROUTINE_CATALOG 2 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512)
|
||||
NULL information_schema ROUTINES ROUTINE_COMMENT 19 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema ROUTINES ROUTINE_DEFINITION 8 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext
|
||||
NULL information_schema ROUTINES ROUTINE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema ROUTINES ROUTINE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema ROUTINES ROUTINE_TYPE 5 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9)
|
||||
NULL information_schema ROUTINES SECURITY_TYPE 15 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7)
|
||||
NULL information_schema ROUTINES SPECIFIC_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema ROUTINES SQL_DATA_ACCESS 13 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema ROUTINES SQL_MODE 18 NO varchar 8192 24576 NULL NULL utf8 utf8_general_ci varchar(8192)
|
||||
NULL information_schema ROUTINES SQL_PATH 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema SCHEMATA CATALOG_NAME 1 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512)
|
||||
NULL information_schema SCHEMATA DEFAULT_CHARACTER_SET_NAME 3 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32)
|
||||
NULL information_schema SCHEMATA DEFAULT_COLLATION_NAME 4 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32)
|
||||
NULL information_schema SCHEMATA SCHEMA_NAME 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema SCHEMATA SQL_PATH 5 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512)
|
||||
NULL information_schema SCHEMA_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81)
|
||||
NULL information_schema SCHEMA_PRIVILEGES IS_GRANTABLE 5 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3)
|
||||
NULL information_schema SCHEMA_PRIVILEGES PRIVILEGE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema SCHEMA_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512)
|
||||
NULL information_schema SCHEMA_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema SESSION_STATUS VARIABLE_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema SESSION_STATUS VARIABLE_VALUE 2 NULL YES varchar 1024 3072 NULL NULL utf8 utf8_general_ci varchar(1024)
|
||||
NULL information_schema SESSION_VARIABLES VARIABLE_NAME 1 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema SESSION_VARIABLES VARIABLE_VALUE 2 NULL YES varchar 1024 3072 NULL NULL utf8 utf8_general_ci varchar(1024)
|
||||
NULL information_schema STATISTICS CARDINALITY 10 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(21)
|
||||
NULL information_schema STATISTICS COLLATION 9 NULL YES varchar 1 3 NULL NULL utf8 utf8_general_ci varchar(1)
|
||||
NULL information_schema STATISTICS COLUMN_NAME 8 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema STATISTICS COMMENT 15 NULL YES varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16)
|
||||
NULL information_schema STATISTICS INDEX_NAME 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema STATISTICS INDEX_SCHEMA 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema STATISTICS INDEX_TYPE 14 NO varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16)
|
||||
NULL information_schema STATISTICS NON_UNIQUE 4 0 NO bigint NULL NULL 19 0 NULL NULL bigint(1)
|
||||
NULL information_schema STATISTICS NULLABLE 13 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3)
|
||||
NULL information_schema STATISTICS PACKED 12 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10)
|
||||
NULL information_schema STATISTICS SEQ_IN_INDEX 7 0 NO bigint NULL NULL 19 0 NULL NULL bigint(2)
|
||||
NULL information_schema STATISTICS SUB_PART 11 NULL YES bigint NULL NULL 19 0 NULL NULL bigint(3)
|
||||
NULL information_schema STATISTICS TABLE_CATALOG 1 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512)
|
||||
NULL information_schema STATISTICS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema STATISTICS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema TABLES AUTO_INCREMENT 14 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned
|
||||
NULL information_schema TABLES AVG_ROW_LENGTH 9 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned
|
||||
NULL information_schema TABLES CHECKSUM 19 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned
|
||||
NULL information_schema TABLES CHECK_TIME 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime
|
||||
NULL information_schema TABLES CREATE_OPTIONS 20 NULL YES varchar 255 765 NULL NULL utf8 utf8_general_ci varchar(255)
|
||||
NULL information_schema TABLES CREATE_TIME 15 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime
|
||||
NULL information_schema TABLES DATA_FREE 13 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned
|
||||
NULL information_schema TABLES DATA_LENGTH 10 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned
|
||||
NULL information_schema TABLES ENGINE 5 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema TABLES INDEX_LENGTH 12 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned
|
||||
NULL information_schema TABLES MAX_DATA_LENGTH 11 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned
|
||||
NULL information_schema TABLES ROW_FORMAT 7 NULL YES varchar 10 30 NULL NULL utf8 utf8_general_ci varchar(10)
|
||||
NULL information_schema TABLES TABLE_CATALOG 1 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512)
|
||||
NULL information_schema TABLES TABLE_COLLATION 18 NULL YES varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32)
|
||||
NULL information_schema TABLES TABLE_COMMENT 21 NO varchar 80 240 NULL NULL utf8 utf8_general_ci varchar(80)
|
||||
NULL information_schema TABLES TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema TABLES TABLE_ROWS 8 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned
|
||||
NULL information_schema TABLES TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema TABLES TABLE_TYPE 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema TABLES UPDATE_TIME 16 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime
|
||||
NULL information_schema TABLES VERSION 6 NULL YES bigint NULL NULL 20 0 NULL NULL bigint(21) unsigned
|
||||
NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_CATALOG 1 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512)
|
||||
NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema TABLE_CONSTRAINTS CONSTRAINT_TYPE 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema TABLE_CONSTRAINTS TABLE_NAME 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema TABLE_CONSTRAINTS TABLE_SCHEMA 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema TABLE_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81)
|
||||
NULL information_schema TABLE_PRIVILEGES IS_GRANTABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3)
|
||||
NULL information_schema TABLE_PRIVILEGES PRIVILEGE_TYPE 5 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema TABLE_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512)
|
||||
NULL information_schema TABLE_PRIVILEGES TABLE_NAME 4 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema TABLE_PRIVILEGES TABLE_SCHEMA 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema TRIGGERS ACTION_CONDITION 9 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext
|
||||
NULL information_schema TRIGGERS ACTION_ORDER 8 0 NO bigint NULL NULL 19 0 NULL NULL bigint(4)
|
||||
NULL information_schema TRIGGERS ACTION_ORIENTATION 11 NO varchar 9 27 NULL NULL utf8 utf8_general_ci varchar(9)
|
||||
NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_ROW 16 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3)
|
||||
NULL information_schema TRIGGERS ACTION_REFERENCE_NEW_TABLE 14 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_ROW 15 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3)
|
||||
NULL information_schema TRIGGERS ACTION_REFERENCE_OLD_TABLE 13 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema TRIGGERS ACTION_STATEMENT 10 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext
|
||||
NULL information_schema TRIGGERS ACTION_TIMING 12 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6)
|
||||
NULL information_schema TRIGGERS CHARACTER_SET_CLIENT 20 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32)
|
||||
NULL information_schema TRIGGERS COLLATION_CONNECTION 21 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32)
|
||||
NULL information_schema TRIGGERS CREATED 17 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime
|
||||
NULL information_schema TRIGGERS DATABASE_COLLATION 22 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32)
|
||||
NULL information_schema TRIGGERS DEFINER 19 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77)
|
||||
NULL information_schema TRIGGERS EVENT_MANIPULATION 4 NO varchar 6 18 NULL NULL utf8 utf8_general_ci varchar(6)
|
||||
NULL information_schema TRIGGERS EVENT_OBJECT_CATALOG 5 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512)
|
||||
NULL information_schema TRIGGERS EVENT_OBJECT_SCHEMA 6 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema TRIGGERS EVENT_OBJECT_TABLE 7 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema TRIGGERS SQL_MODE 18 NO varchar 8192 24576 NULL NULL utf8 utf8_general_ci varchar(8192)
|
||||
NULL information_schema TRIGGERS TRIGGER_CATALOG 1 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512)
|
||||
NULL information_schema TRIGGERS TRIGGER_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema TRIGGERS TRIGGER_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema USER_PRIVILEGES GRANTEE 1 NO varchar 81 243 NULL NULL utf8 utf8_general_ci varchar(81)
|
||||
NULL information_schema USER_PRIVILEGES IS_GRANTABLE 4 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3)
|
||||
NULL information_schema USER_PRIVILEGES PRIVILEGE_TYPE 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema USER_PRIVILEGES TABLE_CATALOG 2 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512)
|
||||
NULL information_schema VIEWS CHARACTER_SET_CLIENT 9 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32)
|
||||
NULL information_schema VIEWS CHECK_OPTION 5 NO varchar 8 24 NULL NULL utf8 utf8_general_ci varchar(8)
|
||||
NULL information_schema VIEWS COLLATION_CONNECTION 10 NO varchar 32 96 NULL NULL utf8 utf8_general_ci varchar(32)
|
||||
NULL information_schema VIEWS DEFINER 7 NO varchar 77 231 NULL NULL utf8 utf8_general_ci varchar(77)
|
||||
NULL information_schema VIEWS IS_UPDATABLE 6 NO varchar 3 9 NULL NULL utf8 utf8_general_ci varchar(3)
|
||||
NULL information_schema VIEWS SECURITY_TYPE 8 NO varchar 7 21 NULL NULL utf8 utf8_general_ci varchar(7)
|
||||
NULL information_schema VIEWS TABLE_CATALOG 1 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512)
|
||||
NULL information_schema VIEWS TABLE_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema VIEWS TABLE_SCHEMA 2 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema VIEWS VIEW_DEFINITION 4 NULL NO longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext
|
||||
##########################################################################
|
||||
# Show the quotient of CHARACTER_OCTET_LENGTH and CHARACTER_MAXIMUM_LENGTH
|
||||
##########################################################################
|
||||
SELECT DISTINCT
|
||||
CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
|
||||
DATA_TYPE,
|
||||
CHARACTER_SET_NAME,
|
||||
COLLATION_NAME
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema = 'information_schema'
|
||||
AND table_name <> 'profiling'
|
||||
AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH = 1
|
||||
ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML;
|
||||
COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME
|
||||
1.0000 longtext utf8 utf8_general_ci
|
||||
SELECT DISTINCT
|
||||
CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
|
||||
DATA_TYPE,
|
||||
CHARACTER_SET_NAME,
|
||||
COLLATION_NAME
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema = 'information_schema'
|
||||
AND table_name <> 'profiling'
|
||||
AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH <> 1
|
||||
ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML;
|
||||
COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME
|
||||
3.0000 varchar utf8 utf8_general_ci
|
||||
SELECT DISTINCT
|
||||
CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
|
||||
DATA_TYPE,
|
||||
CHARACTER_SET_NAME,
|
||||
COLLATION_NAME
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema = 'information_schema'
|
||||
AND table_name <> 'profiling'
|
||||
AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH IS NULL
|
||||
ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML;
|
||||
COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME
|
||||
NULL bigint NULL NULL
|
||||
NULL datetime NULL NULL
|
||||
NULL int NULL NULL
|
||||
--> CHAR(0) is allowed (see manual), and here both CHARACHTER_* values
|
||||
--> are 0, which is intended behavior, and the result of 0 / 0 IS NULL
|
||||
SELECT CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
|
||||
TABLE_SCHEMA,
|
||||
TABLE_NAME,
|
||||
COLUMN_NAME,
|
||||
DATA_TYPE,
|
||||
CHARACTER_MAXIMUM_LENGTH,
|
||||
CHARACTER_OCTET_LENGTH,
|
||||
CHARACTER_SET_NAME,
|
||||
COLLATION_NAME,
|
||||
COLUMN_TYPE
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema = 'information_schema'
|
||||
AND table_name <> 'profiling'
|
||||
ORDER BY TABLE_SCHEMA, TABLE_NAME, ORDINAL_POSITION;
|
||||
COL_CML TABLE_SCHEMA TABLE_NAME COLUMN_NAME DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE
|
||||
3.0000 information_schema CHARACTER_SETS CHARACTER_SET_NAME varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||
3.0000 information_schema CHARACTER_SETS DEFAULT_COLLATE_NAME varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||
3.0000 information_schema CHARACTER_SETS DESCRIPTION varchar 60 180 utf8 utf8_general_ci varchar(60)
|
||||
NULL information_schema CHARACTER_SETS MAXLEN bigint NULL NULL NULL NULL bigint(3)
|
||||
3.0000 information_schema COLLATIONS COLLATION_NAME varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||
3.0000 information_schema COLLATIONS CHARACTER_SET_NAME varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||
NULL information_schema COLLATIONS ID bigint NULL NULL NULL NULL bigint(11)
|
||||
3.0000 information_schema COLLATIONS IS_DEFAULT varchar 3 9 utf8 utf8_general_ci varchar(3)
|
||||
3.0000 information_schema COLLATIONS IS_COMPILED varchar 3 9 utf8 utf8_general_ci varchar(3)
|
||||
NULL information_schema COLLATIONS SORTLEN bigint NULL NULL NULL NULL bigint(3)
|
||||
3.0000 information_schema COLLATION_CHARACTER_SET_APPLICABILITY COLLATION_NAME varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||
3.0000 information_schema COLLATION_CHARACTER_SET_APPLICABILITY CHARACTER_SET_NAME varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||
3.0000 information_schema COLUMNS TABLE_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||
3.0000 information_schema COLUMNS TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema COLUMNS TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema COLUMNS COLUMN_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema COLUMNS ORDINAL_POSITION bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
1.0000 information_schema COLUMNS COLUMN_DEFAULT longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
|
||||
3.0000 information_schema COLUMNS IS_NULLABLE varchar 3 9 utf8 utf8_general_ci varchar(3)
|
||||
3.0000 information_schema COLUMNS DATA_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema COLUMNS CHARACTER_MAXIMUM_LENGTH bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema COLUMNS CHARACTER_OCTET_LENGTH bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema COLUMNS NUMERIC_PRECISION bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema COLUMNS NUMERIC_SCALE bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
3.0000 information_schema COLUMNS CHARACTER_SET_NAME varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||
3.0000 information_schema COLUMNS COLLATION_NAME varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||
1.0000 information_schema COLUMNS COLUMN_TYPE longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
|
||||
3.0000 information_schema COLUMNS COLUMN_KEY varchar 3 9 utf8 utf8_general_ci varchar(3)
|
||||
3.0000 information_schema COLUMNS EXTRA varchar 27 81 utf8 utf8_general_ci varchar(27)
|
||||
3.0000 information_schema COLUMNS PRIVILEGES varchar 80 240 utf8 utf8_general_ci varchar(80)
|
||||
3.0000 information_schema COLUMNS COLUMN_COMMENT varchar 255 765 utf8 utf8_general_ci varchar(255)
|
||||
3.0000 information_schema COLUMN_PRIVILEGES GRANTEE varchar 81 243 utf8 utf8_general_ci varchar(81)
|
||||
3.0000 information_schema COLUMN_PRIVILEGES TABLE_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||
3.0000 information_schema COLUMN_PRIVILEGES TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema COLUMN_PRIVILEGES TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema COLUMN_PRIVILEGES COLUMN_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema COLUMN_PRIVILEGES PRIVILEGE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema COLUMN_PRIVILEGES IS_GRANTABLE varchar 3 9 utf8 utf8_general_ci varchar(3)
|
||||
3.0000 information_schema ENGINES ENGINE varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema ENGINES SUPPORT varchar 8 24 utf8 utf8_general_ci varchar(8)
|
||||
3.0000 information_schema ENGINES COMMENT varchar 80 240 utf8 utf8_general_ci varchar(80)
|
||||
3.0000 information_schema ENGINES TRANSACTIONS varchar 3 9 utf8 utf8_general_ci varchar(3)
|
||||
3.0000 information_schema ENGINES XA varchar 3 9 utf8 utf8_general_ci varchar(3)
|
||||
3.0000 information_schema ENGINES SAVEPOINTS varchar 3 9 utf8 utf8_general_ci varchar(3)
|
||||
3.0000 information_schema EVENTS EVENT_CATALOG varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema EVENTS EVENT_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema EVENTS EVENT_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema EVENTS DEFINER varchar 77 231 utf8 utf8_general_ci varchar(77)
|
||||
3.0000 information_schema EVENTS TIME_ZONE varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema EVENTS EVENT_BODY varchar 8 24 utf8 utf8_general_ci varchar(8)
|
||||
1.0000 information_schema EVENTS EVENT_DEFINITION longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
|
||||
3.0000 information_schema EVENTS EVENT_TYPE varchar 9 27 utf8 utf8_general_ci varchar(9)
|
||||
NULL information_schema EVENTS EXECUTE_AT datetime NULL NULL NULL NULL datetime
|
||||
3.0000 information_schema EVENTS INTERVAL_VALUE varchar 256 768 utf8 utf8_general_ci varchar(256)
|
||||
3.0000 information_schema EVENTS INTERVAL_FIELD varchar 18 54 utf8 utf8_general_ci varchar(18)
|
||||
3.0000 information_schema EVENTS SQL_MODE varchar 8192 24576 utf8 utf8_general_ci varchar(8192)
|
||||
NULL information_schema EVENTS STARTS datetime NULL NULL NULL NULL datetime
|
||||
NULL information_schema EVENTS ENDS datetime NULL NULL NULL NULL datetime
|
||||
3.0000 information_schema EVENTS STATUS varchar 18 54 utf8 utf8_general_ci varchar(18)
|
||||
3.0000 information_schema EVENTS ON_COMPLETION varchar 12 36 utf8 utf8_general_ci varchar(12)
|
||||
NULL information_schema EVENTS CREATED datetime NULL NULL NULL NULL datetime
|
||||
NULL information_schema EVENTS LAST_ALTERED datetime NULL NULL NULL NULL datetime
|
||||
NULL information_schema EVENTS LAST_EXECUTED datetime NULL NULL NULL NULL datetime
|
||||
3.0000 information_schema EVENTS EVENT_COMMENT varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema EVENTS ORIGINATOR bigint NULL NULL NULL NULL bigint(10)
|
||||
3.0000 information_schema EVENTS CHARACTER_SET_CLIENT varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||
3.0000 information_schema EVENTS COLLATION_CONNECTION varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||
3.0000 information_schema EVENTS DATABASE_COLLATION varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||
NULL information_schema FILES FILE_ID bigint NULL NULL NULL NULL bigint(4)
|
||||
3.0000 information_schema FILES FILE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema FILES FILE_TYPE varchar 20 60 utf8 utf8_general_ci varchar(20)
|
||||
3.0000 information_schema FILES TABLESPACE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema FILES TABLE_CATALOG varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema FILES TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema FILES TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema FILES LOGFILE_GROUP_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema FILES LOGFILE_GROUP_NUMBER bigint NULL NULL NULL NULL bigint(4)
|
||||
3.0000 information_schema FILES ENGINE varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema FILES FULLTEXT_KEYS varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema FILES DELETED_ROWS bigint NULL NULL NULL NULL bigint(4)
|
||||
NULL information_schema FILES UPDATE_COUNT bigint NULL NULL NULL NULL bigint(4)
|
||||
NULL information_schema FILES FREE_EXTENTS bigint NULL NULL NULL NULL bigint(4)
|
||||
NULL information_schema FILES TOTAL_EXTENTS bigint NULL NULL NULL NULL bigint(4)
|
||||
NULL information_schema FILES EXTENT_SIZE bigint NULL NULL NULL NULL bigint(4)
|
||||
NULL information_schema FILES INITIAL_SIZE bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema FILES MAXIMUM_SIZE bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema FILES AUTOEXTEND_SIZE bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema FILES CREATION_TIME datetime NULL NULL NULL NULL datetime
|
||||
NULL information_schema FILES LAST_UPDATE_TIME datetime NULL NULL NULL NULL datetime
|
||||
NULL information_schema FILES LAST_ACCESS_TIME datetime NULL NULL NULL NULL datetime
|
||||
NULL information_schema FILES RECOVER_TIME bigint NULL NULL NULL NULL bigint(4)
|
||||
NULL information_schema FILES TRANSACTION_COUNTER bigint NULL NULL NULL NULL bigint(4)
|
||||
NULL information_schema FILES VERSION bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
3.0000 information_schema FILES ROW_FORMAT varchar 10 30 utf8 utf8_general_ci varchar(10)
|
||||
NULL information_schema FILES TABLE_ROWS bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema FILES AVG_ROW_LENGTH bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema FILES DATA_LENGTH bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema FILES MAX_DATA_LENGTH bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema FILES INDEX_LENGTH bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema FILES DATA_FREE bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema FILES CREATE_TIME datetime NULL NULL NULL NULL datetime
|
||||
NULL information_schema FILES UPDATE_TIME datetime NULL NULL NULL NULL datetime
|
||||
NULL information_schema FILES CHECK_TIME datetime NULL NULL NULL NULL datetime
|
||||
NULL information_schema FILES CHECKSUM bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
3.0000 information_schema FILES STATUS varchar 20 60 utf8 utf8_general_ci varchar(20)
|
||||
3.0000 information_schema FILES EXTRA varchar 255 765 utf8 utf8_general_ci varchar(255)
|
||||
3.0000 information_schema GLOBAL_STATUS VARIABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema GLOBAL_STATUS VARIABLE_VALUE varchar 1024 3072 utf8 utf8_general_ci varchar(1024)
|
||||
3.0000 information_schema GLOBAL_VARIABLES VARIABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema GLOBAL_VARIABLES VARIABLE_VALUE varchar 1024 3072 utf8 utf8_general_ci varchar(1024)
|
||||
3.0000 information_schema KEY_COLUMN_USAGE CONSTRAINT_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||
3.0000 information_schema KEY_COLUMN_USAGE CONSTRAINT_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema KEY_COLUMN_USAGE CONSTRAINT_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema KEY_COLUMN_USAGE TABLE_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||
3.0000 information_schema KEY_COLUMN_USAGE TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema KEY_COLUMN_USAGE TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema KEY_COLUMN_USAGE COLUMN_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema KEY_COLUMN_USAGE ORDINAL_POSITION bigint NULL NULL NULL NULL bigint(10)
|
||||
NULL information_schema KEY_COLUMN_USAGE POSITION_IN_UNIQUE_CONSTRAINT bigint NULL NULL NULL NULL bigint(10)
|
||||
3.0000 information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema KEY_COLUMN_USAGE REFERENCED_TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema KEY_COLUMN_USAGE REFERENCED_COLUMN_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema PARTITIONS TABLE_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||
3.0000 information_schema PARTITIONS TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema PARTITIONS TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema PARTITIONS PARTITION_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema PARTITIONS SUBPARTITION_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema PARTITIONS PARTITION_ORDINAL_POSITION bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema PARTITIONS SUBPARTITION_ORDINAL_POSITION bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
3.0000 information_schema PARTITIONS PARTITION_METHOD varchar 12 36 utf8 utf8_general_ci varchar(12)
|
||||
3.0000 information_schema PARTITIONS SUBPARTITION_METHOD varchar 12 36 utf8 utf8_general_ci varchar(12)
|
||||
1.0000 information_schema PARTITIONS PARTITION_EXPRESSION longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
|
||||
1.0000 information_schema PARTITIONS SUBPARTITION_EXPRESSION longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
|
||||
1.0000 information_schema PARTITIONS PARTITION_DESCRIPTION longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
|
||||
NULL information_schema PARTITIONS TABLE_ROWS bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema PARTITIONS AVG_ROW_LENGTH bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema PARTITIONS DATA_LENGTH bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema PARTITIONS MAX_DATA_LENGTH bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema PARTITIONS INDEX_LENGTH bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema PARTITIONS DATA_FREE bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema PARTITIONS CREATE_TIME datetime NULL NULL NULL NULL datetime
|
||||
NULL information_schema PARTITIONS UPDATE_TIME datetime NULL NULL NULL NULL datetime
|
||||
NULL information_schema PARTITIONS CHECK_TIME datetime NULL NULL NULL NULL datetime
|
||||
NULL information_schema PARTITIONS CHECKSUM bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
3.0000 information_schema PARTITIONS PARTITION_COMMENT varchar 80 240 utf8 utf8_general_ci varchar(80)
|
||||
3.0000 information_schema PARTITIONS NODEGROUP varchar 12 36 utf8 utf8_general_ci varchar(12)
|
||||
3.0000 information_schema PARTITIONS TABLESPACE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema PLUGINS PLUGIN_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema PLUGINS PLUGIN_VERSION varchar 20 60 utf8 utf8_general_ci varchar(20)
|
||||
3.0000 information_schema PLUGINS PLUGIN_STATUS varchar 10 30 utf8 utf8_general_ci varchar(10)
|
||||
3.0000 information_schema PLUGINS PLUGIN_TYPE varchar 80 240 utf8 utf8_general_ci varchar(80)
|
||||
3.0000 information_schema PLUGINS PLUGIN_TYPE_VERSION varchar 20 60 utf8 utf8_general_ci varchar(20)
|
||||
3.0000 information_schema PLUGINS PLUGIN_LIBRARY varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema PLUGINS PLUGIN_LIBRARY_VERSION varchar 20 60 utf8 utf8_general_ci varchar(20)
|
||||
3.0000 information_schema PLUGINS PLUGIN_AUTHOR varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
1.0000 information_schema PLUGINS PLUGIN_DESCRIPTION longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
|
||||
3.0000 information_schema PLUGINS PLUGIN_LICENSE varchar 80 240 utf8 utf8_general_ci varchar(80)
|
||||
NULL information_schema PROCESSLIST ID bigint NULL NULL NULL NULL bigint(4)
|
||||
3.0000 information_schema PROCESSLIST USER varchar 16 48 utf8 utf8_general_ci varchar(16)
|
||||
3.0000 information_schema PROCESSLIST HOST varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema PROCESSLIST DB varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema PROCESSLIST COMMAND varchar 16 48 utf8 utf8_general_ci varchar(16)
|
||||
NULL information_schema PROCESSLIST TIME int NULL NULL NULL NULL int(7)
|
||||
3.0000 information_schema PROCESSLIST STATE varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
1.0000 information_schema PROCESSLIST INFO longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
|
||||
3.0000 information_schema REFERENTIAL_CONSTRAINTS CONSTRAINT_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||
3.0000 information_schema REFERENTIAL_CONSTRAINTS CONSTRAINT_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema REFERENTIAL_CONSTRAINTS CONSTRAINT_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema REFERENTIAL_CONSTRAINTS UNIQUE_CONSTRAINT_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||
3.0000 information_schema REFERENTIAL_CONSTRAINTS UNIQUE_CONSTRAINT_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema REFERENTIAL_CONSTRAINTS UNIQUE_CONSTRAINT_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema REFERENTIAL_CONSTRAINTS MATCH_OPTION varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema REFERENTIAL_CONSTRAINTS UPDATE_RULE varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema REFERENTIAL_CONSTRAINTS DELETE_RULE varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema REFERENTIAL_CONSTRAINTS TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema REFERENTIAL_CONSTRAINTS REFERENCED_TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema ROUTINES SPECIFIC_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema ROUTINES ROUTINE_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||
3.0000 information_schema ROUTINES ROUTINE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema ROUTINES ROUTINE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema ROUTINES ROUTINE_TYPE varchar 9 27 utf8 utf8_general_ci varchar(9)
|
||||
3.0000 information_schema ROUTINES DTD_IDENTIFIER varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema ROUTINES ROUTINE_BODY varchar 8 24 utf8 utf8_general_ci varchar(8)
|
||||
1.0000 information_schema ROUTINES ROUTINE_DEFINITION longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
|
||||
3.0000 information_schema ROUTINES EXTERNAL_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema ROUTINES EXTERNAL_LANGUAGE varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema ROUTINES PARAMETER_STYLE varchar 8 24 utf8 utf8_general_ci varchar(8)
|
||||
3.0000 information_schema ROUTINES IS_DETERMINISTIC varchar 3 9 utf8 utf8_general_ci varchar(3)
|
||||
3.0000 information_schema ROUTINES SQL_DATA_ACCESS varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema ROUTINES SQL_PATH varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema ROUTINES SECURITY_TYPE varchar 7 21 utf8 utf8_general_ci varchar(7)
|
||||
NULL information_schema ROUTINES CREATED datetime NULL NULL NULL NULL datetime
|
||||
NULL information_schema ROUTINES LAST_ALTERED datetime NULL NULL NULL NULL datetime
|
||||
3.0000 information_schema ROUTINES SQL_MODE varchar 8192 24576 utf8 utf8_general_ci varchar(8192)
|
||||
3.0000 information_schema ROUTINES ROUTINE_COMMENT varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema ROUTINES DEFINER varchar 77 231 utf8 utf8_general_ci varchar(77)
|
||||
3.0000 information_schema ROUTINES CHARACTER_SET_CLIENT varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||
3.0000 information_schema ROUTINES COLLATION_CONNECTION varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||
3.0000 information_schema ROUTINES DATABASE_COLLATION varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||
3.0000 information_schema SCHEMATA CATALOG_NAME varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||
3.0000 information_schema SCHEMATA SCHEMA_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema SCHEMATA DEFAULT_CHARACTER_SET_NAME varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||
3.0000 information_schema SCHEMATA DEFAULT_COLLATION_NAME varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||
3.0000 information_schema SCHEMATA SQL_PATH varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||
3.0000 information_schema SCHEMA_PRIVILEGES GRANTEE varchar 81 243 utf8 utf8_general_ci varchar(81)
|
||||
3.0000 information_schema SCHEMA_PRIVILEGES TABLE_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||
3.0000 information_schema SCHEMA_PRIVILEGES TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema SCHEMA_PRIVILEGES PRIVILEGE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema SCHEMA_PRIVILEGES IS_GRANTABLE varchar 3 9 utf8 utf8_general_ci varchar(3)
|
||||
3.0000 information_schema SESSION_STATUS VARIABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema SESSION_STATUS VARIABLE_VALUE varchar 1024 3072 utf8 utf8_general_ci varchar(1024)
|
||||
3.0000 information_schema SESSION_VARIABLES VARIABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema SESSION_VARIABLES VARIABLE_VALUE varchar 1024 3072 utf8 utf8_general_ci varchar(1024)
|
||||
3.0000 information_schema STATISTICS TABLE_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||
3.0000 information_schema STATISTICS TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema STATISTICS TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema STATISTICS NON_UNIQUE bigint NULL NULL NULL NULL bigint(1)
|
||||
3.0000 information_schema STATISTICS INDEX_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema STATISTICS INDEX_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema STATISTICS SEQ_IN_INDEX bigint NULL NULL NULL NULL bigint(2)
|
||||
3.0000 information_schema STATISTICS COLUMN_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema STATISTICS COLLATION varchar 1 3 utf8 utf8_general_ci varchar(1)
|
||||
NULL information_schema STATISTICS CARDINALITY bigint NULL NULL NULL NULL bigint(21)
|
||||
NULL information_schema STATISTICS SUB_PART bigint NULL NULL NULL NULL bigint(3)
|
||||
3.0000 information_schema STATISTICS PACKED varchar 10 30 utf8 utf8_general_ci varchar(10)
|
||||
3.0000 information_schema STATISTICS NULLABLE varchar 3 9 utf8 utf8_general_ci varchar(3)
|
||||
3.0000 information_schema STATISTICS INDEX_TYPE varchar 16 48 utf8 utf8_general_ci varchar(16)
|
||||
3.0000 information_schema STATISTICS COMMENT varchar 16 48 utf8 utf8_general_ci varchar(16)
|
||||
3.0000 information_schema TABLES TABLE_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||
3.0000 information_schema TABLES TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema TABLES TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema TABLES TABLE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema TABLES ENGINE varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema TABLES VERSION bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
3.0000 information_schema TABLES ROW_FORMAT varchar 10 30 utf8 utf8_general_ci varchar(10)
|
||||
NULL information_schema TABLES TABLE_ROWS bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema TABLES AVG_ROW_LENGTH bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema TABLES DATA_LENGTH bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema TABLES MAX_DATA_LENGTH bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema TABLES INDEX_LENGTH bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema TABLES DATA_FREE bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema TABLES AUTO_INCREMENT bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
NULL information_schema TABLES CREATE_TIME datetime NULL NULL NULL NULL datetime
|
||||
NULL information_schema TABLES UPDATE_TIME datetime NULL NULL NULL NULL datetime
|
||||
NULL information_schema TABLES CHECK_TIME datetime NULL NULL NULL NULL datetime
|
||||
3.0000 information_schema TABLES TABLE_COLLATION varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||
NULL information_schema TABLES CHECKSUM bigint NULL NULL NULL NULL bigint(21) unsigned
|
||||
3.0000 information_schema TABLES CREATE_OPTIONS varchar 255 765 utf8 utf8_general_ci varchar(255)
|
||||
3.0000 information_schema TABLES TABLE_COMMENT varchar 80 240 utf8 utf8_general_ci varchar(80)
|
||||
3.0000 information_schema TABLE_CONSTRAINTS CONSTRAINT_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||
3.0000 information_schema TABLE_CONSTRAINTS CONSTRAINT_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema TABLE_CONSTRAINTS CONSTRAINT_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema TABLE_CONSTRAINTS TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema TABLE_CONSTRAINTS TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema TABLE_CONSTRAINTS CONSTRAINT_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema TABLE_PRIVILEGES GRANTEE varchar 81 243 utf8 utf8_general_ci varchar(81)
|
||||
3.0000 information_schema TABLE_PRIVILEGES TABLE_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||
3.0000 information_schema TABLE_PRIVILEGES TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema TABLE_PRIVILEGES TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema TABLE_PRIVILEGES PRIVILEGE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema TABLE_PRIVILEGES IS_GRANTABLE varchar 3 9 utf8 utf8_general_ci varchar(3)
|
||||
3.0000 information_schema TRIGGERS TRIGGER_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||
3.0000 information_schema TRIGGERS TRIGGER_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema TRIGGERS TRIGGER_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema TRIGGERS EVENT_MANIPULATION varchar 6 18 utf8 utf8_general_ci varchar(6)
|
||||
3.0000 information_schema TRIGGERS EVENT_OBJECT_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||
3.0000 information_schema TRIGGERS EVENT_OBJECT_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema TRIGGERS EVENT_OBJECT_TABLE varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
NULL information_schema TRIGGERS ACTION_ORDER bigint NULL NULL NULL NULL bigint(4)
|
||||
1.0000 information_schema TRIGGERS ACTION_CONDITION longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
|
||||
1.0000 information_schema TRIGGERS ACTION_STATEMENT longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
|
||||
3.0000 information_schema TRIGGERS ACTION_ORIENTATION varchar 9 27 utf8 utf8_general_ci varchar(9)
|
||||
3.0000 information_schema TRIGGERS ACTION_TIMING varchar 6 18 utf8 utf8_general_ci varchar(6)
|
||||
3.0000 information_schema TRIGGERS ACTION_REFERENCE_OLD_TABLE varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema TRIGGERS ACTION_REFERENCE_NEW_TABLE varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema TRIGGERS ACTION_REFERENCE_OLD_ROW varchar 3 9 utf8 utf8_general_ci varchar(3)
|
||||
3.0000 information_schema TRIGGERS ACTION_REFERENCE_NEW_ROW varchar 3 9 utf8 utf8_general_ci varchar(3)
|
||||
NULL information_schema TRIGGERS CREATED datetime NULL NULL NULL NULL datetime
|
||||
3.0000 information_schema TRIGGERS SQL_MODE varchar 8192 24576 utf8 utf8_general_ci varchar(8192)
|
||||
3.0000 information_schema TRIGGERS DEFINER varchar 77 231 utf8 utf8_general_ci varchar(77)
|
||||
3.0000 information_schema TRIGGERS CHARACTER_SET_CLIENT varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||
3.0000 information_schema TRIGGERS COLLATION_CONNECTION varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||
3.0000 information_schema TRIGGERS DATABASE_COLLATION varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||
3.0000 information_schema USER_PRIVILEGES GRANTEE varchar 81 243 utf8 utf8_general_ci varchar(81)
|
||||
3.0000 information_schema USER_PRIVILEGES TABLE_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||
3.0000 information_schema USER_PRIVILEGES PRIVILEGE_TYPE varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema USER_PRIVILEGES IS_GRANTABLE varchar 3 9 utf8 utf8_general_ci varchar(3)
|
||||
3.0000 information_schema VIEWS TABLE_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||
3.0000 information_schema VIEWS TABLE_SCHEMA varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
3.0000 information_schema VIEWS TABLE_NAME varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
1.0000 information_schema VIEWS VIEW_DEFINITION longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
|
||||
3.0000 information_schema VIEWS CHECK_OPTION varchar 8 24 utf8 utf8_general_ci varchar(8)
|
||||
3.0000 information_schema VIEWS IS_UPDATABLE varchar 3 9 utf8 utf8_general_ci varchar(3)
|
||||
3.0000 information_schema VIEWS DEFINER varchar 77 231 utf8 utf8_general_ci varchar(77)
|
||||
3.0000 information_schema VIEWS SECURITY_TYPE varchar 7 21 utf8 utf8_general_ci varchar(7)
|
||||
3.0000 information_schema VIEWS CHARACTER_SET_CLIENT varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||
3.0000 information_schema VIEWS COLLATION_CONNECTION varchar 32 96 utf8 utf8_general_ci varchar(32)
|
||||
1087
build/lib/mysql/mysql-test/suite/funcs_1/r/is_columns_memory.result
Normal file
1087
build/lib/mysql/mysql-test/suite/funcs_1/r/is_columns_memory.result
Normal file
File diff suppressed because it is too large
Load Diff
1216
build/lib/mysql/mysql-test/suite/funcs_1/r/is_columns_myisam.result
Normal file
1216
build/lib/mysql/mysql-test/suite/funcs_1/r/is_columns_myisam.result
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,499 @@
|
||||
SELECT * FROM information_schema.columns
|
||||
WHERE table_schema = 'mysql'
|
||||
ORDER BY table_schema, table_name, column_name;
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
|
||||
NULL mysql columns_priv Column_name 5 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
|
||||
NULL mysql columns_priv Column_priv 7 NO set 31 93 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','References') select,insert,update,references
|
||||
NULL mysql columns_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
|
||||
NULL mysql columns_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references
|
||||
NULL mysql columns_priv Table_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
|
||||
NULL mysql columns_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references
|
||||
NULL mysql columns_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references
|
||||
NULL mysql db Alter_priv 13 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql db Alter_routine_priv 19 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql db Create_priv 8 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql db Create_routine_priv 18 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql db Create_tmp_table_priv 14 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql db Create_view_priv 16 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql db Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
|
||||
NULL mysql db Delete_priv 7 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql db Drop_priv 9 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql db Event_priv 21 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql db Execute_priv 20 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql db Grant_priv 10 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql db Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references
|
||||
NULL mysql db Index_priv 12 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql db Insert_priv 5 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql db Lock_tables_priv 15 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql db References_priv 11 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql db Select_priv 4 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql db Show_view_priv 17 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql db Trigger_priv 22 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql db Update_priv 6 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql db User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references
|
||||
NULL mysql event body 3 NULL NO longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references
|
||||
NULL mysql event body_utf8 22 NULL YES longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references
|
||||
NULL mysql event character_set_client 19 NULL YES char 32 96 NULL NULL utf8 utf8_bin char(32) select,insert,update,references
|
||||
NULL mysql event collation_connection 20 NULL YES char 32 96 NULL NULL utf8 utf8_bin char(32) select,insert,update,references
|
||||
NULL mysql event comment 16 NO char 64 192 NULL NULL utf8 utf8_bin char(64) select,insert,update,references
|
||||
NULL mysql event created 8 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references
|
||||
NULL mysql event db 1 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
|
||||
NULL mysql event db_collation 21 NULL YES char 32 96 NULL NULL utf8 utf8_bin char(32) select,insert,update,references
|
||||
NULL mysql event definer 4 NO char 77 231 NULL NULL utf8 utf8_bin char(77) select,insert,update,references
|
||||
NULL mysql event ends 12 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references
|
||||
NULL mysql event execute_at 5 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references
|
||||
NULL mysql event interval_field 7 NULL YES enum 18 54 NULL NULL utf8 utf8_general_ci enum('YEAR','QUARTER','MONTH','DAY','HOUR','MINUTE','WEEK','SECOND','MICROSECOND','YEAR_MONTH','DAY_HOUR','DAY_MINUTE','DAY_SECOND','HOUR_MINUTE','HOUR_SECOND','MINUTE_SECOND','DAY_MICROSECOND','HOUR_MICROSECOND','MINUTE_MICROSECOND','SECOND_MICROSECOND') select,insert,update,references
|
||||
NULL mysql event interval_value 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
|
||||
NULL mysql event last_executed 10 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references
|
||||
NULL mysql event modified 9 0000-00-00 00:00:00 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
|
||||
NULL mysql event name 2 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) PRI select,insert,update,references
|
||||
NULL mysql event on_completion 14 DROP NO enum 8 24 NULL NULL utf8 utf8_general_ci enum('DROP','PRESERVE') select,insert,update,references
|
||||
NULL mysql event originator 17 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references
|
||||
NULL mysql event sql_mode 15 NO set 478 1434 NULL NULL utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH') select,insert,update,references
|
||||
NULL mysql event starts 11 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime select,insert,update,references
|
||||
NULL mysql event status 13 ENABLED NO enum 18 54 NULL NULL utf8 utf8_general_ci enum('ENABLED','DISABLED','SLAVESIDE_DISABLED') select,insert,update,references
|
||||
NULL mysql event time_zone 18 SYSTEM NO char 64 64 NULL NULL latin1 latin1_swedish_ci char(64) select,insert,update,references
|
||||
NULL mysql func dl 3 NO char 128 384 NULL NULL utf8 utf8_bin char(128) select,insert,update,references
|
||||
NULL mysql func name 1 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
|
||||
NULL mysql func ret 2 0 NO tinyint NULL NULL 3 0 NULL NULL tinyint(1) select,insert,update,references
|
||||
NULL mysql func type 4 NULL NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('function','aggregate') select,insert,update,references
|
||||
NULL mysql general_log argument 6 NULL NO mediumtext 16777215 16777215 NULL NULL utf8 utf8_general_ci mediumtext select,insert,update,references
|
||||
NULL mysql general_log command_type 5 NULL NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select,insert,update,references
|
||||
NULL mysql general_log event_time 1 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references
|
||||
NULL mysql general_log server_id 4 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references
|
||||
NULL mysql general_log thread_id 3 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
|
||||
NULL mysql general_log user_host 2 NULL NO mediumtext 16777215 16777215 NULL NULL utf8 utf8_general_ci mediumtext select,insert,update,references
|
||||
NULL mysql help_category help_category_id 1 NULL NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned PRI select,insert,update,references
|
||||
NULL mysql help_category name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references
|
||||
NULL mysql help_category parent_category_id 3 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references
|
||||
NULL mysql help_category url 4 NULL NO text 65535 65535 NULL NULL utf8 utf8_general_ci text select,insert,update,references
|
||||
NULL mysql help_keyword help_keyword_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
|
||||
NULL mysql help_keyword name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references
|
||||
NULL mysql help_relation help_keyword_id 2 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
|
||||
NULL mysql help_relation help_topic_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
|
||||
NULL mysql help_topic description 4 NULL NO text 65535 65535 NULL NULL utf8 utf8_general_ci text select,insert,update,references
|
||||
NULL mysql help_topic example 5 NULL NO text 65535 65535 NULL NULL utf8 utf8_general_ci text select,insert,update,references
|
||||
NULL mysql help_topic help_category_id 3 NULL NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned select,insert,update,references
|
||||
NULL mysql help_topic help_topic_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
|
||||
NULL mysql help_topic name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI select,insert,update,references
|
||||
NULL mysql help_topic url 6 NULL NO text 65535 65535 NULL NULL utf8 utf8_general_ci text select,insert,update,references
|
||||
NULL mysql host Alter_priv 12 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql host Alter_routine_priv 18 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql host Create_priv 7 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql host Create_routine_priv 17 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql host Create_tmp_table_priv 13 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql host Create_view_priv 15 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql host Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
|
||||
NULL mysql host Delete_priv 6 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql host Drop_priv 8 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql host Execute_priv 19 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql host Grant_priv 9 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql host Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references
|
||||
NULL mysql host Index_priv 11 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql host Insert_priv 4 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql host Lock_tables_priv 14 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql host References_priv 10 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql host Select_priv 3 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql host Show_view_priv 16 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql host Trigger_priv 20 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql host Update_priv 5 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql ndb_binlog_index deletes 6 NULL NO bigint NULL NULL 20 0 NULL NULL bigint(20) unsigned select,insert,update,references
|
||||
NULL mysql ndb_binlog_index epoch 3 NULL NO bigint NULL NULL 20 0 NULL NULL bigint(20) unsigned PRI select,insert,update,references
|
||||
NULL mysql ndb_binlog_index File 2 NULL NO varchar 255 255 NULL NULL latin1 latin1_swedish_ci varchar(255) select,insert,update,references
|
||||
NULL mysql ndb_binlog_index inserts 4 NULL NO bigint NULL NULL 20 0 NULL NULL bigint(20) unsigned select,insert,update,references
|
||||
NULL mysql ndb_binlog_index Position 1 NULL NO bigint NULL NULL 20 0 NULL NULL bigint(20) unsigned select,insert,update,references
|
||||
NULL mysql ndb_binlog_index schemaops 7 NULL NO bigint NULL NULL 20 0 NULL NULL bigint(20) unsigned select,insert,update,references
|
||||
NULL mysql ndb_binlog_index updates 5 NULL NO bigint NULL NULL 20 0 NULL NULL bigint(20) unsigned select,insert,update,references
|
||||
NULL mysql plugin dl 2 NO char 128 384 NULL NULL utf8 utf8_bin char(128) select,insert,update,references
|
||||
NULL mysql plugin name 1 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
|
||||
NULL mysql proc body 11 NULL NO longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references
|
||||
NULL mysql proc body_utf8 20 NULL YES longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references
|
||||
NULL mysql proc character_set_client 17 NULL YES char 32 96 NULL NULL utf8 utf8_bin char(32) select,insert,update,references
|
||||
NULL mysql proc collation_connection 18 NULL YES char 32 96 NULL NULL utf8 utf8_bin char(32) select,insert,update,references
|
||||
NULL mysql proc comment 16 NO char 64 192 NULL NULL utf8 utf8_bin char(64) select,insert,update,references
|
||||
NULL mysql proc created 13 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references
|
||||
NULL mysql proc db 1 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
|
||||
NULL mysql proc db_collation 19 NULL YES char 32 96 NULL NULL utf8 utf8_bin char(32) select,insert,update,references
|
||||
NULL mysql proc definer 12 NO char 77 231 NULL NULL utf8 utf8_bin char(77) select,insert,update,references
|
||||
NULL mysql proc is_deterministic 7 NO NO enum 3 9 NULL NULL utf8 utf8_general_ci enum('YES','NO') select,insert,update,references
|
||||
NULL mysql proc language 5 SQL NO enum 3 9 NULL NULL utf8 utf8_general_ci enum('SQL') select,insert,update,references
|
||||
NULL mysql proc modified 14 0000-00-00 00:00:00 NO timestamp NULL NULL NULL NULL NULL NULL timestamp select,insert,update,references
|
||||
NULL mysql proc name 2 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) PRI select,insert,update,references
|
||||
NULL mysql proc param_list 9 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references
|
||||
NULL mysql proc returns 10 NULL NO longblob 4294967295 4294967295 NULL NULL NULL NULL longblob select,insert,update,references
|
||||
NULL mysql proc security_type 8 DEFINER NO enum 7 21 NULL NULL utf8 utf8_general_ci enum('INVOKER','DEFINER') select,insert,update,references
|
||||
NULL mysql proc specific_name 4 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references
|
||||
NULL mysql proc sql_data_access 6 CONTAINS_SQL NO enum 17 51 NULL NULL utf8 utf8_general_ci enum('CONTAINS_SQL','NO_SQL','READS_SQL_DATA','MODIFIES_SQL_DATA') select,insert,update,references
|
||||
NULL mysql proc sql_mode 15 NO set 478 1434 NULL NULL utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH') select,insert,update,references
|
||||
NULL mysql proc type 3 NULL NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('FUNCTION','PROCEDURE') PRI select,insert,update,references
|
||||
NULL mysql procs_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
|
||||
NULL mysql procs_priv Grantor 6 NO char 77 231 NULL NULL utf8 utf8_bin char(77) MUL select,insert,update,references
|
||||
NULL mysql procs_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references
|
||||
NULL mysql procs_priv Proc_priv 7 NO set 27 81 NULL NULL utf8 utf8_general_ci set('Execute','Alter Routine','Grant') select,insert,update,references
|
||||
NULL mysql procs_priv Routine_name 4 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) PRI select,insert,update,references
|
||||
NULL mysql procs_priv Routine_type 5 NULL NO enum 9 27 NULL NULL utf8 utf8_bin enum('FUNCTION','PROCEDURE') PRI select,insert,update,references
|
||||
NULL mysql procs_priv Timestamp 8 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references
|
||||
NULL mysql procs_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references
|
||||
NULL mysql servers Db 3 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references
|
||||
NULL mysql servers Host 2 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references
|
||||
NULL mysql servers Owner 9 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references
|
||||
NULL mysql servers Password 5 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references
|
||||
NULL mysql servers Port 6 0 NO int NULL NULL 10 0 NULL NULL int(4) select,insert,update,references
|
||||
NULL mysql servers Server_name 1 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) PRI select,insert,update,references
|
||||
NULL mysql servers Socket 7 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references
|
||||
NULL mysql servers Username 4 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references
|
||||
NULL mysql servers Wrapper 8 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) select,insert,update,references
|
||||
NULL mysql slow_log db 7 NULL NO varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select,insert,update,references
|
||||
NULL mysql slow_log insert_id 9 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
|
||||
NULL mysql slow_log last_insert_id 8 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
|
||||
NULL mysql slow_log lock_time 4 NULL NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references
|
||||
NULL mysql slow_log query_time 3 NULL NO time NULL NULL NULL NULL NULL NULL time select,insert,update,references
|
||||
NULL mysql slow_log rows_examined 6 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
|
||||
NULL mysql slow_log rows_sent 5 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
|
||||
NULL mysql slow_log server_id 10 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references
|
||||
NULL mysql slow_log sql_text 11 NULL NO mediumtext 16777215 16777215 NULL NULL utf8 utf8_general_ci mediumtext select,insert,update,references
|
||||
NULL mysql slow_log start_time 1 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references
|
||||
NULL mysql slow_log user_host 2 NULL NO mediumtext 16777215 16777215 NULL NULL utf8 utf8_general_ci mediumtext select,insert,update,references
|
||||
NULL mysql tables_priv Column_priv 8 NO set 31 93 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','References') select,insert,update,references
|
||||
NULL mysql tables_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
|
||||
NULL mysql tables_priv Grantor 5 NO char 77 231 NULL NULL utf8 utf8_bin char(77) MUL select,insert,update,references
|
||||
NULL mysql tables_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references
|
||||
NULL mysql tables_priv Table_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI select,insert,update,references
|
||||
NULL mysql tables_priv Table_priv 7 NO set 98 294 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view','Trigger') select,insert,update,references
|
||||
NULL mysql tables_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP select,insert,update,references
|
||||
NULL mysql tables_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references
|
||||
NULL mysql time_zone Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI auto_increment select,insert,update,references
|
||||
NULL mysql time_zone Use_leap_seconds 2 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('Y','N') select,insert,update,references
|
||||
NULL mysql time_zone_leap_second Correction 2 NULL NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
|
||||
NULL mysql time_zone_leap_second Transition_time 1 NULL NO bigint NULL NULL 19 0 NULL NULL bigint(20) PRI select,insert,update,references
|
||||
NULL mysql time_zone_name Name 1 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) PRI select,insert,update,references
|
||||
NULL mysql time_zone_name Time_zone_id 2 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references
|
||||
NULL mysql time_zone_transition Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
|
||||
NULL mysql time_zone_transition Transition_time 2 NULL NO bigint NULL NULL 19 0 NULL NULL bigint(20) PRI select,insert,update,references
|
||||
NULL mysql time_zone_transition Transition_type_id 3 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned select,insert,update,references
|
||||
NULL mysql time_zone_transition_type Abbreviation 5 NO char 8 24 NULL NULL utf8 utf8_general_ci char(8) select,insert,update,references
|
||||
NULL mysql time_zone_transition_type Is_DST 4 0 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned select,insert,update,references
|
||||
NULL mysql time_zone_transition_type Offset 3 0 NO int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
|
||||
NULL mysql time_zone_transition_type Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
|
||||
NULL mysql time_zone_transition_type Transition_type_id 2 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI select,insert,update,references
|
||||
NULL mysql user Alter_priv 17 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql user Alter_routine_priv 28 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql user Create_priv 8 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql user Create_routine_priv 27 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql user Create_tmp_table_priv 20 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql user Create_user_priv 29 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql user Create_view_priv 25 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql user Delete_priv 7 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql user Drop_priv 9 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql user Event_priv 30 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql user Execute_priv 22 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql user File_priv 13 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql user Grant_priv 14 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql user Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI select,insert,update,references
|
||||
NULL mysql user Index_priv 16 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql user Insert_priv 5 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql user Lock_tables_priv 21 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql user max_connections 38 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references
|
||||
NULL mysql user max_questions 36 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references
|
||||
NULL mysql user max_updates 37 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references
|
||||
NULL mysql user max_user_connections 39 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned select,insert,update,references
|
||||
NULL mysql user Password 3 NO char 41 41 NULL NULL latin1 latin1_bin char(41) select,insert,update,references
|
||||
NULL mysql user Process_priv 12 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql user References_priv 15 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql user Reload_priv 10 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql user Repl_client_priv 24 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql user Repl_slave_priv 23 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql user Select_priv 4 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql user Show_db_priv 18 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql user Show_view_priv 26 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql user Shutdown_priv 11 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql user ssl_cipher 33 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references
|
||||
NULL mysql user ssl_type 32 NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('','ANY','X509','SPECIFIED') select,insert,update,references
|
||||
NULL mysql user Super_priv 19 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql user Trigger_priv 31 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql user Update_priv 6 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y') select,insert,update,references
|
||||
NULL mysql user User 2 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI select,insert,update,references
|
||||
NULL mysql user x509_issuer 34 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references
|
||||
NULL mysql user x509_subject 35 NULL NO blob 65535 65535 NULL NULL NULL NULL blob select,insert,update,references
|
||||
##########################################################################
|
||||
# Show the quotient of CHARACTER_OCTET_LENGTH and CHARACTER_MAXIMUM_LENGTH
|
||||
##########################################################################
|
||||
SELECT DISTINCT
|
||||
CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
|
||||
DATA_TYPE,
|
||||
CHARACTER_SET_NAME,
|
||||
COLLATION_NAME
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema = 'mysql'
|
||||
AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH = 1
|
||||
ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML;
|
||||
COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME
|
||||
1.0000 blob NULL NULL
|
||||
1.0000 longblob NULL NULL
|
||||
1.0000 char latin1 latin1_bin
|
||||
1.0000 char latin1 latin1_swedish_ci
|
||||
1.0000 varchar latin1 latin1_swedish_ci
|
||||
1.0000 mediumtext utf8 utf8_general_ci
|
||||
1.0000 text utf8 utf8_general_ci
|
||||
SELECT DISTINCT
|
||||
CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
|
||||
DATA_TYPE,
|
||||
CHARACTER_SET_NAME,
|
||||
COLLATION_NAME
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema = 'mysql'
|
||||
AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH <> 1
|
||||
ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML;
|
||||
COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME
|
||||
3.0000 char utf8 utf8_bin
|
||||
3.0000 enum utf8 utf8_bin
|
||||
3.0000 char utf8 utf8_general_ci
|
||||
3.0000 enum utf8 utf8_general_ci
|
||||
3.0000 set utf8 utf8_general_ci
|
||||
3.0000 varchar utf8 utf8_general_ci
|
||||
SELECT DISTINCT
|
||||
CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
|
||||
DATA_TYPE,
|
||||
CHARACTER_SET_NAME,
|
||||
COLLATION_NAME
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema = 'mysql'
|
||||
AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH IS NULL
|
||||
ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML;
|
||||
COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME
|
||||
NULL bigint NULL NULL
|
||||
NULL datetime NULL NULL
|
||||
NULL int NULL NULL
|
||||
NULL smallint NULL NULL
|
||||
NULL time NULL NULL
|
||||
NULL timestamp NULL NULL
|
||||
NULL tinyint NULL NULL
|
||||
--> CHAR(0) is allowed (see manual), and here both CHARACHTER_* values
|
||||
--> are 0, which is intended behavior, and the result of 0 / 0 IS NULL
|
||||
SELECT CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
|
||||
TABLE_SCHEMA,
|
||||
TABLE_NAME,
|
||||
COLUMN_NAME,
|
||||
DATA_TYPE,
|
||||
CHARACTER_MAXIMUM_LENGTH,
|
||||
CHARACTER_OCTET_LENGTH,
|
||||
CHARACTER_SET_NAME,
|
||||
COLLATION_NAME,
|
||||
COLUMN_TYPE
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema = 'mysql'
|
||||
ORDER BY TABLE_SCHEMA, TABLE_NAME, ORDINAL_POSITION;
|
||||
COL_CML TABLE_SCHEMA TABLE_NAME COLUMN_NAME DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE
|
||||
3.0000 mysql columns_priv Host char 60 180 utf8 utf8_bin char(60)
|
||||
3.0000 mysql columns_priv Db char 64 192 utf8 utf8_bin char(64)
|
||||
3.0000 mysql columns_priv User char 16 48 utf8 utf8_bin char(16)
|
||||
3.0000 mysql columns_priv Table_name char 64 192 utf8 utf8_bin char(64)
|
||||
3.0000 mysql columns_priv Column_name char 64 192 utf8 utf8_bin char(64)
|
||||
NULL mysql columns_priv Timestamp timestamp NULL NULL NULL NULL timestamp
|
||||
3.0000 mysql columns_priv Column_priv set 31 93 utf8 utf8_general_ci set('Select','Insert','Update','References')
|
||||
3.0000 mysql db Host char 60 180 utf8 utf8_bin char(60)
|
||||
3.0000 mysql db Db char 64 192 utf8 utf8_bin char(64)
|
||||
3.0000 mysql db User char 16 48 utf8 utf8_bin char(16)
|
||||
3.0000 mysql db Select_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql db Insert_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql db Update_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql db Delete_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql db Create_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql db Drop_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql db Grant_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql db References_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql db Index_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql db Alter_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql db Create_tmp_table_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql db Lock_tables_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql db Create_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql db Show_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql db Create_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql db Alter_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql db Execute_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql db Event_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql db Trigger_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql event db char 64 192 utf8 utf8_bin char(64)
|
||||
3.0000 mysql event name char 64 192 utf8 utf8_general_ci char(64)
|
||||
1.0000 mysql event body longblob 4294967295 4294967295 NULL NULL longblob
|
||||
3.0000 mysql event definer char 77 231 utf8 utf8_bin char(77)
|
||||
NULL mysql event execute_at datetime NULL NULL NULL NULL datetime
|
||||
NULL mysql event interval_value int NULL NULL NULL NULL int(11)
|
||||
3.0000 mysql event interval_field enum 18 54 utf8 utf8_general_ci enum('YEAR','QUARTER','MONTH','DAY','HOUR','MINUTE','WEEK','SECOND','MICROSECOND','YEAR_MONTH','DAY_HOUR','DAY_MINUTE','DAY_SECOND','HOUR_MINUTE','HOUR_SECOND','MINUTE_SECOND','DAY_MICROSECOND','HOUR_MICROSECOND','MINUTE_MICROSECOND','SECOND_MICROSECOND')
|
||||
NULL mysql event created timestamp NULL NULL NULL NULL timestamp
|
||||
NULL mysql event modified timestamp NULL NULL NULL NULL timestamp
|
||||
NULL mysql event last_executed datetime NULL NULL NULL NULL datetime
|
||||
NULL mysql event starts datetime NULL NULL NULL NULL datetime
|
||||
NULL mysql event ends datetime NULL NULL NULL NULL datetime
|
||||
3.0000 mysql event status enum 18 54 utf8 utf8_general_ci enum('ENABLED','DISABLED','SLAVESIDE_DISABLED')
|
||||
3.0000 mysql event on_completion enum 8 24 utf8 utf8_general_ci enum('DROP','PRESERVE')
|
||||
3.0000 mysql event sql_mode set 478 1434 utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH')
|
||||
3.0000 mysql event comment char 64 192 utf8 utf8_bin char(64)
|
||||
NULL mysql event originator int NULL NULL NULL NULL int(10) unsigned
|
||||
1.0000 mysql event time_zone char 64 64 latin1 latin1_swedish_ci char(64)
|
||||
3.0000 mysql event character_set_client char 32 96 utf8 utf8_bin char(32)
|
||||
3.0000 mysql event collation_connection char 32 96 utf8 utf8_bin char(32)
|
||||
3.0000 mysql event db_collation char 32 96 utf8 utf8_bin char(32)
|
||||
1.0000 mysql event body_utf8 longblob 4294967295 4294967295 NULL NULL longblob
|
||||
3.0000 mysql func name char 64 192 utf8 utf8_bin char(64)
|
||||
NULL mysql func ret tinyint NULL NULL NULL NULL tinyint(1)
|
||||
3.0000 mysql func dl char 128 384 utf8 utf8_bin char(128)
|
||||
3.0000 mysql func type enum 9 27 utf8 utf8_general_ci enum('function','aggregate')
|
||||
NULL mysql general_log event_time timestamp NULL NULL NULL NULL timestamp
|
||||
1.0000 mysql general_log user_host mediumtext 16777215 16777215 utf8 utf8_general_ci mediumtext
|
||||
NULL mysql general_log thread_id int NULL NULL NULL NULL int(11)
|
||||
NULL mysql general_log server_id int NULL NULL NULL NULL int(10) unsigned
|
||||
3.0000 mysql general_log command_type varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
1.0000 mysql general_log argument mediumtext 16777215 16777215 utf8 utf8_general_ci mediumtext
|
||||
NULL mysql help_category help_category_id smallint NULL NULL NULL NULL smallint(5) unsigned
|
||||
3.0000 mysql help_category name char 64 192 utf8 utf8_general_ci char(64)
|
||||
NULL mysql help_category parent_category_id smallint NULL NULL NULL NULL smallint(5) unsigned
|
||||
1.0000 mysql help_category url text 65535 65535 utf8 utf8_general_ci text
|
||||
NULL mysql help_keyword help_keyword_id int NULL NULL NULL NULL int(10) unsigned
|
||||
3.0000 mysql help_keyword name char 64 192 utf8 utf8_general_ci char(64)
|
||||
NULL mysql help_relation help_topic_id int NULL NULL NULL NULL int(10) unsigned
|
||||
NULL mysql help_relation help_keyword_id int NULL NULL NULL NULL int(10) unsigned
|
||||
NULL mysql help_topic help_topic_id int NULL NULL NULL NULL int(10) unsigned
|
||||
3.0000 mysql help_topic name char 64 192 utf8 utf8_general_ci char(64)
|
||||
NULL mysql help_topic help_category_id smallint NULL NULL NULL NULL smallint(5) unsigned
|
||||
1.0000 mysql help_topic description text 65535 65535 utf8 utf8_general_ci text
|
||||
1.0000 mysql help_topic example text 65535 65535 utf8 utf8_general_ci text
|
||||
1.0000 mysql help_topic url text 65535 65535 utf8 utf8_general_ci text
|
||||
3.0000 mysql host Host char 60 180 utf8 utf8_bin char(60)
|
||||
3.0000 mysql host Db char 64 192 utf8 utf8_bin char(64)
|
||||
3.0000 mysql host Select_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql host Insert_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql host Update_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql host Delete_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql host Create_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql host Drop_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql host Grant_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql host References_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql host Index_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql host Alter_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql host Create_tmp_table_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql host Lock_tables_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql host Create_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql host Show_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql host Create_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql host Alter_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql host Execute_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql host Trigger_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql ndb_binlog_index Position bigint NULL NULL NULL NULL bigint(20) unsigned
|
||||
1.0000 mysql ndb_binlog_index File varchar 255 255 latin1 latin1_swedish_ci varchar(255)
|
||||
NULL mysql ndb_binlog_index epoch bigint NULL NULL NULL NULL bigint(20) unsigned
|
||||
NULL mysql ndb_binlog_index inserts bigint NULL NULL NULL NULL bigint(20) unsigned
|
||||
NULL mysql ndb_binlog_index updates bigint NULL NULL NULL NULL bigint(20) unsigned
|
||||
NULL mysql ndb_binlog_index deletes bigint NULL NULL NULL NULL bigint(20) unsigned
|
||||
NULL mysql ndb_binlog_index schemaops bigint NULL NULL NULL NULL bigint(20) unsigned
|
||||
3.0000 mysql plugin name char 64 192 utf8 utf8_bin char(64)
|
||||
3.0000 mysql plugin dl char 128 384 utf8 utf8_bin char(128)
|
||||
3.0000 mysql proc db char 64 192 utf8 utf8_bin char(64)
|
||||
3.0000 mysql proc name char 64 192 utf8 utf8_general_ci char(64)
|
||||
3.0000 mysql proc type enum 9 27 utf8 utf8_general_ci enum('FUNCTION','PROCEDURE')
|
||||
3.0000 mysql proc specific_name char 64 192 utf8 utf8_general_ci char(64)
|
||||
3.0000 mysql proc language enum 3 9 utf8 utf8_general_ci enum('SQL')
|
||||
3.0000 mysql proc sql_data_access enum 17 51 utf8 utf8_general_ci enum('CONTAINS_SQL','NO_SQL','READS_SQL_DATA','MODIFIES_SQL_DATA')
|
||||
3.0000 mysql proc is_deterministic enum 3 9 utf8 utf8_general_ci enum('YES','NO')
|
||||
3.0000 mysql proc security_type enum 7 21 utf8 utf8_general_ci enum('INVOKER','DEFINER')
|
||||
1.0000 mysql proc param_list blob 65535 65535 NULL NULL blob
|
||||
1.0000 mysql proc returns longblob 4294967295 4294967295 NULL NULL longblob
|
||||
1.0000 mysql proc body longblob 4294967295 4294967295 NULL NULL longblob
|
||||
3.0000 mysql proc definer char 77 231 utf8 utf8_bin char(77)
|
||||
NULL mysql proc created timestamp NULL NULL NULL NULL timestamp
|
||||
NULL mysql proc modified timestamp NULL NULL NULL NULL timestamp
|
||||
3.0000 mysql proc sql_mode set 478 1434 utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH')
|
||||
3.0000 mysql proc comment char 64 192 utf8 utf8_bin char(64)
|
||||
3.0000 mysql proc character_set_client char 32 96 utf8 utf8_bin char(32)
|
||||
3.0000 mysql proc collation_connection char 32 96 utf8 utf8_bin char(32)
|
||||
3.0000 mysql proc db_collation char 32 96 utf8 utf8_bin char(32)
|
||||
1.0000 mysql proc body_utf8 longblob 4294967295 4294967295 NULL NULL longblob
|
||||
3.0000 mysql procs_priv Host char 60 180 utf8 utf8_bin char(60)
|
||||
3.0000 mysql procs_priv Db char 64 192 utf8 utf8_bin char(64)
|
||||
3.0000 mysql procs_priv User char 16 48 utf8 utf8_bin char(16)
|
||||
3.0000 mysql procs_priv Routine_name char 64 192 utf8 utf8_general_ci char(64)
|
||||
3.0000 mysql procs_priv Routine_type enum 9 27 utf8 utf8_bin enum('FUNCTION','PROCEDURE')
|
||||
3.0000 mysql procs_priv Grantor char 77 231 utf8 utf8_bin char(77)
|
||||
3.0000 mysql procs_priv Proc_priv set 27 81 utf8 utf8_general_ci set('Execute','Alter Routine','Grant')
|
||||
NULL mysql procs_priv Timestamp timestamp NULL NULL NULL NULL timestamp
|
||||
3.0000 mysql servers Server_name char 64 192 utf8 utf8_general_ci char(64)
|
||||
3.0000 mysql servers Host char 64 192 utf8 utf8_general_ci char(64)
|
||||
3.0000 mysql servers Db char 64 192 utf8 utf8_general_ci char(64)
|
||||
3.0000 mysql servers Username char 64 192 utf8 utf8_general_ci char(64)
|
||||
3.0000 mysql servers Password char 64 192 utf8 utf8_general_ci char(64)
|
||||
NULL mysql servers Port int NULL NULL NULL NULL int(4)
|
||||
3.0000 mysql servers Socket char 64 192 utf8 utf8_general_ci char(64)
|
||||
3.0000 mysql servers Wrapper char 64 192 utf8 utf8_general_ci char(64)
|
||||
3.0000 mysql servers Owner char 64 192 utf8 utf8_general_ci char(64)
|
||||
NULL mysql slow_log start_time timestamp NULL NULL NULL NULL timestamp
|
||||
1.0000 mysql slow_log user_host mediumtext 16777215 16777215 utf8 utf8_general_ci mediumtext
|
||||
NULL mysql slow_log query_time time NULL NULL NULL NULL time
|
||||
NULL mysql slow_log lock_time time NULL NULL NULL NULL time
|
||||
NULL mysql slow_log rows_sent int NULL NULL NULL NULL int(11)
|
||||
NULL mysql slow_log rows_examined int NULL NULL NULL NULL int(11)
|
||||
3.0000 mysql slow_log db varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||
NULL mysql slow_log last_insert_id int NULL NULL NULL NULL int(11)
|
||||
NULL mysql slow_log insert_id int NULL NULL NULL NULL int(11)
|
||||
NULL mysql slow_log server_id int NULL NULL NULL NULL int(10) unsigned
|
||||
1.0000 mysql slow_log sql_text mediumtext 16777215 16777215 utf8 utf8_general_ci mediumtext
|
||||
3.0000 mysql tables_priv Host char 60 180 utf8 utf8_bin char(60)
|
||||
3.0000 mysql tables_priv Db char 64 192 utf8 utf8_bin char(64)
|
||||
3.0000 mysql tables_priv User char 16 48 utf8 utf8_bin char(16)
|
||||
3.0000 mysql tables_priv Table_name char 64 192 utf8 utf8_bin char(64)
|
||||
3.0000 mysql tables_priv Grantor char 77 231 utf8 utf8_bin char(77)
|
||||
NULL mysql tables_priv Timestamp timestamp NULL NULL NULL NULL timestamp
|
||||
3.0000 mysql tables_priv Table_priv set 98 294 utf8 utf8_general_ci set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view','Trigger')
|
||||
3.0000 mysql tables_priv Column_priv set 31 93 utf8 utf8_general_ci set('Select','Insert','Update','References')
|
||||
NULL mysql time_zone Time_zone_id int NULL NULL NULL NULL int(10) unsigned
|
||||
3.0000 mysql time_zone Use_leap_seconds enum 1 3 utf8 utf8_general_ci enum('Y','N')
|
||||
NULL mysql time_zone_leap_second Transition_time bigint NULL NULL NULL NULL bigint(20)
|
||||
NULL mysql time_zone_leap_second Correction int NULL NULL NULL NULL int(11)
|
||||
3.0000 mysql time_zone_name Name char 64 192 utf8 utf8_general_ci char(64)
|
||||
NULL mysql time_zone_name Time_zone_id int NULL NULL NULL NULL int(10) unsigned
|
||||
NULL mysql time_zone_transition Time_zone_id int NULL NULL NULL NULL int(10) unsigned
|
||||
NULL mysql time_zone_transition Transition_time bigint NULL NULL NULL NULL bigint(20)
|
||||
NULL mysql time_zone_transition Transition_type_id int NULL NULL NULL NULL int(10) unsigned
|
||||
NULL mysql time_zone_transition_type Time_zone_id int NULL NULL NULL NULL int(10) unsigned
|
||||
NULL mysql time_zone_transition_type Transition_type_id int NULL NULL NULL NULL int(10) unsigned
|
||||
NULL mysql time_zone_transition_type Offset int NULL NULL NULL NULL int(11)
|
||||
NULL mysql time_zone_transition_type Is_DST tinyint NULL NULL NULL NULL tinyint(3) unsigned
|
||||
3.0000 mysql time_zone_transition_type Abbreviation char 8 24 utf8 utf8_general_ci char(8)
|
||||
3.0000 mysql user Host char 60 180 utf8 utf8_bin char(60)
|
||||
3.0000 mysql user User char 16 48 utf8 utf8_bin char(16)
|
||||
1.0000 mysql user Password char 41 41 latin1 latin1_bin char(41)
|
||||
3.0000 mysql user Select_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Insert_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Update_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Delete_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Create_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Drop_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Reload_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Shutdown_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Process_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user File_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Grant_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user References_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Index_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Alter_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Show_db_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Super_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Create_tmp_table_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Lock_tables_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Execute_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Repl_slave_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Repl_client_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Create_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Show_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Create_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Alter_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Create_user_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Event_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Trigger_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user ssl_type enum 9 27 utf8 utf8_general_ci enum('','ANY','X509','SPECIFIED')
|
||||
1.0000 mysql user ssl_cipher blob 65535 65535 NULL NULL blob
|
||||
1.0000 mysql user x509_issuer blob 65535 65535 NULL NULL blob
|
||||
1.0000 mysql user x509_subject blob 65535 65535 NULL NULL blob
|
||||
NULL mysql user max_questions int NULL NULL NULL NULL int(11) unsigned
|
||||
NULL mysql user max_updates int NULL NULL NULL NULL int(11) unsigned
|
||||
NULL mysql user max_connections int NULL NULL NULL NULL int(11) unsigned
|
||||
NULL mysql user max_user_connections int NULL NULL NULL NULL int(11) unsigned
|
||||
@@ -0,0 +1,499 @@
|
||||
SELECT * FROM information_schema.columns
|
||||
WHERE table_schema = 'mysql'
|
||||
ORDER BY table_schema, table_name, column_name;
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
|
||||
NULL mysql columns_priv Column_name 5 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI
|
||||
NULL mysql columns_priv Column_priv 7 NO set 31 93 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','References')
|
||||
NULL mysql columns_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI
|
||||
NULL mysql columns_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI
|
||||
NULL mysql columns_priv Table_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI
|
||||
NULL mysql columns_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP
|
||||
NULL mysql columns_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI
|
||||
NULL mysql db Alter_priv 13 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql db Alter_routine_priv 19 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql db Create_priv 8 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql db Create_routine_priv 18 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql db Create_tmp_table_priv 14 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql db Create_view_priv 16 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql db Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI
|
||||
NULL mysql db Delete_priv 7 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql db Drop_priv 9 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql db Event_priv 21 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql db Execute_priv 20 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql db Grant_priv 10 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql db Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI
|
||||
NULL mysql db Index_priv 12 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql db Insert_priv 5 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql db Lock_tables_priv 15 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql db References_priv 11 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql db Select_priv 4 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql db Show_view_priv 17 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql db Trigger_priv 22 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql db Update_priv 6 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql db User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI
|
||||
NULL mysql event body 3 NULL NO longblob 4294967295 4294967295 NULL NULL NULL NULL longblob
|
||||
NULL mysql event body_utf8 22 NULL YES longblob 4294967295 4294967295 NULL NULL NULL NULL longblob
|
||||
NULL mysql event character_set_client 19 NULL YES char 32 96 NULL NULL utf8 utf8_bin char(32)
|
||||
NULL mysql event collation_connection 20 NULL YES char 32 96 NULL NULL utf8 utf8_bin char(32)
|
||||
NULL mysql event comment 16 NO char 64 192 NULL NULL utf8 utf8_bin char(64)
|
||||
NULL mysql event created 8 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP
|
||||
NULL mysql event db 1 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI
|
||||
NULL mysql event db_collation 21 NULL YES char 32 96 NULL NULL utf8 utf8_bin char(32)
|
||||
NULL mysql event definer 4 NO char 77 231 NULL NULL utf8 utf8_bin char(77)
|
||||
NULL mysql event ends 12 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime
|
||||
NULL mysql event execute_at 5 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime
|
||||
NULL mysql event interval_field 7 NULL YES enum 18 54 NULL NULL utf8 utf8_general_ci enum('YEAR','QUARTER','MONTH','DAY','HOUR','MINUTE','WEEK','SECOND','MICROSECOND','YEAR_MONTH','DAY_HOUR','DAY_MINUTE','DAY_SECOND','HOUR_MINUTE','HOUR_SECOND','MINUTE_SECOND','DAY_MICROSECOND','HOUR_MICROSECOND','MINUTE_MICROSECOND','SECOND_MICROSECOND')
|
||||
NULL mysql event interval_value 6 NULL YES int NULL NULL 10 0 NULL NULL int(11)
|
||||
NULL mysql event last_executed 10 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime
|
||||
NULL mysql event modified 9 0000-00-00 00:00:00 NO timestamp NULL NULL NULL NULL NULL NULL timestamp
|
||||
NULL mysql event name 2 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) PRI
|
||||
NULL mysql event on_completion 14 DROP NO enum 8 24 NULL NULL utf8 utf8_general_ci enum('DROP','PRESERVE')
|
||||
NULL mysql event originator 17 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned
|
||||
NULL mysql event sql_mode 15 NO set 478 1434 NULL NULL utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH')
|
||||
NULL mysql event starts 11 NULL YES datetime NULL NULL NULL NULL NULL NULL datetime
|
||||
NULL mysql event status 13 ENABLED NO enum 18 54 NULL NULL utf8 utf8_general_ci enum('ENABLED','DISABLED','SLAVESIDE_DISABLED')
|
||||
NULL mysql event time_zone 18 SYSTEM NO char 64 64 NULL NULL latin1 latin1_swedish_ci char(64)
|
||||
NULL mysql func dl 3 NO char 128 384 NULL NULL utf8 utf8_bin char(128)
|
||||
NULL mysql func name 1 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI
|
||||
NULL mysql func ret 2 0 NO tinyint NULL NULL 3 0 NULL NULL tinyint(1)
|
||||
NULL mysql func type 4 NULL NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('function','aggregate')
|
||||
NULL mysql general_log argument 6 NULL NO mediumtext 16777215 16777215 NULL NULL utf8 utf8_general_ci mediumtext
|
||||
NULL mysql general_log command_type 5 NULL NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64)
|
||||
NULL mysql general_log event_time 1 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP
|
||||
NULL mysql general_log server_id 4 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned
|
||||
NULL mysql general_log thread_id 3 NULL NO int NULL NULL 10 0 NULL NULL int(11)
|
||||
NULL mysql general_log user_host 2 NULL NO mediumtext 16777215 16777215 NULL NULL utf8 utf8_general_ci mediumtext
|
||||
NULL mysql help_category help_category_id 1 NULL NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned PRI
|
||||
NULL mysql help_category name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI
|
||||
NULL mysql help_category parent_category_id 3 NULL YES smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned
|
||||
NULL mysql help_category url 4 NULL NO text 65535 65535 NULL NULL utf8 utf8_general_ci text
|
||||
NULL mysql help_keyword help_keyword_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI
|
||||
NULL mysql help_keyword name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI
|
||||
NULL mysql help_relation help_keyword_id 2 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI
|
||||
NULL mysql help_relation help_topic_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI
|
||||
NULL mysql help_topic description 4 NULL NO text 65535 65535 NULL NULL utf8 utf8_general_ci text
|
||||
NULL mysql help_topic example 5 NULL NO text 65535 65535 NULL NULL utf8 utf8_general_ci text
|
||||
NULL mysql help_topic help_category_id 3 NULL NO smallint NULL NULL 5 0 NULL NULL smallint(5) unsigned
|
||||
NULL mysql help_topic help_topic_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI
|
||||
NULL mysql help_topic name 2 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) UNI
|
||||
NULL mysql help_topic url 6 NULL NO text 65535 65535 NULL NULL utf8 utf8_general_ci text
|
||||
NULL mysql host Alter_priv 12 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql host Alter_routine_priv 18 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql host Create_priv 7 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql host Create_routine_priv 17 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql host Create_tmp_table_priv 13 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql host Create_view_priv 15 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql host Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI
|
||||
NULL mysql host Delete_priv 6 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql host Drop_priv 8 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql host Execute_priv 19 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql host Grant_priv 9 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql host Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI
|
||||
NULL mysql host Index_priv 11 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql host Insert_priv 4 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql host Lock_tables_priv 14 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql host References_priv 10 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql host Select_priv 3 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql host Show_view_priv 16 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql host Trigger_priv 20 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql host Update_priv 5 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql ndb_binlog_index deletes 6 NULL NO bigint NULL NULL 20 0 NULL NULL bigint(20) unsigned
|
||||
NULL mysql ndb_binlog_index epoch 3 NULL NO bigint NULL NULL 20 0 NULL NULL bigint(20) unsigned PRI
|
||||
NULL mysql ndb_binlog_index File 2 NULL NO varchar 255 255 NULL NULL latin1 latin1_swedish_ci varchar(255)
|
||||
NULL mysql ndb_binlog_index inserts 4 NULL NO bigint NULL NULL 20 0 NULL NULL bigint(20) unsigned
|
||||
NULL mysql ndb_binlog_index Position 1 NULL NO bigint NULL NULL 20 0 NULL NULL bigint(20) unsigned
|
||||
NULL mysql ndb_binlog_index schemaops 7 NULL NO bigint NULL NULL 20 0 NULL NULL bigint(20) unsigned
|
||||
NULL mysql ndb_binlog_index updates 5 NULL NO bigint NULL NULL 20 0 NULL NULL bigint(20) unsigned
|
||||
NULL mysql plugin dl 2 NO char 128 384 NULL NULL utf8 utf8_bin char(128)
|
||||
NULL mysql plugin name 1 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI
|
||||
NULL mysql proc body 11 NULL NO longblob 4294967295 4294967295 NULL NULL NULL NULL longblob
|
||||
NULL mysql proc body_utf8 20 NULL YES longblob 4294967295 4294967295 NULL NULL NULL NULL longblob
|
||||
NULL mysql proc character_set_client 17 NULL YES char 32 96 NULL NULL utf8 utf8_bin char(32)
|
||||
NULL mysql proc collation_connection 18 NULL YES char 32 96 NULL NULL utf8 utf8_bin char(32)
|
||||
NULL mysql proc comment 16 NO char 64 192 NULL NULL utf8 utf8_bin char(64)
|
||||
NULL mysql proc created 13 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP
|
||||
NULL mysql proc db 1 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI
|
||||
NULL mysql proc db_collation 19 NULL YES char 32 96 NULL NULL utf8 utf8_bin char(32)
|
||||
NULL mysql proc definer 12 NO char 77 231 NULL NULL utf8 utf8_bin char(77)
|
||||
NULL mysql proc is_deterministic 7 NO NO enum 3 9 NULL NULL utf8 utf8_general_ci enum('YES','NO')
|
||||
NULL mysql proc language 5 SQL NO enum 3 9 NULL NULL utf8 utf8_general_ci enum('SQL')
|
||||
NULL mysql proc modified 14 0000-00-00 00:00:00 NO timestamp NULL NULL NULL NULL NULL NULL timestamp
|
||||
NULL mysql proc name 2 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) PRI
|
||||
NULL mysql proc param_list 9 NULL NO blob 65535 65535 NULL NULL NULL NULL blob
|
||||
NULL mysql proc returns 10 NULL NO longblob 4294967295 4294967295 NULL NULL NULL NULL longblob
|
||||
NULL mysql proc security_type 8 DEFINER NO enum 7 21 NULL NULL utf8 utf8_general_ci enum('INVOKER','DEFINER')
|
||||
NULL mysql proc specific_name 4 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64)
|
||||
NULL mysql proc sql_data_access 6 CONTAINS_SQL NO enum 17 51 NULL NULL utf8 utf8_general_ci enum('CONTAINS_SQL','NO_SQL','READS_SQL_DATA','MODIFIES_SQL_DATA')
|
||||
NULL mysql proc sql_mode 15 NO set 478 1434 NULL NULL utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH')
|
||||
NULL mysql proc type 3 NULL NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('FUNCTION','PROCEDURE') PRI
|
||||
NULL mysql procs_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI
|
||||
NULL mysql procs_priv Grantor 6 NO char 77 231 NULL NULL utf8 utf8_bin char(77) MUL
|
||||
NULL mysql procs_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI
|
||||
NULL mysql procs_priv Proc_priv 7 NO set 27 81 NULL NULL utf8 utf8_general_ci set('Execute','Alter Routine','Grant')
|
||||
NULL mysql procs_priv Routine_name 4 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) PRI
|
||||
NULL mysql procs_priv Routine_type 5 NULL NO enum 9 27 NULL NULL utf8 utf8_bin enum('FUNCTION','PROCEDURE') PRI
|
||||
NULL mysql procs_priv Timestamp 8 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP
|
||||
NULL mysql procs_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI
|
||||
NULL mysql servers Db 3 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64)
|
||||
NULL mysql servers Host 2 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64)
|
||||
NULL mysql servers Owner 9 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64)
|
||||
NULL mysql servers Password 5 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64)
|
||||
NULL mysql servers Port 6 0 NO int NULL NULL 10 0 NULL NULL int(4)
|
||||
NULL mysql servers Server_name 1 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) PRI
|
||||
NULL mysql servers Socket 7 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64)
|
||||
NULL mysql servers Username 4 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64)
|
||||
NULL mysql servers Wrapper 8 NO char 64 192 NULL NULL utf8 utf8_general_ci char(64)
|
||||
NULL mysql slow_log db 7 NULL NO varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512)
|
||||
NULL mysql slow_log insert_id 9 NULL NO int NULL NULL 10 0 NULL NULL int(11)
|
||||
NULL mysql slow_log last_insert_id 8 NULL NO int NULL NULL 10 0 NULL NULL int(11)
|
||||
NULL mysql slow_log lock_time 4 NULL NO time NULL NULL NULL NULL NULL NULL time
|
||||
NULL mysql slow_log query_time 3 NULL NO time NULL NULL NULL NULL NULL NULL time
|
||||
NULL mysql slow_log rows_examined 6 NULL NO int NULL NULL 10 0 NULL NULL int(11)
|
||||
NULL mysql slow_log rows_sent 5 NULL NO int NULL NULL 10 0 NULL NULL int(11)
|
||||
NULL mysql slow_log server_id 10 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned
|
||||
NULL mysql slow_log sql_text 11 NULL NO mediumtext 16777215 16777215 NULL NULL utf8 utf8_general_ci mediumtext
|
||||
NULL mysql slow_log start_time 1 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP
|
||||
NULL mysql slow_log user_host 2 NULL NO mediumtext 16777215 16777215 NULL NULL utf8 utf8_general_ci mediumtext
|
||||
NULL mysql tables_priv Column_priv 8 NO set 31 93 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','References')
|
||||
NULL mysql tables_priv Db 2 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI
|
||||
NULL mysql tables_priv Grantor 5 NO char 77 231 NULL NULL utf8 utf8_bin char(77) MUL
|
||||
NULL mysql tables_priv Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI
|
||||
NULL mysql tables_priv Table_name 4 NO char 64 192 NULL NULL utf8 utf8_bin char(64) PRI
|
||||
NULL mysql tables_priv Table_priv 7 NO set 98 294 NULL NULL utf8 utf8_general_ci set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view','Trigger')
|
||||
NULL mysql tables_priv Timestamp 6 CURRENT_TIMESTAMP NO timestamp NULL NULL NULL NULL NULL NULL timestamp on update CURRENT_TIMESTAMP
|
||||
NULL mysql tables_priv User 3 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI
|
||||
NULL mysql time_zone Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI auto_increment
|
||||
NULL mysql time_zone Use_leap_seconds 2 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('Y','N')
|
||||
NULL mysql time_zone_leap_second Correction 2 NULL NO int NULL NULL 10 0 NULL NULL int(11)
|
||||
NULL mysql time_zone_leap_second Transition_time 1 NULL NO bigint NULL NULL 19 0 NULL NULL bigint(20) PRI
|
||||
NULL mysql time_zone_name Name 1 NULL NO char 64 192 NULL NULL utf8 utf8_general_ci char(64) PRI
|
||||
NULL mysql time_zone_name Time_zone_id 2 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned
|
||||
NULL mysql time_zone_transition Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI
|
||||
NULL mysql time_zone_transition Transition_time 2 NULL NO bigint NULL NULL 19 0 NULL NULL bigint(20) PRI
|
||||
NULL mysql time_zone_transition Transition_type_id 3 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned
|
||||
NULL mysql time_zone_transition_type Abbreviation 5 NO char 8 24 NULL NULL utf8 utf8_general_ci char(8)
|
||||
NULL mysql time_zone_transition_type Is_DST 4 0 NO tinyint NULL NULL 3 0 NULL NULL tinyint(3) unsigned
|
||||
NULL mysql time_zone_transition_type Offset 3 0 NO int NULL NULL 10 0 NULL NULL int(11)
|
||||
NULL mysql time_zone_transition_type Time_zone_id 1 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI
|
||||
NULL mysql time_zone_transition_type Transition_type_id 2 NULL NO int NULL NULL 10 0 NULL NULL int(10) unsigned PRI
|
||||
NULL mysql user Alter_priv 17 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql user Alter_routine_priv 28 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql user Create_priv 8 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql user Create_routine_priv 27 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql user Create_tmp_table_priv 20 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql user Create_user_priv 29 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql user Create_view_priv 25 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql user Delete_priv 7 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql user Drop_priv 9 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql user Event_priv 30 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql user Execute_priv 22 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql user File_priv 13 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql user Grant_priv 14 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql user Host 1 NO char 60 180 NULL NULL utf8 utf8_bin char(60) PRI
|
||||
NULL mysql user Index_priv 16 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql user Insert_priv 5 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql user Lock_tables_priv 21 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql user max_connections 38 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned
|
||||
NULL mysql user max_questions 36 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned
|
||||
NULL mysql user max_updates 37 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned
|
||||
NULL mysql user max_user_connections 39 0 NO int NULL NULL 10 0 NULL NULL int(11) unsigned
|
||||
NULL mysql user Password 3 NO char 41 41 NULL NULL latin1 latin1_bin char(41)
|
||||
NULL mysql user Process_priv 12 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql user References_priv 15 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql user Reload_priv 10 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql user Repl_client_priv 24 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql user Repl_slave_priv 23 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql user Select_priv 4 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql user Show_db_priv 18 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql user Show_view_priv 26 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql user Shutdown_priv 11 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql user ssl_cipher 33 NULL NO blob 65535 65535 NULL NULL NULL NULL blob
|
||||
NULL mysql user ssl_type 32 NO enum 9 27 NULL NULL utf8 utf8_general_ci enum('','ANY','X509','SPECIFIED')
|
||||
NULL mysql user Super_priv 19 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql user Trigger_priv 31 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql user Update_priv 6 N NO enum 1 3 NULL NULL utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql user User 2 NO char 16 48 NULL NULL utf8 utf8_bin char(16) PRI
|
||||
NULL mysql user x509_issuer 34 NULL NO blob 65535 65535 NULL NULL NULL NULL blob
|
||||
NULL mysql user x509_subject 35 NULL NO blob 65535 65535 NULL NULL NULL NULL blob
|
||||
##########################################################################
|
||||
# Show the quotient of CHARACTER_OCTET_LENGTH and CHARACTER_MAXIMUM_LENGTH
|
||||
##########################################################################
|
||||
SELECT DISTINCT
|
||||
CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
|
||||
DATA_TYPE,
|
||||
CHARACTER_SET_NAME,
|
||||
COLLATION_NAME
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema = 'mysql'
|
||||
AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH = 1
|
||||
ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML;
|
||||
COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME
|
||||
1.0000 blob NULL NULL
|
||||
1.0000 longblob NULL NULL
|
||||
1.0000 char latin1 latin1_bin
|
||||
1.0000 char latin1 latin1_swedish_ci
|
||||
1.0000 varchar latin1 latin1_swedish_ci
|
||||
1.0000 mediumtext utf8 utf8_general_ci
|
||||
1.0000 text utf8 utf8_general_ci
|
||||
SELECT DISTINCT
|
||||
CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
|
||||
DATA_TYPE,
|
||||
CHARACTER_SET_NAME,
|
||||
COLLATION_NAME
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema = 'mysql'
|
||||
AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH <> 1
|
||||
ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML;
|
||||
COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME
|
||||
3.0000 char utf8 utf8_bin
|
||||
3.0000 enum utf8 utf8_bin
|
||||
3.0000 char utf8 utf8_general_ci
|
||||
3.0000 enum utf8 utf8_general_ci
|
||||
3.0000 set utf8 utf8_general_ci
|
||||
3.0000 varchar utf8 utf8_general_ci
|
||||
SELECT DISTINCT
|
||||
CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
|
||||
DATA_TYPE,
|
||||
CHARACTER_SET_NAME,
|
||||
COLLATION_NAME
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema = 'mysql'
|
||||
AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH IS NULL
|
||||
ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML;
|
||||
COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME
|
||||
NULL bigint NULL NULL
|
||||
NULL datetime NULL NULL
|
||||
NULL int NULL NULL
|
||||
NULL smallint NULL NULL
|
||||
NULL time NULL NULL
|
||||
NULL timestamp NULL NULL
|
||||
NULL tinyint NULL NULL
|
||||
--> CHAR(0) is allowed (see manual), and here both CHARACHTER_* values
|
||||
--> are 0, which is intended behavior, and the result of 0 / 0 IS NULL
|
||||
SELECT CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
|
||||
TABLE_SCHEMA,
|
||||
TABLE_NAME,
|
||||
COLUMN_NAME,
|
||||
DATA_TYPE,
|
||||
CHARACTER_MAXIMUM_LENGTH,
|
||||
CHARACTER_OCTET_LENGTH,
|
||||
CHARACTER_SET_NAME,
|
||||
COLLATION_NAME,
|
||||
COLUMN_TYPE
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema = 'mysql'
|
||||
ORDER BY TABLE_SCHEMA, TABLE_NAME, ORDINAL_POSITION;
|
||||
COL_CML TABLE_SCHEMA TABLE_NAME COLUMN_NAME DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE
|
||||
3.0000 mysql columns_priv Host char 60 180 utf8 utf8_bin char(60)
|
||||
3.0000 mysql columns_priv Db char 64 192 utf8 utf8_bin char(64)
|
||||
3.0000 mysql columns_priv User char 16 48 utf8 utf8_bin char(16)
|
||||
3.0000 mysql columns_priv Table_name char 64 192 utf8 utf8_bin char(64)
|
||||
3.0000 mysql columns_priv Column_name char 64 192 utf8 utf8_bin char(64)
|
||||
NULL mysql columns_priv Timestamp timestamp NULL NULL NULL NULL timestamp
|
||||
3.0000 mysql columns_priv Column_priv set 31 93 utf8 utf8_general_ci set('Select','Insert','Update','References')
|
||||
3.0000 mysql db Host char 60 180 utf8 utf8_bin char(60)
|
||||
3.0000 mysql db Db char 64 192 utf8 utf8_bin char(64)
|
||||
3.0000 mysql db User char 16 48 utf8 utf8_bin char(16)
|
||||
3.0000 mysql db Select_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql db Insert_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql db Update_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql db Delete_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql db Create_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql db Drop_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql db Grant_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql db References_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql db Index_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql db Alter_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql db Create_tmp_table_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql db Lock_tables_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql db Create_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql db Show_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql db Create_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql db Alter_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql db Execute_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql db Event_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql db Trigger_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql event db char 64 192 utf8 utf8_bin char(64)
|
||||
3.0000 mysql event name char 64 192 utf8 utf8_general_ci char(64)
|
||||
1.0000 mysql event body longblob 4294967295 4294967295 NULL NULL longblob
|
||||
3.0000 mysql event definer char 77 231 utf8 utf8_bin char(77)
|
||||
NULL mysql event execute_at datetime NULL NULL NULL NULL datetime
|
||||
NULL mysql event interval_value int NULL NULL NULL NULL int(11)
|
||||
3.0000 mysql event interval_field enum 18 54 utf8 utf8_general_ci enum('YEAR','QUARTER','MONTH','DAY','HOUR','MINUTE','WEEK','SECOND','MICROSECOND','YEAR_MONTH','DAY_HOUR','DAY_MINUTE','DAY_SECOND','HOUR_MINUTE','HOUR_SECOND','MINUTE_SECOND','DAY_MICROSECOND','HOUR_MICROSECOND','MINUTE_MICROSECOND','SECOND_MICROSECOND')
|
||||
NULL mysql event created timestamp NULL NULL NULL NULL timestamp
|
||||
NULL mysql event modified timestamp NULL NULL NULL NULL timestamp
|
||||
NULL mysql event last_executed datetime NULL NULL NULL NULL datetime
|
||||
NULL mysql event starts datetime NULL NULL NULL NULL datetime
|
||||
NULL mysql event ends datetime NULL NULL NULL NULL datetime
|
||||
3.0000 mysql event status enum 18 54 utf8 utf8_general_ci enum('ENABLED','DISABLED','SLAVESIDE_DISABLED')
|
||||
3.0000 mysql event on_completion enum 8 24 utf8 utf8_general_ci enum('DROP','PRESERVE')
|
||||
3.0000 mysql event sql_mode set 478 1434 utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH')
|
||||
3.0000 mysql event comment char 64 192 utf8 utf8_bin char(64)
|
||||
NULL mysql event originator int NULL NULL NULL NULL int(10) unsigned
|
||||
1.0000 mysql event time_zone char 64 64 latin1 latin1_swedish_ci char(64)
|
||||
3.0000 mysql event character_set_client char 32 96 utf8 utf8_bin char(32)
|
||||
3.0000 mysql event collation_connection char 32 96 utf8 utf8_bin char(32)
|
||||
3.0000 mysql event db_collation char 32 96 utf8 utf8_bin char(32)
|
||||
1.0000 mysql event body_utf8 longblob 4294967295 4294967295 NULL NULL longblob
|
||||
3.0000 mysql func name char 64 192 utf8 utf8_bin char(64)
|
||||
NULL mysql func ret tinyint NULL NULL NULL NULL tinyint(1)
|
||||
3.0000 mysql func dl char 128 384 utf8 utf8_bin char(128)
|
||||
3.0000 mysql func type enum 9 27 utf8 utf8_general_ci enum('function','aggregate')
|
||||
NULL mysql general_log event_time timestamp NULL NULL NULL NULL timestamp
|
||||
1.0000 mysql general_log user_host mediumtext 16777215 16777215 utf8 utf8_general_ci mediumtext
|
||||
NULL mysql general_log thread_id int NULL NULL NULL NULL int(11)
|
||||
NULL mysql general_log server_id int NULL NULL NULL NULL int(10) unsigned
|
||||
3.0000 mysql general_log command_type varchar 64 192 utf8 utf8_general_ci varchar(64)
|
||||
1.0000 mysql general_log argument mediumtext 16777215 16777215 utf8 utf8_general_ci mediumtext
|
||||
NULL mysql help_category help_category_id smallint NULL NULL NULL NULL smallint(5) unsigned
|
||||
3.0000 mysql help_category name char 64 192 utf8 utf8_general_ci char(64)
|
||||
NULL mysql help_category parent_category_id smallint NULL NULL NULL NULL smallint(5) unsigned
|
||||
1.0000 mysql help_category url text 65535 65535 utf8 utf8_general_ci text
|
||||
NULL mysql help_keyword help_keyword_id int NULL NULL NULL NULL int(10) unsigned
|
||||
3.0000 mysql help_keyword name char 64 192 utf8 utf8_general_ci char(64)
|
||||
NULL mysql help_relation help_topic_id int NULL NULL NULL NULL int(10) unsigned
|
||||
NULL mysql help_relation help_keyword_id int NULL NULL NULL NULL int(10) unsigned
|
||||
NULL mysql help_topic help_topic_id int NULL NULL NULL NULL int(10) unsigned
|
||||
3.0000 mysql help_topic name char 64 192 utf8 utf8_general_ci char(64)
|
||||
NULL mysql help_topic help_category_id smallint NULL NULL NULL NULL smallint(5) unsigned
|
||||
1.0000 mysql help_topic description text 65535 65535 utf8 utf8_general_ci text
|
||||
1.0000 mysql help_topic example text 65535 65535 utf8 utf8_general_ci text
|
||||
1.0000 mysql help_topic url text 65535 65535 utf8 utf8_general_ci text
|
||||
3.0000 mysql host Host char 60 180 utf8 utf8_bin char(60)
|
||||
3.0000 mysql host Db char 64 192 utf8 utf8_bin char(64)
|
||||
3.0000 mysql host Select_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql host Insert_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql host Update_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql host Delete_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql host Create_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql host Drop_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql host Grant_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql host References_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql host Index_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql host Alter_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql host Create_tmp_table_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql host Lock_tables_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql host Create_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql host Show_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql host Create_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql host Alter_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql host Execute_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql host Trigger_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
NULL mysql ndb_binlog_index Position bigint NULL NULL NULL NULL bigint(20) unsigned
|
||||
1.0000 mysql ndb_binlog_index File varchar 255 255 latin1 latin1_swedish_ci varchar(255)
|
||||
NULL mysql ndb_binlog_index epoch bigint NULL NULL NULL NULL bigint(20) unsigned
|
||||
NULL mysql ndb_binlog_index inserts bigint NULL NULL NULL NULL bigint(20) unsigned
|
||||
NULL mysql ndb_binlog_index updates bigint NULL NULL NULL NULL bigint(20) unsigned
|
||||
NULL mysql ndb_binlog_index deletes bigint NULL NULL NULL NULL bigint(20) unsigned
|
||||
NULL mysql ndb_binlog_index schemaops bigint NULL NULL NULL NULL bigint(20) unsigned
|
||||
3.0000 mysql plugin name char 64 192 utf8 utf8_bin char(64)
|
||||
3.0000 mysql plugin dl char 128 384 utf8 utf8_bin char(128)
|
||||
3.0000 mysql proc db char 64 192 utf8 utf8_bin char(64)
|
||||
3.0000 mysql proc name char 64 192 utf8 utf8_general_ci char(64)
|
||||
3.0000 mysql proc type enum 9 27 utf8 utf8_general_ci enum('FUNCTION','PROCEDURE')
|
||||
3.0000 mysql proc specific_name char 64 192 utf8 utf8_general_ci char(64)
|
||||
3.0000 mysql proc language enum 3 9 utf8 utf8_general_ci enum('SQL')
|
||||
3.0000 mysql proc sql_data_access enum 17 51 utf8 utf8_general_ci enum('CONTAINS_SQL','NO_SQL','READS_SQL_DATA','MODIFIES_SQL_DATA')
|
||||
3.0000 mysql proc is_deterministic enum 3 9 utf8 utf8_general_ci enum('YES','NO')
|
||||
3.0000 mysql proc security_type enum 7 21 utf8 utf8_general_ci enum('INVOKER','DEFINER')
|
||||
1.0000 mysql proc param_list blob 65535 65535 NULL NULL blob
|
||||
1.0000 mysql proc returns longblob 4294967295 4294967295 NULL NULL longblob
|
||||
1.0000 mysql proc body longblob 4294967295 4294967295 NULL NULL longblob
|
||||
3.0000 mysql proc definer char 77 231 utf8 utf8_bin char(77)
|
||||
NULL mysql proc created timestamp NULL NULL NULL NULL timestamp
|
||||
NULL mysql proc modified timestamp NULL NULL NULL NULL timestamp
|
||||
3.0000 mysql proc sql_mode set 478 1434 utf8 utf8_general_ci set('REAL_AS_FLOAT','PIPES_AS_CONCAT','ANSI_QUOTES','IGNORE_SPACE','NOT_USED','ONLY_FULL_GROUP_BY','NO_UNSIGNED_SUBTRACTION','NO_DIR_IN_CREATE','POSTGRESQL','ORACLE','MSSQL','DB2','MAXDB','NO_KEY_OPTIONS','NO_TABLE_OPTIONS','NO_FIELD_OPTIONS','MYSQL323','MYSQL40','ANSI','NO_AUTO_VALUE_ON_ZERO','NO_BACKSLASH_ESCAPES','STRICT_TRANS_TABLES','STRICT_ALL_TABLES','NO_ZERO_IN_DATE','NO_ZERO_DATE','INVALID_DATES','ERROR_FOR_DIVISION_BY_ZERO','TRADITIONAL','NO_AUTO_CREATE_USER','HIGH_NOT_PRECEDENCE','NO_ENGINE_SUBSTITUTION','PAD_CHAR_TO_FULL_LENGTH')
|
||||
3.0000 mysql proc comment char 64 192 utf8 utf8_bin char(64)
|
||||
3.0000 mysql proc character_set_client char 32 96 utf8 utf8_bin char(32)
|
||||
3.0000 mysql proc collation_connection char 32 96 utf8 utf8_bin char(32)
|
||||
3.0000 mysql proc db_collation char 32 96 utf8 utf8_bin char(32)
|
||||
1.0000 mysql proc body_utf8 longblob 4294967295 4294967295 NULL NULL longblob
|
||||
3.0000 mysql procs_priv Host char 60 180 utf8 utf8_bin char(60)
|
||||
3.0000 mysql procs_priv Db char 64 192 utf8 utf8_bin char(64)
|
||||
3.0000 mysql procs_priv User char 16 48 utf8 utf8_bin char(16)
|
||||
3.0000 mysql procs_priv Routine_name char 64 192 utf8 utf8_general_ci char(64)
|
||||
3.0000 mysql procs_priv Routine_type enum 9 27 utf8 utf8_bin enum('FUNCTION','PROCEDURE')
|
||||
3.0000 mysql procs_priv Grantor char 77 231 utf8 utf8_bin char(77)
|
||||
3.0000 mysql procs_priv Proc_priv set 27 81 utf8 utf8_general_ci set('Execute','Alter Routine','Grant')
|
||||
NULL mysql procs_priv Timestamp timestamp NULL NULL NULL NULL timestamp
|
||||
3.0000 mysql servers Server_name char 64 192 utf8 utf8_general_ci char(64)
|
||||
3.0000 mysql servers Host char 64 192 utf8 utf8_general_ci char(64)
|
||||
3.0000 mysql servers Db char 64 192 utf8 utf8_general_ci char(64)
|
||||
3.0000 mysql servers Username char 64 192 utf8 utf8_general_ci char(64)
|
||||
3.0000 mysql servers Password char 64 192 utf8 utf8_general_ci char(64)
|
||||
NULL mysql servers Port int NULL NULL NULL NULL int(4)
|
||||
3.0000 mysql servers Socket char 64 192 utf8 utf8_general_ci char(64)
|
||||
3.0000 mysql servers Wrapper char 64 192 utf8 utf8_general_ci char(64)
|
||||
3.0000 mysql servers Owner char 64 192 utf8 utf8_general_ci char(64)
|
||||
NULL mysql slow_log start_time timestamp NULL NULL NULL NULL timestamp
|
||||
1.0000 mysql slow_log user_host mediumtext 16777215 16777215 utf8 utf8_general_ci mediumtext
|
||||
NULL mysql slow_log query_time time NULL NULL NULL NULL time
|
||||
NULL mysql slow_log lock_time time NULL NULL NULL NULL time
|
||||
NULL mysql slow_log rows_sent int NULL NULL NULL NULL int(11)
|
||||
NULL mysql slow_log rows_examined int NULL NULL NULL NULL int(11)
|
||||
3.0000 mysql slow_log db varchar 512 1536 utf8 utf8_general_ci varchar(512)
|
||||
NULL mysql slow_log last_insert_id int NULL NULL NULL NULL int(11)
|
||||
NULL mysql slow_log insert_id int NULL NULL NULL NULL int(11)
|
||||
NULL mysql slow_log server_id int NULL NULL NULL NULL int(10) unsigned
|
||||
1.0000 mysql slow_log sql_text mediumtext 16777215 16777215 utf8 utf8_general_ci mediumtext
|
||||
3.0000 mysql tables_priv Host char 60 180 utf8 utf8_bin char(60)
|
||||
3.0000 mysql tables_priv Db char 64 192 utf8 utf8_bin char(64)
|
||||
3.0000 mysql tables_priv User char 16 48 utf8 utf8_bin char(16)
|
||||
3.0000 mysql tables_priv Table_name char 64 192 utf8 utf8_bin char(64)
|
||||
3.0000 mysql tables_priv Grantor char 77 231 utf8 utf8_bin char(77)
|
||||
NULL mysql tables_priv Timestamp timestamp NULL NULL NULL NULL timestamp
|
||||
3.0000 mysql tables_priv Table_priv set 98 294 utf8 utf8_general_ci set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter','Create View','Show view','Trigger')
|
||||
3.0000 mysql tables_priv Column_priv set 31 93 utf8 utf8_general_ci set('Select','Insert','Update','References')
|
||||
NULL mysql time_zone Time_zone_id int NULL NULL NULL NULL int(10) unsigned
|
||||
3.0000 mysql time_zone Use_leap_seconds enum 1 3 utf8 utf8_general_ci enum('Y','N')
|
||||
NULL mysql time_zone_leap_second Transition_time bigint NULL NULL NULL NULL bigint(20)
|
||||
NULL mysql time_zone_leap_second Correction int NULL NULL NULL NULL int(11)
|
||||
3.0000 mysql time_zone_name Name char 64 192 utf8 utf8_general_ci char(64)
|
||||
NULL mysql time_zone_name Time_zone_id int NULL NULL NULL NULL int(10) unsigned
|
||||
NULL mysql time_zone_transition Time_zone_id int NULL NULL NULL NULL int(10) unsigned
|
||||
NULL mysql time_zone_transition Transition_time bigint NULL NULL NULL NULL bigint(20)
|
||||
NULL mysql time_zone_transition Transition_type_id int NULL NULL NULL NULL int(10) unsigned
|
||||
NULL mysql time_zone_transition_type Time_zone_id int NULL NULL NULL NULL int(10) unsigned
|
||||
NULL mysql time_zone_transition_type Transition_type_id int NULL NULL NULL NULL int(10) unsigned
|
||||
NULL mysql time_zone_transition_type Offset int NULL NULL NULL NULL int(11)
|
||||
NULL mysql time_zone_transition_type Is_DST tinyint NULL NULL NULL NULL tinyint(3) unsigned
|
||||
3.0000 mysql time_zone_transition_type Abbreviation char 8 24 utf8 utf8_general_ci char(8)
|
||||
3.0000 mysql user Host char 60 180 utf8 utf8_bin char(60)
|
||||
3.0000 mysql user User char 16 48 utf8 utf8_bin char(16)
|
||||
1.0000 mysql user Password char 41 41 latin1 latin1_bin char(41)
|
||||
3.0000 mysql user Select_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Insert_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Update_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Delete_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Create_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Drop_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Reload_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Shutdown_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Process_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user File_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Grant_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user References_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Index_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Alter_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Show_db_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Super_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Create_tmp_table_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Lock_tables_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Execute_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Repl_slave_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Repl_client_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Create_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Show_view_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Create_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Alter_routine_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Create_user_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Event_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user Trigger_priv enum 1 3 utf8 utf8_general_ci enum('N','Y')
|
||||
3.0000 mysql user ssl_type enum 9 27 utf8 utf8_general_ci enum('','ANY','X509','SPECIFIED')
|
||||
1.0000 mysql user ssl_cipher blob 65535 65535 NULL NULL blob
|
||||
1.0000 mysql user x509_issuer blob 65535 65535 NULL NULL blob
|
||||
1.0000 mysql user x509_subject blob 65535 65535 NULL NULL blob
|
||||
NULL mysql user max_questions int NULL NULL NULL NULL int(11) unsigned
|
||||
NULL mysql user max_updates int NULL NULL NULL NULL int(11) unsigned
|
||||
NULL mysql user max_connections int NULL NULL NULL NULL int(11) unsigned
|
||||
NULL mysql user max_user_connections int NULL NULL NULL NULL int(11) unsigned
|
||||
228
build/lib/mysql/mysql-test/suite/funcs_1/r/is_columns_ndb.result
Normal file
228
build/lib/mysql/mysql-test/suite/funcs_1/r/is_columns_ndb.result
Normal file
@@ -0,0 +1,228 @@
|
||||
DROP DATABASE IF EXISTS test1;
|
||||
CREATE DATABASE test1;
|
||||
USE test;
|
||||
USE test;
|
||||
USE test;
|
||||
DROP TABLE IF EXISTS t1, t2, t4, t10, t11;
|
||||
CREATE TABLE t1 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int)
|
||||
ENGINE = ndb;
|
||||
CREATE TABLE t2 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int)
|
||||
ENGINE = ndb;
|
||||
CREATE TABLE t4 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int)
|
||||
ENGINE = ndb;
|
||||
CREATE TABLE t10 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int)
|
||||
ENGINE = ndb;
|
||||
CREATE TABLE t11 (f1 char(20),f2 char(25),f3 date,f4 int,f5 char(25),f6 int)
|
||||
ENGINE = ndb;
|
||||
LOAD DATA INFILE '<MYSQLTEST_VARDIR>/std_data/funcs_1/t4.txt' INTO TABLE t1;
|
||||
LOAD DATA INFILE '<MYSQLTEST_VARDIR>/std_data/funcs_1/t4.txt' INTO TABLE t2;
|
||||
LOAD DATA INFILE '<MYSQLTEST_VARDIR>/std_data/funcs_1/t4.txt' INTO TABLE t4;
|
||||
LOAD DATA INFILE '<MYSQLTEST_VARDIR>/std_data/funcs_1/t4.txt' INTO TABLE t10;
|
||||
LOAD DATA INFILE '<MYSQLTEST_VARDIR>/std_data/funcs_1/t4.txt' INTO TABLE t11;
|
||||
drop TABLE if exists t3;
|
||||
CREATE TABLE t3 (f1 char(20), f2 char(20), f3 integer) ENGINE = ndb;
|
||||
LOAD DATA INFILE '<MYSQLTEST_VARDIR>/std_data/funcs_1/t3.txt' INTO TABLE t3;
|
||||
drop database if exists test4;
|
||||
CREATE database test4;
|
||||
use test4;
|
||||
CREATE TABLE t6 (f1 char(20), f2 char(25), f3 date, f4 int, f5 char(25), f6 int)
|
||||
ENGINE = ndb;
|
||||
LOAD DATA INFILE '<MYSQLTEST_VARDIR>/std_data/funcs_1/t4.txt' INTO TABLE t6;
|
||||
use test;
|
||||
drop TABLE if exists t7, t8;
|
||||
CREATE TABLE t7 (f1 char(20),f2 char(25),f3 date,f4 int) ENGINE = ndb;
|
||||
CREATE TABLE t8 (f1 char(20),f2 char(25),f3 date,f4 int) ENGINE = ndb;
|
||||
LOAD DATA INFILE '<MYSQLTEST_VARDIR>/std_data/funcs_1/t7.txt' INTO TABLE t7;
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'f3' at row 1
|
||||
Warning 1265 Data truncated for column 'f3' at row 2
|
||||
Warning 1265 Data truncated for column 'f3' at row 3
|
||||
Warning 1265 Data truncated for column 'f3' at row 4
|
||||
Warning 1265 Data truncated for column 'f3' at row 5
|
||||
Warning 1265 Data truncated for column 'f3' at row 6
|
||||
Warning 1265 Data truncated for column 'f3' at row 7
|
||||
Warning 1265 Data truncated for column 'f3' at row 8
|
||||
Warning 1265 Data truncated for column 'f3' at row 9
|
||||
Warning 1265 Data truncated for column 'f3' at row 10
|
||||
LOAD DATA INFILE '<MYSQLTEST_VARDIR>/std_data/funcs_1/t7.txt' INTO TABLE t8;
|
||||
Warnings:
|
||||
Warning 1265 Data truncated for column 'f3' at row 1
|
||||
Warning 1265 Data truncated for column 'f3' at row 2
|
||||
Warning 1265 Data truncated for column 'f3' at row 3
|
||||
Warning 1265 Data truncated for column 'f3' at row 4
|
||||
Warning 1265 Data truncated for column 'f3' at row 5
|
||||
Warning 1265 Data truncated for column 'f3' at row 6
|
||||
Warning 1265 Data truncated for column 'f3' at row 7
|
||||
Warning 1265 Data truncated for column 'f3' at row 8
|
||||
Warning 1265 Data truncated for column 'f3' at row 9
|
||||
Warning 1265 Data truncated for column 'f3' at row 10
|
||||
drop TABLE if exists t9;
|
||||
CREATE TABLE t9 (f1 int, f2 char(25), f3 int) ENGINE = ndb;
|
||||
LOAD DATA INFILE '<MYSQLTEST_VARDIR>/std_data/funcs_1/t9.txt' INTO TABLE t9;
|
||||
SELECT * FROM information_schema.columns
|
||||
WHERE table_schema LIKE 'test%'
|
||||
ORDER BY table_schema, table_name, column_name;
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
|
||||
NULL test t1 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
|
||||
NULL test t1 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
|
||||
NULL test t1 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
|
||||
NULL test t1 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
|
||||
NULL test t1 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
|
||||
NULL test t1 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
|
||||
NULL test t10 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
|
||||
NULL test t10 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
|
||||
NULL test t10 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
|
||||
NULL test t10 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
|
||||
NULL test t10 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
|
||||
NULL test t10 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
|
||||
NULL test t11 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
|
||||
NULL test t11 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
|
||||
NULL test t11 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
|
||||
NULL test t11 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
|
||||
NULL test t11 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
|
||||
NULL test t11 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
|
||||
NULL test t2 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
|
||||
NULL test t2 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
|
||||
NULL test t2 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
|
||||
NULL test t2 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
|
||||
NULL test t2 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
|
||||
NULL test t2 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
|
||||
NULL test t3 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
|
||||
NULL test t3 f2 2 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
|
||||
NULL test t3 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
|
||||
NULL test t4 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
|
||||
NULL test t4 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
|
||||
NULL test t4 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
|
||||
NULL test t4 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
|
||||
NULL test t4 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
|
||||
NULL test t4 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
|
||||
NULL test t7 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
|
||||
NULL test t7 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
|
||||
NULL test t7 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
|
||||
NULL test t7 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
|
||||
NULL test t8 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
|
||||
NULL test t8 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
|
||||
NULL test t8 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
|
||||
NULL test t8 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
|
||||
NULL test t9 f1 1 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
|
||||
NULL test t9 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
|
||||
NULL test t9 f3 3 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
|
||||
NULL test4 t6 f1 1 NULL YES char 20 20 NULL NULL latin1 latin1_swedish_ci char(20) select,insert,update,references
|
||||
NULL test4 t6 f2 2 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
|
||||
NULL test4 t6 f3 3 NULL YES date NULL NULL NULL NULL NULL NULL date select,insert,update,references
|
||||
NULL test4 t6 f4 4 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
|
||||
NULL test4 t6 f5 5 NULL YES char 25 25 NULL NULL latin1 latin1_swedish_ci char(25) select,insert,update,references
|
||||
NULL test4 t6 f6 6 NULL YES int NULL NULL 10 0 NULL NULL int(11) select,insert,update,references
|
||||
##########################################################################
|
||||
# Show the quotient of CHARACTER_OCTET_LENGTH and CHARACTER_MAXIMUM_LENGTH
|
||||
##########################################################################
|
||||
SELECT DISTINCT
|
||||
CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
|
||||
DATA_TYPE,
|
||||
CHARACTER_SET_NAME,
|
||||
COLLATION_NAME
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema LIKE 'test%'
|
||||
AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH = 1
|
||||
ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML;
|
||||
COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME
|
||||
1.0000 char latin1 latin1_swedish_ci
|
||||
SELECT DISTINCT
|
||||
CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
|
||||
DATA_TYPE,
|
||||
CHARACTER_SET_NAME,
|
||||
COLLATION_NAME
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema LIKE 'test%'
|
||||
AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH <> 1
|
||||
ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML;
|
||||
COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME
|
||||
SELECT DISTINCT
|
||||
CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
|
||||
DATA_TYPE,
|
||||
CHARACTER_SET_NAME,
|
||||
COLLATION_NAME
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema LIKE 'test%'
|
||||
AND CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH IS NULL
|
||||
ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML;
|
||||
COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME
|
||||
NULL date NULL NULL
|
||||
NULL int NULL NULL
|
||||
--> CHAR(0) is allowed (see manual), and here both CHARACHTER_* values
|
||||
--> are 0, which is intended behavior, and the result of 0 / 0 IS NULL
|
||||
SELECT CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
|
||||
TABLE_SCHEMA,
|
||||
TABLE_NAME,
|
||||
COLUMN_NAME,
|
||||
DATA_TYPE,
|
||||
CHARACTER_MAXIMUM_LENGTH,
|
||||
CHARACTER_OCTET_LENGTH,
|
||||
CHARACTER_SET_NAME,
|
||||
COLLATION_NAME,
|
||||
COLUMN_TYPE
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema LIKE 'test%'
|
||||
ORDER BY TABLE_SCHEMA, TABLE_NAME, ORDINAL_POSITION;
|
||||
COL_CML TABLE_SCHEMA TABLE_NAME COLUMN_NAME DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE
|
||||
1.0000 test t1 f1 char 20 20 latin1 latin1_swedish_ci char(20)
|
||||
1.0000 test t1 f2 char 25 25 latin1 latin1_swedish_ci char(25)
|
||||
NULL test t1 f3 date NULL NULL NULL NULL date
|
||||
NULL test t1 f4 int NULL NULL NULL NULL int(11)
|
||||
1.0000 test t1 f5 char 25 25 latin1 latin1_swedish_ci char(25)
|
||||
NULL test t1 f6 int NULL NULL NULL NULL int(11)
|
||||
1.0000 test t10 f1 char 20 20 latin1 latin1_swedish_ci char(20)
|
||||
1.0000 test t10 f2 char 25 25 latin1 latin1_swedish_ci char(25)
|
||||
NULL test t10 f3 date NULL NULL NULL NULL date
|
||||
NULL test t10 f4 int NULL NULL NULL NULL int(11)
|
||||
1.0000 test t10 f5 char 25 25 latin1 latin1_swedish_ci char(25)
|
||||
NULL test t10 f6 int NULL NULL NULL NULL int(11)
|
||||
1.0000 test t11 f1 char 20 20 latin1 latin1_swedish_ci char(20)
|
||||
1.0000 test t11 f2 char 25 25 latin1 latin1_swedish_ci char(25)
|
||||
NULL test t11 f3 date NULL NULL NULL NULL date
|
||||
NULL test t11 f4 int NULL NULL NULL NULL int(11)
|
||||
1.0000 test t11 f5 char 25 25 latin1 latin1_swedish_ci char(25)
|
||||
NULL test t11 f6 int NULL NULL NULL NULL int(11)
|
||||
1.0000 test t2 f1 char 20 20 latin1 latin1_swedish_ci char(20)
|
||||
1.0000 test t2 f2 char 25 25 latin1 latin1_swedish_ci char(25)
|
||||
NULL test t2 f3 date NULL NULL NULL NULL date
|
||||
NULL test t2 f4 int NULL NULL NULL NULL int(11)
|
||||
1.0000 test t2 f5 char 25 25 latin1 latin1_swedish_ci char(25)
|
||||
NULL test t2 f6 int NULL NULL NULL NULL int(11)
|
||||
1.0000 test t3 f1 char 20 20 latin1 latin1_swedish_ci char(20)
|
||||
1.0000 test t3 f2 char 20 20 latin1 latin1_swedish_ci char(20)
|
||||
NULL test t3 f3 int NULL NULL NULL NULL int(11)
|
||||
1.0000 test t4 f1 char 20 20 latin1 latin1_swedish_ci char(20)
|
||||
1.0000 test t4 f2 char 25 25 latin1 latin1_swedish_ci char(25)
|
||||
NULL test t4 f3 date NULL NULL NULL NULL date
|
||||
NULL test t4 f4 int NULL NULL NULL NULL int(11)
|
||||
1.0000 test t4 f5 char 25 25 latin1 latin1_swedish_ci char(25)
|
||||
NULL test t4 f6 int NULL NULL NULL NULL int(11)
|
||||
1.0000 test t7 f1 char 20 20 latin1 latin1_swedish_ci char(20)
|
||||
1.0000 test t7 f2 char 25 25 latin1 latin1_swedish_ci char(25)
|
||||
NULL test t7 f3 date NULL NULL NULL NULL date
|
||||
NULL test t7 f4 int NULL NULL NULL NULL int(11)
|
||||
1.0000 test t8 f1 char 20 20 latin1 latin1_swedish_ci char(20)
|
||||
1.0000 test t8 f2 char 25 25 latin1 latin1_swedish_ci char(25)
|
||||
NULL test t8 f3 date NULL NULL NULL NULL date
|
||||
NULL test t8 f4 int NULL NULL NULL NULL int(11)
|
||||
NULL test t9 f1 int NULL NULL NULL NULL int(11)
|
||||
1.0000 test t9 f2 char 25 25 latin1 latin1_swedish_ci char(25)
|
||||
NULL test t9 f3 int NULL NULL NULL NULL int(11)
|
||||
1.0000 test4 t6 f1 char 20 20 latin1 latin1_swedish_ci char(20)
|
||||
1.0000 test4 t6 f2 char 25 25 latin1 latin1_swedish_ci char(25)
|
||||
NULL test4 t6 f3 date NULL NULL NULL NULL date
|
||||
NULL test4 t6 f4 int NULL NULL NULL NULL int(11)
|
||||
1.0000 test4 t6 f5 char 25 25 latin1 latin1_swedish_ci char(25)
|
||||
NULL test4 t6 f6 int NULL NULL NULL NULL int(11)
|
||||
DROP DATABASE test1;
|
||||
DROP DATABASE test4;
|
||||
DROP TABLE test.t1;
|
||||
DROP TABLE test.t2;
|
||||
DROP TABLE test.t3;
|
||||
DROP TABLE test.t4;
|
||||
DROP TABLE test.t7;
|
||||
DROP TABLE test.t8;
|
||||
DROP TABLE test.t9;
|
||||
DROP TABLE test.t10;
|
||||
DROP TABLE test.t11;
|
||||
84
build/lib/mysql/mysql-test/suite/funcs_1/r/is_engines.result
Normal file
84
build/lib/mysql/mysql-test/suite/funcs_1/r/is_engines.result
Normal file
@@ -0,0 +1,84 @@
|
||||
SHOW TABLES FROM information_schema LIKE 'ENGINES';
|
||||
Tables_in_information_schema (ENGINES)
|
||||
ENGINES
|
||||
#######################################################################
|
||||
# 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.ENGINES;
|
||||
CREATE PROCEDURE test.p1() SELECT * FROM information_schema.ENGINES;
|
||||
CREATE FUNCTION test.f1() returns BIGINT
|
||||
BEGIN
|
||||
DECLARE counter BIGINT DEFAULT NULL;
|
||||
SELECT COUNT(*) INTO counter FROM information_schema.ENGINES;
|
||||
RETURN counter;
|
||||
END//
|
||||
# Attention: The printing of the next result sets is disabled.
|
||||
SELECT * FROM information_schema.ENGINES;
|
||||
SELECT * FROM test.v1;
|
||||
CALL test.p1;
|
||||
SELECT test.f1();
|
||||
DROP VIEW test.v1;
|
||||
DROP PROCEDURE test.p1;
|
||||
DROP FUNCTION test.f1;
|
||||
#########################################################################
|
||||
# Testcase 3.2.12.1: INFORMATION_SCHEMA.ENGINES layout
|
||||
#########################################################################
|
||||
DESCRIBE information_schema.ENGINES;
|
||||
Field Type Null Key Default Extra
|
||||
ENGINE varchar(64) NO
|
||||
SUPPORT varchar(8) NO
|
||||
COMMENT varchar(80) NO
|
||||
TRANSACTIONS varchar(3) YES NULL
|
||||
XA varchar(3) YES NULL
|
||||
SAVEPOINTS varchar(3) YES NULL
|
||||
SHOW CREATE TABLE information_schema.ENGINES;
|
||||
Table Create Table
|
||||
ENGINES CREATE TEMPORARY TABLE `ENGINES` (
|
||||
`ENGINE` varchar(64) NOT NULL DEFAULT '',
|
||||
`SUPPORT` varchar(8) NOT NULL DEFAULT '',
|
||||
`COMMENT` varchar(80) NOT NULL DEFAULT '',
|
||||
`TRANSACTIONS` varchar(3) DEFAULT NULL,
|
||||
`XA` varchar(3) DEFAULT NULL,
|
||||
`SAVEPOINTS` varchar(3) DEFAULT NULL
|
||||
) ENGINE=MEMORY DEFAULT CHARSET=utf8
|
||||
SHOW COLUMNS FROM information_schema.ENGINES;
|
||||
Field Type Null Key Default Extra
|
||||
ENGINE varchar(64) NO
|
||||
SUPPORT varchar(8) NO
|
||||
COMMENT varchar(80) NO
|
||||
TRANSACTIONS varchar(3) YES NULL
|
||||
XA varchar(3) YES NULL
|
||||
SAVEPOINTS varchar(3) YES NULL
|
||||
########################################################################
|
||||
# Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and
|
||||
# DDL on INFORMATION_SCHEMA tables are not supported
|
||||
########################################################################
|
||||
DROP DATABASE IF EXISTS db_datadict;
|
||||
CREATE DATABASE db_datadict;
|
||||
CREATE TABLE db_datadict.t1 (f1 BIGINT)
|
||||
ENGINE = <engine_type>;
|
||||
INSERT INTO information_schema.engines
|
||||
SELECT * FROM information_schema.engines;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
UPDATE information_schema.engines SET engine = '1234567';
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
DELETE FROM information_schema.engines WHERE support IN ('DEFAULT','YES');
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
TRUNCATE information_schema.engines;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
CREATE INDEX my_idx_on_engines ON information_schema.engines(engine);
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
ALTER TABLE information_schema.engines DROP PRIMARY KEY;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
ALTER TABLE information_schema.engines ADD f1 INT;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
DROP TABLE information_schema.engines;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
ALTER TABLE information_schema.engines RENAME db_datadict.engines;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
ALTER TABLE information_schema.engines RENAME information_schema.xengines;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
DROP DATABASE db_datadict;
|
||||
@@ -0,0 +1,8 @@
|
||||
SELECT * FROM information_schema.engines
|
||||
WHERE ENGINE = 'ARCHIVE';
|
||||
ENGINE ARCHIVE
|
||||
SUPPORT YES
|
||||
COMMENT Archive storage engine
|
||||
TRANSACTIONS NO
|
||||
XA NO
|
||||
SAVEPOINTS NO
|
||||
@@ -0,0 +1,8 @@
|
||||
SELECT * FROM information_schema.engines
|
||||
WHERE ENGINE = 'BLACKHOLE';
|
||||
ENGINE BLACKHOLE
|
||||
SUPPORT YES
|
||||
COMMENT /dev/null storage engine (anything you write to it disappears)
|
||||
TRANSACTIONS NO
|
||||
XA NO
|
||||
SAVEPOINTS NO
|
||||
@@ -0,0 +1,8 @@
|
||||
SELECT * FROM information_schema.engines
|
||||
WHERE ENGINE = 'CSV';
|
||||
ENGINE CSV
|
||||
SUPPORT YES
|
||||
COMMENT CSV storage engine
|
||||
TRANSACTIONS NO
|
||||
XA NO
|
||||
SAVEPOINTS NO
|
||||
@@ -0,0 +1,8 @@
|
||||
SELECT * FROM information_schema.engines
|
||||
WHERE ENGINE = 'FEDERATED';
|
||||
ENGINE FEDERATED
|
||||
SUPPORT YES
|
||||
COMMENT Federated MySQL storage engine
|
||||
TRANSACTIONS NO
|
||||
XA NO
|
||||
SAVEPOINTS NO
|
||||
@@ -0,0 +1,8 @@
|
||||
SELECT * FROM information_schema.engines
|
||||
WHERE ENGINE = 'InnoDB';
|
||||
ENGINE InnoDB
|
||||
SUPPORT YES
|
||||
COMMENT Supports transactions, row-level locking, and foreign keys
|
||||
TRANSACTIONS YES
|
||||
XA YES
|
||||
SAVEPOINTS YES
|
||||
@@ -0,0 +1,8 @@
|
||||
SELECT * FROM information_schema.engines
|
||||
WHERE ENGINE = 'MEMORY';
|
||||
ENGINE MEMORY
|
||||
SUPPORT YES
|
||||
COMMENT Hash based, stored in memory, useful for temporary tables
|
||||
TRANSACTIONS NO
|
||||
XA NO
|
||||
SAVEPOINTS NO
|
||||
@@ -0,0 +1,8 @@
|
||||
SELECT * FROM information_schema.engines
|
||||
WHERE ENGINE = 'MRG_MYISAM';
|
||||
ENGINE MRG_MYISAM
|
||||
SUPPORT YES
|
||||
COMMENT Collection of identical MyISAM tables
|
||||
TRANSACTIONS NO
|
||||
XA NO
|
||||
SAVEPOINTS NO
|
||||
@@ -0,0 +1,8 @@
|
||||
SELECT * FROM information_schema.engines
|
||||
WHERE ENGINE = 'MyISAM';
|
||||
ENGINE MyISAM
|
||||
SUPPORT DEFAULT
|
||||
COMMENT Default engine as of MySQL 3.23 with great performance
|
||||
TRANSACTIONS NO
|
||||
XA NO
|
||||
SAVEPOINTS NO
|
||||
@@ -0,0 +1,8 @@
|
||||
SELECT * FROM information_schema.engines
|
||||
WHERE ENGINE = 'ndbcluster';
|
||||
ENGINE ndbcluster
|
||||
SUPPORT YES
|
||||
COMMENT Clustered, fault-tolerant tables
|
||||
TRANSACTIONS YES
|
||||
XA NO
|
||||
SAVEPOINTS NO
|
||||
148
build/lib/mysql/mysql-test/suite/funcs_1/r/is_events.result
Normal file
148
build/lib/mysql/mysql-test/suite/funcs_1/r/is_events.result
Normal file
@@ -0,0 +1,148 @@
|
||||
SHOW TABLES FROM information_schema LIKE 'EVENTS';
|
||||
Tables_in_information_schema (EVENTS)
|
||||
EVENTS
|
||||
#######################################################################
|
||||
# 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.EVENTS;
|
||||
CREATE PROCEDURE test.p1() SELECT * FROM information_schema.EVENTS;
|
||||
CREATE FUNCTION test.f1() returns BIGINT
|
||||
BEGIN
|
||||
DECLARE counter BIGINT DEFAULT NULL;
|
||||
SELECT COUNT(*) INTO counter FROM information_schema.EVENTS;
|
||||
RETURN counter;
|
||||
END//
|
||||
# Attention: The printing of the next result sets is disabled.
|
||||
SELECT * FROM information_schema.EVENTS;
|
||||
SELECT * FROM test.v1;
|
||||
CALL test.p1;
|
||||
SELECT test.f1();
|
||||
DROP VIEW test.v1;
|
||||
DROP PROCEDURE test.p1;
|
||||
DROP FUNCTION test.f1;
|
||||
#########################################################################
|
||||
# Testcase 3.2.12.1: INFORMATION_SCHEMA.EVENTS layout
|
||||
#########################################################################
|
||||
DESCRIBE information_schema.EVENTS;
|
||||
Field Type Null Key Default Extra
|
||||
EVENT_CATALOG varchar(64) YES NULL
|
||||
EVENT_SCHEMA varchar(64) NO
|
||||
EVENT_NAME varchar(64) NO
|
||||
DEFINER varchar(77) NO
|
||||
TIME_ZONE varchar(64) NO
|
||||
EVENT_BODY varchar(8) NO
|
||||
EVENT_DEFINITION longtext NO NULL
|
||||
EVENT_TYPE varchar(9) NO
|
||||
EXECUTE_AT datetime YES NULL
|
||||
INTERVAL_VALUE varchar(256) YES NULL
|
||||
INTERVAL_FIELD varchar(18) YES NULL
|
||||
SQL_MODE varchar(8192) NO
|
||||
STARTS datetime YES NULL
|
||||
ENDS datetime YES NULL
|
||||
STATUS varchar(18) NO
|
||||
ON_COMPLETION varchar(12) NO
|
||||
CREATED datetime NO 0000-00-00 00:00:00
|
||||
LAST_ALTERED datetime NO 0000-00-00 00:00:00
|
||||
LAST_EXECUTED datetime YES NULL
|
||||
EVENT_COMMENT varchar(64) NO
|
||||
ORIGINATOR bigint(10) NO 0
|
||||
CHARACTER_SET_CLIENT varchar(32) NO
|
||||
COLLATION_CONNECTION varchar(32) NO
|
||||
DATABASE_COLLATION varchar(32) NO
|
||||
SHOW CREATE TABLE information_schema.EVENTS;
|
||||
Table Create Table
|
||||
EVENTS CREATE TEMPORARY TABLE `EVENTS` (
|
||||
`EVENT_CATALOG` varchar(64) DEFAULT NULL,
|
||||
`EVENT_SCHEMA` varchar(64) NOT NULL DEFAULT '',
|
||||
`EVENT_NAME` varchar(64) NOT NULL DEFAULT '',
|
||||
`DEFINER` varchar(77) NOT NULL DEFAULT '',
|
||||
`TIME_ZONE` varchar(64) NOT NULL DEFAULT '',
|
||||
`EVENT_BODY` varchar(8) NOT NULL DEFAULT '',
|
||||
`EVENT_DEFINITION` longtext NOT NULL,
|
||||
`EVENT_TYPE` varchar(9) NOT NULL DEFAULT '',
|
||||
`EXECUTE_AT` datetime DEFAULT NULL,
|
||||
`INTERVAL_VALUE` varchar(256) DEFAULT NULL,
|
||||
`INTERVAL_FIELD` varchar(18) DEFAULT NULL,
|
||||
`SQL_MODE` varchar(8192) NOT NULL DEFAULT '',
|
||||
`STARTS` datetime DEFAULT NULL,
|
||||
`ENDS` datetime DEFAULT NULL,
|
||||
`STATUS` varchar(18) NOT NULL DEFAULT '',
|
||||
`ON_COMPLETION` varchar(12) NOT NULL DEFAULT '',
|
||||
`CREATED` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||
`LAST_ALTERED` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||
`LAST_EXECUTED` datetime DEFAULT NULL,
|
||||
`EVENT_COMMENT` varchar(64) NOT NULL DEFAULT '',
|
||||
`ORIGINATOR` bigint(10) NOT NULL DEFAULT '0',
|
||||
`CHARACTER_SET_CLIENT` varchar(32) NOT NULL DEFAULT '',
|
||||
`COLLATION_CONNECTION` varchar(32) NOT NULL DEFAULT '',
|
||||
`DATABASE_COLLATION` varchar(32) NOT NULL DEFAULT ''
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8
|
||||
SHOW COLUMNS FROM information_schema.EVENTS;
|
||||
Field Type Null Key Default Extra
|
||||
EVENT_CATALOG varchar(64) YES NULL
|
||||
EVENT_SCHEMA varchar(64) NO
|
||||
EVENT_NAME varchar(64) NO
|
||||
DEFINER varchar(77) NO
|
||||
TIME_ZONE varchar(64) NO
|
||||
EVENT_BODY varchar(8) NO
|
||||
EVENT_DEFINITION longtext NO NULL
|
||||
EVENT_TYPE varchar(9) NO
|
||||
EXECUTE_AT datetime YES NULL
|
||||
INTERVAL_VALUE varchar(256) YES NULL
|
||||
INTERVAL_FIELD varchar(18) YES NULL
|
||||
SQL_MODE varchar(8192) NO
|
||||
STARTS datetime YES NULL
|
||||
ENDS datetime YES NULL
|
||||
STATUS varchar(18) NO
|
||||
ON_COMPLETION varchar(12) NO
|
||||
CREATED datetime NO 0000-00-00 00:00:00
|
||||
LAST_ALTERED datetime NO 0000-00-00 00:00:00
|
||||
LAST_EXECUTED datetime YES NULL
|
||||
EVENT_COMMENT varchar(64) NO
|
||||
ORIGINATOR bigint(10) NO 0
|
||||
CHARACTER_SET_CLIENT varchar(32) NO
|
||||
COLLATION_CONNECTION varchar(32) NO
|
||||
DATABASE_COLLATION varchar(32) NO
|
||||
SELECT event_catalog, event_name, event_body, event_type, event_type,
|
||||
status, on_completion
|
||||
FROM information_schema.events
|
||||
WHERE event_catalog IS NOT NULL or
|
||||
event_body NOT IN ('SQL') or
|
||||
event_type NOT IN ('ONE TIME','RECURRING') or
|
||||
status NOT IN ('ENABLED','DISABLED','SLAVESIDE_DISABLED') or
|
||||
on_completion NOT IN ('PRESERVE','NOT PRESERVE');
|
||||
event_catalog event_name event_body event_type event_type status on_completion
|
||||
########################################################################
|
||||
# Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and
|
||||
# DDL on INFORMATION_SCHEMA tables are not supported
|
||||
########################################################################
|
||||
DROP DATABASE IF EXISTS db_datadict;
|
||||
CREATE DATABASE db_datadict;
|
||||
CREATE TABLE db_datadict.t1 (f1 BIGINT)
|
||||
ENGINE = <engine_type>;
|
||||
INSERT INTO information_schema.events
|
||||
SELECT * FROM information_schema.events;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
UPDATE information_schema.events SET event_name = '1234567'
|
||||
WHERE table_name = 't1';
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
DELETE FROM information_schema.events WHERE event_catalog IS NULL;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
TRUNCATE information_schema.events;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
CREATE INDEX my_idx_on_events ON information_schema.events(event_name);
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
ALTER TABLE information_schema.events DROP PRIMARY KEY;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
ALTER TABLE information_schema.events ADD f1 INT;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
DROP TABLE information_schema.events;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
ALTER TABLE information_schema.events RENAME db_datadict.events;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
ALTER TABLE information_schema.events RENAME information_schema.xevents;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
DROP DATABASE db_datadict;
|
||||
@@ -0,0 +1,370 @@
|
||||
SHOW TABLES FROM information_schema LIKE 'KEY_COLUMN_USAGE';
|
||||
Tables_in_information_schema (KEY_COLUMN_USAGE)
|
||||
KEY_COLUMN_USAGE
|
||||
#######################################################################
|
||||
# Testcase 3.2.1.1: INFORMATION_SCHEMA tables can be queried via SELECT
|
||||
#######################################################################
|
||||
DROP VIEW IF EXISTS test.v1;
|
||||
DROP PROCEDURE IF EXISTS test.p1;
|
||||
DROP FUNCTION IF EXISTS test.f1;
|
||||
CREATE VIEW test.v1 AS SELECT * FROM information_schema.KEY_COLUMN_USAGE;
|
||||
CREATE PROCEDURE test.p1() SELECT * FROM information_schema.KEY_COLUMN_USAGE;
|
||||
CREATE FUNCTION test.f1() returns BIGINT
|
||||
BEGIN
|
||||
DECLARE counter BIGINT DEFAULT NULL;
|
||||
SELECT COUNT(*) INTO counter FROM information_schema.KEY_COLUMN_USAGE;
|
||||
RETURN counter;
|
||||
END//
|
||||
# Attention: The printing of the next result sets is disabled.
|
||||
SELECT * FROM information_schema.KEY_COLUMN_USAGE;
|
||||
SELECT * FROM test.v1;
|
||||
CALL test.p1;
|
||||
SELECT test.f1();
|
||||
DROP VIEW test.v1;
|
||||
DROP PROCEDURE test.p1;
|
||||
DROP FUNCTION test.f1;
|
||||
#########################################################################
|
||||
# Testcase 3.2.7.1: INFORMATION_SCHEMA.KEY_COLUMN_USAGE layout
|
||||
#########################################################################
|
||||
DESCRIBE information_schema.KEY_COLUMN_USAGE;
|
||||
Field Type Null Key Default Extra
|
||||
CONSTRAINT_CATALOG varchar(512) YES NULL
|
||||
CONSTRAINT_SCHEMA varchar(64) NO
|
||||
CONSTRAINT_NAME varchar(64) NO
|
||||
TABLE_CATALOG varchar(512) YES NULL
|
||||
TABLE_SCHEMA varchar(64) NO
|
||||
TABLE_NAME varchar(64) NO
|
||||
COLUMN_NAME varchar(64) NO
|
||||
ORDINAL_POSITION bigint(10) NO 0
|
||||
POSITION_IN_UNIQUE_CONSTRAINT bigint(10) YES NULL
|
||||
REFERENCED_TABLE_SCHEMA varchar(64) YES NULL
|
||||
REFERENCED_TABLE_NAME varchar(64) YES NULL
|
||||
REFERENCED_COLUMN_NAME varchar(64) YES NULL
|
||||
SHOW CREATE TABLE information_schema.KEY_COLUMN_USAGE;
|
||||
Table Create Table
|
||||
KEY_COLUMN_USAGE CREATE TEMPORARY TABLE `KEY_COLUMN_USAGE` (
|
||||
`CONSTRAINT_CATALOG` varchar(512) DEFAULT NULL,
|
||||
`CONSTRAINT_SCHEMA` varchar(64) NOT NULL DEFAULT '',
|
||||
`CONSTRAINT_NAME` varchar(64) NOT NULL DEFAULT '',
|
||||
`TABLE_CATALOG` varchar(512) DEFAULT NULL,
|
||||
`TABLE_SCHEMA` varchar(64) NOT NULL DEFAULT '',
|
||||
`TABLE_NAME` varchar(64) NOT NULL DEFAULT '',
|
||||
`COLUMN_NAME` varchar(64) NOT NULL DEFAULT '',
|
||||
`ORDINAL_POSITION` bigint(10) NOT NULL DEFAULT '0',
|
||||
`POSITION_IN_UNIQUE_CONSTRAINT` bigint(10) DEFAULT NULL,
|
||||
`REFERENCED_TABLE_SCHEMA` varchar(64) DEFAULT NULL,
|
||||
`REFERENCED_TABLE_NAME` varchar(64) DEFAULT NULL,
|
||||
`REFERENCED_COLUMN_NAME` varchar(64) DEFAULT NULL
|
||||
) ENGINE=MEMORY DEFAULT CHARSET=utf8
|
||||
SHOW COLUMNS FROM information_schema.KEY_COLUMN_USAGE;
|
||||
Field Type Null Key Default Extra
|
||||
CONSTRAINT_CATALOG varchar(512) YES NULL
|
||||
CONSTRAINT_SCHEMA varchar(64) NO
|
||||
CONSTRAINT_NAME varchar(64) NO
|
||||
TABLE_CATALOG varchar(512) YES NULL
|
||||
TABLE_SCHEMA varchar(64) NO
|
||||
TABLE_NAME varchar(64) NO
|
||||
COLUMN_NAME varchar(64) NO
|
||||
ORDINAL_POSITION bigint(10) NO 0
|
||||
POSITION_IN_UNIQUE_CONSTRAINT bigint(10) YES NULL
|
||||
REFERENCED_TABLE_SCHEMA varchar(64) YES NULL
|
||||
REFERENCED_TABLE_NAME varchar(64) YES NULL
|
||||
REFERENCED_COLUMN_NAME varchar(64) YES NULL
|
||||
SELECT constraint_catalog, constraint_schema, constraint_name, table_catalog,
|
||||
table_schema, table_name, column_name
|
||||
FROM information_schema.key_column_usage
|
||||
WHERE constraint_catalog IS NOT NULL OR table_catalog IS NOT NULL;
|
||||
constraint_catalog constraint_schema constraint_name table_catalog table_schema table_name column_name
|
||||
########################################################################################
|
||||
# Testcase 3.2.7.2 + 3.2.7.3: INFORMATION_SCHEMA.KEY_COLUMN_USAGE accessible information
|
||||
########################################################################################
|
||||
DROP DATABASE IF EXISTS db_datadict;
|
||||
CREATE DATABASE db_datadict;
|
||||
DROP USER 'testuser1'@'localhost';
|
||||
CREATE USER 'testuser1'@'localhost';
|
||||
DROP USER 'testuser2'@'localhost';
|
||||
CREATE USER 'testuser2'@'localhost';
|
||||
USE db_datadict;
|
||||
CREATE TABLE t1_1
|
||||
(f1 INT NOT NULL, PRIMARY KEY(f1),
|
||||
f2 INT, INDEX f2_ind(f2))
|
||||
ENGINE = <engine_type>;
|
||||
GRANT SELECT ON t1_1 to 'testuser1'@'localhost';
|
||||
CREATE TABLE t1_2
|
||||
(f1 INT NOT NULL, PRIMARY KEY(f1),
|
||||
f2 INT, INDEX f2_ind(f2))
|
||||
ENGINE = <engine_type>;
|
||||
GRANT SELECT ON t1_2 to 'testuser2'@'localhost';
|
||||
SELECT * FROM information_schema.key_column_usage
|
||||
WHERE table_name LIKE 't1_%'
|
||||
ORDER BY constraint_catalog, constraint_schema, constraint_name,
|
||||
table_catalog, table_schema, table_name, ordinal_position;
|
||||
CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
|
||||
NULL db_datadict PRIMARY NULL db_datadict t1_1 f1 1 NULL NULL NULL NULL
|
||||
NULL db_datadict PRIMARY NULL db_datadict t1_2 f1 1 NULL NULL NULL NULL
|
||||
# Establish connection testuser1 (user=testuser1)
|
||||
SELECT * FROM information_schema.key_column_usage
|
||||
WHERE table_name LIKE 't1_%'
|
||||
ORDER BY constraint_catalog, constraint_schema, constraint_name,
|
||||
table_catalog, table_schema, table_name, ordinal_position;
|
||||
CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
|
||||
NULL db_datadict PRIMARY NULL db_datadict t1_1 f1 1 NULL NULL NULL NULL
|
||||
# Establish connection testuser2 (user=testuser2)
|
||||
SELECT * FROM information_schema.key_column_usage
|
||||
WHERE table_name LIKE 't1_%'
|
||||
ORDER BY constraint_catalog, constraint_schema, constraint_name,
|
||||
table_catalog, table_schema, table_name, ordinal_position;
|
||||
CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
|
||||
NULL db_datadict PRIMARY NULL db_datadict t1_2 f1 1 NULL NULL NULL NULL
|
||||
# Switch to connection default and close connections testuser1, testuser2
|
||||
DROP USER 'testuser1'@'localhost';
|
||||
DROP USER 'testuser2'@'localhost';
|
||||
DROP TABLE t1_1;
|
||||
DROP TABLE t1_2;
|
||||
DROP DATABASE IF EXISTS db_datadict;
|
||||
########################################################################################
|
||||
# Testcase 3.2.1.13+3.2.1.14+3.2.1.15: INFORMATION_SCHEMA.KEY_COLUMN_USAGE modifications
|
||||
########################################################################################
|
||||
DROP DATABASE IF EXISTS db_datadict;
|
||||
DROP TABLE IF EXISTS test.t1_my_table;
|
||||
CREATE DATABASE db_datadict;
|
||||
SELECT table_name FROM information_schema.key_column_usage
|
||||
WHERE table_name LIKE 't1_my_table%';
|
||||
table_name
|
||||
CREATE TABLE test.t1_my_table
|
||||
(f1 CHAR(12), f2 TIMESTAMP, f4 BIGINT, PRIMARY KEY(f1,f2))
|
||||
DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci
|
||||
ENGINE = <engine_type>;
|
||||
SELECT * FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_table';
|
||||
CONSTRAINT_CATALOG NULL
|
||||
CONSTRAINT_SCHEMA test
|
||||
CONSTRAINT_NAME PRIMARY
|
||||
TABLE_CATALOG NULL
|
||||
TABLE_SCHEMA test
|
||||
TABLE_NAME t1_my_table
|
||||
COLUMN_NAME f1
|
||||
ORDINAL_POSITION 1
|
||||
POSITION_IN_UNIQUE_CONSTRAINT NULL
|
||||
REFERENCED_TABLE_SCHEMA NULL
|
||||
REFERENCED_TABLE_NAME NULL
|
||||
REFERENCED_COLUMN_NAME NULL
|
||||
CONSTRAINT_CATALOG NULL
|
||||
CONSTRAINT_SCHEMA test
|
||||
CONSTRAINT_NAME PRIMARY
|
||||
TABLE_CATALOG NULL
|
||||
TABLE_SCHEMA test
|
||||
TABLE_NAME t1_my_table
|
||||
COLUMN_NAME f2
|
||||
ORDINAL_POSITION 2
|
||||
POSITION_IN_UNIQUE_CONSTRAINT NULL
|
||||
REFERENCED_TABLE_SCHEMA NULL
|
||||
REFERENCED_TABLE_NAME NULL
|
||||
REFERENCED_COLUMN_NAME NULL
|
||||
SELECT DISTINCT table_name FROM information_schema.key_column_usage
|
||||
WHERE table_name LIKE 't1_my_table%';
|
||||
table_name
|
||||
t1_my_table
|
||||
RENAME TABLE test.t1_my_table TO test.t1_my_tablex;
|
||||
SELECT DISTINCT table_name FROM information_schema.key_column_usage
|
||||
WHERE table_name LIKE 't1_my_table%';
|
||||
table_name
|
||||
t1_my_tablex
|
||||
SELECT DISTINCT table_schema,table_name FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
table_schema table_name
|
||||
test t1_my_tablex
|
||||
RENAME TABLE test.t1_my_tablex TO db_datadict.t1_my_tablex;
|
||||
SELECT DISTINCT table_schema,table_name FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
table_schema table_name
|
||||
db_datadict t1_my_tablex
|
||||
SELECT DISTINCT table_name, column_name FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex'
|
||||
ORDER BY table_name, column_name;
|
||||
table_name column_name
|
||||
t1_my_tablex f1
|
||||
t1_my_tablex f2
|
||||
ALTER TABLE db_datadict.t1_my_tablex CHANGE COLUMN f1 first_col CHAR(12);
|
||||
SELECT DISTINCT table_name, column_name FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex'
|
||||
ORDER BY table_name, column_name;
|
||||
table_name column_name
|
||||
t1_my_tablex f2
|
||||
t1_my_tablex first_col
|
||||
SELECT constraint_schema, constraint_name, table_schema,
|
||||
table_name, column_name, ordinal_position
|
||||
FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex'
|
||||
ORDER BY constraint_schema, constraint_name, table_schema,
|
||||
table_name, ordinal_position;
|
||||
constraint_schema constraint_name table_schema table_name column_name ordinal_position
|
||||
db_datadict PRIMARY db_datadict t1_my_tablex first_col 1
|
||||
db_datadict PRIMARY db_datadict t1_my_tablex f2 2
|
||||
CREATE INDEX f2 ON db_datadict.t1_my_tablex(f2);
|
||||
SELECT constraint_schema, constraint_name, table_schema,
|
||||
table_name, column_name, ordinal_position
|
||||
FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex'
|
||||
ORDER BY constraint_schema, constraint_name, table_schema,
|
||||
table_name, ordinal_position;
|
||||
constraint_schema constraint_name table_schema table_name column_name ordinal_position
|
||||
db_datadict PRIMARY db_datadict t1_my_tablex first_col 1
|
||||
db_datadict PRIMARY db_datadict t1_my_tablex f2 2
|
||||
DROP INDEX f2 ON db_datadict.t1_my_tablex;
|
||||
SELECT constraint_schema, constraint_name, table_schema,
|
||||
table_name, column_name, ordinal_position
|
||||
FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex'
|
||||
ORDER BY constraint_schema, constraint_name, table_schema,
|
||||
table_name, ordinal_position;
|
||||
constraint_schema constraint_name table_schema table_name column_name ordinal_position
|
||||
db_datadict PRIMARY db_datadict t1_my_tablex first_col 1
|
||||
db_datadict PRIMARY db_datadict t1_my_tablex f2 2
|
||||
ALTER TABLE db_datadict.t1_my_tablex ADD UNIQUE (f2);
|
||||
SELECT constraint_schema, constraint_name, table_schema,
|
||||
table_name, column_name, ordinal_position
|
||||
FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex'
|
||||
ORDER BY constraint_schema, constraint_name, table_schema,
|
||||
table_name, ordinal_position;
|
||||
constraint_schema constraint_name table_schema table_name column_name ordinal_position
|
||||
db_datadict f2 db_datadict t1_my_tablex f2 1
|
||||
db_datadict PRIMARY db_datadict t1_my_tablex first_col 1
|
||||
db_datadict PRIMARY db_datadict t1_my_tablex f2 2
|
||||
DROP INDEX f2 ON db_datadict.t1_my_tablex;
|
||||
SELECT constraint_schema, constraint_name, table_schema,
|
||||
table_name, column_name, ordinal_position
|
||||
FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex'
|
||||
ORDER BY constraint_schema, constraint_name, table_schema,
|
||||
table_name, ordinal_position;
|
||||
constraint_schema constraint_name table_schema table_name column_name ordinal_position
|
||||
db_datadict PRIMARY db_datadict t1_my_tablex first_col 1
|
||||
db_datadict PRIMARY db_datadict t1_my_tablex f2 2
|
||||
ALTER TABLE db_datadict.t1_my_tablex ADD UNIQUE my_idx (f2);
|
||||
SELECT constraint_schema, constraint_name, table_schema,
|
||||
table_name, column_name, ordinal_position
|
||||
FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex'
|
||||
ORDER BY constraint_schema, constraint_name, table_schema,
|
||||
table_name, ordinal_position;
|
||||
constraint_schema constraint_name table_schema table_name column_name ordinal_position
|
||||
db_datadict my_idx db_datadict t1_my_tablex f2 1
|
||||
db_datadict PRIMARY db_datadict t1_my_tablex first_col 1
|
||||
db_datadict PRIMARY db_datadict t1_my_tablex f2 2
|
||||
DROP INDEX my_idx ON db_datadict.t1_my_tablex;
|
||||
SELECT constraint_schema, constraint_name, table_schema,
|
||||
table_name, column_name, ordinal_position
|
||||
FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex'
|
||||
ORDER BY constraint_schema, constraint_name, table_schema,
|
||||
table_name, ordinal_position;
|
||||
constraint_schema constraint_name table_schema table_name column_name ordinal_position
|
||||
db_datadict PRIMARY db_datadict t1_my_tablex first_col 1
|
||||
db_datadict PRIMARY db_datadict t1_my_tablex f2 2
|
||||
ALTER TABLE db_datadict.t1_my_tablex ADD UNIQUE my_idx (f4,first_col);
|
||||
SELECT constraint_schema, constraint_name, table_schema,
|
||||
table_name, column_name, ordinal_position
|
||||
FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex'
|
||||
ORDER BY constraint_schema, constraint_name, table_schema,
|
||||
table_name, ordinal_position;
|
||||
constraint_schema constraint_name table_schema table_name column_name ordinal_position
|
||||
db_datadict my_idx db_datadict t1_my_tablex f4 1
|
||||
db_datadict my_idx db_datadict t1_my_tablex first_col 2
|
||||
db_datadict PRIMARY db_datadict t1_my_tablex first_col 1
|
||||
db_datadict PRIMARY db_datadict t1_my_tablex f2 2
|
||||
SELECT constraint_schema, constraint_name, table_schema,
|
||||
table_name, column_name, ordinal_position
|
||||
FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex'
|
||||
ORDER BY constraint_schema, constraint_name, table_schema,
|
||||
table_name, ordinal_position;
|
||||
constraint_schema constraint_name table_schema table_name column_name ordinal_position
|
||||
db_datadict my_idx db_datadict t1_my_tablex f4 1
|
||||
db_datadict my_idx db_datadict t1_my_tablex first_col 2
|
||||
db_datadict PRIMARY db_datadict t1_my_tablex first_col 1
|
||||
db_datadict PRIMARY db_datadict t1_my_tablex f2 2
|
||||
ALTER TABLE db_datadict.t1_my_tablex
|
||||
DROP COLUMN first_col;
|
||||
SELECT constraint_schema, constraint_name, table_schema,
|
||||
table_name, column_name, ordinal_position
|
||||
FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex'
|
||||
ORDER BY constraint_schema, constraint_name, table_schema,
|
||||
table_name, ordinal_position;
|
||||
constraint_schema constraint_name table_schema table_name column_name ordinal_position
|
||||
db_datadict my_idx db_datadict t1_my_tablex f4 1
|
||||
db_datadict PRIMARY db_datadict t1_my_tablex f2 1
|
||||
SELECT table_name, column_name
|
||||
FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex'
|
||||
ORDER BY table_name, column_name;
|
||||
table_name column_name
|
||||
t1_my_tablex f2
|
||||
t1_my_tablex f4
|
||||
DROP TABLE db_datadict.t1_my_tablex;
|
||||
SELECT table_name, column_name
|
||||
FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
table_name column_name
|
||||
SELECT table_name FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
table_name
|
||||
CREATE TABLE db_datadict.t1_my_tablex
|
||||
ENGINE = <engine_type> AS
|
||||
SELECT 1 AS f1;
|
||||
SELECT table_name FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
table_name
|
||||
ALTER TABLE db_datadict.t1_my_tablex ADD PRIMARY KEY(f1);
|
||||
SELECT table_name FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
table_name
|
||||
t1_my_tablex
|
||||
SELECT table_name FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
table_name
|
||||
t1_my_tablex
|
||||
DROP DATABASE db_datadict;
|
||||
SELECT table_name FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
table_name
|
||||
########################################################################
|
||||
# Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and
|
||||
# DDL on INFORMATION_SCHEMA table are not supported
|
||||
########################################################################
|
||||
DROP DATABASE IF EXISTS db_datadict;
|
||||
DROP TABLE IF EXISTS db_datadict.t1;
|
||||
CREATE DATABASE db_datadict;
|
||||
CREATE TABLE db_datadict.t1 (f1 BIGINT)
|
||||
ENGINE = <engine_type>;
|
||||
INSERT INTO information_schema.key_column_usage
|
||||
(constraint_schema, constraint_name, table_name)
|
||||
VALUES ( 'mysql', 'primary', 'db');
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
INSERT INTO information_schema.key_column_usage
|
||||
SELECT * FROM information_schema.key_column_usage;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
UPDATE information_schema.key_column_usage
|
||||
SET table_name = 'db1' WHERE constraint_name = 'primary';
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
DELETE FROM information_schema.key_column_usage WHERE table_name = 't1';
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
TRUNCATE information_schema.key_column_usage;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
CREATE INDEX i3 ON information_schema.key_column_usage(table_name);
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
ALTER TABLE information_schema.key_column_usage ADD f1 INT;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
DROP TABLE information_schema.key_column_usage;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
ALTER TABLE information_schema.key_column_usage
|
||||
RENAME db_datadict.key_column_usage;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
ALTER TABLE information_schema.key_column_usage
|
||||
RENAME information_schema.xkey_column_usage;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
DROP TABLE db_datadict.t1;
|
||||
DROP DATABASE db_datadict;
|
||||
@@ -0,0 +1,372 @@
|
||||
SHOW TABLES FROM information_schema LIKE 'KEY_COLUMN_USAGE';
|
||||
Tables_in_information_schema (KEY_COLUMN_USAGE)
|
||||
KEY_COLUMN_USAGE
|
||||
#######################################################################
|
||||
# Testcase 3.2.1.1: INFORMATION_SCHEMA tables can be queried via SELECT
|
||||
#######################################################################
|
||||
DROP VIEW IF EXISTS test.v1;
|
||||
DROP PROCEDURE IF EXISTS test.p1;
|
||||
DROP FUNCTION IF EXISTS test.f1;
|
||||
CREATE VIEW test.v1 AS SELECT * FROM information_schema.KEY_COLUMN_USAGE;
|
||||
CREATE PROCEDURE test.p1() SELECT * FROM information_schema.KEY_COLUMN_USAGE;
|
||||
CREATE FUNCTION test.f1() returns BIGINT
|
||||
BEGIN
|
||||
DECLARE counter BIGINT DEFAULT NULL;
|
||||
SELECT COUNT(*) INTO counter FROM information_schema.KEY_COLUMN_USAGE;
|
||||
RETURN counter;
|
||||
END//
|
||||
# Attention: The printing of the next result sets is disabled.
|
||||
SELECT * FROM information_schema.KEY_COLUMN_USAGE;
|
||||
SELECT * FROM test.v1;
|
||||
CALL test.p1;
|
||||
SELECT test.f1();
|
||||
DROP VIEW test.v1;
|
||||
DROP PROCEDURE test.p1;
|
||||
DROP FUNCTION test.f1;
|
||||
#########################################################################
|
||||
# Testcase 3.2.7.1: INFORMATION_SCHEMA.KEY_COLUMN_USAGE layout
|
||||
#########################################################################
|
||||
DESCRIBE information_schema.KEY_COLUMN_USAGE;
|
||||
Field Type Null Key Default Extra
|
||||
CONSTRAINT_CATALOG varchar(512) YES NULL
|
||||
CONSTRAINT_SCHEMA varchar(64) NO
|
||||
CONSTRAINT_NAME varchar(64) NO
|
||||
TABLE_CATALOG varchar(512) YES NULL
|
||||
TABLE_SCHEMA varchar(64) NO
|
||||
TABLE_NAME varchar(64) NO
|
||||
COLUMN_NAME varchar(64) NO
|
||||
ORDINAL_POSITION bigint(10) NO 0
|
||||
POSITION_IN_UNIQUE_CONSTRAINT bigint(10) YES NULL
|
||||
REFERENCED_TABLE_SCHEMA varchar(64) YES NULL
|
||||
REFERENCED_TABLE_NAME varchar(64) YES NULL
|
||||
REFERENCED_COLUMN_NAME varchar(64) YES NULL
|
||||
SHOW CREATE TABLE information_schema.KEY_COLUMN_USAGE;
|
||||
Table Create Table
|
||||
KEY_COLUMN_USAGE CREATE TEMPORARY TABLE `KEY_COLUMN_USAGE` (
|
||||
`CONSTRAINT_CATALOG` varchar(512) DEFAULT NULL,
|
||||
`CONSTRAINT_SCHEMA` varchar(64) NOT NULL DEFAULT '',
|
||||
`CONSTRAINT_NAME` varchar(64) NOT NULL DEFAULT '',
|
||||
`TABLE_CATALOG` varchar(512) DEFAULT NULL,
|
||||
`TABLE_SCHEMA` varchar(64) NOT NULL DEFAULT '',
|
||||
`TABLE_NAME` varchar(64) NOT NULL DEFAULT '',
|
||||
`COLUMN_NAME` varchar(64) NOT NULL DEFAULT '',
|
||||
`ORDINAL_POSITION` bigint(10) NOT NULL DEFAULT '0',
|
||||
`POSITION_IN_UNIQUE_CONSTRAINT` bigint(10) DEFAULT NULL,
|
||||
`REFERENCED_TABLE_SCHEMA` varchar(64) DEFAULT NULL,
|
||||
`REFERENCED_TABLE_NAME` varchar(64) DEFAULT NULL,
|
||||
`REFERENCED_COLUMN_NAME` varchar(64) DEFAULT NULL
|
||||
) ENGINE=MEMORY DEFAULT CHARSET=utf8
|
||||
SHOW COLUMNS FROM information_schema.KEY_COLUMN_USAGE;
|
||||
Field Type Null Key Default Extra
|
||||
CONSTRAINT_CATALOG varchar(512) YES NULL
|
||||
CONSTRAINT_SCHEMA varchar(64) NO
|
||||
CONSTRAINT_NAME varchar(64) NO
|
||||
TABLE_CATALOG varchar(512) YES NULL
|
||||
TABLE_SCHEMA varchar(64) NO
|
||||
TABLE_NAME varchar(64) NO
|
||||
COLUMN_NAME varchar(64) NO
|
||||
ORDINAL_POSITION bigint(10) NO 0
|
||||
POSITION_IN_UNIQUE_CONSTRAINT bigint(10) YES NULL
|
||||
REFERENCED_TABLE_SCHEMA varchar(64) YES NULL
|
||||
REFERENCED_TABLE_NAME varchar(64) YES NULL
|
||||
REFERENCED_COLUMN_NAME varchar(64) YES NULL
|
||||
SELECT constraint_catalog, constraint_schema, constraint_name, table_catalog,
|
||||
table_schema, table_name, column_name
|
||||
FROM information_schema.key_column_usage
|
||||
WHERE constraint_catalog IS NOT NULL OR table_catalog IS NOT NULL;
|
||||
constraint_catalog constraint_schema constraint_name table_catalog table_schema table_name column_name
|
||||
########################################################################################
|
||||
# Testcase 3.2.7.2 + 3.2.7.3: INFORMATION_SCHEMA.KEY_COLUMN_USAGE accessible information
|
||||
########################################################################################
|
||||
DROP DATABASE IF EXISTS db_datadict;
|
||||
CREATE DATABASE db_datadict;
|
||||
DROP USER 'testuser1'@'localhost';
|
||||
CREATE USER 'testuser1'@'localhost';
|
||||
DROP USER 'testuser2'@'localhost';
|
||||
CREATE USER 'testuser2'@'localhost';
|
||||
USE db_datadict;
|
||||
CREATE TABLE t1_1
|
||||
(f1 INT NOT NULL, PRIMARY KEY(f1),
|
||||
f2 INT, INDEX f2_ind(f2))
|
||||
ENGINE = <engine_type>;
|
||||
GRANT SELECT ON t1_1 to 'testuser1'@'localhost';
|
||||
CREATE TABLE t1_2
|
||||
(f1 INT NOT NULL, PRIMARY KEY(f1),
|
||||
f2 INT, INDEX f2_ind(f2))
|
||||
ENGINE = <engine_type>;
|
||||
GRANT SELECT ON t1_2 to 'testuser2'@'localhost';
|
||||
SELECT * FROM information_schema.key_column_usage
|
||||
WHERE table_name LIKE 't1_%'
|
||||
ORDER BY constraint_catalog, constraint_schema, constraint_name,
|
||||
table_catalog, table_schema, table_name, ordinal_position;
|
||||
CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
|
||||
NULL db_datadict PRIMARY NULL db_datadict t1_1 f1 1 NULL NULL NULL NULL
|
||||
NULL db_datadict PRIMARY NULL db_datadict t1_2 f1 1 NULL NULL NULL NULL
|
||||
# Establish connection testuser1 (user=testuser1)
|
||||
SELECT * FROM information_schema.key_column_usage
|
||||
WHERE table_name LIKE 't1_%'
|
||||
ORDER BY constraint_catalog, constraint_schema, constraint_name,
|
||||
table_catalog, table_schema, table_name, ordinal_position;
|
||||
CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
|
||||
NULL db_datadict PRIMARY NULL db_datadict t1_1 f1 1 NULL NULL NULL NULL
|
||||
NULL db_datadict PRIMARY NULL db_datadict t1_2 f1 1 NULL NULL NULL NULL
|
||||
# Establish connection testuser2 (user=testuser2)
|
||||
SELECT * FROM information_schema.key_column_usage
|
||||
WHERE table_name LIKE 't1_%'
|
||||
ORDER BY constraint_catalog, constraint_schema, constraint_name,
|
||||
table_catalog, table_schema, table_name, ordinal_position;
|
||||
CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
|
||||
NULL db_datadict PRIMARY NULL db_datadict t1_1 f1 1 NULL NULL NULL NULL
|
||||
NULL db_datadict PRIMARY NULL db_datadict t1_2 f1 1 NULL NULL NULL NULL
|
||||
# Switch to connection default and close connections testuser1, testuser2
|
||||
DROP USER 'testuser1'@'localhost';
|
||||
DROP USER 'testuser2'@'localhost';
|
||||
DROP TABLE t1_1;
|
||||
DROP TABLE t1_2;
|
||||
DROP DATABASE IF EXISTS db_datadict;
|
||||
########################################################################################
|
||||
# Testcase 3.2.1.13+3.2.1.14+3.2.1.15: INFORMATION_SCHEMA.KEY_COLUMN_USAGE modifications
|
||||
########################################################################################
|
||||
DROP DATABASE IF EXISTS db_datadict;
|
||||
DROP TABLE IF EXISTS test.t1_my_table;
|
||||
CREATE DATABASE db_datadict;
|
||||
SELECT table_name FROM information_schema.key_column_usage
|
||||
WHERE table_name LIKE 't1_my_table%';
|
||||
table_name
|
||||
CREATE TABLE test.t1_my_table
|
||||
(f1 CHAR(12), f2 TIMESTAMP, f4 BIGINT, PRIMARY KEY(f1,f2))
|
||||
DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci
|
||||
ENGINE = <engine_type>;
|
||||
SELECT * FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_table';
|
||||
CONSTRAINT_CATALOG NULL
|
||||
CONSTRAINT_SCHEMA test
|
||||
CONSTRAINT_NAME PRIMARY
|
||||
TABLE_CATALOG NULL
|
||||
TABLE_SCHEMA test
|
||||
TABLE_NAME t1_my_table
|
||||
COLUMN_NAME f1
|
||||
ORDINAL_POSITION 1
|
||||
POSITION_IN_UNIQUE_CONSTRAINT NULL
|
||||
REFERENCED_TABLE_SCHEMA NULL
|
||||
REFERENCED_TABLE_NAME NULL
|
||||
REFERENCED_COLUMN_NAME NULL
|
||||
CONSTRAINT_CATALOG NULL
|
||||
CONSTRAINT_SCHEMA test
|
||||
CONSTRAINT_NAME PRIMARY
|
||||
TABLE_CATALOG NULL
|
||||
TABLE_SCHEMA test
|
||||
TABLE_NAME t1_my_table
|
||||
COLUMN_NAME f2
|
||||
ORDINAL_POSITION 2
|
||||
POSITION_IN_UNIQUE_CONSTRAINT NULL
|
||||
REFERENCED_TABLE_SCHEMA NULL
|
||||
REFERENCED_TABLE_NAME NULL
|
||||
REFERENCED_COLUMN_NAME NULL
|
||||
SELECT DISTINCT table_name FROM information_schema.key_column_usage
|
||||
WHERE table_name LIKE 't1_my_table%';
|
||||
table_name
|
||||
t1_my_table
|
||||
RENAME TABLE test.t1_my_table TO test.t1_my_tablex;
|
||||
SELECT DISTINCT table_name FROM information_schema.key_column_usage
|
||||
WHERE table_name LIKE 't1_my_table%';
|
||||
table_name
|
||||
t1_my_tablex
|
||||
SELECT DISTINCT table_schema,table_name FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
table_schema table_name
|
||||
test t1_my_tablex
|
||||
RENAME TABLE test.t1_my_tablex TO db_datadict.t1_my_tablex;
|
||||
SELECT DISTINCT table_schema,table_name FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
table_schema table_name
|
||||
db_datadict t1_my_tablex
|
||||
SELECT DISTINCT table_name, column_name FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex'
|
||||
ORDER BY table_name, column_name;
|
||||
table_name column_name
|
||||
t1_my_tablex f1
|
||||
t1_my_tablex f2
|
||||
ALTER TABLE db_datadict.t1_my_tablex CHANGE COLUMN f1 first_col CHAR(12);
|
||||
SELECT DISTINCT table_name, column_name FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex'
|
||||
ORDER BY table_name, column_name;
|
||||
table_name column_name
|
||||
t1_my_tablex f2
|
||||
t1_my_tablex first_col
|
||||
SELECT constraint_schema, constraint_name, table_schema,
|
||||
table_name, column_name, ordinal_position
|
||||
FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex'
|
||||
ORDER BY constraint_schema, constraint_name, table_schema,
|
||||
table_name, ordinal_position;
|
||||
constraint_schema constraint_name table_schema table_name column_name ordinal_position
|
||||
db_datadict PRIMARY db_datadict t1_my_tablex first_col 1
|
||||
db_datadict PRIMARY db_datadict t1_my_tablex f2 2
|
||||
CREATE INDEX f2 ON db_datadict.t1_my_tablex(f2);
|
||||
SELECT constraint_schema, constraint_name, table_schema,
|
||||
table_name, column_name, ordinal_position
|
||||
FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex'
|
||||
ORDER BY constraint_schema, constraint_name, table_schema,
|
||||
table_name, ordinal_position;
|
||||
constraint_schema constraint_name table_schema table_name column_name ordinal_position
|
||||
db_datadict PRIMARY db_datadict t1_my_tablex first_col 1
|
||||
db_datadict PRIMARY db_datadict t1_my_tablex f2 2
|
||||
DROP INDEX f2 ON db_datadict.t1_my_tablex;
|
||||
SELECT constraint_schema, constraint_name, table_schema,
|
||||
table_name, column_name, ordinal_position
|
||||
FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex'
|
||||
ORDER BY constraint_schema, constraint_name, table_schema,
|
||||
table_name, ordinal_position;
|
||||
constraint_schema constraint_name table_schema table_name column_name ordinal_position
|
||||
db_datadict PRIMARY db_datadict t1_my_tablex first_col 1
|
||||
db_datadict PRIMARY db_datadict t1_my_tablex f2 2
|
||||
ALTER TABLE db_datadict.t1_my_tablex ADD UNIQUE (f2);
|
||||
SELECT constraint_schema, constraint_name, table_schema,
|
||||
table_name, column_name, ordinal_position
|
||||
FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex'
|
||||
ORDER BY constraint_schema, constraint_name, table_schema,
|
||||
table_name, ordinal_position;
|
||||
constraint_schema constraint_name table_schema table_name column_name ordinal_position
|
||||
db_datadict f2 db_datadict t1_my_tablex f2 1
|
||||
db_datadict PRIMARY db_datadict t1_my_tablex first_col 1
|
||||
db_datadict PRIMARY db_datadict t1_my_tablex f2 2
|
||||
DROP INDEX f2 ON db_datadict.t1_my_tablex;
|
||||
SELECT constraint_schema, constraint_name, table_schema,
|
||||
table_name, column_name, ordinal_position
|
||||
FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex'
|
||||
ORDER BY constraint_schema, constraint_name, table_schema,
|
||||
table_name, ordinal_position;
|
||||
constraint_schema constraint_name table_schema table_name column_name ordinal_position
|
||||
db_datadict PRIMARY db_datadict t1_my_tablex first_col 1
|
||||
db_datadict PRIMARY db_datadict t1_my_tablex f2 2
|
||||
ALTER TABLE db_datadict.t1_my_tablex ADD UNIQUE my_idx (f2);
|
||||
SELECT constraint_schema, constraint_name, table_schema,
|
||||
table_name, column_name, ordinal_position
|
||||
FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex'
|
||||
ORDER BY constraint_schema, constraint_name, table_schema,
|
||||
table_name, ordinal_position;
|
||||
constraint_schema constraint_name table_schema table_name column_name ordinal_position
|
||||
db_datadict my_idx db_datadict t1_my_tablex f2 1
|
||||
db_datadict PRIMARY db_datadict t1_my_tablex first_col 1
|
||||
db_datadict PRIMARY db_datadict t1_my_tablex f2 2
|
||||
DROP INDEX my_idx ON db_datadict.t1_my_tablex;
|
||||
SELECT constraint_schema, constraint_name, table_schema,
|
||||
table_name, column_name, ordinal_position
|
||||
FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex'
|
||||
ORDER BY constraint_schema, constraint_name, table_schema,
|
||||
table_name, ordinal_position;
|
||||
constraint_schema constraint_name table_schema table_name column_name ordinal_position
|
||||
db_datadict PRIMARY db_datadict t1_my_tablex first_col 1
|
||||
db_datadict PRIMARY db_datadict t1_my_tablex f2 2
|
||||
ALTER TABLE db_datadict.t1_my_tablex ADD UNIQUE my_idx (f4,first_col);
|
||||
SELECT constraint_schema, constraint_name, table_schema,
|
||||
table_name, column_name, ordinal_position
|
||||
FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex'
|
||||
ORDER BY constraint_schema, constraint_name, table_schema,
|
||||
table_name, ordinal_position;
|
||||
constraint_schema constraint_name table_schema table_name column_name ordinal_position
|
||||
db_datadict my_idx db_datadict t1_my_tablex f4 1
|
||||
db_datadict my_idx db_datadict t1_my_tablex first_col 2
|
||||
db_datadict PRIMARY db_datadict t1_my_tablex first_col 1
|
||||
db_datadict PRIMARY db_datadict t1_my_tablex f2 2
|
||||
SELECT constraint_schema, constraint_name, table_schema,
|
||||
table_name, column_name, ordinal_position
|
||||
FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex'
|
||||
ORDER BY constraint_schema, constraint_name, table_schema,
|
||||
table_name, ordinal_position;
|
||||
constraint_schema constraint_name table_schema table_name column_name ordinal_position
|
||||
db_datadict my_idx db_datadict t1_my_tablex f4 1
|
||||
db_datadict my_idx db_datadict t1_my_tablex first_col 2
|
||||
db_datadict PRIMARY db_datadict t1_my_tablex first_col 1
|
||||
db_datadict PRIMARY db_datadict t1_my_tablex f2 2
|
||||
ALTER TABLE db_datadict.t1_my_tablex
|
||||
DROP COLUMN first_col;
|
||||
SELECT constraint_schema, constraint_name, table_schema,
|
||||
table_name, column_name, ordinal_position
|
||||
FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex'
|
||||
ORDER BY constraint_schema, constraint_name, table_schema,
|
||||
table_name, ordinal_position;
|
||||
constraint_schema constraint_name table_schema table_name column_name ordinal_position
|
||||
db_datadict my_idx db_datadict t1_my_tablex f4 1
|
||||
db_datadict PRIMARY db_datadict t1_my_tablex f2 1
|
||||
SELECT table_name, column_name
|
||||
FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex'
|
||||
ORDER BY table_name, column_name;
|
||||
table_name column_name
|
||||
t1_my_tablex f2
|
||||
t1_my_tablex f4
|
||||
DROP TABLE db_datadict.t1_my_tablex;
|
||||
SELECT table_name, column_name
|
||||
FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
table_name column_name
|
||||
SELECT table_name FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
table_name
|
||||
CREATE TABLE db_datadict.t1_my_tablex
|
||||
ENGINE = <engine_type> AS
|
||||
SELECT 1 AS f1;
|
||||
SELECT table_name FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
table_name
|
||||
ALTER TABLE db_datadict.t1_my_tablex ADD PRIMARY KEY(f1);
|
||||
SELECT table_name FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
table_name
|
||||
t1_my_tablex
|
||||
SELECT table_name FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
table_name
|
||||
t1_my_tablex
|
||||
DROP DATABASE db_datadict;
|
||||
SELECT table_name FROM information_schema.key_column_usage
|
||||
WHERE table_name = 't1_my_tablex';
|
||||
table_name
|
||||
########################################################################
|
||||
# Testcases 3.2.1.3-3.2.1.5 + 3.2.1.8-3.2.1.12: INSERT/UPDATE/DELETE and
|
||||
# DDL on INFORMATION_SCHEMA table are not supported
|
||||
########################################################################
|
||||
DROP DATABASE IF EXISTS db_datadict;
|
||||
DROP TABLE IF EXISTS db_datadict.t1;
|
||||
CREATE DATABASE db_datadict;
|
||||
CREATE TABLE db_datadict.t1 (f1 BIGINT)
|
||||
ENGINE = <engine_type>;
|
||||
INSERT INTO information_schema.key_column_usage
|
||||
(constraint_schema, constraint_name, table_name)
|
||||
VALUES ( 'mysql', 'primary', 'db');
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
INSERT INTO information_schema.key_column_usage
|
||||
SELECT * FROM information_schema.key_column_usage;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
UPDATE information_schema.key_column_usage
|
||||
SET table_name = 'db1' WHERE constraint_name = 'primary';
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
DELETE FROM information_schema.key_column_usage WHERE table_name = 't1';
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
TRUNCATE information_schema.key_column_usage;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
CREATE INDEX i3 ON information_schema.key_column_usage(table_name);
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
ALTER TABLE information_schema.key_column_usage ADD f1 INT;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
DROP TABLE information_schema.key_column_usage;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
ALTER TABLE information_schema.key_column_usage
|
||||
RENAME db_datadict.key_column_usage;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
ALTER TABLE information_schema.key_column_usage
|
||||
RENAME information_schema.xkey_column_usage;
|
||||
ERROR 42000: Access denied for user 'root'@'localhost' to database 'information_schema'
|
||||
DROP TABLE db_datadict.t1;
|
||||
DROP DATABASE db_datadict;
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user