mirror of
https://github.com/MariaDB/server.git
synced 2025-01-17 20:42:30 +01:00
Merge rurik.mysql.com:/home/igor/mysql-4.1
into rurik.mysql.com:/home/igor/dev/mysql-4.1-0
This commit is contained in:
commit
c35bb07954
3 changed files with 107 additions and 0 deletions
|
@ -800,3 +800,53 @@ SELECT * FROM t1, t2 WHERE num=substring(str from 1 for 6);
|
|||
str num
|
||||
notnumber 0
|
||||
DROP TABLE t1,t2;
|
||||
CREATE TABLE t1(
|
||||
id int(11) NOT NULL auto_increment,
|
||||
pc int(11) NOT NULL default '0',
|
||||
title varchar(20) default NULL,
|
||||
PRIMARY KEY (id)
|
||||
);
|
||||
INSERT INTO t1 VALUES
|
||||
(1, 0, 'Main'),
|
||||
(2, 1, 'Toys'),
|
||||
(3, 1, 'Games');
|
||||
SELECT t1.id, CONCAT_WS('->', t3.title, t2.title, t1.title) as col1
|
||||
FROM t1 LEFT JOIN t1 AS t2 ON t1.pc=t2.id
|
||||
LEFT JOIN t1 AS t3 ON t2.pc=t3.id;
|
||||
id col1
|
||||
1 Main
|
||||
2 Main->Toys
|
||||
3 Main->Games
|
||||
SELECT t1.id, CONCAT_WS('->', t3.title, t2.title, t1.title) as col1
|
||||
FROM t1 LEFT JOIN t1 AS t2 ON t1.pc=t2.id
|
||||
LEFT JOIN t1 AS t3 ON t2.pc=t3.id
|
||||
WHERE CONCAT_WS('->', t3.title, t2.title, t1.title) LIKE '%Toys%';
|
||||
id col1
|
||||
2 Main->Toys
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1(
|
||||
trackid int(10) unsigned NOT NULL auto_increment,
|
||||
trackname varchar(100) NOT NULL default '',
|
||||
PRIMARY KEY (trackid)
|
||||
);
|
||||
CREATE TABLE t2(
|
||||
artistid int(10) unsigned NOT NULL auto_increment,
|
||||
artistname varchar(100) NOT NULL default '',
|
||||
PRIMARY KEY (artistid)
|
||||
);
|
||||
CREATE TABLE t3(
|
||||
trackid int(10) unsigned NOT NULL,
|
||||
artistid int(10) unsigned NOT NULL,
|
||||
PRIMARY KEY (trackid,artistid)
|
||||
);
|
||||
INSERT INTO t1 VALUES (1, 'April In Paris'), (2, 'Autumn In New York');
|
||||
INSERT INTO t2 VALUES (1, 'Vernon Duke');
|
||||
INSERT INTO t3 VALUES (1,1);
|
||||
SELECT CONCAT_WS(' ', trackname, artistname) trackname, artistname
|
||||
FROM t1 LEFT JOIN t3 ON t1.trackid=t3.trackid
|
||||
LEFT JOIN t2 ON t2.artistid=t3.artistid
|
||||
WHERE CONCAT_WS(' ', trackname, artistname) LIKE '%In%';
|
||||
trackname artistname
|
||||
April In Paris Vernon Duke Vernon Duke
|
||||
Autumn In New York NULL
|
||||
DROP TABLE t1,t2,t3;
|
||||
|
|
|
@ -541,3 +541,59 @@ SELECT * FROM t1, t2 WHERE num=str;
|
|||
SELECT * FROM t1, t2 WHERE num=substring(str from 1 for 6);
|
||||
|
||||
DROP TABLE t1,t2;
|
||||
|
||||
#
|
||||
# Bug #11469: NOT NULL optimization wrongly used for arguments of CONCAT_WS
|
||||
#
|
||||
|
||||
CREATE TABLE t1(
|
||||
id int(11) NOT NULL auto_increment,
|
||||
pc int(11) NOT NULL default '0',
|
||||
title varchar(20) default NULL,
|
||||
PRIMARY KEY (id)
|
||||
);
|
||||
|
||||
INSERT INTO t1 VALUES
|
||||
(1, 0, 'Main'),
|
||||
(2, 1, 'Toys'),
|
||||
(3, 1, 'Games');
|
||||
|
||||
SELECT t1.id, CONCAT_WS('->', t3.title, t2.title, t1.title) as col1
|
||||
FROM t1 LEFT JOIN t1 AS t2 ON t1.pc=t2.id
|
||||
LEFT JOIN t1 AS t3 ON t2.pc=t3.id;
|
||||
SELECT t1.id, CONCAT_WS('->', t3.title, t2.title, t1.title) as col1
|
||||
FROM t1 LEFT JOIN t1 AS t2 ON t1.pc=t2.id
|
||||
LEFT JOIN t1 AS t3 ON t2.pc=t3.id
|
||||
WHERE CONCAT_WS('->', t3.title, t2.title, t1.title) LIKE '%Toys%';
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
|
||||
CREATE TABLE t1(
|
||||
trackid int(10) unsigned NOT NULL auto_increment,
|
||||
trackname varchar(100) NOT NULL default '',
|
||||
PRIMARY KEY (trackid)
|
||||
);
|
||||
|
||||
CREATE TABLE t2(
|
||||
artistid int(10) unsigned NOT NULL auto_increment,
|
||||
artistname varchar(100) NOT NULL default '',
|
||||
PRIMARY KEY (artistid)
|
||||
);
|
||||
|
||||
CREATE TABLE t3(
|
||||
trackid int(10) unsigned NOT NULL,
|
||||
artistid int(10) unsigned NOT NULL,
|
||||
PRIMARY KEY (trackid,artistid)
|
||||
);
|
||||
|
||||
INSERT INTO t1 VALUES (1, 'April In Paris'), (2, 'Autumn In New York');
|
||||
INSERT INTO t2 VALUES (1, 'Vernon Duke');
|
||||
INSERT INTO t3 VALUES (1,1);
|
||||
|
||||
SELECT CONCAT_WS(' ', trackname, artistname) trackname, artistname
|
||||
FROM t1 LEFT JOIN t3 ON t1.trackid=t3.trackid
|
||||
LEFT JOIN t2 ON t2.artistid=t3.artistid
|
||||
WHERE CONCAT_WS(' ', trackname, artistname) LIKE '%In%';
|
||||
|
||||
DROP TABLE t1,t2,t3;
|
||||
|
|
|
@ -95,6 +95,7 @@ public:
|
|||
String *val_str(String *);
|
||||
void fix_length_and_dec();
|
||||
const char *func_name() const { return "concat_ws"; }
|
||||
table_map not_null_tables() const { return 0; }
|
||||
};
|
||||
|
||||
class Item_func_reverse :public Item_str_func
|
||||
|
|
Loading…
Reference in a new issue