summaryrefslogtreecommitdiffstats
path: root/mysql-test/suite/funcs_1/datadict/columns.inc
diff options
context:
space:
mode:
Diffstat (limited to 'mysql-test/suite/funcs_1/datadict/columns.inc')
-rw-r--r--mysql-test/suite/funcs_1/datadict/columns.inc90
1 files changed, 90 insertions, 0 deletions
diff --git a/mysql-test/suite/funcs_1/datadict/columns.inc b/mysql-test/suite/funcs_1/datadict/columns.inc
new file mode 100644
index 00000000..a03fef9c
--- /dev/null
+++ b/mysql-test/suite/funcs_1/datadict/columns.inc
@@ -0,0 +1,90 @@
+# 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
+
+# The following is needed as embedded server can be compiled with and without
+# privlege tables
+
+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;