diff options
author | unknown <monty@hundin.mysql.fi> | 2001-11-25 13:50:48 +0200 |
---|---|---|
committer | unknown <monty@hundin.mysql.fi> | 2001-11-25 13:50:48 +0200 |
commit | 2239aa172b9a7e0100f0ab98e7e421bc0cfeb270 (patch) | |
tree | 20c1ecfa7529a49fc978cd3d82ae1115d507a9c0 /sql | |
parent | e585c81a869ddf4a1be91d04ef3d69f2e969dcb7 (diff) | |
download | mariadb-git-2239aa172b9a7e0100f0ab98e7e421bc0cfeb270.tar.gz |
Fixes for embedded version.
BitKeeper/deleted/.del-WHITEPAPER~da1226799debcf3f:
Delete: libmysqld/WHITEPAPER
Docs/manual.texi:
Changelog
client/mysqltest.c:
Fix things that crashed embedded MySQL
libmysqld/examples/test-run:
Cleanup of old BDB files.
mysql-test/r/innodb.result:
Fix for embedded library
mysql-test/t/innodb.test:
Fix for embedded library
mysys/mf_keycache.c:
Safety
sql/ha_berkeley.cc:
Added DBUG statements
sql/ha_innobase.cc:
Fixed bug for embedded version
sql/ha_innobase.h:
Fix to use index when doing an ORDER BY on a whole InnoDB table
sql/handler.h:
Fix to use index when doing an ORDER BY on a whole InnoDB table
sql/mysqld.cc:
Safety fix
sql/sql_base.cc:
cleanup
sql/sql_select.cc:
Fix to use index when doing an ORDER BY on a whole InnoDB table
Diffstat (limited to 'sql')
-rw-r--r-- | sql/ha_berkeley.cc | 3 | ||||
-rw-r--r-- | sql/ha_innobase.cc | 3 | ||||
-rw-r--r-- | sql/ha_innobase.h | 1 | ||||
-rw-r--r-- | sql/handler.h | 1 | ||||
-rw-r--r-- | sql/mysqld.cc | 2 | ||||
-rw-r--r-- | sql/sql_base.cc | 4 | ||||
-rw-r--r-- | sql/sql_select.cc | 2 |
7 files changed, 10 insertions, 6 deletions
diff --git a/sql/ha_berkeley.cc b/sql/ha_berkeley.cc index f52b99f5a12..c11b1bbd4f8 100644 --- a/sql/ha_berkeley.cc +++ b/sql/ha_berkeley.cc @@ -1879,13 +1879,14 @@ int ha_berkeley::delete_table(const char *name) { int error; char name_buff[FN_REFLEN]; + DBUG_ENTER("delete_table"); if ((error=db_create(&file, db_env, 0))) my_errno=error; /* purecov: inspected */ else error=file->remove(file,fn_format(name_buff,name,"",ha_berkeley_ext,2 | 4), NULL,0); file=0; // Safety - return error; + DBUG_RETURN(error); } /* diff --git a/sql/ha_innobase.cc b/sql/ha_innobase.cc index f5f93be98a6..8c92e0635a5 100644 --- a/sql/ha_innobase.cc +++ b/sql/ha_innobase.cc @@ -544,13 +544,14 @@ innobase_init(void) When using the embedded server, the datadirectory is not in the current directory. */ - if (!mysql_embedded) + if (mysql_embedded) default_path=mysql_real_data_home; else { /* It's better to use current lib, to keep path's short */ current_lib[0]=FN_CURLIB; current_lib[1]=FN_LIBCHAR; + current_lib[2]=0; default_path=current_lib; } diff --git a/sql/ha_innobase.h b/sql/ha_innobase.h index 95bba76c842..83e43b1d662 100644 --- a/sql/ha_innobase.h +++ b/sql/ha_innobase.h @@ -101,6 +101,7 @@ class ha_innobase: public handler bytes */ uint max_key_length() const { return 7000; } bool fast_key_read() { return 1;} + key_map keys_to_use_for_scanning() { return ~(key_map) 0; } bool has_transactions() { return 1;} int open(const char *name, int mode, uint test_if_locked); diff --git a/sql/handler.h b/sql/handler.h index b18118bb114..98358c3b3e4 100644 --- a/sql/handler.h +++ b/sql/handler.h @@ -231,6 +231,7 @@ public: { return ulonglong2double(data_file_length) / IO_SIZE + 1; } virtual double read_time(ha_rows rows) { return rows; } virtual bool fast_key_read() { return 0;} + virtual key_map keys_to_use_for_scanning() { return 0; } virtual bool has_transactions(){ return 0;} virtual uint extra_rec_buf_length() { return 0; } virtual ha_rows estimate_number_of_rows() { return records+EXTRA_RECORDS; } diff --git a/sql/mysqld.cc b/sql/mysqld.cc index 2774e2a4050..54a8b7c67c1 100644 --- a/sql/mysqld.cc +++ b/sql/mysqld.cc @@ -736,8 +736,8 @@ void clean_up(bool print_message) if (!opt_noacl) udf_free(); #endif - end_key_cache(); (void) ha_panic(HA_PANIC_CLOSE); /* close all tables and logs */ + end_key_cache(); #ifdef USE_RAID end_raid(); #endif diff --git a/sql/sql_base.cc b/sql/sql_base.cc index 32318180081..2f8c44c6f0b 100644 --- a/sql/sql_base.cc +++ b/sql/sql_base.cc @@ -1516,8 +1516,8 @@ TABLE *open_temporary_table(THD *thd, const char *path, const char *db, { tmp_table->next=thd->temporary_tables; thd->temporary_tables=tmp_table; - if(thd->slave_thread) - ++slave_open_temp_tables; + if (thd->slave_thread) + slave_open_temp_tables++; } DBUG_RETURN(tmp_table); } diff --git a/sql/sql_select.cc b/sql/sql_select.cc index abb1d891166..2b2dff1bdac 100644 --- a/sql/sql_select.cc +++ b/sql/sql_select.cc @@ -5346,7 +5346,7 @@ test_if_skip_sort_order(JOIN_TAB *tab,ORDER *order,ha_rows select_limit, retrieving all rows through an index. */ if (select_limit >= table->file->records) - keys&= table->used_keys; + keys&= (table->used_keys | table->file->keys_to_use_for_scanning()); for (nr=0; keys ; keys>>=1, nr++) { |