403Webshell
Server IP : 172.67.216.182  /  Your IP : 162.158.88.75
Web Server : Apache
System : Linux krdc-ubuntu-s-2vcpu-4gb-amd-blr1-01.localdomain 5.15.0-142-generic #152-Ubuntu SMP Mon May 19 10:54:31 UTC 2025 x86_64
User : www ( 1000)
PHP Version : 7.4.33
Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /www/server/mysql/mysql-test/t/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /www/server/mysql/mysql-test/t/ctype_gb18030.test
-- source include/have_gb18030.inc
-- source include/no_valgrind_without_big.inc

#
# Tests with the gb18030 character set
#

SET @test_character_set= 'gb18030';
SET @test_collation= 'gb18030_chinese_ci';
-- source include/ctype_common.inc

SET NAMES utf8;
SET collation_connection='gb18030_chinese_ci';
-- source include/ctype_filesort.inc
-- source include/ctype_innodb_like.inc
-- source include/ctype_like_escape.inc
-- source include/ctype_like_range_f1f2.inc
-- source include/ctype_ascii_order.inc
SET collation_connection='gb18030_bin';
-- source include/ctype_filesort.inc
-- source include/ctype_innodb_like.inc
-- source include/ctype_like_escape.inc
-- source include/ctype_like_range_f1f2.inc

#
# Test some conversions
SELECT HEX(CONVERT(_gb18030 0xA14041 USING ucs2));
SELECT HEX(CONVERT(_gb18030 0xA14041 USING utf8));
SELECT HEX(CONVERT(_gb18030 0xFEFEFEFD814040 USING utf32));
SELECT HEX(CONVERT(_gb18030 0x813081304041A140 USING utf32));
SELECT HEX(CONVERT(_gb18030 0xE3329A34 USING utf32));
SELECT HEX(CONVERT(_gb18030 0xE3329A35 USING utf32));
SELECT HEX(CONVERT(_gb18030 0xE3329A36 USING utf32));
SELECT HEX(CONVERT(_gb18030 0xFE39FE39 USING utf32));
SELECT HEX(CONVERT(_ucs2 0xD800 USING gb18030));
SELECT HEX(CONVERT(_ucs2 0xDFFF USING gb18030));
SELECT HEX(CONVERT(_ucs2 0xE000 USING gb18030));
SELECT HEX(CONVERT(_ucs2 0xF8FF USING gb18030));
--ERROR ER_INVALID_CHARACTER_STRING
SELECT HEX(CONVERT(_gb18030 0xA13941 USING ucs2));
--ERROR ER_INVALID_CHARACTER_STRING
SELECT HEX(CONVERT(_gb18030 0xFFFE USING ucs2));
--ERROR ER_INVALID_CHARACTER_STRING
SELECT HEX(CONVERT(_gb18030 0x81308140 USING ucs2));

#
# Test some string funcs
SELECT LOCATE(_gb18030 0x8140, _gb18030 0x814181408142);
SELECT HEX(REVERSE(_gb18030 0x8140814181428130813081308131FE39FE39));
SELECT HEX(SUBSTRING(_gb18030 0x81308131813081328130813381308134, 1, 2));
SELECT HEX(SUBSTRING(_gb18030 0x81308131813081328130813381308134, -3, 2));
SELECT HEX(TRIM(_gb18030 0x20202081408141208144202020));

#
# From gbk test, ALTER TABLE affects other columns
CREATE TABLE t1 (c1 TEXT not null, c2 TEXT not null) CHARACTER SET gb18030;
ALTER TABLE t1 CHANGE c1 c1 MEDIUMTEXT CHARACTER SET gb18030 NOT NULL;
--disable_query_log
let $default_engine = `select @@SESSION.default_storage_engine`;
--enable_query_log
--replace_result $default_engine default_engine
SHOW CREATE TABLE t1;
DROP TABLE t1;

#
# Servere memory corruption and crash with multibyte conversion
CREATE TABLE t1(a MEDIUMTEXT CHARACTER SET gb18030,
                b MEDIUMTEXT CHARACTER SET big5);
INSERT INTO t1 VALUES
  (REPEAT(0x1125,200000), REPEAT(0x1125,200000)), ('', ''), ('', '');

SELECT a FROM t1 GROUP BY 1 LIMIT 1 INTO @nullll;
SELECT b FROM t1 GROUP BY 1 LIMIT 1 INTO @nullll;

DROP TABLES t1;

#
# WL#3664 WEIGHT_STRING
SET NAMES utf8mb4;
SET collation_connection=gb18030_chinese_ci;

--source include/weight_string.inc
--source include/weight_string_l1.inc
--source include/weight_string_A1A1.inc
--source include/weight_string_A2A9.inc
--source include/weight_string_81309D30.inc

