Commit a39f98d6 authored by wax@kishkin.ru's avatar wax@kishkin.ru

BUG

correct bugs #833 and #836
parent 42171225
...@@ -1466,7 +1466,7 @@ int group_concat_key_cmp_with_distinct(void* arg, byte* key1, ...@@ -1466,7 +1466,7 @@ int group_concat_key_cmp_with_distinct(void* arg, byte* key1,
for (uint i= 0; i < item->arg_count_field; i++) for (uint i= 0; i < item->arg_count_field; i++)
{ {
Item *field_item= item->args[i]; Item *field_item= item->args[i];
Field *field= field_item->tmp_table_field(); Field *field= field_item->real_item()->tmp_table_field();
if (field) if (field)
{ {
uint offset= field->abs_offset; uint offset= field->abs_offset;
...@@ -1497,7 +1497,7 @@ int group_concat_key_cmp_with_order(void* arg, byte* key1, byte* key2) ...@@ -1497,7 +1497,7 @@ int group_concat_key_cmp_with_order(void* arg, byte* key1, byte* key2)
{ {
ORDER *order_item= item->order[i]; ORDER *order_item= item->order[i];
Item *item= *order_item->item; Item *item= *order_item->item;
Field *field= item->tmp_table_field(); Field *field= item->real_item()->tmp_table_field();
if (field) if (field)
{ {
uint offset= field->abs_offset; uint offset= field->abs_offset;
...@@ -1548,7 +1548,7 @@ int dump_leaf_key(byte* key, uint32 count __attribute__((unused)), ...@@ -1548,7 +1548,7 @@ int dump_leaf_key(byte* key, uint32 count __attribute__((unused)),
Item *show_item= group_concat_item->args[i]; Item *show_item= group_concat_item->args[i];
if (!show_item->const_item()) if (!show_item->const_item())
{ {
Field *f= show_item->tmp_table_field(); Field *f= show_item->real_item()->tmp_table_field();
char *sv= f->ptr; char *sv= f->ptr;
f->ptr= (char *)key + f->abs_offset; f->ptr= (char *)key + f->abs_offset;
String *res= f->val_str(&tmp,&tmp2); String *res= f->val_str(&tmp,&tmp2);
...@@ -1716,7 +1716,7 @@ bool Item_func_group_concat::add() ...@@ -1716,7 +1716,7 @@ bool Item_func_group_concat::add()
Item *show_item= args[i]; Item *show_item= args[i];
if (!show_item->const_item()) if (!show_item->const_item())
{ {
Field *f= show_item->tmp_table_field(); Field *f= show_item->real_item()->tmp_table_field();
if (!f->is_null()) if (!f->is_null())
{ {
record_is_null= FALSE; record_is_null= FALSE;
......
...@@ -734,4 +734,5 @@ class Item_func_group_concat : public Item_sum ...@@ -734,4 +734,5 @@ class Item_func_group_concat : public Item_sum
} }
String* val_str(String* str); String* val_str(String* str);
Item *copy_or_same(THD* thd); Item *copy_or_same(THD* thd);
void no_rows_in_result() {}
}; };
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