mirror of
https://github.com/MariaDB/server.git
synced 2025-01-19 13:32:33 +01:00
76f0b94bb0
sql/sql_insert.cc: CREATE ... IF NOT EXISTS may do nothing, but it is still not a failure. don't forget to my_ok it. ****** CREATE ... IF NOT EXISTS may do nothing, but it is still not a failure. don't forget to my_ok it. sql/sql_table.cc: small cleanup ****** small cleanup
98 lines
4.8 KiB
Text
98 lines
4.8 KiB
Text
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 DATETIME_PRECISION CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
|
|
def test t1 f1 1 NULL YES char 1 2 NULL NULL NULL ucs2 ucs2_general_ci char(1) select,insert,update,references
|
|
def test t1 f10 9 NULL YES mediumtext 8388607 16777215 NULL NULL NULL ucs2 ucs2_general_ci mediumtext select,insert,update,references
|
|
def test t1 f11 10 NULL YES longtext 2147483647 4294967295 NULL NULL NULL ucs2 ucs2_general_ci longtext select,insert,update,references
|
|
def test t1 f2 2 NULL YES char 0 0 NULL NULL NULL ucs2 ucs2_general_ci char(0) select,insert,update,references
|
|
def test t1 f3 3 NULL YES char 10 20 NULL NULL NULL ucs2 ucs2_general_ci char(10) select,insert,update,references
|
|
def test t1 f5 4 NULL YES varchar 0 0 NULL NULL NULL ucs2 ucs2_general_ci varchar(0) select,insert,update,references
|
|
def test t1 f6 5 NULL YES varchar 255 510 NULL NULL NULL ucs2 ucs2_general_ci varchar(255) select,insert,update,references
|
|
def test t1 f7 6 NULL YES varchar 260 520 NULL NULL NULL ucs2 ucs2_general_ci varchar(260) select,insert,update,references
|
|
def test t1 f8 7 NULL YES text 32767 65535 NULL NULL NULL ucs2 ucs2_general_ci text select,insert,update,references
|
|
def test t1 f9 8 NULL YES tinytext 127 255 NULL 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;
|