diff options
author | unknown <monty@hundin.mysql.fi> | 2001-08-26 23:24:48 +0300 |
---|---|---|
committer | unknown <monty@hundin.mysql.fi> | 2001-08-26 23:24:48 +0300 |
commit | 30774b35493d3ad14ee40b73d4b9ffff51dd6cd1 (patch) | |
tree | 7df1f3b7860b5ebb86cad40aa765d858dcbe716b /sql | |
parent | 0733b85d75c560cc2e9cca84e490a4ccde5a945a (diff) | |
download | mariadb-git-30774b35493d3ad14ee40b73d4b9ffff51dd6cd1.tar.gz |
Fixed bug in auto-increment handling with InnoDB
Some small speedups
Docs/manual.texi:
Changelog
client/mysqldump.c:
Fixed quoting problem for table names when using --opt
mysys/mf_casecnv.c:
Speed up some common string functions
sql-bench/test-insert.sh:
Small changes that shouldn't affect results
sql-bench/test-select.sh:
Small changes that shouldn't affect results
sql/field.h:
Added reset() functions to speed up some common things
sql/gen_lex_hash.cc:
Smaller hash table
sql/ha_innobase.cc:
Fixed bug in auto-increment handling with InnoDB
Diffstat (limited to 'sql')
-rw-r--r-- | sql/field.h | 14 | ||||
-rw-r--r-- | sql/gen_lex_hash.cc | 2 | ||||
-rw-r--r-- | sql/ha_innobase.cc | 2 |
3 files changed, 17 insertions, 1 deletions
diff --git a/sql/field.h b/sql/field.h index fc0bfdc75d5..b9d8e1957c9 100644 --- a/sql/field.h +++ b/sql/field.h @@ -300,6 +300,7 @@ public: void store(const char *to,uint length); void store(double nr); void store(longlong nr); + void reset(void) { ptr[0]=0; } double val_real(void); longlong val_int(void); String *val_str(String*,String *); @@ -328,6 +329,7 @@ public: void store(const char *to,uint length); void store(double nr); void store(longlong nr); + void reset(void) { ptr[0]=ptr[1]=0; } double val_real(void); longlong val_int(void); String *val_str(String*,String *); @@ -356,6 +358,7 @@ public: void store(const char *to,uint length); void store(double nr); void store(longlong nr); + void reset(void) { ptr[0]=ptr[1]=ptr[2]=0; } double val_real(void); longlong val_int(void); String *val_str(String*,String *); @@ -389,6 +392,7 @@ public: void store(const char *to,uint length); void store(double nr); void store(longlong nr); + void reset(void) { ptr[0]=ptr[1]=ptr[2]=ptr[3]=0; } double val_real(void); longlong val_int(void); String *val_str(String*,String *); @@ -423,6 +427,7 @@ public: void store(const char *to,uint length); void store(double nr); void store(longlong nr); + void reset(void) { ptr[0]=ptr[1]=ptr[2]=ptr[3]=ptr[4]=ptr[5]=ptr[6]=ptr[7]=0; } double val_real(void); longlong val_int(void); String *val_str(String*,String *); @@ -449,6 +454,7 @@ public: void store(const char *to,uint length); void store(double nr); void store(longlong nr); + void reset(void) { bzero(ptr,sizeof(float)); } double val_real(void); longlong val_int(void); String *val_str(String*,String *); @@ -480,6 +486,7 @@ public: void store(const char *to,uint length); void store(double nr); void store(longlong nr); + void reset(void) { bzero(ptr,sizeof(double)); } double val_real(void); longlong val_int(void); String *val_str(String*,String *); @@ -505,6 +512,7 @@ public: void store(const char *to, uint length) { null[0]=1; } void store(double nr) { null[0]=1; } void store(longlong nr) { null[0]=1; } + void reset(void) {} double val_real(void) { return 0.0;} longlong val_int(void) { return 0;} String *val_str(String *value,String *value2) @@ -528,6 +536,7 @@ public: void store(const char *to,uint length); void store(double nr); void store(longlong nr); + void reset(void) { ptr[0]=ptr[1]=ptr[2]=ptr[3]=0; } double val_real(void); longlong val_int(void); String *val_str(String*,String *); @@ -588,6 +597,7 @@ public: void store(const char *to,uint length); void store(double nr); void store(longlong nr); + void reset(void) { ptr[0]=ptr[1]=ptr[2]=ptr[3]=0; } double val_real(void); longlong val_int(void); String *val_str(String*,String *); @@ -615,6 +625,7 @@ public: void store(double nr); void store(longlong nr); void store_time(TIME *ltime,timestamp_type type); + void reset(void) { ptr[0]=ptr[1]=ptr[2]=0; } double val_real(void); longlong val_int(void); String *val_str(String*,String *); @@ -643,6 +654,7 @@ public: void store(const char *to,uint length); void store(double nr); void store(longlong nr); + void reset(void) { ptr[0]=ptr[1]=ptr[2]=0; } double val_real(void); longlong val_int(void); String *val_str(String*,String *); @@ -673,6 +685,7 @@ public: void store(double nr); void store(longlong nr); void store_time(TIME *ltime,timestamp_type type); + void reset(void) { ptr[0]=ptr[1]=ptr[2]=ptr[3]=ptr[4]=ptr[5]=ptr[6]=ptr[7]=0; } double val_real(void); longlong val_int(void); String *val_str(String*,String *); @@ -922,6 +935,7 @@ public: void store(const char *to,uint length); void store(double nr); void store(longlong nr); + void reset() { bzero(ptr,packlength); } double val_real(void); longlong val_int(void); String *val_str(String*,String *); diff --git a/sql/gen_lex_hash.cc b/sql/gen_lex_hash.cc index 5eee5c6163a..d55197a8b60 100644 --- a/sql/gen_lex_hash.cc +++ b/sql/gen_lex_hash.cc @@ -472,7 +472,7 @@ int main(int argc,char **argv) int error; MY_INIT(argv[0]); - start_value=487844L; best_t1=4969454L; best_t2=2266538L; best_type=2; /* mode=4567 add=5 type: 0 */ + start_value=4597269L; best_t1=6001982L; best_t2=5063828L; best_type=4; /* mode=4513 add=8 type: 0 */ if (get_options(argc,(char **) argv)) exit(1); diff --git a/sql/ha_innobase.cc b/sql/ha_innobase.cc index fdbc0b107f5..061371eb5d4 100644 --- a/sql/ha_innobase.cc +++ b/sql/ha_innobase.cc @@ -1334,6 +1334,8 @@ ha_innobase::write_row( autoincrement field */ auto_inc = table->next_number_field->val_int(); + if (auto_inc == 0) + auto_inc= user_thd->next_insert_id; if (auto_inc != 0) { /* This call will calculate the max of the |