summaryrefslogtreecommitdiff
path: root/sql/item_sum.cc
diff options
context:
space:
mode:
authorunknown <monty@nosik.monty.fi>2006-11-21 23:12:45 +0200
committerunknown <monty@nosik.monty.fi>2006-11-21 23:12:45 +0200
commit42c4df3fffa094fbdf1a1b0534bd8c219a512f30 (patch)
tree92c5d6bff5c91f7ab015fea75f2a0f3f14accbfa /sql/item_sum.cc
parenta3fcd8b28d0386e680a356499a47bf6164665c35 (diff)
parent22b80d14be0d7ef91a59c58becb16683ecf89bad (diff)
downloadmariadb-git-42c4df3fffa094fbdf1a1b0534bd8c219a512f30.tar.gz
Merge bk-internal.mysql.com:/home/bk/mysql-5.1
into mysql.com:/home/my/mysql-5.1 client/mysql.cc: Auto merged client/mysqlbinlog.cc: Auto merged mysql-test/mysql-test-run-shell.sh: Auto merged mysql-test/lib/mtr_report.pl: Auto merged mysql-test/r/connect.result: Auto merged mysql-test/r/drop.result: Auto merged mysql-test/r/information_schema.result: Auto merged mysql-test/r/rpl_ndb_dd_advance.result: Auto merged mysql-test/r/show_check.result: Auto merged mysql-test/t/information_schema.test: Auto merged mysql-test/t/mysqldump.test: Auto merged mysql-test/t/rpl_ndb_dd_advance.test: Auto merged mysql-test/t/system_mysql_db_fix.test: Auto merged sql/field.cc: Auto merged sql/field.h: Auto merged sql/item_sum.cc: Auto merged sql/mysql_priv.h: Auto merged sql/mysqld.cc: Auto merged sql/sql_class.cc: Auto merged sql/sql_select.cc: Auto merged sql/table.cc: Auto merged storage/federated/ha_federated.cc: Auto merged storage/myisam/ha_myisam.cc: Auto merged client/mysql_upgrade.c: Manual merge client/mysqltest.c: Manual merge mysql-test/mysql-test-run.pl: Manual merge storage/innobase/handler/ha_innodb.cc: Manual merge
Diffstat (limited to 'sql/item_sum.cc')
-rw-r--r--sql/item_sum.cc11
1 files changed, 7 insertions, 4 deletions
diff --git a/sql/item_sum.cc b/sql/item_sum.cc
index 1cb943e45c2..c7bf23688da 100644
--- a/sql/item_sum.cc
+++ b/sql/item_sum.cc
@@ -2929,13 +2929,14 @@ int group_concat_key_cmp_with_distinct(void* arg, byte* key1,
*/
Field *field= (*field_item)->get_tmp_table_field();
/*
- If field_item is a const item then either get_tp_table_field returns 0
+ If field_item is a const item then either get_tmp_table_field returns 0
or it is an item over a const table.
*/
if (field && !(*field_item)->const_item())
{
int res;
- uint offset= field->offset() - table->s->null_bytes;
+ uint offset= (field->offset(field->table->record[0]) -
+ table->s->null_bytes);
if ((res= field->cmp((char *) key1 + offset, (char *) key2 + offset)))
return res;
}
@@ -2973,7 +2974,8 @@ int group_concat_key_cmp_with_order(void* arg, byte* key1, byte* key2)
if (field && !item->const_item())
{
int res;
- uint offset= field->offset() - table->s->null_bytes;
+ uint offset= (field->offset(field->table->record[0]) -
+ table->s->null_bytes);
if ((res= field->cmp((char *) key1 + offset, (char *) key2 + offset)))
return (*order_item)->asc ? res : -res;
}
@@ -3041,7 +3043,8 @@ int dump_leaf_key(byte* key, element_count count __attribute__((unused)),
because it contains both order and arg list fields.
*/
Field *field= (*arg)->get_tmp_table_field();
- uint offset= field->offset() - table->s->null_bytes;
+ uint offset= (field->offset(field->table->record[0]) -
+ table->s->null_bytes);
DBUG_ASSERT(offset < table->s->reclength);
res= field->val_str(&tmp, (char *) key + offset);
}