Below is the list of changes that have just been committed into a local
5.0 repository of monty. When monty does a push these changes will
be propagated to the main repository and, within 24 hours after the
push, to the public repository.
For information on how to access the public repository
see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html
ChangeSet
1.1926 05/06/07 05:43:59 monty@stripped +7 -0
After merge fixes
sql/sql_select.cc
1.329 05/06/07 05:43:55 monty@stripped +3 -5
Fixed problem with rollup
sql/sql_parse.cc
1.448 05/06/07 05:43:55 monty@stripped +1 -1
Remove compiler warning
sql/item_sum.cc
1.150 05/06/07 05:43:54 monty@stripped +9 -17
Fixes for group_concat and rollup (From Ramil)
sql/item_func.cc
1.214 05/06/07 05:43:54 monty@stripped +1 -1
After merge fix
sql/item.cc
1.134 05/06/07 05:43:54 monty@stripped +1 -2
Simple optimization
mysql-test/r/warnings.result
1.33 05/06/07 05:43:54 monty@stripped +24 -24
Update results
mysql-test/r/innodb.result
1.115 05/06/07 05:43:54 monty@stripped +12 -6
Update results
# This is a BitKeeper patch. What follows are the unified diffs for the
# set of deltas contained in the patch. The rest of the patch, the part
# that BitKeeper cares about, is below these diffs.
# User: monty
# Host: narttu.mysql.com
# Root: /home/my/mysql-5.0
--- 1.133/sql/item.cc 2005-06-06 21:21:25 +03:00
+++ 1.134/sql/item.cc 2005-06-07 05:43:54 +03:00
@@ -4414,8 +4414,7 @@
bool Item_direct_ref::is_null()
{
- (void) (*ref)->val_int();
- return (*ref)->null_value;
+ return (*ref)->is_null();
}
--- 1.213/sql/item_func.cc 2005-06-07 00:31:47 +03:00
+++ 1.214/sql/item_func.cc 2005-06-07 05:43:54 +03:00
@@ -2395,7 +2395,7 @@
return 0;
for (uint i=1; i < arg_count ; i++)
{
- if (val == args[i]->val() && !args[i]->null_value)
+ if (val == args[i]->val_real() && !args[i]->null_value)
return (longlong) (i);
}
}
--- 1.149/sql/item_sum.cc 2005-06-06 21:21:25 +03:00
+++ 1.150/sql/item_sum.cc 2005-06-07 05:43:54 +03:00
@@ -2615,7 +2615,6 @@
Item_func_group_concat* grp_item= (Item_func_group_concat*)arg;
TABLE *table= grp_item->table;
Item **field_item, **end;
- char *record= (char*) table->record[0] + table->s->null_bytes;
for (field_item= grp_item->args, end= field_item + grp_item->arg_count_field;
field_item < end;
@@ -2630,7 +2629,7 @@
if (field)
{
int res;
- uint offset= (uint) (field->ptr - record);
+ uint offset= field->offset() - table->s->null_bytes;
if ((res= field->cmp((char *) key1 + offset, (char *) key2 + offset)))
return res;
}
@@ -2649,7 +2648,6 @@
Item_func_group_concat* grp_item= (Item_func_group_concat*) arg;
ORDER **order_item, **end;
TABLE *table= grp_item->table;
- char *record= (char*) table->record[0] + table->s->null_bytes;
for (order_item= grp_item->order, end=order_item+ grp_item->arg_count_order;
order_item < end;
@@ -2666,7 +2664,7 @@
if (field)
{
int res;
- uint offset= (uint) (field->ptr - record);
+ uint offset= field->offset() - table->s->null_bytes;
if ((res= field->cmp((char *) key1 + offset, (char *) key2 + offset)))
return (*order_item)->asc ? res : -res;
}
@@ -2707,8 +2705,9 @@
Item_func_group_concat *item)
{
TABLE *table= item->table;
- char *record= (char*) table->record[0] + table->s->null_bytes;
- String tmp((char *)table->record[1], table->s->reclength, default_charset_info), tmp2;
+ String tmp((char *)table->record[1], table->s->reclength,
+ default_charset_info);
+ String tmp2;
String *result= &item->result;
Item **arg= item->args, **arg_end= item->args + item->arg_count_field;
@@ -2730,12 +2729,9 @@
because it contains both order and arg list fields.
*/
Field *field= (*arg)->get_tmp_table_field();
- char *save_ptr= field->ptr;
- uint offset= (uint) (save_ptr - record);
+ uint offset= field->offset() - table->s->null_bytes;
DBUG_ASSERT(offset < table->s->reclength);
- field->ptr= (char *) key + offset;
- res= field->val_str(&tmp,&tmp2);
- field->ptr= save_ptr;
+ res= field->val_str(&tmp, (char *) key + offset);
}
else
res= (*arg)->val_str(&tmp);
@@ -2917,12 +2913,8 @@
Item *show_item= args[i];
if (!show_item->const_item())
{
- /*
- Here we use real_item as we want the original field data that should
- be written to table->record[0]
- */
- Field *f= show_item->real_item()->get_tmp_table_field();
- if (f->is_null())
+ Field *f= show_item->get_tmp_table_field();
+ if (f->is_null_in_record((const uchar*) table->record[0]))
return 0; // Skip row if it contains null
}
}
--- 1.447/sql/sql_parse.cc 2005-06-07 00:31:47 +03:00
+++ 1.448/sql/sql_parse.cc 2005-06-07 05:43:55 +03:00
@@ -5028,7 +5028,7 @@
{
long stack_used;
if ((stack_used=used_stack(thd->thread_stack,(char*) &stack_used)) >=
- thread_stack - margin)
+ (long) (thread_stack - margin))
{
sprintf(errbuff[0],ER(ER_STACK_OVERRUN),stack_used,thread_stack);
my_message(ER_STACK_OVERRUN,errbuff[0],MYF(0));
--- 1.328/sql/sql_select.cc 2005-06-07 00:31:48 +03:00
+++ 1.329/sql/sql_select.cc 2005-06-07 05:43:55 +03:00
@@ -13089,16 +13089,14 @@
{
if (item->eq(*group_tmp->item,0))
{
- Item_null_result *null_item;
/*
This is an element that is used by the GROUP BY and should be
set to NULL in this level
*/
- Item_null_result *null_item;
+ Item_null_result *null_item= new (thd->mem_root) Item_null_result();
+ if (!null_item)
+ return 1;
item->maybe_null= 1; // Value will be null sometimes
- null_item= rollup.null_items[i];
- DBUG_ASSERT(null_item->result_field == 0 ||
- null_item->result_field == item->get_tmp_table_field());
null_item->result_field= item->get_tmp_table_field();
item= null_item;
break;
--- 1.114/mysql-test/r/innodb.result 2005-06-07 00:31:47 +03:00
+++ 1.115/mysql-test/r/innodb.result 2005-06-07 05:43:54 +03:00
@@ -1450,16 +1450,22 @@
test.t4 NULL
Warnings:
Error 1146 Table 'test.t4' doesn't exist
-checksum table t1, t2, t3;
+checksum table t1, t2, t3, t4;
Table Checksum
test.t1 2948697075
test.t2 1157260244
test.t3 1157260244
-checksum table t1, t2, t3 extended;
+test.t4 NULL
+Warnings:
+Error 1146 Table 'test.t4' doesn't exist
+checksum table t1, t2, t3, t4 extended;
Table Checksum
test.t1 3092701434
test.t2 1157260244
test.t3 1157260244
+test.t4 NULL
+Warnings:
+Error 1146 Table 'test.t4' doesn't exist
drop table t1,t2,t3;
create table t1 (id int, name char(10) not null, name2 char(10) not null) engine=innodb;
insert into t1 values(1,'first','fff'),(2,'second','sss'),(3,'third','ttt');
@@ -1632,14 +1638,14 @@
drop table t2, t1;
show status like "binlog_cache_use";
Variable_name Value
-Binlog_cache_use 154
+Binlog_cache_use 153
show status like "binlog_cache_disk_use";
Variable_name Value
Binlog_cache_disk_use 0
create table t1 (a int) engine=innodb;
show status like "binlog_cache_use";
Variable_name Value
-Binlog_cache_use 155
+Binlog_cache_use 154
show status like "binlog_cache_disk_use";
Variable_name Value
Binlog_cache_disk_use 1
@@ -1648,7 +1654,7 @@
commit;
show status like "binlog_cache_use";
Variable_name Value
-Binlog_cache_use 156
+Binlog_cache_use 155
show status like "binlog_cache_disk_use";
Variable_name Value
Binlog_cache_disk_use 1
@@ -1738,7 +1744,7 @@
Innodb_rows_deleted 2070
show status like "Innodb_rows_inserted";
Variable_name Value
-Innodb_rows_inserted 31709
+Innodb_rows_inserted 31718
show status like "Innodb_rows_updated";
Variable_name Value
Innodb_rows_updated 29530
--- 1.32/mysql-test/r/warnings.result 2005-06-06 21:21:22 +03:00
+++ 1.33/mysql-test/r/warnings.result 2005-06-07 05:43:54 +03:00
@@ -185,44 +185,44 @@
insert into t1 (a) values (1), (2), (3), (4), (5), (6), (7), (8), (9), (10);
update t1 set a='abc';
Warnings:
-Warning 1265 Data truncated for column 'a' at row 1
-Warning 1265 Data truncated for column 'a' at row 2
-Warning 1265 Data truncated for column 'a' at row 3
-Warning 1265 Data truncated for column 'a' at row 4
-Warning 1265 Data truncated for column 'a' at row 5
-Warning 1265 Data truncated for column 'a' at row 6
-Warning 1265 Data truncated for column 'a' at row 7
-Warning 1265 Data truncated for column 'a' at row 8
-Warning 1265 Data truncated for column 'a' at row 9
-Warning 1265 Data truncated for column 'a' at row 10
+Warning 1264 Out of range value adjusted for column 'a' at row 1
+Warning 1264 Out of range value adjusted for column 'a' at row 2
+Warning 1264 Out of range value adjusted for column 'a' at row 3
+Warning 1264 Out of range value adjusted for column 'a' at row 4
+Warning 1264 Out of range value adjusted for column 'a' at row 5
+Warning 1264 Out of range value adjusted for column 'a' at row 6
+Warning 1264 Out of range value adjusted for column 'a' at row 7
+Warning 1264 Out of range value adjusted for column 'a' at row 8
+Warning 1264 Out of range value adjusted for column 'a' at row 9
+Warning 1264 Out of range value adjusted for column 'a' at row 10
show warnings limit 2, 1;
Level Code Message
-Warning 1265 Data truncated for column 'a' at row 3
+Warning 1264 Out of range value adjusted for column 'a' at row 3
show warnings limit 0, 10;
Level Code Message
-Warning 1265 Data truncated for column 'a' at row 1
-Warning 1265 Data truncated for column 'a' at row 2
-Warning 1265 Data truncated for column 'a' at row 3
-Warning 1265 Data truncated for column 'a' at row 4
-Warning 1265 Data truncated for column 'a' at row 5
-Warning 1265 Data truncated for column 'a' at row 6
-Warning 1265 Data truncated for column 'a' at row 7
-Warning 1265 Data truncated for column 'a' at row 8
-Warning 1265 Data truncated for column 'a' at row 9
-Warning 1265 Data truncated for column 'a' at row 10
+Warning 1264 Out of range value adjusted for column 'a' at row 1
+Warning 1264 Out of range value adjusted for column 'a' at row 2
+Warning 1264 Out of range value adjusted for column 'a' at row 3
+Warning 1264 Out of range value adjusted for column 'a' at row 4
+Warning 1264 Out of range value adjusted for column 'a' at row 5
+Warning 1264 Out of range value adjusted for column 'a' at row 6
+Warning 1264 Out of range value adjusted for column 'a' at row 7
+Warning 1264 Out of range value adjusted for column 'a' at row 8
+Warning 1264 Out of range value adjusted for column 'a' at row 9
+Warning 1264 Out of range value adjusted for column 'a' at row 10
show warnings limit 9, 1;
Level Code Message
-Warning 1265 Data truncated for column 'a' at row 10
+Warning 1264 Out of range value adjusted for column 'a' at row 10
show warnings limit 10, 1;
Level Code Message
show warnings limit 9, 2;
Level Code Message
-Warning 1265 Data truncated for column 'a' at row 10
+Warning 1264 Out of range value adjusted for column 'a' at row 10
show warnings limit 0, 0;
Level Code Message
show warnings limit 1;
Level Code Message
-Warning 1265 Data truncated for column 'a' at row 1
+Warning 1264 Out of range value adjusted for column 'a' at row 1
show warnings limit 0;
Level Code Message
show warnings limit 1, 0;
| Thread |
|---|
| • bk commit into 5.0 tree (monty:1.1926) | monty | 7 Jun |