summaryrefslogtreecommitdiff
path: root/sql/ha_heap.cc
diff options
context:
space:
mode:
authorunknown <gluh@gluh.mysql.r18.ru>2005-03-17 16:51:07 +0300
committerunknown <gluh@gluh.mysql.r18.ru>2005-03-17 16:51:07 +0300
commit17791f95002b2f9c8cb31eed64c36f019b2edda9 (patch)
tree7107fca24e8d8dd39be0300a9e1e64d7ad8921a2 /sql/ha_heap.cc
parent621abfacfe316df9ce06c9d046ec11f23e543ea7 (diff)
parent3e4ae65a144d8f7a63ee5f8c4d1ec65f94f35b58 (diff)
downloadmariadb-git-17791f95002b2f9c8cb31eed64c36f019b2edda9.tar.gz
Merge 4.1 -> 5.0
heap/hp_create.c: Auto merged mysql-test/mysql-test-run.sh: Auto merged mysql-test/r/ctype_utf8.result: Auto merged mysql-test/r/olap.result: Auto merged mysql-test/t/func_str.test: Auto merged sql/item.cc: Auto merged sql/item.h: Auto merged sql/item_func.cc: Auto merged sql/item_strfunc.cc: Auto merged sql/key.cc: Auto merged sql/set_var.cc: Auto merged sql/sql_select.h: Auto merged sql/sql_string.h: Auto merged client/mysqldump.c: Manual merge mysql-test/r/func_gconcat.result: Manual merge mysql-test/r/func_str.result: Manual merge mysql-test/t/func_gconcat.test: Manual merge sql/ha_heap.cc: Manual merge sql/sql_select.cc: Manual merge
Diffstat (limited to 'sql/ha_heap.cc')
-rw-r--r--sql/ha_heap.cc14
1 files changed, 11 insertions, 3 deletions
diff --git a/sql/ha_heap.cc b/sql/ha_heap.cc
index c8d0e5c1c18..24f21718b8c 100644
--- a/sql/ha_heap.cc
+++ b/sql/ha_heap.cc
@@ -521,9 +521,17 @@ int ha_heap::create(const char *name, TABLE *table_arg,
seg->null_bit= 0;
seg->null_pos= 0;
}
- // We have to store field->key_type() as seg->type can differ from it
- if (field->flags & AUTO_INCREMENT_FLAG)
+ if (field->flags & AUTO_INCREMENT_FLAG &&
+ table_arg->found_next_number_field &&
+ key == table_arg->next_number_index)
+ {
+ /*
+ Store key number and type for found auto_increment key
+ We have to store type as seg->type can differ from it
+ */
+ auto_key= key+ 1;
auto_key_type= field->key_type();
+ }
}
}
mem_per_row+= MY_ALIGN(share->reclength + 1, sizeof(char*));
@@ -535,8 +543,8 @@ int ha_heap::create(const char *name, TABLE *table_arg,
found_real_auto_increment= share->next_number_key_offset == 0;
}
HP_CREATE_INFO hp_create_info;
+ hp_create_info.auto_key= auto_key;
hp_create_info.auto_key_type= auto_key_type;
- hp_create_info.with_auto_increment= found_real_auto_increment;
hp_create_info.auto_increment= (create_info->auto_increment_value ?
create_info->auto_increment_value - 1 : 0);
hp_create_info.max_table_size=current_thd->variables.max_heap_table_size;