mirror of
https://github.com/MariaDB/server.git
synced 2025-01-23 15:24:16 +01:00
eb91084540
Details: - Limit the queries to character sets and collations which are most probably available in all build types. But try to preserve the intention of the tests. - Remove the variants adjusted to some build types. Note: 1. The results of the review by Bar are included. 2. I am not able to check the correctness of this patch on any existing build type and any MySQL version. So it could happen that the new test fails somewhere.
107 lines
3.9 KiB
Text
107 lines
3.9 KiB
Text
# suite/funcs_1/t/charset_collation.test
|
|
#
|
|
# Tests checking the content of the information_schema tables
|
|
# character_sets
|
|
# collations
|
|
# collation_character_set_applicability
|
|
#
|
|
# Created:
|
|
# 2009-04-28 mleich Replace the charset_collation_* test which failed too often
|
|
# because of changes
|
|
# - in general available character sets and collations
|
|
# - in build types
|
|
# (Bug#40545, Bug#40209, Bug#40618, Bug#38346)
|
|
#
|
|
|
|
# Create a low privileged user.
|
|
--error 0, ER_CANNOT_USER
|
|
DROP USER dbdict_test@localhost;
|
|
CREATE USER dbdict_test@localhost;
|
|
|
|
--echo # Establish connection con (user=dbdict_test)
|
|
connect (con,localhost,dbdict_test,,);
|
|
################################################################################
|
|
#
|
|
# The original requirements for the following tests were:
|
|
#
|
|
# 3.2.2.2: Ensure that the table (information_schema.character_sets) shows the
|
|
# relevant information on every character set for which the current
|
|
# user or PUBLIC have the USAGE privilege.
|
|
#
|
|
# 3.2.2.3: Ensure that the table (information_schema.character_sets) does not
|
|
# show any information on any character set for which the current user
|
|
# or PUBLIC have no USAGE privilege.
|
|
#
|
|
#
|
|
# 3.2.3.2: Ensure that the table (information_schema.collations) shows the
|
|
# relevant information on every collation for which the current user
|
|
# or PUBLIC have the USAGE privilege.
|
|
#
|
|
# 3.2.3.3: Ensure that the table (information_schema.collations) does not show
|
|
# any information on any collations for which the current user and
|
|
# PUBLIC have no USAGE privilege.
|
|
#
|
|
#
|
|
# 3.2.4.2: Ensure that the table
|
|
# information_schema.collation_character_set_applicability
|
|
# shows the relevant information on every collation/character set
|
|
# combination for which the current user or PUBLIC have the USAGE
|
|
# privilege.
|
|
#
|
|
# 3.2.4.3: Ensure that the table
|
|
# information_schema.collation_character_set_applicability
|
|
# does not show any information on any collation/character set
|
|
# combinations for which the current user and PUBLIC have no
|
|
# USAGE privilege.
|
|
#
|
|
# Notes (2009-04-28 mleich):
|
|
# - The requirements are outdated because grant/revoke privilege for using a
|
|
# characterset/collation were never implemented.
|
|
# Therefore the tests focus on the completeness and correctness of the
|
|
# content (rows and columns) of these tables.
|
|
# - The amount of collations/character sets grows with new MySQL releases.
|
|
# Even within the same release the amount of records within these tables
|
|
# can differ between different build types (community, enterprise, source,...)
|
|
# Therefore we limit the queries to character sets and collations which
|
|
# - exist in all build types
|
|
# - have in all build types the same "state".
|
|
# The character set
|
|
# - utf8 is used for Metadata
|
|
# - ascii is a quite usual
|
|
# The collations <character set>_general_ci and <character set>_bin seem
|
|
# to be available all time.
|
|
#
|
|
################################################################################
|
|
|
|
let $char_set_condition= character_set_name IN ('utf8','latin1','binary');
|
|
let $collation_condition=
|
|
(collation_name LIKE CONCAT(character_set_name,'_general_ci')
|
|
OR
|
|
collation_name LIKE CONCAT(character_set_name,'_bin'));
|
|
--echo
|
|
eval SELECT *
|
|
FROM information_schema.character_sets
|
|
WHERE $char_set_condition
|
|
ORDER BY character_set_name;
|
|
|
|
--echo
|
|
eval SELECT *
|
|
FROM information_schema.collations
|
|
WHERE $char_set_condition
|
|
AND $collation_condition
|
|
ORDER BY collation_name;
|
|
|
|
--echo
|
|
eval SELECT *
|
|
FROM information_schema.collation_character_set_applicability
|
|
WHERE $char_set_condition
|
|
AND $collation_condition
|
|
ORDER BY collation_name, character_set_name;
|
|
|
|
|
|
# Cleanup
|
|
--echo # Switch to connection default + disconnect con
|
|
connection default;
|
|
disconnect con;
|
|
DROP USER dbdict_test@localhost;
|
|
|