SET collation_connection=gb18030_bin;
--source include/weight_string.inc
--source include/weight_string_l1.inc
--source include/weight_string_A1A1.inc
--source include/weight_string_A2A9.inc
--source include/weight_string_81309D30.inc

--echo #
--echo # Bugs#12635232: VALGRIND WARNINGS: IS_IPV6, IS_IPV4, INET6_ATON,
--echo # INETTO_NTOA + MULTIBYTE CHARSET.
--echo #
SET sql_mode = 'NO_ENGINE_SUBSTITUTION';
--source include/ctype_inet.inc

--echo #
--echo # Test for gb18030_unicode_520_ci collation.
--echo #
SET NAMES utf8mb4;
SET collation_connection=gb18030_unicode_520_ci;
--source include/ctype_unicode520.inc

SET NAMES gb18030 COLLATE gb18030_unicode_520_ci;
SELECT 1 gb18030_unicode_520_ci;

#
# CJK chars test
CREATE DATABASE gb18030 CHARSET=GB18030;
SET NAMES utf8mb4;
SET collation_connection='gb18030_chinese_ci';

--disable_warnings
CREATE TABLE t1(C VARCHAR(100) CHARACTER SET gb18030, KEY(c(20)));
--enable_warnings

INSERT INTO t1 VALUES(0xC4EEC5ABBDBFA1A4B3E0B1DABBB3B9C520A1A4CBD5B6ABC6C2);
INSERT INTO t1 VALUES(0xB4F3BDADB6ABC8A5A3ACC0CBCCD4BEA1A1A2C7A7B9C5B7E7C1F7C8CBCEEFA1A3);
INSERT INTO t1 VALUES(0xB9CAC0DDCEF7B1DFA3ACC8CBB5C0CAC7A1A2C8FDB9FAD6DCC0C9B3E0B1DAA1A3);
INSERT INTO t1 VALUES(0xC2D2CAAFB1C0D4C6A3ACBEAACCCEC1D1B0B6A3ACBEEDC6F0C7A7B6D1D1A9A1A3);
INSERT INTO t1 VALUES(0xBDADC9BDC8E7BBADA3ACD2BBCAB1B6E0C9D9BAC0BDDCA3A1);
INSERT INTO t1 VALUES(0xD2A3CFEBB9ABE8AAB5B1C4EAA3ACD0A1C7C7B3F5BCDEC1CBA3ACD0DBD7CBD3A2B7A2A1A3);
INSERT INTO t1 VALUES(0xD3F0C9C8C2DABDEDA3ACCCB8D0A6BCE4A1A2E9C9E9D6BBD2B7C9D1CCC3F0A1A3);
INSERT INTO t1 VALUES(0xB9CAB9FAC9F1D3CEA3ACB6E0C7E9D3A6D0A6CED2A1A2D4E7C9FABBAAB7A2A1A3);
INSERT INTO t1 VALUES(0xC8CBBCE4C8E7C3CEA3ACD2BBE9D7BBB9F5AABDADD4C2A1A3);

SELECT c, HEX(c), CONVERT(c USING utf8mb4) FROM t1;
SELECT HEX(c), CONVERT(c USING utf8mb4) FROM t1 ORDER BY c;
SELECT HEX(c), CONVERT(c USING utf8mb4) FROM t1 WHERE c LIKE CONCAT('%', _gb18030 0xD2BB, '%');
SELECT HEX(c), CONVERT(c USING utf8mb4) FROM t1 WHERE c LIKE CONCAT('%', _gb18030 0xC8CB, '%');
SELECT HEX(c), CONVERT(c USING utf8mb4) FROM t1 WHERE c > 0xD2A3;

TRUNCATE TABLE t1;

INSERT INTO t1 VALUES(0x5373547483329330);
INSERT INTO t1 VALUES(0x8239AB318239AB358239AF3583308132833087348335EB39);
INSERT INTO t1 VALUES(0x97339631973396339733A6359831C0359831C536);
INSERT INTO t1 VALUES(0x9835CF329835CE359835F336);
INSERT INTO t1 VALUES(0x833988318339883283398539);
INSERT INTO t1 VALUES(0x823398318233973582339A3882348A32);
INSERT INTO t1 VALUES(0x8134D5318134D6328134D832);
INSERT INTO t1 VALUES(0x4A7320204B82339A35646566);
INSERT INTO t1 VALUES(0x8130883281308833);
INSERT INTO t1 VALUES(0xE05FE06A777682339230);
INSERT INTO t1 VALUES(0x814081418139FE30);
INSERT INTO t1 VALUES(0x81308130FEFE);
INSERT INTO t1 VALUES(0xE3329A35E3329A34);
INSERT INTO t1 VALUES(0xFE39FE39FE38FE38);
INSERT INTO t1 VALUES(0xFE39FE38A976);

