diff options
author | unknown <monty@mysql.com> | 2005-03-16 01:15:45 +0200 |
---|---|---|
committer | unknown <monty@mysql.com> | 2005-03-16 01:15:45 +0200 |
commit | da911ec8f150102029708f0abd7d1718c475702b (patch) | |
tree | 1c3a9f53159792621bebada164d840c322b55bf5 | |
parent | e656fba7788dcb42c2c74a6f5a575f28e284aa03 (diff) | |
download | mariadb-git-da911ec8f150102029708f0abd7d1718c475702b.tar.gz |
Partly reverty back patch (in heap-auto-increment-key detection) to ensure that auto_key and auto_key_type are calculated the same way
heap/hp_create.c:
Partly reverty back patch to ensure that auto_key and auto_key_type are calculated the same way
include/heap.h:
Partly reverty back patch to ensure that auto_key and auto_key_type are calculated the same way
mysql-test/mysql-test-run.sh:
made --skip-ndb a synonyme for --skip-ndbcluster
sql/ha_heap.cc:
Partly reverty back patch to ensure that auto_key and auto_key_type are calculated the same way
-rw-r--r-- | heap/hp_create.c | 3 | ||||
-rw-r--r-- | include/heap.h | 2 | ||||
-rw-r--r-- | mysql-test/mysql-test-run.sh | 2 | ||||
-rw-r--r-- | sql/ha_heap.cc | 20 |
4 files changed, 15 insertions, 12 deletions
diff --git a/heap/hp_create.c b/heap/hp_create.c index b1b132a16fb..af32fefea1b 100644 --- a/heap/hp_create.c +++ b/heap/hp_create.c @@ -137,8 +137,6 @@ int heap_create(const char *name, uint keys, HP_KEYDEF *keydef, keyinfo->write_key= hp_write_key; keyinfo->hash_buckets= 0; } - if ((keyinfo->flag & HA_AUTO_KEY) && create_info->with_auto_increment) - share->auto_key= i + 1; } share->min_records= min_records; share->max_records= max_records; @@ -149,6 +147,7 @@ int heap_create(const char *name, uint keys, HP_KEYDEF *keydef, share->keys= keys; share->max_key_length= max_length; share->changed= 0; + share->auto_key= create_info->auto_key; share->auto_key_type= create_info->auto_key_type; share->auto_increment= create_info->auto_increment; /* Must be allocated separately for rename to work */ diff --git a/include/heap.h b/include/heap.h index 51f7b0cfa6a..badec9ce2ef 100644 --- a/include/heap.h +++ b/include/heap.h @@ -181,8 +181,10 @@ typedef struct st_heap_info LIST open_list; } HP_INFO; + typedef struct st_heap_create_info { + uint auto_key; /* keynr [1 - maxkey] for auto key */ uint auto_key_type; ulong max_table_size; ulonglong auto_increment; diff --git a/mysql-test/mysql-test-run.sh b/mysql-test/mysql-test-run.sh index 90846a2711a..aab2b1d7da2 100644 --- a/mysql-test/mysql-test-run.sh +++ b/mysql-test/mysql-test-run.sh @@ -426,7 +426,7 @@ while test $# -gt 0; do TMP=`$ECHO "$1" | $SED -e "s;--valgrind-options=;;"` VALGRIND="$VALGRIND $TMP" ;; - --skip-ndbcluster) + --skip-ndbcluster | --skip-ndb) USE_NDBCLUSTER="" EXTRA_MASTER_MYSQLD_OPT="$EXTRA_MASTER_MYSQLD_OPT $1" EXTRA_SLAVE_MYSQLD_OPT="$EXTRA_SLAVE_MYSQLD_OPT $1" diff --git a/sql/ha_heap.cc b/sql/ha_heap.cc index c483ab8fffa..4dc48c7422b 100644 --- a/sql/ha_heap.cc +++ b/sql/ha_heap.cc @@ -446,7 +446,6 @@ int ha_heap::create(const char *name, TABLE *table_arg, HA_KEYSEG *seg; char buff[FN_REFLEN]; int error; - bool found_real_auto_increment= 0; for (key= parts= 0; key < table_arg->keys; key++) parts+= table_arg->key_info[key].key_parts; @@ -507,20 +506,23 @@ 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(); + } } } - if (table_arg->found_next_number_field) - { - keydef[table_arg->next_number_index].flag|= HA_AUTO_KEY; - found_real_auto_increment= table_arg->next_number_key_offset == 0; - } mem_per_row+= MY_ALIGN(table_arg->reclength + 1, sizeof(char*)); 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; |