config root man

Current Path : /home/usr.opt/mysql57/mysql-test/t/

FreeBSD hs32.drive.ne.jp 9.1-RELEASE FreeBSD 9.1-RELEASE #1: Wed Jan 14 12:18:08 JST 2015 root@hs32.drive.ne.jp:/sys/amd64/compile/hs32 amd64
Upload File :
Current File : //home/usr.opt/mysql57/mysql-test/t/func_like.test

# The include statement below is a temp one for tests that are yet to
#be ported to run with InnoDB,
#but needs to be kept for tests that would need MyISAM in future.
--source include/force_myisam_default.inc

#
# Test of like
#

--disable_warnings
drop table if exists t1;
--enable_warnings

create table t1 (a varchar(10), key(a));
insert into t1 values ("a"),("abc"),("abcd"),("hello"),("test");
explain extended select * from t1 where a like 'abc%';
explain extended select * from t1 where a like concat('abc','%');
select * from t1 where a like "abc%";
select * from t1 where a like concat("abc","%");
select * from t1 where a like "ABC%";
select * from t1 where a like "test%";
select * from t1 where a like "te_t";

#
# The following will test the Boyer-Moore code
#
select * from t1 where a like "%a%";
select * from t1 where a like "%abcd%";
select * from t1 where a like "%abc\d%";

drop table t1;

create table t1 (a varchar(10), key(a));

#
# Bug #2231
#
insert into t1 values ('a'), ('a\\b');
select * from t1 where a like 'a\\%' escape '#';
select * from t1 where a like 'a\\%' escape '#' and a like 'a\\\\b';

#
# Bug #4200: Prepared statement parameter as argument to ESCAPE
#
prepare stmt1 from 'select * from t1 where a like \'a\\%\' escape ?';
set @esc='#';
execute stmt1 using @esc;  
deallocate prepare stmt1;

drop table t1;

#
# Bug #2885: like and datetime
#

create table t1 (a datetime);
insert into t1 values ('2004-03-11 12:00:21');
select * from t1 where a like '2004-03-11 12:00:21';
drop table t1;

#
# Test like with non-default character set
#

SET NAMES koi8r;

CREATE TABLE t1 (a VARCHAR(10) CHARACTER SET koi8r);

INSERT INTO t1 VALUES ('ÆÙ×Á'),('æÙ×Á'),('Æù×Á'),('ÆÙ÷Á'),('ÆÙ×á'),('æù÷á');
INSERT INTO t1 VALUES ('ÆÙ×ÁÐÒÏÌÄÖ'),('æÙ×ÁÐÒÏÌÄÖ'),('Æù×ÁÐÒÏÌÄÖ'),('ÆÙ÷ÁÐÒÏÌÄÖ');
INSERT INTO t1 VALUES ('ÆÙ×áÐÒÏÌÄÖ'),('ÆÙ×ÁðÒÏÌÄÖ'),('ÆÙ×ÁÐòÏÌÄÖ'),('ÆÙ×ÁÐÒïÌÄÖ');
INSERT INTO t1 VALUES ('ÆÙ×ÁÐÒÏìÄÖ'),('ÆÙ×ÁÐÒÏÌäÖ'),('ÆÙ×ÁÐÒÏÌÄö'),('æù÷áðòïìäö');

SELECT * FROM t1 WHERE a LIKE '%Æù×Á%';
SELECT * FROM t1 WHERE a LIKE '%Æù×%';
SELECT * FROM t1 WHERE a LIKE 'Æù×Á%';

DROP TABLE t1;

# Bug #2547 Strange "like" behaviour in tables with default charset=cp1250
# Test like with non-default character set using TurboBM
#
SET NAMES cp1250;
CREATE TABLE t1 (a varchar(250) NOT NULL) DEFAULT CHARACTER SET=cp1250;
INSERT INTO t1 VALUES
('Techni Tapes Sp. z o.o.'),
('Pojazdy Szynowe PESA Bydgoszcz SA Holding'),
('AKAPESTER 1 P.P.H.U.'),
('Pojazdy Szynowe PESA Bydgoszcz S A Holding'),
('PPUH PESKA-I Maria Struniarska');

select * from t1 where a like '%PESA%';
select * from t1 where a like '%PESA %';
select * from t1 where a like '%PES%';
select * from t1 where a like '%PESKA%';
select * from t1 where a like '%ESKA%';
DROP TABLE t1;

#
# LIKE crashed for binary collations in some cases
#
select _cp866'aaaaaaaaa' like _cp866'%aaaa%' collate cp866_bin;

#
# Check 8bit escape character
#
set names koi8r;
select 'andre%' like 'andreÊ%' escape 'Ê';