SELECT c, HEX(c), CONVERT(c USING utf8mb4) FROM t1;
SELECT c, HEX(c), CONVERT(c USING utf8mb4) FROM t1 WHERE c LIKE CONCAT('%', _gb18030 0x9835CE35, '%');
SELECT c, HEX(c), CONVERT(c USING utf8mb4) FROM t1 WHERE c = 0x8130883281308833;
SELECT c, HEX(c), CONVERT(c USING utf8mb4) FROM t1 WHERE c > 0xE040 AND c < 0x8239AB31;
SELECT c, HEX(c), CONVERT(c USING utf8mb4) FROM t1 ORDER BY c;

TRUNCATE TABLE t1;
INSERT INTO t1 VALUES(0x8139818F);
INSERT INTO t1 VALUES(0x8431A530);
INSERT INTO t1 VALUES(0x9030813089398130);
INSERT INTO t1 VALUES(0xE3329A36);
INSERT INTO t1 VALUES(0xA6A78586E3329A38);
INSERT INTO t1 VALUES(0xA69C8041);
INSERT INTO t1 VALUES(0xA9C6FEFF);
INSERT INTO t1 VALUES(0xFFFF);
INSERT INTO t1 VALUES(0x81408139);
INSERT INTO t1 VALUES(0x962B);
INSERT INTO t1 VALUES(0x9F37823881308156);
INSERT INTO t1 VALUES(0xFE35FF30);
INSERT INTO t1 VALUES(0x814281309CA4);
INSERT INTO t1 VALUES(0xE3329A36);
INSERT INTO t1 VALUES(0xFE39FE39FE39FE38);

SELECT * FROM t1;
UPDATE t1 SET c=0x81308130;
SELECT COUNT(*) FROM t1 WHERE c <> 0x81308130;

TRUNCATE TABLE t1;

# Test for PINYIN collation
# 𠬣𠨵㭋玤䂜蚌𢜗𢮏䖫傍棒棓谤塝
# 拨波癷𩧯玻剝剥哱盋砵袚𧙄钵饽紴缽菠袰

INSERT INTO t1 VALUES(_gb18030 0x9534A337), (_gb18030 0x8959), (_gb18030 0xB0F9), (_gb18030 0xB0F4), (_gb18030 0x95348B39), (_gb18030 0x9794), (_gb18030 0x8231AC35);
INSERT INTO t1 VALUES(_gb18030 0xB0F8), (_gb18030 0xAB67), (_gb18030 0x8232B632), (_gb18030 0x9630ED37), (_gb18030 0x9539F933), (_gb18030 0xB0F6), (_gb18030 0x8233B931);

INSERT INTO t1 VALUES(_gb18030 0xD143), (_gb18030 0xB2A4), (_gb18030 0xC08F), (_gb18030 0xBC9E), (_gb18030 0xB2A6), (_gb18030 0xB2A8), (_gb18030 0xB069);
INSERT INTO t1 VALUES(_gb18030 0x9833A533), (_gb18030 0xE2C4), (_gb18030 0xB2A7), (_gb18030 0x97368632), (_gb18030 0xB2A3), (_gb18030 0x8483), (_gb18030 0xB0FE);
INSERT INTO t1 VALUES(_gb18030 0x865C), (_gb18030 0xD093), (_gb18030 0xB36A), (_gb18030 0xB143);

SELECT c, HEX(c) FROM t1 ORDER BY c;
SELECT c, HEX(c) FROM t1 WHERE c >= 0x8483 and c < 0xE2C4 ORDER BY c;
SELECT c, HEX(c) FROM t1 WHERE c LIKE 0xB0FE;

TRUNCATE TABLE t1;

INSERT INTO t1 VALUES(_gb18030 0x81308130), (_gb18030 0x81308132);
INSERT INTO t1 VALUES('A'), ('a'), ('1'), ('2');
INSERT INTO t1 VALUES(_gb18030 0xCDF5), (_gb18030 0xC0EE), (_gb18030 0xD5C5), (_gb18030 0xC1F5), (_gb18030 0xB3C2), (_gb18030 0xD1EE), (_gb18030 0xBBC6);
INSERT INTO t1 VALUES(_gb18030 0xCEE2), (_gb18030 0xD5D4), (_gb18030 0xD6DC), (_gb18030 0xD0EC), (_gb18030 0xCBEF), (_gb18030 0xC2ED), (_gb18030 0xD6EC);
INSERT INTO t1 VALUES(_gb18030 0xBAFA), (_gb18030 0xC1D6), (_gb18030 0xB9F9), (_gb18030 0xBACE), (_gb18030 0xB8DF), (_gb18030 0xC2DE), (_gb18030 0xD6A3);
INSERT INTO t1 VALUES(_gb18030 0xE3329A35), (_gb18030 0xE3329A34);

