mirror of
https://github.com/MariaDB/server.git
synced 2025-01-16 20:12:31 +01:00
Fix for valgrind failures in get_mm_tree.
mysql-test/r/join_outer.result: Corrected table names mysql-test/t/join_outer.test: Corrected table names sql/item_cmpfunc.h: Fix for valgrind failure (unitialized read Item_func_trig_cond->const_item_cache in get_mm_tree): Since get_mm_tree can be called for an instance of Item_func_trig_cond, make Item_func_trig_cond::const_item() return false. get_mm_tree will assume Item_func_trig_cond are unknown functions and will not build range access plans for them
This commit is contained in:
parent
445672f0e2
commit
97d30585c5
3 changed files with 29 additions and 28 deletions
|
@ -784,32 +784,32 @@ t2.flag_value IS NULL;
|
|||
flag_name flag_value
|
||||
flag2 NULL
|
||||
DROP TABLE t1,t2;
|
||||
CREATE TABLE invoice (
|
||||
CREATE TABLE t1 (
|
||||
id int(11) unsigned NOT NULL auto_increment,
|
||||
text_id int(10) unsigned default NULL,
|
||||
PRIMARY KEY (id)
|
||||
);
|
||||
INSERT INTO invoice VALUES("1", "0");
|
||||
INSERT INTO invoice VALUES("2", "10");
|
||||
CREATE TABLE text_table (
|
||||
INSERT INTO t1 VALUES("1", "0");
|
||||
INSERT INTO t1 VALUES("2", "10");
|
||||
CREATE TABLE t2 (
|
||||
text_id char(3) NOT NULL default '',
|
||||
language_id char(3) NOT NULL default '',
|
||||
text_data text,
|
||||
PRIMARY KEY (text_id,language_id)
|
||||
);
|
||||
INSERT INTO text_table VALUES("0", "EN", "0-EN");
|
||||
INSERT INTO text_table VALUES("0", "SV", "0-SV");
|
||||
INSERT INTO text_table VALUES("10", "EN", "10-EN");
|
||||
INSERT INTO text_table VALUES("10", "SV", "10-SV");
|
||||
SELECT invoice.id, invoice.text_id, text_table.text_data
|
||||
FROM invoice LEFT JOIN text_table
|
||||
ON invoice.text_id = text_table.text_id
|
||||
AND text_table.language_id = 'SV'
|
||||
WHERE (invoice.id LIKE '%' OR text_table.text_data LIKE '%');
|
||||
INSERT INTO t2 VALUES("0", "EN", "0-EN");
|
||||
INSERT INTO t2 VALUES("0", "SV", "0-SV");
|
||||
INSERT INTO t2 VALUES("10", "EN", "10-EN");
|
||||
INSERT INTO t2 VALUES("10", "SV", "10-SV");
|
||||
SELECT t1.id, t1.text_id, t2.text_data
|
||||
FROM t1 LEFT JOIN t2
|
||||
ON t1.text_id = t2.text_id
|
||||
AND t2.language_id = 'SV'
|
||||
WHERE (t1.id LIKE '%' OR t2.text_data LIKE '%');
|
||||
id text_id text_data
|
||||
1 0 0-SV
|
||||
2 10 10-SV
|
||||
DROP TABLE invoice, text_table;
|
||||
DROP TABLE t1, t2;
|
||||
CREATE TABLE t0 (a0 int PRIMARY KEY);
|
||||
CREATE TABLE t1 (a1 int PRIMARY KEY);
|
||||
CREATE TABLE t2 (a2 int);
|
||||
|
|
|
@ -554,34 +554,34 @@ SELECT t1.flag_name,t2.flag_value
|
|||
|
||||
DROP TABLE t1,t2;
|
||||
|
||||
CREATE TABLE invoice (
|
||||
CREATE TABLE t1 (
|
||||
id int(11) unsigned NOT NULL auto_increment,
|
||||
text_id int(10) unsigned default NULL,
|
||||
PRIMARY KEY (id)
|
||||
);
|
||||
|
||||
INSERT INTO invoice VALUES("1", "0");
|
||||
INSERT INTO invoice VALUES("2", "10");
|
||||
INSERT INTO t1 VALUES("1", "0");
|
||||
INSERT INTO t1 VALUES("2", "10");
|
||||
|
||||
CREATE TABLE text_table (
|
||||
CREATE TABLE t2 (
|
||||
text_id char(3) NOT NULL default '',
|
||||
language_id char(3) NOT NULL default '',
|
||||
text_data text,
|
||||
PRIMARY KEY (text_id,language_id)
|
||||
);
|
||||
|
||||
INSERT INTO text_table VALUES("0", "EN", "0-EN");
|
||||
INSERT INTO text_table VALUES("0", "SV", "0-SV");
|
||||
INSERT INTO text_table VALUES("10", "EN", "10-EN");
|
||||
INSERT INTO text_table VALUES("10", "SV", "10-SV");
|
||||
INSERT INTO t2 VALUES("0", "EN", "0-EN");
|
||||
INSERT INTO t2 VALUES("0", "SV", "0-SV");
|
||||
INSERT INTO t2 VALUES("10", "EN", "10-EN");
|
||||
INSERT INTO t2 VALUES("10", "SV", "10-SV");
|
||||
|
||||
SELECT invoice.id, invoice.text_id, text_table.text_data
|
||||
FROM invoice LEFT JOIN text_table
|
||||
ON invoice.text_id = text_table.text_id
|
||||
AND text_table.language_id = 'SV'
|
||||
WHERE (invoice.id LIKE '%' OR text_table.text_data LIKE '%');
|
||||
SELECT t1.id, t1.text_id, t2.text_data
|
||||
FROM t1 LEFT JOIN t2
|
||||
ON t1.text_id = t2.text_id
|
||||
AND t2.language_id = 'SV'
|
||||
WHERE (t1.id LIKE '%' OR t2.text_data LIKE '%');
|
||||
|
||||
DROP TABLE invoice, text_table;
|
||||
DROP TABLE t1, t2;
|
||||
|
||||
# Test for bug #5896
|
||||
|
||||
|
|
|
@ -264,6 +264,7 @@ public:
|
|||
longlong val_int() { return *trig_var ? args[0]->val_int() : 1; }
|
||||
enum Functype functype() const { return TRIG_COND_FUNC; };
|
||||
const char *func_name() const { return "trigcond"; };
|
||||
bool const_item() const { return FALSE; }
|
||||
};
|
||||
|
||||
class Item_func_not_all :public Item_func_not
|
||||
|
|
Loading…
Reference in a new issue