Commit 97d30585 authored by unknown's avatar unknown

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
parent 445672f0
...@@ -784,32 +784,32 @@ t2.flag_value IS NULL; ...@@ -784,32 +784,32 @@ t2.flag_value IS NULL;
flag_name flag_value flag_name flag_value
flag2 NULL flag2 NULL
DROP TABLE t1,t2; DROP TABLE t1,t2;
CREATE TABLE invoice ( CREATE TABLE t1 (
id int(11) unsigned NOT NULL auto_increment, id int(11) unsigned NOT NULL auto_increment,
text_id int(10) unsigned default NULL, text_id int(10) unsigned default NULL,
PRIMARY KEY (id) PRIMARY KEY (id)
); );
INSERT INTO invoice VALUES("1", "0"); INSERT INTO t1 VALUES("1", "0");
INSERT INTO invoice VALUES("2", "10"); INSERT INTO t1 VALUES("2", "10");
CREATE TABLE text_table ( CREATE TABLE t2 (
text_id char(3) NOT NULL default '', text_id char(3) NOT NULL default '',
language_id char(3) NOT NULL default '', language_id char(3) NOT NULL default '',
text_data text, text_data text,
PRIMARY KEY (text_id,language_id) PRIMARY KEY (text_id,language_id)
); );
INSERT INTO text_table VALUES("0", "EN", "0-EN"); INSERT INTO t2 VALUES("0", "EN", "0-EN");
INSERT INTO text_table VALUES("0", "SV", "0-SV"); INSERT INTO t2 VALUES("0", "SV", "0-SV");
INSERT INTO text_table VALUES("10", "EN", "10-EN"); INSERT INTO t2 VALUES("10", "EN", "10-EN");
INSERT INTO text_table VALUES("10", "SV", "10-SV"); INSERT INTO t2 VALUES("10", "SV", "10-SV");
SELECT invoice.id, invoice.text_id, text_table.text_data SELECT t1.id, t1.text_id, t2.text_data
FROM invoice LEFT JOIN text_table FROM t1 LEFT JOIN t2
ON invoice.text_id = text_table.text_id ON t1.text_id = t2.text_id
AND text_table.language_id = 'SV' AND t2.language_id = 'SV'
WHERE (invoice.id LIKE '%' OR text_table.text_data LIKE '%'); WHERE (t1.id LIKE '%' OR t2.text_data LIKE '%');
id text_id text_data id text_id text_data
1 0 0-SV 1 0 0-SV
2 10 10-SV 2 10 10-SV
DROP TABLE invoice, text_table; DROP TABLE t1, t2;
CREATE TABLE t0 (a0 int PRIMARY KEY); CREATE TABLE t0 (a0 int PRIMARY KEY);
CREATE TABLE t1 (a1 int PRIMARY KEY); CREATE TABLE t1 (a1 int PRIMARY KEY);
CREATE TABLE t2 (a2 int); CREATE TABLE t2 (a2 int);
......
...@@ -554,34 +554,34 @@ SELECT t1.flag_name,t2.flag_value ...@@ -554,34 +554,34 @@ SELECT t1.flag_name,t2.flag_value
DROP TABLE t1,t2; DROP TABLE t1,t2;
CREATE TABLE invoice ( CREATE TABLE t1 (
id int(11) unsigned NOT NULL auto_increment, id int(11) unsigned NOT NULL auto_increment,
text_id int(10) unsigned default NULL, text_id int(10) unsigned default NULL,
PRIMARY KEY (id) PRIMARY KEY (id)
); );
INSERT INTO invoice VALUES("1", "0"); INSERT INTO t1 VALUES("1", "0");
INSERT INTO invoice VALUES("2", "10"); INSERT INTO t1 VALUES("2", "10");
CREATE TABLE text_table ( CREATE TABLE t2 (
text_id char(3) NOT NULL default '', text_id char(3) NOT NULL default '',
language_id char(3) NOT NULL default '', language_id char(3) NOT NULL default '',
text_data text, text_data text,
PRIMARY KEY (text_id,language_id) PRIMARY KEY (text_id,language_id)
); );
INSERT INTO text_table VALUES("0", "EN", "0-EN"); INSERT INTO t2 VALUES("0", "EN", "0-EN");
INSERT INTO text_table VALUES("0", "SV", "0-SV"); INSERT INTO t2 VALUES("0", "SV", "0-SV");
INSERT INTO text_table VALUES("10", "EN", "10-EN"); INSERT INTO t2 VALUES("10", "EN", "10-EN");
INSERT INTO text_table VALUES("10", "SV", "10-SV"); INSERT INTO t2 VALUES("10", "SV", "10-SV");
SELECT invoice.id, invoice.text_id, text_table.text_data SELECT t1.id, t1.text_id, t2.text_data
FROM invoice LEFT JOIN text_table FROM t1 LEFT JOIN t2
ON invoice.text_id = text_table.text_id ON t1.text_id = t2.text_id
AND text_table.language_id = 'SV' AND t2.language_id = 'SV'
WHERE (invoice.id LIKE '%' OR text_table.text_data LIKE '%'); WHERE (t1.id LIKE '%' OR t2.text_data LIKE '%');
DROP TABLE invoice, text_table; DROP TABLE t1, t2;
# Test for bug #5896 # Test for bug #5896
......
...@@ -264,6 +264,7 @@ class Item_func_trig_cond: public Item_bool_func ...@@ -264,6 +264,7 @@ class Item_func_trig_cond: public Item_bool_func
longlong val_int() { return *trig_var ? args[0]->val_int() : 1; } longlong val_int() { return *trig_var ? args[0]->val_int() : 1; }
enum Functype functype() const { return TRIG_COND_FUNC; }; enum Functype functype() const { return TRIG_COND_FUNC; };
const char *func_name() const { return "trigcond"; }; const char *func_name() const { return "trigcond"; };
bool const_item() const { return FALSE; }
}; };
class Item_func_not_all :public Item_func_not class Item_func_not_all :public Item_func_not
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment