summaryrefslogtreecommitdiff
path: root/sql/ha_berkeley.cc
diff options
context:
space:
mode:
authorunknown <monty@donna.mysql.com>2000-12-24 15:19:00 +0200
committerunknown <monty@donna.mysql.com>2000-12-24 15:19:00 +0200
commit78cf07c8ea126fc03706988de23893ca4680ac77 (patch)
tree899e99579647137316d4fbc999750fb989b1cf2e /sql/ha_berkeley.cc
parentb23a560f84a33ee28d630f6baf7b4f7848fa3db8 (diff)
downloadmariadb-git-78cf07c8ea126fc03706988de23893ca4680ac77.tar.gz
New benchmark test
Fixed bug in REPLACE with BDB tables Prepare for write lock on read for BDB Inform the handler when we want to use IGNORE / REPLACE New manual pages Docs/manual.texi: Updates for BDB tables and new changes client/mysql.cc: Cleanup configure.in: Added sys/ioctl.h heap/hp_rkey.c: Fixed bug when reading next on not unique key include/my_base.h: Added new extra options man/mysql.1: Added example mysys/my_write.c: Safety fix scripts/mysqlaccess.sh: Removed debug output scripts/safe_mysqld.sh: Added --open-files-limit sql-bench/Results/ATIS-mysql-Linux_2.2.14_my_SMP_i686: Updated to new benchmark sql-bench/Results/RUN-mysql-Linux_2.2.14_my_SMP_i686: Updated to new benchmark sql-bench/Results/alter-table-mysql-Linux_2.2.14_my_SMP_i686: Updated to new benchmark sql-bench/Results/big-tables-mysql-Linux_2.2.14_my_SMP_i686: Updated to new benchmark sql-bench/Results/connect-mysql-Linux_2.2.14_my_SMP_i686: Updated to new benchmark sql-bench/Results/create-mysql-Linux_2.2.14_my_SMP_i686: Updated to new benchmark sql-bench/Results/insert-mysql-Linux_2.2.14_my_SMP_i686: Updated to new benchmark sql-bench/Results/select-mysql-Linux_2.2.14_my_SMP_i686: Updated to new benchmark sql-bench/Results/wisconsin-mysql-Linux_2.2.14_my_SMP_i686: Updated to new benchmark sql-bench/bench-init.pl.sh: Updated to new benchmark sql-bench/server-cfg.sh: Fixes for HEAP tables sql-bench/test-ATIS.sh: Fix for heap tables sql-bench/test-insert.sh: Added some ORDER BY benchmarks to test more things sql/ha_berkeley.cc: Fix a bug in REPLACE sql/ha_berkeley.h: Fix to handle lock_on_read sql/mysql_priv.h: Prepare for internal subtransactions in BDB sql/mysqld.cc: Added -O open_files_limit=# sql/sql_insert.cc: Inform the handler when we want to use IGNORE / REPLACE sql/sql_load.cc: Inform the handler when we want to use IGNORE / REPLACE sql/sql_parse.cc: Cleanup sql/sql_show.cc: Cleanup sql/sql_table.cc: Inform the handler when we want to use IGNORE / REPLACE sql/sql_update.cc: Inform the handler when we want to use IGNORE / REPLACE support-files/binary-configure.sh: Better message
Diffstat (limited to 'sql/ha_berkeley.cc')
-rw-r--r--sql/ha_berkeley.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/sql/ha_berkeley.cc b/sql/ha_berkeley.cc
index 5f01d44e091..0db001783c1 100644
--- a/sql/ha_berkeley.cc
+++ b/sql/ha_berkeley.cc
@@ -76,7 +76,8 @@
const char *ha_berkeley_ext=".db";
bool berkeley_skip=0,berkeley_shared_data=0;
-u_int32_t berkeley_init_flags= DB_PRIVATE, berkeley_lock_type=DB_LOCK_DEFAULT;
+u_int32_t berkeley_init_flags= DB_PRIVATE | DB_RECOVER, berkeley_env_flags=0,
+ berkeley_lock_type=DB_LOCK_DEFAULT;
ulong berkeley_cache_size;
char *berkeley_home, *berkeley_tmpdir, *berkeley_logdir;
long berkeley_lock_scan_time=0;
@@ -125,6 +126,7 @@ bool berkeley_init(void)
db_env->set_noticecall(db_env, berkeley_noticecall);
db_env->set_tmp_dir(db_env, berkeley_tmpdir);
db_env->set_data_dir(db_env, mysql_data_home);
+ db_env->set_flags(db_env, berkeley_env_flags, 1);
if (berkeley_logdir)
db_env->set_lg_dir(db_env, berkeley_logdir);
@@ -790,6 +792,7 @@ int ha_berkeley::write_row(byte * record)
error=file->put(file, transaction, create_key(&prim_key, primary_key,
key_buff, record),
&row, key_type[primary_key]);
+ last_dup_key=primary_key;
}
else
{
@@ -818,6 +821,8 @@ int ha_berkeley::write_row(byte * record)
}
}
}
+ else
+ last_dup_key=primary_key;
if (!error)
{
DBUG_PRINT("trans",("committing subtransaction"));