mirror of
https://github.com/MariaDB/server.git
synced 2025-08-07 00:04:31 +03: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:
@@ -800,3 +800,53 @@ SELECT * FROM t1, t2 WHERE num=substring(str from 1 for 6);
|
|||||||
str num
|
str num
|
||||||
notnumber 0
|
notnumber 0
|
||||||
DROP TABLE t1,t2;
|
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);
|
SELECT * FROM t1, t2 WHERE num=substring(str from 1 for 6);
|
||||||
|
|
||||||
DROP TABLE t1,t2;
|
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 *);
|
String *val_str(String *);
|
||||||
void fix_length_and_dec();
|
void fix_length_and_dec();
|
||||||
const char *func_name() const { return "concat_ws"; }
|
const char *func_name() const { return "concat_ws"; }
|
||||||
|
table_map not_null_tables() const { return 0; }
|
||||||
};
|
};
|
||||||
|
|
||||||
class Item_func_reverse :public Item_str_func
|
class Item_func_reverse :public Item_str_func
|
||||||
|
Reference in New Issue
Block a user