Below is the list of changes that have just been committed into a local
5.0 repository of evgen. When evgen 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.2121 06/03/30 17:14:55 evgen@stripped +14 -0
Manual merge
tests/mysql_client_test.c
1.180 06/03/30 17:14:51 evgen@stripped +0 -4
Manual merge
strings/ctype-ucs2.c
1.61 06/03/30 17:14:51 evgen@stripped +0 -2
Manual merge
sql/sql_table.cc
1.303 06/03/30 17:14:51 evgen@stripped +1 -2
Manual merge
sql/sql_select.cc
1.400 06/03/30 17:14:51 evgen@stripped +4 -11
Manual merge
sql/sql_class.h
1.284 06/03/30 17:14:51 evgen@stripped +2 -3
Manual merge
sql/mysql_priv.h
1.380 06/03/30 17:14:51 evgen@stripped +2 -3
Manual merge
sql/item_sum.h
1.99 06/03/30 17:14:51 evgen@stripped +3 -6
Manual merge
sql/item_sum.cc
1.172 06/03/30 17:14:51 evgen@stripped +1 -2
Manual merge
sql/ha_heap.cc
1.77 06/03/30 17:14:51 evgen@stripped +0 -4
Manual merge
mysql-test/t/func_gconcat.test
1.40 06/03/30 17:14:51 evgen@stripped +0 -0
Manual merge
mysql-test/r/func_gconcat.result
1.53 06/03/30 17:14:51 evgen@stripped +0 -0
Manual merge
mysql-test/r/ctype_utf8.result
1.86 06/03/30 17:14:51 evgen@stripped +0 -0
Manual merge
mysql-test/t/ctype_utf8.test
1.79 06/03/30 16:58:06 evgen@stripped +0 -0
Auto merged
myisam/mi_search.c
1.61 06/03/30 16:58:06 evgen@stripped +0 -0
Auto merged
# 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: evgen
# Host: sunlight.local
# Root: /local_work/15560-bug-5.0-mysql/RESYNC
--- 1.60/myisam/mi_search.c 2005-10-27 21:04:31 +04:00
+++ 1.61/myisam/mi_search.c 2006-03-30 16:58:06 +04:00
@@ -1471,7 +1471,7 @@ _mi_calc_var_pack_key_length(MI_KEYDEF *
if (!*key++)
{
s_temp->key=key;
- s_temp->ref_length=s_temp->key_length=0;
+ s_temp->key_length= 0;
s_temp->totlength=key_length-1+diff_flag;
s_temp->next_key_pos=0; /* No next key */
return (s_temp->totlength);
@@ -1626,12 +1626,12 @@ _mi_calc_var_pack_key_length(MI_KEYDEF *
s_temp->prev_length= org_key_length;
s_temp->n_ref_length=s_temp->n_length= org_key_length;
length+= org_key_length;
- /* +get_pack_length(org_key_length); */
}
return (int) length;
}
ref_length=n_length;
+ /* Get information about not packed key suffix */
get_key_pack_length(n_length,next_length_pack,next_key);
/* Test if new keys has fewer characters that match the previous key */
@@ -1640,7 +1640,6 @@ _mi_calc_var_pack_key_length(MI_KEYDEF *
s_temp->part_of_prev_key= 0;
s_temp->prev_length= ref_length;
s_temp->n_ref_length= s_temp->n_length= n_length+ref_length;
- /* s_temp->prev_key+= get_pack_length(org_key_length); */
return (int) length+ref_length-next_length_pack;
}
if (ref_length+pack_marker > new_ref_length)
@@ -1651,9 +1650,7 @@ _mi_calc_var_pack_key_length(MI_KEYDEF *
s_temp->prev_length= ref_length - new_pack_length;
s_temp->n_ref_length=s_temp->n_length=n_length + s_temp->prev_length;
s_temp->prev_key+= new_pack_length;
-/* +get_pack_length(org_key_length); */
- length= length-get_pack_length(ref_length)+
- get_pack_length(new_pack_length);
+ length-= (next_length_pack - get_pack_length(s_temp->n_length));
return (int) length + s_temp->prev_length;
}
}
@@ -1662,7 +1659,7 @@ _mi_calc_var_pack_key_length(MI_KEYDEF *
/* Next key wasn't a prefix of previous key */
ref_length=0;
next_length_pack=0;
- }
+ }
DBUG_PRINT("test",("length: %d next_key: %lx", length,
(long) next_key));
--- 1.76/sql/ha_heap.cc 2006-02-03 00:07:27 +03:00
+++ 1.77/sql/ha_heap.cc 2006-03-30 17:14:51 +04:00
@@ -532,7 +532,7 @@ ha_rows ha_heap::records_in_range(uint i
return records;
/* Assert that info() did run. We need current statistics here. */
- DBUG_ASSERT(key_stat_version);
+ DBUG_ASSERT(key_stat_version == file->s->key_stat_version);
return key->rec_per_key[key->key_parts-1];
}
--- 1.171/sql/item_sum.cc 2006-03-05 19:47:10 +03:00
+++ 1.172/sql/item_sum.cc 2006-03-30 17:14:51 +04:00
@@ -2472,6 +2472,7 @@ void Item_sum_count_distinct::make_uniqu
{
table=0;
original= 0;
+ force_copy_fields= 1;
tree= 0;
tmp_table_param= 0;
always_null= FALSE;
@@ -2515,6 +2516,7 @@ bool Item_sum_count_distinct::setup(THD
if (always_null)
return FALSE;
count_field_types(tmp_table_param,list,0);
+ tmp_table_param->force_copy_fields= force_copy_fields;
DBUG_ASSERT(table == 0);
if (!(table= create_tmp_table(thd, tmp_table_param, list, (ORDER*) 0, 1,
0,
@@ -3022,7 +3024,7 @@ Item_func_group_concat(Name_resolution_c
bool distinct_arg, List<Item> *select_list,
SQL_LIST *order_list, String *separator_arg)
:tmp_table_param(0), warning(0),
- separator(separator_arg), tree(0), table(0),
+ force_copy_fields(0), separator(separator_arg), tree(0), table(0),
order(0), context(context_arg),
arg_count_order(order_list ? order_list->elements : 0),
arg_count_field(select_list->elements),
@@ -3075,6 +3077,7 @@ Item_func_group_concat::Item_func_group_
:Item_sum(thd, item),
tmp_table_param(item->tmp_table_param),
warning(item->warning),
+ force_copy_fields(item->force_copy_fields),
separator(item->separator),
tree(item->tree),
table(item->table),
@@ -3287,6 +3290,7 @@ bool Item_func_group_concat::setup(THD *
DBUG_RETURN(TRUE);
count_field_types(tmp_table_param,all_fields,0);
+ tmp_table_param->force_copy_fields= force_copy_fields;
DBUG_ASSERT(table == 0);
/*
We have to create a temporary table to get descriptions of fields
@@ -3349,6 +3353,7 @@ void Item_func_group_concat::make_unique
tmp_table_param= 0;
table=0;
original= 0;
+ force_copy_fields= 1;
tree= 0;
}
--- 1.98/sql/item_sum.h 2006-02-28 19:29:47 +03:00
+++ 1.99/sql/item_sum.h 2006-03-30 17:14:51 +04:00
@@ -501,6 +501,7 @@ class Item_sum_count_distinct :public It
TABLE *table;
uint32 *field_lengths;
TMP_TABLE_PARAM *tmp_table_param;
+ bool force_copy_fields;
/*
If there are no blobs, we can use a tree, which
is faster than heap table. In that case, we still use the table
@@ -524,13 +525,14 @@ class Item_sum_count_distinct :public It
public:
Item_sum_count_distinct(List<Item> &list)
:Item_sum_int(list), table(0), field_lengths(0), tmp_table_param(0),
- tree(0), original(0), always_null(FALSE)
+ tree(0), force_copy_fields(0), original(0), always_null(FALSE)
{ quick_group= 0; }
Item_sum_count_distinct(THD *thd, Item_sum_count_distinct *item)
:Item_sum_int(thd, item), table(item->table),
field_lengths(item->field_lengths),
tmp_table_param(item->tmp_table_param),
- tree(item->tree), original(item), tree_key_length(item->tree_key_length),
+ tree(item->tree), force_copy_fields(0), original(item),
+ tree_key_length(item->tree_key_length),
always_null(item->always_null)
{}
~Item_sum_count_distinct();
@@ -1086,6 +1088,7 @@ class Item_func_group_concat : public It
bool distinct;
bool warning_for_row;
bool always_null;
+ bool force_copy_fields;
bool no_appended;
/*
Following is 0 normal object and pointer to original one for copy
--- 1.379/sql/mysql_priv.h 2006-03-21 16:35:45 +03:00
+++ 1.380/sql/mysql_priv.h 2006-03-30 17:14:51 +04:00
@@ -706,6 +706,7 @@ Field *create_tmp_field(THD *thd, TABLE
Item ***copy_func, Field **from_field,
bool group, bool modify_item,
bool table_cant_handle_bit_fields,
+ bool make_copy_field,
uint convert_blob_length);
void sp_prepare_create_field(THD *thd, create_field *sql_field);
int prepare_create_field(create_field *sql_field,
--- 1.283/sql/sql_class.h 2006-03-10 17:47:43 +03:00
+++ 1.284/sql/sql_class.h 2006-03-30 17:14:51 +04:00
@@ -1829,11 +1829,12 @@ public:
aggregate functions as normal functions.
*/
bool precomputed_group_by;
+ bool force_copy_fields;
TMP_TABLE_PARAM()
:copy_field(0), group_parts(0),
group_length(0), group_null_parts(0), convert_blob_length(0),
- schema_table(0), precomputed_group_by(0)
+ schema_table(0), precomputed_group_by(0), force_copy_fields(0)
{}
~TMP_TABLE_PARAM()
{
--- 1.399/sql/sql_select.cc 2006-03-28 18:04:50 +04:00
+++ 1.400/sql/sql_select.cc 2006-03-30 17:14:51 +04:00
@@ -8294,6 +8294,7 @@ Field *create_tmp_field(THD *thd, TABLE
Item ***copy_func, Field **from_field,
bool group, bool modify_item,
bool table_cant_handle_bit_fields,
+ bool make_copy_field,
uint convert_blob_length)
{
Item::Type orig_type= type;
@@ -8373,7 +8374,13 @@ Field *create_tmp_field(THD *thd, TABLE
case Item::REF_ITEM:
case Item::NULL_ITEM:
case Item::VARBIN_ITEM:
- return create_tmp_field_from_item(thd, item, table, copy_func, modify_item,
+ if (make_copy_field)
+ {
+ DBUG_ASSERT(((Item_result_field*)item)->result_field);
+ *from_field= ((Item_result_field*)item)->result_field;
+ }
+ return create_tmp_field_from_item(thd, item, table, (make_copy_field ? 0 :
+ copy_func), modify_item,
convert_blob_length);
case Item::TYPE_HOLDER:
return ((Item_type_holder *)item)->make_field_by_type(table);
@@ -8445,6 +8452,7 @@ create_tmp_table(THD *thd,TMP_TABLE_PARA
Item **copy_func;
MI_COLUMNDEF *recinfo;
uint total_uneven_bit_length= 0;
+ bool force_copy_fields= param->force_copy_fields;
DBUG_ENTER("create_tmp_table");
DBUG_PRINT("enter",("distinct: %d save_sum_fields: %d rows_limit: %lu group: %d",
(int) distinct, (int) save_sum_fields,
@@ -8605,7 +8613,7 @@ create_tmp_table(THD *thd,TMP_TABLE_PARA
Field *new_field=
create_tmp_field(thd, table, arg, arg->type(), ©_func,
tmp_from_field, group != 0,not_all_columns,
- distinct,
+ distinct, 0,
param->convert_blob_length);
if (!new_field)
goto err; // Should be OOM
@@ -8662,7 +8670,7 @@ create_tmp_table(THD *thd,TMP_TABLE_PARA
create_tmp_field(thd, table, item, type, ©_func,
tmp_from_field, group != 0,
not_all_columns || group != 0,
- item->marker == 4,
+ item->marker == 4, 0,
param->convert_blob_length);
if (!new_field)
--- 1.302/sql/sql_table.cc 2006-03-30 08:13:19 +04:00
+++ 1.303/sql/sql_table.cc 2006-03-30 17:14:51 +04:00
@@ -1798,7 +1798,7 @@ TABLE *create_table_from_items(THD *thd,
field=item->tmp_table_field(&tmp_table);
else
field=create_tmp_field(thd, &tmp_table, item, item->type(),
- (Item ***) 0, &tmp_field, 0, 0, 0, 0);
+ (Item ***) 0, &tmp_field, 0, 0, 0, 0, 0);
if (!field ||
!(cr_field=new create_field(field,(item->type() == Item::FIELD_ITEM ?
((Item_field *)item)->field :
--- 1.85/mysql-test/r/ctype_utf8.result 2006-01-12 12:08:22 +03:00
+++ 1.86/mysql-test/r/ctype_utf8.result 2006-03-30 17:14:51 +04:00
@@ -1066,6 +1066,52 @@ LENGTH(bug)
100
DROP TABLE t2;
DROP TABLE t1;
+SET NAMES utf8;
+DROP TABLE IF EXISTS t1;
+Warnings:
+Note 1051 Unknown table 't1'
+CREATE TABLE t1(a VARCHAR(255), KEY(a)) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+INSERT INTO t1
VALUES('uuABCDEFGHIGKLMNOPRSTUVWXYZ̈bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb');
+INSERT INTO t1 VALUES('uu');
+check table t1;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+INSERT INTO t1 VALUES('uU');
+check table t1;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+INSERT INTO t1 VALUES('uu');
+check table t1;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+INSERT INTO t1 VALUES('uuABC');
+check table t1;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+INSERT INTO t1 VALUES('UuABC');
+check table t1;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+INSERT INTO t1 VALUES('uuABC');
+check table t1;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+alter table t1 add b int;
+INSERT INTO t1
VALUES('uuABCDEFGHIGKLMNOPRSTUVWXYZ̈bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',1);
+INSERT INTO t1
VALUES('uuABCDEFGHIGKLMNOPRSTUVWXYZ̈bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',2);
+delete from t1 where b=1;
+INSERT INTO t1
VALUES('UUABCDEFGHIGKLMNOPRSTUVWXYZ̈bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',1);
+check table t1;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+INSERT INTO t1
VALUES('uuABCDEFGHIGKLMNOPRSTUVWXYZ̈bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',3);
+INSERT INTO t1
VALUES('uuABCDEFGHIGKLMNOPRSTUVWXYZ̈bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',4);
+delete from t1 where b=3;
+INSERT INTO t1
VALUES('uUABCDEFGHIGKLMNOPRSTUVWXYZ̈bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',3);
+check table t1;
+Table Op Msg_type Msg_text
+test.t1 check status OK
+drop table t1;
CREATE TABLE t1(id varchar(20) NOT NULL) DEFAULT CHARSET=utf8;
INSERT INTO t1 VALUES ('xxx'), ('aa'), ('yyy'), ('aa');
SELECT id FROM t1;
--- 1.78/mysql-test/t/ctype_utf8.test 2006-01-12 10:25:38 +03:00
+++ 1.79/mysql-test/t/ctype_utf8.test 2006-03-30 16:58:06 +04:00
@@ -878,6 +878,40 @@ SELECT LENGTH(bug) FROM t2;
DROP TABLE t2;
DROP TABLE t1;
+#
+# Bug#17705: Corruption of compressed index when index length changes between
+# 254 and 256
+#
+
+SET NAMES utf8;
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1(a VARCHAR(255), KEY(a)) ENGINE=MyISAM DEFAULT CHARSET=utf8;
+INSERT INTO t1
VALUES('uuABCDEFGHIGKLMNOPRSTUVWXYZ̈bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb');
+INSERT INTO t1 VALUES('uu');
+check table t1;
+INSERT INTO t1 VALUES('uU');
+check table t1;
+INSERT INTO t1 VALUES('uu');
+check table t1;
+INSERT INTO t1 VALUES('uuABC');
+check table t1;
+INSERT INTO t1 VALUES('UuABC');
+check table t1;
+INSERT INTO t1 VALUES('uuABC');
+check table t1;
+alter table t1 add b int;
+INSERT INTO t1
VALUES('uuABCDEFGHIGKLMNOPRSTUVWXYZ̈bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',1);
+INSERT INTO t1
VALUES('uuABCDEFGHIGKLMNOPRSTUVWXYZ̈bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',2);
+delete from t1 where b=1;
+INSERT INTO t1
VALUES('UUABCDEFGHIGKLMNOPRSTUVWXYZ̈bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',1);
+check table t1;
+INSERT INTO t1
VALUES('uuABCDEFGHIGKLMNOPRSTUVWXYZ̈bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',3);
+INSERT INTO t1
VALUES('uuABCDEFGHIGKLMNOPRSTUVWXYZ̈bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',4);
+delete from t1 where b=3;
+INSERT INTO t1
VALUES('uUABCDEFGHIGKLMNOPRSTUVWXYZ̈bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb',3);
+check table t1;
+drop table t1;
+
# End of 4.1 tests
#
--- 1.179/tests/mysql_client_test.c 2006-03-10 21:47:17 +03:00
+++ 1.180/tests/mysql_client_test.c 2006-03-30 17:14:51 +04:00
@@ -12992,7 +12992,6 @@ static void test_bug9520()
}
-/*
We can't have more than one cursor open for a prepared statement.
Test re-executions of a PS with cursor; mysql_stmt_reset must close
the cursor attached to the statement, if there is one.
--- 1.52/mysql-test/r/func_gconcat.result 2006-01-21 20:02:11 +03:00
+++ 1.53/mysql-test/r/func_gconcat.result 2006-03-30 17:14:51 +04:00
@@ -596,6 +596,21 @@ GROUP_CONCAT(a ORDER BY a)
,x
,z
DROP TABLE t1;
+create table t1(f1 int);
+insert into t1 values(1),(2),(3);
+select f1, group_concat(f1+1) from t1 group by f1 with rollup;
+f1 group_concat(f1+1)
+1 2
+2 3
+3 4
+NULL 2,3,4
+select count(distinct (f1+1)) from t1 group by f1 with rollup;
+count(distinct (f1+1))
+1
+1
+1
+3
+drop table t1;
set names latin1;
create table t1 (a char, b char);
insert into t1 values ('a', 'a'), ('a', 'b'), ('b', 'a'), ('b', 'b');
--- 1.39/mysql-test/t/func_gconcat.test 2005-11-23 10:00:43 +03:00
+++ 1.40/mysql-test/t/func_gconcat.test 2006-03-30 17:14:51 +04:00
@@ -389,6 +389,14 @@ SELECT GROUP_CONCAT(a ORDER BY a) FROM t
DROP TABLE t1;
+#
+# Bug #15560: GROUP_CONCAT wasn't ready for WITH ROLLUP queries
+#
+create table t1(f1 int);
+insert into t1 values(1),(2),(3);
+select f1, group_concat(f1+1) from t1 group by f1 with rollup;
+select count(distinct (f1+1)) from t1 group by f1 with rollup;
+drop table t1;
# End of 4.1 tests
#
| Thread |
|---|
| • bk commit into 5.0 tree (evgen:1.2121) | eugene | 30 Mar |