# Check 8bit escape character with charset conversion:
# For "a LIKE b ESCAPE c" expressions,
# escape character is converted into the operation character set,
# which is result of aggregation  of character sets of "a" and "b".
# "c" itself doesn't take part in aggregation, because its collation
# doesn't matter, escape character is always compared binary.
# In the example below, escape character is converted from koi8r into cp1251:
#
select _cp1251'andre%' like convert('andreÊ%' using cp1251)  escape 'Ê';


--echo End of 4.1 tests


--echo #
--echo # Bug #54575: crash when joining tables with unique set column
--echo #
CREATE TABLE t1(a SET('a') NOT NULL, UNIQUE KEY(a));
CREATE TABLE t2(b INT PRIMARY KEY);
INSERT IGNORE INTO t1 VALUES ();
INSERT INTO t2 VALUES (1), (2), (3);
SELECT 1 FROM t2 JOIN t1 ON 1 LIKE a GROUP BY a;
DROP TABLE t1, t2;

--echo #
--echo # Bug#59149 valgrind warnings with "like .. escape .." function
--echo #
--error ER_WRONG_ARGUMENTS
SELECT '' LIKE '1' ESCAPE COUNT(1);

--echo End of 5.1 tests

--echo #
--echo # Bug #18114294	 CRASH IN ITEM_FUNC_LIKE::BM_MATCHES
--echo #

select 0x0000000001020003F03F40408484040ADDE40 like 0x256F3B38312A7725;
select 0x003c8793403032 like '%-112%';
select 0x903f645a8c507dd79178 like '%-128%';
select 0xac14aa84f000d276d66ed9 like '%-107%';
select 0xf0be117400d02a20b8e049da3e74 like '%-123%';
select 0x961838f6fc3c7f9ec17b5d900410d8aa like '%-113%';
select 0x6a8473fc1c64ce4f2684c05a400c5e7ca4a01a like '%emailin%';
select 0x00b25278956e0044683dfc180cd886aeff2f5bc3fc18 like '%-122%';
select 0xbc24421ce6194ab5c260e80af647ae58fdbfca18a19dc8411424 like '%-106%';

--echo #
--echo # Bug#19931126 VALGRIND REPORTS USE OF UNINITIALIZED VALUE IN
--echo #              MY_WILDCMP_BIN_IMPL
--echo #

CREATE TABLE t1(x CHAR(1)) ENGINE=InnoDB;

# The escape string is null and defaults to '\'.
SELECT ('a%b' LIKE 'a\%b' ESCAPE (SELECT x FROM t1));
SELECT ('a%b' LIKE 'ax%b' ESCAPE (SELECT x FROM t1));

# The escape string is 'x'.
INSERT INTO t1 VALUES ('x');
SELECT ('a%b' LIKE 'a\%b' ESCAPE (SELECT x FROM t1));
SELECT ('a%b' LIKE 'ax%b' ESCAPE (SELECT x FROM t1));

# The escape string cannot have more than one character.
--error ER_WRONG_ARGUMENTS
SELECT ('a%b' LIKE 'ax%b' ESCAPE (SELECT 'xy' FROM t1));

# The subquery cannot return more than one row.
INSERT INTO t1 VALUES ('y');
--error ER_SUBQUERY_NO_1_ROW
SELECT ('a%b' LIKE 'ax%b' ESCAPE (SELECT x FROM t1));
DELETE FROM t1 WHERE x = 'y';

# The escape clause must have exactly one column.
--error ER_OPERAND_COLUMNS
SELECT ('a%b' LIKE 'ax%b' ESCAPE (SELECT x, x FROM t1));
--error ER_OPERAND_COLUMNS
SELECT ('a%b' LIKE 'ax%b' ESCAPE ('x', 'y'));

# The escape clause needs to be constant during execution.
--error ER_WRONG_ARGUMENTS
SELECT ('a%b' LIKE 'ax%b' ESCAPE x) FROM t1;

# Also test on an indexed column to exercise the range optimizer.
# (The range optimizer will give up because it doesn't know the
# value of the escape character, so the query execution plan will
# not actually use range optimization.)
CREATE TABLE t2(x int, y varchar(100)) ENGINE=InnoDB;
CREATE INDEX idx ON t2(y);
INSERT INTO t2 VALUES (1, 'abcd'), (2, 'ab%cde');
ANALYZE TABLE t2;
let $query=
SELECT * FROM t2 WHERE y LIKE 'abc%%' ESCAPE (SELECT 'c' FROM t1) ORDER BY y;
eval EXPLAIN $query;
eval $query;

DROP TABLE t1, t2;

--echo # Bug#20035071: Out of range error in subselect lead to assertion failed

CREATE TABLE t1(a INTEGER) engine=innodb;
--error ER_DATA_OUT_OF_RANGE
SELECT 1 FROM t1 HAVING (SELECT 1 FROM t1) LIKE EXP(NOW());
DROP TABLE t1;

Man Man