diff options
author | unknown <monty@donna.mysql.com> | 2000-08-16 05:14:02 +0300 |
---|---|---|
committer | unknown <monty@donna.mysql.com> | 2000-08-16 05:14:02 +0300 |
commit | e318f3a607f609c28636a9ac29cd67662166f01a (patch) | |
tree | 6c04aea21b1a42222c20034b365c343788f2335c /sql/sql_insert.cc | |
parent | 6388f02bbf7ec0bee2e3bfcce0df23146c56f092 (diff) | |
download | mariadb-git-e318f3a607f609c28636a9ac29cd67662166f01a.tar.gz |
Delayed keys + portability fixes
client/Makefile.am:
Fix for make/bitkeeper
configure.in:
Fix for SCO and SHOW PROCESSLIST
include/Makefile.am:
Fix for make/bitkeeper
libmysql/Makefile.am:
Fix for make/bitkeeper
myisam/mi_check.c:
Fixes for delayed key handling
sql-bench/Makefile.am:
Fix for make/bitkeeper
sql/Makefile.am:
Fix for make/bitkeeper
sql/sql_insert.cc:
Added delay key creation to INSERT .. SELECT
Diffstat (limited to 'sql/sql_insert.cc')
-rw-r--r-- | sql/sql_insert.cc | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/sql/sql_insert.cc b/sql/sql_insert.cc index a7a6a6c24c7..fe8264814a6 100644 --- a/sql/sql_insert.cc +++ b/sql/sql_insert.cc @@ -1154,7 +1154,6 @@ bool delayed_insert::handle_inserts(void) int select_insert::prepare(List<Item> &values) { - TABLE *form=table; DBUG_ENTER("select_insert::prepare"); save_time_stamp=table->time_stamp; @@ -1163,15 +1162,16 @@ select_insert::prepare(List<Item> &values) if (fields->elements) { - restore_record(form,2); // Get empty record + restore_record(table,2); // Get empty record } else - form->record[0][0]=form->record[2][0]; // Fix delete marker - form->next_number_field=form->found_next_number_field; + table->record[0][0]=table->record[2][0]; // Fix delete marker + table->next_number_field=table->found_next_number_field; thd->count_cuted_fields=1; /* calc cuted fields */ thd->cuted_fields=0; if (info.handle_duplicates != DUP_REPLACE) - form->file->extra(HA_EXTRA_WRITE_CACHE); + table->file->extra(HA_EXTRA_WRITE_CACHE); + table->file->deactivate_non_unique_index((ha_rows) 0); DBUG_RETURN(0); } @@ -1213,14 +1213,16 @@ bool select_insert::send_data(List<Item> &values) void select_insert::send_error(uint errcode,const char *err) { ::send_error(&thd->net,errcode,err); - VOID(table->file->extra(HA_EXTRA_NO_CACHE)); + table->file->extra(HA_EXTRA_NO_CACHE); + table->file->activate_all_index(thd); } bool select_insert::send_eof() { int error; - if ((error=table->file->extra(HA_EXTRA_NO_CACHE))) + if ((error=table->file->extra(HA_EXTRA_NO_CACHE)) || + (error=table->file->activate_all_index(thd))) { table->file->print_error(error,MYF(0)); ::send_error(&thd->net); |