summaryrefslogtreecommitdiff
path: root/sql
diff options
context:
space:
mode:
authorunknown <monty@hundin.mysql.fi>2001-08-26 23:24:48 +0300
committerunknown <monty@hundin.mysql.fi>2001-08-26 23:24:48 +0300
commit30774b35493d3ad14ee40b73d4b9ffff51dd6cd1 (patch)
tree7df1f3b7860b5ebb86cad40aa765d858dcbe716b /sql
parent0733b85d75c560cc2e9cca84e490a4ccde5a945a (diff)
downloadmariadb-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.h14
-rw-r--r--sql/gen_lex_hash.cc2
-rw-r--r--sql/ha_innobase.cc2
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