summaryrefslogtreecommitdiff
path: root/sql/sql_insert.cc
diff options
context:
space:
mode:
authorunknown <monty@donna.mysql.com>2000-08-16 05:14:02 +0300
committerunknown <monty@donna.mysql.com>2000-08-16 05:14:02 +0300
commite318f3a607f609c28636a9ac29cd67662166f01a (patch)
tree6c04aea21b1a42222c20034b365c343788f2335c /sql/sql_insert.cc
parent6388f02bbf7ec0bee2e3bfcce0df23146c56f092 (diff)
downloadmariadb-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.cc16
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);