diff options
author | unknown <dlenev@mockturtle.local> | 2006-09-30 00:31:33 +0400 |
---|---|---|
committer | unknown <dlenev@mockturtle.local> | 2006-09-30 00:31:33 +0400 |
commit | 72d698e8eda764fa776063fd512e5ad61ae00636 (patch) | |
tree | e994372927f92ee4e81df497509e69c6cf3594cc /sql/sql_partition.cc | |
parent | 83caa4348aaff1728422b1c2e24323ec9312cc90 (diff) | |
parent | 33e63d3b22a85b023c0a33f93c3521708751cff9 (diff) | |
download | mariadb-git-72d698e8eda764fa776063fd512e5ad61ae00636.tar.gz |
Merge bk-internal.mysql.com:/home/bk/mysql-5.1-runtime
into mockturtle.local:/home/dlenev/src/mysql-5.1-bg20670
mysql-test/r/trigger.result:
Auto merged
mysql-test/t/trigger.test:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/opt_range.cc:
Auto merged
sql/opt_range.h:
Auto merged
sql/sql_partition.cc:
Auto merged
sql/sql_update.cc:
Auto merged
Diffstat (limited to 'sql/sql_partition.cc')
-rw-r--r-- | sql/sql_partition.cc | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/sql/sql_partition.cc b/sql/sql_partition.cc index a5dc0ab0d15..369dcb426f1 100644 --- a/sql/sql_partition.cc +++ b/sql/sql_partition.cc @@ -2037,18 +2037,17 @@ close_file: SYNOPSIS partition_key_modified table TABLE object for which partition fields are set-up - fields A list of the to be modifed + fields Bitmap representing fields to be modified RETURN VALUES TRUE Need special handling of UPDATE FALSE Normal UPDATE handling is ok */ -bool partition_key_modified(TABLE *table, List<Item> &fields) +bool partition_key_modified(TABLE *table, const MY_BITMAP *fields) { - List_iterator_fast<Item> f(fields); + Field **fld; partition_info *part_info= table->part_info; - Item_field *item_field; DBUG_ENTER("partition_key_modified"); if (!part_info) @@ -2056,9 +2055,8 @@ bool partition_key_modified(TABLE *table, List<Item> &fields) if (table->s->db_type->partition_flags && (table->s->db_type->partition_flags() & HA_CAN_UPDATE_PARTITION_KEY)) DBUG_RETURN(FALSE); - f.rewind(); - while ((item_field=(Item_field*) f++)) - if (item_field->field->flags & FIELD_IN_PART_FUNC_FLAG) + for (fld= part_info->full_part_field_array; *fld; fld++) + if (bitmap_is_set(fields, (*fld)->field_index)) DBUG_RETURN(TRUE); DBUG_RETURN(FALSE); } |