SELECT c, HEX(c) FROM t1 ORDER BY c;

DROP TABLE t1;

# Test for alter table, data type etc.
CREATE TABLE t1 (c CHAR(1) CHARACTER SET gb18030, v VARCHAR(100) CHARACTER SET gb18030);

INSERT INTO t1 VALUES(0x8140, 0x81308132A6C9A6A985328338);
SELECT HEX(c), c, HEX(v), v FROM t1;
ALTER TABLE t1 ADD COLUMN t TEXT CHARACTER SET gb18030;
INSERT INTO t1 VALUES(0xBC81, 0x82358132FE39FE3940414281308135, 0x84678578);
SELECT HEX(c), c, HEX(v), v, HEX(t), t FROM t1;

DROP TABLE t1;

# Test for LIKE for 2/4-byte gb18030
CREATE TABLE t1 (c VARCHAR(10) CHARACTER SET gb18030);

INSERT INTO t1 VALUES(0x81308A3181308A3181308A3181308A3181308732);
INSERT INTO t1 VALUES(0x81308A3181308A318130873281308A31);
INSERT INTO t1 VALUES(0x81308A318130873281309636);
INSERT INTO t1 VALUES(0x81308A318130873281309637);
INSERT INTO t1 VALUES(0x81308A31813087328130963781309636);
INSERT INTO t1 VALUES(0x8130963681308A31);
INSERT INTO t1 VALUES(0xA8A581308D35);
INSERT INTO t1 VALUES(0x81308D35A8A5);
INSERT INTO t1 VALUES(0x81308D35A8A5A8A5);

SELECT HEX(c) FROM t1;
SELECT HEX(c) FROM t1 WHERE c LIKE CONCAT('%', _gb18030 0x81308A31);
SELECT HEX(c) FROM t1 WHERE c LIKE CONCAT('%', _gb18030 0x8130873281308A31, '%');
SELECT HEX(c) FROM t1 WHERE c LIKE CONCAT('%', _gb18030 0x8130873281309636);
SELECT HEX(c) FROM t1 WHERE c LIKE CONCAT('%', _gb18030 0x8130963781309636);
SELECT HEX(c) FROM t1 WHERE c LIKE CONCAT(_gb18030 0x81309636, '%');
SELECT HEX(c) FROM t1 WHERE c LIKE CONCAT('%', _gb18030 0x8130963781309636);
SELECT HEX(c) FROM t1 WHERE c LIKE CONCAT('%', _gb18030 0x8130963781309636) ESCAPE _gb18030 0x81309637;
SELECT HEX(c) FROM t1 WHERE c LIKE CONCAT(_gb18030 0xA8A5, '%');
SELECT HEX(c) FROM t1 WHERE c LIKE CONCAT(_gb18030 0xA8A5, '_');
SELECT HEX(c) FROM t1 WHERE c LIKE CONCAT(_gb18030 0xA8A5, '_', _gb18030 0x81308D35);
SELECT HEX(c) FROM t1 WHERE c LIKE CONCAT('%_', _gb18030 0xA8A5);

DROP TABLE t1;

# Test for group by
SET NAMES utf8mb4;
CREATE TABLE t1 (c VARCHAR(10) CHARACTER SET gb18030);
INSERT INTO t1 VALUES (_gb18030 0x8BF5819AEDC3), (_gb18030 0x99CC), (_gb18030 0x90459958), (_gb18030 0xAA95C0E59E509AED), (_gb18030 0xCCE7), (_gb18030 0x9068), (_gb18030 0x90459958);
# Because of the COLLATE, the uniqueness of HEX(c) per group is not
# guaranteed, hence ANY_VALUE is used.
SELECT ANY_VALUE(HEX(c)), COUNT(c) FROM t1 GROUP BY c COLLATE gb18030_chinese_ci;
DROP TABLE t1;

# Test if LOAD DATA with gb18030 chars can handle invalid chars
CREATE TABLE t1 (a int) ENGINE=InnoDB;
--error ER_INVALID_CHARACTER_STRING
LOAD DATA INFILE '../../std_data/bug21542698.dat' INTO TABLE t1 CHARACTER SET gb18030; 
DROP TABLE t1;

DROP DATABASE gb18030;
SET sql_mode = default;
--echo #
--echo # End of 5.7 tests
--echo #


Youez - 2016 - github.com/yon3zu
LinuXploit