Commit acdc193a authored by patg@krsna.patg.net's avatar patg@krsna.patg.net

Merge pgalbraith@bk-internal.mysql.com:/home/bk/mysql-5.0

into  krsna.patg.net:/home/patg/mysql-5.0
parents 12e41de0 f5fc8f31
...@@ -2137,7 +2137,8 @@ sub mysqld_start ($$$$) { ...@@ -2137,7 +2137,8 @@ sub mysqld_start ($$$$) {
{ {
if ( $pid= mtr_spawn($exe, $args, "", if ( $pid= mtr_spawn($exe, $args, "",
$master->[$idx]->{'path_myerr'}, $master->[$idx]->{'path_myerr'},
$master->[$idx]->{'path_myerr'}, "") ) $master->[$idx]->{'path_myerr'}, "",
{ append_log_file => 1 }) )
{ {
return sleep_until_file_created($master->[$idx]->{'path_mypid'}, return sleep_until_file_created($master->[$idx]->{'path_mypid'},
$master->[$idx]->{'start_timeout'}, $pid); $master->[$idx]->{'start_timeout'}, $pid);
...@@ -2148,7 +2149,8 @@ sub mysqld_start ($$$$) { ...@@ -2148,7 +2149,8 @@ sub mysqld_start ($$$$) {
{ {
if ( $pid= mtr_spawn($exe, $args, "", if ( $pid= mtr_spawn($exe, $args, "",
$slave->[$idx]->{'path_myerr'}, $slave->[$idx]->{'path_myerr'},
$slave->[$idx]->{'path_myerr'}, "") ) $slave->[$idx]->{'path_myerr'}, "",
{ append_log_file => 1 }) )
{ {
return sleep_until_file_created($slave->[$idx]->{'path_mypid'}, return sleep_until_file_created($slave->[$idx]->{'path_mypid'},
$master->[$idx]->{'start_timeout'}, $pid); $master->[$idx]->{'start_timeout'}, $pid);
......
...@@ -2262,3 +2262,29 @@ WEEKDAY(date) ...@@ -2262,3 +2262,29 @@ WEEKDAY(date)
1 1
DROP TABLE t1; DROP TABLE t1;
DROP VIEW v1, v2, v3; DROP VIEW v1, v2, v3;
CREATE TABLE t1 ( a int, b int );
INSERT INTO t1 VALUES (1,1),(2,2),(3,3);
CREATE VIEW v1 AS SELECT a,b FROM t1;
SELECT t1.a FROM t1 GROUP BY t1.a HAVING a > 1;
a
2
3
SELECT v1.a FROM v1 GROUP BY v1.a HAVING a > 1;
a
2
3
DROP VIEW v1;
DROP TABLE t1;
CREATE TABLE t1 ( a int, b int );
INSERT INTO t1 VALUES (1,1),(2,2),(3,3);
CREATE VIEW v1 AS SELECT a,b FROM t1;
SELECT t1.a FROM t1 GROUP BY t1.a HAVING t1.a > 1;
a
2
3
SELECT v1.a FROM v1 GROUP BY v1.a HAVING v1.a > 1;
a
2
3
DROP VIEW v1;
DROP TABLE t1;
...@@ -2139,3 +2139,29 @@ SELECT * FROM v3; ...@@ -2139,3 +2139,29 @@ SELECT * FROM v3;
DROP TABLE t1; DROP TABLE t1;
DROP VIEW v1, v2, v3; DROP VIEW v1, v2, v3;
#
# Bug #13411: crash when using non-qualified view column in HAVING clause
#
CREATE TABLE t1 ( a int, b int );
INSERT INTO t1 VALUES (1,1),(2,2),(3,3);
CREATE VIEW v1 AS SELECT a,b FROM t1;
SELECT t1.a FROM t1 GROUP BY t1.a HAVING a > 1;
SELECT v1.a FROM v1 GROUP BY v1.a HAVING a > 1;
DROP VIEW v1;
DROP TABLE t1;
#
# Bug #13410: failed name resolution for qualified view column in HAVING
#
CREATE TABLE t1 ( a int, b int );
INSERT INTO t1 VALUES (1,1),(2,2),(3,3);
CREATE VIEW v1 AS SELECT a,b FROM t1;
SELECT t1.a FROM t1 GROUP BY t1.a HAVING t1.a > 1;
SELECT v1.a FROM v1 GROUP BY v1.a HAVING v1.a > 1;
DROP VIEW v1;
DROP TABLE t1;
...@@ -1687,7 +1687,7 @@ bool Item_field::eq(const Item *item, bool binary_cmp) const ...@@ -1687,7 +1687,7 @@ bool Item_field::eq(const Item *item, bool binary_cmp) const
return 0; return 0;
Item_field *item_field= (Item_field*) item; Item_field *item_field= (Item_field*) item;
if (item_field->field) if (item_field->field && field)
return item_field->field == field; return item_field->field == field;
/* /*
We may come here when we are trying to find a function in a GROUP BY We may come here when we are trying to find a function in a GROUP BY
...@@ -1701,10 +1701,10 @@ bool Item_field::eq(const Item *item, bool binary_cmp) const ...@@ -1701,10 +1701,10 @@ bool Item_field::eq(const Item *item, bool binary_cmp) const
*/ */
return (!my_strcasecmp(system_charset_info, item_field->name, return (!my_strcasecmp(system_charset_info, item_field->name,
field_name) && field_name) &&
(!item_field->table_name || (!item_field->table_name || !table_name ||
(!my_strcasecmp(table_alias_charset, item_field->table_name, (!my_strcasecmp(table_alias_charset, item_field->table_name,
table_name) && table_name) &&
(!item_field->db_name || (!item_field->db_name || !db_name ||
(item_field->db_name && !strcmp(item_field->db_name, (item_field->db_name && !strcmp(item_field->db_name,
db_name)))))); db_name))))));
} }
...@@ -2983,7 +2983,7 @@ static Item** find_field_in_group_list(Item *find_item, ORDER *group_list) ...@@ -2983,7 +2983,7 @@ static Item** find_field_in_group_list(Item *find_item, ORDER *group_list)
for (ORDER *cur_group= group_list ; cur_group ; cur_group= cur_group->next) for (ORDER *cur_group= group_list ; cur_group ; cur_group= cur_group->next)
{ {
if ((*(cur_group->item))->type() == Item::FIELD_ITEM) if ((*(cur_group->item))->real_item()->type() == Item::FIELD_ITEM)
{ {
cur_field= (Item_field*) *cur_group->item; cur_field= (Item_field*) *cur_group->item;
cur_match_degree= 0; cur_match_degree= 0;
......
...@@ -3459,7 +3459,7 @@ find_item_in_list(Item *find, List<Item> &items, uint *counter, ...@@ -3459,7 +3459,7 @@ find_item_in_list(Item *find, List<Item> &items, uint *counter,
} }
} }
} }
else if (!table_name && (item->eq(find,0) || else if (!table_name && (find->eq(item,0) ||
find->name && item->name && find->name && item->name &&
!my_strcasecmp(system_charset_info, !my_strcasecmp(system_charset_info,
item->name,find->name))) item->name,find->name)))
......
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