summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.bzrignore8
-rw-r--r--BUILD/SETUP.sh4
-rwxr-xr-xBUILD/compile-pentium-gcov3
-rwxr-xr-xBUILD/compile-pentium-max3
-rwxr-xr-xBUILD/compile-solaris-sparc2
-rwxr-xr-xBUILD/compile-solaris-sparc-debug2
-rwxr-xr-xBUILD/compile-solaris-sparc-purify2
-rw-r--r--BitKeeper/etc/gone172
-rw-r--r--BitKeeper/etc/logging_ok14
-rwxr-xr-xBitKeeper/triggers/post-commit3
-rwxr-xr-xBuild-tools/Do-linux-build10
-rwxr-xr-xBuild-tools/Do-patch-file4
-rwxr-xr-xBuild-tools/Do-rpm10
-rw-r--r--Docs/Flags/new-zealand.eps98
-rw-r--r--Docs/Flags/new-zealand.gifbin0 -> 661 bytes
-rw-r--r--Docs/Flags/new-zealand.pdfbin0 -> 1331 bytes
-rw-r--r--Docs/Flags/new-zealand.txt0
-rw-r--r--Docs/ManualStyleGuidelines.wiki279
-rwxr-xr-xDocs/Support/colspec-fix.pl46
-rwxr-xr-xDocs/Support/docbook-fixup.pl45
-rwxr-xr-xDocs/Support/docbook-prefix.pl50
-rwxr-xr-xDocs/Support/make-docbook9
-rw-r--r--Docs/Support/trivial-makeinfo-4.0c.patch11
-rwxr-xr-xDocs/Support/update-reserved-words.pl28
-rw-r--r--Docs/glibc-2.2.5.patch210
-rw-r--r--Docs/internals.texi45
-rw-r--r--Docs/manual.de.texi99
-rw-r--r--Docs/manual.texi5787
-rw-r--r--Docs/mirrors.texi49
-rw-r--r--Docs/mysqld_error.txt458
-rw-r--r--Makefile.am4
-rw-r--r--README19
-rw-r--r--bdb/Makefile.in2
-rw-r--r--bdb/docs/api_c/c_index.html172
-rw-r--r--bdb/docs/api_c/c_pindex.html530
-rw-r--r--bdb/docs/api_c/db_close.html119
-rw-r--r--bdb/docs/api_c/db_create.html107
-rw-r--r--bdb/docs/api_c/db_cursor.html103
-rw-r--r--bdb/docs/api_c/db_del.html101
-rw-r--r--bdb/docs/api_c/db_err.html93
-rw-r--r--bdb/docs/api_c/db_fd.html92
-rw-r--r--bdb/docs/api_c/db_get.html156
-rw-r--r--bdb/docs/api_c/db_get_byteswapped.html84
-rw-r--r--bdb/docs/api_c/db_get_type.html81
-rw-r--r--bdb/docs/api_c/db_join.html151
-rw-r--r--bdb/docs/api_c/db_key_range.html106
-rw-r--r--bdb/docs/api_c/db_lsn.html36
-rw-r--r--bdb/docs/api_c/db_open.html182
-rw-r--r--bdb/docs/api_c/db_put.html136
-rw-r--r--bdb/docs/api_c/db_remove.html108
-rw-r--r--bdb/docs/api_c/db_rename.html109
-rw-r--r--bdb/docs/api_c/db_set_append_recno.html66
-rw-r--r--bdb/docs/api_c/db_set_bt_compare.html105
-rw-r--r--bdb/docs/api_c/db_set_bt_minkey.html92
-rw-r--r--bdb/docs/api_c/db_set_bt_prefix.html106
-rw-r--r--bdb/docs/api_c/db_set_cachesize.html107
-rw-r--r--bdb/docs/api_c/db_set_dup_compare.html102
-rw-r--r--bdb/docs/api_c/db_set_errcall.html76
-rw-r--r--bdb/docs/api_c/db_set_errfile.html73
-rw-r--r--bdb/docs/api_c/db_set_errpfx.html62
-rw-r--r--bdb/docs/api_c/db_set_feedback.html95
-rw-r--r--bdb/docs/api_c/db_set_flags.html181
-rw-r--r--bdb/docs/api_c/db_set_h_ffactor.html93
-rw-r--r--bdb/docs/api_c/db_set_h_hash.html97
-rw-r--r--bdb/docs/api_c/db_set_h_nelem.html88
-rw-r--r--bdb/docs/api_c/db_set_lorder.html94
-rw-r--r--bdb/docs/api_c/db_set_malloc.html98
-rw-r--r--bdb/docs/api_c/db_set_pagesize.html90
-rw-r--r--bdb/docs/api_c/db_set_paniccall.html70
-rw-r--r--bdb/docs/api_c/db_set_q_extentsize.html90
-rw-r--r--bdb/docs/api_c/db_set_re_delim.html90
-rw-r--r--bdb/docs/api_c/db_set_re_len.html94
-rw-r--r--bdb/docs/api_c/db_set_re_pad.html88
-rw-r--r--bdb/docs/api_c/db_set_re_source.html130
-rw-r--r--bdb/docs/api_c/db_set_realloc.html99
-rw-r--r--bdb/docs/api_c/db_stat.html195
-rw-r--r--bdb/docs/api_c/db_sync.html98
-rw-r--r--bdb/docs/api_c/db_upgrade.html135
-rw-r--r--bdb/docs/api_c/db_verify.html150
-rw-r--r--bdb/docs/api_c/dbc_close.html64
-rw-r--r--bdb/docs/api_c/dbc_count.html55
-rw-r--r--bdb/docs/api_c/dbc_del.html68
-rw-r--r--bdb/docs/api_c/dbc_dup.html72
-rw-r--r--bdb/docs/api_c/dbc_get.html167
-rw-r--r--bdb/docs/api_c/dbc_put.html154
-rw-r--r--bdb/docs/api_c/dbm.html220
-rw-r--r--bdb/docs/api_c/dbt.html158
-rw-r--r--bdb/docs/api_c/env_close.html84
-rw-r--r--bdb/docs/api_c/env_create.html74
-rw-r--r--bdb/docs/api_c/env_open.html205
-rw-r--r--bdb/docs/api_c/env_remove.html125
-rw-r--r--bdb/docs/api_c/env_set_cachesize.html87
-rw-r--r--bdb/docs/api_c/env_set_data_dir.html77
-rw-r--r--bdb/docs/api_c/env_set_errcall.html73
-rw-r--r--bdb/docs/api_c/env_set_errfile.html70
-rw-r--r--bdb/docs/api_c/env_set_errpfx.html59
-rw-r--r--bdb/docs/api_c/env_set_feedback.html69
-rw-r--r--bdb/docs/api_c/env_set_flags.html84
-rw-r--r--bdb/docs/api_c/env_set_lg_bsize.html68
-rw-r--r--bdb/docs/api_c/env_set_lg_dir.html73
-rw-r--r--bdb/docs/api_c/env_set_lg_max.html68
-rw-r--r--bdb/docs/api_c/env_set_lk_conflicts.html69
-rw-r--r--bdb/docs/api_c/env_set_lk_detect.html72
-rw-r--r--bdb/docs/api_c/env_set_lk_max.html72
-rw-r--r--bdb/docs/api_c/env_set_lk_max_lockers.html68
-rw-r--r--bdb/docs/api_c/env_set_lk_max_locks.html67
-rw-r--r--bdb/docs/api_c/env_set_lk_max_objects.html68
-rw-r--r--bdb/docs/api_c/env_set_mp_mmapsize.html71
-rw-r--r--bdb/docs/api_c/env_set_mutexlocks.html59
-rw-r--r--bdb/docs/api_c/env_set_pageyield.html68
-rw-r--r--bdb/docs/api_c/env_set_paniccall.html67
-rw-r--r--bdb/docs/api_c/env_set_panicstate.html64
-rw-r--r--bdb/docs/api_c/env_set_rec_init.html71
-rw-r--r--bdb/docs/api_c/env_set_region_init.html77
-rw-r--r--bdb/docs/api_c/env_set_server.html77
-rw-r--r--bdb/docs/api_c/env_set_shm_key.html87
-rw-r--r--bdb/docs/api_c/env_set_tas_spins.html70
-rw-r--r--bdb/docs/api_c/env_set_tmp_dir.html89
-rw-r--r--bdb/docs/api_c/env_set_tx_max.html67
-rw-r--r--bdb/docs/api_c/env_set_tx_recover.html75
-rw-r--r--bdb/docs/api_c/env_set_tx_timestamp.html63
-rw-r--r--bdb/docs/api_c/env_set_verbose.html78
-rw-r--r--bdb/docs/api_c/env_strerror.html60
-rw-r--r--bdb/docs/api_c/env_version.html57
-rw-r--r--bdb/docs/api_c/hsearch.html107
-rw-r--r--bdb/docs/api_c/lock_detect.html73
-rw-r--r--bdb/docs/api_c/lock_get.html91
-rw-r--r--bdb/docs/api_c/lock_id.html57
-rw-r--r--bdb/docs/api_c/lock_put.html59
-rw-r--r--bdb/docs/api_c/lock_stat.html92
-rw-r--r--bdb/docs/api_c/lock_vec.html123
-rw-r--r--bdb/docs/api_c/log_archive.html102
-rw-r--r--bdb/docs/api_c/log_compare.html51
-rw-r--r--bdb/docs/api_c/log_file.html76
-rw-r--r--bdb/docs/api_c/log_flush.html62
-rw-r--r--bdb/docs/api_c/log_get.html114
-rw-r--r--bdb/docs/api_c/log_put.html81
-rw-r--r--bdb/docs/api_c/log_register.html64
-rw-r--r--bdb/docs/api_c/log_stat.html90
-rw-r--r--bdb/docs/api_c/log_unregister.html59
-rw-r--r--bdb/docs/api_c/memp_fclose.html61
-rw-r--r--bdb/docs/api_c/memp_fget.html98
-rw-r--r--bdb/docs/api_c/memp_fopen.html157
-rw-r--r--bdb/docs/api_c/memp_fput.html79
-rw-r--r--bdb/docs/api_c/memp_fset.html72
-rw-r--r--bdb/docs/api_c/memp_fsync.html59
-rw-r--r--bdb/docs/api_c/memp_register.html93
-rw-r--r--bdb/docs/api_c/memp_stat.html118
-rw-r--r--bdb/docs/api_c/memp_sync.html83
-rw-r--r--bdb/docs/api_c/memp_trickle.html66
-rw-r--r--bdb/docs/api_c/pindex.src301
-rw-r--r--bdb/docs/api_c/set_func_close.html66
-rw-r--r--bdb/docs/api_c/set_func_dirfree.html75
-rw-r--r--bdb/docs/api_c/set_func_dirlist.html78
-rw-r--r--bdb/docs/api_c/set_func_exists.html75
-rw-r--r--bdb/docs/api_c/set_func_free.html67
-rw-r--r--bdb/docs/api_c/set_func_fsync.html66
-rw-r--r--bdb/docs/api_c/set_func_ioinfo.html83
-rw-r--r--bdb/docs/api_c/set_func_malloc.html67
-rw-r--r--bdb/docs/api_c/set_func_map.html86
-rw-r--r--bdb/docs/api_c/set_func_open.html66
-rw-r--r--bdb/docs/api_c/set_func_read.html66
-rw-r--r--bdb/docs/api_c/set_func_realloc.html67
-rw-r--r--bdb/docs/api_c/set_func_rename.html66
-rw-r--r--bdb/docs/api_c/set_func_seek.html81
-rw-r--r--bdb/docs/api_c/set_func_sleep.html76
-rw-r--r--bdb/docs/api_c/set_func_unlink.html66
-rw-r--r--bdb/docs/api_c/set_func_unmap.html75
-rw-r--r--bdb/docs/api_c/set_func_write.html67
-rw-r--r--bdb/docs/api_c/set_func_yield.html84
-rw-r--r--bdb/docs/api_c/txn_abort.html63
-rw-r--r--bdb/docs/api_c/txn_begin.html93
-rw-r--r--bdb/docs/api_c/txn_checkpoint.html75
-rw-r--r--bdb/docs/api_c/txn_commit.html83
-rw-r--r--bdb/docs/api_c/txn_id.html50
-rw-r--r--bdb/docs/api_c/txn_prepare.html63
-rw-r--r--bdb/docs/api_c/txn_stat.html94
-rw-r--r--bdb/docs/api_cxx/cxx_index.html148
-rw-r--r--bdb/docs/api_cxx/cxx_pindex.html516
-rw-r--r--bdb/docs/api_cxx/db_class.html109
-rw-r--r--bdb/docs/api_cxx/db_close.html123
-rw-r--r--bdb/docs/api_cxx/db_cursor.html105
-rw-r--r--bdb/docs/api_cxx/db_del.html104
-rw-r--r--bdb/docs/api_cxx/db_err.html94
-rw-r--r--bdb/docs/api_cxx/db_fd.html95
-rw-r--r--bdb/docs/api_cxx/db_get.html158
-rw-r--r--bdb/docs/api_cxx/db_get_byteswapped.html85
-rw-r--r--bdb/docs/api_cxx/db_get_type.html82
-rw-r--r--bdb/docs/api_cxx/db_join.html153
-rw-r--r--bdb/docs/api_cxx/db_key_range.html109
-rw-r--r--bdb/docs/api_cxx/db_open.html185
-rw-r--r--bdb/docs/api_cxx/db_put.html138
-rw-r--r--bdb/docs/api_cxx/db_remove.html110
-rw-r--r--bdb/docs/api_cxx/db_rename.html112
-rw-r--r--bdb/docs/api_cxx/db_set_append_recno.html69
-rw-r--r--bdb/docs/api_cxx/db_set_bt_compare.html109
-rw-r--r--bdb/docs/api_cxx/db_set_bt_minkey.html94
-rw-r--r--bdb/docs/api_cxx/db_set_bt_prefix.html110
-rw-r--r--bdb/docs/api_cxx/db_set_cachesize.html108
-rw-r--r--bdb/docs/api_cxx/db_set_dup_compare.html106
-rw-r--r--bdb/docs/api_cxx/db_set_errcall.html79
-rw-r--r--bdb/docs/api_cxx/db_set_errfile.html80
-rw-r--r--bdb/docs/api_cxx/db_set_errpfx.html63
-rw-r--r--bdb/docs/api_cxx/db_set_feedback.html97
-rw-r--r--bdb/docs/api_cxx/db_set_flags.html183
-rw-r--r--bdb/docs/api_cxx/db_set_h_ffactor.html95
-rw-r--r--bdb/docs/api_cxx/db_set_h_hash.html102
-rw-r--r--bdb/docs/api_cxx/db_set_h_nelem.html90
-rw-r--r--bdb/docs/api_cxx/db_set_lorder.html96
-rw-r--r--bdb/docs/api_cxx/db_set_malloc.html103
-rw-r--r--bdb/docs/api_cxx/db_set_pagesize.html92
-rw-r--r--bdb/docs/api_cxx/db_set_paniccall.html76
-rw-r--r--bdb/docs/api_cxx/db_set_q_extentsize.html92
-rw-r--r--bdb/docs/api_cxx/db_set_re_delim.html92
-rw-r--r--bdb/docs/api_cxx/db_set_re_len.html96
-rw-r--r--bdb/docs/api_cxx/db_set_re_pad.html90
-rw-r--r--bdb/docs/api_cxx/db_set_re_source.html132
-rw-r--r--bdb/docs/api_cxx/db_set_realloc.html103
-rw-r--r--bdb/docs/api_cxx/db_stat.html201
-rw-r--r--bdb/docs/api_cxx/db_sync.html101
-rw-r--r--bdb/docs/api_cxx/db_upgrade.html135
-rw-r--r--bdb/docs/api_cxx/db_verify.html150
-rw-r--r--bdb/docs/api_cxx/dbc_class.html49
-rw-r--r--bdb/docs/api_cxx/dbc_close.html68
-rw-r--r--bdb/docs/api_cxx/dbc_count.html59
-rw-r--r--bdb/docs/api_cxx/dbc_del.html72
-rw-r--r--bdb/docs/api_cxx/dbc_dup.html76
-rw-r--r--bdb/docs/api_cxx/dbc_get.html170
-rw-r--r--bdb/docs/api_cxx/dbc_put.html158
-rw-r--r--bdb/docs/api_cxx/dbenv_class.html76
-rw-r--r--bdb/docs/api_cxx/dbt_class.html230
-rw-r--r--bdb/docs/api_cxx/env_close.html87
-rw-r--r--bdb/docs/api_cxx/env_open.html209
-rw-r--r--bdb/docs/api_cxx/env_remove.html129
-rw-r--r--bdb/docs/api_cxx/env_set_cachesize.html89
-rw-r--r--bdb/docs/api_cxx/env_set_data_dir.html80
-rw-r--r--bdb/docs/api_cxx/env_set_errcall.html76
-rw-r--r--bdb/docs/api_cxx/env_set_errfile.html77
-rw-r--r--bdb/docs/api_cxx/env_set_error_stream.html74
-rw-r--r--bdb/docs/api_cxx/env_set_errpfx.html60
-rw-r--r--bdb/docs/api_cxx/env_set_feedback.html72
-rw-r--r--bdb/docs/api_cxx/env_set_flags.html87
-rw-r--r--bdb/docs/api_cxx/env_set_lg_bsize.html71
-rw-r--r--bdb/docs/api_cxx/env_set_lg_dir.html76
-rw-r--r--bdb/docs/api_cxx/env_set_lg_max.html71
-rw-r--r--bdb/docs/api_cxx/env_set_lk_conflicts.html71
-rw-r--r--bdb/docs/api_cxx/env_set_lk_detect.html75
-rw-r--r--bdb/docs/api_cxx/env_set_lk_max.html75
-rw-r--r--bdb/docs/api_cxx/env_set_lk_max_lockers.html71
-rw-r--r--bdb/docs/api_cxx/env_set_lk_max_locks.html70
-rw-r--r--bdb/docs/api_cxx/env_set_lk_max_objects.html71
-rw-r--r--bdb/docs/api_cxx/env_set_mp_mmapsize.html74
-rw-r--r--bdb/docs/api_cxx/env_set_mutexlocks.html62
-rw-r--r--bdb/docs/api_cxx/env_set_pageyield.html71
-rw-r--r--bdb/docs/api_cxx/env_set_paniccall.html72
-rw-r--r--bdb/docs/api_cxx/env_set_panicstate.html67
-rw-r--r--bdb/docs/api_cxx/env_set_rec_init.html73
-rw-r--r--bdb/docs/api_cxx/env_set_region_init.html80
-rw-r--r--bdb/docs/api_cxx/env_set_server.html80
-rw-r--r--bdb/docs/api_cxx/env_set_shm_key.html90
-rw-r--r--bdb/docs/api_cxx/env_set_tas_spins.html73
-rw-r--r--bdb/docs/api_cxx/env_set_tmp_dir.html92
-rw-r--r--bdb/docs/api_cxx/env_set_tx_max.html70
-rw-r--r--bdb/docs/api_cxx/env_set_tx_recover.html77
-rw-r--r--bdb/docs/api_cxx/env_set_tx_timestamp.html66
-rw-r--r--bdb/docs/api_cxx/env_set_verbose.html81
-rw-r--r--bdb/docs/api_cxx/env_strerror.html62
-rw-r--r--bdb/docs/api_cxx/env_version.html59
-rw-r--r--bdb/docs/api_cxx/except_class.html64
-rw-r--r--bdb/docs/api_cxx/get_errno.html43
-rw-r--r--bdb/docs/api_cxx/lock_class.html61
-rw-r--r--bdb/docs/api_cxx/lock_detect.html73
-rw-r--r--bdb/docs/api_cxx/lock_get.html94
-rw-r--r--bdb/docs/api_cxx/lock_id.html61
-rw-r--r--bdb/docs/api_cxx/lock_put.html63
-rw-r--r--bdb/docs/api_cxx/lock_stat.html98
-rw-r--r--bdb/docs/api_cxx/lock_vec.html127
-rw-r--r--bdb/docs/api_cxx/log_archive.html106
-rw-r--r--bdb/docs/api_cxx/log_compare.html53
-rw-r--r--bdb/docs/api_cxx/log_file.html79
-rw-r--r--bdb/docs/api_cxx/log_flush.html66
-rw-r--r--bdb/docs/api_cxx/log_get.html118
-rw-r--r--bdb/docs/api_cxx/log_put.html84
-rw-r--r--bdb/docs/api_cxx/log_register.html68
-rw-r--r--bdb/docs/api_cxx/log_stat.html96
-rw-r--r--bdb/docs/api_cxx/log_unregister.html63
-rw-r--r--bdb/docs/api_cxx/lsn_class.html38
-rw-r--r--bdb/docs/api_cxx/memp_fclose.html65
-rw-r--r--bdb/docs/api_cxx/memp_fget.html101
-rw-r--r--bdb/docs/api_cxx/memp_fopen.html160
-rw-r--r--bdb/docs/api_cxx/memp_fput.html83
-rw-r--r--bdb/docs/api_cxx/memp_fset.html76
-rw-r--r--bdb/docs/api_cxx/memp_fsync.html63
-rw-r--r--bdb/docs/api_cxx/memp_register.html102
-rw-r--r--bdb/docs/api_cxx/memp_stat.html125
-rw-r--r--bdb/docs/api_cxx/memp_sync.html87
-rw-r--r--bdb/docs/api_cxx/memp_trickle.html70
-rw-r--r--bdb/docs/api_cxx/mempfile_class.html62
-rw-r--r--bdb/docs/api_cxx/pindex.src287
-rw-r--r--bdb/docs/api_cxx/txn_abort.html67
-rw-r--r--bdb/docs/api_cxx/txn_begin.html96
-rw-r--r--bdb/docs/api_cxx/txn_checkpoint.html75
-rw-r--r--bdb/docs/api_cxx/txn_class.html59
-rw-r--r--bdb/docs/api_cxx/txn_commit.html87
-rw-r--r--bdb/docs/api_cxx/txn_id.html52
-rw-r--r--bdb/docs/api_cxx/txn_prepare.html67
-rw-r--r--bdb/docs/api_cxx/txn_stat.html100
-rw-r--r--bdb/docs/api_cxx/what.html43
-rw-r--r--bdb/docs/api_java/db_class.html92
-rw-r--r--bdb/docs/api_java/db_close.html113
-rw-r--r--bdb/docs/api_java/db_cursor.html94
-rw-r--r--bdb/docs/api_java/db_del.html94
-rw-r--r--bdb/docs/api_java/db_fd.html79
-rw-r--r--bdb/docs/api_java/db_get.html149
-rw-r--r--bdb/docs/api_java/db_get_byteswapped.html75
-rw-r--r--bdb/docs/api_java/db_get_type.html72
-rw-r--r--bdb/docs/api_java/db_join.html142
-rw-r--r--bdb/docs/api_java/db_key_range.html99
-rw-r--r--bdb/docs/api_java/db_open.html179
-rw-r--r--bdb/docs/api_java/db_put.html128
-rw-r--r--bdb/docs/api_java/db_remove.html104
-rw-r--r--bdb/docs/api_java/db_rename.html105
-rw-r--r--bdb/docs/api_java/db_set_append_recno.html75
-rw-r--r--bdb/docs/api_java/db_set_bt_compare.html105
-rw-r--r--bdb/docs/api_java/db_set_bt_minkey.html85
-rw-r--r--bdb/docs/api_java/db_set_bt_prefix.html106
-rw-r--r--bdb/docs/api_java/db_set_cachesize.html99
-rw-r--r--bdb/docs/api_java/db_set_dup_compare.html102
-rw-r--r--bdb/docs/api_java/db_set_errcall.html81
-rw-r--r--bdb/docs/api_java/db_set_errpfx.html55
-rw-r--r--bdb/docs/api_java/db_set_feedback.html95
-rw-r--r--bdb/docs/api_java/db_set_flags.html170
-rw-r--r--bdb/docs/api_java/db_set_h_ffactor.html86
-rw-r--r--bdb/docs/api_java/db_set_h_hash.html97
-rw-r--r--bdb/docs/api_java/db_set_h_nelem.html81
-rw-r--r--bdb/docs/api_java/db_set_lorder.html87
-rw-r--r--bdb/docs/api_java/db_set_pagesize.html83
-rw-r--r--bdb/docs/api_java/db_set_q_extentsize.html83
-rw-r--r--bdb/docs/api_java/db_set_re_delim.html83
-rw-r--r--bdb/docs/api_java/db_set_re_len.html87
-rw-r--r--bdb/docs/api_java/db_set_re_pad.html81
-rw-r--r--bdb/docs/api_java/db_set_re_source.html123
-rw-r--r--bdb/docs/api_java/db_stat.html185
-rw-r--r--bdb/docs/api_java/db_sync.html91
-rw-r--r--bdb/docs/api_java/db_upgrade.html125
-rw-r--r--bdb/docs/api_java/db_verify.html140
-rw-r--r--bdb/docs/api_java/dbc_class.html49
-rw-r--r--bdb/docs/api_java/dbc_close.html67
-rw-r--r--bdb/docs/api_java/dbc_count.html58
-rw-r--r--bdb/docs/api_java/dbc_del.html71
-rw-r--r--bdb/docs/api_java/dbc_dup.html75
-rw-r--r--bdb/docs/api_java/dbc_get.html168
-rw-r--r--bdb/docs/api_java/dbc_put.html157
-rw-r--r--bdb/docs/api_java/dbenv_class.html65
-rw-r--r--bdb/docs/api_java/dbt_class.html227
-rw-r--r--bdb/docs/api_java/deadlock_class.html47
-rw-r--r--bdb/docs/api_java/env_close.html82
-rw-r--r--bdb/docs/api_java/env_open.html212
-rw-r--r--bdb/docs/api_java/env_remove.html129
-rw-r--r--bdb/docs/api_java/env_set_cachesize.html86
-rw-r--r--bdb/docs/api_java/env_set_data_dir.html77
-rw-r--r--bdb/docs/api_java/env_set_errcall.html78
-rw-r--r--bdb/docs/api_java/env_set_error_stream.html69
-rw-r--r--bdb/docs/api_java/env_set_errpfx.html52
-rw-r--r--bdb/docs/api_java/env_set_feedback.html76
-rw-r--r--bdb/docs/api_java/env_set_flags.html84
-rw-r--r--bdb/docs/api_java/env_set_lg_bsize.html71
-rw-r--r--bdb/docs/api_java/env_set_lg_dir.html73
-rw-r--r--bdb/docs/api_java/env_set_lg_max.html71
-rw-r--r--bdb/docs/api_java/env_set_lk_conflicts.html68
-rw-r--r--bdb/docs/api_java/env_set_lk_detect.html74
-rw-r--r--bdb/docs/api_java/env_set_lk_max.html74
-rw-r--r--bdb/docs/api_java/env_set_lk_max_lockers.html70
-rw-r--r--bdb/docs/api_java/env_set_lk_max_locks.html69
-rw-r--r--bdb/docs/api_java/env_set_lk_max_objects.html70
-rw-r--r--bdb/docs/api_java/env_set_mp_mmapsize.html66
-rw-r--r--bdb/docs/api_java/env_set_mutexlocks.html59
-rw-r--r--bdb/docs/api_java/env_set_pageyield.html69
-rw-r--r--bdb/docs/api_java/env_set_panicstate.html65
-rw-r--r--bdb/docs/api_java/env_set_rec_init.html78
-rw-r--r--bdb/docs/api_java/env_set_region_init.html78
-rw-r--r--bdb/docs/api_java/env_set_server.html77
-rw-r--r--bdb/docs/api_java/env_set_shm_key.html87
-rw-r--r--bdb/docs/api_java/env_set_tas_spins.html71
-rw-r--r--bdb/docs/api_java/env_set_tmp_dir.html89
-rw-r--r--bdb/docs/api_java/env_set_tx_max.html69
-rw-r--r--bdb/docs/api_java/env_set_tx_recover.html84
-rw-r--r--bdb/docs/api_java/env_set_tx_timestamp.html64
-rw-r--r--bdb/docs/api_java/env_set_verbose.html77
-rw-r--r--bdb/docs/api_java/env_strerror.html58
-rw-r--r--bdb/docs/api_java/env_version.html58
-rw-r--r--bdb/docs/api_java/except_class.html52
-rw-r--r--bdb/docs/api_java/get_errno.html46
-rw-r--r--bdb/docs/api_java/java_index.html131
-rw-r--r--bdb/docs/api_java/java_pindex.html478
-rw-r--r--bdb/docs/api_java/lock_class.html54
-rw-r--r--bdb/docs/api_java/lock_detect.html69
-rw-r--r--bdb/docs/api_java/lock_get.html92
-rw-r--r--bdb/docs/api_java/lock_id.html59
-rw-r--r--bdb/docs/api_java/lock_put.html61
-rw-r--r--bdb/docs/api_java/lock_stat.html94
-rw-r--r--bdb/docs/api_java/lock_vec.html33
-rw-r--r--bdb/docs/api_java/log_archive.html92
-rw-r--r--bdb/docs/api_java/log_compare.html52
-rw-r--r--bdb/docs/api_java/log_file.html77
-rw-r--r--bdb/docs/api_java/log_flush.html65
-rw-r--r--bdb/docs/api_java/log_get.html117
-rw-r--r--bdb/docs/api_java/log_put.html83
-rw-r--r--bdb/docs/api_java/log_register.html67
-rw-r--r--bdb/docs/api_java/log_stat.html93
-rw-r--r--bdb/docs/api_java/log_unregister.html62
-rw-r--r--bdb/docs/api_java/lsn_class.html37
-rw-r--r--bdb/docs/api_java/mem_class.html48
-rw-r--r--bdb/docs/api_java/memp_fclose.html33
-rw-r--r--bdb/docs/api_java/memp_fget.html33
-rw-r--r--bdb/docs/api_java/memp_fopen.html33
-rw-r--r--bdb/docs/api_java/memp_fput.html33
-rw-r--r--bdb/docs/api_java/memp_fset.html33
-rw-r--r--bdb/docs/api_java/memp_fsync.html33
-rw-r--r--bdb/docs/api_java/memp_register.html33
-rw-r--r--bdb/docs/api_java/memp_stat.html102
-rw-r--r--bdb/docs/api_java/memp_sync.html33
-rw-r--r--bdb/docs/api_java/memp_trickle.html60
-rw-r--r--bdb/docs/api_java/pindex.src249
-rw-r--r--bdb/docs/api_java/runrec_class.html50
-rw-r--r--bdb/docs/api_java/txn_abort.html65
-rw-r--r--bdb/docs/api_java/txn_begin.html93
-rw-r--r--bdb/docs/api_java/txn_checkpoint.html74
-rw-r--r--bdb/docs/api_java/txn_class.html58
-rw-r--r--bdb/docs/api_java/txn_commit.html85
-rw-r--r--bdb/docs/api_java/txn_id.html51
-rw-r--r--bdb/docs/api_java/txn_prepare.html65
-rw-r--r--bdb/docs/api_java/txn_stat.html95
-rw-r--r--bdb/docs/api_tcl/db_close.html59
-rw-r--r--bdb/docs/api_tcl/db_count.html38
-rw-r--r--bdb/docs/api_tcl/db_cursor.html42
-rw-r--r--bdb/docs/api_tcl/db_del.html47
-rw-r--r--bdb/docs/api_tcl/db_get.html98
-rw-r--r--bdb/docs/api_tcl/db_get_join.html45
-rw-r--r--bdb/docs/api_tcl/db_get_type.html34
-rw-r--r--bdb/docs/api_tcl/db_is_byteswapped.html37
-rw-r--r--bdb/docs/api_tcl/db_join.html48
-rw-r--r--bdb/docs/api_tcl/db_open.html300
-rw-r--r--bdb/docs/api_tcl/db_put.html74
-rw-r--r--bdb/docs/api_tcl/db_remove.html49
-rw-r--r--bdb/docs/api_tcl/db_rename.html50
-rw-r--r--bdb/docs/api_tcl/db_stat.html41
-rw-r--r--bdb/docs/api_tcl/db_sync.html36
-rw-r--r--bdb/docs/api_tcl/dbc_close.html36
-rw-r--r--bdb/docs/api_tcl/dbc_del.html38
-rw-r--r--bdb/docs/api_tcl/dbc_dup.html46
-rw-r--r--bdb/docs/api_tcl/dbc_get.html168
-rw-r--r--bdb/docs/api_tcl/dbc_put.html133
-rw-r--r--bdb/docs/api_tcl/env_close.html42
-rw-r--r--bdb/docs/api_tcl/env_open.html168
-rw-r--r--bdb/docs/api_tcl/env_remove.html70
-rw-r--r--bdb/docs/api_tcl/pindex.src27
-rw-r--r--bdb/docs/api_tcl/tcl_index.html49
-rw-r--r--bdb/docs/api_tcl/tcl_pindex.html258
-rw-r--r--bdb/docs/api_tcl/txn.html62
-rw-r--r--bdb/docs/api_tcl/txn_abort.html45
-rw-r--r--bdb/docs/api_tcl/txn_commit.html68
-rw-r--r--bdb/docs/api_tcl/version.html39
-rw-r--r--bdb/docs/images/api.gifbin121 -> 0 bytes
-rw-r--r--bdb/docs/images/next.gifbin225 -> 0 bytes
-rw-r--r--bdb/docs/images/prev.gifbin234 -> 0 bytes
-rw-r--r--bdb/docs/images/ps.gifbin244 -> 0 bytes
-rw-r--r--bdb/docs/images/ref.gifbin119 -> 0 bytes
-rw-r--r--bdb/docs/images/sleepycat.gifbin6211 -> 0 bytes
-rw-r--r--bdb/docs/index.html75
-rw-r--r--bdb/docs/ref/am/close.html43
-rw-r--r--bdb/docs/ref/am/count.html28
-rw-r--r--bdb/docs/ref/am/curclose.html28
-rw-r--r--bdb/docs/ref/am/curdel.html26
-rw-r--r--bdb/docs/ref/am/curdup.html34
-rw-r--r--bdb/docs/ref/am/curget.html74
-rw-r--r--bdb/docs/ref/am/curput.html40
-rw-r--r--bdb/docs/ref/am/cursor.html41
-rw-r--r--bdb/docs/ref/am/delete.html28
-rw-r--r--bdb/docs/ref/am/error.html61
-rw-r--r--bdb/docs/ref/am/get.html39
-rw-r--r--bdb/docs/ref/am/join.html184
-rw-r--r--bdb/docs/ref/am/open.html47
-rw-r--r--bdb/docs/ref/am/opensub.html64
-rw-r--r--bdb/docs/ref/am/ops.html36
-rw-r--r--bdb/docs/ref/am/partial.html134
-rw-r--r--bdb/docs/ref/am/put.html36
-rw-r--r--bdb/docs/ref/am/stability.html49
-rw-r--r--bdb/docs/ref/am/stat.html36
-rw-r--r--bdb/docs/ref/am/sync.html38
-rw-r--r--bdb/docs/ref/am/upgrade.html50
-rw-r--r--bdb/docs/ref/am/verify.html50
-rw-r--r--bdb/docs/ref/am_conf/bt_compare.html85
-rw-r--r--bdb/docs/ref/am_conf/bt_minkey.html53
-rw-r--r--bdb/docs/ref/am_conf/bt_prefix.html66
-rw-r--r--bdb/docs/ref/am_conf/bt_recnum.html34
-rw-r--r--bdb/docs/ref/am_conf/byteorder.html38
-rw-r--r--bdb/docs/ref/am_conf/cachesize.html86
-rw-r--r--bdb/docs/ref/am_conf/dup.html71
-rw-r--r--bdb/docs/ref/am_conf/extentsize.html38
-rw-r--r--bdb/docs/ref/am_conf/h_ffactor.html31
-rw-r--r--bdb/docs/ref/am_conf/h_hash.html39
-rw-r--r--bdb/docs/ref/am_conf/h_nelem.html32
-rw-r--r--bdb/docs/ref/am_conf/intro.html45
-rw-r--r--bdb/docs/ref/am_conf/logrec.html45
-rw-r--r--bdb/docs/ref/am_conf/malloc.html31
-rw-r--r--bdb/docs/ref/am_conf/pagesize.html66
-rw-r--r--bdb/docs/ref/am_conf/re_source.html62
-rw-r--r--bdb/docs/ref/am_conf/recno.html69
-rw-r--r--bdb/docs/ref/am_conf/renumber.html80
-rw-r--r--bdb/docs/ref/am_conf/select.html116
-rw-r--r--bdb/docs/ref/arch/apis.html74
-rw-r--r--bdb/docs/ref/arch/bigpic.gifbin2589 -> 0 bytes
-rw-r--r--bdb/docs/ref/arch/bigpic.html114
-rw-r--r--bdb/docs/ref/arch/progmodel.html41
-rw-r--r--bdb/docs/ref/arch/script.html29
-rw-r--r--bdb/docs/ref/arch/smallpic.gifbin1613 -> 0 bytes
-rw-r--r--bdb/docs/ref/arch/utilities.html62
-rw-r--r--bdb/docs/ref/build_unix/aix.html60
-rw-r--r--bdb/docs/ref/build_unix/conf.html143
-rw-r--r--bdb/docs/ref/build_unix/flags.html60
-rw-r--r--bdb/docs/ref/build_unix/freebsd.html57
-rw-r--r--bdb/docs/ref/build_unix/hpux.html89
-rw-r--r--bdb/docs/ref/build_unix/install.html60
-rw-r--r--bdb/docs/ref/build_unix/intro.html60
-rw-r--r--bdb/docs/ref/build_unix/irix.html30
-rw-r--r--bdb/docs/ref/build_unix/linux.html30
-rw-r--r--bdb/docs/ref/build_unix/notes.html138
-rw-r--r--bdb/docs/ref/build_unix/osf1.html30
-rw-r--r--bdb/docs/ref/build_unix/qnx.html58
-rw-r--r--bdb/docs/ref/build_unix/sco.html29
-rw-r--r--bdb/docs/ref/build_unix/shlib.html94
-rw-r--r--bdb/docs/ref/build_unix/solaris.html90
-rw-r--r--bdb/docs/ref/build_unix/sunos.html30
-rw-r--r--bdb/docs/ref/build_unix/test.html49
-rw-r--r--bdb/docs/ref/build_unix/ultrix.html27
-rw-r--r--bdb/docs/ref/build_vxworks/faq.html85
-rw-r--r--bdb/docs/ref/build_vxworks/intro.html86
-rw-r--r--bdb/docs/ref/build_vxworks/notes.html56
-rw-r--r--bdb/docs/ref/build_win/faq.html49
-rw-r--r--bdb/docs/ref/build_win/intro.html143
-rw-r--r--bdb/docs/ref/build_win/notes.html56
-rw-r--r--bdb/docs/ref/build_win/test.html77
-rw-r--r--bdb/docs/ref/cam/intro.html72
-rw-r--r--bdb/docs/ref/debug/common.html109
-rw-r--r--bdb/docs/ref/debug/compile.html43
-rw-r--r--bdb/docs/ref/debug/intro.html58
-rw-r--r--bdb/docs/ref/debug/printlog.html160
-rw-r--r--bdb/docs/ref/debug/runtime.html47
-rw-r--r--bdb/docs/ref/distrib/layout.html74
-rw-r--r--bdb/docs/ref/dumpload/format.html69
-rw-r--r--bdb/docs/ref/dumpload/text.html32
-rw-r--r--bdb/docs/ref/dumpload/utility.html45
-rw-r--r--bdb/docs/ref/env/create.html73
-rw-r--r--bdb/docs/ref/env/error.html57
-rw-r--r--bdb/docs/ref/env/intro.html56
-rw-r--r--bdb/docs/ref/env/naming.html145
-rw-r--r--bdb/docs/ref/env/open.html30
-rw-r--r--bdb/docs/ref/env/region.html66
-rw-r--r--bdb/docs/ref/env/remote.html48
-rw-r--r--bdb/docs/ref/env/security.html54
-rw-r--r--bdb/docs/ref/install/file.html37
-rw-r--r--bdb/docs/ref/install/magic.s5.be.txt87
-rw-r--r--bdb/docs/ref/install/magic.s5.le.txt87
-rw-r--r--bdb/docs/ref/install/magic.txt56
-rw-r--r--bdb/docs/ref/intro/data.html54
-rw-r--r--bdb/docs/ref/intro/dbis.html159
-rw-r--r--bdb/docs/ref/intro/dbisnot.html146
-rw-r--r--bdb/docs/ref/intro/distrib.html28
-rw-r--r--bdb/docs/ref/intro/need.html60
-rw-r--r--bdb/docs/ref/intro/products.html69
-rw-r--r--bdb/docs/ref/intro/terrain.html248
-rw-r--r--bdb/docs/ref/intro/what.html53
-rw-r--r--bdb/docs/ref/intro/where.html39
-rw-r--r--bdb/docs/ref/java/compat.html34
-rw-r--r--bdb/docs/ref/java/conf.html82
-rw-r--r--bdb/docs/ref/java/faq.html31
-rw-r--r--bdb/docs/ref/java/program.html72
-rw-r--r--bdb/docs/ref/lock/am_conv.html129
-rw-r--r--bdb/docs/ref/lock/cam_conv.html53
-rw-r--r--bdb/docs/ref/lock/config.html46
-rw-r--r--bdb/docs/ref/lock/dead.html93
-rw-r--r--bdb/docs/ref/lock/intro.html89
-rw-r--r--bdb/docs/ref/lock/max.html88
-rw-r--r--bdb/docs/ref/lock/nondb.html50
-rw-r--r--bdb/docs/ref/lock/notxn.html46
-rw-r--r--bdb/docs/ref/lock/page.html62
-rw-r--r--bdb/docs/ref/lock/stdmode.html61
-rw-r--r--bdb/docs/ref/lock/twopl.html50
-rw-r--r--bdb/docs/ref/log/config.html40
-rw-r--r--bdb/docs/ref/log/intro.html58
-rw-r--r--bdb/docs/ref/log/limits.html47
-rw-r--r--bdb/docs/ref/mp/config.html55
-rw-r--r--bdb/docs/ref/mp/intro.html59
-rw-r--r--bdb/docs/ref/perl/intro.html42
-rw-r--r--bdb/docs/ref/pindex.src212
-rw-r--r--bdb/docs/ref/program/appsignals.html35
-rw-r--r--bdb/docs/ref/program/byteorder.html31
-rw-r--r--bdb/docs/ref/program/compatible.html32
-rw-r--r--bdb/docs/ref/program/copy.html63
-rw-r--r--bdb/docs/ref/program/dbsizes.html45
-rw-r--r--bdb/docs/ref/program/diskspace.html145
-rw-r--r--bdb/docs/ref/program/environ.html33
-rw-r--r--bdb/docs/ref/program/errorret.html108
-rw-r--r--bdb/docs/ref/program/extending.html242
-rw-r--r--bdb/docs/ref/program/mt.html95
-rw-r--r--bdb/docs/ref/program/namespace.html44
-rw-r--r--bdb/docs/ref/program/recimp.html49
-rw-r--r--bdb/docs/ref/program/runtime.html57
-rw-r--r--bdb/docs/ref/program/scope.html71
-rw-r--r--bdb/docs/ref/program/solaris.txt213
-rw-r--r--bdb/docs/ref/program/version.html45
-rw-r--r--bdb/docs/ref/refs/bdb_usenix.html1120
-rw-r--r--bdb/docs/ref/refs/bdb_usenix.ps1441
-rw-r--r--bdb/docs/ref/refs/embedded.html672
-rw-r--r--bdb/docs/ref/refs/hash_usenix.ps12209
-rw-r--r--bdb/docs/ref/refs/libtp_usenix.ps12340
-rw-r--r--bdb/docs/ref/refs/refs.html75
-rw-r--r--bdb/docs/ref/refs/witold.html16
-rw-r--r--bdb/docs/ref/rpc/client.html75
-rw-r--r--bdb/docs/ref/rpc/intro.html62
-rw-r--r--bdb/docs/ref/rpc/server.html54
-rw-r--r--bdb/docs/ref/sendmail/intro.html51
-rw-r--r--bdb/docs/ref/simple_tut/close.html102
-rw-r--r--bdb/docs/ref/simple_tut/del.html93
-rw-r--r--bdb/docs/ref/simple_tut/errors.html46
-rw-r--r--bdb/docs/ref/simple_tut/example.txt73
-rw-r--r--bdb/docs/ref/simple_tut/get.html97
-rw-r--r--bdb/docs/ref/simple_tut/handles.html29
-rw-r--r--bdb/docs/ref/simple_tut/intro.html40
-rw-r--r--bdb/docs/ref/simple_tut/keydata.html48
-rw-r--r--bdb/docs/ref/simple_tut/open.html90
-rw-r--r--bdb/docs/ref/simple_tut/put.html127
-rw-r--r--bdb/docs/ref/tcl/error.html69
-rw-r--r--bdb/docs/ref/tcl/faq.html60
-rw-r--r--bdb/docs/ref/tcl/intro.html70
-rw-r--r--bdb/docs/ref/tcl/program.html33
-rw-r--r--bdb/docs/ref/tcl/using.html53
-rw-r--r--bdb/docs/ref/test/faq.html32
-rw-r--r--bdb/docs/ref/test/run.html78
-rw-r--r--bdb/docs/ref/toc.html310
-rw-r--r--bdb/docs/ref/transapp/admin.html47
-rw-r--r--bdb/docs/ref/transapp/app.html117
-rw-r--r--bdb/docs/ref/transapp/archival.html149
-rw-r--r--bdb/docs/ref/transapp/checkpoint.html127
-rw-r--r--bdb/docs/ref/transapp/cursor.html169
-rw-r--r--bdb/docs/ref/transapp/data_open.html119
-rw-r--r--bdb/docs/ref/transapp/deadlock.html92
-rw-r--r--bdb/docs/ref/transapp/env_open.html174
-rw-r--r--bdb/docs/ref/transapp/filesys.html62
-rw-r--r--bdb/docs/ref/transapp/inc.html201
-rw-r--r--bdb/docs/ref/transapp/intro.html42
-rw-r--r--bdb/docs/ref/transapp/logfile.html104
-rw-r--r--bdb/docs/ref/transapp/put.html151
-rw-r--r--bdb/docs/ref/transapp/read.html40
-rw-r--r--bdb/docs/ref/transapp/reclimit.html106
-rw-r--r--bdb/docs/ref/transapp/recovery.html91
-rw-r--r--bdb/docs/ref/transapp/term.html60
-rw-r--r--bdb/docs/ref/transapp/throughput.html117
-rw-r--r--bdb/docs/ref/transapp/transapp.txt492
-rw-r--r--bdb/docs/ref/transapp/why.html49
-rw-r--r--bdb/docs/ref/transapp/writetest.txt100
-rw-r--r--bdb/docs/ref/txn/config.html37
-rw-r--r--bdb/docs/ref/txn/intro.html86
-rw-r--r--bdb/docs/ref/txn/limits.html66
-rw-r--r--bdb/docs/ref/txn/nested.html66
-rw-r--r--bdb/docs/ref/txn/other.html67
-rw-r--r--bdb/docs/ref/upgrade.2.0/convert.html74
-rw-r--r--bdb/docs/ref/upgrade.2.0/disk.html27
-rw-r--r--bdb/docs/ref/upgrade.2.0/intro.html32
-rw-r--r--bdb/docs/ref/upgrade.2.0/system.html84
-rw-r--r--bdb/docs/ref/upgrade.2.0/toc.html20
-rw-r--r--bdb/docs/ref/upgrade.3.0/close.html34
-rw-r--r--bdb/docs/ref/upgrade.3.0/cxx.html31
-rw-r--r--bdb/docs/ref/upgrade.3.0/db.html48
-rw-r--r--bdb/docs/ref/upgrade.3.0/db_cxx.html47
-rw-r--r--bdb/docs/ref/upgrade.3.0/dbenv.html68
-rw-r--r--bdb/docs/ref/upgrade.3.0/dbenv_cxx.html72
-rw-r--r--bdb/docs/ref/upgrade.3.0/dbinfo.html72
-rw-r--r--bdb/docs/ref/upgrade.3.0/disk.html30
-rw-r--r--bdb/docs/ref/upgrade.3.0/eacces.html28
-rw-r--r--bdb/docs/ref/upgrade.3.0/eagain.html34
-rw-r--r--bdb/docs/ref/upgrade.3.0/envopen.html156
-rw-r--r--bdb/docs/ref/upgrade.3.0/func.html69
-rw-r--r--bdb/docs/ref/upgrade.3.0/intro.html26
-rw-r--r--bdb/docs/ref/upgrade.3.0/java.html34
-rw-r--r--bdb/docs/ref/upgrade.3.0/join.html28
-rw-r--r--bdb/docs/ref/upgrade.3.0/jump_set.html48
-rw-r--r--bdb/docs/ref/upgrade.3.0/lock_detect.html24
-rw-r--r--bdb/docs/ref/upgrade.3.0/lock_notheld.html27
-rw-r--r--bdb/docs/ref/upgrade.3.0/lock_put.html25
-rw-r--r--bdb/docs/ref/upgrade.3.0/lock_stat.html24
-rw-r--r--bdb/docs/ref/upgrade.3.0/log_register.html25
-rw-r--r--bdb/docs/ref/upgrade.3.0/log_stat.html23
-rw-r--r--bdb/docs/ref/upgrade.3.0/memp_stat.html26
-rw-r--r--bdb/docs/ref/upgrade.3.0/open.html65
-rw-r--r--bdb/docs/ref/upgrade.3.0/rmw.html31
-rw-r--r--bdb/docs/ref/upgrade.3.0/stat.html24
-rw-r--r--bdb/docs/ref/upgrade.3.0/toc.html47
-rw-r--r--bdb/docs/ref/upgrade.3.0/txn_begin.html25
-rw-r--r--bdb/docs/ref/upgrade.3.0/txn_commit.html25
-rw-r--r--bdb/docs/ref/upgrade.3.0/txn_stat.html23
-rw-r--r--bdb/docs/ref/upgrade.3.0/value_set.html41
-rw-r--r--bdb/docs/ref/upgrade.3.0/xa.html33
-rw-r--r--bdb/docs/ref/upgrade.3.1/btstat.html50
-rw-r--r--bdb/docs/ref/upgrade.3.1/config.html35
-rw-r--r--bdb/docs/ref/upgrade.3.1/disk.html34
-rw-r--r--bdb/docs/ref/upgrade.3.1/dup.html31
-rw-r--r--bdb/docs/ref/upgrade.3.1/env.html53
-rw-r--r--bdb/docs/ref/upgrade.3.1/intro.html26
-rw-r--r--bdb/docs/ref/upgrade.3.1/log_register.html28
-rw-r--r--bdb/docs/ref/upgrade.3.1/logalloc.html27
-rw-r--r--bdb/docs/ref/upgrade.3.1/memp_register.html30
-rw-r--r--bdb/docs/ref/upgrade.3.1/put.html63
-rw-r--r--bdb/docs/ref/upgrade.3.1/set_feedback.html27
-rw-r--r--bdb/docs/ref/upgrade.3.1/set_paniccall.html27
-rw-r--r--bdb/docs/ref/upgrade.3.1/set_tx_recover.html36
-rw-r--r--bdb/docs/ref/upgrade.3.1/sysmem.html25
-rw-r--r--bdb/docs/ref/upgrade.3.1/tcl.html30
-rw-r--r--bdb/docs/ref/upgrade.3.1/tmp.html34
-rw-r--r--bdb/docs/ref/upgrade.3.1/toc.html33
-rw-r--r--bdb/docs/ref/upgrade.3.1/txn_check.html26
-rw-r--r--bdb/docs/ref/upgrade.3.2/callback.html39
-rw-r--r--bdb/docs/ref/upgrade.3.2/db_dump.html29
-rw-r--r--bdb/docs/ref/upgrade.3.2/disk.html28
-rw-r--r--bdb/docs/ref/upgrade.3.2/handle.html27
-rw-r--r--bdb/docs/ref/upgrade.3.2/incomplete.html39
-rw-r--r--bdb/docs/ref/upgrade.3.2/intro.html26
-rw-r--r--bdb/docs/ref/upgrade.3.2/mutexlock.html28
-rw-r--r--bdb/docs/ref/upgrade.3.2/notfound.html25
-rw-r--r--bdb/docs/ref/upgrade.3.2/renumber.html39
-rw-r--r--bdb/docs/ref/upgrade.3.2/set_flags.html35
-rw-r--r--bdb/docs/ref/upgrade.3.2/toc.html27
-rw-r--r--bdb/docs/ref/upgrade.3.2/tx_recover.html32
-rw-r--r--bdb/docs/ref/upgrade/process.html108
-rw-r--r--bdb/docs/ref/xa/config.html79
-rw-r--r--bdb/docs/ref/xa/faq.html55
-rw-r--r--bdb/docs/ref/xa/intro.html61
-rw-r--r--bdb/docs/sleepycat/contact.html107
-rw-r--r--bdb/docs/sleepycat/legal.html56
-rw-r--r--bdb/docs/sleepycat/license.html109
-rw-r--r--bdb/docs/utility/berkeley_db_svc.html88
-rw-r--r--bdb/docs/utility/db_archive.html85
-rw-r--r--bdb/docs/utility/db_checkpoint.html82
-rw-r--r--bdb/docs/utility/db_deadlock.html85
-rw-r--r--bdb/docs/utility/db_dump.html128
-rw-r--r--bdb/docs/utility/db_load.html151
-rw-r--r--bdb/docs/utility/db_printlog.html69
-rw-r--r--bdb/docs/utility/db_recover.html97
-rw-r--r--bdb/docs/utility/db_stat.html104
-rw-r--r--bdb/docs/utility/db_upgrade.html93
-rw-r--r--bdb/docs/utility/db_verify.html73
-rw-r--r--bdb/docs/utility/index.html28
-rw-r--r--client/client_priv.h2
-rw-r--r--client/mysql.cc391
-rw-r--r--client/mysqladmin.c46
-rw-r--r--client/mysqlbinlog.cc225
-rw-r--r--client/mysqlcheck.c46
-rw-r--r--client/mysqldump.c109
-rw-r--r--client/mysqlimport.c59
-rw-r--r--client/mysqlmanager-pwgen.c71
-rw-r--r--client/mysqlmanagerc.c122
-rw-r--r--client/mysqlshow.c31
-rw-r--r--client/mysqltest.c373
-rw-r--r--client/thread_test.c168
-rw-r--r--configure.in39
-rw-r--r--dbug/Makefile.am7
-rw-r--r--dbug/monty.doc8
-rw-r--r--extra/my_print_defaults.c94
-rw-r--r--extra/mysql_install.c60
-rw-r--r--extra/perror.c105
-rw-r--r--extra/resolve_stack_dump.c80
-rw-r--r--extra/resolveip.c78
-rw-r--r--fs/database.c4
-rw-r--r--fs/mysqlcorbafs.c9
-rw-r--r--include/Makefile.am8
-rw-r--r--include/my_alloc.h39
-rw-r--r--include/my_getopt.h4
-rw-r--r--include/my_global.h8
-rw-r--r--include/my_net.h42
-rw-r--r--include/my_pthread.h32
-rw-r--r--include/my_sys.h29
-rw-r--r--include/mysql.h18
-rw-r--r--include/mysql_com.h1
-rw-r--r--include/mysqld_error.h2
-rw-r--r--include/mysys_err.h16
-rw-r--r--include/violite.h16
-rw-r--r--innobase/btr/btr0cur.c11
-rw-r--r--innobase/dict/dict0crea.c3
-rw-r--r--innobase/dict/dict0dict.c161
-rw-r--r--innobase/dict/dict0load.c5
-rw-r--r--innobase/dict/dict0mem.c4
-rw-r--r--innobase/include/btr0btr.h6
-rw-r--r--innobase/include/dict0mem.h32
-rw-r--r--innobase/include/ibuf0ibuf.h6
-rw-r--r--innobase/include/ibuf0ibuf.ic12
-rw-r--r--innobase/include/os0file.h8
-rw-r--r--innobase/include/os0sync.h5
-rw-r--r--innobase/include/os0sync.ic17
-rw-r--r--innobase/include/row0mysql.h21
-rw-r--r--innobase/include/row0upd.h10
-rw-r--r--innobase/include/sync0sync.h9
-rw-r--r--innobase/include/sync0sync.ic4
-rw-r--r--innobase/include/trx0sys.h2
-rw-r--r--innobase/include/trx0sys.ic1
-rw-r--r--innobase/include/trx0trx.h14
-rw-r--r--innobase/include/univ.i12
-rw-r--r--innobase/lock/lock0lock.c3
-rw-r--r--innobase/pars/pars0opt.c3
-rw-r--r--innobase/que/que0que.c9
-rw-r--r--innobase/row/row0ins.c280
-rw-r--r--innobase/row/row0mysql.c219
-rw-r--r--innobase/row/row0sel.c49
-rw-r--r--innobase/row/row0upd.c109
-rw-r--r--innobase/srv/srv0srv.c20
-rw-r--r--innobase/sync/sync0sync.c6
-rw-r--r--innobase/trx/trx0sys.c3
-rw-r--r--innobase/trx/trx0trx.c7
-rw-r--r--isam/isamchk.c378
-rw-r--r--isam/pack_isam.c216
-rw-r--r--libmysql/Makefile.shared4
-rw-r--r--libmysql/libmysql.c37
-rw-r--r--libmysql/manager.c15
-rw-r--r--libmysqld/lib_sql.cc17
-rw-r--r--libmysqld/lib_vio.c21
-rw-r--r--mit-pthreads/Changes-mysql37
-rw-r--r--mit-pthreads/GNUmakefile2
-rw-r--r--mit-pthreads/include/pthread/ac-types.h3
-rw-r--r--mit-pthreads/include/pthread/paths.h4
-rw-r--r--mit-pthreads/machdep/engine-i386-linux-2.0.h1
-rwxr-xr-xmit-pthreads/machdep/i386-sco-3.2v5/__math.h219
-rwxr-xr-xmit-pthreads/machdep/i386-sco-3.2v5/__signal.h109
-rwxr-xr-xmit-pthreads/machdep/i386-sco-3.2v5/__stdio.h113
-rwxr-xr-xmit-pthreads/machdep/i386-sco-3.2v5/__stdlib.h137
-rwxr-xr-xmit-pthreads/machdep/i386-sco-3.2v5/__string.h125
-rwxr-xr-xmit-pthreads/machdep/i386-sco-3.2v5/__time.h141
-rwxr-xr-xmit-pthreads/machdep/i386-sco-3.2v5/__unistd.h48
-rwxr-xr-xmit-pthreads/machdep/i386-sco-3.2v5/compat.h46
-rwxr-xr-xmit-pthreads/machdep/i386-sco-3.2v5/dirent.h145
-rwxr-xr-xmit-pthreads/machdep/i386-sco-3.2v5/posix/__signal.h69
-rwxr-xr-xmit-pthreads/machdep/i386-sco-3.2v5/socket.h490
-rwxr-xr-xmit-pthreads/machdep/i386-sco-3.2v5/syscall.h175
-rwxr-xr-xmit-pthreads/machdep/i386-sco-3.2v5/timers.h68
-rwxr-xr-xmit-pthreads/machdep/i386-sco-3.2v5/trash.can1
-rwxr-xr-xmit-pthreads/machdep/linux-2.0/__signal.h84
-rwxr-xr-xmit-pthreads/machdep/linux-2.0/__stdio.h5
-rw-r--r--mit-pthreads/machdep/linux-2.0/extra/bits/pthreadtypes.h0
-rwxr-xr-xmit-pthreads/machdep/linux-2.0/extra/bits/socket.h37
-rwxr-xr-xmit-pthreads/machdep/linux-2.0/socket.h187
-rwxr-xr-xmit-pthreads/machdep/sco-3.2v5/__math.h219
-rwxr-xr-xmit-pthreads/machdep/sco-3.2v5/__signal.h109
-rwxr-xr-xmit-pthreads/machdep/sco-3.2v5/__stdio.h113
-rwxr-xr-xmit-pthreads/machdep/sco-3.2v5/__stdlib.h137
-rwxr-xr-xmit-pthreads/machdep/sco-3.2v5/__string.h125
-rwxr-xr-xmit-pthreads/machdep/sco-3.2v5/__time.h141
-rwxr-xr-xmit-pthreads/machdep/sco-3.2v5/__unistd.h48
-rwxr-xr-xmit-pthreads/machdep/sco-3.2v5/compat.h46
-rwxr-xr-xmit-pthreads/machdep/sco-3.2v5/dirent.h145
-rwxr-xr-xmit-pthreads/machdep/sco-3.2v5/posix/__signal.h69
-rwxr-xr-xmit-pthreads/machdep/sco-3.2v5/socket.h490
-rwxr-xr-xmit-pthreads/machdep/sco-3.2v5/syscall.h175
-rwxr-xr-xmit-pthreads/machdep/sco-3.2v5/timers.h68
-rwxr-xr-xmit-pthreads/machdep/sco-3.2v5/trash.can1
-rwxr-xr-xmit-pthreads/pg++32
-rwxr-xr-xmit-pthreads/pgcc32
-rw-r--r--myisam/ft_boolean_search.c182
-rw-r--r--myisam/ft_dump.c103
-rw-r--r--myisam/ft_eval.c125
-rw-r--r--myisam/ft_nlq_search.c10
-rw-r--r--myisam/ft_parser.c33
-rw-r--r--myisam/ft_test1.c88
-rw-r--r--myisam/ft_update.c19
-rw-r--r--myisam/ftdefs.h6
-rw-r--r--myisam/mi_check.c6
-rw-r--r--myisam/mi_test1.c279
-rw-r--r--myisam/mi_write.c16
-rw-r--r--myisam/myisamchk.c51
-rw-r--r--myisam/myisampack.c178
-rw-r--r--myisam/sort.c2
-rw-r--r--mysql-test/install_test_db.sh2
-rw-r--r--mysql-test/mysql-test-run.sh1
-rw-r--r--mysql-test/r/fulltext.result24
-rw-r--r--mysql-test/r/func_concat.result28
-rw-r--r--mysql-test/r/func_if.result48
-rw-r--r--mysql-test/r/func_isnull.result7
-rw-r--r--mysql-test/r/func_like.result11
-rw-r--r--mysql-test/r/func_math.result6
-rw-r--r--mysql-test/r/func_test.result10
-rw-r--r--mysql-test/r/group_by.result20
-rw-r--r--mysql-test/r/identity.result6
-rw-r--r--mysql-test/r/innodb.result2
-rw-r--r--mysql-test/r/join.result4
-rw-r--r--mysql-test/r/rpl000014.result2
-rw-r--r--mysql-test/r/rpl_empty_master_crash.result12
-rw-r--r--mysql-test/r/rpl_log.result2
-rw-r--r--mysql-test/r/select_found.result89
-rw-r--r--mysql-test/r/show_check.result28
-rw-r--r--mysql-test/r/type_datetime.result21
-rw-r--r--mysql-test/r/type_decimal.result156
-rw-r--r--mysql-test/r/type_enum.result14
-rw-r--r--mysql-test/r/type_float.result2
-rw-r--r--mysql-test/r/type_set.result14
-rw-r--r--mysql-test/r/variables.result14
-rw-r--r--mysql-test/t/fulltext.test15
-rw-r--r--mysql-test/t/func_concat.test24
-rw-r--r--mysql-test/t/func_encrypt-master.opt2
-rw-r--r--mysql-test/t/func_if.test30
-rw-r--r--mysql-test/t/func_isnull.test10
-rw-r--r--mysql-test/t/func_like.test8
-rw-r--r--mysql-test/t/func_math.test2
-rw-r--r--mysql-test/t/func_test.test11
-rw-r--r--mysql-test/t/group_by.test16
-rw-r--r--mysql-test/t/identity.test2
-rw-r--r--mysql-test/t/innodb_cache.test1
-rw-r--r--mysql-test/t/join.test1
-rw-r--r--mysql-test/t/rpl_empty_master_crash.test7
-rw-r--r--mysql-test/t/select_found.test38
-rw-r--r--mysql-test/t/show_check.test15
-rw-r--r--mysql-test/t/type_datetime.test20
-rw-r--r--mysql-test/t/type_decimal.test65
-rw-r--r--mysql-test/t/type_enum.test11
-rw-r--r--mysql-test/t/type_set.test10
-rw-r--r--mysql-test/t/variables.test11
-rw-r--r--mysys/Makefile.am9
-rw-r--r--mysys/array.c2
-rw-r--r--mysys/charset.c4
-rw-r--r--mysys/default.c2
-rw-r--r--mysys/getopt.c750
-rw-r--r--mysys/getopt1.c170
-rw-r--r--mysys/hash.c2
-rw-r--r--mysys/mf_strip.c (renamed from mysys/mf_stripp.c)6
-rw-r--r--mysys/my_alloc.c16
-rw-r--r--mysys/my_gethostbyname.c119
-rw-r--r--mysys/my_getopt.c484
-rw-r--r--mysys/my_pthread.c60
-rw-r--r--mysys/my_thr_init.c29
-rw-r--r--mysys/raid.cc2
-rw-r--r--mysys/raid2.c31
-rw-r--r--mysys/testhash.c18
-rw-r--r--os2/Makefile.am29
-rw-r--r--sql-bench/Results/ATIS-mysql-Linux_2.4.16_64GB_SMP_i68620
-rw-r--r--sql-bench/Results/RUN-mysql-Linux_2.4.16_64GB_SMP_i686109
-rw-r--r--sql-bench/Results/alter-table-mysql-Linux_2.4.16_64GB_SMP_i68616
-rw-r--r--sql-bench/Results/big-tables-mysql-Linux_2.4.16_64GB_SMP_i68619
-rw-r--r--sql-bench/Results/connect-mysql-Linux_2.4.16_64GB_SMP_i68635
-rw-r--r--sql-bench/Results/create-mysql-Linux_2.4.16_64GB_SMP_i68618
-rw-r--r--sql-bench/Results/insert-mysql-Linux_2.4.16_64GB_SMP_i686106
-rw-r--r--sql-bench/Results/select-mysql-Linux_2.4.16_64GB_SMP_i68630
-rw-r--r--sql-bench/Results/transactions-mysql-Linux_2.4.16_64GB_SMP_i6863
-rw-r--r--sql-bench/Results/wisconsin-mysql-Linux_2.4.16_64GB_SMP_i68614
-rw-r--r--sql-bench/limits/mysql.cfg37
-rw-r--r--sql/field.cc48
-rw-r--r--sql/gen_lex_hash.cc127
-rw-r--r--sql/ha_hash.h31
-rw-r--r--sql/ha_innodb.cc8
-rw-r--r--sql/hostname.cc12
-rw-r--r--sql/item.h19
-rw-r--r--sql/item_cmpfunc.cc325
-rw-r--r--sql/item_cmpfunc.h36
-rw-r--r--sql/item_func.cc26
-rw-r--r--sql/item_strfunc.cc2
-rw-r--r--sql/item_timefunc.h2
-rw-r--r--sql/lex.h3
-rw-r--r--sql/log.cc4
-rw-r--r--sql/mini_client.cc15
-rw-r--r--sql/mysql_priv.h26
-rw-r--r--sql/mysqld.cc2376
-rw-r--r--sql/nt_servc.cc30
-rw-r--r--sql/nt_servc.h2
-rw-r--r--sql/repl_failsafe.cc3
-rw-r--r--sql/share/czech/errmsg.txt2
-rw-r--r--sql/share/danish/errmsg.txt2
-rw-r--r--sql/share/dutch/errmsg.txt2
-rw-r--r--sql/share/english/errmsg.txt2
-rw-r--r--sql/share/estonian/errmsg.txt2
-rw-r--r--sql/share/french/errmsg.txt192
-rw-r--r--sql/share/german/errmsg.txt2
-rw-r--r--sql/share/greek/errmsg.txt2
-rw-r--r--sql/share/hungarian/errmsg.txt2
-rw-r--r--sql/share/italian/errmsg.txt22
-rw-r--r--sql/share/japanese/errmsg.txt2
-rw-r--r--sql/share/korean/errmsg.txt2
-rw-r--r--sql/share/norwegian-ny/errmsg.txt2
-rw-r--r--sql/share/norwegian/errmsg.txt2
-rw-r--r--sql/share/polish/errmsg.txt2
-rw-r--r--sql/share/portuguese/errmsg.txt2
-rw-r--r--sql/share/romanian/errmsg.txt2
-rw-r--r--sql/share/russian/errmsg.txt2
-rw-r--r--sql/share/slovak/errmsg.txt2
-rw-r--r--sql/share/spanish/errmsg.txt2
-rw-r--r--sql/share/swedish/errmsg.txt2
-rw-r--r--sql/share/ukrainian/errmsg.txt2
-rw-r--r--sql/slave.cc71
-rw-r--r--sql/slave.h10
-rw-r--r--sql/sql_acl.cc122
-rw-r--r--sql/sql_acl.h4
-rw-r--r--sql/sql_base.cc7
-rw-r--r--sql/sql_cache.cc2
-rw-r--r--sql/sql_class.cc2
-rw-r--r--sql/sql_class.h5
-rw-r--r--sql/sql_db.cc23
-rw-r--r--sql/sql_delete.cc11
-rw-r--r--sql/sql_insert.cc14
-rw-r--r--sql/sql_lex.h3
-rw-r--r--sql/sql_parse.cc205
-rw-r--r--sql/sql_repl.cc2
-rw-r--r--sql/sql_repl.h2
-rw-r--r--sql/sql_select.cc17
-rw-r--r--sql/sql_show.cc16
-rw-r--r--sql/sql_string.cc5
-rw-r--r--sql/sql_table.cc15
-rw-r--r--sql/sql_union.cc9
-rw-r--r--sql/sql_update.cc13
-rw-r--r--sql/sql_yacc.yy605
-rw-r--r--sql/structs.h13
-rw-r--r--sql/uniques.cc2
-rw-r--r--sql/unireg.h7
-rw-r--r--strings/Makefile.am3
-rw-r--r--strings/bfill.c29
-rw-r--r--strings/bmove.c29
-rw-r--r--strings/ctype-ujis.c29
-rw-r--r--strings/strend.c29
-rw-r--r--strings/strstr.c29
-rw-r--r--strings/strxmov.c29
-rw-r--r--strings/strxnmov.c29
-rw-r--r--support-files/my-huge.cnf.sh19
-rw-r--r--support-files/mysql.server.sh12
-rw-r--r--support-files/mysql.spec.sh207
-rw-r--r--tools/mysqlmanager.c173
-rw-r--r--vio/test-ssl.c4
-rw-r--r--vio/test-sslclient.c4
-rw-r--r--vio/test-sslserver.c4
-rw-r--r--vio/vio.c2
-rw-r--r--vio/viosocket.c4
-rw-r--r--vio/viotest-ssl.c4
1035 files changed, 12102 insertions, 98403 deletions
diff --git a/.bzrignore b/.bzrignore
index 1c2cce34c6f..4683dcd2fb7 100644
--- a/.bzrignore
+++ b/.bzrignore
@@ -38,6 +38,7 @@ COPYING.LIB
Docs/#manual.texi#
Docs/INSTALL-BINARY
Docs/include.texi
+Docs/internals.info
Docs/manual.aux
Docs/manual.cp
Docs/manual.cps
@@ -334,6 +335,8 @@ linked_libmysqldex_sources
linked_server_sources
linked_tools_sources
locked
+mit-pthreads/config.flags
+mit-pthreads/syscall.S
myisam/FT1.MYD
myisam/FT1.MYI
myisam/ft_dump
@@ -350,6 +353,9 @@ myisam/rt_test
myisam/sp_test
myisam/test1.MYD
myisam/test1.MYI
+mysql-4.0.2-alpha-pc-linux-gnu-i686.tar.gz
+mysql-4.0.2-alpha.tar.gz
+mysql-max-4.0.2-alpha-pc-linux-gnu-i686.tar.gz
mysql-test/gmon.out
mysql-test/install_test_db
mysql-test/mysql-test-run
@@ -369,6 +375,8 @@ mysql.proj
mysqld.S
mysqld.sym
mysys/#mf_iocache.c#
+mysys/getopt.c
+mysys/getopt1.c
mysys/test_charset
mysys/test_dir
mysys/test_io_cache
diff --git a/BUILD/SETUP.sh b/BUILD/SETUP.sh
index 348a5be0f1e..d46216bea93 100644
--- a/BUILD/SETUP.sh
+++ b/BUILD/SETUP.sh
@@ -34,10 +34,10 @@ AM_MAKEFLAGS="-j 4"
# The following warning flag will give too many warnings:
# -Wshadow -Wunused -Winline (The later isn't usable in C++ as
# __attribute()__ doesn't work with gnu C++)
-global_warnings="-Wimplicit -Wreturn-type -Wid-clash-51 -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wimplicit-function-dec -Wimplicit-int -Wparentheses -Wsign-compare -Wwrite-strings"
+global_warnings="-Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wparentheses -Wsign-compare -Wwrite-strings"
#debug_extra_warnings="-Wuninitialized"
c_warnings="$global_warnings -Wunused"
-cxx_warnings="$global_warnings -Woverloaded-virtual -Wextern-inline -Wsign-promo -Wreorder -Wctor-dtor-privacy -Wnon-virtual-dtor"
+cxx_warnings="$global_warnings -Woverloaded-virtual -Wsign-promo -Wreorder -Wctor-dtor-privacy -Wnon-virtual-dtor"
alpha_cflags="-mcpu=ev6 -Wa,-mev6" # Not used yet
pentium_cflags="-mcpu=pentiumpro"
diff --git a/BUILD/compile-pentium-gcov b/BUILD/compile-pentium-gcov
index 873d1d0d8e8..05cb0bb0d78 100755
--- a/BUILD/compile-pentium-gcov
+++ b/BUILD/compile-pentium-gcov
@@ -3,7 +3,8 @@
path=`dirname $0`
. "$path/SETUP.sh"
-extra_flags="$pentium_cflags -O2 -fprofile-arcs -ftest-coverage"
+extra_flags="$pentium_cflags -fprofile-arcs -ftest-coverage"
extra_configs="$pentium_configs $debug_configs --disable-shared $static_link"
+extra_configs="$extra_configs --with-innodb --with-berkeley-db"
. "$path/FINISH.sh"
diff --git a/BUILD/compile-pentium-max b/BUILD/compile-pentium-max
index 9838e6a287b..d41274d4f5e 100755
--- a/BUILD/compile-pentium-max
+++ b/BUILD/compile-pentium-max
@@ -8,6 +8,7 @@ extra_configs="$pentium_configs"
strip=yes
extra_configs="$extra_configs --with-innodb --with-berkeley-db \
- --enable-thread-safe-client --with-openssl --with-vio"
+ --with-embedded-server --enable-thread-safe-client \
+ --with-openssl --with-vio"
. "$path/FINISH.sh"
diff --git a/BUILD/compile-solaris-sparc b/BUILD/compile-solaris-sparc
index f8f7c8755df..083a6e3d68e 100755
--- a/BUILD/compile-solaris-sparc
+++ b/BUILD/compile-solaris-sparc
@@ -11,6 +11,6 @@ then
(cd gemini && aclocal && autoheader && aclocal && automake && autoconf)
fi
-CFLAGS="-g -Wimplicit -Wreturn-type -Wid-clash-51 -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wimplicit-function-dec -Wimplicit-int -Wparentheses -Wsign-compare -Wwrite-strings -Wunused -O3 -fno-omit-frame-pointer -mcpu=v8 -Wa,-xarch=v8plusa" CXX=gcc CXXFLAGS="-Wimplicit -Wreturn-type -Wid-clash-51 -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wimplicit-function-dec -Wimplicit-int -Wparentheses -Wsign-compare -Wwrite-strings -Woverloaded-virtual -Wextern-inline -Wsign-promo -Wreorder -Wctor-dtor-privacy -Wnon-virtual-dtor -felide-constructors -fno-exceptions -fno-rtti -O3 -fno-omit-frame-pointer -mcpu=v8 -Wa,-xarch=v8plusa -g" ./configure --prefix=/usr/local/mysql --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client
+CFLAGS="-g -Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wparentheses -Wsign-compare -Wwrite-strings -Wunused -O3 -fno-omit-frame-pointer -mcpu=v8 -Wa,-xarch=v8plusa" CXX=gcc CXXFLAGS="-Wimplicit -Wreturn-type -Wid-clash-51 -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wparentheses -Wsign-compare -Wwrite-strings -Woverloaded-virtual -Wsign-promo -Wreorder -Wctor-dtor-privacy -Wnon-virtual-dtor -felide-constructors -fno-exceptions -fno-rtti -O3 -fno-omit-frame-pointer -mcpu=v8 -Wa,-xarch=v8plusa -g" ./configure --prefix=/usr/local/mysql --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client
gmake -j 4
diff --git a/BUILD/compile-solaris-sparc-debug b/BUILD/compile-solaris-sparc-debug
index 0b6a7219593..527f135ac62 100755
--- a/BUILD/compile-solaris-sparc-debug
+++ b/BUILD/compile-solaris-sparc-debug
@@ -11,6 +11,6 @@ then
(cd gemini && aclocal && autoheader && aclocal && automake && autoconf)
fi
-CFLAGS="-g -Wimplicit -Wreturn-type -Wid-clash-51 -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wimplicit-function-dec -Wimplicit-int -Wparentheses -Wsign-compare -Wwrite-strings -Wunused -O3 -fno-omit-frame-pointer -mcpu=v8 -Wa,-xarch=v8plusa" CXX=gcc CXXFLAGS="-Wimplicit -Wreturn-type -Wid-clash-51 -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wimplicit-function-dec -Wimplicit-int -Wparentheses -Wsign-compare -Wwrite-strings -Woverloaded-virtual -Wextern-inline -Wsign-promo -Wreorder -Wctor-dtor-privacy -Wnon-virtual-dtor -felide-constructors -fno-exceptions -fno-rtti -O3 -fno-omit-frame-pointer -mcpu=v8 -Wa,-xarch=v8plusa -g" ./configure --prefix=/usr/local/mysql --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-debug
+CFLAGS="-g -Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wparentheses -Wsign-compare -Wwrite-strings -Wunused -O3 -fno-omit-frame-pointer -mcpu=v8 -Wa,-xarch=v8plusa" CXX=gcc CXXFLAGS="-Wimplicit -Wreturn-type -Wid-clash-51 -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wparentheses -Wsign-compare -Wwrite-strings -Woverloaded-virtual -Wsign-promo -Wreorder -Wctor-dtor-privacy -Wnon-virtual-dtor -felide-constructors -fno-exceptions -fno-rtti -O3 -fno-omit-frame-pointer -mcpu=v8 -Wa,-xarch=v8plusa -g" ./configure --prefix=/usr/local/mysql --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-debug
gmake -j 4
diff --git a/BUILD/compile-solaris-sparc-purify b/BUILD/compile-solaris-sparc-purify
index 8bb53bba876..e0878da2099 100755
--- a/BUILD/compile-solaris-sparc-purify
+++ b/BUILD/compile-solaris-sparc-purify
@@ -6,7 +6,7 @@ aclocal && autoheader && aclocal && automake && autoconf
(cd bdb/dist && sh s_all)
(cd innobase && aclocal && autoheader && aclocal && automake && autoconf)
-CFLAGS="-g -Wimplicit -Wreturn-type -Wid-clash-51 -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wimplicit-function-dec -Wimplicit-int -Wparentheses -Wsign-compare -Wwrite-strings -Wunused -DHAVE_purify -DEXTRA_DEBUG -O2" CXX=gcc CXXLD=g++ CXXFLAGS="-g -Wimplicit -Wreturn-type -Wid-clash-51 -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wimplicit-function-dec -Wimplicit-int -Wparentheses -Wsign-compare -Wwrite-strings -Woverloaded-virtual -Wextern-inline -Wsign-promo -Wreorder -Wctor-dtor-privacy -Wnon-virtual-dtor -felide-constructors -fno-exceptions -fno-rtti -DHAVE_purify -DEXTRA_DEBUG -O2" ./configure --prefix=/usr/local/mysql --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-berkeley-db --with-innodb
+CFLAGS="-g -Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wimplicit-function-dec -Wimplicit-int -Wparentheses -Wsign-compare -Wwrite-strings -Wunused -DHAVE_purify -DEXTRA_DEBUG -O2" CXX=gcc CXXLD=g++ CXXFLAGS="-g -Wimplicit -Wreturn-type -Wswitch -Wtrigraphs -Wcomment -W -Wchar-subscripts -Wformat -Wparentheses -Wsign-compare -Wwrite-strings -Woverloaded-virtual -Wsign-promo -Wreorder -Wctor-dtor-privacy -Wnon-virtual-dtor -felide-constructors -fno-exceptions -fno-rtti -DHAVE_purify -DEXTRA_DEBUG -O2" ./configure --prefix=/usr/local/mysql --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-berkeley-db --with-innodb
gmake -j 4
diff --git a/BitKeeper/etc/gone b/BitKeeper/etc/gone
index 38a638caef3..6b1abae9b61 100644
--- a/BitKeeper/etc/gone
+++ b/BitKeeper/etc/gone
@@ -4,11 +4,44 @@ BK|config.h.in|19700101030959|00050|aecae693cca472c
BK|include/my_global.h|19700101030959|00105|f657f708961a4632
BK|libmysql/acconfig.h|19700101030959|02604|7b620dbd69ea6074
BK|mit-pthreads/config.flags|19700101030959|00594|dcec5296ef811cd6
+BK|mit-pthreads/machdep/i386-sco-3.2v5/__math.h|19700101030959|01011|79d9a37715f2c7fe
+BK|mit-pthreads/machdep/i386-sco-3.2v5/__signal.h|19700101030959|01012|45332b2a56f62580
+BK|mit-pthreads/machdep/i386-sco-3.2v5/__stdio.h|19700101030959|01013|a81562134446c64c
+BK|mit-pthreads/machdep/i386-sco-3.2v5/__stdlib.h|19700101030959|01014|bcbed6d62d1885ae
+BK|mit-pthreads/machdep/i386-sco-3.2v5/__string.h|19700101030959|01015|94a2e4f9574bf1e8
+BK|mit-pthreads/machdep/i386-sco-3.2v5/__time.h|19700101030959|01016|2cde57d8feea7fc8
+BK|mit-pthreads/machdep/i386-sco-3.2v5/__unistd.h|19700101030959|01017|5cc4575b5a74066f
+BK|mit-pthreads/machdep/i386-sco-3.2v5/compat.h|19700101030959|01018|1f7e450a2e18603e
+BK|mit-pthreads/machdep/i386-sco-3.2v5/dirent.h|19700101030959|01019|13608bf11af98f70
+BK|mit-pthreads/machdep/i386-sco-3.2v5/posix/__signal.h|19700101030959|01024|9bb7b240bec88b2d
+BK|mit-pthreads/machdep/i386-sco-3.2v5/socket.h|19700101030959|01020|9f78f7e5a7b4a83f
+BK|mit-pthreads/machdep/i386-sco-3.2v5/syscall.h|19700101030959|01021|d9543a0474656339
+BK|mit-pthreads/machdep/i386-sco-3.2v5/timers.h|19700101030959|01022|d5e694e48990538c
+BK|mit-pthreads/machdep/i386-sco-3.2v5/trash.can|19700101030959|01023|9332039abd82a925
+BK|mit-pthreads/machdep/sco-3.2v5/__math.h|19700101030959|00971|f3855eb411435a06
+BK|mit-pthreads/machdep/sco-3.2v5/__signal.h|19700101030959|00972|3d6f84e96bc1462
+BK|mit-pthreads/machdep/sco-3.2v5/__stdio.h|19700101030959|00973|b991fad3327275e0
+BK|mit-pthreads/machdep/sco-3.2v5/__stdlib.h|19700101030959|00974|6179a0922d90025e
+BK|mit-pthreads/machdep/sco-3.2v5/__string.h|19700101030959|00975|d2cc42eeb5e1666
+BK|mit-pthreads/machdep/sco-3.2v5/__time.h|19700101030959|00976|a9594bab280ced64
+BK|mit-pthreads/machdep/sco-3.2v5/__unistd.h|19700101030959|00977|99e6f1116d1f920
+BK|mit-pthreads/machdep/sco-3.2v5/compat.h|19700101030959|00978|3f150ff6223d49be
+BK|mit-pthreads/machdep/sco-3.2v5/dirent.h|19700101030959|00979|388af3465ad4680f
+BK|mit-pthreads/machdep/sco-3.2v5/posix/__signal.h|19700101030959|00984|5e14827a3b91a6db
+BK|mit-pthreads/machdep/sco-3.2v5/socket.h|19700101030959|00980|1b409f3f1fcbbf7a
+BK|mit-pthreads/machdep/sco-3.2v5/syscall.h|19700101030959|00981|c69bd58eba4d5076
+BK|mit-pthreads/machdep/sco-3.2v5/timers.h|19700101030959|00982|4907a958151368ed
+BK|mit-pthreads/machdep/sco-3.2v5/trash.can|19700101030959|00983|7eecac9fc944ade2
BK|myisam/common_words|19700101030959|01665|13c10ef32aaa7537
BK|myisam/mi_test_all|19700101030959|01666|ae7a366c45527b4e
BK|mysys/mf_reccache.c|19700101030959|01419|f8191c8485e158fe
+BK|sql-bench/Results-linux/ATIS-interbase-Linux_2.2.14_5.0_i686-cmp-interbase,mysql|19700101030959|02361|6a0a837742a861bb
+BK|sql-bench/Results-linux/ATIS-interbase-Linux_2.2.14_5.0_i686|19700101030959|02348|e87091e2a6dce931
+BK|sql-bench/Results-linux/ATIS-mysql-Linux_2.0.33_i586-cmp-access,mysql|19700101030959|02326|70981cb1dd58d3fb
+BK|sql-bench/Results-linux/ATIS-mysql-Linux_2.0.33_i586-cmp-ms-sql,mysql,sybase|19700101030959|02327|67957b2b80839c59
BK|sql-bench/Results-linux/ATIS-mysql-Linux_2.2.12_20smp_i686|19700101030959|02437|28211fb9f0e6ab0e
BK|sql-bench/Results-linux/ATIS-mysql-Linux_2.2.13_SMP_alpha|19700101030959|02438|136bdd9fd1a2cd14
+BK|sql-bench/Results-linux/ATIS-mysql-Linux_2.2.14_5.0_i686-cmp-interbase,mysql|19700101030959|02362|20e8179c6f87930d
BK|sql-bench/Results-linux/ATIS-mysql_fast-Linux_2.2.13_SMP_alpha|19700101030959|02443|defb62af5958fcac
BK|sql-bench/Results-linux/Attic/ATIS-mysql-Linux_2.0.33_i586|19700101030959|02381|ef64fcf54c271212
BK|sql-bench/Results-linux/Attic/ATIS-mysql-Linux_dynamic|19700101030959|02382|ffa77bdc262ac10f
@@ -66,29 +99,67 @@ BK|sql-bench/Results-linux/Attic/wisconsin-mysql-Linux_static|19700101030959|024
BK|sql-bench/Results-linux/Attic/wisconsin-mysql_fast-Linux_2.0.33_i586|19700101030959|02434|7d98b33fa6d91a87
BK|sql-bench/Results-linux/Attic/wisconsin-mysql_local_tcp-Linux_2.0.33_i586|19700101030959|02435|28a4840ebd5dd015
BK|sql-bench/Results-linux/Attic/wisconsin-mysql_new-Linux_2.0.33_i586|19700101030959|02436|e1f17edfbee1f22e
+BK|sql-bench/Results-linux/RUN-interbase-Linux_2.2.14_5.0_i686-cmp-interbase,mysql|19700101030959|02365|5e446b99518aa0b1
+BK|sql-bench/Results-linux/RUN-interbase-Linux_2.2.14_5.0_i686|19700101030959|02351|9a0d8be7d641fae7
+BK|sql-bench/Results-linux/RUN-mysql-Linux_2.0.33_i586-cmp-access,mysql|19700101030959|02334|5f0504783180d906
+BK|sql-bench/Results-linux/RUN-mysql-Linux_2.0.33_i586-cmp-ms-sql,mysql,sybase|19700101030959|02335|6abba8bd8d9f8b7b
BK|sql-bench/Results-linux/RUN-mysql-Linux_2.2.12_20smp_i686|19700101030959|02328|da28ced3e0aac09c
BK|sql-bench/Results-linux/RUN-mysql-Linux_2.2.13_SMP_alpha|19700101030959|02329|f6fa9f46d4a6152
+BK|sql-bench/Results-linux/RUN-mysql-Linux_2.2.14_5.0_i686-cmp-interbase,mysql|19700101030959|02366|730674f4ac333638
BK|sql-bench/Results-linux/RUN-mysql_fast-Linux_2.2.13_SMP_alpha|19700101030959|02444|16694c5927b7600c
+BK|sql-bench/Results-linux/alter-table-interbase-Linux_2.2.14_5.0_i686-cmp-interbase,mysql|19700101030959|02367|e901749edf05bb58
+BK|sql-bench/Results-linux/alter-table-interbase-Linux_2.2.14_5.0_i686|19700101030959|02352|c4e27f25a15b6681
BK|sql-bench/Results-linux/alter-table-mysql-Linux_2.2.12_20smp_i686|19700101030959|02330|67ae4e91b5f4eabd
BK|sql-bench/Results-linux/alter-table-mysql-Linux_2.2.13_SMP_alpha|19700101030959|02331|c85eb85ba45dd748
+BK|sql-bench/Results-linux/alter-table-mysql-Linux_2.2.14_5.0_i686-cmp-interbase,mysql|19700101030959|02368|19c95f9fc4ee458
BK|sql-bench/Results-linux/alter-table-mysql_fast-Linux_2.2.13_SMP_alpha|19700101030959|02445|b062db76cf6df5d2
+BK|sql-bench/Results-linux/big-tables-interbase-Linux_2.2.14_5.0_i686-cmp-interbase,mysql|19700101030959|02371|c0c1c5efea0661ad
+BK|sql-bench/Results-linux/big-tables-interbase-Linux_2.2.14_5.0_i686|19700101030959|02353|beba3adfcfd472c0
+BK|sql-bench/Results-linux/big-tables-mysql-Linux_2.0.33_i586-cmp-access,mysql|19700101030959|02341|cabe523a8f103945
+BK|sql-bench/Results-linux/big-tables-mysql-Linux_2.0.33_i586-cmp-ms-sql,mysql,sybase|19700101030959|02342|c682fb7ee1fb3d8
BK|sql-bench/Results-linux/big-tables-mysql-Linux_2.2.12_20smp_i686|19700101030959|02332|a2dcb74a3c73ac18
BK|sql-bench/Results-linux/big-tables-mysql-Linux_2.2.13_SMP_alpha|19700101030959|02333|b5f4f4c35225f0f
+BK|sql-bench/Results-linux/big-tables-mysql-Linux_2.2.14_5.0_i686-cmp-interbase,mysql|19700101030959|02372|69d33d25eda85041
BK|sql-bench/Results-linux/big-tables-mysql_fast-Linux_2.2.13_SMP_alpha|19700101030959|02446|a9eedd951eab7e8b
+BK|sql-bench/Results-linux/connect-interbase-Linux_2.2.14_5.0_i686-cmp-interbase,mysql|19700101030959|02373|744f1e38649d21d
+BK|sql-bench/Results-linux/connect-interbase-Linux_2.2.14_5.0_i686|19700101030959|02354|c28534284b9f5657
+BK|sql-bench/Results-linux/connect-mysql-Linux_2.0.33_i586-cmp-access,mysql|19700101030959|02349|ebdc62367f5fcd43
+BK|sql-bench/Results-linux/connect-mysql-Linux_2.0.33_i586-cmp-ms-sql,mysql,sybase|19700101030959|02350|7ed494b7cc7081c9
BK|sql-bench/Results-linux/connect-mysql-Linux_2.2.12_20smp_i686|19700101030959|02336|beedcd769a903c19
BK|sql-bench/Results-linux/connect-mysql-Linux_2.2.13_SMP_alpha|19700101030959|02337|74ec2bf5f55b81f
+BK|sql-bench/Results-linux/connect-mysql-Linux_2.2.14_5.0_i686-cmp-interbase,mysql|19700101030959|02374|55d777517ce8091
BK|sql-bench/Results-linux/connect-mysql_fast-Linux_2.2.13_SMP_alpha|19700101030959|02447|f6d7665c418d62c6
+BK|sql-bench/Results-linux/create-interbase-Linux_2.2.14_5.0_i686-cmp-interbase,mysql|19700101030959|02377|d60ca06157cfc9b9
+BK|sql-bench/Results-linux/create-interbase-Linux_2.2.14_5.0_i686|19700101030959|02355|537da98f6c1bc6df
+BK|sql-bench/Results-linux/create-mysql-Linux_2.0.33_i586-cmp-access,mysql|19700101030959|02356|612a182b889dd778
+BK|sql-bench/Results-linux/create-mysql-Linux_2.0.33_i586-cmp-ms-sql,mysql,sybase|19700101030959|02357|b501391eec112dd0
BK|sql-bench/Results-linux/create-mysql-Linux_2.2.12_20smp_i686|19700101030959|02338|fe23ee50aea195f4
BK|sql-bench/Results-linux/create-mysql-Linux_2.2.13_SMP_alpha|19700101030959|02339|771b40d3280fe8ad
+BK|sql-bench/Results-linux/create-mysql-Linux_2.2.14_5.0_i686-cmp-interbase,mysql|19700101030959|02378|35bd48cfe30c16a3
BK|sql-bench/Results-linux/create-mysql_fast-Linux_2.2.13_SMP_alpha|19700101030959|02448|c46d6c283c0e34ae
+BK|sql-bench/Results-linux/insert-interbase-Linux_2.2.14_5.0_i686-cmp-interbase,mysql|19700101030959|02379|25161ee7c13036c1
+BK|sql-bench/Results-linux/insert-interbase-Linux_2.2.14_5.0_i686|19700101030959|02358|461a48df25628c0f
+BK|sql-bench/Results-linux/insert-mysql-Linux_2.0.33_i586-cmp-access,mysql|19700101030959|02363|3260743076dbe95f
+BK|sql-bench/Results-linux/insert-mysql-Linux_2.0.33_i586-cmp-ms-sql,mysql,sybase|19700101030959|02364|9de5538694cd87ea
BK|sql-bench/Results-linux/insert-mysql-Linux_2.2.12_20smp_i686|19700101030959|02340|f120b0ead3836c81
BK|sql-bench/Results-linux/insert-mysql-Linux_2.2.13_SMP_alpha|19700101030959|02343|17f262f12d2244bc
+BK|sql-bench/Results-linux/insert-mysql-Linux_2.2.14_5.0_i686-cmp-interbase,mysql|19700101030959|02380|7451b789c29b7dcd
BK|sql-bench/Results-linux/insert-mysql_fast-Linux_2.2.13_SMP_alpha|19700101030959|02449|3245ba5633a18e8
+BK|sql-bench/Results-linux/select-interbase-Linux_2.2.14_5.0_i686-cmp-interbase,mysql|19700101030959|02439|816ec12a9152b578
+BK|sql-bench/Results-linux/select-interbase-Linux_2.2.14_5.0_i686|19700101030959|02359|3535cd00c2a9cb5d
+BK|sql-bench/Results-linux/select-mysql-Linux_2.0.33_i586-cmp-access,mysql|19700101030959|02369|de288cd8c11e1749
+BK|sql-bench/Results-linux/select-mysql-Linux_2.0.33_i586-cmp-ms-sql,mysql,sybase|19700101030959|02370|a82e759dbd5d66b
BK|sql-bench/Results-linux/select-mysql-Linux_2.2.12_20smp_i686|19700101030959|02344|3b64aff0dfddfff4
BK|sql-bench/Results-linux/select-mysql-Linux_2.2.13_SMP_alpha|19700101030959|02345|9fd9c6e036f988d7
+BK|sql-bench/Results-linux/select-mysql-Linux_2.2.14_5.0_i686-cmp-interbase,mysql|19700101030959|02440|862a7c0ef1b17f29
BK|sql-bench/Results-linux/select-mysql_fast-Linux_2.2.13_SMP_alpha|19700101030959|02450|744633c6e13a897f
+BK|sql-bench/Results-linux/wisconsin-interbase-Linux_2.2.14_5.0_i686-cmp-interbase,mysql|19700101030959|02441|cb767c1f9abc2ebd
+BK|sql-bench/Results-linux/wisconsin-interbase-Linux_2.2.14_5.0_i686|19700101030959|02360|9404247a2e483b34
+BK|sql-bench/Results-linux/wisconsin-mysql-Linux_2.0.33_i586-cmp-access,mysql|19700101030959|02375|8669562660b2c238
+BK|sql-bench/Results-linux/wisconsin-mysql-Linux_2.0.33_i586-cmp-ms-sql,mysql,sybase|19700101030959|02376|c7cbe3b167655f9c
BK|sql-bench/Results-linux/wisconsin-mysql-Linux_2.2.12_20smp_i686|19700101030959|02346|d49db545341a732f
BK|sql-bench/Results-linux/wisconsin-mysql-Linux_2.2.13_SMP_alpha|19700101030959|02347|ad7babd436f26841
+BK|sql-bench/Results-linux/wisconsin-mysql-Linux_2.2.14_5.0_i686-cmp-interbase,mysql|19700101030959|02442|74b238eca114dbbe
BK|sql-bench/Results-linux/wisconsin-mysql_fast-Linux_2.2.13_SMP_alpha|19700101030959|02451|6ad065fe4c6b4fa9
BK|sql-bench/Results/ATIS-mysql-Linux_2.2.10_i686|19700101030959|02025|3fa4d167cceff7e8
BK|sql-bench/Results/ATIS-mysql-Linux_2.2.14_5.0_i686-cmp-mysql,pg|19700101030959|02312|84ca3b85ff306133
@@ -236,7 +307,44 @@ BK|sql-bench/Results/wisconsin-pg_fast-Linux_2.2.14_5.0_i686-cmp-mysql,pg|197001
BK|sql-bench/Results/wisconsin-pg_fast-Linux_2.2.14_5.0_i686|19700101030959|02270|ef201ca14f635c57
BK|sql/share/romanian/errmsg.sys|19700101030959|01869|9d8282efb437e8cc
BK|sql/share/romanian/errmsg.txt|19700101030959|01870|2c64fb13a8f104ad
+miguel@hegel.local|zlib/Make_vms.com|20020319032513|57151|35050a50ec612bbf
+miguel@hegel.local|zlib/Makefile.riscos|20020319032513|63798|8ab53f195fe429af
+miguel@hegel.local|zlib/amiga/Makefile.pup|20020319032513|19225|6a9ee8128d11541f
+miguel@hegel.local|zlib/amiga/Makefile.sas|20020319032513|25562|d7128ac7e0946f0b
+miguel@hegel.local|zlib/contrib/untgz/makefile.w32|20020319032516|01267|2c584f05a16db4ba
+miguel@hegel.local|zlib/msdos/Makefile.b32|20020319032518|33760|86772037f3344353
+miguel@hegel.local|zlib/msdos/Makefile.bor|20020319032518|40099|7aa9edaac099cdb9
+miguel@hegel.local|zlib/msdos/Makefile.dj2|20020319032518|46371|ca26f5fe96e3e999
+miguel@hegel.local|zlib/msdos/Makefile.emx|20020319032518|52757|64efbf8cedc146b5
+miguel@hegel.local|zlib/msdos/Makefile.msc|20020319032518|59050|1bb69abdddf390f2
+miguel@hegel.local|zlib/msdos/Makefile.tc|20020319032518|65341|2a9dff916115ae77
+miguel@hegel.local|zlib/msdos/Makefile.w32|20020319032518|06083|8d84523c1dcdc0f7
+miguel@hegel.local|zlib/msdos/Makefile.wat|20020319032518|12471|82f8714d825e97e3
+miguel@hegel.local|zlib/nt/Makefile.emx|20020319032518|31715|7e9fcf6f5ad2e51a
+miguel@hegel.local|zlib/nt/Makefile.gcc|20020319032519|03630|351fa8bd15c704b9
+miguel@hegel.local|zlib/nt/Makefile.nt|20020319032519|09990|ee461a3dd393a061
+miguel@hegel.local|zlib/os2/Makefile.os2|20020319032519|22554|7a05f2a27812703a
monty@donna.mysql.com|myisam/mi_debug.c|20000829092809|23459|873a6e7d6ff8297c
+monty@donna.mysql.com|sql-bench/Results-linux/ATIS-mysql_dbug-Linux_2.2.14_my_SMP_i686|20001218140918|34755|45d7837423db243f
+monty@donna.mysql.com|sql-bench/Results-linux/ATIS-mysql_dbug_full-Linux_2.2.14_my_SMP_i686|20001218140918|37262|2274651e29d38b07
+monty@donna.mysql.com|sql-bench/Results-linux/RUN-mysql_dbug-Linux_2.2.14_my_SMP_i686|20001218140918|39831|a6ef8229d40b75d1
+monty@donna.mysql.com|sql-bench/Results-linux/RUN-mysql_dbug_full-Linux_2.2.14_my_SMP_i686|20001218140918|42374|65ccbcd7b1c4d7b5
+monty@donna.mysql.com|sql-bench/Results-linux/alter-table-mysql_dbug-Linux_2.2.14_my_SMP_i686|20001218140918|44909|de84e4a2fd07f53
+monty@donna.mysql.com|sql-bench/Results-linux/alter-table-mysql_dbug_full-Linux_2.2.14_my_SMP_i686|20001218140918|47422|ee162dd1474ba9d8
+monty@donna.mysql.com|sql-bench/Results-linux/big-tables-mysql_dbug-Linux_2.2.14_my_SMP_i686|20001218140918|49948|d11a751a268a4df3
+monty@donna.mysql.com|sql-bench/Results-linux/big-tables-mysql_dbug_full-Linux_2.2.14_my_SMP_i686|20001218140918|52469|c13eca5ec25cd6e1
+monty@donna.mysql.com|sql-bench/Results-linux/connect-mysql_dbug-Linux_2.2.14_my_SMP_i686|20001218140918|54998|dfaa50e67eb15556
+monty@donna.mysql.com|sql-bench/Results-linux/connect-mysql_dbug_full-Linux_2.2.14_my_SMP_i686|20001218140918|57532|4015a2bef627d8cd
+monty@donna.mysql.com|sql-bench/Results-linux/create-mysql_dbug-Linux_2.2.14_my_SMP_i686|20001218140918|60103|fa19b9a2c7a3c3c
+monty@donna.mysql.com|sql-bench/Results-linux/create-mysql_dbug_full-Linux_2.2.14_my_SMP_i686|20001218140918|62710|21ec8ba1ea3ca4c4
+monty@donna.mysql.com|sql-bench/Results-linux/insert-mysql_dbug-Linux_2.2.14_my_SMP_i686|20001218140918|65289|a02aceb3b30de493
+monty@donna.mysql.com|sql-bench/Results-linux/insert-mysql_dbug_full-Linux_2.2.14_my_SMP_i686|20001218140918|02393|7c9baa774fc324e1
+monty@donna.mysql.com|sql-bench/Results-linux/select-mysql_dbug-Linux_2.2.14_my_SMP_i686|20001218140918|05001|da73eefa16ca9383
+monty@donna.mysql.com|sql-bench/Results-linux/select-mysql_dbug_full-Linux_2.2.14_my_SMP_i686|20001218140918|07610|cffd7d282a90113a
+monty@donna.mysql.com|sql-bench/Results-linux/wisconsin-mysql_dbug-Linux_2.2.14_my_SMP_i686|20001218140918|10615|8dcd7271a9137341
+monty@donna.mysql.com|sql-bench/Results-linux/wisconsin-mysql_dbug_full-Linux_2.2.14_my_SMP_i686|20001218140918|13213|4398328883aa75da
+mwagner@evoq.home.mwagner.org|mysql-test/chew_on_this/select.res|20001014084759|41327|1295456b9394876
+mwagner@evoq.home.mwagner.org|mysql-test/chew_on_this/select.res|20001014084759|41327|1295456b93948768
mwagner@evoq.home.mwagner.org|mysql-test/mybin/start-mysqld|20001016055648|54840|9c8f21a7ab97793a
mwagner@evoq.home.mwagner.org|mysql-test/mybin/stop-mysqld|20001016055653|20710|89a1194045f05d1c
mwagner@evoq.home.mwagner.org|mysql-test/mybin/translate-tests|20001018130217|00206|3869c1fdf0a5ea1a
@@ -315,67 +423,3 @@ sasha@mysql.sashanet.com|mysql-test/t/include/master-slave.inc|20001118030458|01
sasha@work.mysql.com|BitKeeper/etc/logging_ok|20001214015456|29919|32b6551b8288c2fa
serg@serg.mysql.com|mysql-test/r/3.23/mrg000001.dummy.result|20001206231604|05053|bf7e6d609f22b897
serg@serg.mysql.com|mysql-test/r/3.23/mrg000001.result|20001206231609|46662|db2ef2e717ab8332
-mwagner@evoq.home.mwagner.org|mysql-test/chew_on_this/select.res|20001014084759|41327|1295456b9394876
-mwagner@evoq.home.mwagner.org|mysql-test/chew_on_this/select.res|20001014084759|41327|1295456b93948768
-BK|sql-bench/Results-linux/ATIS-interbase-Linux_2.2.14_5.0_i686-cmp-interbase,mysql|19700101030959|02361|6a0a837742a861bb
-BK|sql-bench/Results-linux/ATIS-interbase-Linux_2.2.14_5.0_i686|19700101030959|02348|e87091e2a6dce931
-BK|sql-bench/Results-linux/ATIS-mysql-Linux_2.0.33_i586-cmp-access,mysql|19700101030959|02326|70981cb1dd58d3fb
-BK|sql-bench/Results-linux/ATIS-mysql-Linux_2.0.33_i586-cmp-ms-sql,mysql,sybase|19700101030959|02327|67957b2b80839c59
-BK|sql-bench/Results-linux/ATIS-mysql-Linux_2.2.14_5.0_i686-cmp-interbase,mysql|19700101030959|02362|20e8179c6f87930d
-BK|sql-bench/Results-linux/RUN-interbase-Linux_2.2.14_5.0_i686-cmp-interbase,mysql|19700101030959|02365|5e446b99518aa0b1
-BK|sql-bench/Results-linux/RUN-interbase-Linux_2.2.14_5.0_i686|19700101030959|02351|9a0d8be7d641fae7
-BK|sql-bench/Results-linux/RUN-mysql-Linux_2.0.33_i586-cmp-access,mysql|19700101030959|02334|5f0504783180d906
-BK|sql-bench/Results-linux/RUN-mysql-Linux_2.0.33_i586-cmp-ms-sql,mysql,sybase|19700101030959|02335|6abba8bd8d9f8b7b
-BK|sql-bench/Results-linux/RUN-mysql-Linux_2.2.14_5.0_i686-cmp-interbase,mysql|19700101030959|02366|730674f4ac333638
-BK|sql-bench/Results-linux/alter-table-interbase-Linux_2.2.14_5.0_i686-cmp-interbase,mysql|19700101030959|02367|e901749edf05bb58
-BK|sql-bench/Results-linux/alter-table-interbase-Linux_2.2.14_5.0_i686|19700101030959|02352|c4e27f25a15b6681
-BK|sql-bench/Results-linux/alter-table-mysql-Linux_2.2.14_5.0_i686-cmp-interbase,mysql|19700101030959|02368|19c95f9fc4ee458
-BK|sql-bench/Results-linux/big-tables-interbase-Linux_2.2.14_5.0_i686-cmp-interbase,mysql|19700101030959|02371|c0c1c5efea0661ad
-BK|sql-bench/Results-linux/big-tables-interbase-Linux_2.2.14_5.0_i686|19700101030959|02353|beba3adfcfd472c0
-BK|sql-bench/Results-linux/big-tables-mysql-Linux_2.0.33_i586-cmp-access,mysql|19700101030959|02341|cabe523a8f103945
-BK|sql-bench/Results-linux/big-tables-mysql-Linux_2.0.33_i586-cmp-ms-sql,mysql,sybase|19700101030959|02342|c682fb7ee1fb3d8
-BK|sql-bench/Results-linux/big-tables-mysql-Linux_2.2.14_5.0_i686-cmp-interbase,mysql|19700101030959|02372|69d33d25eda85041
-BK|sql-bench/Results-linux/connect-interbase-Linux_2.2.14_5.0_i686-cmp-interbase,mysql|19700101030959|02373|744f1e38649d21d
-BK|sql-bench/Results-linux/connect-interbase-Linux_2.2.14_5.0_i686|19700101030959|02354|c28534284b9f5657
-BK|sql-bench/Results-linux/connect-mysql-Linux_2.0.33_i586-cmp-access,mysql|19700101030959|02349|ebdc62367f5fcd43
-BK|sql-bench/Results-linux/connect-mysql-Linux_2.0.33_i586-cmp-ms-sql,mysql,sybase|19700101030959|02350|7ed494b7cc7081c9
-BK|sql-bench/Results-linux/connect-mysql-Linux_2.2.14_5.0_i686-cmp-interbase,mysql|19700101030959|02374|55d777517ce8091
-BK|sql-bench/Results-linux/create-interbase-Linux_2.2.14_5.0_i686-cmp-interbase,mysql|19700101030959|02377|d60ca06157cfc9b9
-BK|sql-bench/Results-linux/create-interbase-Linux_2.2.14_5.0_i686|19700101030959|02355|537da98f6c1bc6df
-BK|sql-bench/Results-linux/create-mysql-Linux_2.0.33_i586-cmp-access,mysql|19700101030959|02356|612a182b889dd778
-BK|sql-bench/Results-linux/create-mysql-Linux_2.0.33_i586-cmp-ms-sql,mysql,sybase|19700101030959|02357|b501391eec112dd0
-BK|sql-bench/Results-linux/create-mysql-Linux_2.2.14_5.0_i686-cmp-interbase,mysql|19700101030959|02378|35bd48cfe30c16a3
-BK|sql-bench/Results-linux/insert-interbase-Linux_2.2.14_5.0_i686-cmp-interbase,mysql|19700101030959|02379|25161ee7c13036c1
-BK|sql-bench/Results-linux/insert-interbase-Linux_2.2.14_5.0_i686|19700101030959|02358|461a48df25628c0f
-BK|sql-bench/Results-linux/insert-mysql-Linux_2.0.33_i586-cmp-access,mysql|19700101030959|02363|3260743076dbe95f
-BK|sql-bench/Results-linux/insert-mysql-Linux_2.0.33_i586-cmp-ms-sql,mysql,sybase|19700101030959|02364|9de5538694cd87ea
-BK|sql-bench/Results-linux/insert-mysql-Linux_2.2.14_5.0_i686-cmp-interbase,mysql|19700101030959|02380|7451b789c29b7dcd
-BK|sql-bench/Results-linux/select-interbase-Linux_2.2.14_5.0_i686-cmp-interbase,mysql|19700101030959|02439|816ec12a9152b578
-BK|sql-bench/Results-linux/select-interbase-Linux_2.2.14_5.0_i686|19700101030959|02359|3535cd00c2a9cb5d
-BK|sql-bench/Results-linux/select-mysql-Linux_2.0.33_i586-cmp-access,mysql|19700101030959|02369|de288cd8c11e1749
-BK|sql-bench/Results-linux/select-mysql-Linux_2.0.33_i586-cmp-ms-sql,mysql,sybase|19700101030959|02370|a82e759dbd5d66b
-BK|sql-bench/Results-linux/select-mysql-Linux_2.2.14_5.0_i686-cmp-interbase,mysql|19700101030959|02440|862a7c0ef1b17f29
-BK|sql-bench/Results-linux/wisconsin-interbase-Linux_2.2.14_5.0_i686-cmp-interbase,mysql|19700101030959|02441|cb767c1f9abc2ebd
-BK|sql-bench/Results-linux/wisconsin-interbase-Linux_2.2.14_5.0_i686|19700101030959|02360|9404247a2e483b34
-BK|sql-bench/Results-linux/wisconsin-mysql-Linux_2.0.33_i586-cmp-access,mysql|19700101030959|02375|8669562660b2c238
-BK|sql-bench/Results-linux/wisconsin-mysql-Linux_2.0.33_i586-cmp-ms-sql,mysql,sybase|19700101030959|02376|c7cbe3b167655f9c
-BK|sql-bench/Results-linux/wisconsin-mysql-Linux_2.2.14_5.0_i686-cmp-interbase,mysql|19700101030959|02442|74b238eca114dbbe
-monty@donna.mysql.com|sql-bench/Results-linux/ATIS-mysql_dbug-Linux_2.2.14_my_SMP_i686|20001218140918|34755|45d7837423db243f
-monty@donna.mysql.com|sql-bench/Results-linux/ATIS-mysql_dbug_full-Linux_2.2.14_my_SMP_i686|20001218140918|37262|2274651e29d38b07
-monty@donna.mysql.com|sql-bench/Results-linux/RUN-mysql_dbug-Linux_2.2.14_my_SMP_i686|20001218140918|39831|a6ef8229d40b75d1
-monty@donna.mysql.com|sql-bench/Results-linux/RUN-mysql_dbug_full-Linux_2.2.14_my_SMP_i686|20001218140918|42374|65ccbcd7b1c4d7b5
-monty@donna.mysql.com|sql-bench/Results-linux/alter-table-mysql_dbug-Linux_2.2.14_my_SMP_i686|20001218140918|44909|de84e4a2fd07f53
-monty@donna.mysql.com|sql-bench/Results-linux/alter-table-mysql_dbug_full-Linux_2.2.14_my_SMP_i686|20001218140918|47422|ee162dd1474ba9d8
-monty@donna.mysql.com|sql-bench/Results-linux/big-tables-mysql_dbug-Linux_2.2.14_my_SMP_i686|20001218140918|49948|d11a751a268a4df3
-monty@donna.mysql.com|sql-bench/Results-linux/big-tables-mysql_dbug_full-Linux_2.2.14_my_SMP_i686|20001218140918|52469|c13eca5ec25cd6e1
-monty@donna.mysql.com|sql-bench/Results-linux/connect-mysql_dbug-Linux_2.2.14_my_SMP_i686|20001218140918|54998|dfaa50e67eb15556
-monty@donna.mysql.com|sql-bench/Results-linux/connect-mysql_dbug_full-Linux_2.2.14_my_SMP_i686|20001218140918|57532|4015a2bef627d8cd
-monty@donna.mysql.com|sql-bench/Results-linux/create-mysql_dbug-Linux_2.2.14_my_SMP_i686|20001218140918|60103|fa19b9a2c7a3c3c
-monty@donna.mysql.com|sql-bench/Results-linux/create-mysql_dbug_full-Linux_2.2.14_my_SMP_i686|20001218140918|62710|21ec8ba1ea3ca4c4
-monty@donna.mysql.com|sql-bench/Results-linux/insert-mysql_dbug-Linux_2.2.14_my_SMP_i686|20001218140918|65289|a02aceb3b30de493
-monty@donna.mysql.com|sql-bench/Results-linux/insert-mysql_dbug_full-Linux_2.2.14_my_SMP_i686|20001218140918|02393|7c9baa774fc324e1
-monty@donna.mysql.com|sql-bench/Results-linux/select-mysql_dbug-Linux_2.2.14_my_SMP_i686|20001218140918|05001|da73eefa16ca9383
-monty@donna.mysql.com|sql-bench/Results-linux/select-mysql_dbug_full-Linux_2.2.14_my_SMP_i686|20001218140918|07610|cffd7d282a90113a
-monty@donna.mysql.com|sql-bench/Results-linux/wisconsin-mysql_dbug-Linux_2.2.14_my_SMP_i686|20001218140918|10615|8dcd7271a9137341
-monty@donna.mysql.com|sql-bench/Results-linux/wisconsin-mysql_dbug_full-Linux_2.2.14_my_SMP_i686|20001218140918|13213|4398328883aa75da
-mwagner@evoq.home.mwagner.org|mysql-test/chew_on_this/select.res|20001014084759|41327|1295456b9394876
diff --git a/BitKeeper/etc/logging_ok b/BitKeeper/etc/logging_ok
index a0fb630c348..6a11e32ae48 100644
--- a/BitKeeper/etc/logging_ok
+++ b/BitKeeper/etc/logging_ok
@@ -4,6 +4,7 @@ Administrator@fred.
Miguel@light.local
Sinisa@sinisa.nasamreza.org
ahlentz@co3064164-a.rochd1.qld.optusnet.com.au
+akishkin@work.mysql.com
arjen@co3064164-a.bitbike.com
arjen@fred.bitbike.com
arjen@george.bitbike.com
@@ -12,9 +13,12 @@ bell@sanja.is.com.ua
davida@isil.mysql.com
heikki@donna.mysql.fi
heikki@hundin.mysql.fi
+jani@dsl-jkl1657.dial.inet.fi
+jani@hynda.(none)
jani@hynda.mysql.fi
jani@janikt.pp.saunalahti.fi
jani@rhols221.adsl.netsonic.fi
+jani@rhols221.arenanet.fi
jcole@abel.spaceapes.com
jcole@main.burghcom.com
jcole@mugatu.spaceapes.com
@@ -22,21 +26,29 @@ jcole@sarvik.tfr.cafe.ee
jcole@tetra.spaceapes.com
jorge@linux.jorge.mysql.com
kaj@work.mysql.com
+lenz@kallisto.mysql.com
+lenz@mysql.com
miguel@hegel.local
miguel@light.local
monty@bitch.mysql.fi
monty@donna.mysql.fi
monty@hundin.mysql.fi
+monty@narttu.
+monty@narttu.mysql.fi
+monty@tik.
monty@tik.mysql.fi
monty@tramp.mysql.fi
monty@work.mysql.com
mwagner@cash.mwagner.org
mwagner@evoq.mwagner.org
+nick@nick.leippe.com
paul@central.snake.net
paul@teton.kitebird.com
+ram@gw.udmsearch.izhnet.ru
root@x3.internalnet
sasha@mysql.sashanet.com
serg@serg.mysql.com
+serg@sergbook.mysql.com
sinisa@rhols221.adsl.netsonic.fi
tfr@sarvik.tfr.cafe.ee
tim@bitch.mysql.fi
@@ -51,6 +63,6 @@ tonu@volk.internalnet
tonu@x153.internalnet
tonu@x3.internalnet
venu@work.mysql.com
+worm@altair.is.lan
zak@balfor.local
zak@linux.local
-ram@gw.udmsearch.izhnet.ru
diff --git a/BitKeeper/triggers/post-commit b/BitKeeper/triggers/post-commit
index bde60e84b3d..dea8c2a2a5d 100755
--- a/BitKeeper/triggers/post-commit
+++ b/BitKeeper/triggers/post-commit
@@ -59,8 +59,9 @@ EOF
#++
# docs-commit@ mail
+# Picks up anything under the Docs subdirectory (relevant for docs team).
#--
- bk changes -v -r+ | grep -q Docs/manual.texi
+ bk changes -v -r+ | grep -q " Docs/"
if [ $? -eq 0 ]
then
echo "Notifying docs list at $DOCS"
diff --git a/Build-tools/Do-linux-build b/Build-tools/Do-linux-build
index e5b0a49fe75..a8b12d8b4ae 100755
--- a/Build-tools/Do-linux-build
+++ b/Build-tools/Do-linux-build
@@ -1,9 +1,17 @@
#! /bin/sh
set -e -x
+
+# Only use the "--with-other-libc" parameter, if another libc actually
+# exists, since this will also force static linking, which does not work
+# together with OpenSSL
OTHER_LIBC_DIR=/usr/local/mysql-glibc
+OTHER_LIBC=""
+if [ -d OTHER_LIBC_DIR ] ; then
+ OTHER_LIBC="--with-other-libc=$OTHER_LIBC_DIR"
+fi
-BUILD/compile-pentium-max --with-other-libc=$OTHER_LIBC_DIR \
+BUILD/compile-pentium-max $OTHER_LIBC \
--with-comment="Official MySQL Binary" \
--prefix=/usr/local/mysql --with-extra-charset=complex \
--enable-thread-safe-client --enable-local-infile \
diff --git a/Build-tools/Do-patch-file b/Build-tools/Do-patch-file
index 975c10c6b0e..7e6d4c493d8 100755
--- a/Build-tools/Do-patch-file
+++ b/Build-tools/Do-patch-file
@@ -13,8 +13,8 @@ NEW="mysql-$VER.tar.gz"
OLD="mysql-$PVER.tar.gz"
RESULT="mysql-$PVER-$VER.patch.gz"
PATCH_DIR=/my/web/Downloads-live/Patches
-RESULT_DIR=/my/web/Downloads-live/MySQL-3.23
-RESULT_DIR_MAX=/my/web/Downloads-live/MySQL-Max-3.23
+RESULT_DIR=/my/web/Downloads-live/MySQL-4.0
+RESULT_DIR_MAX=/my/web/Downloads-live/MySQL-Max-4.0
if test ! -f $NEWDIR/$NEW
then
diff --git a/Build-tools/Do-rpm b/Build-tools/Do-rpm
index 410338b9ce6..6d107bc2413 100755
--- a/Build-tools/Do-rpm
+++ b/Build-tools/Do-rpm
@@ -159,10 +159,14 @@ cat > $logdir/$TMP_SCRIPT_MYSQL <<END
set -x
# Check environment
-export MYSQL_BUILD_PATH="/usr/local/bin:/my/gnu/bin:/usr/bin:/bin"
-export MYSQL_BUILD_CFLAGS="-O6 -fno-omit-frame-pointer -mcpu=pentiumpro"
+#export MYSQL_BUILD_PATH="/usr/local/bin:/my/gnu/bin:/usr/bin:/bin"
+#export MYSQL_BUILD_CFLAGS="-O6 -fno-omit-frame-pointer -mcpu=pentiumpro"
+#export MYSQL_BUILD_CXXFLAGS="-O6 -fno-omit-frame-pointer \
+# -felide-constructors -fno-exceptions -fno-rtti -mcpu=pentiumpro"
+export MYSQL_BUILD_PATH="/usr/bin:/bin"
+export MYSQL_BUILD_CFLAGS="-O6 -fno-omit-frame-pointer -mpentium"
export MYSQL_BUILD_CXXFLAGS="-O6 -fno-omit-frame-pointer \
- -felide-constructors -fno-exceptions -fno-rtti -mcpu=pentiumpro"
+ -felide-constructors -fno-exceptions -fno-rtti -mpentium"
gcc -v
# Make RPM
diff --git a/Docs/Flags/new-zealand.eps b/Docs/Flags/new-zealand.eps
new file mode 100644
index 00000000000..9177154f8f7
--- /dev/null
+++ b/Docs/Flags/new-zealand.eps
@@ -0,0 +1,98 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Creator: pnmtops
+%%Title: new-zealand.ps
+%%Pages: 1
+%%BoundingBox: 290 385 321 407
+%%EndComments
+/readstring {
+ currentfile exch readhexstring pop
+} bind def
+/rpicstr 32 string def
+/gpicstr 32 string def
+/bpicstr 32 string def
+%%EndProlog
+%%Page: 1 1
+gsave
+290.64 385.44 translate
+30.72 21.12 scale
+32 22 8
+[ 32 0 0 -22 0 22 ]
+{ rpicstr readstring }
+{ gpicstr readstring }
+{ bpicstr readstring }
+true 3
+colorimage
+000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000
+00000000000000ce770d08080874c6770808080c77ce0808080808080808
+0808080808080800003e58050000004d005000000005583e000000000000
+000000000000000000000042b4b6b5b5b5aa00abb5b5b5b6b442b5b5b5b5
+b5b5b5b5b5b5b5b5b5b5b50000aed2b433080874c677080833b4d2ae0808
+0808080808080808080808080800008a3d5e2b00004d005000002b5e3d8a
+0000000000000000000000000000000000bb3d81bfb5b5aa00abb5b5bf81
+3dbbb5b5b5b5b5b5b5b5b5b5b5b5b5b5b500000967d3ce770d74c6770c77
+ced36709080808080808083e230808080808080000015f733e58054d0050
+05583e735f0100000000000000341c0000000000000000b5cb7d42b4b6aa
+00abb6b4427dcbb5b5b5b5b5b5b5b5bfbcb5b5b5b5b5b50000080825aed2
+b49bc69db3d2ae25080808080808080a65a49a5a0808080808000000001e
+893d5e7400765d3d8a1e000000000000000253444c4d00000000000000b5
+b5bdbb3d81b300b4813dbbbdb5b5b5b5b5b5b5b6bf7285c3b5b5b5b5b500
+00d3d3d3d3d6d5d3c6d3d5d6d3d3d3d30808080808081ccfc01308080808
+0800004d4d4d4d4f4d4200424d4f4d4d4d4d00000000000015484a0b0000
+00000000004f4f4f4f4f4d4200424d4f4f4f4f4fb5b5b5b5b5b5ba4e5fb8
+b5b5b5b5b50000d6d6d6d6d6d6d3c6d3d6d6d6d6d6d60808080808082c59
+6b1808080808080000505050505050420042505050505050000000000000
+25475a1000000000000000505050505050420042505050505050b5b5b5b5
+b5b5bfbdc2b9b5b5b5b5b50000080825aed2b49bc69db4d2ae2508080808
+08080908080808080832080808000000001e8a3d5e7400775e3d8a1e0000
+00000000010000000000002c0000000000b5b5bdbb3d81b300b4813dbbbd
+b5b5b5b5b5b5b5b5b5b5b5b5b5c1b5b5b500000967d3ce770d74c6770c77
+ced36709080808086408080808183eb14528080000015f733e58054d0050
+05583e735f010000000058000000001138714021000000b5cb7d42b4b6aa
+00abb6b4427dcbb5b5b5b5b5c6b5b5b5b5b9c49bc6beb50000aed2b43308
+0874c677080833b4d2ae08083188c8821e08080a7ec8a6190800008a3d5e
+2b00004d005000002b5e3d8a00002b534b591700000252074912000000bb
+3d81bfb5b5aa00abb5b5bf813dbbb5b5c09f58abbbb5b5b6a70776bab500
+00ce770d08080874c6770808080c77ce08080882cd5f0808080861798a08
+0800003e58050000004d005000000005583e0000004b2649000000005249
+660000000042b4b6b5b5b5aa00abb5b5b5b6b442b5b5b59a26b9b5b5b5b5
+c2a1b3b5b50000080808080808080808080808080808080808622d540808
+080810081008080000000000000000000000000000000000000000552548
+0000000008000800000000b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5c4
+bec2b5b5b5b5b7b5b7b5b500000808080808080808080808080808080808
+080808080808080808080808080000000000000000000000000000000000
+0000000000000000000000000000000000b5b5b5b5b5b5b5b5b5b5b5b5b5
+b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b500000808080808080808080808
+080808080808080808080808080808080808080000000000000000000000
+0000000000000000000000000000000000000000000000b5b5b5b5b5b5b5
+b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b500000808080808
+080808080808080808080808080808080808080808080808080000000000
+0000000000000000000000000000000000000000000000000000000000b5
+b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b500
+00080808080808080808080808080808080808080808081c080808080808
+080000000000000000000000000000000000000000000000001400000000
+0000000000b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5bab5b5
+b5b5b5b5b500000808080808080808080808080808080808080808080886
+200808080808080000000000000000000000000000000000000000000000
+005f190000000000000000b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5
+b5b5b5adbcb5b5b5b5b5b500000808080808080808080808080808080808
+0808081196cdc94808080808080000000000000000000000000000000000
+00000000000a7728674100000000000000b5b5b5b5b5b5b5b5b5b5b5b5b5
+b5b5b5b5b5b5b5b8bc2978c5b5b5b5b5b500000808080808080808080808
+080808080808080808083dada00808080808080000000000000000000000
+0000000000000000000000003555670000000000000000b5b5b5b5b5b5b5
+b5b5b5b5b5b5b5b5b5b5b5b5b5b5c17e9fb5b5b5b5b5b500000808080808
+08080808080808080808080808080808240a250908080808080000000000
+0000000000000000000000000000000000001d021e0100000000000000b5
+b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5bdb5bdb5b5b5b5b5b500
+000808080808080808080808080808080808080808080808080808080808
+080000000000000000000000000000000000000000000000000000000000
+0000000000b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5b5
+b5b5b5b5b500000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000000000000000000000000000000000000000
+000000000000000000000000
+grestore
+showpage
+%%Trailer
diff --git a/Docs/Flags/new-zealand.gif b/Docs/Flags/new-zealand.gif
new file mode 100644
index 00000000000..5d74f71ecc0
--- /dev/null
+++ b/Docs/Flags/new-zealand.gif
Binary files differ
diff --git a/Docs/Flags/new-zealand.pdf b/Docs/Flags/new-zealand.pdf
new file mode 100644
index 00000000000..040f8bdb7b0
--- /dev/null
+++ b/Docs/Flags/new-zealand.pdf
Binary files differ
diff --git a/Docs/Flags/new-zealand.txt b/Docs/Flags/new-zealand.txt
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/Docs/Flags/new-zealand.txt
diff --git a/Docs/ManualStyleGuidelines.wiki b/Docs/ManualStyleGuidelines.wiki
new file mode 100644
index 00000000000..3329370411c
--- /dev/null
+++ b/Docs/ManualStyleGuidelines.wiki
@@ -0,0 +1,279 @@
+OriginalAuthor: PaulDuBois
+
+!!! ManualStyleGuidelines
+
+''Version 1.0''
+
+!! Revision History
+
+* 2002-05-17 ArjenLentz - Version 1.0, Posted to Wiki
+
+!! MySQL Manual Style Guidelines
+
+Paul DuBois <paul@snake.net>
+
+The following list of guidelines contains items that I've been jotting
+down over time as style questions have come up in relation to the
+MySQL manual. I wouldn't say they're exactly "official", but they
+do reflect current working practice. Arjen asked me to post this
+on the list some time ago so that it can be discussed with a view
+to adding it (or something like it) to the source tree. So here it is!
+
+Present in the mysql-4.0 source tree: Docs/ManualStyleGuidelines.wiki
+
+
+The manual is written in UK English, not American English. This means:
+
+ colour, not color
+ behaviour, not behavior
+ authorise, not authorize
+ optimise, not optimize
+ etc.
+
+Write MySQL, not @strong{MySQL} (the manual used to use the latter, but no
+more).
+
+Write Unix, not UNIX.
+
+Use uppercase for SQL keywords, functions names, etc., when writing
+SQL statement examples.
+
+To write a list of items, add commas after all items preceding the last one:
+ Correct: Features, products, and services
+ Incorrect: Features, products and services
+
+How to pluralize keywords that are enclosed in @code:
+ Correct: @code{SELECT}s
+ Incorrect: @code{SELECTs} or @code{SELECT}'s or @code{SELECT}:s
+
+Use "its" and "it's" correctly. These words are exceptions to
+the normal use of "'s" to indicate possession:
+
+it's = it is (e.g., "one of the strengths of MySQL is that it's fast")
+its = possession (e.g., "MySQL is fast, which is one of its strengths")
+
+"a lot" is two words. "alot" is rebarbative.
+
+Write lowercase, not lower case
+
+Write uppercase, not upper case
+
+Write lettercase, not letter case
+
+Write "web site" (two words), not "website", and "web page" rather
+than "webpage".
+
+The word "data" is problematic. It's commonly used both in plural and in
+singular form. The manual uses it as plural, which means you use "data are"
+rather than "data is". It's unfortunate that no matter which form we use, it
+will look incorrect to some people. But we can at least be internally
+consistent.
+(Paul: I think that the O'Reilly proofread might have caught one or two of these; could you please pick up on these but don't change them back straight away until the book is finished? Thanks; Arjen).
+
+Write "press Enter", not "hit Return" or "hit Enter".
+
+When reproducing program output, reproduce it exactly, even if it contains
+typos. Don't "fix" it. (If the output is produced by a MySQL program, then
+fix the source for the program to write the output correctly without the
+typo, then update the manual to match.)
+
+Use "okay" rather than "ok" or "Ok" or "OK" in sentences. Exceptions:
+* When describing instructions for a GUI with buttons that say "OK", then use "OK". That is, use the label that the GUI uses.
+* When showing the output from a program, show the output exactly; don't change "ok" to "okay", etc.
+
+Write "Open Source" (inside @code{}), not "open source".
+
+To put something in quotes, do it ``like this,'' not "like this"
+or 'like this.' In the latter two cases, the quotes will come
+out looking rotten in printed formats.
+Exception: quotes in code examples should be written using whatever
+contention the program language requires.
+
+Table types should be written using @code{}; write @code{MyISAM}, not
+MyISAM.
+
+When possible, use table names that are singular, not plural.
+For example, use "item" rather than "items", or "person" rather than
+"people". Sometimes you can add "_list" (as in "item_list") to make it
+more clear that the name refers to a collection of items.
+
+ Some commonly occurring misspelling:
+
+ Correct Incorrect
+ ---------------------------
+ publicly publically
+ statically staticly
+ dynamically dynamicly
+ automatically automaticly
+
+There is no hyphen after "ly" words. Write statically linked, not
+statically-linked.
+
+To refer to ASCII codes, use ASCII n, not ASCII(n), unless you're
+referring to the ASCII() function, which case you use @code{ASCII()}.
+
+ ASCII 13 indicates ASCII character code 13
+ @code{ASCII(13)} indicates a function call
+
+backup is a noun or adjective (as in "a backup file"), back up is a verb
+(as in "to back up a database")
+rollback is a noun or adjective (as in "a rollback operation"), roll back
+is a verb (as in "roll back a transaction")
+
+core dump is a noun or a verb (as in "a core dump file" or "a program
+core dumps when it fails"). In the latter case, however, it's better say
+say "a program dumps core when it fails").
+
+Write character set names in @code{}, e.g., @code{latin1}, @code{win1251}.
+
+To prevent problems with various output formats, there should be no link
+titles in a @uref{}. So @uref{url} is allowed, @uref{url,blabla} is not.
+ Use this format:
+ @uref{url} (WWW)
+ Not this format:
+ @uref{url, WWW}
+ Similarly for FTP sites.
+
+URLs ending in a domain name or directory should have a "/" at the end.
+(For example, the URLs for all mirror sites should be written that way.)
+
+Privilege names are written using @strong and lowercase, as in "the
+@strong{process} privilege". Column names in the grant tables are
+written using @code and the lettercase found in the table definition,
+as in "the @code{Process_priv} column".
+
+Write "e-mail", not "email". Exceptions are the @email{} construct, and
+the Email attribute name in X509 certificate strings.
+
+Write thread-safe, transaction-safe, replication-safe, not thread safe,
+transaction safe, replication safe.
+
+Write wildcard, not wild card or wild-card.
+
+Use "indexes", not "indices": Adding indexes to a table will improve the
+performance of SELECT statements.
+Exception: when returning to array elements, use "indices": The elements
+of the array may be accessed using numeric indices, where the index
+values ranges from 0 to n.
+
+Write "heavy-load production systems" (used as an adjective),
+but "...used under heavy load" (used on its own).
+
+Write PostScript, not Postscript.
+
+When writing a list like "A, B, and C", include a comma before the last and.
+
+Write case-sensitive and case-insensitive (hyphenated).
+
+Write runtime, not run time.
+
+Write backward-compatible, not backward compatible or backwards compatible.
+
+Write application-related, not application related.
+
+Write filesystem, not file system.
+
+Write file-size, not file size.
+
+Write datafile, not data file.
+
+Write power-start, not power start.
+
+Write percent, not per cent.
+
+Write "toward", "and onward", not "towards", "onwards".
+
+Write third-party, not third party.
+
+Write turnkey, not turn-key.
+
+Write "the Net" (capitalised) if referring to the Internet in that way.
+
+Write long-awaited, not long awaited.
+
+Write natural-language, not natural language.
+
+Write low-volume <something> (when used as an adjective).
+
+Write platform-dependent, not platform dependent.
+
+Write something like "mentioned previously" instead of "above", and "later in this section" instead of "below" when making such relative references in your text.
+
+Write "... shown here", not "... shown below".
+
+Write "following some", not "something [shown] below".
+
+Write high-priority <something> (when used as an adjective), not high priority.
+
+Write "whether", not "whether or not".
+
+Write hand-held, not hand held.
+
+Write rewriting, not re-writing.
+
+Write re-issue(ing), not reissue(ing).
+
+Write command-line, not command line.
+
+Write server-side, not server side.
+
+Write "<blabla> only", not "only <blabla>".
+
+Write floating-point, not floating point.
+
+Write heavy-duty, not heavy duty.
+
+Write online, not on-line.
+
+Write user-defined, not user defined.
+
+Write multi-user, not multi user.
+
+Write multi-thread(ed), not multithread(ed).
+
+Write memory-based, not memory based.
+
+Write long-time <something> (when used as an adjective), not long time.
+
+Write 32-bit, not 32 bit or 32 bits. (Same goes for 64-bit, of course! ;-)
+
+Write "different from [what] ...", not "different than ...".
+
+Write "@-e.g., " instead of " e.g. " in the middle of a sentence. (The @- will be turned into a dash, or &mdash; for DocBook output.)
+Following "e.g." by a comma, not a space or a colon.
+
+Write "@-" if you need to put a dash in a text, no surrounding spaces.
+
+Similar story for "for example" as for "e.g."
+
+Write CPU, not cpu (it's an acronym, not a word! ;-)
+
+Write "... uses ... CPU time", not "... uses ... CPU" (unless you're referring the processor itself.)
+
+If a (comment) is at the end of a sentence, start the comment with lowercase and put the . after the closing ), such as (like this).
+If a comment is separate, start with uppercase and put the . inside the closing ). (Like this.)
+
+Write "something cannot do something", not "something can not something".
+
+Write "otherwise, ..." (with the comma) at the start of a sentence.
+
+Paul, could you please check "honoring"... is this proper British English? Thanks, Arjen.
+
+Write "byte-swapping", not "byte swapping".
+
+Write "Note:", not "NOTE:". And then continue with lowercase, it is not the start of a new sentence.
+
+Write "single-CPU" and "multiple-CPU", not "single CPU" and "multiple CPU".
+
+Paul, I think we should also decide whether to write Version or version, and in what situation. I am not changing much now because there's lots of funny instances and I don't want to risk getting it wrong. Thanks, Arjen.
+
+After a semicolon, don't use uppercase. It is NOT the start of a new sentence!
+
+It's "unstable", not "instable". ;-)
+
+It's "full-text", not "fulltext".
+
+Logical NOT/OR/AND are operators, not functions, so they take operands, not arguments.
+
+It's NetWare, not Netware (as per Novell's trademark guidelines).
+
diff --git a/Docs/Support/colspec-fix.pl b/Docs/Support/colspec-fix.pl
index 64269fdbe3a..6c64edd1441 100755
--- a/Docs/Support/colspec-fix.pl
+++ b/Docs/Support/colspec-fix.pl
@@ -8,10 +8,10 @@
use strict;
-my $table_width = 12.75; # cm
-my $gutter_width = 0.09; # cm
+my $table_width = 12.75; # Specify the max width of the table in cm
+my $gutter_width = 0.55; # Specify the width of the gutters in cm
-my $str = join '', <>;
+my $str = join '', <>; # Push stdin (or file)
$str =~ s{([\t ]*(<colspec colwidth=\".+?\" />\s*)+)}
{&rel2abs($1)}ges;
@@ -28,12 +28,17 @@ sub msg {
}
sub rel2abs {
- my $str = shift;
- my $colnum = 1;
+ my $str = shift;
+ my $colnum = 1;
- my @widths = ();
- my $total = 0;
- my $output = '';
+ my @widths = ();
+ my $total = 0;
+ my $output = '';
+
+ my $gutters;
+ my $content_width;
+ my $total_width;
+ my @num_cache;
$str =~ /^(\s+)/;
my $ws = $1;
@@ -43,12 +48,31 @@ sub rel2abs {
push @widths, $1;
}
- my $unit = ($table_width - ($#widths * $gutter_width)) / ($total);
+ msg("!!! WARNING: Total Percent > 100%: $total%") if $total > 100;
+
+ if (! $total) {
+ die 'Something bad has happened - the script believes that there are no columns';
+ }
+
+ $gutters = $#widths * $gutter_width;
+ $content_width = $table_width - $gutters;
+ # Don't forget that $#... is the last offset not the count
foreach (@widths) {
- $output .= $ws . '<colspec colnum="'. $colnum .'" colwidth="'. sprintf ("%0.2f", $_ * $unit) .'cm" />' . "\n";
+ my $temp = sprintf ("%0.2f", $_/100 * $content_width);
+ $total_width += $temp;
+
+ if ($total_width > $content_width) {
+ $temp -= $total_width - $content_width;
+ msg("!!! WARNING: Column width reduced from " .
+ ($temp + ($total_width - $content_width)) . " to $temp !!!");
+ $total_width -= $total_width - $content_width;
+ }
+
+ $output .= $ws . '<colspec colnum="'. $colnum .'" colwidth="'. $temp .'cm" />' . "\n";
++$colnum;
+ push @num_cache, $temp;
}
-
+
return $output . "\n$ws";
}
diff --git a/Docs/Support/docbook-fixup.pl b/Docs/Support/docbook-fixup.pl
index ba2e9b3779d..f9934822f40 100755
--- a/Docs/Support/docbook-fixup.pl
+++ b/Docs/Support/docbook-fixup.pl
@@ -3,7 +3,7 @@
# Fix the output of `makeinfo --docbook` version 4.0c
# Convert the broken docbook output to well-formed XML that conforms to the O'Reilly idiom
# See code for detailed comments
-# Authors: Arjen Lentz and Zak Greant
+# Authors: Arjen Lentz and Zak Greant (original code by Jeremy Cole)
use strict;
@@ -13,7 +13,7 @@ my $apx = '';
my @nodes = ();
my $nodes = '';
-msg ("\n-- Post-processing `makeinfo --docbook` output --");
+msg ("-- Post-processing `makeinfo --docbook` output --");
msg ("** Written to work with makeinfo version 4.0c **\n");
msg ("Discarding DTD - not required by subsequent scripts");
@@ -31,6 +31,26 @@ msg ("Add missing <bookinfo> and <abstract> opening tags");
# ...as soon as we find the first instance, we can stop looking.
$data =~ s/<book lang="en">/<book lang="en"><bookinfo><abstract>/;
+
+# arjen 2002-05-01
+msg ("Processing docbook-prefix special strings");
+$data =~ s/FIXUPmdashFIXUP/\&mdash\;/g;
+
+$data =~ s/FIXUPdoubledashFIXUP/--/g;
+
+$data =~ s/FIXUPstrongFIXUP/<emphasis\ role\=bold>/g;
+$data =~ s/FIXUPendstrongFIXUP/<\/emphasis>/g;
+
+$data =~ s/FIXUPemphFIXUP/<emphasis>/g;
+$data =~ s/FIXUPendemphFIXUP/<\/emphasis>/g;
+
+$data =~ s/FIXUPfileFIXUP/<filename>/g;
+$data =~ s/FIXUPendfileFIXUP/<\/filename>/g;
+
+$data =~ s/FIXUPsampFIXUP/<literal>/g;
+$data =~ s/FIXUPendsampFIXUP/<\/literal>/g;
+
+
msg ("Removing mailto: from email addresses...");
$data =~ s/mailto://g;
@@ -38,9 +58,19 @@ msg ("Removing INFORMALFIGURE...");
$data =~ s{<informalfigure>.+?</informalfigure>}
{}gs;
-msg ("Convert ampersands to XML escape sequences ");
+msg ("Convert ampersand to XML escape sequence...");
$data =~ s/&(?!\w+;)/&amp;/g;
-
+
+# arjen 2002-05-01
+msg ("Changing (TM) to XML escape sequence...");
+$data =~ s/MySQL \(TM\)/MySQL&trade;/g;
+$data =~ s{<command>TM</command>}
+ {&trade;}g;
+
+# arjen 2002-05-01
+msg ("Changing ' -- ' to XML escape sequence...");
+$data =~ s/ -- /&mdash;/g;
+
msg ("Changing @@ to @...");
$data =~ s/@@/@/g;
@@ -68,6 +98,11 @@ msg ("Adding closing / to XREF and COLSPEC tags...");
$data =~ s{<(xref|colspec) (.+?)>}
{<$1 $2 />}gs;
+# arjen 2002-04-26
+msg ("Removing separate target titles from LINKs and make them XREFs...");
+$data =~ s{<link (linkend=.+?)>.+?</link>}
+ {<xref $1 />}gs;
+
# Probably need to strip these
msg ('Adding "See " to XREFs that used to be @xref...');
$data =~ s{([.'!)])\s*<xref }
@@ -137,7 +172,7 @@ exit;
#
sub msg {
- print STDERR shift, "\n";
+ print STDERR "docbook-fixup:", shift, "\n";
}
sub strip_tag($$) {
diff --git a/Docs/Support/docbook-prefix.pl b/Docs/Support/docbook-prefix.pl
new file mode 100755
index 00000000000..e76d84dbfe0
--- /dev/null
+++ b/Docs/Support/docbook-prefix.pl
@@ -0,0 +1,50 @@
+#!/usr/bin/perl -w
+
+# Preprocess the input of `makeinfo --docbook` version 4.0c
+# Authors: Arjen Lentz and Zak Greant (started by arjen 2002-05-01)
+
+use strict;
+
+my $data = '';
+
+msg ("-- Pre-processing `makeinfo --docbook` input --");
+msg ("** Written to work with makeinfo version 4.0c **\n");
+
+# <> is a magic filehandle - either reading lines from stdin or from file(s) specified on the command line
+msg ("Get the data");
+$data = join "", <>;
+
+msg ("Replacing '\@-' with FIXUPmdashFIXUP");
+$data =~ s/\@-/FIXUPmdashFIXUP/g;
+
+msg ("Replacing '--' with FIXUPdoubledashFIXUP");
+$data =~ s/--/FIXUPdoubledashFIXUP/g;
+
+msg ("Turning \@strong{} into LITERAL blocks");
+$data =~ s/\@strong\{(.*?)\}/FIXUPstrongFIXUP$1FIXUPendstrongFIXUP/gs;
+
+msg ("Turning \@emph{} into LITERAL blocks");
+$data =~ s/\@emph\{(.*?)\}/FIXUPemphFIXUP$1FIXUPendemphFIXUP/gs;
+
+msg ("Turning \@file{} into LITERAL blocks");
+$data =~ s/\@file\{(.*?)\}/FIXUPfileFIXUP$1FIXUPendfileFIXUP/gs;
+
+msg ("Turning \@samp{} into LITERAL blocks");
+$data =~ s/\@samp\{\@\{\}/FIXUPsampFIXUP\@\{FIXUPendsampFIXUP/g;
+$data =~ s/\@samp\{\@\}\}/FIXUPsampFIXUP\@\}FIXUPendsampFIXUP/g;
+$data =~ s/\@samp\{\@\{n\@\}\}/FIXUPsampFIXUP\@\{n\@\}FIXUPendsampFIXUP/g;
+$data =~ s/\@samp\{(.*?)\}/FIXUPsampFIXUP$1FIXUPendsampFIXUP/gs;
+
+
+msg ("Write the data");
+print STDOUT $data;
+exit;
+
+#
+# Definitions for helper sub-routines
+#
+
+sub msg {
+ print STDERR "docbook-prefix: ", shift, "\n";
+}
+
diff --git a/Docs/Support/make-docbook b/Docs/Support/make-docbook
index bdca812d7ab..93dbc56c0f8 100755
--- a/Docs/Support/make-docbook
+++ b/Docs/Support/make-docbook
@@ -6,14 +6,19 @@
#create include.texi with version/port #
echo "@c This file is autogenerated by the Makefile" > include.texi
echo -n "@set mysql_version " >> include.texi
+# grep "AM_INIT_AUTOMAKE(mysql, " ../configure.in | \
+# sed -e 's;AM_INIT_AUTOMAKE(mysql, ;;' -e 's;);;' >> include.texi
+# 2002-04-26 arjen - the below just picks #.# instead of #.#.#-alpha
+# (code by mwagner - tnx)
grep "AM_INIT_AUTOMAKE(mysql, " ../configure.in | \
- sed -e 's;AM_INIT_AUTOMAKE(mysql, ;;' -e 's;);;' >> include.texi
+ perl -p -e 's/AM_INIT_AUTOMAKE\(mysql,\s(\d+\.\d+)\..+/$1/' >> include.texi
echo -n "@set default_port " >> include.texi
grep "MYSQL_TCP_PORT_DEFAULT=" ../configure.in | \
sed -e 's;MYSQL_TCP_PORT_DEFAULT=;;' >> include.texi
# produce DocBook XML
- makeinfo --force --no-ifinfo --docbook -o - manual.texi |\
+ Support/docbook-prefix.pl < manual.texi |\
+ makeinfo --force --no-ifinfo --docbook -o - |\
Support/docbook-fixup.pl > mysql.xml
# See if the XML output is well-formed
diff --git a/Docs/Support/trivial-makeinfo-4.0c.patch b/Docs/Support/trivial-makeinfo-4.0c.patch
new file mode 100644
index 00000000000..b2446c0e8bb
--- /dev/null
+++ b/Docs/Support/trivial-makeinfo-4.0c.patch
@@ -0,0 +1,11 @@
+--- alt-multi.c Sun Apr 14 10:03:19 2002
++++ multi.c Tue May 22 20:52:33 2001
+@@ -287,7 +287,7 @@
+ && *params != '\n' && *params != '@')
+ params++;
+ setup_output_environment (i,
+- (int) ((columnfrac * 100.00) + 0.49));
++ (int) (columnfrac * (fill_column - current_indent) + .5));
+ }
+ }
+
diff --git a/Docs/Support/update-reserved-words.pl b/Docs/Support/update-reserved-words.pl
index e7f8329009e..6164698943f 100755
--- a/Docs/Support/update-reserved-words.pl
+++ b/Docs/Support/update-reserved-words.pl
@@ -4,6 +4,8 @@
# Implemented in Perl by jeremy@mysql.com
# 2001-11-20 Fixups by arjen@mysql.com, 2 keywords and 15 synonyms were missing
# 2001-12-07 Fixup by arjen@mysql.com, add column headings for multitable.
+# 2002-05-01 Fixup by arjen@mysql.com, use 3 columns instead of 4.
+# 2002-05-03 Fixup by arjen@mysql.com, fill last row to full # of columns.
print STDERR "Scanning lex.h for symbols..\n";
open LEX, "<../sql/lex.h";
@@ -27,11 +29,6 @@ while(($line = <YACC>) =~ /[\s|]+([A-Z_]+)/) {
close YACC;
-$list = sprintf("\@c Reserved word list updated %s by %s.\n".
- "\@c To regenerate, use Support/update-reserved-words.pl.\n\n",
- &pretty_date, $ENV{USER});
-
-
print STDERR "Copying reserved words to an array...\n";
foreach(keys %words) { push @words, $words{$_}; };
@@ -40,12 +37,16 @@ print STDERR "Sorting array...\n";
printf STDERR "There are %i reserved words.\n", scalar @words;
-@pre = ("\@item", "\@tab", " \@tab", "\@tab");
-@post = ("", "\n", "", "\n");
+@pre = ("\@item", " \@tab", " \@tab");
+$list = "";
for($i=0; $word = shift(@words); $i++) {
- $list .= sprintf "%s %-30s %s", $pre[$i%4], "\@code\{$word\}", $post[$i%4];
-}; $list .= "\n";
+ $list .= sprintf "%s %s\n", $pre[$i%3], "\@code\{$word\}";
+}
+# Fill last row to full # of columns.
+for( ; $i%3; $i++) {
+ $list .= sprintf "%s\n", $pre[$i%3];
+}
open OLD, "<manual.texi";
open NEW, ">manual-tmp.texi";
@@ -53,9 +54,14 @@ open NEW, ">manual-tmp.texi";
print STDERR "Copying beginning of manual.texi...\n";
while(($line = <OLD>) !~ /START_OF_RESERVED_WORDS/) { print NEW $line; };
print NEW "\@c START_OF_RESERVED_WORDS\n\n";
+printf NEW "\@c Reserved word list updated %s by %s.\n".
+ "\@c To regenerate, use Support/update-reserved-words.pl.\n\n",
+ &pretty_date, $ENV{USER};
+
print STDERR "Inserting list of reserved words...\n";
-print NEW "\@multitable \@columnfractions .25 .25 .25 .25\n";
-print NEW "\@item \@strong{Word} \@tab \@strong{Word} \@tab \@strong{Word} \@tab \@strong{Word}\n";
+# Ensure the fractions add up to 100% otherwise it looks funny in print:
+print NEW "\@multitable \@columnfractions .33 .33 .34\n";
+print NEW "\@item \@strong{Word}\n \@tab \@strong{Word}\n \@tab \@strong{Word}\n";
print NEW $list;
print NEW "\@end multitable\n";
print STDERR "Skipping over old list...\n";
diff --git a/Docs/glibc-2.2.5.patch b/Docs/glibc-2.2.5.patch
index c6bc2bf39a8..ef5d40b6899 100644
--- a/Docs/glibc-2.2.5.patch
+++ b/Docs/glibc-2.2.5.patch
@@ -1,73 +1,137 @@
-diff -Nur --exclude=SCCS --exclude=BitKeeper --exclude=ChangeSet ../glibc-2.2.5/linuxthreads/internals.h ./linuxthreads/internals.h
---- ../glibc-2.2.5/linuxthreads/internals.h Thu Nov 29 00:44:16 2001
-+++ ./linuxthreads/internals.h Fri Feb 22 21:18:09 2002
-@@ -343,7 +343,7 @@
- THREAD_SELF implementation is used, this must be a power of two and
- a multiple of PAGE_SIZE. */
- #ifndef STACK_SIZE
--#define STACK_SIZE (2 * 1024 * 1024)
-+#define STACK_SIZE (128 * 1024)
- #endif
-
- /* The initial size of the thread stack. Must be a multiple of PAGE_SIZE. */
-diff -Nur --exclude=SCCS --exclude=BitKeeper --exclude=ChangeSet ../glibc-2.2.5/linuxthreads/sysdeps/unix/sysv/linux/bits/local_lim.h ./linuxthreads/sysdeps/unix/sysv/linux/bits/local_lim.h
---- ../glibc-2.2.5/linuxthreads/sysdeps/unix/sysv/linux/bits/local_lim.h Thu Jun 8 13:49:49 2000
-+++ ./linuxthreads/sysdeps/unix/sysv/linux/bits/local_lim.h Fri Feb 22 21:18:09 2002
-@@ -64,7 +64,7 @@
- /* The number of threads per process. */
- #define _POSIX_THREAD_THREADS_MAX 64
- /* This is the value this implementation supports. */
--#define PTHREAD_THREADS_MAX 1024
-+#define PTHREAD_THREADS_MAX 4096
-
- /* Maximum amount by which a process can descrease its asynchronous I/O
- priority level. */
-diff -Nur --exclude=SCCS --exclude=BitKeeper --exclude=ChangeSet ../glibc-2.2.5/nss/nsswitch.c ./nss/nsswitch.c
---- ../glibc-2.2.5/nss/nsswitch.c Tue Jul 17 02:21:36 2001
-+++ ./nss/nsswitch.c Fri Feb 22 21:18:09 2002
-@@ -515,8 +515,16 @@
- + (line - name + 1));
- if (new_service == NULL)
- return result;
--
-+#ifdef DO_STATIC_NSS
-+ if (strncmp(name,"files",5) == 0 ||
-+ strncmp(name,"dns",3) == 0)
-+#endif
- *((char *) __mempcpy (new_service->name, name, line - name)) = '\0';
-+#ifdef DO_STATIC_NSS
-+ else
-+ *((char *) __mempcpy (new_service->name, "files", 5)) = '\0';
-+#endif
-+
-
- /* Set default actions. */
- new_service->actions[2 + NSS_STATUS_TRYAGAIN] = NSS_ACTION_CONTINUE;
-diff -Nur --exclude=SCCS --exclude=BitKeeper --exclude=ChangeSet ../glibc-2.2.5/time/Makefile ./time/Makefile
---- ../glibc-2.2.5/time/Makefile Fri Feb 22 21:27:19 2002
-+++ ./time/Makefile Fri Feb 22 21:26:47 2002
-@@ -37,8 +37,8 @@
-
- include ../Rules
-
--tz-cflags = -DTZDIR='"$(zonedir)"' \
-- -DTZDEFAULT='"$(localtime-file)"' \
-+tz-cflags = -DTZDIR='"/usr/share/zoneinfo/"' \
-+ -DTZDEFAULT='"/etc/localtime"' \
- -DTZDEFRULES='"$(posixrules-file)"'
-
- CFLAGS-tzfile.c = $(tz-cflags)
-diff -Nur --exclude=SCCS --exclude=BitKeeper --exclude=ChangeSet ../glibc-2.2.5/timezone/Makefile ./timezone/Makefile
---- ../glibc-2.2.5/timezone/Makefile Wed Aug 29 16:45:25 2001
-+++ ./timezone/Makefile Fri Feb 22 21:18:09 2002
-@@ -159,8 +159,8 @@
-
- $(objpfx)zic: $(objpfx)scheck.o $(objpfx)ialloc.o
-
--tz-cflags = -DTZDIR='"$(zonedir)"' \
-- -DTZDEFAULT='"$(localtime-file)"' \
-+tz-cflags = -DTZDIR='"/usr/share/zoneinfo/"' \
-+ -DTZDEFAULT='"/etc/localtime"' \
- -DTZDEFRULES='"$(posixrules-file)"' \
- -DTM_GMTOFF=tm_gmtoff -DTM_ZONE=tm_zone
-
+diff -r -c --exclude='*.info*' glibc-2.2.5.org/linuxthreads/internals.h glibc-2.2.5/linuxthreads/internals.h
+*** glibc-2.2.5.org/linuxthreads/internals.h Thu Nov 29 08:44:16 2001
+--- glibc-2.2.5/linuxthreads/internals.h Tue May 21 10:51:53 2002
+***************
+*** 343,349 ****
+ THREAD_SELF implementation is used, this must be a power of two and
+ a multiple of PAGE_SIZE. */
+ #ifndef STACK_SIZE
+! #define STACK_SIZE (2 * 1024 * 1024)
+ #endif
+
+ /* The initial size of the thread stack. Must be a multiple of PAGE_SIZE. */
+--- 343,349 ----
+ THREAD_SELF implementation is used, this must be a power of two and
+ a multiple of PAGE_SIZE. */
+ #ifndef STACK_SIZE
+! #define STACK_SIZE (128 * 1024)
+ #endif
+
+ /* The initial size of the thread stack. Must be a multiple of PAGE_SIZE. */
+diff -r -c --exclude='*.info*' glibc-2.2.5.org/linuxthreads/sysdeps/unix/sysv/linux/bits/local_lim.h glibc-2.2.5/linuxthreads/sysdeps/unix/sysv/linux/bits/local_lim.h
+*** glibc-2.2.5.org/linuxthreads/sysdeps/unix/sysv/linux/bits/local_lim.h Thu Jun 8 21:49:49 2000
+--- glibc-2.2.5/linuxthreads/sysdeps/unix/sysv/linux/bits/local_lim.h Tue May 21 10:52:58 2002
+***************
+*** 64,70 ****
+ /* The number of threads per process. */
+ #define _POSIX_THREAD_THREADS_MAX 64
+ /* This is the value this implementation supports. */
+! #define PTHREAD_THREADS_MAX 1024
+
+ /* Maximum amount by which a process can descrease its asynchronous I/O
+ priority level. */
+--- 64,70 ----
+ /* The number of threads per process. */
+ #define _POSIX_THREAD_THREADS_MAX 64
+ /* This is the value this implementation supports. */
+! #define PTHREAD_THREADS_MAX 4096
+
+ /* Maximum amount by which a process can descrease its asynchronous I/O
+ priority level. */
+diff -r -c --exclude='*.info*' glibc-2.2.5.org/nss/nsswitch.c glibc-2.2.5/nss/nsswitch.c
+*** glibc-2.2.5.org/nss/nsswitch.c Tue Jul 17 10:21:36 2001
+--- glibc-2.2.5/nss/nsswitch.c Tue May 21 10:59:55 2002
+***************
+*** 496,501 ****
+--- 496,502 ----
+ {
+ service_user *new_service;
+ const char *name;
++ int name_alloc_len;
+
+ while (isspace (line[0]))
+ ++line;
+***************
+*** 510,522 ****
+ if (name == line)
+ return result;
+
+
+ new_service = (service_user *) malloc (sizeof (service_user)
+! + (line - name + 1));
+ if (new_service == NULL)
+ return result;
+
+! *((char *) __mempcpy (new_service->name, name, line - name)) = '\0';
+
+ /* Set default actions. */
+ new_service->actions[2 + NSS_STATUS_TRYAGAIN] = NSS_ACTION_CONTINUE;
+--- 511,534 ----
+ if (name == line)
+ return result;
+
++ name_alloc_len = line - name + 1;
++
++ #ifdef DO_STATIC_NSS
++ if (!((name_alloc_len == 6 && strncmp(name,"files",5) == 0) ||
++ (name_alloc_len == 4 && strncmp(name,"dns",3) == 0)))
++ {
++ name = (char*) "files";
++ name_alloc_len = 6;
++ }
++ #endif
+
+ new_service = (service_user *) malloc (sizeof (service_user)
+! + name_alloc_len);
+ if (new_service == NULL)
+ return result;
+
+! *((char *) __mempcpy (new_service->name, name, name_alloc_len-1)) = '\0';
+!
+
+ /* Set default actions. */
+ new_service->actions[2 + NSS_STATUS_TRYAGAIN] = NSS_ACTION_CONTINUE;
+diff -r -c --exclude='*.info*' glibc-2.2.5.org/time/Makefile glibc-2.2.5/time/Makefile
+*** glibc-2.2.5.org/time/Makefile Fri Aug 10 01:59:41 2001
+--- glibc-2.2.5/time/Makefile Tue May 21 11:01:11 2002
+***************
+*** 37,44 ****
+
+ include ../Rules
+
+! tz-cflags = -DTZDIR='"$(zonedir)"' \
+! -DTZDEFAULT='"$(localtime-file)"' \
+ -DTZDEFRULES='"$(posixrules-file)"'
+
+ CFLAGS-tzfile.c = $(tz-cflags)
+--- 37,44 ----
+
+ include ../Rules
+
+! tz-cflags = -DTZDIR='"/usr/share/zoneinfo/"' \
+! -DTZDEFAULT='"/etc/localtime"' \
+ -DTZDEFRULES='"$(posixrules-file)"'
+
+ CFLAGS-tzfile.c = $(tz-cflags)
+diff -r -c --exclude='*.info*' glibc-2.2.5.org/timezone/Makefile glibc-2.2.5/timezone/Makefile
+*** glibc-2.2.5.org/timezone/Makefile Thu Aug 30 00:45:25 2001
+--- glibc-2.2.5/timezone/Makefile Tue May 21 11:01:57 2002
+***************
+*** 159,166 ****
+
+ $(objpfx)zic: $(objpfx)scheck.o $(objpfx)ialloc.o
+
+! tz-cflags = -DTZDIR='"$(zonedir)"' \
+! -DTZDEFAULT='"$(localtime-file)"' \
+ -DTZDEFRULES='"$(posixrules-file)"' \
+ -DTM_GMTOFF=tm_gmtoff -DTM_ZONE=tm_zone
+
+--- 159,166 ----
+
+ $(objpfx)zic: $(objpfx)scheck.o $(objpfx)ialloc.o
+
+! tz-cflags = -DTZDIR='"/usr/share/zoneinfo/"' \
+! -DTZDEFAULT='"/etc/localtime"' \
+ -DTZDEFRULES='"$(posixrules-file)"' \
+ -DTM_GMTOFF=tm_gmtoff -DTM_ZONE=tm_zone
+
diff --git a/Docs/internals.texi b/Docs/internals.texi
index 8f358982ded..871e51c50bd 100644
--- a/Docs/internals.texi
+++ b/Docs/internals.texi
@@ -57,6 +57,7 @@ This is a manual about @strong{MySQL} internals.
* mysys functions:: Functions In The @code{mysys} Library
* DBUG:: DBUG Tags To Use
* protocol:: MySQL Client/Server Protocol
+* Fulltext Search:: Fulltext Search in MySQL
@end menu
@@ -535,7 +536,7 @@ Print query.
@end table
-@node protocol, , DBUG, Top
+@node protocol, Fulltext Search, DBUG, Top
@chapter MySQL Client/Server Protocol
@menu
@@ -785,6 +786,48 @@ Date 03 0A 00 00 |01 0A |03 00 00 00
@c @printindex fn
+@node Fulltext Search, , protocol, Top
+@chapter Fulltext Search in MySQL
+
+Hopefully, sometime there will be complete description of
+fulltext search algorithms.
+Now it's just unsorted notes.
+
+@menu
+* Weighting in boolean mode::
+@end menu
+
+@node Weighting in boolean mode, , , Fulltext Search
+@section Weighting in boolean mode
+
+The basic idea is as follows: in expression
+@code{A or B or (C and D and E)}, either @code{A} or @code{B} alone
+is enough to match the whole expression. While @code{C},
+@code{D}, and @code{E} should @strong{all} match. So it's
+reasonable to assign weight 1 to @code{A}, @code{B}, and
+@code{(C and D and E)}. And @code{C}, @code{D}, and @code{E}
+should get a weight of 1/3.
+
+Things become more complicated when considering boolean
+operators, as used in MySQL FTB. Obvioulsy, @code{+A +B}
+should be treated as @code{A and B}, and @code{A B} -
+as @code{A or B}. The problem is, that @code{+A B} can @strong{not}
+be rewritten in and/or terms (that's the reason why this - extended -
+set of operators was chosen). Still, aproximations can be used.
+@code{+A B C} can be approximated as @code{A or (A and (B or C))}
+or as @code{A or (A and B) or (A and C) or (A and B and C)}.
+Applying the above logic (and omitting mathematical
+transformations and normalization) one gets that for
+@code{+A_1 +A_2 ... +A_N B_1 B_2 ... B_M} the weights
+should be: @code{A_i = 1/N}, @code{B_j=1} if @code{N==0}, and,
+otherwise, in the first rewritting approach @code{B_j = 1/3},
+and in the second one - @code{B_j = (1+(M-1)*2^M)/(M*(2^(M+1)-1))}.
+
+The second expression gives somewhat steeper increase in total
+weight as number of matched B's increases, because it assigns
+higher weights to individual B's. Also the first expression in
+much simplier. So it is the first one, that is implemented in MySQL.
+
@summarycontents
@contents
diff --git a/Docs/manual.de.texi b/Docs/manual.de.texi
index 2d89b89b50b..94c822b94da 100644
--- a/Docs/manual.de.texi
+++ b/Docs/manual.de.texi
@@ -11573,10 +11573,10 @@ Weile nichts von ihnen gehört.
@node Novell Netware, , BeOS, Operating System Specific Notes
@c German node Novell Netware
-@subsection Anmerkungen zu Novell Netware
+@subsection Anmerkungen zu Novell NetWare
-Wir sind sehr daran interessiert, MySQL auf Netware ans Laufen zu bringen,
-aber leider kennen wir niemanden, der sich mit Netware auskennt oder Zeit hat,
+Wir sind sehr daran interessiert, MySQL auf NetWare ans Laufen zu bringen,
+aber leider kennen wir niemanden, der sich mit NetWare auskennt oder Zeit hat,
eine Portierung durchzuführen.
Wir sind daran interessiert, jemanden für eine Portierung zu finden, und
@@ -16998,6 +16998,7 @@ neu starten, um @code{mysqldump} benutzen zu können.
* Privilege changes::
* Default privileges::
* Adding users::
+* User resources::
* Passwords::
* Password security::
@end menu
@@ -17653,7 +17654,7 @@ müssen Sie sie aus Ihrer MySQL-Distribution zurück kopieren, bevor Sie
@code{mysql_install_db} laufen lassen.
-@node Adding users, Passwords, Default privileges, User Account Management
+@node Adding users, User resources, Default privileges, User Account Management
@c German node Benutzer hinzufügen
@subsection Neue MySQL-Benutzer hinzufügen
@@ -17862,8 +17863,71 @@ einzufügen, zu ändern und zu aktualisieren. Sie finden diese Werkzeuge unter
@uref{http://www.mysql.com/downloads/contrib/,Contrib-Verzeichnis der
MySQL-Website}.
+@node User resources, Passwords, Adding users, User Account Management
+@c New section added by arjen 2002-05-17 to keep en/de in sync
+@subsection Limiting user resources
-@node Passwords, Password security, Adding users, User Account Management
+@c FIX Original section text - to be translated.
+@c FIX Also check manual.texi for other mentions of MAX_..._PER_HOUR
+
+Starting from MySQL 4.0.2 one can limit certain resources per user.
+
+So far, the only available method of limiting user usage of MySQL
+server resources has been setting the @code{max_user_connections}
+startup variable to a non-zero value. But this method is strictly
+global and does not allow for management of individual users, which
+could be of paricular interest to Internet Service Providers.
+
+Therefore, management of three resources is introduced on the
+individual user level:
+
+@itemize @bullet
+@item Number of all queries per hour:
+All commands that could be run by a user.
+@item Number of all updates per hour:
+Any command that changes any table or database.
+@item Number of connections made per hour:
+New connections opened per hour.
+@end itemize
+
+A user in the aforementioned context is a single entry in the
+@code{user} table, which is uniquely identified by its @code{user}
+and @code{host} columns.
+
+All users are by default not limited in using the above resources,
+unless the limits are granted to them. These limits can be granted
+@strong{only} via global @code{GRANT (*.*)}, using this syntax:
+
+@example
+GRANT ... WITH MAX_QUERIES_PER_HOUR = N1
+ MAX_UPDATES_PER_HOUR = N2
+ MAX_CONNECTIONS_PER_HOUR = N3;
+@end example
+
+One can specify any combination of the above resources.
+N1, N2 and N3 are integers and stands for count / hour.
+
+If user reaches any of the above limits withing one hour, his
+connection will be terminated or refused and the appropriate error
+message shall be issued.
+
+Current usage values for a particular user can be flushed (set to zero)
+by issuing a @code{GRANT} statement with any of the above clauses,
+including a @code{GRANT} statement with the current values.
+
+Also, current values for all users will be flushed if privileges are
+reloaded (in the server or using @code{mysqladmin reload})
+or if the @code{FLUSH USER_RESOURCES} command is issued.
+
+The feature is enabled as soon as a single user is granted with any
+of the limiting @code{GRANT} clauses.
+
+As a prerequisite for enabling this feature, the @code{user} table in
+the @code{mysql} database must contain the additional columns, as
+defined in the table creation scripts @code{mysql_install_db} and
+@code{mysql_install_db.sh} in @file{scripts} subdirectory.
+
+@node Passwords, Password security, User resources, User Account Management
@c German node Passwörter
@subsection Passwörter einrichten
@@ -39897,12 +39961,12 @@ gespeichert werden kann.
@menu
-* InnoDB Disk i/o::
+* InnoDB Disk I/O::
* InnoDB File space::
* InnoDB File Defragmenting::
@end menu
-@node InnoDB Disk i/o, InnoDB File space, File space management, File space management
+@node InnoDB Disk I/O, InnoDB File space, File space management, File space management
@c German node Festplatten-Ein- und -Ausgaben bei InnoDB
@subsubsection Festplatten-Ein- und -Ausgaben
@@ -39969,7 +40033,7 @@ Eingelesenwerdens in den Puffer-Pool zu sein scheint. Dann schickt InnoDB
die verbleibenden Lesevorgänge an das Ein-/Ausgabesystem.
-@node InnoDB File space, InnoDB File Defragmenting, InnoDB Disk i/o, File space management
+@node InnoDB File space, InnoDB File Defragmenting, InnoDB Disk I/O, File space management
@c German node Speicherplatz in InnoDB
@subsubsection Speicherplatzverwaltung
@@ -44743,6 +44807,7 @@ wollen. @xref{Threaded clients}.
* my_init::
* mysql_thread_init::
* mysql_thread_end::
+* mysql_thread_safe::
@end menu
@node my_init, mysql_thread_init, C Thread functions, C Thread functions
@@ -44783,7 +44848,7 @@ Diese Funktion wird automatisch von @code{my_init()} und
Keine.
-@node mysql_thread_end, , mysql_thread_init, C Thread functions
+@node mysql_thread_end, mysql_thread_safe, mysql_thread_init, C Thread functions
@c German node mysql_thread_end()
@subsubsection @code{mysql_thread_end()}
@@ -44803,6 +44868,22 @@ Speicherlecks zu vermeiden.
Keine.
+@node mysql_thread_safe, , mysql_thread_end, C Thread functions
+@c Arjen note: new @node 2002-04-19, please translate text!
+@subsubsection @code{mysql_thread_safe()}
+
+@findex @code{mysql_thread_safe()}
+
+@code{unsigned int mysql_thread_safe(void)}
+
+@subsubheading Description
+
+This function indicates whether the client is compiled as thread safe.
+
+@subsubheading Return Values
+
+1 is the client is thread safe, 0 otherwise.
+
@node C Embedded Server func, C API problems, C Thread functions, C
@c German node C-Embedded-Server-Funktionen
@subsection C-Embedded-Server-Funktionsbeschreibungen
diff --git a/Docs/manual.texi b/Docs/manual.texi
index a258582ea3d..c22f8f2152b 100644
--- a/Docs/manual.texi
+++ b/Docs/manual.texi
@@ -148,14 +148,14 @@ for that version.
The @code{MySQL (TM)} software delivers a very fast, multi-threaded,
multi-user, and robust @code{SQL} (@code{Structured Query Language})
database server.
-@code{MySQL Server} is intended for mission-critical, heavy load
+@code{MySQL Server} is intended for mission-critical, heavy-load
production systems as well as for embedding into mass-deployed software.
@code{MySQL} is a trademark of @code{MySQL AB}.
-The @code{MySQL} software has @code{Dual Licensing}, you can use
-@code{MySQL Server} free of charge under the
-@code{GNU GENERAL PUBLIC LICENSE} (@uref{http://www.gnu.org/licenses/}).
-You can also purchase commercial @code{MySQL Server} licenses from
+The @code{MySQL} software has @code{Dual Licensing}, which means you can use
+the @code{MySQL} software free of charge under the
+@code{GNU General Public License} (@uref{http://www.gnu.org/licenses/}).
+You can also purchase commercial @code{MySQL} licenses from
@code{MySQL AB} if you do not wish to be bound by the terms of the
@code{GPL}.
@xref{Licensing and Support}.
@@ -163,7 +163,7 @@ You can also purchase commercial @code{MySQL Server} licenses from
The @code{MySQL} web site (@uref{http://www.mysql.com/}) provides the
latest information about the @code{MySQL} software.
-The following list describes some useful sections of the manual:
+The following list describes some sections of particular interest in this manual:
@itemize @bullet
@item
@@ -210,7 +210,7 @@ For future plans, see @ref{TODO}.
For a list of all the contributors to this project, see @ref{Credits}.
@end itemize
-@strong{IMPORTANT:}
+@strong{Important}:
Reports of errors (often called bugs), as well as questions and comments,
should be sent to the mailing list at @email{mysql@@lists.mysql.com}.
@@ -231,14 +231,14 @@ security bug in @code{MySQL Server}, you should send an e-mail to
@menu
* Manual-info:: About This Manual
-* What-is:: What Is MySQL
-* What is MySQL AB:: What Is MySQL AB
+* What-is:: What Is MySQL?
+* What is MySQL AB:: What Is MySQL AB?
* Licensing and Support:: MySQL Support and Licensing
* MySQL 4.0 In A Nutshell:: MySQL 4.0 In A Nutshell
* MySQL Information Sources:: MySQL Information Sources
* Compatibility:: How Standards-compatible Is MySQL?
* TODO:: MySQL and the future (The TODO)
-* Comparisons:: How MySQL Compares to Other Open Source Databases
+* Comparisons:: How MySQL Compares to Other @code{Open Source} Databases
@end menu
@@ -253,18 +253,18 @@ Version @value{mysql_version}. Being a reference manual, it does not
provide general instruction on @code{SQL} or relational database
concepts.
-As the @code{MySQL Database Software} is under continuous development,
+As the @code{MySQL Database Software} is under constant development,
the manual is also updated frequently.
The most recent version of this manual is available at
@uref{http://www.mysql.com/documentation/} in many different formats,
-currently there are Texinfo, plain text, Info, HTML, PostScript, PDF
+including Texinfo, plain text, Info, HTML, PostScript, PDF,
and Windows HLP versions.
The primary document is the Texinfo file.
The HTML version is produced automatically using a modified version of
@code{texi2html}.
The plain text and Info versions are produced with @code{makeinfo}.
-The Postscript version is produced using @code{texi2dvi} and @code{dvips}.
+The PostScript version is produced using @code{texi2dvi} and @code{dvips}.
The PDF version is produced with @code{pdftex}.
If you have a hard time finding information in the manual, you can try
@@ -290,6 +290,8 @@ The copyright (2002) to this manual is owned by the Swedish company
@node Manual conventions, , Manual-info, Manual-info
@subsection Conventions Used in This Manual
+@c We use British English. But let's not publicise that here yet ;-)
+
This manual uses certain typographical conventions:
@cindex manual, typographical conventions
@@ -299,7 +301,7 @@ This manual uses certain typographical conventions:
@table @asis
@item @code{constant}
Constant-width font is used for command names and options; SQL statements;
-database, table and column names; C and Perl code; and environment variables.
+database, table, and column names; C and Perl code; and environment variables.
Example: ``To see how @code{mysqladmin} works, invoke it with the
@code{--help} option.''
@@ -310,7 +312,7 @@ pathnames. Example: ``The distribution is installed under the
@item @samp{c}
Constant-width font with surrounding quotes is also used to indicate
-character sequences. Example: ``To specify a wild card, use the @samp{%}
+character sequences. Example: ``To specify a wildcard, use the @samp{%}
character.''
@item @emph{italic}
@@ -368,28 +370,12 @@ your own database, table, and column names, perhaps like this:
mysql> SELECT author_name FROM biblio_db.author_list;
@end example
-SQL statements may be written in uppercase or lowercase. When this manual
-shows a SQL statement, uppercase is used for particular keywords if those
-keywords are under discussion (to emphasize them) and lowercase is used for
-the rest of the statement. For example, you might see the following in a
-discussion of the @code{SELECT} statement:
-
-@example
-mysql> SELECT count(*) FROM tbl_name;
-@end example
-
-On the other hand, in a discussion of the @code{COUNT()} function, the
-same statement would be written like this:
-
-@example
-mysql> select COUNT(*) from tbl_name;
-@end example
-
-If no particular emphasis is intended, all keywords are written uniformly
-in uppercase.
+SQL keywords are not case-sensitive and may be written in uppercase or
+lowercase. This manual uses uppercase.
In syntax descriptions, square brackets (@samp{[} and @samp{]}) are used
-to indicate optional words or clauses:
+to indicate optional words or clauses. For example, in the following
+statement, @code{IF EXISTS} is optional:
@example
DROP TABLE [IF EXISTS] tbl_name
@@ -413,7 +399,7 @@ alternatives are listed within braces (@samp{@{} and @samp{@}}):
@node What-is, What is MySQL AB, Manual-info, Introduction
-@section What Is MySQL
+@section What Is MySQL?
@cindex MySQL, defined
@cindex MySQL, introduction
@@ -448,26 +434,26 @@ A relational database stores data in separate tables rather than putting
all the data in one big storeroom. This adds speed and flexibility.
The tables are linked by defined relations making it possible to combine
data from several tables on request. The @code{SQL} part of
-``@code{MySQL}'' stands for ``@code{Structured Query Language}''
-- the most common standardised language used to access databases.
+``@code{MySQL}'' stands for ``@code{Structured Query Language}''@-the
+most common standardised language used to access databases.
@cindex relational databases, defined
@cindex SQL, defined
-@item MySQL Software is Open Source.
+@item MySQL software is @code{Open Source}.
@code{Open Source} means that it is possible for anyone to use and modify.
Anybody can download the @code{MySQL} software from the Internet and use it
without paying anything. Anybody so inclined can study the source code
and change it to fit their needs. The @code{MySQL} software uses the
-@code{GPL} (@code{GNU General Public License})
+@code{GPL} (@code{GNU General Public License}),
@uref{http://www.gnu.org/licenses/}, to define what you
may and may not do with the software in different situations.
If you feel uncomfortable with the @code{GPL} or need to embed
@code{MySQL} code into a commercial application you can buy a
commercially licensed version from us.
-@xref{MySQL server licenses}.
+@xref{MySQL licenses}.
-@cindex Open Source, defined
+@cindex @code{Open Source}, defined
@cindex General Public License
@item Why use the MySQL Database Server?
@@ -483,7 +469,7 @@ of @code{MySQL Server} to some other database managers on our benchmark page.
much faster than existing solutions and has been successfully used in
highly demanding production environments for several years. Though
under constant development, @code{MySQL Server} today offers a rich and
-useful set of functions. The connectivity, speed, and security make
+useful set of functions. Its connectivity, speed, and security make
@code{MySQL Server} highly suited for accessing databases on the Internet.
@item The technical features of MySQL Server
@@ -495,10 +481,10 @@ several different client programs and libraries, administrative tools,
and a wide range of programming interfaces (@code{API}s).
We also provide @code{MySQL Server} as a multi-threaded library which you
-can link into your application to get a smaller, faster, easier to manage
+can link into your application to get a smaller, faster, easier-to-manage
product.
-@item There is a lot of contributed MySQL software available.
+@item There is a large amount of contributed MySQL software available.
It is very likely that you will find that your favorite application or
language already supports the @code{MySQL Database Server}.
@@ -566,10 +552,10 @@ a commercial memory leakage detector.
@item
Works on many different platforms. @xref{Which OS}.
@item
-Uses GNU Automake (1.4), Autoconf (Ver 2.52 or newer), and Libtool for
+Uses GNU Automake (1.4), Autoconf (Version 2.52 or newer), and Libtool for
portability.
@item
-APIs for C, C++, Eiffel, Java, Perl, PHP, Python and Tcl. @xref{Clients}.
+APIs for C, C++, Eiffel, Java, Perl, PHP, Python, and Tcl. @xref{Clients}.
@item
Fully multi-threaded using kernel threads. This means it can easily
use multiple CPUs if available.
@@ -618,9 +604,12 @@ mysql> SELECT CONCAT(first_name, " ", last_name)
@end example
@item
-Full support for SQL @code{GROUP BY} and @code{ORDER BY} clauses. Support
-for group functions (@code{COUNT()}, @code{COUNT(DISTINCT ...)},
-@code{AVG()}, @code{STD()}, @code{SUM()}, @code{MAX()} and @code{MIN()}).
+Full support for SQL @code{GROUP BY} and
+@code{ORDER BY} clauses. Support
+for group functions (@code{COUNT()},
+@code{COUNT(DISTINCT ...)},
+@code{AVG()}, @code{STD()},
+@code{SUM()}, @code{MAX()}, and @code{MIN()}).
@item
Support for @code{LEFT OUTER JOIN} and @code{RIGHT OUTER JOIN} with ANSI
SQL and ODBC syntax.
@@ -657,8 +646,8 @@ password traffic is encrypted when you connect to a server.
@itemize @bullet
@item
Handles large databases. We are using @code{MySQL Server} with some
-databases that contain 50,000,000 records and we know of users that
-uses @code{MySQL Server} with 60,000 tables and about 5,000,000,000 rows.
+databases that contain 50 million records and we know of users that
+use @code{MySQL Server} with 60,000 tables and about 5,000,000,000 rows.
@item
Up to 32 indexes per table are allowed. Each index may consist of 1 to 16
columns or parts of columns. The maximum index width is 500 bytes
@@ -689,13 +678,13 @@ the Scandinavian characters 'å', 'ä' and 'ö' are allowed in table
and column names.
@item
All data is saved in the chosen character set. All comparisons for normal
-string columns are case insensitive.
+string columns are case-insensitive.
@item
Sorting is done according to the chosen character set (the Swedish
way by default). It is possible to change this when the @code{MySQL}
server is started. To see an example of very advanced sorting, look
at the Czech sorting code. @code{MySQL Server} supports many different
-character sets that can be specified at compile and run time.
+character sets that can be specified at compile and runtime.
@end itemize
@item Clients and Tools
@@ -725,8 +714,8 @@ questions that concern many potential users. The information in this
section is based on data gathered from the mailing list, which is
very active in identifying problems as well as reporting types of use.
-Original code stems back from the early 80s, providing a stable code
-base, and the ISAM table format remains backwards compatible.
+Original code stems back from the early '80s, providing a stable code
+base, and the ISAM table format remains backward-compatible.
At TcX, the predecessor of @code{MySQL AB}, @code{MySQL} code has worked
in projects since mid-1996, without any problems.
When the @code{MySQL Database Software} was released to a wider public,
@@ -747,7 +736,7 @@ exception of those listed in the bugs section, which are things that
are design-related. @xref{Bugs}.
The @code{MySQL Server} design is multi-layered with independent modules.
-Some of the newer modules are listed below with an indication of how
+Some of the newer modules are listed here with an indication of how
well-tested each of them is:
@cindex modules, list of
@@ -761,7 +750,7 @@ in @code{MySQL} 4.0.
@item @code{InnoDB} tables -- Stable (in 3.23 from 3.23.49)
The @code{InnoDB} transactional table handler has now been declared
stable in the @code{MySQL} 3.23 tree, starting from version 3.23.49.
-@code{InnoDB} is being used in large, heavy load production systems.
+@code{InnoDB} is being used in large, heavy-load production systems.
@item @code{BDB} tables -- Gamma
The @code{Berkeley DB} code is very stable, but we are still improving
@@ -775,7 +764,7 @@ Important enhancements are being implemented for @code{MySQL} 4.0.
@item @code{MyODBC 2.50} (uses ODBC SDK 2.5) -- Gamma
Increasingly in wide use. Some issues brought up appear to be
-application related and independent of the ODBC driver or underlying
+application-related and independent of the ODBC driver or underlying
database server.
@item Automatic recovery of @code{MyISAM} tables -- Gamma
@@ -792,7 +781,7 @@ This is very system-dependent. On some systems there are big problems
using standard OS locking (@code{fcntl()}). In these cases, you should
run @code{mysqld} with the @code{--skip-locking} flag.
Problems are known to occur on some Linux systems, and on SunOS when
-using NFS-mounted file systems.
+using NFS-mounted filesystems.
@end table
@@ -807,29 +796,29 @@ bugs, there is almost always a new release.
@cindex tables, maximum size
@cindex size of tables
-@cindex operating systems, file size limits
-@cindex limits, file size
+@cindex operating systems, file-size limits
+@cindex limits, file-size
@cindex files, size limits
@code{MySQL} Version 3.22 has a 4G limit on table size. With the new
@code{MyISAM} table type in @code{MySQL} Version 3.23, the maximum table
size is pushed up to 8 million terabytes (2 ^ 63 bytes).
-Note, however, that operating systems have their own file size
+Note, however, that operating systems have their own file-size
limits. Here are some examples:
-@multitable @columnfractions .25 .45
-@item @strong{Operating System} @tab @strong{File Size Limit}
+@multitable @columnfractions .30 .50
+@item @strong{Operating System} @tab @strong{File-Size Limit}
@item Linux-Intel 32 bit @tab 2G, 4G or more, depends on Linux version
@item Linux-Alpha @tab 8T (?)
@item Solaris 2.5.1 @tab 2G (possible 4G with patch)
-@item Solaris 2.6 @tab 4G
+@item Solaris 2.6 @tab 4G (can be changed with flag)
@item Solaris 2.7 Intel @tab 4G
@item Solaris 2.7 UltraSPARC @tab 512G
@end multitable
On Linux 2.2 you can get bigger tables than 2G by using the LFS patch for
-the ext2 file system. On Linux 2.4 there exists also patches for ReiserFS
+the ext2 filesystem. On Linux 2.4 patches also exist for ReiserFS
to get support for big files.
This means that the table size for @code{MySQL} databases is normally
@@ -856,7 +845,7 @@ files by using the @code{RAID} option. @xref{CREATE TABLE}.
Another solution can be the included @code{MERGE} library, which allows
you to handle a collection of identical tables as one.
-@xref{MERGE, MERGE tables}.
+@xref{MERGE, , @code{MERGE} tables}.
@node Year 2000 compliance, , Table size, What-is
@@ -877,8 +866,8 @@ until @code{2069}; all 2-digit years are regarded to be in the range
@code{year} column, @code{MySQL Server} treats it as @code{2001}.
@item
-All @code{MySQL} date functions are stored in one file @file{sql/time.cc}
-and coded very carefully to be year 2000-safe.
+All @code{MySQL} date functions are stored in one file, @file{sql/time.cc},
+and are coded very carefully to be year 2000-safe.
@item
In @code{MySQL} Version 3.22 and later, the new @code{YEAR} column type
@@ -892,7 +881,7 @@ or manipulate years using 2-digit values (which are ambiguous) rather than
4-digit values. This problem may be compounded by applications that use
values such as @code{00} or @code{99} as ``missing'' value indicators.
-Unfortunately, these problems may be difficult to fix, because different
+Unfortunately, these problems may be difficult to fix because different
applications may be written by different programmers, each of whom may
use a different set of conventions and date-handling functions.
@@ -903,9 +892,9 @@ doesn't have any problems with dates until the year 2030:
mysql> DROP TABLE IF EXISTS y2k;
Query OK, 0 rows affected (0.01 sec)
-mysql> CREATE TABLE y2k (date date,
- -> date_time datetime,
- -> time_stamp timestamp);
+mysql> CREATE TABLE y2k (date DATE,
+ -> date_time DATETIME,
+ -> time_stamp TIMESTAMP);
Query OK, 0 rows affected (0.00 sec)
mysql> INSERT INTO y2k VALUES
@@ -964,22 +953,22 @@ year values).
@node What is MySQL AB, Licensing and Support, What-is, Introduction
-@section What Is MySQL AB
+@section What Is MySQL AB?
@cindex MySQL AB, defined
@code{MySQL AB} is the company of the @code{MySQL} founders and main
developers. @code{MySQL AB} was originally established in Sweden by
-David Axmark, Allan Larsson and Michael @code{Monty} Widenius.
+David Axmark, Allan Larsson, and Michael @code{Monty} Widenius.
All the developers of the @code{MySQL} server are employed by the company.
We are a virtual organisation with people in a dozen countries around
-the world. We communicate extensively over the net every day with each
+the world. We communicate extensively over the Net every day with each
other and with our users, supporters and partners.
We are dedicated to developing the @code{MySQL} software and spreading
our database to new users. @code{MySQL AB} owns the copyright to the
-@code{MySQL} source code, the @code{MySQL} logo and trademark and this
+@code{MySQL} source code, the @code{MySQL} logo and trademark, and this
manual. @xref{What-is}.
@menu
@@ -1009,8 +998,8 @@ Free from bugs.
@code{MySQL AB} and the people at @code{MySQL AB}:
@itemize @bullet
@item
-Promote @code{Open Source} Philosophy and support the
-@code{Open Source} Community.
+Promote @code{Open Source} philosophy and support the
+@code{Open Source} community.
@item
Aim to be good citizens.
@item
@@ -1034,7 +1023,7 @@ One of the most common questions we encounter is:
``@emph{How can you make a living from something you give away for free?}''
This is how.
-@code{MySQL AB} makes money on support, services, commercial licenses
+@code{MySQL AB} makes money on support, services, commercial licenses,
and royalties, and we use these revenues to fund product development
and to expand the @code{MySQL} business.
@@ -1075,7 +1064,7 @@ To order support at various levels, please visit the order section at
@cindex certification
@cindex MySQL certification
@code{MySQL AB} delivers @code{MySQL} and related training worldwide.
-We offer both open courses and In-House courses tailored to the
+We offer both open courses and in-house courses tailored to the
specific needs of your company. @code{MySQL Training} is also available
through our partners, the @code{Authorised MySQL Training Centers}.
@@ -1098,7 +1087,7 @@ Reduce or eliminate the need for additional hardware, decreasing cost.
@item
Enhance security.
@item
-Increase customers and co-workers satisfaction.
+Increase customers' and co-workers' satisfaction.
@item
Prepare yourself for @code{MySQL Certification}.
@end itemize
@@ -1108,7 +1097,7 @@ as a training partner, please visit the training section at
@uref{http://www.mysql.com/training/} or contact us at:
@email{training@@mysql.com}.
-We plan to release the @code{MySQL Certification Program} in 2002, for
+We plan to release the @code{MySQL Certification Program} in 2002. For
details see @uref{http://www.mysql.com/training/certification.html}.
If you would like to be kept informed about the
@code{MySQL Certification Program},
@@ -1130,12 +1119,12 @@ applications, and more.
We also help customers embed @code{MySQL Server} in their products and
applications for large-scale deployment.
-Our consultants work in close collaboration with our development team
+Our consultants work in close collaboration with our development team,
which ensures the technical quality of our professional services.
-Consulting assignments range from 2-day power start sessions to
-projects that span weeks and months. Our expertise does not only cover
-@code{MySQL Server}, but extends into programming and scripting
-languages such as PHP, Perl and more.
+Consulting assignments range from 2-day power-start sessions to
+projects that span weeks and months. Our expertise not only covers
+@code{MySQL Server}, but also extends into programming and scripting
+languages such as PHP, Perl, and more.
If you are interested in our consulting services or want to become a
consulting partner, please visit the consulting section of our web site
@@ -1154,10 +1143,10 @@ as well), you may purchase a commercial license for the same product
from @code{MySQL AB} at @uref{https://order.mysql.com/}.
Since @code{MySQL AB} owns the copyright to the @code{MySQL} source code,
we are able to employ @code{Dual Licensing} which means that the same
-product is available both under @code{GPL} and under a commercial
+product is available under @code{GPL} and under a commercial
license. This does not in any way affect the @code{Open Source}
commitment of @code{MySQL AB}. For details about when a commercial
-license is required, please see @ref{MySQL server licenses}.
+license is required, please see @ref{MySQL licenses}.
We also sell commercial licenses of third-party @code{Open Source GPL}
software that adds value to @code{MySQL Server}. A good example is the
@@ -1170,14 +1159,14 @@ key support, and more. @xref{InnoDB}.
@subsubsection Partnering
@cindex partnering with MySQL AB
@code{MySQL AB} has a worldwide partner programme that covers training
-courses, Consulting & Support, publications plus reselling and
+courses, consulting & support, publications plus reselling and
distributing @code{MySQL} and related products. @code{MySQL AB Partners}
get visibility on the @uref{http://www.mysql.com/} web site and the right
to use special versions of the @code{MySQL} trademarks to identify their
products and promote their business.
If you are interested in becoming a @code{MySQL AB Partner}, please e-mail
-to @email{partner@@mysql.com}.
+@email{partner@@mysql.com}.
The word @code{MySQL} and the @code{MySQL} dolphin logo are trademarks of
@code{MySQL AB}. @xref{MySQL AB Logos and Trademarks}.
@@ -1190,13 +1179,13 @@ founders have built over the years.
The @code{MySQL} web site (@uref{http://www.mysql.com/}) is popular among
developers and users. In October 2001, we served 10 million page views.
Our visitors represent a group that makes purchase decisions and
-recommendations for both software and hardware. Twelve per cent of our
-visitors authorise purchase decisions, and only nine per cent are not
+recommendations for both software and hardware. Twelve percent of our
+visitors authorise purchase decisions, and only nine percent are not
involved in purchase decisions at all. More than 65% have made one or
more online business purchase within the last half-year, and 70% plan
to make one in the next months.
-If you are interested in placing banner ads on our web site
+If you are interested in placing banner ads on our web site,
@uref{http://www.mysql.com/}, please send an e-mail message to
@email{advertising@@mysql.com}.
@@ -1218,7 +1207,7 @@ For press service and inquiries not covered in our News releases
(@uref{http://www.mysql.com/news/}), please send e-mail to
@email{press@@mysql.com}.
-If you have a valid support contract with @code{MySQL AB}; you will
+If you have a valid support contract with @code{MySQL AB}, you will
get timely, precise answers to your technical questions about the
@code{MySQL} software. For more information, see @ref{Support}.
You can order your support contract at
@@ -1252,7 +1241,7 @@ license deal, please fill in the contact form on our web site
(@uref{http://www.mysql.com/}) or send an e-mail message
to @email{licensing@@mysql.com} (for licensing questions) or to
@email{sales@@mysql.com} (for sales inquiries).
-@xref{MySQL server licenses}.
+@xref{MySQL licenses}.
If you represent a business that is interested in partnering with
@code{MySQL AB}, please send e-mail to @email{partner@@mysql.com}.
@@ -1274,7 +1263,7 @@ please send an e-mail message to @email{jobs@@mysql.com}.
Please do not send your CV as an attachment, but rather as plain text
at the end of your e-mail message.
-For general discussion amongst our many users, please direct your
+For general discussion among our many users, please direct your
attention to the appropriate mailing list.
@xref{Questions}.
@@ -1313,12 +1302,12 @@ For all other inquires, please send e-mail to @email{info@@mysql.com}.
@cindex licensing terms
@cindex support terms
-This section describes @code{MySQL} support and licensing arrangements:
+This section describes @code{MySQL} support and licensing arrangements.
@menu
* Support:: Support Offered by MySQL AB
* Copyright:: Copyrights and Licenses Used by MySQL
-* MySQL server licenses:: MySQL Server Licenses
+* MySQL licenses:: MySQL Licenses
* MySQL AB Logos and Trademarks:: MySQL AB Logos and Trademarks
@end menu
@@ -1344,13 +1333,13 @@ important to you.
Typically customers seek help on how to get different commands and
utilities to work, remove performance bottlenecks, restore crashed
systems, understand operating system or networking impacts on @code{MySQL},
-set-up best practices for backup and recovery, utilise @code{API}s, etc.
+set up best practices for backup and recovery, utilise @code{API}s, etc.
Our support covers only the @code{MySQL} server and our own utilities,
not third-party products that access the @code{MySQL} server, though we
try to help with these where we can.
Detailed information about our various support options is given at
-@uref{https://order.mysql.com/} where support contracts can also be
+@uref{https://order.mysql.com/}, where support contracts can also be
ordered online. If you have restricted access to the Internet, contact
our sales staff at @email{sales@@mysql.com}.
@@ -1363,7 +1352,7 @@ yourself. You may need immediate access to the most experienced
@code{MySQL} troubleshooters available, those employed by @code{MySQL AB}.
-@node Copyright, MySQL server licenses, Support, Licensing and Support
+@node Copyright, MySQL licenses, Support, Licensing and Support
@subsection Copyrights and Licenses Used by MySQL
@cindex copyrights
@@ -1372,21 +1361,21 @@ yourself. You may need immediate access to the most experienced
@code{MySQL AB} owns the copyright to the @code{MySQL} source code,
the @code{MySQL} logos and trademarks and this manual.
@xref{What is MySQL AB}.
-There are several different licenses relevant to the @code{MySQL}
+Several different licenses are relevant to the @code{MySQL}
distribution:
@enumerate
@item
All the @code{MySQL}-specific source in the server, the @code{mysqlclient}
-library and the client, as well as the @code{GNU} @code{readline} library,
-is covered by the ``GNU GENERAL PUBLIC LICENSE.''
+library and the client, as well as the @code{GNU} @code{readline} library
+is covered by the @code{GNU General Public License}.
@xref{GPL license}.
The text of this license can also be found as the file @file{COPYING}
in the distributions.
@item
The @code{GNU} @code{getopt} library is covered by the
-``GNU LESSER GENERAL PUBLIC LICENSE.''
+@code{GNU Lesser General Public License}.
@xref{LGPL license}.
@item
@@ -1400,7 +1389,7 @@ more strict license
See the documentation of the specific version for information.
@item
-The manual is currently @emph{not} distributed under a @code{GPL} style license.
+The manual is currently @strong{not} distributed under a @code{GPL}-style license.
Use of the manual is subject to the following terms:
@itemize @bullet
@item
@@ -1418,12 +1407,12 @@ if you are interested in doing a translation.
@end enumerate
For information about how the @code{MySQL} licenses work in practice,
-please refer to @ref{MySQL server licenses}.
+please refer to @ref{MySQL licenses}.
Also see @ref{MySQL AB Logos and Trademarks}.
-@node MySQL server licenses, MySQL AB Logos and Trademarks, Copyright, Licensing and Support
-@subsection MySQL Server Licenses
+@node MySQL licenses, MySQL AB Logos and Trademarks, Copyright, Licensing and Support
+@subsection MySQL Licenses
@cindex licensing policy
@cindex technical support, licensing
@@ -1439,7 +1428,8 @@ The @code{MySQL} software is released under the
which probably is the best known @code{Open Source} license.
The formal terms of the @code{GPL} license can be found at
@uref{http://www.gnu.org/licenses/}.
-See also @uref{http://www.gnu.org/licenses/gpl-faq.html}.
+See also @uref{http://www.gnu.org/licenses/gpl-faq.html} and
+@uref{http://www.gnu.org/philosophy/enforcing-gpl.html}.
Since the @code{MySQL} software is released under the @code{GPL},
it may often be used for free, but for certain uses you may want
@@ -1452,18 +1442,18 @@ more strict license
See the documentation of the specific version for information.
Please note that the use of the @code{MySQL} software under commercial
-license, @code{GPL} or the old @code{MySQL} license does not
+license, @code{GPL}, or the old @code{MySQL} license does not
automatically give you the right to use @code{MySQL AB} trademarks.
@xref{MySQL AB Logos and Trademarks}.
@menu
-* Using the MySQL server under a commercial license:: Using the MySQL Server Under a Commercial License
-* Using the MySQL server for free under GPL:: Using the MySQL Server for Free Under GPL
+* Using the MySQL software under a commercial license:: Using the MySQL Software Under a Commercial License
+* Using the MySQL software for free under GPL:: Using the MySQL Software for Free Under GPL
@end menu
-@node Using the MySQL server under a commercial license, Using the MySQL server for free under GPL, MySQL server licenses, MySQL server licenses
-@subsubsection Using the MySQL Server Under a Commercial License
+@node Using the MySQL software under a commercial license, Using the MySQL software for free under GPL, MySQL licenses, MySQL licenses
+@subsubsection Using the MySQL Software Under a Commercial License
The @code{GPL} license is contagious in the sense that when a program
is linked to a @code{GPL} program the resulting product must also be
@@ -1482,7 +1472,7 @@ purchasing commercial licenses, you are not using the @code{MySQL} software
under @code{GPL} even though it's the same code.
@item
-When you distribute a non-@code{GPL} application that ONLY works with the
+When you distribute a non-@code{GPL} application that @strong{only} works with the
@code{MySQL} software and ship it with the @code{MySQL} software. This type
of solution is actually considered to be linking even if it's done over
a network.
@@ -1511,8 +1501,8 @@ licensing needs or you have restricted access to the Internet, please contact
our sales staff at @email{sales@@mysql.com}.
-@node Using the MySQL server for free under GPL, , Using the MySQL server under a commercial license, MySQL server licenses
-@subsubsection Using the MySQL Server for Free Under GPL
+@node Using the MySQL software for free under GPL, , Using the MySQL software under a commercial license, MySQL licenses
+@subsubsection Using the MySQL Software for Free Under GPL
@cindex licensing, free
@cindex free licensing
@@ -1521,28 +1511,18 @@ You can use the @code{MySQL} software for free under the @code{GPL}:
@itemize @bullet
@item
-When you link a program with code from the @code{MYSQL} software and
+When you link a program with code from the @code{MySQL} software and
release the resulting product under @code{GPL}.
@item
When you distribute the @code{MySQL} source code bundled with
-other programs that are not linked to or dependant on @code{MySQL Server}
+other programs that are not linked to or dependent on @code{MySQL Server}
for their functionality even if you sell the distribution commercially.
@item
When using the @code{MySQL} software internally in your company.
@item
-When include the @code{MySQL} client code in a commercial program.
-The client part of the @code{MySQL} software is licensed under the
-@code{LGPL} (@code{GNU Lesser General Public License}).
-The formal terms of the @code{LGPL} license can be found at
-@uref{http://www.gnu.org/licenses/}.
-
-However, the @code{mysql} command-line client does include code
-from the @code{GNU} @code{readline} library that is under the @code{GPL}.
-
-@item
@cindex ISP services
@cindex services, ISP
@cindex services, web
@@ -1559,7 +1539,7 @@ to our @code{announce} mailing list so that they can be aware of
critical issues that may be relevant for their @code{MySQL} installations.
Note that even if an ISP does not have a commercial license for
-@code{MySQL} Server, they should at least give their customers read
+@code{MySQL Server}, they should at least give their customers read
access to the source of the @code{MySQL} installation so that the
customers can verify that it is patched correctly.
@@ -1567,16 +1547,16 @@ customers can verify that it is patched correctly.
@cindex web server, running
@cindex running a web server
When you use the @code{MySQL} Database Software in conjunction with
-a Web server, you do not need a commercial license. This is true even
-if you run a commercial Web server that uses @code{MySQL} Server, because
+a web server, you do not need a commercial license. This is true even
+if you run a commercial web server that uses @code{MySQL Server}, because
you are not selling an embedded @code{MySQL} version yourself. However,
-in this case we would like you to purchase @code{MySQL} support, because
+in this case we would like you to purchase @code{MySQL} support because
the @code{MySQL} software is helping your enterprise.
@end itemize
If your use of @code{MySQL} database software does not require a commercial
license, we encourage you to purchase support from @code{MySQL AB} anyway.
-This way you contribute towards @code{MySQL} development and also gain
+This way you contribute toward @code{MySQL} development and also gain
immediate advantages for yourself. @xref{Support}.
If you use the @code{MySQL} database software in a commercial context
@@ -1589,15 +1569,15 @@ for free something into which we've put a lot a work, you're asking
us to provide free support, too.)
-@node MySQL AB Logos and Trademarks, , MySQL server licenses, Licensing and Support
+@node MySQL AB Logos and Trademarks, , MySQL licenses, Licensing and Support
@subsection MySQL AB Logos and Trademarks
@cindex logos
@cindex trademarks
Many users of the @code{MySQL} database want to display the
-@code{MySQL AB} dolphin logo on their web sites, on their books or
-boxed products. We welcome and encourage this although it should be
+@code{MySQL AB} dolphin logo on their web sites, books, or
+boxed products. We welcome and encourage this, although it should be
noted that the word @code{MySQL} and the @code{MySQL} dolphin logo
are trademarks of @code{MySQL AB} and may only be used as stated in
our trademark policy at
@@ -1620,7 +1600,7 @@ our trademark policy at
The @code{MySQL} dolphin logo was designed by the Finnish advertising
agency Priority in 2001. The dolphin was chosen as a suitable symbol
-for the @code{MySQL} database since it is a smart, fast and lean animal,
+for the @code{MySQL} database since it is a smart, fast, and lean animal,
effortlessly navigating oceans of data. We also happen to like dolphins.
The original @code{MySQL} logo may only be used by representatives of
@@ -1636,10 +1616,10 @@ to do so.
We have designed a set of special @emph{Conditional Use} logos that may be
downloaded from our web site at
@uref{http://www.mysql.com/downloads/logos.html}
-and used on third party web sites without written permission from
+and used on third-party web sites without written permission from
@code{MySQL AB}.
-The use of these logos is not entirely unrestricted, but as the name
-implies subject to our trademark policy that is also available on our
+The use of these logos is not entirely unrestricted but, as the name
+implies, subject to our trademark policy that is also available on our
web site. You should read through the trademark policy if you plan to
use them. The requirements are basically:
@@ -1664,8 +1644,8 @@ to @uref{http://www.mysql.com/}.
@item
If you are using the @code{MySQL} database under @code{GPL} in an
-application, your application must (i) be @code{Open Source},
-(ii) be able to connect to a @code{MySQL} server.
+application, your application must be @code{Open Source} and
+be able to connect to a @code{MySQL} server.
@end itemize
Contact us at @email{trademark@@mysql.com} to inquire about special
@@ -1683,11 +1663,11 @@ When displaying any @code{MySQL AB} logo anywhere except on your web site.
@item
When displaying any @code{MySQL AB} logo except the @emph{Conditional Use}
-logos above on web sites or elsewhere.
+logos mentioned previously on web sites or elsewhere.
@end itemize
Out of legal and commercial reasons we have to monitor the use of MySQL
-trademarks on products, books etc. We will usually require a fee for
+trademarks on products, books, etc. We will usually require a fee for
displaying @code{MySQL AB} logos on commercial products, since we think
it is reasonable that some of the revenue is returned to fund further
development of the @code{MySQL} database.
@@ -1709,9 +1689,9 @@ Please see @ref{Business Services Partnering,,Partnering}.
@code{MySQL AB} welcomes references to the @code{MySQL} database, but
note that the word @code{MySQL} is a trademark of @code{MySQL AB}.
-Because of this, you should append the trademark symbol @code{TM} to
+Because of this, you should append the trademark symbol (@code{TM}) to
the first or most prominent use of the word @code{MySQL} in a text and
-where appropriate use a statement that @code{MySQL} is a trademark of
+where appropriate, state that @code{MySQL} is a trademark of
@code{MySQL AB}. Please refer to our trademark policy at
@uref{http://www.mysql.com/company/trademark.html} for details.
@@ -1732,9 +1712,9 @@ Long promised by @code{MySQL AB} and long awaited by our users,
MySQL Server 4.0 is now available in alpha version for download from
@uref{http://www.mysql.com/} and our mirrors.
-Main new features of MySQL Server 4.0 are geared towards our existing
+Main new features of MySQL Server 4.0 are geared toward our existing
business and community users, enhancing the MySQL database software
-as the solution for mission-critical, heavy load database systems.
+as the solution for mission-critical, heavy-load database systems.
Other new features target the users of embedded databases.
@menu
@@ -1753,7 +1733,7 @@ Other new features target the users of embedded databases.
The rollout of MySQL Server 4.0 will come in several steps, with
the first version labelled 4.0.0 already containing most of the
new features. Additional features will be incorporated into
-MySQL 4.0.1, 4.0.2 onwards; very probably within a couple of months,
+MySQL 4.0.1, 4.0.2, and onward; very probably within a couple of months,
MySQL 4.0 will be labelled beta. Further new features will then
be added in MySQL 4.1, which is targeted for alpha release
in third quarter 2002.
@@ -1781,9 +1761,9 @@ applications. Using the embedded MySQL server library, one can
embed MySQL Server into various applications and electronics devices, where
the end user has no knowledge of there actually being an underlying
database. Embedded MySQL Server is ideal for use behind
-the scenes in internet appliances, public kiosks, turn-key
-hardware/ software combination units, high performance internet
-servers, self-contained databases distributed on CD-ROM etc.
+the scenes in internet appliances, public kiosks, turnkey
+hardware/software combination units, high performance internet
+servers, self-contained databases distributed on CD-ROM, etc.
Many users of @code{libmysqld} will benefit from the MySQL
@emph{Dual Licensing}. For those not wishing to be bound by the GPL,
@@ -1799,8 +1779,8 @@ client library, so it is convenient and easy to use. @xref{libmysqld}.
@item
Version 4.0 further increases @emph{the speed of MySQL Server}
in a number of areas,
-such as bulk @code{INSERT}s, searching on packed indices, creation of
-@code{FULLTEXT} indices as well as @code{COUNT(DISTINCT)}.
+such as bulk @code{INSERT}s, searching on packed indexes, creation of
+@code{FULLTEXT} indexes, as well as @code{COUNT(DISTINCT)}.
@item
The table handler @code{InnoDB} is now offered as a feature of the
@@ -1811,38 +1791,37 @@ and @code{row-level locking}.
MySQL Server 4.0 will support secure traffic between the client and the server,
greatly increasing security against malicious intrusion and unauthorised
access. Web applications being a cornerstone of MySQL use, web developers
-have been able to use SSL to secure the traffic between the
-the end user browser and the Web application, be it written in
-PHP, Perl, ASP or using any other web development tool. However,
-the traffic between the development tool and the mysqld server
+have been able to use @code{Secure Socket Layer} (@code{SSL}) to secure the
+traffic between the the end user browser and the web application, be it
+written in PHP, Perl, ASP or using any other web development tool. However,
+the traffic between the development tool and the @code{mysqld} server
process has been protected only by virtue of them being processes
residing on computers within the same firewall. In MySQL Server 4.0,
-the @emph{mysqld} server daemon process can itself use
-@code{Secure Sockets Layer} (@code{SSL}),
+the @code{mysqld} server daemon process can itself use @code{SSL},
thus enabling secure traffic to MySQL databases from, say, a Windows
application residing outside the firewall.
@item
-Our German, Austrian and Swiss users will note that we have a new character
-set @code{latin_de} which corrects the @emph{German sorting order},
-placing German Umlauts in the same order as German telephone books.
+Our German, Austrian, and Swiss users will note that we have a new character
+set, @code{latin_de}, which corrects the @emph{German sorting order},
+placing German umlauts in the same order as German telephone books.
@item
Features to simplify migration from other database systems to MySQL
Server include @code{TRUNCATE TABLE} (like in Oracle) and @code{IDENTITY} as a
synonym for automatically incremented keys (like in Sybase). Many users will
also be happy to learn that MySQL Server now supports the @code{UNION} statement,
-a long awaited standard SQL feature.
+a long-awaited standard SQL feature.
@item
In the process of building features for new users, we have not forgotten
requests by the community of loyal users.
We have multi-table @code{DELETE} statements.
By adding support for @code{symbolic linking} to @code{MyISAM} on the table
-level (and not just database level as before), as well as by enabling symlink
+level (and not just the database level as before), as well as by enabling symlink
handling by default on Windows, we hope to show that we take enhancement
requests seriously.
-Functions like @code{SQL_CALC_FOUND_ROWS} and @code{FOUND_ROWS()} makes it
+Functions like @code{SQL_CALC_FOUND_ROWS} and @code{FOUND_ROWS()} make it
possible to know how many rows a query would have returned without a
@code{LIMIT} clause.
@end itemize
@@ -1851,7 +1830,7 @@ possible to know how many rows a query would have returned without a
@node Nutshell Future features, Nutshell 4.1 development release, Nutshell Other features, MySQL 4.0 In A Nutshell
@subsection Future MySQL 4.0 Features
-For the upcoming MySQL Server 4.0 releases (4.0.1, 4.0.2 and onwards),
+For the upcoming MySQL Server 4.0 releases (4.0.1, 4.0.2, and onward),
expect the following features now still under development:
@itemize @bullet
@@ -1859,7 +1838,7 @@ expect the following features now still under development:
Mission-critical, heavy-load users of MySQL Server will appreciate
the additions to our replication system and our online hot backup.
Later versions of 4.0 will include @code{fail-safe replication};
-already in existing 4.0.0, the @code{LOAD DATA FROM MASTER} command
+already existing in 4.0.0, the @code{LOAD DATA FROM MASTER} command
will soon automate slave setup. The @code{online backup} will make
it easy to add a new replication slave without taking down
the master, and have a very low performance penalty on
@@ -1871,9 +1850,9 @@ A convenience feature for Database Administrators is that
taking down the servers.
@item
-The new @code{FULLTEXT} search properties of MySQL Server 4.0 enables the
+The new @code{FULLTEXT} search properties of MySQL Server 4.0 enable the
use of @code{FULLTEXT} indexing of large text masses with both binary and
-natural language searching logic. Users can customise minimal word
+natural-language searching logic. Users can customise minimal word
length and define their own stop word lists in any human language,
enabling a new set of applications to be built on MySQL Server.
@@ -1891,7 +1870,8 @@ in the client.
@subsection MySQL 4.1, The Following Development Release
Internally, through a new .frm file format for table definitions,
-MySQL Server 4.0 lays the foundation for the new features of MySQL Server 4.1,
+MySQL Server 4.0 lays the foundation for the new features of
+MySQL Server 4.1 and onward,
such as @code{nested subqueries}, @code{stored procedures}, and
@code{foreign key integrity rules}, which form the top of the
wish list for many of our customers. Along with those, we will
@@ -1939,23 +1919,23 @@ checklist of very demanding buyers.
The @code{MySQL Portals} (@uref{http://www.mysql.com/portal/})
represent the ultimate resource to find @code{MySQL AB Partners},
-as well as books, or other @code{MySQL} related solutions that you
+as well as books, or other @code{MySQL}-related solutions that you
may be looking for. Items are categorised and rated in order to
make it easy for you to locate information.
-By registering as a user, you will have the ability to comment and
+By registering as a user, you will have the ability to comment on and
rate items presented in portals. You will also receive relevant
newsletters according to your user profile that you may update at
any time.
-Some of the current @code{MySQL Portal} categories:
+Some of the current @code{MySQL Portal} categories include:
@table @strong
@item Partners
Find @code{MySQL AB} partners worldwide.
@item Books
-Comment, vote, and buy books related to @code{MySQL}.
+Comment on, vote for, and buy books related to @code{MySQL}.
@item Development
Various links to different sites that are using @code{MySQL Server}
@@ -1968,7 +1948,7 @@ Let us know about @emph{your} site or success story, too!
Visit @uref{http://www.mysql.com/feedback/testimonial.php}.
@item Software
-Find, buy, download several applications and wrappers that make
+Find, buy, and download several applications and wrappers that make
use of the @code{MySQL} server.
@item Distributions
@@ -2018,7 +1998,7 @@ subject line and the body of the message are ignored.
@c the last two addresses in this paragraph are not @email because they
@c shouldn't be live links.
If your reply address is not valid, you can specify your address
-explicitly. Adding a hyphen to the subscribe or unsubscribe command
+explicitly, by adding a hyphen to the subscribe or unsubscribe command
word, followed by your address with the @samp{@@} character in your
address replaced by a @samp{=}. For example, to subscribe
@code{your_name@@host.domain}, send a message to
@@ -2030,13 +2010,13 @@ ezmlm mailing list processor. Information about ezmlm is available at
the ezmlm web site (@uref{http://www.ezmlm.org/}).
To post a message to the list itself, send your message to
-@code{mysql@@lists.mysql.com}. However, please @emph{do not} send mail about
-subscribing or unsubscribing to @email{mysql@@lists.mysql.com}, because any
+@code{mysql@@lists.mysql.com}. However, please @strong{do not} send mail about
+subscribing or unsubscribing to @email{mysql@@lists.mysql.com} because any
mail sent to that address is distributed automatically to thousands of other
users.
Your local site may have many subscribers to @email{mysql@@lists.mysql.com}.
-If so, it may have a local mailing list, so that messages sent from
+If so, it may have a local mailing list, so messages sent from
@code{lists.mysql.com} to your site are propagated to the local list. In such
cases, please contact your system administrator to be added to or dropped
from the local MySQL list.
@@ -2051,7 +2031,7 @@ The following MySQL mailing lists exist:
@table @code
@item @email{announce-subscribe@@lists.mysql.com} announce
This is for announcement of new versions of MySQL and related
-programs. This is a low volume list all MySQL users should
+programs. This is a low-volume list all MySQL users should
subscribe to.
@item @email{mysql-subscribe@@lists.mysql.com} mysql
@@ -2071,7 +2051,7 @@ Preferably, you should test the problem using the latest stable or development
version of MySQL Server before posting! Anyone should be able to repeat the
bug by just using @code{mysql test < script} on the included test case. All
bugs posted on this list will be corrected or documented in the next
-MySQL release! If there are only small code changes involved, we
+MySQL release! If only small code changes are needed, we
will also post a patch that fixes the problem.
@item @email{bugs-digest-subscribe@@lists.mysql.com} bugs-digest
@@ -2104,7 +2084,7 @@ All things about connecting to the MySQL server with ODBC.
A digest version of the @code{myodbc} list.
@item @email{mycc-subscribe@@lists.mysql.com} mycc
-All things about the MySQL MyCC graphical client.
+All things about the MySQL @code{MyCC} graphical client.
@item @email{mycc-digest-subscribe@@lists.mysql.com} mycc-digest
A digest version of the @code{mycc} list.
@@ -2123,7 +2103,7 @@ A digest version of the @code{msql-mysql-modules} list.
@end table
You subscribe or unsubscribe to all lists in the same way as described
-above. In your subscribe or unsubscribe message, just put the appropriate
+previously. In your subscribe or unsubscribe message, just put the appropriate
mailing list name rather than @code{mysql}. For example, to subscribe to or
unsubscribe from the @code{myodbc} list, send a message to
@email{myodbc-subscribe@@lists.mysql.com} or
@@ -2133,7 +2113,7 @@ If you can't get an answer for your questions from the mailing list, one
option is to pay for support from MySQL AB, which will put you
in direct contact with MySQL developers. @xref{Support}.
-The following table shows some MySQL mailing in other languages than
+The following table shows some MySQL mailing in languages other than
English. Note that these are not operated by MySQL AB, so we can't
guarantee the quality on these.
@@ -2177,7 +2157,7 @@ Search the MySQL mailing list archives:
@*
@item
You can also use @uref{http://www.mysql.com/search.html} to search all the
-Web pages (including the manual) that are located at
+web pages (including the manual) that are located at
@uref{http://www.mysql.com/}.
@end itemize
@@ -2207,7 +2187,7 @@ or at all.
We encourage everyone to use the @code{mysqlbug} script to generate a bug
report (or a report about any problem), if possible. @code{mysqlbug} can be
-found in the @file{scripts} directory in the source distribution, or, for a
+found in the @file{scripts} directory in the source distribution, or for a
binary distribution, in the @file{bin} directory under your MySQL
installation directory. If you are unable to use @code{mysqlbug}, you should
still include all the necessary information listed in this section.
@@ -2229,9 +2209,9 @@ MySQL version. Preferably, you should test the problem using
the latest stable or development version of MySQL Server before
posting! Anyone should be able to repeat the bug by just using
``@code{mysql test < script}'' on the included test case or run the
-shell or perl script that is included in the bug report. All bugs
+shell or Perl script that is included in the bug report. All bugs
posted on the @code{bugs} list will be corrected or documented in the next
-MySQL release! If there are only small code changes involved
+MySQL release! If only small code changes are needed
to correct this problem, we will also post a patch that fixes the
problem.
@@ -2252,17 +2232,17 @@ the MySQL distribution they are using, or don't indicate what
platform they have the MySQL server installed on (including the platform
version number). This is highly relevant information, and in 99 cases out of
100 the bug report is useless without it! Very often we get questions like,
-``Why doesn't this work for me?'' then we find that the feature
+``Why doesn't this work for me?'' Then we find that the feature
requested wasn't implemented in that MySQL version, or that a bug
described in a report has been fixed already in newer MySQL
-versions. Sometimes the error is platform dependent; in such cases, it is
+versions. Sometimes the error is platform-dependent; in such cases, it is
next to impossible to fix anything without knowing the operating system and
the version number of the platform.
Remember also to provide information about your compiler, if it is related to
the problem. Often people find bugs in compilers and think the problem is
MySQL-related. Most compilers are under development all the time and
-become better version by version. To determine whether or not your
+become better version by version. To determine whether your
problem depends on your compiler, we need to know what compiler is used.
Note that every compiling problem should be regarded as a bug report and
reported accordingly.
@@ -2285,11 +2265,11 @@ trace file. @xref{MyODBC bug report}.
Please remember that many of the people who will read your report will
do so using an 80-column display. When generating reports or examples
-using the @code{mysql} command line tool, you should therefore use
+using the @code{mysql} command-line tool, you should therefore use
the @code{--vertical} option (or the @code{\G} statement terminator)
for output that would exceed the available width for such a display
(for example, with the @code{EXPLAIN SELECT} statement; see the
-example below).
+example later in this section).
@cindex bug reports, criteria for
Please include the following information in your report:
@@ -2342,7 +2322,7 @@ information you give about your situation, the more likely it is that someone
can help you! For example, the following is an example of a very good bug
report (it should of course be posted with the @code{mysqlbug} script):
-Example run using the @code{mysql} command line tool (note the use of the
+Example run using the @code{mysql} command-line tool (note the use of the
@code{\G} statement terminator for statements whose output width would
otherwise exceed that of an 80-column display device):
@@ -2361,11 +2341,11 @@ mysql> SHOW STATUS;
@end example
@item
-If a bug or problem occurs while running @strong{mysqld}, try to provide an
+If a bug or problem occurs while running @code{mysqld}, try to provide an
input script that will reproduce the anomaly. This script should include any
necessary source files. The more closely the script can reproduce your
situation, the better. If you can make a reproduceable test case, you should
-post this to @email{bugs@@lists.mysql.com} for a high priority treatment!
+post this to @email{bugs@@lists.mysql.com} for a high-priority treatment!
If you can't provide a script, you should at least include the output
from @code{mysqladmin variables extended-status processlist} in your mail to
@@ -2395,8 +2375,8 @@ These cases are rare, perhaps, but it is better to be safe than sorry.
After all, it should be easier for you to provide an example that uses your
actual situation, and it is by all means better for us. In case you have data
you don't want to show to others, you can use @code{ftp} to transfer it to
-@uref{ftp://support.mysql.com/pub/mysql/secret/}. If the data are really top
-secret and you don't want to show them even to us, then go ahead and provide
+@uref{ftp://support.mysql.com/pub/mysql/secret/}. If the data is really top
+secret and you don't want to show it even to us, then go ahead and provide
an example using other names, but please regard this as the last choice.
@item
@@ -2418,9 +2398,9 @@ gives you trouble. @code{mysqlaccess} can be found in the @file{bin}
directory under your MySQL installation directory.
@item
-If you have a patch for a bug, that is good, but don't assume the patch is
+If you have a patch for a bug, that is good. But don't assume the patch is
all we need, or that we will use it, if you don't provide some necessary
-information, such as test cases showing the bug that your patch fixes. We
+information such as test cases showing the bug that your patch fixes. We
might find problems with your patch or we might not understand it at all; if
so, we can't use it.
@@ -2430,13 +2410,13 @@ situations that may occur. If we find a borderline case (even a rare one)
where the patch won't work, it may be useless.
@item
-Guesses about what the bug is, why it occurs, or what it depends on,
+Guesses about what the bug is, why it occurs, or what it depends on
are usually wrong. Even the MySQL team can't guess such things
without first using a debugger to determine the real cause of a bug.
@item
Indicate in your mail message that you have checked the reference manual
-and mail archive so others know that you have tried to solve the
+and mail archive so that others know you have tried to solve the
problem yourself.
@item
@@ -2472,9 +2452,9 @@ it's much easier for us to provide you with a fix for the problem.
@item
If possible, download and install the most recent version of MySQL Server
-and check whether or not it solves your problem. All versions of
+and check whether it solves your problem. All versions of
the MySQL software are thoroughly tested and should work without problems.
-We believe in making everything as backward compatible as possible,
+We believe in making everything as backward-compatible as possible,
and you should be able to switch MySQL versions without any hassle.
@xref{Which version}.
@end itemize
@@ -2484,11 +2464,11 @@ and you should be able to switch MySQL versions without any hassle.
@cindex customer support, mailing address
@cindex mailing address, for customer support
If you are a support customer, please cross-post the bug report to
-@email{mysql-support@@mysql.com} for higher priority treatment, as well as to
+@email{mysql-support@@mysql.com} for higher-priority treatment, as well as to
the appropriate mailing list to see if someone else has experienced (and
perhaps solved) the problem.
-For information on reporting bugs in @strong{MyODBC}, see @ref{ODBC Problems}.
+For information on reporting bugs in @code{MyODBC}, see @ref{ODBC Problems}.
For solutions to some common problems, see @ref{Problems}.
@@ -2529,35 +2509,35 @@ Many users don't read mail with a browser!
This section describes how MySQL relates to the ANSI SQL standards.
MySQL Server has many extensions to the ANSI SQL standards, and here you
-will find out what they are, and how to use them. You will also find
+will find out what they are and how to use them. You will also find
information about functionality missing from MySQL Server, and how to work
around some differences.
Our goal is to not, without a very good reason, restrict MySQL Server usability
for any usage. Even if we don't have the resources to do development
for every possible use, we are always willing to help and offer
-suggestions to people that is trying to use MySQL Server in new territories.
+suggestions to people who are trying to use MySQL Server in new territories.
-One of our main goals with the product is to continue to work towards
+One of our main goals with the product is to continue to work toward
ANSI 99 compliancy, but without sacrificing speed or reliability.
We are not afraid to add extensions to SQL or support for non-SQL
-features if this greatly increase the usability of MySQL Server for a big
+features if this greatly increases the usability of MySQL Server for a big
part of our users. (The new @code{HANDLER} interface in MySQL Server 4.0
-is an example of this strategy. @xref{HANDLER}.)
+is an example of this strategy. @xref{HANDLER, , @code{HANDLER}}.)
-We will continue to support transactional and not transactional
-databases to satisfy both heavy web/logging usage and mission critical
+We will continue to support transactional and non-transactional
+databases to satisfy both heavy web/logging usage and mission-critical
24/7 usage.
-MySQL Server was designed from the start to work with medium large databases
-(10-100 million rows / about 100 MB per table) on small computer
-systems. We will continue to extend MySQL Server to both work even better
-with terabyte size databases, but we are also doing work to make it possible
-to compile a reduced MySQL version that is more suitable for hand held
+MySQL Server was designed from the start to work with medium size databases
+(10-100 million rows, or about 100 MB per table) on small computer
+systems. We will continue to extend MySQL Server to work even better
+with terabyte-size databases, as well as to make it possible
+to compile a reduced MySQL version that is more suitable for hand-held
devices and embedded usage. The compact design of the MySQL server makes both
of these directions possible without any conflicts in the source tree.
-We are currently not targeting real time support or clustered databases
+We are currently not targeting realtime support or clustered databases
(even if you can already do a lot of things with our replication
services).
@@ -2566,7 +2546,7 @@ database, but will instead add the XML support our users request from
us on the client side. We think it's better to keep the main server
code as ``lean and clean'' as possible and instead develop libraries to
deal with the complexity on the client side. This is part of the strategy
-mentioned above of not sacrificing speed or reliability in the
+mentioned previously of not sacrificing speed or reliability in the
server.
@menu
@@ -2581,9 +2561,9 @@ server.
@node Standards, ANSI mode, Compatibility, Compatibility
@subsection What Standards Does MySQL Follow?
-Entry level SQL92. ODBC levels 0-3.51.
+Entry-level SQL92. ODBC levels 0-3.51.
-We are aiming towards supporting the full ANSI SQL99 standard,
+We are aiming toward supporting the full ANSI SQL99 standard,
but without concessions to speed and quality of the code.
@@ -2609,7 +2589,7 @@ This forces all function names to be treated as reserved words.
@samp{`} quote character) and not a string quote character.
@item
-@code{REAL} will be a synonym for @code{FLOAT} instead of a synonym of
+@code{REAL} will be a synonym for @code{FLOAT} instead of a synonym for
@code{DOUBLE}.
@item
@@ -2638,18 +2618,18 @@ statement, but other SQL servers will ignore the extensions. For example:
SELECT /*! STRAIGHT_JOIN */ col_name FROM table1,table2 WHERE ...
@end example
-If you add a version number after the @code{'!'}, the syntax will only be
-executed if the MySQL version is equal to or newer than the used
+If you add a version number after the @code{'!'}, the syntax will be
+executed only if the MySQL version is equal to or newer than the used
version number:
@example
CREATE /*!32302 TEMPORARY */ TABLE (a int);
@end example
-The above means that if you have Version 3.23.02 or newer, then MySQL
+This means that if you have Version 3.23.02 or newer, MySQL
Server will use the @code{TEMPORARY} keyword.
-MySQL extensions are listed below:
+The following is a list of MySQL extensions:
@itemize @bullet
@item
@@ -2661,7 +2641,7 @@ The field attributes @code{AUTO_INCREMENT}, @code{BINARY}, @code{NULL},
@code{UNSIGNED}, and @code{ZEROFILL}.
@item
-All string comparisons are case insensitive by default, with sort
+All string comparisons are case-insensitive by default, with sort
ordering determined by the current character set (ISO-8859-1 Latin1 by
default). If you don't like this, you should declare your columns with
the @code{BINARY} attribute or use the @code{BINARY} cast, which causes
@@ -2683,7 +2663,7 @@ This has a few implications:
@itemize @minus
@item
-Database names and table names are case sensitive in MySQL Server on
+Database names and table names are case-sensitive in MySQL Server on
operating systems that have case-sensitive filenames (like most Unix
systems). @xref{Name case sensitivity}.
@@ -2692,7 +2672,7 @@ Database, table, index, column, or alias names may begin with a digit
(but may not consist solely of digits).
@item
-You can use standard system commands to backup, rename, move, delete, and copy
+You can use standard system commands to back up, rename, move, delete, and copy
tables. For example, to rename a table, rename the @file{.MYD}, @file{.MYI},
and @file{.frm} files to which the table corresponds.
@end itemize
@@ -2726,7 +2706,7 @@ statement. @xref{CREATE TABLE, , @code{CREATE TABLE}}.
Use of @code{TEMPORARY} or @code{IF NOT EXISTS} with @code{CREATE TABLE}.
@item
-Use of @code{COUNT(DISTINCT list)} where 'list' is more than one element.
+Use of @code{COUNT(DISTINCT list)} where @code{list} is more than one element.
@item
Use of @code{CHANGE col_name}, @code{DROP col_name}, or @code{DROP
@@ -2919,7 +2899,7 @@ That is the latest version of the TODO list in this manual. @xref{TODO}.
MySQL Server currently only supports nested queries of the form
@code{INSERT ... SELECT ...} and @code{REPLACE ... SELECT ...}.
-You can however use the function @code{IN()} in other contexts.
+You can, however, use the function @code{IN()} in other contexts.
Sub-selects are scheduled for implementation in Version 4.x.
Meanwhile, you can often rewrite the query without a sub-select:
@@ -2928,7 +2908,7 @@ Meanwhile, you can often rewrite the query without a sub-select:
SELECT * FROM table1 WHERE id IN (SELECT id FROM table2);
@end example
-This can be re-written as:
+This can be rewritten as:
@example
SELECT table1.* FROM table1,table2 WHERE table1.id=table2.id;
@@ -2949,7 +2929,7 @@ SELECT table1.* FROM table1 LEFT JOIN table2 ON table1.id=table2.id
@end example
For more complicated subqueries you can often create temporary tables
-to hold the subquery. In some cases, however this option will not
+to hold the subquery. In some cases, however, this option will not
work. The most frequently encountered of these cases arises with
@code{DELETE} statements, for which standard SQL does not support joins
(except in sub-selects). For this situation there are two options
@@ -2967,7 +2947,7 @@ extension @code{CONCAT()} (in lieu of the standard @code{||} operator).
For example:
@example
-SELECT CONCAT('DELETE FROM tab1 WHERE pkid = ', tab1.pkid, ';')
+SELECT CONCAT('DELETE FROM tab1 WHERE pkid = ', "'", tab1.pkid, "'", ';')
FROM tab1, tab2
WHERE tab1.col1 = tab2.col2;
@end example
@@ -3026,8 +3006,8 @@ However, the non-transactional table types in MySQL Server such as
``@code{Atomic Operations}.'' Atomic operations often offer equal or
even better integrity with much better performance.
With MySQL Server supporting both paradigms, the user is able to decide if
-they need the speed of atomic operations or if they need to use
-transactional features in their applications. This choice can be made
+he needs the speed of atomic operations or if he need to use
+transactional features in his applications. This choice can be made
on a per-table basis.
How does one use the features of MySQL Server to maintain rigorous integrity
@@ -3037,7 +3017,7 @@ and how do these features compare with the transactional paradigm?
@item
In the transactional paradigm, if your applications are written in a
way that is dependent on the calling of @code{ROLLBACK} instead of
-@code{COMMIT} in critical situations, then transactions are more
+@code{COMMIT} in critical situations, transactions are more
convenient. Transactions also ensure that unfinished updates or
corrupting activities are not committed to the database; the server is
given the opportunity to do an automatic rollback and your database is
@@ -3077,7 +3057,7 @@ users and application developers depend on the ease with which they
can code around problems where an abort appears to be, or is necessary.
However, even if you are new to the atomic operations paradigm, or more
familiar with transactions, do consider the speed benefit that
-non-transactional tables can offer, on the order of three to five times
+non-transactional tables can offer on the order of three to five times
the speed of the fastest and most optimally tuned transactional tables.
In situations where integrity is of highest importance, MySQL Server offers
@@ -3085,9 +3065,9 @@ transaction-level or better reliability and integrity even for
non-transactional tables.
If you lock tables with @code{LOCK TABLES}, all updates will stall
until any integrity checks are made. If you only obtain a read lock
-(as opposed to a write lock), then reads and inserts are still allowed
+(as opposed to a write lock), reads and inserts are still allowed
to happen. The new inserted records will not be seen by any of the
-clients that have a @code{READ} lock until they release their read
+clients that have a read lock until they release their read
locks. With @code{INSERT DELAYED} you can queue inserts into a local
queue, until the locks are released, without having the client wait
for the insert to complete. @xref{INSERT DELAYED}.
@@ -3139,16 +3119,16 @@ techniques:
For example, when we are doing updates to some customer information, we
update only the customer data that has changed and test only that none of
-the changed data, or data that depend on the changed data, has changed
+the changed data, or data that depends on the changed data, has changed
compared to the original row. The test for changed data is done with the
@code{WHERE} clause in the @code{UPDATE} statement. If the record wasn't
updated, we give the client a message: "Some of the data you have changed
-have been changed by another user". Then we show the old row versus the new
+has been changed by another user." Then we show the old row versus the new
row in a window, so the user can decide which version of the customer record
he should use.
This gives us something that is similar to column locking but is actually
-even better, because we only update some of the columns, using values that
+even better because we only update some of the columns, using values that
are relative to their current values. This means that typical @code{UPDATE}
statements look something like these:
@@ -3193,10 +3173,10 @@ UPDATE tbl_name SET row_flag=1 WHERE id=ID;
MySQL returns 1 for the number of affected rows if the row was
found and @code{row_flag} wasn't already 1 in the original row.
-You can think of it as MySQL Server changed the above query to:
+You can think of it as though MySQL Server changed the preceding query to:
@example
-UPDATE tbl_name SET row_flag=1 WHERE id=ID and row_flag <> 1;
+UPDATE tbl_name SET row_flag=1 WHERE id=ID AND row_flag <> 1;
@end example
@end itemize
@@ -3209,7 +3189,7 @@ UPDATE tbl_name SET row_flag=1 WHERE id=ID and row_flag <> 1;
@cindex triggers, stored
A stored procedure is a set of SQL commands that can be compiled and stored
-in the server. Once this has been done, clients don't need to keep reissuing
+in the server. Once this has been done, clients don't need to keep re-issuing
the entire query but can refer to the stored procedure. This provides better
performance because the query has to be parsed only once, and less information
needs to be sent between the server and the client. You can also raise the
@@ -3222,8 +3202,8 @@ deletes the corresponding customer from a customer table when all his
transactions are deleted.
The planned update language will be able to handle stored procedures.
-Our aim is to have stored procedures implemented in MySQL Server 4.1.
-We are also looking at triggers.
+Our aim is to have stored procedures implemented in MySQL Server around
+version 4.1. We are also looking at triggers.
@node ANSI diff Foreign Keys, ANSI diff Views, ANSI diff Triggers, Differences from ANSI
@@ -3238,12 +3218,12 @@ you want to get results from multiple tables from a @code{SELECT}
statement, you do this by joining tables:
@example
-SELECT * from table1,table2 where table1.id = table2.id;
+SELECT * FROM table1,table2 WHERE table1.id = table2.id;
@end example
@xref{JOIN, , @code{JOIN}}. @xref{example-Foreign keys}.
-In MySQL Server 3.23.44 and up, @code{InnoDB} tables supports checking of
+In MySQL Server 3.23.44 and up, @code{InnoDB} tables support checking of
foreign key constraints. @xref{InnoDB}. For other table types, MySQL Server
does parse the @code{FOREIGN KEY} syntax in @code{CREATE TABLE}
commands, but without further action being taken.
@@ -3295,8 +3275,8 @@ Disadvantages:
@itemize @bullet
@item
-Mistakes, that are easy to make in designing key relations, can cause
-severe problems, for example, circular rules, or the wrong combination
+Mistakes, which are easy to make in designing key relations, can cause
+severe problems@-for example, circular rules, or the wrong combination
of cascading deletes.
@item
@@ -3307,8 +3287,8 @@ down performance for such an application.
@item
It is not uncommon for a DBA to make such a complex topology of
-relations that it becomes very difficult, and in some cases impossible
-to backup or restore individual tables.
+relations that it becomes very difficult, and in some cases impossible,
+to back up or restore individual tables.
@end itemize
@@ -3317,19 +3297,19 @@ to backup or restore individual tables.
@cindex views
-It is planned to implement views in MySQL Server around Version 4.1.
+It is planned to implement views in MySQL Server around version 4.1.
Views are mostly useful for letting users access a set of relations as one
table (in read-only mode). Many SQL databases don't allow one to update
any rows in a view, but you have to do the updates in the separate tables.
-As MySQL Server is mostly used in applications and on web system where
+As MySQL Server is mostly used in applications and on web systems where
the application writer has full control on the database usage, most of
our users haven't regarded views to be very important.
(At least no one has been interested enough in this to be prepared to
-finance the implementation of views).
+finance the implementation of views.)
-One doesn't need views in MySQL Server to restrict access to columns
+One doesn't need views in MySQL Server to restrict access to columns,
as MySQL Server has a very sophisticated privilege system.
@xref{Privilege system}.
@@ -3345,7 +3325,7 @@ MySQL Server has @samp{#} as the start comment character. You can also use
the C comment style @code{/* this is a comment */} with MySQL Server.
@xref{Comments}.
-MySQL Server Version 3.23.3 and above supports the @samp{--} comment style,
+MySQL Server Version 3.23.3 and above support the @samp{--} comment style,
provided the comment is followed by a space. This is because this
comment style has caused many problems with automatically generated
SQL queries that have used something like the following code, where
@@ -3356,7 +3336,7 @@ we automatically insert the value of the payment for
UPDATE tbl_name SET credit=credit-!payment!
@end example
-Think about what happens if the value of @code{payment} is negative?
+Think about what happens if the value of @code{payment} is negative.
Because @code{1--1} is legal in SQL, the consequences of allowing
comments to start with @samp{--} are terrible.
@@ -3367,8 +3347,8 @@ Another safe feature is that the @code{mysql} command-line client
removes all lines that start with @samp{--}.
-The following information is only relevant if you are running a
-MySQL version earlier than Version 3.23.3:
+The following information is relevant only if you are running a
+MySQL version earlier than 3.23.3:
If you have a SQL program in a text file that contains @samp{--}
comments you should use:
@@ -3421,11 +3401,11 @@ see errors like the following in the MySQL error file:
@item
Don't execute @code{ALTER TABLE} on a @code{BDB} table on which you are
-running not completed multi-statement transactions. (The transaction
-will probably be ignored).
+running multi-statement transactions until all those transactions complete.
+(The transaction will probably be ignored.)
@item
-@code{ANALYZE TABLE}, @code{OPTIMIZE TABLE} and @code{REPAIR TABLE} may
+@code{ANALYZE TABLE}, @code{OPTIMIZE TABLE}, and @code{REPAIR TABLE} may
cause problems on tables for which you are using @code{INSERT DELAYED}.
@item
@@ -3441,7 +3421,7 @@ database if you are not using the @code{-A} option or if you are using
cache.
@item
-Th current replication protocol cannot deal with @code{LOAD DATA INFILE}
+The current replication protocol cannot deal with @code{LOAD DATA INFILE}
and line terminator characters of more than 1 character.
@end itemize
@@ -3451,7 +3431,12 @@ The following problems are known and will be fixed in due time:
@item
When using @code{SET CHARACTER SET}, one can't use translated
-characters in database, table and column names.
+characters in database, table, and column names.
+
+@item
+If you have a @code{DECIMAL} column with a number stored in different
+formats (+01.00, 1.00, 01.00), @code{GROUP BY} may regard each value
+as a different value.
@item
@code{DELETE FROM merge_table} used without a @code{WHERE}
@@ -3466,7 +3451,7 @@ likely to fix this. @xref{MIT-pthreads}.
@item
@code{BLOB} values can't ``reliably'' be used in @code{GROUP BY} or
@code{ORDER BY} or @code{DISTINCT}. Only the first @code{max_sort_length}
-bytes (default 1024) are used when comparing @code{BLOB}bs in these cases.
+bytes (default 1024) are used when comparing @code{BLOB}s in these cases.
This can be changed with the @code{-O max_sort_length} option to
@code{mysqld}. A workaround for most cases is to use a substring:
@code{SELECT DISTINCT LEFT(blob,2048) FROM tbl_name}.
@@ -3477,8 +3462,8 @@ normally 64 bits long). It depends on the function which precision one
gets. The general rule is that bit functions are done with @code{BIGINT}
precision, @code{IF}, and @code{ELT()} with @code{BIGINT} or @code{DOUBLE}
precision and the rest with @code{DOUBLE} precision. One should try to
-avoid using bigger unsigned long long values than 63 bits
-(9223372036854775807) for anything else than bit fields!
+avoid using unsigned long long values if they resolve to be bigger than
+63 bits (9223372036854775807) for anything else than bit fields!
MySQL Server 4.0 has better @code{BIGINT} handling than 3.23.
@item
@@ -3491,7 +3476,7 @@ that in MySQL Server, @code{VARCHAR} columns are treated the same way.
You can only have up to 255 @code{ENUM} and @code{SET} columns in one table.
@item
-@code{safe_mysqld} re-directs all messages from @code{mysqld} to the
+@code{safe_mysqld} redirects all messages from @code{mysqld} to the
@code{mysqld} log. One problem with this is that if you execute
@code{mysqladmin refresh} to close and reopen the log,
@code{stdout} and @code{stderr} are still redirected to the old log.
@@ -3513,10 +3498,10 @@ This will update @code{KEY} with @code{2} instead of with @code{1}.
@item
You can't use temporary tables more than once in the same query.
-For example, the following doesn't work.
+For example, the following doesn't work:
@example
-select * from temporary_table, temporary_table as t2;
+mysql> SELECT * FROM temporary_table, temporary_table AS t2;
@end example
@item
@@ -3527,9 +3512,9 @@ select * from temporary_table, temporary_table as t2;
The optimiser may handle @code{DISTINCT} differently if you are using
'hidden' columns in a join or not. In a join, hidden columns are
counted as part of the result (even if they are not shown) while in
-normal queries hidden columns doesn't participate in the @code{DISTINCT}
+normal queries hidden columns don't participate in the @code{DISTINCT}
comparison. We will probably change this in the future to never compare
-the hidden columns when executing @code{DISTINCT}
+the hidden columns when executing @code{DISTINCT}.
An example of this is:
@@ -3549,17 +3534,17 @@ SELECT DISTINCT band_downloads.mp3id
@end example
In the second case you may in MySQL Server 3.23.x get two identical rows
-in the result set (because the hidden 'id' column may differ).
+in the result set (because the hidden @code{id} column may differ).
-Note that the this only happens for queries where you don't have the
-ORDER BY columns in the result, something that is you are not allowed
+Note that this happens only for queries where you don't have the
+ORDER BY columns in the result, something that you are not allowed
to do in ANSI SQL.
@item
Because MySQL Server allows you to work with table types that don't
support transactions, and thus can't @code{rollback} data, some things
behave a little differently in MySQL Server than in other SQL servers.
-This is just to ensure that MySQL Server never need to do a rollback
+This is just to ensure that MySQL Server never needs to do a rollback
for a SQL command. This may be a little awkward at times as column
values must be checked in the application, but this will actually give
you a nice speed increase as it allows MySQL Server to do some
@@ -3582,20 +3567,20 @@ numerical column, MySQL Server will store 0 into it.
If you try to store @code{NULL} into a column that doesn't take
@code{NULL} values, MySQL Server will store 0 or @code{''} (empty
string) in it instead. (This behavior can, however, be changed with the
--DDONT_USE_DEFAULT_FIELDS compile option).
+-DDONT_USE_DEFAULT_FIELDS compile option.)
@item
MySQL allows you to store some wrong date values into
-@code{DATE} and @code{DATETIME} columns. (Like 2000-02-31 or 2000-02-00).
+@code{DATE} and @code{DATETIME} columns (like 2000-02-31 or 2000-02-00).
If the date is totally wrong, MySQL Server will store the special
0000-00-00 date value in the column.
@item
If you set an @code{ENUM} column to an unsupported value, it will be set to
-the error value 'empty string', with numeric value 0.
+the error value @code{empty string}, with numeric value 0.
@item
-If you set an @code{SET} column to an unsupported value, the value will
+If you set a @code{SET} column to an unsupported value, the value will
be ignored.
@end itemize
@@ -3609,20 +3594,20 @@ Creation of a table of type @code{MERGE} doesn't check if the underlying
tables are of compatible types.
@item
-MySQL Server can't yet handle @code{NaN}, @code{-Inf} and @code{Inf}
+MySQL Server can't yet handle @code{NaN}, @code{-Inf}, and @code{Inf}
values in double. Using these will cause problems when trying to export
and import data. We should as an intermediate solution change @code{NaN} to
@code{NULL} (if possible) and @code{-Inf} and @code{Inf} to the
-Minimum respective maximum possible @code{double} value.
+minimum respective maximum possible @code{double} value.
@item
@code{LIMIT} on negative numbers are treated as big positive numbers.
@item
-If you use @code{ALTER TABLE} to first add an @code{UNIQUE} index to a
+If you use @code{ALTER TABLE} to first add a @code{UNIQUE} index to a
table used in a @code{MERGE} table and then use @code{ALTER TABLE} to
add a normal index on the @code{MERGE} table, the key order will be
-different for the tables if there was an old not-unique key in the
+different for the tables if there was an old key that was not unique in the
table. This is because @code{ALTER TABLE} puts @code{UNIQUE} keys before
normal keys to be able to detect duplicate keys as early as possible.
@end itemize
@@ -3642,10 +3627,10 @@ In the following case you can get a core dump:
Delayed insert handler has pending inserts to a table.
@item
-@code{LOCK table} with @code{WRITE}
+@code{LOCK table} with @code{WRITE}.
@item
-@code{FLUSH TABLES}
+@code{FLUSH TABLES}.
@end itemize
@item
@@ -3663,7 +3648,7 @@ A workaround is to use:
mysql> UPDATE tbl_name SET KEY=KEY+1 WHERE KEY+0 > 100;
@end example
-This will work because MySQL Server will not use index on expressions in
+This will work because MySQL Server will not use an index on expressions in
the @code{WHERE} clause.
@item
@@ -3686,7 +3671,7 @@ For platform-specific bugs, see the sections about compiling and porting.
* TODO MySQL 4.1:: Things That Should be in 4.1
* TODO future:: Things That Must be Done in the Near Future
* TODO sometime:: Things That Have to be Done Sometime
-* TODO unplanned:: Things we don't Have any Plans to do
+* TODO unplanned:: Things We Have No Plans to do
@end menu
This appendix lists the features that we plan to implement in MySQL Server.
@@ -3697,13 +3682,13 @@ tell us what you want to have done more quickly. @xref{Licensing and Support}.
The plan is that we in the future will support the full ANSI SQL99
standard, but with a lot of useful extensions. The challenge is to do
-this without sacrifying the speed or compromise the code.
+this without sacrifying the speed or compromising the code.
@node TODO MySQL 4.0, TODO MySQL 4.1, TODO, TODO
@subsection Things That Should be in 4.0
-We are now in the final stages one the development of the MySQL Server
+We are now in the final stages of the development of the MySQL Server
4.0. server. The target is to quickly implement the rest of the
following features and then shift development to MySQL Server
4.1. @xref{MySQL 4.0 In A Nutshell}.
@@ -3712,7 +3697,7 @@ The news section for 4.0 includes a list of the features we have already
implemented in the 4.0 tree. @xref{News-4.0.x}.
This section lists features not yet implemented in the current version
-of MySQL Server 4.0, which will however be implemented in later versions
+of MySQL Server 4.0, which will, however, be implemented in later versions
of MySQL 4.0. This being very volatile information, please consider this
list valid only if you are reading it from the MySQL web site
(@uref{http://www.mysql.com/}).
@@ -3721,20 +3706,20 @@ list valid only if you are reading it from the MySQL web site
@item
Allow users to change startup options without taking down the server.
@item
-Better command line argument handling.
+Better command-line argument handling.
@item
New key cache, which will give better performance when using many threads.
@item
-New table definition file format (@file{.frm} files) This will enable us
+New table definition file format (@file{.frm} files). This will enable us
to not run out of bits when adding more table options. One will still
be able to use the old @file{.frm} file format with 4.0. All newly created
tables will, however, use the new format.
The new file format will enable us to add new column types, more options
-for keys and possible to store and retrieve @code{FOREIGN KEY} definitions.
+for keys, and possibly to store and retrieve @code{FOREIGN KEY} definitions.
@item
@code{SHOW COLUMNS FROM table_name} (used by @code{mysql} client to allow
-expansions of column names) should not open the table, but only the
+expansions of column names) should not open the table, only the
definition file. This will require less memory and be much faster.
@item
@code{SET SQL_DEFAULT_TABLE_TYPE=[MyISAM | INNODB | BDB | HEAP]}.
@@ -3744,7 +3729,7 @@ definition file. This will require less memory and be much faster.
@node TODO MySQL 4.1, TODO future, TODO MySQL 4.0, TODO
@subsection Things That Should be in 4.1
-The following features is the ones we plan that should be in MySQL 4.1.
+The following features are planned for inclusion into MySQL 4.1.
Note that because we have many developers that are working on different
projects, there will also be many additional features. There is also a
small chance that some of these features will be added to MySQL 4.0.
@@ -3757,7 +3742,7 @@ Subqueries.
@item
Foreign keys, including cascading delete.
@item
-Fail safe replication.
+Fail-safe replication.
@item
Replication should work with @code{RAND()} and user variables @code{@@var}.
@item
@@ -3765,7 +3750,7 @@ Online backup with very low performance penalty. The online backup will
make it easy to add a new replication slave without taking down the
master.
@item
-Derived tables.
+Derived tables:
@example
SELECT a.col1, b.col2
FROM (SELECT MAX(col1) AS col1 FROM root_table) a,
@@ -3782,19 +3767,19 @@ the @file{.MYD} file.
@item
When using @code{SET CHARACTER SET} we should translate the whole query
at once and not only strings. This will enable users to use the translated
-characters in database, table and column names.
+characters in database, table, and column names.
@item
Add @code{record_in_range()} method to @code{MERGE} tables to be
-able to choose the right index when there is many to choose from. We should
+able to choose the right index when there are many to choose from. We should
also extend the info interface to get the key distribution for each index,
-if @code{analyze} is run on all sub tables.
+if @code{analyze} is run on all subtables.
@item
@code{RENAME TABLE} on a table used in an active @code{MERGE} table may
corrupt the table.
@item
-A faster, smaller embedded MySQL library. (Compatible with the old one)
+A faster, smaller embedded MySQL library. (Compatible with the old one.)
@item
-Stable openssl support. (MySQL 4.0 supports rudimentary, not 100 % tested
+Stable openssl support. (MySQL 4.0 supports rudimentary, not 100% tested,
support for openssl).
@item
Add support for sorting on @code{UNICODE}.
@@ -3804,7 +3789,7 @@ Character set casts and syntax for handling multiple character sets.
Help for all commands from the client.
@item
New faster client/server protocol which will support prepared statements,
-bound parameters and bound result columns, binary transfer of data,
+bound parameters, and bound result columns, binary transfer of data,
warnings...
@item
Add database and real table name (in case of alias) to the MYSQL_FIELD
@@ -3825,14 +3810,14 @@ we do with the @code{RENAME} command.
Drop the old database.
@end itemize
@item
-Add true @code{VARCHAR} support (There is already support for this in
+Add true @code{VARCHAR} support (there is already support for this in
@code{MyISAM}).
@item
Optimise @code{BIT} type to take 1 bit (now @code{BIT} takes 1 char).
@item
New internal file interface change. This will make all file handling much
-more general and make it easier to add extensions like RAID nicely.
-(The current implementation is a hack).
+more general and make it easier to add extensions like RAID.
+(the current implementation is a hack.)
@item
Better in-memory (@code{HEAP}) tables:
@itemize @bullet
@@ -3851,7 +3836,7 @@ Faster row handling (less copying)
@itemize @bullet
@item
-Atomic multi-table updates, eg @code{update items,month set
+Atomic multi-table updates@-e.g., @code{update items,month set
items.price=month.price where items.id=month.id;};
@item
Don't allow more than a defined number of threads to run MyISAM recover
@@ -3867,7 +3852,7 @@ Multiple result sets.
Make it possible to specify @code{long_query_time} with a granularity
in microseconds.
@item
-Add a configurable prompt to the @code{mysql} command line client, with
+Add a configurable prompt to the @code{mysql} command-line client, with
options like database in use, time and date...
@item
Link the @code{myisampack} code into the server.
@@ -3885,11 +3870,11 @@ If you perform an @code{ALTER TABLE} on a table that is symlinked to another
disk, create temporary tables on this disk.
@item
Implement a @code{DATE/DATETIME} type that handles time zone information
-properly, so that dealing with dates in different time zones is easier.
+properly so that dealing with dates in different time zones is easier.
@item
-FreeBSD and MIT-pthreads; Do sleeping threads take CPU?
+FreeBSD and MIT-pthreads; do sleeping threads take CPU time?
@item
-Check if locked threads take any CPU.
+Check if locked threads take any CPU time.
@item
Fix configure so that one can compile all libraries (like @code{MyISAM})
without threads.
@@ -3902,9 +3887,9 @@ Allow join on key parts (optimisation issue).
@code{INSERT SQL_CONCURRENT} and @code{mysqld --concurrent-insert} to do
a concurrent insert at the end of the file if the file is read-locked.
@item
-Server side cursors.
+Server-side cursors.
@item
-Check if @code{lockd} works with modern Linux kernels; If not, we have
+Check if @code{lockd} works with modern Linux kernels; if not, we have
to fix @code{lockd}! To test this, start @code{mysqld} with
@code{--enable-locking} and run the different fork* test suits. They shouldn't
give any errors if @code{lockd} works.
@@ -3912,11 +3897,11 @@ give any errors if @code{lockd} works.
Allow SQL variables in @code{LIMIT}, like in @code{LIMIT @@a,@@b}.
@item
Allow update of variables in @code{UPDATE} statements. For example:
-@code{UPDATE TABLE foo SET @@a=a+b,a=@@a, b=@@a+c}
+@code{UPDATE TABLE foo SET @@a=a+b,a=@@a, b=@@a+c}.
@item
Change when user variables are updated so that one can use them with
@code{GROUP BY}, as in the following example:
-@code{SELECT id, @@a:=count(*), sum(sum_col)/@@a FROM table_name GROUP BY id}.
+@code{SELECT id, @@a:=COUNT(*), SUM(sum_col)/@@a FROM table_name GROUP BY id}.
@item
Don't add automatic @code{DEFAULT} values to columns. Give an error when using
an @code{INSERT} that doesn't contain a column that doesn't have a
@@ -3938,74 +3923,74 @@ entries matching that primary key are updated from the remainder of the
columns. However, columns @strong{missing} from the incoming data feed are not
touched.
@item
-For tables tables with primary keys that are missing some part of the key
+For tables with primary keys that are missing some part of the key
in the incoming data stream, or that have no primary key, the feed is
-treated as a @code{LOAD DATA INFILE ... REPLACE INTO} is now.
+treated as a @code{LOAD DATA INFILE ... REPLACE INTO} now.
@end itemize
@item
Make @code{LOAD DATA INFILE} understand syntax like:
@example
LOAD DATA INFILE 'file_name.txt' INTO TABLE tbl_name
TEXT_FIELDS (text_field1, text_field2, text_field3)
- SET table_field1=concatenate(text_field1, text_field2),
+ SET table_field1=CONCAT(text_field1, text_field2),
table_field3=23
IGNORE text_field3
@end example
This can be used to skip over extra columns in the text file,
-or update columns based on expressions of the read data...
+or update columns based on expressions of the read data.
@item
-@code{LOAD DATA INFILE 'file_name' INTO TABLE 'table_name' ERRORS TO err_table_name}
+@code{LOAD DATA INFILE 'file_name' INTO TABLE 'table_name' ERRORS TO err_table_name}.
This would cause any errors and warnings to be logged into the
@code{err_table_name} table. That table would have a structure like:
@example
-line_number - line number in data file
+line_number - line number in datafile
error_message - the error/warning message
and maybe
-data_line - the line from the data file
+data_line - the line from the datafile
@end example
@item
Automatic output from @code{mysql} to Netscape.
@item
-@code{LOCK DATABASES}. (with various options)
+@code{LOCK DATABASES} (with various options.)
@item
@code{DECIMAL} and @code{NUMERIC} types can't read exponential numbers;
@code{Field_decimal::store(const char *from,uint len)} must be recoded
to fix this.
@item
Functions:
-ADD_TO_SET(value,set) and REMOVE_FROM_SET(value,set)
+ADD_TO_SET(value,set) and REMOVE_FROM_SET(value,set).
@item
Add use of @code{t1 JOIN t2 ON ...} and @code{t1 JOIN t2 USING ...}
Currently, you can only use this syntax with @code{LEFT JOIN}.
@item
Many more variables for @code{show status}. Records reads and
-updated. Selects on 1 table and selects with joins. Mean number of
+updates. Selects on 1 table and selects with joins. Mean number of
tables in select. Number of @code{ORDER BY} and @code{GROUP BY} queries.
@item
If you abort @code{mysql} in the middle of a query, you should open
another connection and kill the old running query.
Alternatively, an attempt should be made to detect this in the server.
@item
-Add a handler interface for table information so you can use it as a system
+Add a handler interface for table information so that you can use it as a system
table. This would be a bit slow if you requested information about all tables,
but very flexible. @code{SHOW INFO FROM tbl_name} for basic table information
should be implemented.
@item
@code{NATURAL JOIN}.
@item
-Allow @code{select a from crash_me left join crash_me2 using (a)}; In this
+Allow @code{SELECT a FROM crash_me LEFT JOIN crash_me2 USING (a)}; in this
case @code{a} is assumed to come from the @code{crash_me} table.
@item
-Fix that @code{ON} and @code{USING} works with the @code{JOIN}
+Fix so that @code{ON} and @code{USING} works with the @code{JOIN}
join type.
@item
-Oracle like @code{CONNECT BY PRIOR ...} to search hierarchy structures.
+Oracle-like @code{CONNECT BY PRIOR ...} to search hierarchy structures.
@item
-@code{mysqladmin copy database new-database}; Requires @code{COPY}
-command to be added to @code{mysqld}
+@code{mysqladmin copy database new-database}; requires @code{COPY}
+command to be added to @code{mysqld}.
@item
-Processlist should show number of queries/thread.
+Processlist should show number of queries/threads.
@item
@code{SHOW HOSTS} for printing information about the hostname cache.
@item
@@ -4018,45 +4003,45 @@ Add all missing ANSI92 and ODBC 3.0 types.
@item
Change table names from empty strings to @code{NULL} for calculated columns.
@item
-Don't use 'Item_copy_string' on numerical values to avoid
+Don't use @code{Item_copy_string} on numerical values to avoid
number->string->number conversion in case of:
@code{SELECT COUNT(*)*(id+0) FROM table_name GROUP BY id}
@item
Make it possible to use the new GNU regexp library instead of the current
-one (The GNU library should be much faster than the old one).
+one (the GNU library should be much faster than the old one).
@item
-Change that @code{ALTER TABLE} doesn't abort clients that executes
-@code{INSERT DELAYED}.
+Change so that @code{ALTER TABLE} doesn't abort clients
+that execute @code{INSERT DELAYED}.
@item
-Fix that when columns referenced in an @code{UPDATE} clause contains the old
-values before the update started.
+Fix so that when columns are referenced in an @code{UPDATE} clause,
+they contain the old values from before the update started.
@item
Add simulation of @code{pread()}/@code{pwrite()} on Windows to enable
concurrent inserts.
@item
-A logfile analyser that could parsed out information about which tables
+A logfile analyser that could parse out information about which tables
are hit most often, how often multi-table joins are executed, etc. It
should help users identify areas or table design that could be optimised
to execute much more efficient queries.
@item
-Add @code{SUM(DISTINCT)}
+Add @code{SUM(DISTINCT)}.
@item
-Add @code{ANY()},@code{EVERY()} and @code{SOME()} group functions. In
-ANSI SQL these only works on boolean columns, but we can extend these to
+Add @code{ANY()}, @code{EVERY()}, and @code{SOME()} group functions. In
+ANSI SQL these work only on boolean columns, but we can extend these to
work on any columns/expressions by applying: value == 0 -> FALSE and
value <> 0 -> TRUE.
@item
-Fix that the type for @code{MAX(column)} is the same as the column type.
+Fix that the type for @code{MAX(column)} is the same as the column type:
@example
-create table t1 (a DATE);
-insert into t1 values (now());
-create table t2 select MAX(a) from t1;
-show columns from t2;
+mysql> CREATE TABLE t1 (a DATE);
+mysql> INSERT INTO t1 VALUES (NOW());
+mysql> CREATE TABLE t2 SELECT MAX(a) FROM t1;
+mysql> SHOW COLUMNS FROM t2;
@end example
@item
Come up with a nice syntax for a statement that will @code{UPDATE} the row
-if it exists and @code{INSERT} a new row if the row didn't exist.
-(Like @code{REPLACE} works with @code{INSERT} / @code{DELETE})
+if it exists and @code{INSERT} a new row if the row didn't exist
+(like @code{REPLACE} works with @code{INSERT} / @code{DELETE}).
@end itemize
@@ -4065,15 +4050,15 @@ if it exists and @code{INSERT} a new row if the row didn't exist.
@itemize @bullet
@item
-Implement function: @code{get_changed_tables(timeout,table1,table2,...)}
+Implement function: @code{get_changed_tables(timeout,table1,table2,...)}.
@item
Change reading through tables to use memmap when possible. Now only
compressed tables use memmap.
@item
-Add a new privilege @strong{'Show_priv'} for @code{SHOW} commands.
+Add a new privilege @code{Show_priv} for @code{SHOW} commands.
@item
Make the automatic timestamp code nicer. Add timestamps to the update
-log with @code{SET TIMESTAMP=#;}
+log with @code{SET TIMESTAMP=#;}.
@item
Use read/write mutex in some places to get more speed.
@item
@@ -4082,7 +4067,7 @@ language first.
@item
Simple views (first on one table, later on any expression).
@item
-Automatically close some tables if a table, temporary table or temporary files
+Automatically close some tables if a table, temporary table, or temporary files
gets error 23 (not enough open files).
@item
When one finds a field=#, change all occurrences of field to #. Now this
@@ -4101,10 +4086,10 @@ better error messages (5 days).
Change the parser to use only one rule per different number of arguments
in function.
@item
-Use of full calculation names in the order part. (For ACCESS97)
+Use of full calculation names in the order part (for ACCESS97).
@item
-@code{MINUS}, @code{INTERSECT} and @code{FULL OUTER JOIN}.
-(Currently @code{UNION} (in 4.0) and @code{LEFT OUTER JOIN} are supported)
+@code{MINUS}, @code{INTERSECT}, and @code{FULL OUTER JOIN}.
+(Currently @code{UNION} [in 4.0] and @code{LEFT OUTER JOIN} are supported.)
@item
@code{SQL_OPTION MAX_SELECT_TIME=#} to put a time limit on a query.
@item
@@ -4139,7 +4124,7 @@ Use @code{NULL} instead.
@item
Add full support for @code{JOIN} with parentheses.
@item
-As an alternative for one thread / connection manage a pool of threads
+As an alternative for one thread/connection manage a pool of threads
to handle the queries.
@item
Allow one to get more than one lock with @code{GET_LOCK}. When doing this,
@@ -4150,11 +4135,11 @@ Time is given according to amount of work, not real time.
@node TODO unplanned, , TODO sometime, TODO
-@subsection Things we don't Have any Plans to do
+@subsection Things We Have No Plans to do
@itemize @bullet
@item
-Nothing; We aim towards full ANSI 92 / ANSI 99 compliancy.
+Nothing; we aim toward full ANSI 92/ANSI 99 compliancy.
@end itemize
@@ -4167,12 +4152,12 @@ Nothing; We aim towards full ANSI 92 / ANSI 99 compliancy.
Our users have successfully run their own benchmarks against a number
of @code{Open Source} and traditional database servers.
We are aware of tests against @code{Oracle} server, @code{DB/2} server,
-@code{Microsoft SQL Server} and other commercial products.
+@code{Microsoft SQL Server}, and other commercial products.
Due to legal reasons we are restricted from publishing some of those
benchmarks in our reference manual.
This section includes a comparison with @code{mSQL} for historical
-reasons and with @code{PostgreSQL} as it is also an Open Source
+reasons and with @code{PostgreSQL} as it is also an @code{Open Source}
database. If you have benchmark results that we can publish, please
contact us at @email{benchmarks@@mysql.com}.
@@ -4232,7 +4217,7 @@ Retrieving large results (MySQL Server has a better, faster, and safer
protocol).
@item
-Tables with variable-length strings, because MySQL Server has more efficient
+Tables with variable-length strings because MySQL Server has more efficient
handling and can have indexes on @code{VARCHAR} columns.
@item
@@ -4261,7 +4246,7 @@ next can be served, while all the others wait again, etc.
Joins.
@code{mSQL} can become pathologically slow if you change the order of
tables in a @code{SELECT}. In the benchmark suite, a time more than
-15000 times slower than MySQL Server was seen. This is due to @code{mSQL}'s
+15,000 times slower than MySQL Server was seen. This is due to @code{mSQL}'s
lack of a join optimiser to order tables in the optimal order.
However, if you put the tables in exactly the right order in
@code{mSQL}2 and the @code{WHERE} is simple and uses index columns,
@@ -4303,7 +4288,7 @@ mysql> UPDATE SET x=x*10+y WHERE x<20;
MySQL Server has column aliasing.
@item Qualifying column names.
-In MySQ ServerL, if a column name is unique among the tables used in a
+In MySQL Server, if a column name is unique among the tables used in a
query, you do not have to use the full qualifier.
@item @code{SELECT} with functions.
@@ -4314,10 +4299,10 @@ MySQL Server has many functions (too many to list here; see @ref{Functions}).
@item Disk Space Efficiency
That is, how small can you make your tables?
-MySQ ServerL has very precise types, so you can create tables that take
+MySQL Server has very precise types, so you can create tables that take
very little space. An example of a useful MySQL datatype is the
-@code{MEDIUMINT} that is 3 bytes long. If you have 100,000,000
-records, saving even one byte per record is very important.
+@code{MEDIUMINT} that is 3 bytes long. If you have 100 million
+records, saving even 1 byte per record is very important.
@code{mSQL2} has a more limited set of column types, so it is
more difficult to get small tables.
@@ -4344,28 +4329,28 @@ MySQL Server currently has a lot of different JDBC drivers:
@itemize @bullet
@item
-The mm driver: A type 4 JDBC driver by Mark Matthews
+The mm driver: a type 4 JDBC driver by Mark Matthews
@email{mmatthew@@ecn.purdue.edu}. This is released under the LGPL.
@item
-The Resin driver. This is a commercial JDBC driver released under open
+The Resin driver: this is a commercial JDBC driver released under open
source. @uref{http://www.caucho.com/projects/jdbc-mysql/index.xtp}
@item
-The gwe driver: A Java interface by GWE technologies (not supported anymore).
+The gwe driver: a Java interface by GWE technologies (not supported anymore).
@item
-The jms driver: An improved gwe driver by Xiaokun Kelvin ZHU
+The jms driver: an improved gwe driver by Xiaokun Kelvin ZHU
@email{X.Zhu@@brad.ac.uk} (not supported anymore).
@item
-The twz driver: A type 4 JDBC driver by Terrence W. Zellers
+The twz driver: a type 4 JDBC driver by Terrence W. Zellers
@email{zellert@@voicenet.com}. This is commercial but is free for private
and educational use (not supported anymore).
@end itemize
The recommended driver is the mm driver. The Resin driver may also be
-good (at least the benchmarks looks good), but we haven't received that
+good (at least the benchmarks look good), but we haven't received that
much information about this yet.
We know that @code{mSQL} has a JDBC driver, but we have too little
@@ -4385,7 +4370,7 @@ most rapidly.
Both @code{mSQL} and MySQL Server have many interesting third-party
tools. Because it is very easy to port upward (from @code{mSQL} to
MySQL Server), almost all the interesting applications that are available for
-@code{mSQL} are also available for MySQ ServerL.
+@code{mSQL} are also available for MySQL Server.
MySQL Server comes with a simple @code{msql2mysql} program that fixes
differences in spelling between @code{mSQL} and MySQL Server for the
@@ -4466,7 +4451,7 @@ There are enough differences that it is impossible
(or at least not easy) to support both.
The most significant ways in which the MySQL protocol differs
-from the @code{mSQL} protocol are listed below:
+from the @code{mSQL} protocol are listed here:
@itemize @bullet
@item
@@ -4522,7 +4507,7 @@ MySQL Server also supports
the following additional type attributes:
@itemize @bullet
@item
-@code{UNSIGNED} option for integer and floating point columns.
+@code{UNSIGNED} option for integer and floating-point columns.
@item
@code{ZEROFILL} option for integer columns.
@item
@@ -4533,8 +4518,8 @@ the following additional type attributes:
@code{DEFAULT} value for all columns.
@end itemize
@item mSQL2
-@code{mSQL} column types correspond to the MySQL types shown below:
-@multitable @columnfractions .15 .65
+@code{mSQL} column types correspond to the MySQL types shown in the following table:
+@multitable @columnfractions .15 .70
@item @code{mSQL} @strong{type} @tab @strong{Corresponding MySQL type}
@item @code{CHAR(len)} @tab @code{CHAR(len)}
@item @code{TEXT(len)} @tab @code{TEXT(len)}. @code{len} is the maximal length.
@@ -4634,7 +4619,7 @@ sorting in ASCII order.
@item MySQL Server
@code{LIKE} is a case-insensitive or case-sensitive operator, depending on
the columns involved. If possible, MySQL uses indexes if the
-@code{LIKE} argument doesn't start with a wild-card character.
+@code{LIKE} argument doesn't start with a wildcard character.
@item mSQL
Use @code{CLIKE}.
@end table
@@ -4657,7 +4642,7 @@ Retains trailing space.
@item MySQL Server
MySQL correctly prioritises everything (@code{AND} is evaluated
before @code{OR}). To get @code{mSQL} behavior in MySQL Server, use
-parentheses (as shown in an example below).
+parentheses (as shown in an example later in this section).
@item mSQL
Evaluates everything from left to right. This means that some logical
calculations with more than three arguments cannot be expressed in any
@@ -4694,18 +4679,18 @@ users.
When reading the following, please note that both products are continually
evolving. We at MySQL AB and the PostgreSQL developers are both working
-on making our respective database as good as possible, so we are both a
+on making our respective databases as good as possible, so we are both a
serious alternative to any commercial database.
The following comparison is made by us at MySQL AB. We have tried to be
-as accurate and fair as possible, but because while we know MySQL Server thorougly
+as accurate and fair as possible, but although we know MySQL Server thoroughly,
we don't have a full knowledge of all PostgreSQL features, so we may have
-got some things wrong. We will however correct these when they come to our
+got some things wrong. We will, however, correct these when they come to our
attention.
We would first like to note that PostgreSQL and MySQL Server are both widely used
products, but with different design goals, even if we are both striving
-towards ANSI SQL compliancy. This means that for some applications MySQL Server
+toward ANSI SQL compliancy. This means that for some applications MySQL Server
is more suited, while for others PostgreSQL is more suited. When choosing
which database to use, you should first check if the database's feature set
satisfies your application. If you need raw speed, MySQL Server is probably your
@@ -4736,7 +4721,7 @@ MySQL server.
We at MySQL AB believe in frequent releases to be able to push out new
features quickly to our users. Because of this we do a new small release
about every three weeks, and a major branch every year. All releases are
-throughly tested with our testing tools on a lot of different platforms.
+thoroughly tested with our testing tools on a lot of different platforms.
PostgreSQL is based on a kernel with lots of contributors. In this setup
it makes sense to prioritise adding a lot of new features, instead of
@@ -4744,18 +4729,18 @@ implementing them optimally, because one can always optimise things
later if there arises a need for this.
Another big difference between MySQL Server and PostgreSQL is that
-nearly all of the code in the MySQL server are coded by developers that
+nearly all of the code in the MySQL server is coded by developers that
are employed by MySQL AB and are still working on the server code. The
-exceptions are the transaction engines, and the regexp library.
+exceptions are the transaction engines and the regexp library.
-This is in sharp contrast to the PostgreSQL code where the majority of
-the code is coded by a big group of people with different backgrounds.
+This is in sharp contrast to the PostgreSQL code, the majority of
+which is coded by a big group of people with different backgrounds.
It was only recently that the PostgreSQL developers announced that their
current developer group had finally had time to take a look at all
the code in the current PostgreSQL release.
-Both of the above development methods have their own merits and drawbacks.
-We here at MySQL AB think of course that our model is better because our
+Both of the aforementioned development methods have their own merits and drawbacks.
+We here at MySQL AB think, of course, that our model is better because our
model gives better code consistency, more optimal and reusable code, and
in our opinion, fewer bugs. Because we are the authors of the MySQL server
code, we are better able to coordinate new features and releases.
@@ -4769,10 +4754,10 @@ code, we are better able to coordinate new features and releases.
On the crash-me page
(@uref{http://www.mysql.com/information/crash-me.php})
you can find a list of those database constructs and limits that
-one can detect automatically with a program. Note however that a lot of
-the numerical limits may be changed with startup options for respective
-database. The above web page is however extremely useful when you want to
-ensure that your applications works with many different databases or
+one can detect automatically with a program. Note, however, that a lot of
+the numerical limits may be changed with startup options for their respective
+databases. This web page is, however, extremely useful when you want to
+ensure that your applications work with many different databases or
when you want to convert your application from one database to another.
MySQL Server offers the following advantages over PostgreSQL:
@@ -4784,11 +4769,11 @@ MySQL Server offers the following advantages over PostgreSQL:
mostly-read-only sites many times.
@item
-MySQL has a much larger user base than PostgreSQL, therefore the code is
-more tested and has historically proven more stable than PostgreSQL.
-MySQL Server is more used in production environments than PostgreSQL,
-mostly thanks to that MySQL AB, formerly TCX DataKonsult AB, has
-provided top quality commercial support for MySQL Server from the day it
+MySQL has a much larger user base than PostgreSQL. Therefore, the code is
+tested more and has historically proven more stable than PostgreSQL.
+MySQL Server is used more in production environments than PostgreSQL,
+mostly thanks to the fact that MySQL AB, formerly TCX DataKonsult AB, has
+provided top-quality commercial support for MySQL Server from the day it
was released, whereas until recently PostgreSQL was unsupported.
@item
@@ -4803,7 +4788,7 @@ MySQL has more APIs to other languages and is supported by more
existing programs than PostgreSQL. @xref{Contrib}.
@item
-MySQL Server works on 24/7 heavy duty systems. In most circumstances
+MySQL Server works on 24/7 heavy-duty systems. In most circumstances
you never have to run any cleanups on MySQL Server. PostgreSQL doesn't
yet support 24/7 systems because you have to run @code{VACUUM}
once in a while to reclaim space from @code{UPDATE} and @code{DELETE}
@@ -4812,8 +4797,8 @@ good performance with PostgreSQL. @code{VACUUM} is also needed after
adding a lot of new rows to a table. On a busy system with lots of changes,
@code{VACUUM} must be run very frequently, in the worst cases even
many times a day. During the @code{VACUUM} run, which may take hours
-if the database is big, the database is from a production standpoint,
-practically dead. Please note: In PostgreSQL version 7.2, basic vacuuming
+if the database is big, the database is, from a production standpoint,
+practically dead. Please note: in PostgreSQL version 7.2, basic vacuuming
no longer locks tables, thus allowing normal user access during the vacuum.
A new @code{VACUUM FULL} command does old-style vacuum by locking the table
and shrinking the on-disk copy of the table.
@@ -4834,14 +4819,14 @@ as a benchmark suite. The test system is actively updated with code to
test each new feature and almost all reproduceable bugs that have come to
our attention. We test MySQL Server with these on a lot of platforms before
every release. These tests are more sophisticated than anything we have
-seen from PostgreSQL, and they ensures that the MySQL Server is kept to a high
+seen from PostgreSQL, and they ensure that the MySQL Server is kept to a high
standard.
@item
There are far more books in print about MySQL Server than about PostgreSQL.
O'Reilly, SAMS, Que, and New Riders are all major publishers with books
-about MySQL. All MySQL features are also documented in the MySQL on-line
-manual, because when a new feature is implemented, the MySQL developers
+about MySQL. All MySQL features are also documented in the MySQL online
+manual because when a new feature is implemented, the MySQL developers
are required to document it before it's included in the source.
@item
@@ -4852,12 +4837,12 @@ MySQL Server has a much more sophisticated @code{ALTER TABLE}.
@item
MySQL Server has support for tables without transactions for applications that
-need all speed they can get. The tables may be memory based, @code{HEAP}
+need all the speed they can get. The tables may be memory-based, @code{HEAP}
tables or disk based @code{MyISAM}. @xref{Table types}.
@item
MySQL Server has support for two different table handlers that support
-transactions, @code{InnoDB} and @code{BerkeleyDB}. Because every
+transactions, @code{InnoDB}, and @code{BerkeleyDB}. Because every
transaction engine performs differently under different conditions, this
gives the application writer more options to find an optimal solution for
his or her setup, if need be per individual table. @xref{Table types}.
@@ -4865,7 +4850,7 @@ his or her setup, if need be per individual table. @xref{Table types}.
@item
@code{MERGE} tables gives you a unique way to instantly make a view over
a set of identical tables and use these as one. This is perfect for
-systems where you have log files that you order for example by month.
+systems where you have log files that you order, for example, by month.
@xref{MERGE}.
@item
@@ -4878,14 +4863,14 @@ reads. This is very useful when you are archiving things.
MySQL Server has internal support for full-text search. @xref{Fulltext Search}.
@item
-You can access many databases from the same connection (depending of course
+You can access many databases from the same connection (depending, of course,
on your privileges).
@item
-MySQL Server is coded from the start to be multi-threaded while
+MySQL Server is coded from the start to be multi-threaded, while
PostgreSQL uses processes. Context switching and access to common
storage areas is much faster between threads than between separate
-processes, this gives MySQL Server a big speed advantage in multi-user
+processes. This gives MySQL Server a big speed advantage in multi-user
applications and also makes it easier for MySQL Server to take full
advantage of symmetric multiprocessor (SMP) systems.
@@ -4894,7 +4879,7 @@ MySQL Server has a much more sophisticated privilege system than
PostgreSQL. While PostgreSQL only supports @code{INSERT},
@code{SELECT}, and @code{UPDATE/DELETE} grants per user on a database or
a table, MySQL Server allows you to define a full set of different
-privileges on database, table and column level. MySQL Server also
+privileges on the database, table, and column level. MySQL Server also
allows you to specify the privilege on host and user combinations.
@xref{GRANT}.
@@ -4909,14 +4894,14 @@ low-level table types to be called from the SQL engine, and each table
type can be optimised for different performance characteristics.
@item
-All MySQL table types (except @strong{InnoDB}) are implemented as files
-(one table per file), which makes it really easy to backup, move, delete
+All MySQL table types (except @code{InnoDB}) are implemented as files
+(one table per file), which makes it really easy to back up, move, delete,
and even symlink databases and tables, even when the server is down.
@item
-Tools to repair and optimise @strong{MyISAM} tables (the most common
+Tools to repair and optimise @code{MyISAM} tables (the most common
MySQL table type). A repair tool is only needed when a physical corruption
-of a data file happens, usually from a hardware failure. It allows a
+of a datafile happens, usually from a hardware failure. It allows a
majority of the data to be recovered.
@item
@@ -4941,20 +4926,20 @@ optimal binary that works in all cases.
@item
Table locking, as used by the non-transactional @code{MyISAM} tables, is
-in many cases faster than page locks, row locks or versioning. The
-drawback however is that if one doesn't take into account how table
+in many cases faster than page locks, row locks, or versioning. The
+drawback, however, is that if one doesn't take into account how table
locks work, a single long-running query can block a table for updates
for a long time. This can usually be avoided when designing the
application. If not, one can always switch the trouble table to use one
of the transactional table types. @xref{Table locking}.
@item
-With UDF (user defined functions) one can extend MySQL Server with both normal
+With UDF (user-defined functions) one can extend MySQL Server with both normal
SQL functions and aggregates, but this is not yet as easy or as flexible
as in PostgreSQL. @xref{Adding functions}.
@item
-Updates that run over multiple tables is harder to do in MySQL Server.
+Updates that run over multiple tables are harder to do in MySQL Server.
This will, however, be fixed in MySQL Server 4.0.2 with multi-table
@code{UPDATE} and in MySQL Server 4.1 with subselects. In MySQL Server
4.0 one can use multi-table deletes to delete from many tables at the
@@ -4963,6 +4948,29 @@ same time. @xref{DELETE}.
PostgreSQL currently offers the following advantages over MySQL Server:
+Note that because we know the MySQL road map, we have included in the
+following table the version when MySQL Server should support this feature.
+Unfortunately we couldn't do this for previous comparisons, because we
+don't know the PostgreSQL roadmap.
+
+@multitable @columnfractions .30 .30
+@item @strong{Feature} @tab @strong{MySQL version}
+@item Subselects @tab 4.1
+@item Foreign keys @tab 4.1
+@item Views @tab 5.0
+@item Stored procedures @tab 5.0
+@item Triggers @tab 5.0
+@item Unions @tab 4.0
+@item Full join @tab 4.1
+@item Constraints @tab 4.1 or 5.0
+@item Cursors @tab 4.1 or 5.0
+@item R-trees @tab 4.1 (for MyISAM tables)
+@item Inherited tables @tab Not planned
+@item Extensible type system @tab Not planned
+@end multitable
+
+Other reasons someone may consider using PostgreSQL:
+
@itemize @bullet
@item
Standard usage in PostgreSQL is closer to ANSI SQL in some cases.
@@ -4971,6 +4979,10 @@ Standard usage in PostgreSQL is closer to ANSI SQL in some cases.
One can speed up PostgreSQL by coding things as stored procedures.
@item
+For geographical data, R-trees make PostgreSQL better than MySQL Server.
+(note: MySQL version 4.1 will have R-trees for MyISAM tables).
+
+@item
The PostgreSQL optimiser can do some optimisation that the current MySQL
optimiser can't do. Most notable is doing joins when you don't have the
proper keys in place and doing a join where you are using different keys
@@ -5005,7 +5017,7 @@ in this section.
@cindex PostgreSQL vs. MySQL, benchmarks
-The only open source benchmark that we know of that can be used to
+The only @code{Open Source} benchmark that we know of that can be used to
benchmark MySQL Server and PostgreSQL (and other databases) is our own. It can
be found at @uref{http://www.mysql.com/information/benchmarks.html}.
@@ -5013,7 +5025,7 @@ We have many times asked the PostgreSQL developers and some PostgreSQL
users to help us extend this benchmark to make it the definitive benchmark
for databases, but unfortunately we haven't gotten any feedback for this.
-We the MySQL developers have, because of this, spent a lot of hours to get
+We, the MySQL developers, have, because of this, spent a lot of hours to get
maximum performance from PostgreSQL for the benchmarks, but because we
don't know PostgreSQL intimately, we are sure that there are things that
we have missed. We have on the benchmark page documented exactly how we
@@ -5037,85 +5049,85 @@ When running with PostgreSQL 7.1.1 we could, however, not run with
@code{--fast} because during the @code{INSERT} test, the postmaster (the
PostgreSQL deamon) died and the database was so corrupted that it was
impossible to restart postmaster. After this happened twice, we decided
-to postpone the @code{--fast} test until next PostgreSQL release. The
-details about the machine we run the benchmark can be found on the
+to postpone the @code{--fast} test until the next PostgreSQL release. The
+details about the machine we run the benchmark on can be found on the
benchmark page.
Before going to the other benchmarks we know of, we would like to give
-some background on benchmarks:
+some background on benchmarks.
It's very easy to write a test that shows @strong{any} database to be the best
database in the world, by just restricting the test to something the
database is very good at and not testing anything that the database is
-not good at. If one, after doing this, summarises the result with as
+not good at. If one, after doing this, summarises the result as
a single figure, things are even easier.
This would be like us measuring the speed of MySQL Server compared to PostgreSQL
by looking at the summary time of the MySQL benchmarks on our web page.
Based on this MySQL Server would be more than 40 times faster than PostgreSQL,
-something that is of course not true. We could make things even worse
+something that is, of course, not true. We could make things even worse
by just taking the test where PostgreSQL performs worst and claim that
MySQL Server is more than 2000 times faster than PostgreSQL.
The case is that MySQL does a lot of optimisations that PostgreSQL
-doesn't do. This is of course also true the other way around. An SQL
-optimiser is a very complex thing, and a company could spend years on
+doesn't do. This is, of course, also true the other way around. An SQL
+optimiser is a very complex thing, and a company could spend years
just making the optimiser faster and faster.
When looking at the benchmark results you should look for things that
you do in your application and just use these results to decide which
database would be best suited for your application. The benchmark
-results also shows things a particular database is not good at and should
+results also show things a particular database is not good at and should
give you a notion about things to avoid and what you may have to do in
other ways.
-We know of two benchmark tests that claims that PostgreSQL performs better
+We know of two benchmark tests that claim that PostgreSQL performs better
than MySQL Server. These both where multi-user tests, a test that we here at
MySQL AB haven't had time to write and include in the benchmark suite,
-mainly because it's a big task to do this in a manner that is fair against
+mainly because it's a big task to do this in a manner that is fair to
all databases.
One is the benchmark paid for by Great Bridge, the company that for 16 months
attempted to build a business based on PostgreSQL but now has ceased
-operations. This is the probably worst benchmark we have ever seen anyone
+operations. This is probably the worst benchmark we have ever seen anyone
conduct. This was not only tuned to only test what PostgreSQL is absolutely
-best at, it was also totally unfair against every other database involved in
+best at, but it was also totally unfair to every other database involved in
the test.
@strong{Note}: We know that even some of the main PostgreSQL
developers did not like the way Great Bridge conducted the benchmark, so we
don't blame the PostgreSQL team for the way the benchmark was done.
-This benchmark has been condemned in a lot of postings and newsgroups so
-we will here just shortly repeat some things that were wrong with it.
+This benchmark has been condemned in a lot of postings and newsgroups, so
+here we will just briefly repeat some things that were wrong with it.
@itemize @bullet
@item
-The tests were run with an expensive commercial tool, that makes it
-impossible for an open source company like us to verify the benchmarks,
+The tests were run with an expensive commercial tool that makes it
+impossible for an @code{Open Source} company like us to verify the benchmarks,
or even check how the benchmarks were really done. The tool is not even
a true benchmark tool, but an application/setup testing tool. To refer
-this as a ``standard'' benchmark tool is to stretch the truth a long way.
+to this as a ``standard'' benchmark tool is to stretch the truth a long way.
@item
Great Bridge admitted that they had optimised the PostgreSQL database
(with @code{VACUUM} before the test) and tuned the startup for the tests,
-something they hadn't done for any of the other databases involved. To
+something they hadn't done for any of the other databases involved. They
say ``This process optimises indexes and frees up disk space a bit. The
optimised indexes boost performance by some margin.'' Our benchmarks
clearly indicate that the difference in running a lot of selects on a
database with and without @code{VACUUM} can easily differ by a factor
-of ten.
+of 10.
@item
The test results were also strange. The AS3AP test documentation
mentions that the test does ``selections, simple joins, projections,
-aggregates, one-tuple updates, and bulk updates''.
+aggregates, one-tuple updates, and bulk updates.''
PostgreSQL is good at doing @code{SELECT}s and @code{JOIN}s (especially
-after a @code{VACUUM}, but doesn't perform as well on @code{INSERT}s or
+after a @code{VACUUM}), but doesn't perform as well on @code{INSERT}s or
@code{UPDATE}s. The benchmarks seem to indicate that only @code{SELECT}s
-were done (or very few updates). This could easily explain they good results
+were done (or very few updates). This could easily explain the good results
for PostgreSQL in this test. The bad results for MySQL will be obvious a
bit down in this document.
@@ -5130,12 +5142,12 @@ database itself.
When running the database against Oracle and MS-SQL (Great Bridge has
indirectly indicated the databases they used in the test), they
didn't use the native protocol but instead ODBC. Anyone that has ever
-used Oracle knows that all real application uses the native interface
+used Oracle knows that all real applications use the native interface
instead of ODBC. Doing a test through ODBC and claiming that the results
had anything to do with using the database in a real-world situation can't
be regarded as fair. They should have done two tests with and without ODBC
-to provide the right facts (after having got experts to tune all involved
-databases of course).
+to provide the right facts (after having gotten experts to tune all involved
+databases, of course).
@item
They refer to the TPC-C tests, but they don't mention anywhere that the
@@ -5164,7 +5176,7 @@ Using an old MySQL version when there was a recommended newer one available
@item
Not starting MySQL Server with the right options for heavy multi-user use (the
-default installation of MySQL Server is tuned for minimal resource use).
+default installation of MySQL Server is tuned for minimal resource use)
@end itemize
Great Bridge did run a new test, with our optimised ODBC driver and with
@@ -5174,15 +5186,15 @@ statically linked with a fixed glibc library.
According to what we know, Great Bridge did nothing to ensure that the
other databases were set up correctly to run well in their test
-environment. We are sure however that they didn't contact Oracle or
-Microsoft to ask for their advice in this matter ;)
+environment. We are sure, however, that they didn't contact Oracle or
+Microsoft to ask for their advice in this matter. ;)
@item
The benchmark was paid for by Great Bridge, and they decided to publish
only partial, chosen results (instead of publishing it all).
@end itemize
-Tim Perdue, a long time PostgreSQL fan and a reluctant MySQL user
+Tim Perdue, a long-time PostgreSQL fan and a reluctant MySQL user,
published a comparison on PHPbuilder
(@uref{http://www.phpbuilder.com/columns/tim20001112.php3}).
@@ -5200,8 +5212,8 @@ how to fix this and Tim should be aware of this problem.
The other possible problem could have been an old glibc library and
that Tim didn't use a MySQL binary from our site, which is linked with
-a corrected glibc library, but had compiled a version of his own with.
-In any of the above cases, the symptom would have been exactly what Tim
+a corrected glibc library, but had compiled a version of his own.
+In any of these cases, the symptom would have been exactly what Tim
had measured.
We asked Tim if we could get access to his data so that we could repeat
@@ -5209,40 +5221,42 @@ the benchmark and if he could check the MySQL version on the machine to
find out what was wrong and he promised to come back to us about this.
He has not done that yet.
-Because of this we can't put any trust in this benchmark either :(
+Because of this we can't put any trust in this benchmark either. :(
-Over time things also changes and the above benchmarks are not that
+Over time things also change and the preceding benchmarks are not that
relevant anymore. MySQL Server now has a couple of different table handlers
with different speed/concurrency tradeoffs. @xref{Table types}. It
would be interesting to see how the above tests would run with the
-different transactional table types in MySQL Server. PostgreSQL has of course
-also got new features since the test was made. As the above test are
+different transactional table types in MySQL Server. PostgreSQL
+has, of course,
+also got new features since the test was made. As these tests are
not publicly available there is no way for us to know how the
-database would preform in the same tests today.
+database would perform in the same tests today.
Conclusion:
The only benchmarks that exist today that anyone can download and run
-against MySQL Server and PostgreSQL is the MySQL benchmarks.
+against MySQL Server and PostgreSQL are the MySQL benchmarks.
We here at MySQL AB
-believe that open source databases should be tested with open source tools!
+believe that @code{Open Source} databases should be tested with @code{Open Source} tools!
This is the only way to ensure that no one does tests that nobody can
-reproduce and use this to claim that a database is better than another.
+reproduce and use this to claim that one database is better than another.
Without knowing all the facts it's impossible to answer the claims of the
tester.
The thing we find strange is that every test we have seen about
PostgreSQL, that is impossible to reproduce, claims that PostgreSQL is
better in most cases while our tests, which anyone can reproduce,
-clearly shows otherwise. With this we don't want to say that PostgreSQL
+clearly show otherwise. With this we don't want to say that PostgreSQL
isn't good at many things (it is!) or that it isn't faster than MySQL Server
under certain conditions. We would just like to see a fair test where
-they are very good so that we could get some friendly competition going!
+PostgreSQL performs very well, so that we could get some friendly
+competition going!
-For more information about our benchmarks suite, see @ref{MySQL Benchmarks}.
+For more information about our benchmark suite, see @ref{MySQL Benchmarks}.
-We are working on an even better benchmark suite, including multi user
+We are working on an even better benchmark suite, including multi-user
tests, and a better documentation of what the individual tests really
do and how to add more tests to the suite.
@@ -5271,8 +5285,8 @@ For a list of sites from which you can obtain MySQL, see
@item
To see which platforms are supported, see @ref{Which OS}. Please note that
-not all supported system are equally good for running MySQL on them.
-On some it is much more robust and efficient than others - see @ref{Which OS}
+not all supported systems are equally good for running MySQL on them.
+On some it is much more robust and efficient than others@-see @ref{Which OS}
for details.
@item
@@ -5285,7 +5299,7 @@ use the binary distribution.
@item
Installation instructions for binary and source distributions are described
-in @ref{Installing binary} and @ref{Installing source}. Each set of
+in @ref{Installing binary}, and @ref{Installing source}. Each set of
instructions includes a section on system-specific problems you may run
into.
@@ -5318,7 +5332,7 @@ file. The MySQL RPMs are currently being built on a RedHat Version
and use @code{glibc}.
If you have problems with an RPM file, for example, if you receive the error
-``@code{Sorry, the host 'xxxx' could not be looked up}'', see
+``@code{Sorry, the host 'xxxx' could not be looked up}''@-see
@ref{Binary notes-Linux}.
The RPM files you may want to use are:
@@ -5345,7 +5359,7 @@ MySQL clients, such as the Perl modules.
@item @code{MySQL-VERSION.src.rpm}
-This contains the source code for all of the above packages. It can also
+This contains the source code for all of the previous packages. It can also
be used to try to build RPMs for other architectures (for example, Alpha
or SPARC).
@end itemize
@@ -5389,7 +5403,7 @@ The MySQL server for Windows is available in two distribution types:
@enumerate
@item
The binary distribution contains a setup program which installs
-everything you need so you can start the server immediately.
+everything you need so that you can start the server immediately.
@item
The source distribution contains all the code and support files
for building the executables using the VC++ 6.0 compiler.
@@ -5401,12 +5415,12 @@ Generally speaking, you should use the binary distribution.
You will need the following:
@itemize @bullet
@item
-A 32 bits Windows Operating System such as 9x, Me, NT, 2000 or XP.
+A 32-bit Windows Operating System such as 9x, Me, NT, 2000, or XP.
The NT family (NT, Windows 2000 and XP) permits running the MySQL server
as a service. @xref{NT start}.
If you want to use tables bigger than 4G, you should install MySQL
-on NTFS or newer file system. Don't forget to use @code{MAX_ROWS} and
+on an NTFS or newer filesystem. Don't forget to use @code{MAX_ROWS} and
@code{AVG_ROW_LENGTH} when you create the table. @xref{CREATE TABLE}.
@item
TCP/IP protocol support.
@@ -5415,12 +5429,12 @@ A copy of the MySQL binary or distribution for Windows, which
can be downloaded from @uref{http://www.mysql.com/downloads/}.
Note: The distribution files are supplied with a zipped format
-and we recommended the use of an adequate FTP client with resume
+and we recommend the use of an adequate FTP client with resume
feature to avoid corruption of files during the download process.
@item
-A @code{ZIP} program to unpacked the distribution file.
+A @code{ZIP} program to unpack the distribution file.
@item
-Enough space on the hard drive to unpack, install and to create the
+Enough space on the hard drive to unpack, install, and create the
databases in accorandance with your requirements.
@item
If you plan to connect to the MySQL server via @code{ODBC}, you
@@ -5458,7 +5472,7 @@ C:\mysql\bin> mysqladmin -u root shutdown
@item
On NT/2000/XP machines, if you want to change the server executable
-(e.g. -max or -nt), it is also necessary to remove the service:
+(e.g., -max or -nt), it is also necessary to remove the service:
@example
C:\mysql\bin> mysqld-max-nt --remove
@@ -5487,7 +5501,7 @@ Here is a list of the different MySQL servers you can use:
@item @strong{Binary} @tab @strong{Description}
@item @code{mysqld} @tab
Compiled with full debugging and automatic memory allocation
-checking, symbolic links, InnoDB and BDB tables.
+checking, symbolic links, InnoDB, and BDB tables.
@item @code{mysqld-opt} @tab
Optimised binary with no support for transactional tables.
@item @code{mysqld-nt} @tab
@@ -5504,14 +5518,14 @@ Like @code{mysqld-max}, but compiled with support for named pipes.
Starting from 3.23.50, named pipes are only enabled if one starts mysqld with
@code{--enable-named-pipe}.
-All of the above binaries are optimised for the Pentium Pro
+All of the preceding binaries are optimised for the Pentium Pro
processor but should work on any Intel processor >= i386.
You will need to use an option file to specify your MySQL configuration
under the following circumstances:
@itemize @bullet
@item
-The installation or data directories are different than the default
+The installation or data directories are different from the default
locations (@file{c:\mysql} and @file{c:\mysql\data}).
@item
You want to use one of these servers:
@@ -5529,17 +5543,17 @@ option file @code{my.ini}. In this case you don't have to worry
about the following section.
There are two option files with the same function: @file{my.cnf} and
-@file{my.ini} file. However, to avoid confusion, it's best if you use only
+@file{my.ini}. However, to avoid confusion, it's best if you use only
of one them. Both files are plain text. The @file{my.cnf} file, if used,
-should be created in the root directory of drive C. The @file{my.ini}
+should be created in the root directory of the C drive. The @file{my.ini}
file, if used, should be created in the Windows system directory. (This
directory is typically something like @file{C:\WINDOWS} or @file{C:\WINNT}.
You can determine its exact location from the value of the @code{windir}
environment variable.) MySQL looks first for the @code{my.ini} file,
-then for the @code{my.cnf} file.
+then for the @file{my.cnf} file.
If your PC uses a boot loader where the C drive isn't the boot drive,
-then your only option is to use the @file{my.ini} file. Also note that
+your only option is to use the @file{my.ini} file. Also note that
if you use the @code{WinMySQLAdmin} tool, it uses only the @file{my.ini}
file. The @file{\mysql\bin} directory contains a help file with
instructions for using this tool.
@@ -5561,13 +5575,13 @@ Note that Windows pathnames should be specified in option files using
forward slashes rather than backslashes. If you do use backslashes, you
must double them.
-If you would like to use a data directory different than the default of
+If you would like to use a data directory different from the default of
@file{c:\mysql\data}, you must copy the entire contents of the
@file{c:\mysql\data} directory to the new location.
If you want to use the @code{InnoDB} transactional tables, you
need to manually create two new directories to hold the InnoDB
-data and log files, e.g. @file{c:\ibdata} and @file{c:\iblogs}.
+data and log files@-e.g., @file{c:\ibdata} and @file{c:\iblogs}.
You will also need to add some extra lines to the option
file. @xref{InnoDB start}.
@@ -5595,7 +5609,7 @@ C:\mysql\bin> mysqld-max --standalone
You should see the following messages as the server starts up:
@example
-InnoDB: The first specified data file c:\ibdata\ibdata1 did not exist:
+InnoDB: The first specified datafile c:\ibdata\ibdata1 did not exist:
InnoDB: a new database to be created!
InnoDB: Setting file c:\ibdata\ibdata1 size to 209715200
InnoDB: Database physically writes the file full: wait...
@@ -5655,10 +5669,10 @@ Our main download mirror is located at:
If you are interested in becoming a MySQL mirror site, you may
anonymously rsync with: @code{rsync://sunsite.dk/ftp/mirrors/mysql/}. Please
send e-mail to @email{webmaster@@mysql.com} notifying us of your mirror to be
-added to the list below.
+added to the following list.
If you have problems downloading from our main site, try using one of the
-mirrors listed below.
+following mirrors.
Please report bad or out-of-date mirrors to @email{webmaster@@mysql.com}.
@@ -5715,7 +5729,7 @@ Mac OS X Server. @xref{Mac OS X}.
@item
NetBSD 1.3/1.4 Intel and NetBSD 1.3 Alpha (Requires GNU make). @xref{NetBSD}.
@item
-OpenBSD > 2.5 with native therads. OpenBSD < 2.5 with the included
+OpenBSD > 2.5 with native threads. OpenBSD < 2.5 with the included
MIT-pthreads package. @xref{OpenBSD}.
@item
OS/2 Warp 3, FixPack 29 and OS/2 Warp 4, FixPack 4. @xref{OS/2}.
@@ -5738,7 +5752,7 @@ Windows 9x, Me, NT, 2000 and XP. @xref{Windows}.
Note that not all platforms are suited equally well for running
MySQL. How well a certain platform is suited for a high-load
-mission critical MySQL server is determined by the following
+mission-critical MySQL server is determined by the following
factors:
@itemize @bullet
@@ -5758,15 +5772,15 @@ CPU than the original process.
The ability of the kernel and/or the thread library to run many threads which
acquire/release a mutex over a short critical region frequently without
excessive context switches. In other words, if the implementation of
-@code{pthread_mutex_lock()} is too anxious to yield CPU, this will hurt
+@code{pthread_mutex_lock()} is too anxious to yield CPU time, this will hurt
MySQL tremendously. If this issue is not taken care of, adding extra CPUs
will actually make MySQL slower.
@item
-General file system stability/performance.
+General filesystem stability/performance.
@item
-Ability of the file system to deal with large files at all and deal with them
+Ability of the filesystem to deal with large files at all and deal with them
efficiently, if your tables are big.
@item
@@ -5781,11 +5795,11 @@ The amount of testing of similar configurations we have done internally.
@item
The number of users that have successfully run MySQL on that
platform in similar configurations. If this number is high, the chances of
-hitting some platform-specific surprise are much smaller.
+hitting some platform-specific surprises are much smaller.
@end itemize
-Based on the above criteria, the best platforms for running
-MySQL at this point are x86 with SuSE Linux 7.1, 2.4 kernel and
+Based on the preceding criteria, the best platforms for running
+MySQL at this point are x86 with SuSE Linux 7.1, 2.4 kernel, and
ReiserFS (or any similar Linux distribution) and SPARC with Solaris 2.7
or 2.8. FreeBSD comes third, but we really hope it will join the top
club once the thread library is improved. We also hope that at some
@@ -5799,15 +5813,15 @@ development, and need more detailed instructions on what MySQL
needs to run better, send an e-mail to
@email{internals@@lists.mysql.com}.
-Please note that the comparison above is not to say that one OS is better or
+Please note that the preceding comparison is not to say that one OS is better or
worse than the other in general. We are talking about choosing a particular OS
-for a dedicated purpose - running MySQL, and compare platforms in that
+for a dedicated purpose@-running MySQL, and compare platforms in that
regard only. With this in mind, the result of this comparison
would be different if we included more issues into it. And in some cases,
the reason one OS is better than the other could simply be that we have put
forth more effort into testing on and optimising for that particular platform.
-We are just stating our observations to help you make a
-decision on which platform to use MySQL on in your setup.
+We are just stating our observations to help you decide on which
+platform to use MySQL on in your setup.
@node Which version, Installation layouts, Which OS, General Installation Issues
@@ -5826,7 +5840,7 @@ release or the last stable release:
@item
Normally, if you are beginning to use MySQL for the first time or trying
to port it to some system for which there is no binary distribution, we
-recommend going with the stable release (currently Version 3.23. Note
+recommend going with the stable release (currently version 3.23). Note
that all MySQL releases are checked with the MySQL benchmarks and an
extensive test suite before each release (even the development
releases).
@@ -5855,8 +5869,8 @@ to get even more flexibility).
@item
To be able to satisfy different user requirements, we are providing two
-different binary versions; One compiled with the non-transactional table
-handlers, (a small, fast binary), and one configured with the most
+different binary versions: one compiled with the non-transactional table
+handlers (a small, fast binary), and one configured with the most
important extended options like transaction-safe tables. Both versions
are compiled from the same source distribution. All native @code{MySQL}
clients can connect to both MySQL versions.
@@ -5884,12 +5898,12 @@ common extra options that you may want to use:
@item
The default binary distribution is normally compiled with support
-for all characters sets and should work on a variety of processors from
+for all character sets and should work on a variety of processors from
the same processor family.
If you want a faster MySQL server you may want to recompile it
with support for only the character sets you need, use a better compiler
-(like @code{pgcc}) or use compiler options that are better optimised for your
+(like @code{pgcc}), or use compiler options that are better optimised for your
processor.
@item
@@ -5920,7 +5934,7 @@ releases have the same file format.
The second number (@code{21}) is the release level. Normally there are two to
choose from. One is the release/stable branch (currently @code{23}) and the
other is the development branch (currently @code{4.0}). Normally both are
-stable, but the development version may have quirks, missing documentation on
+stable, but the development version may have quirks, may be missing documentation on
new features, or may fail to compile on some systems.
@item
@@ -6007,7 +6021,7 @@ A binary distribution is installed by unpacking it at the installation
location you choose (typically @file{/usr/local/mysql}) and creates the
following directories in that location:
-@multitable @columnfractions .15 .40
+@multitable @columnfractions .15 .45
@item @strong{Directory} @tab @strong{Contents of directory}
@item @file{bin} @tab Client programs and the @code{mysqld} server
@item @file{data} @tab Log files, databases
@@ -6022,7 +6036,7 @@ A source distribution is installed after you configure and compile it. By
default, the installation step installs files under @file{/usr/local}, in the
following subdirectories:
-@multitable @columnfractions .15 .40
+@multitable @columnfractions .15 .45
@item @strong{Directory} @tab @strong{Contents of directory}
@item @file{bin} @tab Client programs and scripts
@item @file{include/mysql} @tab Include (header) files
@@ -6086,7 +6100,7 @@ versions, the second number in the version string is incremented. When the
file format changes, the first number is increased.
@item
-Stable tested releases are meant to appear about 1-2 times a year, but
+Stable-tested releases are meant to appear about 1-2 times a year, but
if small bugs are found, a release with only bug fixes will be released.
@item
@@ -6113,14 +6127,14 @@ release as soon as possible. We would like other companies to do this,
too.
@end itemize
-The current stable release is Version 3.23; We have already moved active
+The current stable release is Version 3.23; we have already moved active
development to Version 4.0. Bugs will still be fixed in the stable version.
We don't believe in a complete freeze, as this also leaves out bug fixes
and things that ``must be done.'' ``Somewhat frozen'' means that we may
add small things that ``almost surely will not affect anything that's
already working.''
-MySQL uses a little different naming scheme that most other products.
+MySQL uses a slightly different naming scheme from most other products.
In general it's relatively safe to use any version that has been out for
a couple of weeks without being replaced with a new version.
@xref{Which version}.
@@ -6173,10 +6187,13 @@ and are configured with the following compilers and options:
@item BSDI BSD/OS 2.1 i386 with @code{gcc} 2.7.2
@code{CC=gcc CXX=gcc CXXFLAGS=-O3 ./configure --prefix=/usr/local/mysql --with-extra-charsets=complex}
+
+@item FreeBSD 4.4-stable i386 with @code{gcc} 2.95.3
+@code{CC=gcc CFLAGS="-O3 -fno-omit-frame-pointer" CXX=gcc CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti" ./configure --prefix=/usr/local/mysql "--with-comment=Official MySQL binary" --with-extra-charsets=complex "--with-server-suffix=" --enable-thread-safe-client --enable-local-infile --enable-assembler --with-named-z-libs=not-used --disable-shared}
@end table
-Anyone who has more optimal options for any of the configurations listed
-above can always mail them to the developer's mailing list at
+Anyone who has more optimal options for any of the preceding
+configurations listed can always mail them to the developer's mailing list at
@email{internals@@lists.mysql.com}.
RPM distributions prior to MySQL Version 3.22 are user-contributed.
@@ -6184,7 +6201,7 @@ Beginning with Version 3.22, the RPMs are generated by us at
MySQL AB.
If you want to compile a debug version of MySQL, you should add
-@code{--with-debug} or @code{--with-debug=full} to the above configure lines
+@code{--with-debug} or @code{--with-debug=full} to the preceding configure lines
and remove any @code{-fomit-frame-pointer} options.
For the Windows distribution, please see @ref{Windows installation}.
@@ -6253,15 +6270,15 @@ you install the @code{DBI} and @code{Msql-Mysql-modules} Perl modules.
A more detailed description follows.
-To install a binary distribution, follow the steps below, then proceed
+To install a binary distribution, follow these steps, then proceed
to @ref{Post-installation}, for post-installation setup and testing:
@enumerate
@item
Pick the directory under which you want to unpack the distribution, and move
-into it. In the example below, we unpack the distribution under
+into it. In the following example, we unpack the distribution under
@file{/usr/local} and create a directory @file{/usr/local/mysql} into which
-MySQL is installed. (The following instructions therefore assume
+MySQL is installed. (The following instructions, therefore, assume
you have permission to create files in @file{/usr/local}. If that directory
is protected, you will need to perform the installation as @code{root}.)
@@ -6402,8 +6419,7 @@ You can start the MySQL server with the following command:
shell> bin/safe_mysqld --user=mysql &
@end example
-@xref{safe_mysqld, , @code{safe_mysqld}}.
-
+Now proceed to @ref{safe_mysqld, , @code{safe_mysqld}}, and
@xref{Post-installation}.
@@ -6416,7 +6432,7 @@ shell> bin/safe_mysqld --user=mysql &
Before you proceed with the source installation, check first to see if our
binary is available for your platform and if it will work for you. We
-put in a lot of effort into making sure that our binaries are built with the
+put a lot of effort into making sure that our binaries are built with the
best possible options.
You need the following tools to build and install MySQL from source:
@@ -6437,8 +6453,8 @@ using @code{gcc}. @code{gcc} 2.7.x has a bug that makes it impossible
to compile some perfectly legal C++ files, such as
@file{sql/sql_base.cc}. If you only have @code{gcc} 2.7.x, you must
upgrade your @code{gcc} to be able to compile MySQL. @code{gcc}
-2.8.1 is also known to have problems on some platforms so it should be
-avoided if there exists a new compiler for the platform..
+2.8.1 is also known to have problems on some platforms, so it should be
+avoided if a new compiler exists for the platform.
@code{gcc} >= 2.95.2 is recommended when compiling MySQL
Version 3.23.x.
@@ -6449,7 +6465,7 @@ sometimes required. If you have problems, we recommend trying GNU
@code{make} 3.75 or newer.
@end itemize
-If you are using a recent version of @strong{gcc}, recent enough to understand
+If you are using a recent version of @code{gcc}, recent enough to understand the
@code{-fno-exceptions} option, it is @strong{very important} that you use
it. Otherwise, you may compile a binary that crashes randomly. We also
recommend that you use @code{-felide-constructors} and @code{-fno-rtti} along
@@ -6510,12 +6526,12 @@ shell> /usr/local/mysql/bin/mysqld_safe --user=mysql &
if you are running MySQL 4.x.
@end example
-If you want have support for InnoDB tables, you should edit the
+If you want to have support for InnoDB tables, you should edit the
@code{/etc/my.cnf} file and remove the @code{#} character before the
-parameters that starts with @code{innodb_...}. @xref{Option
-files}. @xref{InnoDB start}.
+parameter that starts with @code{innodb_...}.
+@xref{Option files}, and @ref{InnoDB start}.
-If you start from a source RPM, then do the following:
+If you start from a source RPM, do the following:
@example
shell> rpm --rebuild MySQL-VERSION.src.rpm
@@ -6528,7 +6544,7 @@ you install the @code{DBI} and @code{Msql-Mysql-modules} Perl modules.
A more detailed description follows.
-To install a source distribution, follow the steps below, then proceed
+To install a source distribution, follow these steps, then proceed
to @ref{Post-installation}, for post-installation initialisation and testing:
@enumerate
@@ -6558,7 +6574,7 @@ shell> groupadd mysql
shell> useradd -g mysql mysql
@end example
-These commands add the @code{mysql} group, and the @code{mysql} user. The
+These commands add the @code{mysql} group and the @code{mysql} user. The
syntax for @code{useradd} and @code{groupadd} may differ slightly on different
versions of Unix. They may also be called @code{adduser} and @code{addgroup}.
You may wish to call the user and group something else instead of @code{mysql}.
@@ -6579,7 +6595,7 @@ shell> cd mysql-VERSION
@end example
Note that currently you must configure and build MySQL from
-this top-level directory. You can not build it in a different
+this top-level directory. You cannot build it in a different
directory.
@item
@@ -6660,12 +6676,12 @@ distribution:
shell> /usr/local/mysql/bin/safe_mysqld --user=mysql &
@end example
-If that command fails immediately with @code{mysqld daemon ended} then you can
+If that command fails immediately with @code{mysqld daemon ended}, you can
find some information in the file @file{mysql-data-directory/'hostname'.err}.
The likely reason is that you already have another @code{mysqld} server
running. @xref{Multiple servers}.
-@xref{Post-installation}.
+Now proceed to @ref{Post-installation}.
@node Applying patches, configure options, Quick install, Installing source
@@ -6689,7 +6705,8 @@ shell> make clean
@end example
Patches from the FTP site are distributed as plain text files or as files
-compressed with @code{gzip}. Apply a plain patch as shown above for
+compressed with @code{gzip}. Apply a plain patch as shown
+previously for
mailing list patches. To apply a compressed patch, change into the
top-level directory of your MySQL source tree and run these
commands:
@@ -6722,7 +6739,7 @@ the version that is currently executing.
The @code{configure} script gives you a great deal of control over how
you configure your MySQL distribution. Typically you do this
-using options on the @code{configure} command line. You can also affect
+using options on the @code{configure} command-line. You can also affect
@code{configure} using certain environment variables. @xref{Environment
variables}. For a list of options supported by @code{configure}, run
this command:
@@ -6731,7 +6748,7 @@ this command:
shell> ./configure --help
@end example
-Some of the more commonly-used @code{configure} options are described below:
+Some of the more commonly-used @code{configure} options are described here:
@itemize @bullet
@item
@@ -6753,7 +6770,7 @@ warnings about @file{mysql.cc}. (If @code{make} stops, try @code{make -k}
to tell it to continue with the rest of the build even if errors occur.)
@item
-If you want to get a embedded MySQL library (@code{libmysqld.a}) you should
+If you want to get an embedded MySQL library (@code{libmysqld.a}) you should
use the @code{--with-embedded-server} option.
@item
@@ -6822,14 +6839,16 @@ shell> CC=gcc CXX=gcc ./configure
@end example
When you use @code{gcc} as your C++ compiler, it will not attempt to link in
-@code{libg++} or @code{libstdc++}.
+@code{libg++} or @code{libstdc++}. This may be a good idea to do even if you
+have the above libraries installed, as some versions of these libraries have
+caused strange problems for MySQL users in the past.
-Here is some common environment variables to set depending on
+Here are some common environment variables to set depending on
the compiler you are using:
@tindex CXXFLAGS environment variable
@tindex environment variable, CXXFLAGS
-@multitable @columnfractions .20 .80
+@multitable @columnfractions .19 .81
@item @strong{Compiler} @tab @strong{Recommended options}
@item gcc 2.7.2.1 @tab
CC=gcc CXX=gcc CXXFLAGS="-O3 -felide-constructors"
@@ -6845,7 +6864,7 @@ CXXFLAGS="-O3 -mpentiumpro -mstack-align-double -felide-constructors \
@end multitable
In most cases you can get a reasonably optimal MySQL binary by
-using the options from the above and adding the following options to the
+using the options from the preceding table and adding the following options to the
configure line:
@example
@@ -6853,7 +6872,7 @@ configure line:
--with-mysqld-ldflags=-all-static
@end example
-The full configure line would in other words be something like the
+The full configure line would, in other words, be something like the
following for all recent gcc versions:
@example
@@ -6913,17 +6932,18 @@ you should take a look at the @code{SET OPTION CHARACTER SET} command.
@xref{SET OPTION, , @code{SET OPTION}}.
@cindex @code{myisamchk}
-@strong{Warning:} If you change character sets after having created any
+@strong{Warning}: If you change character sets after having created any
tables, you will have to run @code{myisamchk -r -q} on every table. Your
indexes may be sorted incorrectly otherwise. (This can happen if you
install MySQL, create some tables, then reconfigure
MySQL to use a different character set and reinstall it.)
With the option @code{--with-extra-charset=LIST} you can define
-which additional character sets should be incompiled in the server.
+which additional character sets should be compiled into the server.
-Here @code{LIST} is either a list of character set separated with space,
-@code{complex} to include all characters that can't be dynamically loaded
+Here @code{LIST} is either a list of character
+sets separated with spaces,
+@code{complex} to include all characters that can't be dynamically loaded,
or @code{all} to include all character sets into the binaries.
@item
@@ -6957,7 +6977,7 @@ system-specific section of this manual.
@cindex BitKeeper tree
@cindex cvs tree
-@strong{Caution:} You should read this section only if you are interested
+@strong{Caution}: You should read this section only if you are interested
in helping us test our new code. If you just want to get MySQL up
and running on your system, you should use a standard release distribution
(either a source or binary distribution will do).
@@ -6966,15 +6986,15 @@ To obtain our most recent development source tree, use these instructions:
@enumerate
@item
-Download @strong{BitKeeper} from
+Download @code{BitKeeper} from
@uref{http://www.bitmover.com/cgi-bin/download.cgi}. You will need
-@strong{Bitkeeper} 2.0 or newer to access our repository.
+@code{Bitkeeper} 2.0 or newer to access our repository.
@item
Follow the instructions to install it.
@item
-After @strong{BitKeeper} is installed, first go to the directory you
+After @code{BitKeeper} is installed, first go to the directory you
want to work from, and then use this command if you want to clone
the MySQL 3.23 branch:
@@ -6988,7 +7008,7 @@ To clone the 4.0 branch, use this command instead:
shell> bk clone bk://work.mysql.com:7001 mysql-4.0
@end example
-In the above examples the source tree will be set up in the @file{mysql/}
+In the preceding examples the source tree will be set up in the @file{mysql/}
or @file{mysql-4.0/} subdirectory of your current directory.
The initial download of the source tree may take a while, depending on the
@@ -7014,14 +7034,14 @@ shell> make
A collection of our standard configure scripts is located in the
@file{BUILD/} subdirectory. If you are lazy, you can use
@file{BUILD/compile-pentium-debug}. To compile on a different architecture,
-modify the script removing flags that are Pentium-specific.
+modify the script by removing flags that are Pentium-specific.
@item
When the build is done, run @code{make install}. Be careful with this
on a production machine; the command may overwrite your live release
installation. If you have another installation of MySQL, we
recommand that you run @code{./configure} with different values for the
-@code{prefix}, @code{tcp-port}, and @code{unix-socket-path} options than
+@code{prefix}, @code{with-tcp-port}, and @code{unix-socket-path} options than
those used for your production server.
@item
@@ -7036,7 +7056,7 @@ crash trying to process our configuration files, please report that also.
However, if you execute @code{aclocal} and get a @code{command not found}
error or a similar problem, do not report it. Instead, make sure all
the necessary tools are installed and that your @code{PATH} variable is
-set correctly so your shell can find them.
+set correctly so that your shell can find them.
@item
After the initial @code{bk clone} operation to get the source tree, you
@@ -7053,7 +7073,7 @@ to the source. If you do not have the time to code your idea, just send
a description.
@item
-@strong{BitKeeper} has a nice help utility that you can access via
+@code{BitKeeper} has a nice help utility that you can access via
@code{bk helptool}.
@end enumerate
@@ -7071,8 +7091,8 @@ a description.
All MySQL programs compile cleanly for us with no warnings on
Solaris using @code{gcc}. On other systems, warnings may occur due to
differences in system include files. See @ref{MIT-pthreads} for warnings
-that may occur when using MIT-pthreads. For other problems, check the list
-below.
+that may occur when using MIT-pthreads. For other problems, check
+the following list.
The solution to many problems involves reconfiguring. If you do need to
reconfigure, take note of the following:
@@ -7093,7 +7113,7 @@ when you reconfigure.
@item
Each time you run @code{configure}, you must run @code{make} again
to recompile. However, you may want to remove old object files from previous
-builds first, because they were compiled using different configuration options.
+builds first because they were compiled using different configuration options.
@end itemize
To prevent old configuration information or object files from being used,
@@ -7106,7 +7126,7 @@ shell> make clean
Alternatively, you can run @code{make distclean}.
-The list below describes some of the problems compiling MySQL
+The following list describes some of the problems when compiling MySQL
that have been found to occur most often:
@itemize @bullet
@@ -7118,7 +7138,7 @@ that have been found to occur most often:
@cindex virtual memory, problems while compiling
@cindex configure option, --with-low-memory
If you get errors when compiling @file{sql_yacc.cc}, such as the ones shown
-below, you have probably run out of memory or swap space:
+here, you have probably run out of memory or swap space:
@example
Internal compiler error: program cc1plus got fatal signal 11
@@ -7176,7 +7196,11 @@ This works because @code{gcc} compiles C++ sources as well as @code{g++}
does, but does not link in @code{libg++} or @code{libstdc++} by default.
Another way to fix these problems, of course, is to install @code{g++},
-@code{libg++} and @code{libstdc++}.
+@code{libg++}, and @code{libstdc++}. We would however like to recommend
+you to not use @code{libg++} or @code{libstdc++} with MySQL as this will
+only increase the binary size of mysqld without giving you any benefits.
+Some versions of these libraries have also caused strange problems for
+MySQL users in the past.
@item
If your compile fails with errors, such as any of the following,
@@ -7237,7 +7261,7 @@ client/libmysql.c:273: parse error before `__attribute__'
@code{egcs} 1.0.3a instead.
@item
-If you get errors such as those shown below when compiling @code{mysqld},
+If you get errors such as those shown here when compiling @code{mysqld},
@code{configure} didn't correctly detect the type of the last argument to
@code{accept()}, @code{getsockname()}, or @code{getpeername()}:
@@ -7258,12 +7282,12 @@ To fix this, edit the @file{config.h} file (which is generated by
Change @code{XXX} to @code{size_t} or @code{int}, depending on your
operating system. (Note that you will have to do this each time you run
-@code{configure}, because @code{configure} regenerates @file{config.h}.)
+@code{configure} because @code{configure} regenerates @file{config.h}.)
@item
The @file{sql_yacc.cc} file is generated from @file{sql_yacc.yy}. Normally
the build process doesn't need to create @file{sql_yacc.cc}, because
-MySQL comes with an already-generated copy. However, if you do need
+MySQL comes with an already generated copy. However, if you do need
to re-create it, you might encounter this error:
@example
@@ -7289,7 +7313,7 @@ link your clients with the new client library. @xref{Debugging client}.
This section describes some of the issues involved in using MIT-pthreads.
-Note that on Linux you should NOT use MIT-pthreads but install LinuxThreads!
+Note that on Linux you should @strong{not} use MIT-pthreads but install LinuxThreads!
@xref{Linux}.
If your system does not provide native thread support, you will need to
@@ -7307,13 +7331,13 @@ shell> ./configure --with-mit-threads
@end example
Building in a non-source directory is not supported when using
-MIT-pthreads, because we want to minimise our changes to this code.
+MIT-pthreads because we want to minimise our changes to this code.
@item
-The checks that determine whether or not to use MIT-pthreads occur only
+The checks that determine whether to use MIT-pthreads occur only
during the part of the configuration process that deals with the server
code. If you have configured the distribution using @code{--without-server}
-to build only the client code, clients will not know whether or not
+to build only the client code, clients will not know whether
MIT-pthreads is being used and will use Unix socket connections by default.
Because Unix sockets do not work under MIT-pthreads, this means you will need
to use @code{-h} or @code{--host} when you run client programs.
@@ -7393,9 +7417,9 @@ Building MySQL
@enumerate
@item
-Create a work directory (e.g.: workdir).
+Create a work directory (e.g., workdir).
@item
-Unpack the source distribution in the above directory.
+Unpack the source distribution in the aforementioned directory.
@item
Start the VC++ 6.0 compiler.
@item
@@ -7409,7 +7433,7 @@ select the @code{Set Active Configuration} menu.
Click over the screen selecting @code{mysqld - Win32 Debug}
and click OK.
@item
-Press @code{F7} to begin the build of the debug server, libs and
+Press @code{F7} to begin the build of the debug server, libs, and
some client applications.
@item
When the compilation finishes, copy the libs and the executables
@@ -7417,7 +7441,7 @@ to a separate directory.
@item
Compile the release versions that you want, in the same way.
@item
-Create the directory for the MySQL stuff: e.g. @file{c:\mysql}
+Create the directory for the MySQL stuff: e.g., @file{c:\mysql}
@item
From the workdir directory copy for the c:\mysql directory the
following directories:
@@ -7482,7 +7506,7 @@ shell> ./bin/safe_mysqld --user=mysql &
This creates the @code{mysql} database which will hold all database
privileges, the @code{test} database which you can use to test
-MySQL and also privilege entries for the user that run
+MySQL, and also privilege entries for the user that run
@code{mysql_install_db} and a @code{root} user (without any passwords).
This also starts the @code{mysqld} server.
@@ -7497,7 +7521,7 @@ distribution. For a binary distribution, this is your installation directory
distribution, this is the main directory of your MySQL source tree.
@cindex testing, the server
-In the commands shown below in this section and in the following
+In the commands shown in this section and in the following
subsections, @code{BINDIR} is the path to the location in which programs
like @code{mysqladmin} and @code{safe_mysqld} are installed. For a
binary distribution, this is the @file{bin} directory within the
@@ -7509,7 +7533,7 @@ installed. For a binary distribution, this is the same as
@code{BINDIR}. For a source distribution, @code{EXECDIR} is probably
@file{/usr/local/libexec}.
-Testing is described in detail below:
+Testing is described in detail:
@cindex testing, installation
@enumerate
@@ -7534,7 +7558,7 @@ you are unsure of what to do, you can always run @code{mysql_install_db}.)
@code{mysql} database. A description of the initial privileges is given in
@ref{Default privileges}. Briefly, these privileges allow the MySQL
@code{root} user to do anything, and allow anybody to create or use databases
-with a name of @code{'test'} or starting with @code{'test_'}.
+with a name of @code{test} or starting with @code{test_}.
If you don't set up the grant tables, the following error will appear in the
log file when you start the server:
@@ -7544,13 +7568,13 @@ log file when you start the server:
mysqld: Can't find file: 'host.frm'
@end example
-The above may also happen with a binary MySQL distribution if you
+This may also happen with a binary MySQL distribution if you
don't start MySQL by executing exactly @code{./bin/safe_mysqld}!
@xref{safe_mysqld, , @code{safe_mysqld}}.
You might need to run @code{mysql_install_db} as @code{root}. However,
if you prefer, you can run the MySQL server as an unprivileged
-(non-@code{root}) user, provided that user can read and write files in
+(non-@code{root}) user, provided that the user can read and write files in
the database directory. Instructions for running MySQL as an
unprivileged user are given in @ref{Changing MySQL user, , Changing
MySQL user}.
@@ -7606,15 +7630,14 @@ shell> BINDIR/mysqladmin variables
@end example
The output from @code{mysqladmin version} varies slightly depending on your
-platform and version of MySQL, but should be similar to that shown
-below:
+platform and version of MySQL, but should be similar to that shown here:
@example
shell> BINDIR/mysqladmin version
mysqladmin Ver 8.14 Distrib 3.23.32, for linux on i586
Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
-and you are welcome to modify and redistribute it under the GPL license
+and you are welcome to modify and redistribute it under the GPL license.
Server version 3.23.32-debug
Protocol version 10
@@ -7658,7 +7681,7 @@ see @ref{Starting server}.
@item
Run some simple tests to verify that the server is working.
-The output should be similar to what is shown below:
+The output should be similar to what is shown here:
@example
shell> BINDIR/mysqlshow
@@ -7681,7 +7704,7 @@ Database: mysql
| user |
+--------------+
-shell> BINDIR/mysql -e "select host,db,user from db" mysql
+shell> BINDIR/mysql -e "SELECT host,db,user FROM db" mysql
+------+--------+------+
| host | db | user |
+------+--------+------+
@@ -7773,7 +7796,7 @@ example, for testing, or perhaps you simply want to run two installations at
the same time). Generally the problem that occurs when you try to run the
second server is that it tries to use the same socket and port as the old one.
In this case you will get the error message: @code{Can't start server: Bind on
-TCP/IP port: Address already in use} or @code{Can't start server : Bind on
+TCP/IP port: Address already in use} or @code{Can't start server: Bind on
unix socket...}. @xref{Installing many servers}.
@item You don't have write access to @file{/tmp}
@@ -7798,7 +7821,7 @@ shell> MYSQL_UNIX_PORT=/some_tmp_dir/mysqld.sock
shell> export TMPDIR MYSQL_UNIX_PORT
@end example
-@xref{Problems with mysql.sock}.
+See @ref{Problems with mysql.sock}.
@file{some_tmp_dir} should be the path to some directory for which you
have write permission. @xref{Environment variables}.
@@ -7864,7 +7887,7 @@ For Windows NT/2000/XP, please see @ref{NT start}.
By invoking @code{mysqld} directly.
@end itemize
-When the @code{mysqld} daemon starts up, it changes directory to the
+When the @code{mysqld} daemon starts up, it changes the directory to the
data directory. This is where it expects to write log files and the pid
(process ID) file, and where it expects to find databases.
@@ -7880,7 +7903,7 @@ defaults by specifying the correct pathnames as command-line arguments to
Normally you should need to tell @code{mysqld} only the base directory under
which MySQL is installed. You can do this with the @code{--basedir}
option. You can also use @code{--help} to check the effect of changing path
-options (note that @code{--help} @emph{must} be the final option of the
+options (note that @code{--help} @strong{must} be the final option of the
@code{mysqld} command). For example:
@example
@@ -7894,7 +7917,7 @@ Whichever method you use to start the server, if it fails to start up
correctly, check the log file to see if you can find out why. Log files
are located in the data directory (typically
@file{/usr/local/mysql/data} for a binary distribution,
-@file{/usr/local/var} for a source distribution,
+@file{/usr/local/var} for a source distribution, and
@file{\mysql\data\mysql.err} on Windows). Look in the data directory for
files with names of the form @file{host_name.err} and
@file{host_name.log} where @code{host_name} is the name of your server
@@ -7905,7 +7928,7 @@ shell> tail host_name.err
shell> tail host_name.log
@end example
-If you find something like the following in the log file:
+Look for something like the following in the log file:
@example
000729 14:50:10 bdb: Recovery function for LSN 1 27595 failed
000729 14:50:10 bdb: warning: ./test/t1.db: No such file or directory
@@ -7916,7 +7939,7 @@ This means that you didn't start @code{mysqld} with @code{--bdb-no-recover}
and Berkeley DB found something wrong with its log files when it
tried to recover your databases. To be able to continue, you should
move away the old Berkeley DB log file from the database directory to
-some other place, where you can later examine these. The log files are
+some other place, where you can later examine it. The log files are
named @file{log.0000000001}, where the number will increase over time.
If you are running @code{mysqld} with BDB table support and @code{mysqld} core
@@ -8008,7 +8031,7 @@ shell> mysql.server stop
under the MySQL installation directory or in the @file{support-files}
directory of the MySQL source tree.
-Before @code{mysql.server} starts the server, it changes directory to
+Before @code{mysql.server} starts the server, it changes the directory to
the MySQL installation directory, then invokes @code{safe_mysqld}.
You might need to edit @code{mysql.server} if you have a binary distribution
that you've installed in a non-standard location. Modify it to @code{cd}
@@ -8021,7 +8044,7 @@ You can take down the server manually by executing @code{mysqladmin shutdown}.
You might want to add these start and stop commands to the appropriate places
in your @file{/etc/rc*} files when you start using MySQL for
-production applications. Note that if you modify @code{mysql.server}, then
+production applications. Note that if you modify @code{mysql.server}, and then
upgrade MySQL sometime, your modified version will be overwritten,
so you should make a copy of your edited version that you can reinstall.
@@ -8069,15 +8092,15 @@ read from option files:
@cindex upgrading
@cindex downgrading
-You can always move the MySQL form and data files between
+You can always move the MySQL form and datafiles between
different versions on the same architecture as long as you have the same
base version of MySQL. The current base version is
3. If you change the character set when running MySQL (which may
also change the sort order), you must run @code{myisamchk -r -q} on all
-tables. Otherwise your indexes may not be ordered correctly.
+tables. Otherwise, your indexes may not be ordered correctly.
If you are afraid of new versions, you can always rename your old
-@code{mysqld} to something like @code{mysqld}-'old-version-number'. If
+@code{mysqld} to something like @code{mysqld-old-version-number}. If
your new @code{mysqld} then does something unexpected, you can simply shut it
down and restart with your old @code{mysqld}!
@@ -8094,7 +8117,7 @@ If you get some problems that the new @code{mysqld} server doesn't want to
start or that you can't connect without a password, check that you don't
have some old @file{my.cnf} file from your old installation! You can
check this with: @code{program-name --print-defaults}. If this outputs
-anything other than the program name, you have an active @code{my.cnf}
+anything other than the program name, you have an active @file{my.cnf}
file that will affect things!
It is a good idea to rebuild and reinstall the @code{Msql-Mysql-modules}
@@ -8115,7 +8138,7 @@ dumping core after you upgrade MySQL.
@node Upgrading-from-3.23, Upgrading-from-3.22, Upgrade, Upgrade
@subsection Upgrading From Version 3.23 to Version 4.0
-You can use your old data files without any modification with Version 4.0.
+You can use your old datafiles without any modification with Version 4.0.
If you want to move your data from a MySQL 4.0 server to an older server,
you have to use @code{mysqldump}.
@@ -8127,11 +8150,11 @@ version 4.0;
@itemize @bullet
@item
@code{DOUBLE} and @code{FLOAT} columns are now honoring the
-@code{UNSIGNED} flag on storage (before @code{UNSIGNED} was ignored for
+@code{UNSIGNED} flag on storage (before, @code{UNSIGNED} was ignored for
these columns).
@item
-Use @code{ORDER BY column DESC} now always sorts @code{NULL} values
-first; In 3.23 this was not always consistent.
+@code{ORDER BY column DESC} now always sorts @code{NULL} values
+first; in 3.23 this was not always consistent.
@item
@code{SHOW INDEX} has 2 columns more (@code{Null} and @code{Index_type})
than it had in 3.23.
@@ -8139,11 +8162,11 @@ than it had in 3.23.
@code{SIGNED} is a reserved word.
@item
The result of all bitwise operators @code{|}, @code{&}, @code{<<},
-@code{>>} and @code{~} is now unsigned. This may cause problems if you
+@code{>>}, and @code{~} is now unsigned. This may cause problems if you
are using them in a context where you want a signed result.
@xref{Cast Functions}.
@item
-@strong{NOTE:} When you use subtraction between integer values where
+@strong{Note}: when you use subtraction between integer values where
one is of type @code{UNSIGNED}, the result will be unsigned! In other
words, before upgrading to MySQL 4.0, you should check your application
for cases where you are subtracting a value from an unsigned entity and
@@ -8156,11 +8179,11 @@ To use @code{MATCH ... AGAINST (... IN BOOLEAN MODE)} with your tables,
you need to rebuild them with @code{ALTER TABLE table_name TYPE=MyISAM},
@strong{even} if they are of @code{MyISAM} type.
@item
-@code{LOCATE()} and @code{INSTR()} are case sensitive if one of the
+@code{LOCATE()} and @code{INSTR()} are case-sensitive if one of the
arguments is a binary string.
@item
@code{STRCMP()} now uses the current character set when doing comparisons,
-which means that the default comparison behavior now is case insensitive.
+which means that the default comparison behavior now is case-insensitive.
@item
@code{HEX(string)} now returns the characters in string converted to
hexadecimal. If you want to convert a number to hexadecimal, you should
@@ -8172,18 +8195,18 @@ don't specify @code{IGNORE}.
@item
@file{safe_mysqld} is renamed to @file{mysqld_safe}.
@item
-The old C API functions @code{mysql_drop_db}, @code{mysql_create_db} and
+The old C API functions @code{mysql_drop_db}, @code{mysql_create_db}, and
@code{mysql_connect} are not supported anymore, unless you compile
MySQL with @code{CFLAGS=-DUSE_OLD_FUNCTIONS}. Instead of doing this,
it is preferable to change the client to use the new 4.0 API.
@item
-In the @code{MYSQL_FIELD} structure, @code{length} and @code{max_length} has
+In the @code{MYSQL_FIELD} structure, @code{length} and @code{max_length} have
changed from @code{unsigned int} to @code{unsigned long}. This should not
-cause any other problems than some warnings if you use these to
-@code{printf()} type function.
+cause any problems, except that they may generate warning messages when
+used as arguments in the @code{printf()} class of functions.
@item
You should use @code{TRUNCATE TABLE} when you want to delete all rows
-from a table and you don't care of how many rows where deleted.
+from a table and you don't care how many rows were deleted.
(Because @code{TRUNCATE TABLE} is faster than @code{DELETE FROM table_name}).
@item
You will get an error if you have an active @code{LOCK TABLES} or
@@ -8191,21 +8214,20 @@ transaction when trying to execute @code{TRUNCATE TABLE} or @code{DROP
DATABASE}.
@item
You should use integers to store values in BIGINT columns (instead of using
-strings as you did in MySQL 3.23). Using strings will still work, but using
+strings, as you did in MySQL 3.23). Using strings will still work, but using
integers is more efficient.
@item
Format of @code{SHOW OPEN TABLE} has changed.
@item
-Multithreaded clients should use @code{mysql_thread_init()} and
+Multi-threaded clients should use @code{mysql_thread_init()} and
@code{mysql_thread_end()}. @xref{Threaded clients}.
@item
If you want to recompile the Perl DBD::mysql module, you must get
-Msql-Mysql-modules version 1.2218 or newer, because the older DBD modules
+Msql-Mysql-modules version 1.2218 or newer because the older DBD modules
used the deprecated @code{drop_db()} call.
@item
@code{RAND(seed)} returns a different random number series in 4.0 than in
-3.23; This was done to get @code{RAND(seed)} and @code{RAND(seed+1)} more
-different.
+3.23; this was done to further differentiate @code{RAND(seed)} and @code{RAND(seed+1)}.
@end itemize
@node Upgrading-from-3.22, Upgrading-from-3.21, Upgrading-from-3.23, Upgrade
@@ -8225,21 +8247,21 @@ or the Perl script @code{mysql_convert_table_format}.
Version 3.22 and 3.21 clients will work without any problems with a Version
3.23 server.
-The following lists tell what you have to watch out for when upgrading to
+The following list tells what you have to watch out for when upgrading to
Version 3.23:
@itemize @bullet
@item
-All tables that uses the @code{tis620} character set must be fixed
+All tables that use the @code{tis620} character set must be fixed
with @code{myisamchk -r} or @code{REPAIR TABLE}.
@item
If you do a @code{DROP DATABASE} on a symbolic linked database, both the
-link and the original database is deleted. (This didn't happen in 3.22
-because configure didn't detect the @code{readlink} system call).
+link and the original database are deleted. (This didn't happen in 3.22
+because configure didn't detect the @code{readlink} system call.)
@item
-@code{OPTIMIZE TABLE} now only works for @strong{MyISAM} tables.
+@code{OPTIMIZE TABLE} now only works for @code{MyISAM} tables.
For other table types, you can use @code{ALTER TABLE} to optimise the table.
During @code{OPTIMIZE TABLE} the table is now locked from other threads.
@@ -8247,12 +8269,12 @@ During @code{OPTIMIZE TABLE} the table is now locked from other threads.
The MySQL client @code{mysql} is now by default started with the
option @code{--no-named-commands (-g)}. This option can be disabled with
@code{--enable-named-commands (-G)}. This may cause incompatibility problems in
-some cases, for example in SQL scripts that use named commands without a
+some cases@-for example, in SQL scripts that use named commands without a
semicolon! Long format commands still work from the first line.
@item
-Date functions that work on part of dates (like @code{MONTH()}) will now
-return 0 for @code{0000-00-00} dates. (MySQL 3.22 returned @code{NULL}).
+Date functions that work on parts of dates (like @code{MONTH()}) will now
+return 0 for @code{0000-00-00} dates. (MySQL 3.22 returned @code{NULL}.)
@item
If you are using the @code{german} character sort order, you must repair
@@ -8266,13 +8288,13 @@ and not only the first argument.
@item
@code{AUTO_INCREMENT} will not work with negative numbers. The reason
for this is that negative numbers caused problems when wrapping from -1 to 0.
-@code{AUTO_INCREMENT} is now for MyISAM tables handled at a lower level and
+@code{AUTO_INCREMENT} for MyISAM tables is no handled at a lower level and
is much faster than before. For MyISAM tables old numbers are also not reused
anymore, even if you delete some rows from the table.
@item
@code{CASE}, @code{DELAYED}, @code{ELSE}, @code{END}, @code{FULLTEXT},
-@code{INNER}, @code{RIGHT}, @code{THEN} and @code{WHEN} are now reserved words.
+@code{INNER}, @code{RIGHT}, @code{THEN}, and @code{WHEN} are now reserved words.
@item
@code{FLOAT(X)} is now a true floating-point type and not a value with a
@@ -8285,15 +8307,15 @@ includes a place for the sign or the decimal point.
@item
A @code{TIME} string must now be of one of the following formats:
@code{[[[DAYS] [H]H:]MM:]SS[.fraction]} or
-@code{[[[[[H]H]H]H]MM]SS[.fraction]}
+@code{[[[[[H]H]H]H]MM]SS[.fraction]}.
@item
@code{LIKE} now compares strings using the same character comparison rules
-as @code{'='}. If you require the old behavior, you can compile
+as @code{=}. If you require the old behavior, you can compile
MySQL with the @code{CXXFLAGS=-DLIKE_CMP_TOUPPER} flag.
@item
-@code{REGEXP} is now case insensitive for normal (not binary) strings.
+@code{REGEXP} is now case-insensitive for normal (not binary) strings.
@item
When you check/repair tables you should use @code{CHECK TABLE}
@@ -8307,8 +8329,8 @@ MySQL Version 3.22 and Version 3.23, you should not use the
@item
Check all your calls to @code{DATE_FORMAT()} to make sure there is a
-@samp{%} before each format character. (Later MySQL Version 3.22
-did allow this syntax.)
+@samp{%} before each format character.
+(MySQL Version 3.22 and later already allowed this syntax.)
@item
@code{mysql_fetch_fields_direct} is now a function (it was a macro) and
@@ -8317,8 +8339,8 @@ it returns a pointer to a @code{MYSQL_FIELD} instead of a
@item
@code{mysql_num_fields()} can no longer be used on a @code{MYSQL*} object (it's
-now a function that takes @code{MYSQL_RES*} as an argument. You should now
-use @code{mysql_field_count()} instead.
+now a function that takes @code{MYSQL_RES*} as an argument, so you should
+use @code{mysql_field_count()} instead).
@item
In MySQL Version 3.22, the output of @code{SELECT DISTINCT ...} was
@@ -8326,8 +8348,8 @@ almost always sorted. In Version 3.23, you must use @code{GROUP BY} or
@code{ORDER BY} to obtain sorted output.
@item
-@code{SUM()} now returns @code{NULL}, instead of 0, if there is no matching
-rows. This is according to ANSI SQL.
+@code{SUM()} now returns @code{NULL}, instead of 0, if
+there are no matching rows. This is according to ANSI SQL.
@item
An @code{AND} or @code{OR} with @code{NULL} values will now return
@@ -8344,7 +8366,7 @@ than the length argument.
@cindex compatibility, between MySQL versions
@cindex upgrading, 3.21 to 3.22
-Nothing that affects compatibility has changed between Version 3.21 and 3.22.
+Nothing that affects compatibility has changed between versions 3.21 and 3.22.
The only pitfall is that new tables that are created with @code{DATE} type
columns will use the new way to store the date. You can't access these new
fields from an old version of @code{mysqld}.
@@ -8391,7 +8413,7 @@ If you are @strong{not} using the @code{--old-protocol} option to
@itemize @bullet
@item
All client code must be recompiled. If you are using ODBC, you must get
-the new @strong{MyODBC} 2.x driver.
+the new @code{MyODBC} 2.x driver.
@item
The script @code{scripts/add_long_password} must be run to convert the
@code{Password} field in the @code{mysql.user} table to @code{CHAR(16)}.
@@ -8424,7 +8446,7 @@ The new Perl @code{DBI}/@code{DBD} interface also supports the old
@code{mysqlperl} interface. The only change you have to make if you use
@code{mysqlperl} is to change the arguments to the @code{connect()} function.
The new arguments are: @code{host}, @code{database}, @code{user},
-@code{password} (the @code{user} and @code{password} arguments have changed
+and @code{password} (the @code{user} and @code{password} arguments have changed
places).
@xref{Perl DBI Class, , Perl @code{DBI} Class}.
@@ -8449,7 +8471,7 @@ There are some new reserved words. The most notable are @code{DATE},
If you are using MySQL Version 3.23, you can copy the @file{.frm},
@file{.MYI}, and @file{.MYD} files between different architectures that
support the same floating-point format. (MySQL takes care of any
-byte swapping issues.)
+byte-swapping issues.)
The MySQL @code{ISAM} data and index files (@file{.ISD} and
@file{*.ISM}, respectively) are architecture-dependent and in some cases
@@ -8507,7 +8529,7 @@ shell> gunzip < db_name.contents.gz | mysql db_name
You can also use @code{mysqldump} and @code{mysqlimport} to accomplish
the database transfer.
For big tables, this is much faster than simply using @code{mysqldump}.
-In the commands shown below, @code{DUMPDIR} represents the full pathname
+In the following commands, @code{DUMPDIR} represents the full pathname
of the directory you use to store the output from @code{mysqldump}.
First, create the directory for the output files and dump the database:
@@ -8527,7 +8549,7 @@ shell> cat DUMPDIR/*.sql | mysql db_name # create tables in database
shell> mysqlimport db_name DUMPDIR/*.txt # load data into tables
@end example
-Also, don't forget to copy the @code{mysql} database, because that's where the
+Also, don't forget to copy the @code{mysql} database because that's where the
grant tables (@code{user}, @code{db}, @code{host}) are stored. You may have
to run commands as the MySQL @code{root} user on the new machine
until you have the @code{mysql} database in place.
@@ -8549,7 +8571,7 @@ information.
* Other Unix Notes:: Other Unix Notes
* OS/2:: OS/2 Notes
* BeOS:: BeOS Notes
-* Novell Netware:: Novell Netware Notes
+* Novell Netware:: Novell NetWare Notes
@end menu
@@ -8566,13 +8588,13 @@ information.
* Linux-IA64:: Linux IA64 Notes
@end menu
-The notes below regarding @strong{glibc} apply only to the situation
+The following notes regarding @code{glibc} apply only to the situation
when you build MySQL
yourself. If you are running Linux on an x86 machine, in most cases it is
much better for you to just use our binary. We link our binaries against
-the best patched version of @strong{glibc} we can come up with and with the
+the best patched version of @code{glibc} we can come up with and with the
best compiler options, in an attempt to make it suitable for a high-load
-server. So if you read the text below, and are in doubt about
+server. So if you read the following text, and are in doubt about
what you should do, try our binary first to see if it meets your needs, and
worry about your own build only after you have discovered that our binary is
not good enough. In that case, we would appreciate a note about it, so we
@@ -8585,14 +8607,14 @@ Linux version that doesn't have @code{glibc2}, you must install
LinuxThreads before trying to compile MySQL. You can get
LinuxThreads at @uref{http://www.mysql.com/Downloads/Linux/}.
-@strong{Note:} We have seen some strange problems with Linux 2.2.14 and
-MySQL on SMP systems; If you have a SMP system, we recommend
-you to upgrade to Linux 2.4 as soon as possible! Your system will be
+@strong{Note}: we have seen some strange problems with Linux 2.2.14 and
+MySQL on SMP systems. If you have a SMP system, we recommend
+you upgrade to Linux 2.4 as soon as possible! Your system will be
faster and more stable by doing this!
Note that @code{glibc} versions before and including Version 2.1.1 have
a fatal bug in @code{pthread_mutex_timedwait} handling, which is used
-when you do @code{INSERT DELAYED}. We recommend you to not use
+when you do @code{INSERT DELAYED}. We recommend that you not use
@code{INSERT DELAYED} before upgrading glibc.
If you plan to have 1000+ concurrent connections, you will need to make
@@ -8604,11 +8626,11 @@ relative to the root of @code{glibc} Note that MySQL will not be
stable with around 600-1000 connections if @code{STACK_SIZE} is the default
of 2 MB.
-If you have a problem with that MySQL can't open enough files,
+If MySQL can't open enough files,
or connections, it may be that you haven't configured Linux to handle
enough files.
-In Linux 2.2 and forwards, you can check the number of allocated
+In Linux 2.2 and onward, you can check the number of allocated
file handlers by doing:
@example
@@ -8617,7 +8639,7 @@ cat /proc/sys/fs/dquot-max
cat /proc/sys/fs/super-max
@end example
-If you have more than 16M of memory, you should add something like the
+If you have more than 16 MB of memory, you should add something like the
following in your boot script (@file{/etc/rc/boot.local} on SuSE):
@example
@@ -8626,8 +8648,8 @@ echo 8192 > /proc/sys/fs/dquot-max
echo 1024 > /proc/sys/fs/super-max
@end example
-You can also run the above from the command line as root, but in this case
-your old limits will be used next time your computer reboots.
+You can also run the preceding commands from the command-line as root, but in this case
+your old limits will be used the next time your computer reboots.
You should also add /etc/my.cnf:
@@ -8636,12 +8658,12 @@ You should also add /etc/my.cnf:
open-files-limit=8192
@end example
-The above should allow MySQL to create up to 8192 connections + files.
+This should allow MySQL to create up to 8192 connections + files.
The @code{STACK_SIZE} constant in LinuxThreads controls the spacing of thread
stacks in the address space. It needs to be large enough so that there will
be plenty of room for the stack of each individual thread, but small enough
-to keep the stack of some thread from running into the global @code{mysqld}
+to keep the stack of some threads from running into the global @code{mysqld}
data. Unfortunately, the Linux implementation of @code{mmap()}, as we have
experimentally discovered, will successfully unmap an already mapped region
if you ask it to map out an address already in use, zeroing out the data
@@ -8657,7 +8679,7 @@ If you build MySQL yourself and do not want to mess with patching
LinuxThreads, you should set @code{max_connections} to a value no higher
than 500. It should be even less if you have a large key buffer, large
heap tables, or some other things that make @code{mysqld} allocate a lot
-of memory or if you are running a 2.2 kernel with a 2GB patch. If you are
+of memory, or if you are running a 2.2 kernel with a 2GB patch. If you are
using our binary or RPM version 3.23.25 or later, you can safely set
@code{max_connections} at 1500, assuming no large key buffer or heap tables
with lots of data. The more you reduce @code{STACK_SIZE} in LinuxThreads
@@ -8668,14 +8690,14 @@ If you use a lot of concurrent connections, you may suffer from a "feature"
in the 2.2 kernel that penalises a process for forking or cloning a child
in an attempt to prevent a fork bomb attack. This will cause MySQL
not to scale well as you increase the number of concurrent clients. On
-single CPU systems, we have seen this manifested in a very slow thread
+single-CPU systems, we have seen this manifested in a very slow thread
creation, which means it may take a long time to connect to MySQL
(as long as 1 minute), and it may take just as long to shut it down. On
-multiple CPU systems, we have observed a gradual drop in query speed as
+multiple-CPU systems, we have observed a gradual drop in query speed as
the number of clients increases. In the process of trying to find a
solution, we have received a kernel patch from one of our users, who
-claimed it made a lot of difference for his site. The patch is available here
-(@uref{http://www.mysql.com/Downloads/Patches/linux-fork.patch}). We have
+claimed it made a lot of difference for his site. The patch is available at
+@uref{http://www.mysql.com/Downloads/Patches/linux-fork.patch}. We have
now done rather extensive testing of this patch on both development and
production systems. It has significantly
improved @code{MySQL} performance without causing any problems and we now
@@ -8686,12 +8708,12 @@ the current performance of your system, rather than patching your 2.2 kernel,
it might be easier to just upgrade to 2.4, which will also give you a nice
SMP boost in addition to fixing this fairness bug.
-We have tested MySQL on the 2.4 kernel on a 2 CPU machine and
-found MySQL scales MUCH better - there was virtually no slowdown
-on query throughput all the way up
-to 1000 clients, and MySQL scaling factor ( computed as the ratio of
+We have tested MySQL on the 2.4 kernel on a 2-CPU machine and
+found MySQL scales @strong{much} better@-there was virtually no slowdown
+on queries throughput all the way up
+to 1000 clients, and the MySQL scaling factor (computed as the ratio of
maximum throughput to the throughput with one client) was 180%.
-We have observed similar results on a 4-CPU system - virtually no
+We have observed similar results on a 4-CPU system@-virtually no
slowdown as the number of
clients was increased up to 1000, and 300% scaling factor. So for a high-load
SMP server we would definitely recommend the 2.4 kernel at this point. We
@@ -8710,19 +8732,19 @@ include them in the manual.
There is another issue that greatly hurts MySQL performance,
especially on SMP systems. The implementation of mutex in
-LinuxThreads in @strong{glibc-2.1} is very bad for programs with many
+LinuxThreads in @code{glibc-2.1} is very bad for programs with many
threads that only
hold the mutex for a short time. On an SMP system, ironic as it is, if
-you link MySQL against unmodified @strong{LinuxThreads},
+you link MySQL against unmodified @code{LinuxThreads},
removing processors from the machine improves MySQL performance
-in many cases. We have made a patch available for @strong{glibc 2.1.3}
+in many cases. We have made a patch available for @code{glibc 2.1.3}
to correct this behavior
(@uref{http://www.mysql.com/Downloads/Linux/linuxthreads-2.1-patch}).
-With @strong{glibc-2.2.2}
+With @code{glibc-2.2.2}
MySQL version 3.23.36 will use the adaptive mutex, which is much
-better than even the patched one in @strong{glibc-2.1.3}. Be warned, however,
-that under some conditions, the current mutex code in @strong{glibc-2.2.2}
+better than even the patched one in @code{glibc-2.1.3}. Be warned, however,
+that under some conditions, the current mutex code in @code{glibc-2.2.2}
overspins, which hurts MySQL performance. The chance of this
condition can be reduced by renicing @code{mysqld} process to the highest
priority. We have also been able to correct the overspin behavior with
@@ -8831,8 +8853,8 @@ CC=fcc CFLAGS="-O -K fast -K lib -K omitfp -Kpreex -D_GNU_SOURCE \
MySQL needs at least Linux Version 2.0.
-@strong{WARNING}:
-We have have reports from some MySQL users that they have got serious
+@strong{Warning}:
+We have reports from some MySQL users that they have got serious
stability problems with MySQL with Linux kernel 2.2.14. If you are
using this kernel you should upgrade to 2.2.19 (or newer) or to a 2.4
kernel. If you have a multi-cpu box, then you should seriously consider
@@ -8874,7 +8896,7 @@ You can solve this problem in one of the following ways:
Get a MySQL source distribution (an RPM or the @code{tar.gz}
distribution) and install this instead.
@item
-Execute @code{mysql_install_db --force}; This will not execute the
+Execute @code{mysql_install_db --force}; this will not execute the
@code{resolveip} test in @code{mysql_install_db}. The downside is that
you can't use host names in the grant tables; you must use IP numbers
instead (except for @code{localhost}). If you are using an old MySQL
@@ -8916,11 +8938,11 @@ kernel will fix this problem in the future.
MySQL requires @code{libc} Version 5.4.12 or newer. It's known to
work with @code{libc} 5.4.46. @code{glibc} Version 2.0.6 and later should
also work. There have been some problems with the @code{glibc} RPMs from
-RedHat, so if you have problems, check whether or not there are any updates!
+RedHat, so if you have problems, check whether there are any updates!
The @code{glibc} 2.0.7-19 and 2.0.7-29 RPMs are known to work.
If you are using gcc 3.0 and above to compile MySQL, you must install
-the @code{libstdc++v3} library before compiling MySQL; If you don't do
+the @code{libstdc++v3} library before compiling MySQL; if you don't do
this you will get an error about a missing @code{__cxa_pure_virtual}
symbol during linking!
@@ -8935,7 +8957,7 @@ See the Installation chapter in the Reference Manual.
Just do what the error message says and add an extra underscore to the
@code{_P} macro that has only one underscore, then try again.
-You may get some warnings when compiling; those shown below can be ignored:
+You may get some warnings when compiling; those shown here can be ignored:
@example
mysqld.cc -o objs-thread/mysqld.o
@@ -8978,9 +9000,6 @@ You can avoid using @file{libg++.a} by running @code{configure} like this:
shell> CXX=gcc ./configure
@end example
-If you are running gcc 3.0 and above, you can't use the above trick with
-setting to CXX=gcc.
-
@node Linux-SPARC, Linux-Alpha, Linux-x86, Linux
@subsubsection Linux SPARC Notes
@@ -9017,7 +9036,7 @@ You can find the above compilers at
@uref{http://www.support.compaq.com/alpha-tools/}). By using these compilers,
instead of gcc, we get about 9-14 % better performance with MySQL.
-Note that the configure line optimised the binary for the current CPU; This
+Note that the configure line optimised the binary for the current CPU; this
means you can only use our binary if you have an Alpha EV6 processor. We also
compile statically to avoid library problems.
@@ -9070,7 +9089,7 @@ work). You must also use the @code{egcs} C++ compiler
@node Linux-IA64, , Linux-MIPS, Linux
@subsubsection Linux IA64 Notes
-To get MySQL to compile on Linux Ia64, we use the following compile line:
+To get MySQL to compile on Linux IA64, we use the following compile line:
Using @code{gcc-2.96}:
@example
@@ -9080,7 +9099,7 @@ CXXFLAGS="-O3 -fno-omit-frame-pointer -felide-constructors \
"--with-comment=Official MySQL binary" --with-extra-charsets=complex
@end example
-On Ia64 the MySQL client binaries are using shared libraries. This means
+On IA64 the MySQL client binaries are using shared libraries. This means
that if you install our binary distribution in some other place than
@file{/usr/local/mysql} you need to either modify @file{/etc/ld.so.conf}
or add the path to the directory where you have @file{libmysqlclient.so}
@@ -9152,7 +9171,7 @@ allow named pipe connections. You should use either
If @code{mysqld} doesn't start, please check the
@file{\mysql\data\mysql.err} file to see if the server wrote any
message there to indicate the cause of the problem. You can also
-try to start the server with @code{mysqld --standalone}; In this
+try to start the server with @code{mysqld --standalone}; in this
case, you may get some useful information on the screen that may
help solve the problem.
@@ -9300,11 +9319,11 @@ You can force a MySQL client to use named pipes by specifying the
@code{--socket} option to specify the name of the pipe.
Note that starting from 3.23.50, named pipes are only enabled if mysqld is
-started with with @code{--enable-named-pipe}. This is because some users
+started with @code{--enable-named-pipe}. This is because some users
have experienced problems shutting down the MySQL server when one uses
named pipes.
-You can test whether or not MySQL is working by executing the
+You can test whether MySQL is working by executing the
following commands:
@example
@@ -9360,8 +9379,9 @@ C:\> mysqladmin --user=root --password=your_password shutdown
If you are using the old shareware version of MySQL Version
3.21 under Windows, the above command will fail with an error:
-@code{parse error near 'SET OPTION password'}. The fix is in to upgrade
-to the current MySQL version, which is freely available.
+@code{parse error near 'SET OPTION password'}. The solution for
+this is to download and upgrade to the latest MySQL version,
+which is now freely available.
With the current MySQL versions you can easily add new users
and change privileges with @code{GRANT} and @code{REVOKE} commands.
@@ -9384,7 +9404,7 @@ MySQL server with SSH (by David Carlson @email{dcarlson@@mplcomm.com}):
Install an SSH client on your Windows machine. As a user, the best non-free
one I've found is from @code{SecureCRT} from @uref{http://www.vandyke.com/}.
Another option is @code{f-secure} from @uref{http://www.f-secure.com/}. You
-can also find some free ones on @strong{Google} at
+can also find some free ones on @code{Google} at
@uref{http://directory.google.com/Top/Computers/Security/Products_and_Tools/Cryptography/SSH/Clients/Windows/}.
@item
@@ -9409,7 +9429,7 @@ On your Windows machine, start some ODBC application (such as Access).
@item
Create a new file in Windows and link to MySQL using the ODBC
driver the same way you normally do, except type in @code{localhost}
-for the MySQL host server --- not @code{yourmysqlservername}.
+for the MySQL host server@-not @code{yourmysqlservername}.
@end itemize
You should now have an ODBC connection to MySQL, encrypted using SSH.
@@ -9443,7 +9463,7 @@ text @code{D:\data\foo\}. After that, all tables created in the database
Note that because of the speed penalty you get when opening every table,
we have not enabled this by default even if you have compiled
MySQL with support for this. To enable symlinks you should put
-in your @code{my.cnf} or @code{my.ini} file the following entry:
+in your @file{my.cnf} or @file{my.ini} file the following entry:
@example
[mysqld]
@@ -9539,8 +9559,8 @@ You can't kill MySQL from the task manager or with the shutdown
utility in Windows 95. You must take it down with @code{mysqladmin shutdown}.
@item Case-insensitive names
-Filenames are case insensitive on Windows, so database and table names
-are also case insensitive in MySQL for Windows. The only
+Filenames are case-insensitive on Windows, so database and table names
+are also case-insensitive in MySQL for Windows. The only
restriction is that database and table names must be specified using the same
case throughout a given statement. @xref{Name case sensitivity}.
@@ -9634,7 +9654,7 @@ Add some nice start and shutdown icons to the MySQL installation.
@item
When registering @code{mysqld} as a service with @code{--install} (on NT)
-it would be nice if you could also add default options on the command line.
+it would be nice if you could also add default options on the command-line.
For the moment, the workaround is to list the parameters in the
@file{C:\my.cnf} file instead.
@@ -9643,7 +9663,7 @@ It would be real nice to be able to kill @code{mysqld} from the task manager.
For the moment, you must use @code{mysqladmin shutdown}.
@item
-Port @code{readline} to Windows for use in the @code{mysql} command line tool.
+Port @code{readline} to Windows for use in the @code{mysql} command-line tool.
@item
GUI versions of the standard MySQL clients (@code{mysql},
@@ -9760,7 +9780,7 @@ If you turn on @code{__STDC__} with the @code{-Xc} option, the Sun compiler
can't compile with the Solaris @file{pthread.h} header file. This is a Sun
bug (broken compiler or broken include file).
-If @code{mysqld} issues the error message shown below when you run it, you have
+If @code{mysqld} issues the error message shown here when you run it, you have
tried to compile MySQL with the Sun compiler without enabling the
multi-thread option (@code{-mt}):
@@ -10031,11 +10051,11 @@ Versions 3 and up. It is possible to run with native threads on some late
The MySQL @file{Makefile}s require GNU make (@code{gmake}) to work. If
you want to compile MySQL you need to install GNU @code{make} first.
-Be sure to have your name resolver setup correct. Otherwise you may
+Be sure to have your name resolver setup correct. Otherwise, you may
experience resolver delays or failures when connecting to @code{mysqld}.
Make sure that the @code{localhost} entry in the @file{/etc/hosts} file is
-correct (otherwise you will have problems connecting to the database). The
+correct (otherwise, you will have problems connecting to the database). The
@file{/etc/hosts} file should start with a line:
@example
@@ -10092,7 +10112,7 @@ that are marked @code{-RELEASE}.
@node NetBSD, OpenBSD, FreeBSD, BSD Notes
@subsubsection NetBSD notes
-To compile on NetBSD you need GNU @code{make}. Otherwise the compile will
+To compile on NetBSD you need GNU @code{make}. Otherwise, the compile will
crash when @code{make} tries to run @code{lint} on C++ files.
@@ -10251,7 +10271,7 @@ CC=gcc CFLAGS="-O2 -fomit-frame-pointer" CXX=gcc CXXFLAGS="-O2 \
@end example
You might want to also add aliases to your shell's resource file to
-access @code{mysql} and @code{mysqladmin} from the command line:
+access @code{mysql} and @code{mysqladmin} from the command-line:
@example
alias mysql '/usr/local/mysql/bin/mysql'
@@ -10310,7 +10330,7 @@ HP 9000/7xx or 8xx running HP-UX 10.x where x < 2
HP 9000/7xx or 8xx running HP-UX 9.x
@end itemize
-To install the distribution, use one of the commands below, where
+To install the distribution, use one of the commands here, where
@code{/path/to/depot} is the full pathname of the depot file:
@itemize @bullet
@@ -10394,7 +10414,7 @@ PHKL_22840 Streams cumulative
PHNE_22397 ARPA cumulative
@end example
-This will solve a problem that one gets @code{EWOULDBLOCK} from @code{recv()}
+This will solve the problem of getting @code{EWOULDBLOCK} from @code{recv()}
and @code{EBADF} from @code{accept()} in threaded applications.
If you are using @code{gcc} 2.95.1 on an unpatched HP-UX 11.x system,
@@ -10532,7 +10552,7 @@ the IBM C compiler).
If you are using @code{gcc} or @code{egcs} to compile MySQL, you
@strong{must} use the @code{-fno-exceptions} flag, as the exception
-handling in @code{gcc}/@code{egcs} is not thread safe! (This is tested with
+handling in @code{gcc}/@code{egcs} is not thread-safe! (This is tested with
@code{egcs} 1.1.) There are also some known problems with IBM's assembler,
which may cause it to generate bad code when used with gcc.
@@ -10554,19 +10574,19 @@ option generates faster code, we recommend that you should always use this
option with @code{egcs / gcc}.
If you get a problem with assembler code try changing the -mcpu=xxx to
-match your cpu. Typically power2, power, or powerpc may need to be used,
+match your CPU. Typically power2, power, or powerpc may need to be used,
alternatively you might need to use 604 or 604e. I'm not positive but I
would think using "power" would likely be safe most of the time, even on
a power2 machine.
-If you don't know what your cpu is then do a "uname -m", this will give
+If you don't know what your CPU is then do a "uname -m", this will give
you back a string that looks like "000514676700", with a format of
xxyyyyyymmss where xx and ss are always 0's, yyyyyy is a unique system
id and mm is the id of the CPU Planar. A chart of these values can be
found at
-@uref{http://www.rs6000.ibm.com/doc_link/en_US/a_doc_lib/cmds/aixcmds5/uname.htm}.
+@uref{http://publib.boulder.ibm.com/doc_link/en_US/a_doc_lib/cmds/aixcmds5/uname.htm}.
This will give you a machine type and a machine model you can use to
-determine what type of cpu you have.
+determine what type of CPU you have.
If you have problems with signals (MySQL dies unexpectedly
under high load) you may have found an OS bug with threads and
@@ -10660,7 +10680,7 @@ accept(int,sockadddr *, int *)'
You can safely ignore these warnings. They occur because @code{configure}
can detect only errors, not warnings.
-If you start the server directly from the command line, you may have problems
+If you start the server directly from the command-line, you may have problems
with it dying when you log out. (When you log out, your outstanding processes
receive a @code{SIGHUP} signal.) If so, try starting the server like this:
@@ -11009,8 +11029,8 @@ In FSU Pthreads, the following system calls are pthreads-aware: @code{read()},
@item
The CSSA-2001-SCO.35.2 (the patch is listed in custom as
-erg711905-dscr_remap security patch (ver 2.0.0) breaks FSU threads and
-makes mysqld instable. You have to remove this one if you want to run
+erg711905-dscr_remap security patch (version 2.0.0) breaks FSU threads and
+makes mysqld unstable. You have to remove this one if you want to run
mysqld on an OpenServer 5.0.6 machine.
@end itemize
@@ -11071,7 +11091,6 @@ It's probably a good idea to install the above patches before trying to
compile/use MySQL.
@node OS/2, BeOS, Other Unix Notes, Operating System Specific Notes
-
@subsection OS/2 Notes
MySQL uses quite a few open files. Because of this, you should add
@@ -11109,11 +11128,11 @@ gcc -Zdll -Zmt -Zcrtdll=pthrdrtl -I../include -I../regex -I.. \
mv example.dll example.udf
@end example
-@strong{Note:} Due to limitations in OS/2, UDF module name stems must not
+@strong{Note}: Due to limitations in OS/2, UDF module name stems must not
exceed 8 characters. Modules are stored in the @file{/mysql2/udf}
directory; the @code{safe-mysqld.cmd} script will put this directory in
the @code{BEGINLIBPATH} environment variable. When using UDF modules,
-specified extensions are ignored --- it is assumed to be @file{.udf}.
+specified extensions are ignored@-it is assumed to be @file{.udf}.
For example, in Unix, the shared module might be named @file{example.so}
and you would load a function from it like this:
@@ -11145,10 +11164,10 @@ in a while.
@node Novell Netware, , BeOS, Operating System Specific Notes
-@subsection Novell Netware Notes
+@subsection Novell NetWare Notes
-We are really interested in getting MySQL to work on Netware, but
-unfortunately we don't have any person who knows Netware or has time to do
+We are really interested in getting MySQL to work on NetWare, but
+unfortunately we don't have any person who knows NetWare or has time to do
a port.
We are interested in finding someone to do a port, and we will help them
@@ -11192,7 +11211,7 @@ The Perl distributions are provided as compressed @code{tar} archives and
have names like @file{MODULE-VERSION.tar.gz}, where @code{MODULE} is the
module name and @code{VERSION} is the version number. You should get the
@code{Data-Dumper}, @code{DBI}, and @code{Msql-Mysql-modules} distributions
-and install them in that order. The installation procedure is shown below.
+and install them in that order. The installation procedure is shown here.
The example shown is for the @code{Data-Dumper} module, but the procedure is
the same for all three distributions:
@@ -11294,7 +11313,7 @@ ftp://ftp.de.uu.net/pub/CPAN/authors/id/JWIED/DBD-mysql-1.2212.x86.ppd
The above should work at least with ActiveState Perl Version 5.6.
If you can't get the above to work, you should instead install the
-@strong{MyODBC} driver and connect to MySQL server through
+@code{MyODBC} driver and connect to MySQL server through
ODBC:
@example
@@ -11497,7 +11516,7 @@ shell> mysql --help
This chapter assumes that @code{mysql} is installed on your machine and that
a MySQL server is available to which you can connect. If this is
-not true, contact your MySQL administrator. (If @emph{you} are the
+not true, contact your MySQL administrator. (If @strong{you} are the
administrator, you will need to consult other sections of this manual.)
This chapter describes the entire process of setting up and using a
@@ -11590,13 +11609,13 @@ principles of entering commands, using several queries you can try out to
familiarise yourself with how @code{mysql} works.
Here's a simple command that asks the server to tell you its version number
-and the current date. Type it in as shown below following the @code{mysql>}
+and the current date. Type it in as shown here following the @code{mysql>}
prompt and press Enter:
@example
mysql> SELECT VERSION(), CURRENT_DATE;
+--------------+--------------+
-| version() | CURRENT_DATE |
+| VERSION() | CURRENT_DATE |
+--------------+--------------+
| 3.22.20a-log | 1999-03-19 |
+--------------+--------------+
@@ -11662,7 +11681,7 @@ Just end each one with a semicolon:
@example
mysql> SELECT VERSION(); SELECT NOW();
+--------------+
-| version() |
+| VERSION() |
+--------------+
| 3.22.20a-log |
+--------------+
@@ -11795,7 +11814,7 @@ is ready for a new command.
It's important to know what the @code{'>} and @code{">} prompts signify,
because if you mistakenly enter an unterminated string, any further lines you
-type will appear to be ignored by @code{mysql} --- including a line
+type will appear to be ignored by @code{mysql}@-including a line
containing @code{QUIT}! This can be quite confusing, especially if you
don't know that you need to supply the terminating quote before you can
cancel the current command.
@@ -11908,7 +11927,7 @@ yourself:
mysql> CREATE DATABASE menagerie;
@end example
-Under Unix, database names are case sensitive (unlike SQL keywords), so you
+Under Unix, database names are case-sensitive (unlike SQL keywords), so you
must always refer to your database as @code{menagerie}, not as
@code{Menagerie}, @code{MENAGERIE}, or some other variant. This is also true
for table names. (Under Windows, this restriction does not apply, although
@@ -11926,7 +11945,7 @@ Database changed
Your database needs to be created only once, but you must select it for use
each time you begin a @code{mysql} session. You can do this by issuing a
@code{USE} statement as shown above. Alternatively, you can select the
-database on the command line when you invoke @code{mysql}. Just specify its
+database on the command-line when you invoke @code{mysql}. Just specify its
name after any connection parameters that you might need to provide. For
example:
@@ -11936,10 +11955,10 @@ Enter password: ********
@end example
Note that @code{menagerie} is not your password on the command just shown.
-If you want to supply your password on the command line after the @code{-p}
+If you want to supply your password on the command-line after the @code{-p}
option, you must do so with no intervening space (for example, as
@code{-pmypassword}, not as @code{-p mypassword}). However, putting your
-password on the command line is not recommended, because doing so exposes it
+password on the command-line is not recommended, because doing so exposes it
to snooping by other users logged in on your machine.
@@ -12059,9 +12078,9 @@ the columns in your table or what types they are.
After creating your table, you need to populate it. The @code{LOAD DATA} and
@code{INSERT} statements are useful for this.
-Suppose your pet records can be described as shown below.
+Suppose your pet records can be described as shown here.
(Observe that MySQL expects dates in @code{YYYY-MM-DD} format;
-this may be different than what you are used to.)
+this may be different from what you are used to.)
@multitable @columnfractions .10 .10 .10 .05 .15 .15
@item @strong{name} @tab @strong{owner} @tab @strong{species} @tab @strong{sex} @tab @strong{birth} @tab @strong{death}
@@ -12185,7 +12204,7 @@ mysql> SELECT * FROM pet;
This form of @code{SELECT} is useful if you want to review your entire table,
for instance, after you've just loaded it with your initial dataset. As it
-happens, the output just shown reveals an error in your data file: Bowser
+happens, the output just shown reveals an error in your datafile: Bowser
appears to have been born after he died! Consulting your original pedigree
papers, you find that the correct birth year is 1989, not 1998.
@@ -12241,7 +12260,7 @@ mysql> SELECT * FROM pet WHERE name = "Bowser";
The output confirms that the year is correctly recorded now as 1989, not 1998.
-String comparisons are normally case insensitive, so you can specify the
+String comparisons are normally case-insensitive, so you can specify the
name as @code{"bowser"}, @code{"BOWSER"}, etc. The query result will be
the same.
@@ -12415,6 +12434,12 @@ mysql> SELECT name, birth FROM pet ORDER BY birth;
+----------+------------+
@end example
+On character type columns, sorting@-like all other comparison
+operations@-is normally performed in a case-insensitive fashion.
+This means that the order will be undefined for columns that are identical
+except for their case. You can force a case-sensitive sort by using the
+BINARY cast: @code{ORDER BY BINARY(field)}.
+
To sort in reverse order, add the @code{DESC} (descending) keyword to the
name of the column you are sorting by:
@@ -12559,7 +12584,7 @@ mysql> SELECT name, birth, CURRENT_DATE,
@end example
A similar query can be used to determine age at death for animals that have
-died. You determine which animals these are by checking whether or not the
+died. You determine which animals these are by checking whether the
@code{death} value is @code{NULL}. Then, for those with non-@code{NULL}
values, compute the difference between the @code{death} and @code{birth}
values:
@@ -12711,8 +12736,8 @@ by Unix utilities such as @code{vi}, @code{grep}, and @code{sed}.
SQL pattern matching allows you to use @samp{_} to match any single
character and @samp{%} to match an arbitrary number of characters (including
-zero characters). In MySQL, SQL patterns are case insensitive by
-default. Some examples are shown below. Note that you do not use @code{=}
+zero characters). In MySQL, SQL patterns are case-insensitive by
+default. Some examples are shown here. Note that you do not use @code{=}
or @code{<>} when you use SQL patterns; use the @code{LIKE} or @code{NOT
LIKE} comparison operators instead.
@@ -12790,12 +12815,6 @@ example, @samp{x*} matches any number of @samp{x} characters,
number of anything.
@item
-Regular expressions are case sensitive, but you can use a character class to
-match both lettercases if you wish. For example, @samp{[aA]} matches
-lowercase or uppercase @samp{a} and @samp{[a-zA-Z]} matches any letter in
-either case.
-
-@item
The pattern matches if it occurs anywhere in the value being tested.
(SQL patterns match only if they match the entire value.)
@@ -12806,7 +12825,7 @@ pattern.
@end itemize
To demonstrate how extended regular expressions work, the @code{LIKE} queries
-shown above are rewritten below to use @code{REGEXP}.
+shown previously are rewritten here to use @code{REGEXP}.
To find names beginning with @samp{b}, use @samp{^} to match the beginning of
the name:
@@ -12821,7 +12840,7 @@ mysql> SELECT * FROM pet WHERE name REGEXP "^b";
+--------+--------+---------+------+------------+------------+
@end example
-Prior to MySQL Version 3.23.4, @code{REGEXP} is case sensitive,
+Prior to MySQL Version 3.23.4, @code{REGEXP} is case-sensitive,
and the previous query will return no rows. To match either lowercase or
uppercase @samp{b}, use this query instead:
@@ -12830,7 +12849,7 @@ mysql> SELECT * FROM pet WHERE name REGEXP "^[bB]";
@end example
From MySQL 3.23.4 on, to force a @code{REGEXP} comparison to
-be case sensitive, use the @code{BINARY} keyword to make one of the
+be case-sensitive, use the @code{BINARY} keyword to make one of the
strings a binary string. This query will match only lowercase @samp{b}
at the beginning of a name:
@@ -12865,7 +12884,7 @@ mysql> SELECT * FROM pet WHERE name REGEXP "w";
@end example
Because a regular expression pattern matches if it occurs anywhere in the
-value, it is not necessary in the previous query to put a wild card on either
+value, it is not necessary in the previous query to put a wildcard on either
side of the pattern to get it to match the entire value like it would be if
you used a SQL pattern.
@@ -13073,7 +13092,7 @@ mysql> CREATE TABLE event (name VARCHAR(20), date DATE,
As with the @code{pet} table, it's easiest to load the initial records
by creating a tab-delimited text file containing the information:
-@multitable @columnfractions .10 .15 .10 .30
+@multitable @columnfractions .10 .15 .10 .35
@item @strong{name} @tab @strong{date} @tab @strong{type} @tab @strong{remark}
@item Fluffy @tab 1995-05-15 @tab litter @tab 4 kittens, 3 female, 1 male
@item Buffy @tab 1993-06-23 @tab litter @tab 5 puppies, 2 female, 3 male
@@ -13220,8 +13239,8 @@ mysql> DESCRIBE pet;
@end example
@code{Field} indicates the column name, @code{Type} is the data type for
-the column, @code{NULL} indicates whether or not the column can contain
-@code{NULL} values, @code{Key} indicates whether or not the column is
+the column, @code{NULL} indicates whether the column can contain
+@code{NULL} values, @code{Key} indicates whether the column is
indexed, and @code{Default} specifies the column's default value.
If you have indexes on a table,
@@ -13242,7 +13261,7 @@ article (item number) for certain traders (dealers). Supposing that each
trader has a single fixed price per article, then (@code{article},
@code{dealer}) is a primary key for the records.
-Start the command line tool @code{mysql} and select a database:
+Start the command-line tool @code{mysql} and select a database:
@example
mysql your-database-name
@@ -13290,7 +13309,7 @@ mysql> SELECT * FROM shop;
* example-user-variables:: Using user variables
* example-Foreign keys:: Using foreign keys
* Searching on two keys:: Searching on Two Keys
-* Calculating days:: Calculating visits per day
+* Calculating days:: Calculating Visits Per Day
* example-AUTO_INCREMENT:: Using AUTO_INCREMENT
@end menu
@@ -13457,9 +13476,8 @@ For example, to find the articles with the highest and lowest price you
can do:
@example
-select @@min_price:=min(price),@@max_price:=max(price) from shop;
-select * from shop where price=@@min_price or price=@@max_price;
-
+mysql> SELECT @@min_price:=MIN(price),@@max_price:=MAX(price) FROM shop;
+mysql> SELECT * FROM shop WHERE price=@@min_price OR price=@@max_price;
+---------+--------+-------+
| article | dealer | price |
+---------+--------+-------+
@@ -13595,7 +13613,7 @@ The above way to solve this query is in effect a @code{UNION} of two queries.
@xref{UNION}.
@node Calculating days, example-AUTO_INCREMENT, Searching on two keys, Examples
-@subsection Calculating visits per day
+@subsection Calculating Visits Per Day
@findex BIT_OR
@findex BIT_COUNT
@@ -13628,7 +13646,7 @@ year/month combination, with automatic removal of duplicate entries.
@node example-AUTO_INCREMENT, , Calculating days, Examples
-@subsection Using AUTO_INCREMENT
+@subsection Using @code{AUTO_INCREMENT}
@cindex AUTO_INCREMENT
The @code{AUTO_INCREMENT} attribute can be used to generate an unique
@@ -13681,8 +13699,8 @@ Which returns:
+--------+----+---------+
@end example
-Note that in this case, the auto_increment value will be reused if you
-delete the row with the biggest auto_increment value in any group.
+Note that in this case, the @code{AUTO_INCREMENT} value will be reused if you
+delete the row with the biggest @code{AUTO_INCREMENT} value in any group.
You can get the used @code{AUTO_INCREMENT} key with the
@code{LAST_INSERT_ID()} SQL function or the @code{mysql_insert_id()} API
@@ -13713,7 +13731,7 @@ characters in the file that causes problems, you can do:
dos> mysql -e "source batch-file"
@end example
-If you need to specify connection parameters on the command line, the
+If you need to specify connection parameters on the command-line, the
command might look like this:
@example
@@ -13725,7 +13743,7 @@ When you use @code{mysql} this way, you are creating a script file, then
executing the script.
If you want the script to continue even if you have errors, you should
-use the @code{--force} command line option.
+use the @code{--force} command-line option.
Why use a script? Here are a few reasons:
@@ -13800,11 +13818,11 @@ If you want to get the interactive output format in batch mode, use
@code{mysql -t}. To echo to the output the commands that are executed, use
@code{mysql -vvv}.
-You can also use scripts in the @code{mysql} command line prompt by
+You can also use scripts in the @code{mysql} command-line prompt by
using the @code{source} command:
@example
-mysql> source filename
+mysql> source filename;
@end example
@node Twin, Apache, Batch mode, Tutorial
@@ -13831,7 +13849,7 @@ environmental risk factors.
More information about Twin studies can be found at:
@uref{http://www.imm.ki.se/TWIN/TWINUKW.HTM}
-The latter part of the project is administered with a Web interface
+The latter part of the project is administered with a web interface
written using Perl and MySQL.
Each night all data from the interviews are moved into a MySQL
@@ -13850,96 +13868,96 @@ The following query is used to determine who goes into the second part of the
project:
@example
-select
- concat(p1.id, p1.tvab) + 0 as tvid,
- concat(p1.christian_name, " ", p1.surname) as Name,
- p1.postal_code as Code,
- p1.city as City,
- pg.abrev as Area,
- if(td.participation = "Aborted", "A", " ") as A,
- p1.dead as dead1,
- l.event as event1,
- td.suspect as tsuspect1,
- id.suspect as isuspect1,
- td.severe as tsevere1,
- id.severe as isevere1,
- p2.dead as dead2,
- l2.event as event2,
- h2.nurse as nurse2,
- h2.doctor as doctor2,
- td2.suspect as tsuspect2,
- id2.suspect as isuspect2,
- td2.severe as tsevere2,
- id2.severe as isevere2,
+SELECT
+ CONCAT(p1.id, p1.tvab) + 0 AS tvid,
+ CONCAT(p1.christian_name, " ", p1.surname) AS Name,
+ p1.postal_code AS Code,
+ p1.city AS City,
+ pg.abrev AS Area,
+ IF(td.participation = "Aborted", "A", " ") AS A,
+ p1.dead AS dead1,
+ l.event AS event1,
+ td.suspect AS tsuspect1,
+ id.suspect AS isuspect1,
+ td.severe AS tsevere1,
+ id.severe AS isevere1,
+ p2.dead AS dead2,
+ l2.event AS event2,
+ h2.nurse AS nurse2,
+ h2.doctor AS doctor2,
+ td2.suspect AS tsuspect2,
+ id2.suspect AS isuspect2,
+ td2.severe AS tsevere2,
+ id2.severe AS isevere2,
l.finish_date
-from
- twin_project as tp
+FROM
+ twin_project AS tp
/* For Twin 1 */
- left join twin_data as td on tp.id = td.id
- and tp.tvab = td.tvab
- left join informant_data as id on tp.id = id.id
- and tp.tvab = id.tvab
- left join harmony as h on tp.id = h.id
- and tp.tvab = h.tvab
- left join lentus as l on tp.id = l.id
- and tp.tvab = l.tvab
+ LEFT JOIN twin_data AS td ON tp.id = td.id
+ AND tp.tvab = td.tvab
+ LEFT JOIN informant_data AS id ON tp.id = id.id
+ AND tp.tvab = id.tvab
+ LEFT JOIN harmony AS h ON tp.id = h.id
+ AND tp.tvab = h.tvab
+ LEFT JOIN lentus AS l ON tp.id = l.id
+ AND tp.tvab = l.tvab
/* For Twin 2 */
- left join twin_data as td2 on p2.id = td2.id
- and p2.tvab = td2.tvab
- left join informant_data as id2 on p2.id = id2.id
- and p2.tvab = id2.tvab
- left join harmony as h2 on p2.id = h2.id
- and p2.tvab = h2.tvab
- left join lentus as l2 on p2.id = l2.id
- and p2.tvab = l2.tvab,
- person_data as p1,
- person_data as p2,
- postal_groups as pg
-where
+ LEFT JOIN twin_data AS td2 ON p2.id = td2.id
+ AND p2.tvab = td2.tvab
+ LEFT JOIN informant_data AS id2 ON p2.id = id2.id
+ AND p2.tvab = id2.tvab
+ LEFT JOIN harmony AS h2 ON p2.id = h2.id
+ AND p2.tvab = h2.tvab
+ LEFT JOIN lentus AS l2 ON p2.id = l2.id
+ AND p2.tvab = l2.tvab,
+ person_data AS p1,
+ person_data AS p2,
+ postal_groups AS pg
+WHERE
/* p1 gets main twin and p2 gets his/her twin. */
/* ptvab is a field inverted from tvab */
- p1.id = tp.id and p1.tvab = tp.tvab and
- p2.id = p1.id and p2.ptvab = p1.tvab and
+ p1.id = tp.id AND p1.tvab = tp.tvab AND
+ p2.id = p1.id AND p2.ptvab = p1.tvab AND
/* Just the sceening survey */
- tp.survey_no = 5 and
+ tp.survey_no = 5 AND
/* Skip if partner died before 65 but allow emigration (dead=9) */
- (p2.dead = 0 or p2.dead = 9 or
- (p2.dead = 1 and
- (p2.death_date = 0 or
- (((to_days(p2.death_date) - to_days(p2.birthday)) / 365)
+ (p2.dead = 0 OR p2.dead = 9 OR
+ (p2.dead = 1 AND
+ (p2.death_date = 0 OR
+ (((TO_DAYS(p2.death_date) - TO_DAYS(p2.birthday)) / 365)
>= 65))))
- and
+ AND
(
/* Twin is suspect */
- (td.future_contact = 'Yes' and td.suspect = 2) or
+ (td.future_contact = 'Yes' AND td.suspect = 2) OR
/* Twin is suspect - Informant is Blessed */
- (td.future_contact = 'Yes' and td.suspect = 1
- and id.suspect = 1) or
+ (td.future_contact = 'Yes' AND td.suspect = 1
+ AND id.suspect = 1) OR
/* No twin - Informant is Blessed */
- (ISNULL(td.suspect) and id.suspect = 1
- and id.future_contact = 'Yes') or
+ (ISNULL(td.suspect) AND id.suspect = 1
+ AND id.future_contact = 'Yes') OR
/* Twin broken off - Informant is Blessed */
(td.participation = 'Aborted'
- and id.suspect = 1 and id.future_contact = 'Yes') or
+ AND id.suspect = 1 AND id.future_contact = 'Yes') OR
/* Twin broken off - No inform - Have partner */
- (td.participation = 'Aborted' and ISNULL(id.suspect)
- and p2.dead = 0))
- and
+ (td.participation = 'Aborted' AND ISNULL(id.suspect)
+ AND p2.dead = 0))
+ AND
l.event = 'Finished'
/* Get at area code */
- and substring(p1.postal_code, 1, 2) = pg.code
+ AND SUBSTRING(p1.postal_code, 1, 2) = pg.code
/* Not already distributed */
- and (h.nurse is NULL or h.nurse=00 or h.doctor=00)
+ AND (h.nurse IS NULL OR h.nurse=00 OR h.doctor=00)
/* Has not refused or been aborted */
- and not (h.status = 'Refused' or h.status = 'Aborted'
- or h.status = 'Died' or h.status = 'Other')
-order by
+ AND NOT (h.status = 'Refused' OR h.status = 'Aborted'
+ OR h.status = 'Died' OR h.status = 'Other')
+ORDER BY
tvid;
@end example
Some explanations:
@table @asis
-@item @code{concat(p1.id, p1.tvab) + 0 as tvid}
+@item @code{CONCAT(p1.id, p1.tvab) + 0 AS tvid}
We want to sort on the concatenated @code{id} and @code{tvab} in
numerical order. Adding @code{0} to the result causes MySQL to
treat the result as a number.
@@ -13982,29 +14000,29 @@ The current number of records in the tables used above:
@subsection Show a Table on Twin Pair Status
Each interview ends with a status code called @code{event}. The query
-shown below is used to display a table over all twin pairs combined by
+shown here is used to display a table over all twin pairs combined by
event. This indicates in how many pairs both twins are finished, in how many
pairs one twin is finished and the other refused, and so on.
@example
-select
+SELECT
t1.event,
t2.event,
- count(*)
-from
- lentus as t1,
- lentus as t2,
- twin_project as tp
-where
+ COUNT(*)
+FROM
+ lentus AS t1,
+ lentus AS t2,
+ twin_project AS tp
+WHERE
/* We are looking at one pair at a time */
t1.id = tp.id
- and t1.tvab=tp.tvab
- and t1.id = t2.id
+ AND t1.tvab=tp.tvab
+ AND t1.id = t2.id
/* Just the sceening survey */
- and tp.survey_no = 5
+ AND tp.survey_no = 5
/* This makes each pair only appear once */
- and t1.tvab='1' and t2.tvab='2'
-group by
+ AND t1.tvab='1' AND t2.tvab='2'
+GROUP BY
t1.event, t2.event;
@end example
@@ -14062,15 +14080,15 @@ FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '\\'
@menu
-* Command-line options:: mysqld Command-line Options
-* Option files:: my.cnf Option Files
+* Command-line options:: @code{mysqld} Command-line Options
+* Option files:: @file{my.cnf} Option Files
* Installing many servers:: Installing Many Servers on the Same Machine
* Multiple servers:: Running Multiple MySQL Servers on the Same Machine
@end menu
@node Command-line options, Option files, Configuring MySQL, Configuring MySQL
-@subsection mysqld Command-line Options
+@subsection @code{mysqld} Command-line Options
@findex command-line options
@cindex options, command-line
@@ -14117,8 +14135,9 @@ though.
@item --core-file
Write a core file if @code{mysqld} dies. For some systems you must also
-specify @code{--core-file-size} to @code{safe_mysqld}. @xref{safe_mysqld, ,
-@code{safe_mysqld}}. Note that on some system like Solaris, you will
+specify @code{--core-file-size} to @code{safe_mysqld}.
+@xref{safe_mysqld, ,@code{safe_mysqld}}.
+Note that on some systems, like Solaris, you will
not get a core file if you are also using the @code{--user} option.
@item -h, --datadir=path
@@ -14144,8 +14163,8 @@ Read the default keys used by @code{DES_ENCRYPT()} and @code{DES_DECRYPT()}
from this file.
@item --enable-locking
-Enable system locking. Note that if you use this option on a system
-which a not fully working lockd() (as on Linux) you will easily get
+Enable system locking. Note that if you use this option on a system on
+which @code{lockd} does not fully work (as on Linux), you will easily get
mysqld to deadlock.
@item --enable-named-pipe
@@ -14153,7 +14172,7 @@ Enable support for named pipes (only on NT/Win2000/XP).
@item -T, --exit-info
This is a bit mask of different flags one can use for debugging the
-mysqld server; One should not use this option if one doesn't know
+mysqld server; one should not use this option if one doesn't know
exactly what it does!
@item --flush
@@ -14205,11 +14224,12 @@ system supports the @code{mlockall()} system call (like Solaris). This
may help if you have a problem where the operating system is causing
@code{mysqld} to swap on disk.
-@item --myisam-recover [=option[,option...]]] where option is any combination
+@item --myisam-recover [=option[,option...]]]
+Option is any combination
of @code{DEFAULT}, @code{BACKUP}, @code{FORCE} or @code{QUICK}. You can
-also set this explicitely to @code{""} if you want to disable this
+also set this explicitly to @code{""} if you want to disable this
option. If this option is used, @code{mysqld} will on open check if the
-table is marked as crashed or if if the table wasn't closed properly.
+table is marked as crashed or if the table wasn't closed properly.
(The last option only works if you are running with
@code{--skip-locking}.) If this is the case @code{mysqld} will run
check on the table. If the table was corrupted, @code{mysqld} will
@@ -14222,7 +14242,7 @@ The following options affects how the repair works.
@item DEFAULT @tab The same as not giving any option to
@code{--myisam-recover}.
@item BACKUP @tab If the data table was changed during recover, save a
- backup of the @file{table_name.MYD} data file as
+ backup of the @file{table_name.MYD} datafile as
@file{table_name-datetime.BAK}.
@item FORCE @tab Run recover even if we will loose more than one row
from the .MYD file.
@@ -14234,7 +14254,7 @@ Before a table is automatically repaired, MySQL will add a note
about this in the error log. If you want to be able to recover from most
things without user intervention, you should use the options
@code{BACKUP,FORCE}. This will force a repair of a table even if some rows
-would be deleted, but it will keep the old data file as a backup so that
+would be deleted, but it will keep the old datafile as a backup so that
you can later examine what happened.
@item --pid-file=path
@@ -14264,7 +14284,7 @@ Don't show databases for which the user doesn't have any privileges.
@item --safe-user-create
If this is enabled, a user can't create new users with the GRANT
-command, if the user doesn't have @code{INSERT} privilege to the
+command, if the user doesn't have @strong{insert} privilege to the
@code{mysql.user} table or any column in this table.
@item --skip-concurrent-insert
@@ -14278,7 +14298,7 @@ Ignore the @code{delay_key_write} option for all tables.
@item --skip-grant-tables
This option causes the server not to use the privilege system at all. This
-gives everyone @emph{full access} to all databases! (You can tell a running
+gives everyone @strong{full access} to all databases! (You can tell a running
server to start using the grant tables again by executing @code{mysqladmin
flush-privileges} or @code{mysqladmin reload}.)
@@ -14321,7 +14341,8 @@ privilege.
@item --skip-stack-trace
Don't write stack traces. This option is useful when you are running
-@code{mysqld} under a debugger. @xref{Debugging server}.
+@code{mysqld} under a debugger. On some system you also have to use
+this option to get a core file. @xref{Debugging server}.
@item --skip-thread-priority
Disable using thread priorities for faster response time.
@@ -14339,7 +14360,15 @@ Option can be any combination of: @code{REAL_AS_FLOAT},
By specifying all of the above options is same as using --ansi.
With this option one can turn on only needed SQL modes. @xref{ANSI mode}.
-@item transaction-isolation= @{ READ-UNCOMMITTED | READ-COMMITTED | REPEATABLE-READ | SERIALIZABLE @}
+@item --temp-pool
+Using this option will cause most temporary files created to use a small
+set of names, rather than a unique name for each new file. This is to
+work around a problem in the Linux kernel dealing with creating a bunch
+of new files with different names. With the old behavior, Linux seems to
+'leak' memory, as it's being allocated to the directory entry cache
+instead of the disk cache.
+
+@item --transaction-isolation= @{ READ-UNCOMMITTED | READ-COMMITTED | REPEATABLE-READ | SERIALIZABLE @}
Sets the default transaction isolation level. @xref{SET TRANSACTION}.
@item -t, --tmpdir=path
@@ -14348,7 +14377,7 @@ directory resides on a partition too small to hold temporary tables.
@item -u, --user= [user_name | userid]
Run @code{mysqld} daemon as user @code{user_name} or @code{userid} (numeric).
-This option is @emph{mandatory} when starting @code{mysqld} as root.
+This option is @strong{mandatory} when starting @code{mysqld} as root.
@item -V, --version
Output version information and exit.
@@ -14360,7 +14389,7 @@ Print out warnings like @code{Aborted connection...} to the @file{.err} file.
@node Option files, Installing many servers, Command-line options, Configuring MySQL
-@subsection my.cnf Option Files
+@subsection @file{my.cnf} Option Files
@cindex default options
@cindex option files
@@ -14373,7 +14402,7 @@ server and for clients from option files.
MySQL reads default options from the following files on Unix:
@tindex .my.cnf file
-@multitable @columnfractions .35 .45
+@multitable @columnfractions .35 .50
@item @strong{Filename} @tab @strong{Purpose}
@item @code{/etc/my.cnf} @tab Global options
@item @code{DATADIR/my.cnf} @tab Server-specific options
@@ -14391,7 +14420,7 @@ before it processes any command-line arguments.)
MySQL reads default options from the following files on Windows:
-@multitable @columnfractions .35 .45
+@multitable @columnfractions .35 .50
@item @strong{Filename} @tab @strong{Purpose}
@item @code{windows-system-directory\my.ini} @tab Global options
@item @code{C:\my.cnf} @tab Global options
@@ -14405,9 +14434,9 @@ Note that on Windows, you should specify all paths with @code{/} instead of
MySQL tries to read option files in the order listed above. If
multiple option files exist, an option specified in a file read later takes
precedence over the same option specified in a file read earlier. Options
-specified on the command line take precedence over options specified in any
+specified on the command-line take precedence over options specified in any
option file. Some options can be specified using environment variables.
-Options specified on the command line or in option files take precedence over
+Options specified on the command-line or in option files take precedence over
environment variable values. @xref{Environment variables}.
The following programs support option files: @code{mysql},
@@ -14415,7 +14444,7 @@ The following programs support option files: @code{mysql},
@code{mysqldump}, @code{mysqlimport}, @code{mysqlshow}, @code{mysqlcheck},
@code{myisamchk}, and @code{myisampack}.
-Any long option that may be given on the command line when running a MySQL
+Any long option that may be given on the command-line when running a MySQL
program can be given in an option file as well (without the leading double
dash). Run the program with @code{--help} to get a list of available options.
@@ -14432,13 +14461,13 @@ apply to the named group until the end of the option file or another group
line is given.
@item option
-This is equivalent to @code{--option} on the command line.
+This is equivalent to @code{--option} on the command-line.
@item option=value
-This is equivalent to @code{--option=value} on the command line.
+This is equivalent to @code{--option=value} on the command-line.
@item set-variable = variable=value
-This is equivalent to @code{--set-variable variable=value} on the command line.
+This is equivalent to @code{--set-variable variable=value} on the command-line.
This syntax must be used to set a @code{mysqld} variable.
@end table
@@ -14506,7 +14535,7 @@ following options:
@item --defaults-extra-file=full-path-to-default-file @tab Read this configuration file after the global configuration file but before the user configuration file.
@end multitable
-Note that the above options must be first on the command line to work!
+Note that the above options must be first on the command-line to work!
@code{--print-defaults} may however be used directly after the
@code{--defaults-xxx-file} commands.
@@ -14570,8 +14599,7 @@ will automatically be directed to the new running server!
If you need to do this more permanently, you should create an option
file for each server. @xref{Option files}. In your startup script that
-is executed at boot time (mysql.server?) you should specify for both
-servers:
+is executed at boot time you should specify for both servers:
@code{safe_mysqld --default-file=path-to-option-file}
@@ -14637,9 +14665,9 @@ shell> ./configure --with-tcp-port=port_number \
--prefix=/usr/local/mysql-3.22.9
@end example
-Here @code{port_number} and @code{file_name} should be different than the
+Here @code{port_number} and @code{file_name} should be different from the
default port number and socket file pathname, and the @code{--prefix} value
-should specify an installation directory different than the one under which
+should specify an installation directory different from the one under which
the existing MySQL installation is located.
You can check the socket used by any currently executing MySQL server
@@ -14658,7 +14686,7 @@ MySQL, including the socket name.
You don't have to recompile a new MySQL server just to start with
a different port and socket. You can change the port and socket to be used
-by specifying them at run time as options to @code{safe_mysqld}:
+by specifying them at runtime as options to @code{safe_mysqld}:
@example
shell> /path/to/safe_mysqld --socket=file_name --port=port_number
@@ -14674,7 +14702,7 @@ files to @code{safe_mysqld} with @code{--log}, @code{--log-update}, or
@code{--log-slow-queries}. Otherwise, both servers may be trying to
write to the same log file.
-@strong{Warning}: Normally you should never have two servers that update
+@strong{Warning}: normally you should never have two servers that update
data in the same database! If your OS doesn't support fault-free system
locking, this may lead to unpleasant surprises!
@@ -14856,7 +14884,7 @@ connection is refused, everything is OK; the port is blocked.
@item
Do not trust any data entered by your users. They can try to trick your
-code by entering special or escaped character sequences in Web forms,
+code by entering special or escaped character sequences in web forms,
URLs, or whatever application you have built. Be sure that your
application remains secure if a user enters something like ``@code{; DROP
DATABASE mysql;}''. This is an extreme example, but large security leaks
@@ -14876,10 +14904,10 @@ strips all non-numeric symbols from it.
Checklist:
@itemize @minus
@item
-All Web applications:
+All web applications:
@itemize @bullet
@item
-Try to enter @samp{'} and @samp{"} in all your Web forms. If you get any kind
+Try to enter @samp{'} and @samp{"} in all your web forms. If you get any kind
of MySQL error, investigate the problem right away.
@item
Try to modify any dynamic URLs by adding @code{%22} (@samp{"}), @code{%23}
@@ -14938,7 +14966,7 @@ SSH port-forwarding can be used to create an encrypted (and compressed)
tunnel for the communication.
@item
Learn to use the @code{tcpdump} and @code{strings} utilities. For most cases,
-you can check whether or not MySQL data streams are unencrypted
+you can check whether MySQL data streams are unencrypted
by issuing a command like the following:
@example
@@ -14971,7 +14999,7 @@ All other information is transferred as text that can be read by anyone
who is able to watch the connection. If you are concerned about this,
you can use the compressed protocol (in MySQL Version 3.22 and above)
to make things much harder. To make things even more secure you should use
-@code{ssh}. You can find an Open Source @code{ssh} client at
+@code{ssh}. You can find an @code{Open Source} @code{ssh} client at
@uref{http://www.openssh.org/}, and a commercial @code{ssh} client at
@uref{http://www.ssh.com/}. With this, you can get an encrypted TCP/IP
connection between a MySQL server and a MySQL client.
@@ -15001,7 +15029,7 @@ mysql> FLUSH PRIVILEGES;
@item
Don't run the MySQL daemon as the Unix @code{root} user. This is
-very dangerous, because any user with @code{FILE} privileges will be able
+very dangerous, because any user with the @strong{file} privilege will be able
to create files as @code{root} (for example, @code{~root/.bashrc}). To
prevent this, @code{mysqld} will refuse to run as @code{root} unless it
is specified directly using a @code{--user=root} option.
@@ -15049,12 +15077,12 @@ in and check things even if all normal connections are in use.
@item
Don't give the @strong{file} privilege to all users. Any user that has this
-privilege can write a file anywhere in the file system with the privileges of
+privilege can write a file anywhere in the filesystem with the privileges of
the @code{mysqld} daemon! To make this a bit safer, all files generated with
@code{SELECT ... INTO OUTFILE} are readable to everyone, and you cannot
overwrite existing files.
-@tindex /etc/passwd
+@tindex @file{/etc/passwd}
The @strong{file} privilege may also be used to read any file accessible
to the Unix user that the server runs as. This could be abused, for example,
by using @code{LOAD DATA} to load @file{/etc/passwd} into a table, which
@@ -15064,7 +15092,7 @@ can then be read with @code{SELECT}.
If you don't trust your DNS, you should use IP numbers instead of
hostnames in the grant tables. In any case, you should be very careful
about creating grant table entries using hostname values that contain
-wild cards!
+wildcards!
@item
If you want to restrict the number of connections for a single user, you
@@ -15090,13 +15118,13 @@ some kind of privilege.
@item --safe-user-create
If this is enabled, an user can't create new users with the @code{GRANT}
-command, if the user doesn't have @code{INSERT} privilege to the
+command, if the user doesn't have the @strong{insert} privilege for the
@code{mysql.user} table. If you want to give a user access to just create
new users with those privileges that the user has right to grant, you should
give the user the following privilege:
@example
-GRANT INSERT(user) on mysql.user to 'user'@@'hostname';
+mysql> GRANT INSERT(user) ON mysql.user TO 'user'@@'hostname';
@end example
This will ensure that the user can't change any privilege columns directly,
@@ -15104,7 +15132,7 @@ but has to use the @code{GRANT} command to give privileges to other users.
@item --skip-grant-tables
This option causes the server not to use the privilege system at all. This
-gives everyone @emph{full access} to all databases! (You can tell a running
+gives everyone @strong{full access} to all databases! (You can tell a running
server to start using the grant tables again by executing @code{mysqladmin
flush-privileges} or @code{mysqladmin reload}.)
@@ -15149,7 +15177,7 @@ If you don't configure MySQL with @code{--enable-local-infile}, then
calls @code{mysql_options(... MYSQL_OPT_LOCAL_INFILE, 0)} in the client.
@xref{mysql_options, , @code{mysql_options()}}.
-For the @code{mysql} command line client, @code{LOAD DATA LOCAL} can be
+For the @code{mysql} command-line client, @code{LOAD DATA LOCAL} can be
enabled by specifying the option @code{--local-infile[=1]}, or disabled
with @code{--local-infile=0}.
@@ -15160,7 +15188,7 @@ before.
One can disable all @code{LOAD DATA LOCAL} commands in the MySQL server
by starting @code{mysqld} with @code{--local-infile=0}.
-In the case that @code{LOAD DATA INFILE} is disabled in the server or
+In the case that @code{LOAD DATA LOCAL INFILE} is disabled in the server or
the client, you will get the error message (1148):
@example
@@ -15209,11 +15237,11 @@ MySQL access control involves two stages:
@itemize @bullet
@item
-Stage 1: The server checks whether or not you are even allowed to connect.
+Stage 1: The server checks whether you are even allowed to connect.
@item
Stage 2: Assuming you can connect, the server checks each request you issue
-to see whether or not you have sufficient privileges to perform it. For
+to see whether you have sufficient privileges to perform it. For
example, if you try to select rows from a table in a database or drop a table
from the database, the server makes sure you have the @strong{select}
privilege for the table or the @strong{drop} privilege for the database.
@@ -15221,7 +15249,7 @@ privilege for the table or the @strong{drop} privilege for the database.
The server uses the @code{user}, @code{db}, and @code{host} tables in the
@code{mysql} database at both stages of access control. The fields in these
-grant tables are shown below:
+grant tables are shown here:
@multitable @columnfractions .20 .20 .20 .20
@item @strong{Table name} @tab @code{user} @tab @code{db} @tab @code{host}
@@ -15249,7 +15277,7 @@ grant tables are shown below:
For the second stage of access control (request verification), the server
may, if the request involves tables, additionally consult the
@code{tables_priv} and @code{columns_priv} tables. The fields in these
-tables are shown below:
+tables are shown here:
@multitable @columnfractions .20 .20 .20
@item @strong{Table name} @tab @code{tables_priv} @tab @code{columns_priv}
@@ -15283,9 +15311,9 @@ to which each entry applies.
@cindex case sensitivity, in access checking
For access-checking purposes, comparisons of @code{Host} values are
-case insensitive. @code{User}, @code{Password}, @code{Db}, and
-@code{Table_name} values are case sensitive.
-@code{Column_name} values are case insensitive in MySQL Version
+case-insensitive. @code{User}, @code{Password}, @code{Db}, and
+@code{Table_name} values are case-sensitive.
+@code{Column_name} values are case-insensitive in MySQL Version
3.22.12 or later.
Privilege fields indicate the privileges granted by a table entry, that is,
@@ -15293,10 +15321,10 @@ what operations can be performed. The server combines the information in the
various grant tables to form a complete description of a user's privileges.
The rules used to do this are described in @ref{Request access}.
-Scope fields are strings, declared as shown below; the default value for
+Scope fields are strings, declared as shown here; the default value for
each is the empty string:
-@multitable @columnfractions .15 .15 .6
+@multitable @columnfractions .20 .15 .65
@item @strong{Field name} @tab @strong{Type} @tab @strong{Notes}
@item @code{Host} @tab @code{CHAR(60)} @tab
@item @code{User} @tab @code{CHAR(16)} @tab
@@ -15308,13 +15336,13 @@ each is the empty string:
@end multitable
In the @code{user}, @code{db} and @code{host} tables,
-all privilege fields are declared as @code{ENUM('N','Y')} --- each can have a
+all privilege fields are declared as @code{ENUM('N','Y')}@-each can have a
value of @code{'N'} or @code{'Y'}, and the default value is @code{'N'}.
In the @code{tables_priv} and @code{columns_priv} tables, the privilege
fields are declared as @code{SET} fields:
-@multitable @columnfractions .15 .15 .50
+@multitable @columnfractions .15 .15 .55
@item @strong{Table name}
@tab @strong{Field name}
@tab @strong{Possible set elements}
@@ -15367,7 +15395,7 @@ etc.) are specified only in the @code{user} table. This is because
administrative operations are operations on the server itself and are not
database-specific, so there is no reason to list such privileges in the
other grant tables. In fact, only the @code{user} table need
-be consulted to determine whether or not you can perform an administrative
+be consulted to determine whether you can perform an administrative
operation.
The @strong{file} privilege is specified only in the @code{user} table, too.
@@ -15405,11 +15433,11 @@ MySQL server reads the contents of these tables when it starts up
and under the circumstances indicated in @ref{Privilege changes}.
The names used in this manual to refer to the privileges provided by
-MySQL are shown below, along with the table column name associated
+MySQL are shown here, along with the table column name associated
with each privilege in the grant tables and the context in which the
privilege applies:
-@multitable @columnfractions .15 .20 .30
+@multitable @columnfractions .15 .20 .35
@item @strong{Privilege} @tab @strong{Column} @tab @strong{Context}
@item @strong{select} @tab @code{Select_priv} @tab tables
@item @strong{insert} @tab @code{Insert_priv} @tab tables
@@ -15462,7 +15490,7 @@ OUTFILE} statements. Any user to whom this privilege is granted can read or
write any file that the MySQL server can read or write.
The remaining privileges are used for administrative operations, which are
-performed using the @code{mysqladmin} program. The table below shows which
+performed using the @code{mysqladmin} program. The table here shows which
@code{mysqladmin} commands each administrative privilege allows you to
execute:
@@ -15566,12 +15594,12 @@ Alternate forms of the @code{-h}, @code{-u}, and @code{-p} options are
@code{--password=your_pass}. Note that there is @emph{no space} between
@code{-p} or @code{--password=} and the password following it.
-@strong{Note:} Specifying a password on the command line is not secure!
+@strong{Note}: Specifying a password on the command-line is not secure!
Any user on your system may then find out your password by typing a command
like: @code{ps auxww}. @xref{Option files}.
@code{mysql} uses default values for connection parameters that are missing
-from the command line:
+from the command-line:
@itemize @bullet
@item
@@ -15596,7 +15624,7 @@ shell> mysql
Other MySQL clients behave similarly.
On Unix systems, you can specify different default values to be used when you
-make a connection, so that you need not enter them on the command line each
+make a connection, so that you need not enter them on the command-line each
time you invoke a client program. This can be done in a couple of ways:
@itemize @bullet
@@ -15639,7 +15667,7 @@ Windows only). The password can be specified using @code{MYSQL_PWD}
@cindex testing, connection to the server
When you attempt to connect to a MySQL server, the server accepts or
-rejects the connection based on your identity and whether or not you can
+rejects the connection based on your identity and whether you can
verify your identity by supplying the correct password. If not, the server
denies access to you completely. Otherwise, the server accepts the
connection, then enters Stage 2 and waits for requests.
@@ -15668,7 +15696,7 @@ to indicate the local host.
@item
@cindex wildcards, in @code{mysql.user} table
-You can use the wild-card characters @samp{%} and @samp{_} in the @code{Host}
+You can use the wildcard characters @samp{%} and @samp{_} in the @code{Host}
field.
@item
@@ -15686,7 +15714,8 @@ IP numbers, you can specify a netmask indicating how many address bits to
use for the network number. For example:
@example
-GRANT ALL PRIVILEGES on db.* to david@@'192.58.197.0/255.255.255.0';
+mysql> GRANT ALL PRIVILEGES ON db.*
+ -> TO david@@'192.58.197.0/255.255.255.0';
@end example
This will allow everyone to connect from an IP where the following is true:
@@ -15700,7 +15729,7 @@ In the above example all IP:s in the interval 192.58.197.0 -
@item
@cindex anonymous user
-Wild-card characters are not allowed in the @code{User} field, but you can
+Wildcard characters are not allowed in the @code{User} field, but you can
specify a blank value, which matches any name. If the @code{user} table
entry that matches an incoming connection has a blank user name, the user is
considered to be the anonymous user (the user with no name), rather than the
@@ -15725,7 +15754,7 @@ point of view the encrypted password is the REAL password, so you should
not give anyone access to it! In particular, don't give normal users
read access to the tables in the @code{mysql} database!
-The examples below show how various combinations of @code{Host} and
+The examples here show how various combinations of @code{Host} and
@code{User} values in @code{user} table entries apply to incoming
connections:
@@ -15742,14 +15771,14 @@ connections:
@item @code{'144.155.166.0/255.255.255.0'} @tab @code{'fred'} @tab Same as previous example
@end multitable
-Because you can use IP wild-card values in the @code{Host} field (for example,
+Because you can use IP wildcard values in the @code{Host} field (for example,
@code{'144.155.166.%'} to match every host on a subnet), there is the
possibility that someone might try to exploit this capability by naming a
host @code{144.155.166.somewhere.com}. To foil such attempts, MySQL
disallows matching on hostnames that start with digits and a dot. Thus, if
you have a host named something like @code{1.2.foo.com}, its name will never
match the @code{Host} column of the grant tables. Only an IP number can
-match an IP wild-card value.
+match an IP wildcard value.
An incoming connection may be matched by more than one entry in the
@code{user} table. For example, a connection from @code{thomas.loc.gov} by
@@ -15863,14 +15892,14 @@ in the @code{user} table set to @code{'N'} and grant privileges on a
database-specific basis only, using the @code{db} and @code{host} tables.
@cindex anonymous user
-@cindex wild cards, in @code{mysql.db} table
-@cindex wild cards, in @code{mysql.host} table
+@cindex wildcards, in @code{mysql.db} table
+@cindex wildcards, in @code{mysql.host} table
The @code{db} and @code{host} tables grant database-specific privileges.
Values in the scope fields may be specified as follows:
@itemize @bullet
@item
-The wild-card characters @samp{%} and @samp{_} can be used in the @code{Host}
+The wildcard characters @samp{%} and @samp{_} can be used in the @code{Host}
and @code{Db} fields of either table.
@item
@@ -15902,15 +15931,15 @@ values first and least-specific values last, and when the server looks for
matching entries, it uses the first match that it finds.
-@cindex wild cards, in @code{mysql.tables_priv} table
-@cindex wild cards, in @code{mysql.columns_priv} table
+@cindex wildcards, in @code{mysql.tables_priv} table
+@cindex wildcards, in @code{mysql.columns_priv} table
The @code{tables_priv} and @code{columns_priv} tables grant table- and
column-specific privileges. Values in the scope fields may be specified as
follows:
@itemize @bullet
@item
-The wild-card characters @samp{%} and @samp{_}
+The wildcard characters @samp{%} and @samp{_}
can be used in the @code{Host} field of either table.
@item
@@ -15918,15 +15947,15 @@ A @code{'%'} or blank @code{Host} value in either table means ``any host.''
@item
The @code{Db}, @code{Table_name} and @code{Column_name} fields cannot contain
-wild cards or be blank in either table.
+wildcards or be blank in either table.
@end itemize
The @code{tables_priv} and @code{columns_priv} tables are sorted on
the @code{Host}, @code{Db}, and @code{User} fields. This is similar to
@code{db} table sorting, although the sorting is simpler because
-only the @code{Host} field may contain wild cards.
+only the @code{Host} field may contain wildcards.
-The request verification process is described below. (If you are familiar
+The request verification process is described here. (If you are familiar
with the access-checking source code, you will notice that the description
here differs slightly from the algorithm used in the code. The description
is equivalent to what the code actually does; it differs only to make the
@@ -15967,7 +15996,7 @@ access to the database. In this case, a further lookup is done in the
@code{host} table to find a match on the @code{Host} and @code{Db} fields.
If no @code{host} table entry matches, access is denied. If there is a
match, the user's database-specific privileges are computed as the
-intersection (@emph{not} the union!) of the privileges in the @code{db} and
+intersection (@strong{not} the union!) of the privileges in the @code{db} and
@code{host} table entries, that is, the privileges that are @code{'Y'} in both
entries. (This way you can grant general privileges in the @code{db} table
entry and then selectively restrict them on a host-by-host basis using the
@@ -16012,7 +16041,7 @@ The @code{host} table can be used to maintain a list of secure servers.
At TcX, the @code{host} table contains a list of all machines on the local
network. These are granted all privileges.
-You can also use the @code{host} table to indicate hosts that are @emph{not}
+You can also use the @code{host} table to indicate hosts that are @strong{not}
secure. Suppose you have a machine @code{public.your.domain} that is located
in a public area that you do not consider secure. You can allow access to
all hosts on your network except that machine by using @code{host} table
@@ -16042,7 +16071,7 @@ actually set up the way you think they are.
@subsection Causes of @code{Access denied} Errors
If you encounter @code{Access denied} errors when you try to connect to the
-MySQL server, the list below indicates some courses of
+MySQL server, the following list indicates some courses of
action you can take to correct the problem:
@itemize @bullet
@@ -16243,9 +16272,9 @@ name (or vice-versa). For example, if you have an entry with host
your hostname is @code{'tcx.subnet.se'}, the entry will not work. Try adding
an entry to the @code{user} table that contains the IP number of your host as
the @code{Host} column value. (Alternatively, you could add an entry to the
-@code{user} table with a @code{Host} value that contains a wild card---for
+@code{user} table with a @code{Host} value that contains a wildcard---for
example, @code{'tcx.%'}. However, use of hostnames ending with @samp{%} is
-@emph{insecure} and is @emph{not} recommended!)
+@strong{insecure} and is @strong{not} recommended!)
@item
If @code{mysql -u user_name test} works but @code{mysql -u user_name
@@ -16261,7 +16290,7 @@ in the @code{user} table or the @code{db} table.
@item
If you can't figure out why you get @code{Access denied}, remove from the
@code{user} table all entries that have @code{Host} values containing
-wild cards (entries that contain @samp{%} or @samp{_}). A very common error
+wildcards (entries that contain @samp{%} or @samp{_}). A very common error
is to insert a new entry with @code{Host}=@code{'%'} and
@code{User}=@code{'some user'}, thinking that this will allow you to specify
@code{localhost} to connect from the same machine. The reason that this
@@ -16298,7 +16327,7 @@ probably doesn't have the @strong{file} privilege enabled.
Remember that client programs will use connection parameters specified
in configuration files or environment variables. @xref{Environment
variables}. If a client seems to be sending the wrong default
-connection parameters when you don't specify them on the command line,
+connection parameters when you don't specify them on the command-line,
check your environment and the @file{.my.cnf} file in your home
directory. You might also check the system-wide MySQL
configuration files, though it is far less likely that client connection
@@ -16312,7 +16341,7 @@ If you make changes to the grant tables directly (using an @code{INSERT} or
@code{UPDATE} statement) and your changes seem to be ignored, remember
that you must issue a @code{FLUSH PRIVILEGES} statement or execute a
@code{mysqladmin flush-privileges} command to cause the server to re-read
-the privilege tables. Otherwise your changes have no effect until the
+the privilege tables. Otherwise, your changes have no effect until the
next time the server is restarted. Remember that after you set the
@code{root} password with an @code{UPDATE} command, you won't need to
specify it until after you flush the privileges, because the server
@@ -16331,10 +16360,10 @@ prompt you for the password.)
@item
For testing, start the @code{mysqld} daemon with the
@code{--skip-grant-tables} option. Then you can change the MySQL
-grant tables and use the @code{mysqlaccess} script to check whether or not
+grant tables and use the @code{mysqlaccess} script to check whether
your modifications have the desired effect. When you are satisfied with your
changes, execute @code{mysqladmin flush-privileges} to tell the @code{mysqld}
-server to start using the new grant tables. @strong{Note:} Reloading the
+server to start using the new grant tables. @strong{Note}: reloading the
grant tables overrides the @code{--skip-grant-tables} option. This allows
you to tell the server to begin using the grant tables again without bringing
it down and restarting it.
@@ -16367,6 +16396,7 @@ to restart @code{mysqld} with @code{--skip-grant-tables} to run
* Privilege changes:: When Privilege Changes Take Effect
* Default privileges:: Setting Up the Initial MySQL Privileges
* Adding users:: Adding New Users to MySQL
+* User resources:: Limiting user resources
* Passwords:: Setting Up Passwords
* Password security:: Keeping Your Password Secure
* Secure connections:: Using Secure Connections
@@ -16395,7 +16425,9 @@ GRANT priv_type [(column_list)] [, priv_type [(column_list)] ...]
[CIPHER cipher [AND]]
[ISSUER issuer [AND]]
[SUBJECT subject]]
- [WITH [GRANT OPTION | MAX_QUERIES_PER_HOUR=#]]
+ [WITH [GRANT OPTION | MAX_QUERIES_PER_HOUR=# |
+ MAX_UPDATES_PER_HOUR=# |
+ MAX_CONNECTIONS_PER_HOUR=#]]
REVOKE priv_type [(column_list)] [, priv_type [(column_list)] ...]
ON @{tbl_name | * | *.* | db_name.*@}
@@ -16449,7 +16481,7 @@ To revoke the @strong{grant} privilege from a user, use a @code{priv_type}
value of @code{GRANT OPTION}:
@example
-REVOKE GRANT OPTION ON ... FROM ...;
+mysql> REVOKE GRANT OPTION ON ... FROM ...;
@end example
The only @code{priv_type} values you can specify for a table are @code{SELECT},
@@ -16463,17 +16495,17 @@ you use a @code{column_list} clause) are @code{SELECT}, @code{INSERT}, and
You can set global privileges by using @code{ON *.*} syntax. You can set
database privileges by using @code{ON db_name.*} syntax. If you specify
@code{ON *} and you have a current database, you will set the privileges for
-that database. (@strong{Warning:} If you specify @code{ON *} and you
-@emph{don't} have a current database, you will affect the global privileges!)
+that database. (@strong{Warning}: if you specify @code{ON *} and you
+@strong{don't} have a current database, you will affect the global privileges!)
In order to accommodate granting rights to users from arbitrary hosts,
MySQL supports specifying the @code{user_name} value in the form
@code{user@@host}. If you want to specify a @code{user} string
containing special characters (such as @samp{-}), or a @code{host} string
-containing special characters or wild-card characters (such as @samp{%}), you
+containing special characters or wildcard characters (such as @samp{%}), you
can quote the user or host name (for example, @code{'test-user'@@'test-hostname'}).
-You can specify wild cards in the hostname. For example,
+You can specify wildcards in the hostname. For example,
@code{user@@"%.loc.gov"} applies to @code{user} for any host in the
@code{loc.gov} domain, and @code{user@@"144.155.166.%"} applies to @code{user}
for any host in the @code{144.155.166} class C subnet.
@@ -16485,7 +16517,7 @@ defined by inserting entries with @code{User=''} into the
@code{mysql.user} table or creating an user with an empty name with the
@code{GRANT} command.
-@strong{Note:} If you allow anonymous users to connect to the MySQL
+@strong{Note}: if you allow anonymous users to connect to the MySQL
server, you should also grant privileges to all local users as
@code{user@@localhost} because otherwise the anonymous user entry for
the local host in the @code{mysql.user} table will be used when the user
@@ -16539,7 +16571,7 @@ If you don't want to send the password in clear text you can use the
function @code{PASSWORD()} or the C API function
@code{make_scrambled_password(char *to, const char *password)}.
-@strong{Warning:} If you create a new user but do not specify an
+@strong{Warning}: if you create a new user but do not specify an
@code{IDENTIFIED BY} clause, the user has no password. This is insecure.
Passwords can also be set with the @code{SET PASSWORD} command.
@@ -16558,11 +16590,11 @@ to other users any privileges the user has at the specified privilege level.
You should be careful to whom you give the @strong{grant} privilege, as two
users with different privileges may be able to join privileges!
-@code{MAX_QUERIES_PER_HOUR=#} limits the number of queries the user can
-do during one hour. If @code{#} is 0, then this means that there is no
-limit of the number of queries. This works by MySQL resetting a user
-specific query counter to 0, after it has gone more than one hour
-since the counter started incrementing.
+@code{MAX_QUERIES_PER_HOUR=#}, @code{MAX_UPDATES_PER_HOUR=#} and
+@code{MAX_CONNECTIONS_PER_HOUR=#} limit the number of
+queries/updates and logins the user can do during one hour.
+If @code{#} is 0 (default), then this means that there is no limitations
+for the user. @xref{User resources}.
You cannot grant another user a privilege you don't have yourself;
the @strong{grant} privilege allows you to give away only those privileges
@@ -16619,11 +16651,11 @@ MySQL the granted privileges are not automatically revoked, but
you have to revoke these yourself if needed.
@item
-If you in MySQL have the @code{INSERT} grant on only part of the
+In MySQL, if you have the @strong{insert} privilege on only some of the
columns in a table, you can execute @code{INSERT} statements on the
-table; The columns for which you don't have the @code{INSERT} privilege
-will set to their default values. ANSI SQL requires you to have the
-@code{INSERT} privilege on all columns.
+table; the columns for which you don't have the @strong{insert} privilege
+will be set to their default values. ANSI SQL requires you to have the
+@strong{insert} privilege on all columns.
@item
When you drop a table in ANSI SQL, all privileges for the table are revoked.
@@ -16677,7 +16709,7 @@ the MySQL server!
MySQL users and their privileges are normally created with the
@code{GRANT} command. @xref{GRANT}.
-When you login to a MySQL server with a command line client you
+When you login to a MySQL server with a command-line client you
should specify the password with @code{--password=your-password}.
@xref{Connecting}.
@@ -16724,7 +16756,7 @@ Modifications to the grant tables that you perform using @code{GRANT},
If you modify the grant tables manually (using @code{INSERT}, @code{UPDATE},
etc.), you should execute a @code{FLUSH PRIVILEGES} statement or run
@code{mysqladmin flush-privileges} or @code{mysqladmin reload} to tell the
-server to reload the grant tables. Otherwise your changes will have @emph{no
+server to reload the grant tables. Otherwise, your changes will have @emph{no
effect} until you restart the server. If you change the grant tables manually
but forget to reload the privileges, you will be wondering why your changes
don't seem to make any difference!
@@ -16740,10 +16772,11 @@ request.
@item
Database privilege changes take effect at the next @code{USE db_name}
command.
-@end itemize
-Global privilege changes and password changes take effect the next time the
-client connects.
+@item
+Global privilege changes and password changes take effect the next time
+the client connects.
+@end itemize
@node Default privileges, Adding users, Privilege changes, User Account Management
@@ -16769,7 +16802,7 @@ of privileges:
The MySQL @code{root} user is created as a superuser who can do
anything. Connections must be made from the local host.
-@strong{Note:}
+@strong{Note}:
The initial @code{root} password is empty, so anyone can connect as @code{root}
@emph{without a password} and be granted all privileges.
@@ -16785,7 +16818,7 @@ Other privileges are denied. For example, normal users can't use
@code{mysqladmin shutdown} or @code{mysqladmin processlist}.
@end itemize
-@strong{Note:} The default privileges are different for Windows.
+@strong{Note}: the default privileges are different for Windows.
@xref{Windows running}.
Because your installation is initially wide open, one of the first things you
@@ -16834,7 +16867,7 @@ See the @code{scripts/mysql_install_db} script to see how it sets up
the default privileges. You can use this as a basis to see how to
add other users.
-If you want the initial privileges to be different than those just described
+If you want the initial privileges to be different from those just described
above, you can modify @code{mysql_install_db} before you run it.
@cindex grant tables, re-creating
@@ -16846,13 +16879,13 @@ the database directory, which is listed when you run @code{mysqld
--help}.) Then run the @code{mysql_install_db} script, possibly after
editing it first to have the privileges you want.
-@strong{Note:} For MySQL versions older than Version 3.22.10,
+@strong{Note}: for MySQL versions older than Version 3.22.10,
you should not delete the @file{.frm} files. If you accidentally do this,
you should copy them back from your MySQL distribution before
running @code{mysql_install_db}.
-@node Adding users, Passwords, Default privileges, User Account Management
+@node Adding users, User resources, Default privileges, User Account Management
@subsection Adding New Users to MySQL
@findex GRANT statement
@@ -16870,15 +16903,14 @@ more concise and less error-prone. @xref{GRANT}.
There are also a lot of contributed programs like @code{phpmyadmin}
that can be used to create and administrate users. @xref{Portals}.
-The examples below show how to use the @code{mysql} client to set up new
+The following examples show how to use the @code{mysql} client to set up new
users. These examples assume that privileges are set up according to the
defaults described in the previous section. This means that to make changes,
you must be on the same machine where @code{mysqld} is running, you must
connect as the MySQL @code{root} user, and the @code{root} user must
have the @strong{insert} privilege for the @code{mysql} database and the
@strong{reload} administrative privilege. Also, if you have changed the
-@code{root} user password, you must specify it for the @code{mysql} commands
-below.
+@code{root} user password, you must specify it for the @code{mysql} commands here.
You can add new users by issuing @code{GRANT} statements:
@@ -16915,7 +16947,7 @@ This allows the user to execute the @code{mysqladmin reload},
@item dummy
A user who can connect without a password, but only from the local host. The
-global privileges are all set to @code{'N'} --- the @code{USAGE} privilege
+global privileges are all set to @code{'N'}@-the @strong{usage} privilege
type allows you to create a user with no privileges. It is assumed that you
will grant database-specific privileges later.
@end table
@@ -17045,8 +17077,67 @@ You can also use @code{xmysqladmin}, @code{mysql_webadmin}, and even
You can find these utilities in the Contrib directory of the
MySQL web site (@uref{http://www.mysql.com/Downloads/Contrib/}).
+@node User resources, Passwords, Adding users, User Account Management
+@subsection Limiting user resources
+
+Starting from MySQL 4.0.2 one can limit certain resources per user.
+
+So far, the only available method of limiting usage of MySQL
+server resources has been setting the @code{max_user_connections}
+startup variable to a non-zero value. But this method is strictly
+global and does not allow for management of individual users, which
+could be of particular interest to Internet Service Providers.
+
+Therefore, management of three resources is introduced on the
+individual user level:
+
+@itemize @bullet
+@item Number of all queries per hour:
+All commands that could be run by a user.
+@item Number of all updates per hour:
+Any command that changes any table or database.
+@item Number of connections made per hour:
+New connections opened per hour.
+@end itemize
+
+A user in the aforementioned context is a single entry in the
+@code{user} table, which is uniquely identified by its @code{user}
+and @code{host} columns.
+
+All users are by default not limited in using the above resources,
+unless the limits are granted to them. These limits can be granted
+@strong{only} via global @code{GRANT (*.*)}, using this syntax:
+
+@example
+GRANT ... WITH MAX_QUERIES_PER_HOUR = N1
+ MAX_UPDATES_PER_HOUR = N2
+ MAX_CONNECTIONS_PER_HOUR = N3;
+@end example
+
+One can specify any combination of the above resources.
+N1, N2 and N3 are integers and stands for count / hour.
+
+If user reaches any of the above limits withing one hour, his
+connection will be terminated or refused and the appropriate error
+message shall be issued.
+
+Current usage values for a particular user can be flushed (set to zero)
+by issuing a @code{GRANT} statement with any of the above clauses,
+including a @code{GRANT} statement with the current values.
-@node Passwords, Password security, Adding users, User Account Management
+Also, current values for all users will be flushed if privileges are
+reloaded (in the server or using @code{mysqladmin reload})
+or if the @code{FLUSH USER_RESOURCES} command is issued.
+
+The feature is enabled as soon as a single user is granted with any
+of the limiting @code{GRANT} clauses.
+
+As a prerequisite for enabling this feature, the @code{user} table in
+the @code{mysql} database must contain the additional columns, as
+defined in the table creation scripts @code{mysql_install_db} and
+@code{mysql_install_db.sh} in @file{scripts} subdirectory.
+
+@node Passwords, Password security, User resources, User Account Management
@subsection Setting Up Passwords
@findex PASSWORD()
@@ -17120,7 +17211,7 @@ or
shell> mysqladmin -u jeffrey password biscuit
@end example
-@strong{NOTE:} @code{PASSWORD()} does not perform password encryption in the
+@strong{Note}: @code{PASSWORD()} does not perform password encryption in the
same way that Unix passwords are encrypted. You should not assume that if
your Unix password and your MySQL password are the same, that
@code{PASSWORD()} will result in the same encrypted value as is stored in the
@@ -17132,7 +17223,7 @@ Unix password file. @xref{User names}.
It is inadvisable to specify your password in a way that exposes it to
discovery by other users. The methods you can use to specify your password
-when you run client programs are listed below, along with an assessment of
+when you run client programs are listed here, along with an assessment of
the risks of each method:
@itemize @bullet
@@ -17147,7 +17238,7 @@ with your other applications).
Use a @code{-pyour_pass} or @code{--password=your_pass} option on the command
line. This is convenient but insecure, because your password becomes visible
to system status programs (such as @code{ps}) that may be invoked by other
-users to display command lines. (MySQL clients typically overwrite
+users to display command-lines. (MySQL clients typically overwrite
the command-line argument with zeroes during their initialisation sequence,
but there is still a brief interval during which the value is visible.)
@@ -17166,7 +17257,7 @@ Enter password: ********
The @samp{*} characters represent your password.
It is more secure to enter your password this way than to specify it on the
-command line because it is not visible to other users. However, this method
+command-line because it is not visible to other users. However, this method
of entering a password is suitable only for programs that you run
interactively. If you want to invoke a client from a script that runs
non-interactively, there is no opportunity to enter the password from the
@@ -17212,7 +17303,7 @@ file.
@menu
* Secure basics:: Basics
* Secure requirements:: Requirements
-* Secure GRANT:: GRANT OPTIONS
+* Secure GRANT:: @code{GRANT} Options
@end menu
@node Secure basics, Secure requirements, Secure connections, Secure connections
@@ -17286,7 +17377,7 @@ examining if @code{SHOW VARIABLES LIKE 'have_openssl'} returns @code{YES}.
@node Secure GRANT, , Secure requirements, Secure connections
-@subsubsection GRANT options
+@subsubsection @code{GRANT} Options
@cindex SSL related options
@findex REQUIRE GRANT option
@@ -17309,8 +17400,8 @@ encrypted connections. Note that this option can be omitted
if there are any ACL records which allow non-SSL connections.
@example
-GRANT ALL PRIVILEGES ON test.* TO root@@localhost
-IDENTIFIED BY "goodsecret" REQUIRE SSL
+mysql> GRANT ALL PRIVILEGES ON test.* TO root@@localhost
+ -> IDENTIFIED BY "goodsecret" REQUIRE SSL;
@end example
@item
@@ -17320,8 +17411,8 @@ The only restriction is that it should be possible to verify its
signature with one of the CA certificates.
@example
-GRANT ALL PRIVILEGES ON test.* TO root@@localhost
-IDENTIFIED BY "goodsecret" REQUIRE X509
+mysql> GRANT ALL PRIVILEGES ON test.* TO root@@localhost
+ -> IDENTIFIED BY "goodsecret" REQUIRE X509;
@end example
@item
@@ -17331,10 +17422,10 @@ Using X509 certificates always implies encryption, so the option "SSL"
is not neccessary anymore.
@example
-GRANT ALL PRIVILEGES ON test.* TO root@@localhost
-IDENTIFIED BY "goodsecret"
-REQUIRE ISSUER "C=FI, ST=Some-State, L=Helsinki,
-O=MySQL Finland AB, CN=Tonu Samuel/Email=tonu@@mysql.com"
+mysql> GRANT ALL PRIVILEGES ON test.* TO root@@localhost
+ -> IDENTIFIED BY "goodsecret"
+ -> REQUIRE ISSUER "C=FI, ST=Some-State, L=Helsinki,
+ "> O=MySQL Finland AB, CN=Tonu Samuel/Email=tonu@@mysql.com";
@end example
@item
@@ -17344,10 +17435,11 @@ certificate but having different "subject" then the connection is
still not allowed.
@example
-GRANT ALL PRIVILEGES ON test.* TO root@@localhost
-IDENTIFIED BY "goodsecret"
-REQUIRE SUBJECT "C=EE, ST=Some-State, L=Tallinn,
-O=MySQL demo client certificate, CN=Tonu Samuel/Email=tonu@@mysql.com"
+mysql> GRANT ALL PRIVILEGES ON test.* TO root@@localhost
+ -> IDENTIFIED BY "goodsecret"
+ -> REQUIRE SUBJECT "C=EE, ST=Some-State, L=Tallinn,
+ "> O=MySQL demo client certificate,
+ "> CN=Tonu Samuel/Email=tonu@@mysql.com";
@end example
@item
@@ -17357,24 +17449,25 @@ with short encryption keys are used. Using this option, we can ask for
some exact cipher method to allow a connection.
@example
-GRANT ALL PRIVILEGES ON test.* TO root@@localhost
-IDENTIFIED BY "goodsecret"
-REQUIRE CIPHER "EDH-RSA-DES-CBC3-SHA"
+mysql> GRANT ALL PRIVILEGES ON test.* TO root@@localhost
+ -> IDENTIFIED BY "goodsecret"
+ -> REQUIRE CIPHER "EDH-RSA-DES-CBC3-SHA";
@end example
Also it is allowed to combine these options with each other like this:
@example
-GRANT ALL PRIVILEGES ON test.* TO root@@localhost
-IDENTIFIED BY "goodsecret"
-REQUIRE SUBJECT "C=EE, ST=Some-State, L=Tallinn,
-O=MySQL demo client certificate, CN=Tonu Samuel/Email=tonu@@mysql.com"
-AND ISSUER "C=FI, ST=Some-State, L=Helsinki,
-O=MySQL Finland AB, CN=Tonu Samuel/Email=tonu@@mysql.com"
-AND CIPHER "EDH-RSA-DES-CBC3-SHA"
+mysql> GRANT ALL PRIVILEGES ON test.* TO root@@localhost
+ -> IDENTIFIED BY "goodsecret"
+ -> REQUIRE SUBJECT "C=EE, ST=Some-State, L=Tallinn,
+ "> O=MySQL demo client certificate,
+ "> CN=Tonu Samuel/Email=tonu@@mysql.com"
+ -> AND ISSUER "C=FI, ST=Some-State, L=Helsinki,
+ "> O=MySQL Finland AB, CN=Tonu Samuel/Email=tonu@@mysql.com"
+ -> AND CIPHER "EDH-RSA-DES-CBC3-SHA";
@end example
-But it is not allowed to use any of options twice. Only different
+But it is not allowed to use any option twice. Only different
options can be mixed.
@end itemize
@@ -17481,23 +17574,23 @@ If you get performance problems in making backups on your system, you can
solve this by setting up replication and do the backups on the slave
instead of on the master. @xref{Replication Intro}.
-If you are using a Veritas file system, you can do:
+If you are using a Veritas filesystem, you can do:
@enumerate
@item
-Execute in a client (perl ?) @code{FLUSH TABLES WITH READ LOCK}
+From a client (or Perl), execute: @code{FLUSH TABLES WITH READ LOCK}.
@item
-Fork a shell or execute in another client @code{mount vxfs snapshot}.
+From another shell, execute: @code{mount vxfs snapshot}.
@item
-Execute in the first client @code{UNLOCK TABLES}
+From the first client, execute: @code{UNLOCK TABLES}.
@item
-Copy files from snapshot
+Copy files from snapshot.
@item
-Unmount snapshot
+Unmount snapshot.
@end enumerate
@@ -17512,9 +17605,9 @@ Unmount snapshot
BACKUP TABLE tbl_name[,tbl_name...] TO '/path/to/backup/directory'
@end example
-Make a copy of all the table files to the backup directory that are the
-minimum needed to restore it. Currenlty only works for @code{MyISAM}
-tables. For @code{MyISAM} table, copies @file{.frm} (definition) and
+Copies to the backup directory the minimum number of table files needed
+to restore the table. Currently only works for @code{MyISAM} tables.
+For @code{MyISAM} tables, copies @file{.frm} (definition) and
@file{.MYD} (data) files. The index file can be rebuilt from those two.
Before using this command, please see @ref{Backup}.
@@ -17612,7 +17705,7 @@ The different check types stand for the following:
@item @code{EXTENDED} @tab Do a full key lookup for all keys for each row. This ensures that the table is 100 % consistent, but will take a long time!
@end multitable
-For dynamic sized @code{MyISAM} tables a started check will always
+For dynamically sized @code{MyISAM} tables a started check will always
do a @code{MEDIUM} check. For static size rows we skip the row scan
for @code{QUICK} and @code{FAST} as the rows are very seldom corrupted.
@@ -17622,21 +17715,22 @@ You can combine check options as in:
CHECK TABLE test_table FAST QUICK;
@end example
-Which only would do a quick check on the table if it wasn't closed properly.
+Which would simply do a quick check on the table to see whether it was
+closed properly.
-@strong{Note:} that in some case @code{CHECK TABLE} will change the
+@strong{Note}: that in some case @code{CHECK TABLE} will change the
table! This happens if the table is marked as 'corrupted' or 'not
closed properly' but @code{CHECK TABLE} didn't find any problems in the
table. In this case @code{CHECK TABLE} will mark the table as okay.
If a table is corrupted, then it's most likely that the problem is in
the indexes and not in the data part. All of the above check types
-checks the indexes throughly and should thus find most errors.
+checks the indexes thoroughly and should thus find most errors.
If you just want to check a table that you assume is okay, you should use
no check options or the @code{QUICK} option. The latter should be used
when you are in a hurry and can take the very small risk that
-@code{QUICK} didn't find an error in the data file. (In most cases
+@code{QUICK} didn't find an error in the datafile. (In most cases
MySQL should find, under normal usage, any error in the data
file. If this happens then the table will be marked as 'corrupted',
in which case the table can't be used until it's repaired.)
@@ -17659,14 +17753,14 @@ Some things reported by check table, can't be corrected automatically:
@code{Found row where the auto_increment column has the value 0}.
This means that you have in the table a row where the
-@code{auto_increment} index column contains the value 0.
-(It's possible to create a row where the auto_increment column is 0 by
-explicitely setting the column to 0 with an @code{UPDATE} statement)
+@code{AUTO_INCREMENT} index column contains the value 0.
+(It's possible to create a row where the @code{AUTO_INCREMENT} column is 0 by
+explicitly setting the column to 0 with an @code{UPDATE} statement)
This isn't an error in itself, but could cause trouble if you decide to
dump the table and restore it or do an @code{ALTER TABLE} on the
-table. In this case the auto_increment column will change value,
-according to the rules of auto_increment columns, which could cause
+table. In this case the @code{AUTO_INCREMENT} column will change value,
+according to the rules of @code{AUTO_INCREMENT} columns, which could cause
problems like a duplicate key error.
To get rid of the warning, just execute an @code{UPDATE} statement
@@ -17713,7 +17807,7 @@ If @code{QUICK} is given then MySQL will try to do a
@code{REPAIR} of only the index tree.
If you use @code{EXTENDED} then MySQL will create the index row
-by row instead of creating one index at a time with sorting; This may be
+by row instead of creating one index at a time with sorting; this may be
better than sorting on fixed-length keys if you have long @code{char()}
keys that compress very good.
@@ -17751,7 +17845,7 @@ flushing tables.
@xref{OPTIMIZE TABLE, , @code{OPTIMIZE TABLE}}.
Even that the repair in @code{myisamchk} is quite secure, it's always a
-good idea to make a backup BEFORE doing a repair (or anything that could
+good idea to make a backup @emph{before} doing a repair (or anything that could
make a lot of changes to a table)
@menu
@@ -17778,20 +17872,20 @@ shell> myisamchk [options] tbl_name
@end example
The @code{options} specify what you want @code{myisamchk} to do. They are
-described below. (You can also get a list of options by invoking
+described here. (You can also get a list of options by invoking
@code{myisamchk --help}.) With no options, @code{myisamchk} simply checks your
table. To get more information or to tell @code{myisamchk} to take corrective
-action, specify options as described below and in the following sections.
+action, specify options as described here and in the following sections.
@code{tbl_name} is the database table you want to check/repair. If you run
@code{myisamchk} somewhere other than in the database directory, you must
specify the path to the file, because @code{myisamchk} has no idea where your
-database is located. Actually, @code{myisamchk} doesn't care whether or not
+database is located. Actually, @code{myisamchk} doesn't care whether
the files you are working on are located in a database directory; you can
copy the files that correspond to a database table into another location and
perform recovery operations on them there.
-You can name several tables on the @code{myisamchk} command line if you
+You can name several tables on the @code{myisamchk} command-line if you
wish. You can also specify a name as an index file
name (with the @file{.MYI} suffix), which allows you to specify all
tables in a directory by using the pattern @file{*.MYI}.
@@ -17809,7 +17903,7 @@ by specifying the path to the directory:
shell> myisamchk /path/to/database_dir/*.MYI
@end example
-You can even check all tables in all databases by specifying a wild card
+You can even check all tables in all databases by specifying a wildcard
with the path to the MySQL data directory:
@example
@@ -17978,9 +18072,9 @@ The following options are used if you start @code{myisamchk} with
@table @code
@item -D # or --data-file-length=#
-Max length of data file (when re-creating data file when it's 'full').
+Max length of datafile (when re-creating datafile when it's 'full').
@item -e or --extend-check
-Try to recover every possible row from the data file.
+Try to recover every possible row from the datafile.
Normally this will also find a lot of garbage rows. Don't use this option
if you are not totally desperate.
@item -f or --force
@@ -18001,13 +18095,13 @@ Can fix almost anything except unique keys that aren't unique
If you want to recover a table, this is the option to try first. Only if
myisamchk reports that the table can't be recovered by @code{-r}, you
should then try @code{-o}. (Note that in the unlikely case that @code{-r}
-fails, the data file is still intact.)
+fails, the datafile is still intact.)
If you have lots of memory, you should increase the size of
@code{sort_buffer_size}!
@item -o or --safe-recover
Uses an old recovery method (reads through all rows in order and updates
-all index trees based on the found rows); this is a magnitude slower
-than @code{-r}, but can handle a couple of very unlikely cases that
+all index trees based on the found rows); this is an order of magnitude
+slower than @code{-r}, but can handle a couple of very unlikely cases that
@code{-r} cannot handle. This recovery method also uses much less disk
space than @code{-r}. Normally one should always first repair with
@code{-r}, and only if this fails use @code{-o}.
@@ -18022,11 +18116,11 @@ temporary files should be very big.
Directory where character sets are stored.
@item --set-character-set=name
Change the character set used by the index
-@item .t or --tmpdir=path
+@item -t or --tmpdir=path
Path for storing temporary files. If this is not set, @code{myisamchk} will
use the environment variable @code{TMPDIR} for this.
@item -q or --quick
-Faster repair by not modifying the data file. One can give a second
+Faster repair by not modifying the datafile. One can give a second
@code{-q} to force @code{myisamchk} to modify the original datafile in case
of duplicate keys
@item -u or --unpack
@@ -18049,8 +18143,8 @@ MySQL.
@item -d or --description
Prints some information about table.
@item -A or --set-auto-increment[=value]
-Force auto_increment to start at this or higher value. If no value is
-given, then sets the next auto_increment value to the highest used value
+Force @code{AUTO_INCREMENT} to start at this or higher value. If no value is
+given, then sets the next @code{AUTO_INCREMENT} value to the highest used value
for the auto key + 1.
@item -S or --sort-index
Sort the index tree blocks in high-low order.
@@ -18086,7 +18180,7 @@ shell> myisamchk -O sort=16M -O key=16M -O read=1M -O write=1M ...
Using @code{-O sort=16M} should probably be enough for most cases.
Be aware that @code{myisamchk} uses temporary files in @code{TMPDIR}. If
-@code{TMPDIR} points to a memory file system, you may easily get out of
+@code{TMPDIR} points to a memory filesystem, you may easily get out of
memory errors. If this happens, set @code{TMPDIR} to point at some directory
with more space and restart @code{myisamchk}.
@@ -18161,12 +18255,12 @@ directory:
@multitable @columnfractions .20 .30
@item @strong{File} @tab @strong{Purpose}
@item @file{tbl_name.frm} @tab Table definition (form) file
-@item @file{tbl_name.MYD} @tab Data file
+@item @file{tbl_name.MYD} @tab Datafile
@item @file{tbl_name.MYI} @tab Index file
@end multitable
Each of these three file types is subject to corruption in various ways, but
-problems occur most often in data files and index files.
+problems occur most often in datafiles and index files.
@code{myisamchk} works by creating a copy of the @file{.MYD} (data) file
row by row. It ends the repair stage by removing the old @file{.MYD}
@@ -18196,7 +18290,7 @@ To check a MyISAM table, use the following commands:
@table @code
@item myisamchk tbl_name
This finds 99.99% of all errors. What it can't find is corruption that
-involves @strong{only} the data file (which is very unusual). If you want
+involves @strong{only} the datafile (which is very unusual). If you want
to check a table, you should normally run @code{myisamchk} without options or
with either the @code{-s} or @code{--silent} option.
@@ -18279,7 +18373,7 @@ ALTER TABLE table MAX_ROWS=xxx AVG_ROW_LENGTH=yyy;
In the other cases, you must repair your tables. @code{myisamchk}
can usually detect and fix most things that go wrong.
-The repair process involves up to four stages, described below. Before you
+The repair process involves up to four stages, described here. Before you
begin, you should @code{cd} to the database directory and check the
permissions of the table files. Make sure they are readable by the Unix user
that @code{mysqld} runs as (and to you, because you need to access the files
@@ -18296,7 +18390,7 @@ The manual section about table maintenance includes the options to
The following section is for the cases where the above command fails or
if you want to use the extended features that @code{isamchk}/@code{myisamchk} provides.
-If you are going to repair a table from the command line, you must first
+If you are going to repair a table from the command-line, you must first
take down the @code{mysqld} server. Note that when you do
@code{mysqladmin shutdown} on a remote server, the @code{mysqld} server
will still be alive for a while after @code{mysqladmin} returns, until
@@ -18327,18 +18421,18 @@ memory) to all @code{isamchk/myisamchk} commands.
First, try @code{myisamchk -r -q tbl_name} (@code{-r -q} means ``quick
recovery mode''). This will attempt to repair the index file without
-touching the data file. If the data file contains everything that it
+touching the datafile. If the datafile contains everything that it
should and the delete links point at the correct locations within the
-data file, this should work, and the table is fixed. Start repairing the
+datafile, this should work, and the table is fixed. Start repairing the
next table. Otherwise, use the following procedure:
@enumerate
@item
-Make a backup of the data file before continuing.
+Make a backup of the datafile before continuing.
@item
Use @code{myisamchk -r tbl_name} (@code{-r} means ``recovery mode''). This will
-remove incorrect records and deleted records from the data file and
+remove incorrect records and deleted records from the datafile and
reconstruct the index file.
@item
@@ -18360,7 +18454,7 @@ follows:
@enumerate
@item
-Move the data file to some safe place.
+Move the datafile to some safe place.
@item
Use the table description file to create new (empty) data and index files:
@@ -18376,7 +18470,7 @@ If your SQL version doesn't have @code{TRUNCATE TABLE}, use @code{DELETE FROM
table_name} instead.
@item
-Copy the old data file back onto the newly created data file.
+Copy the old datafile back onto the newly created datafile.
(Don't just move the old file back onto the new file; you want to retain
a copy in case something goes wrong.)
@end enumerate
@@ -18402,10 +18496,10 @@ should start with @code{myisamchk -r}.
@item
If you don't have a backup but know exactly how the table was created, create
-a copy of the table in another database. Remove the new data file, then move
+a copy of the table in another database. Remove the new datafile, then move
the description and index files from the other database to your crashed
database. This gives you new description and index files, but leaves
-the data file alone. Go back to Stage 2 and attempt to reconstruct
+the datafile alone. Go back to Stage 2 and attempt to reconstruct
the index file.
@end enumerate
@@ -18424,8 +18518,8 @@ shell> myisamchk -r tbl_name
@end example
You can optimise a table in the same way using the SQL @code{OPTIMIZE TABLE}
-statement. @code{OPTIMIZE TABLE} does a repair of the table, a key
-analyses and also sorts the index tree to give faster key lookups.
+statement. @code{OPTIMIZE TABLE} does a repair of the table and a key
+analysis, and also sorts the index tree to give faster key lookups.
There is also no possibility of unwanted interaction between a utility
and the server, because the server does all the work when you use
@code{OPTIMIZE TABLE}. @xref{OPTIMIZE TABLE}.
@@ -18434,9 +18528,9 @@ and the server, because the server does all the work when you use
the performance of a table:
@itemize
-@item -S, --sort-index
-@item -R index_num, --sort-records=index_num
-@item -a, --analyze
+@item @code{-S}, @code{--sort-index}
+@item @code{-R index_num}, @code{--sort-records=index_num}
+@item @code{-a}, @code{--analyze}
@end itemize
For a full description of the option. @xref{myisamchk syntax}.
@@ -18516,7 +18610,7 @@ myisamchk -r --silent --sort-index -O sort_buffer_size=16M */*.MYI
@cindex tables, information
To get a description of a table or statistics about it, use the commands shown
-below. We explain some of the information in more detail later:
+here. We explain some of the information in more detail later:
@itemize @bullet
@item myisamchk -d tbl_name
@@ -18682,7 +18776,7 @@ preceding examples:
@end example
Explanations for the types of information @code{myisamchk} produces are
-given below. The ``keyfile'' is the index file. ``Record'' and ``row''
+given here. The ``keyfile'' is the index file. ``Record'' and ``row''
are synonymous:
@itemize @bullet
@@ -18693,10 +18787,10 @@ Name of the ISAM (index) file.
Version of ISAM format. Currently always 2.
@item Creation time
-When the data file was created.
+When the datafile was created.
@item Recover time
-When the index/data file was last reconstructed.
+When the index/datafile was last reconstructed.
@item Data records
How many records are in the table.
@@ -18706,7 +18800,7 @@ How many deleted blocks still have reserved space.
You can optimise your table to minimise this space.
@xref{Optimisation}.
-@item Datafile: Parts
+@item Data file: Parts
For dynamic record format, this indicates how many data blocks there are. For
an optimised table without fragmented records, this is the same as @code{Data
records}.
@@ -18716,8 +18810,8 @@ How many bytes of non-reclaimed deleted data there are.
You can optimise your table to minimise this space.
@xref{Optimisation}.
-@item Datafile pointer
-The size of the data file pointer, in bytes. It is usually 2, 3, 4, or 5
+@item Data file pointer
+The size of the datafile pointer, in bytes. It is usually 2, 3, 4, or 5
bytes. Most tables manage with 2 bytes, but this cannot be controlled
from MySQL yet. For fixed tables, this is a record address. For
dynamic tables, this is a byte address.
@@ -18728,7 +18822,7 @@ bytes. Most tables manage with 2 bytes, but this is calculated
automatically by MySQL. It is always a block address.
@item Max datafile length
-How long the table's data file (@file{.MYD} file) can become, in bytes.
+How long the table's datafile (@file{.MYD} file) can become, in bytes.
@item Max keyfile length
How long the table's key file (@file{.MYI} file) can become, in bytes.
@@ -18759,7 +18853,7 @@ length of the indexed column, because you can index a prefix of a string
column.
@item Index
-@code{unique} or @code{multip.} (multiple). Indicates whether or not one value
+@code{unique} or @code{multip.} (multiple). Indicates whether one value
can exist multiple times in this index.
@item Type
@@ -18812,15 +18906,15 @@ MySQL strips spaces from the end of strings. The @code{Packed}
value indicates the percentage of savings achieved by doing this.
@item Recordspace used
-What percentage of the data file is used.
+What percentage of the datafile is used.
@item Empty space
-What percentage of the data file is unused.
+What percentage of the datafile is unused.
@item Blocks/Record
Average number of blocks per record (that is, how many links a fragmented
-record is composed of). This is always 1 for fixed-format tables. This value
-should stay as close to 1.0 as possible. If it gets too big, you can
+record is composed of). This is always 1.0 for fixed-format tables. This
+value should stay as close to 1.0 as possible. If it gets too big, you can
reorganise the table with @code{myisamchk}.
@xref{Optimisation}.
@@ -18832,10 +18926,10 @@ of records.
How many blocks (links) are deleted.
@item Recorddata
-How many bytes in the data file are used.
+How many bytes in the datafile are used.
@item Deleted data
-How many bytes in the data file are deleted (unused).
+How many bytes in the datafile are deleted (unused).
@item Lost space
If a record is updated to a shorter length, some space is lost. This is
@@ -18884,13 +18978,14 @@ table or if you have made many changes to a table with variable-length rows
(tables that have @code{VARCHAR}, @code{BLOB}, or @code{TEXT} columns).
Deleted records are maintained in a linked list and subsequent @code{INSERT}
operations reuse old record positions. You can use @code{OPTIMIZE TABLE} to
-reclaim the unused space and to defragment the data file.
+reclaim the unused space and to defragment the datafile.
-For the moment @code{OPTIMIZE TABLE} only works on @strong{MyISAM} and
+For the moment, @code{OPTIMIZE TABLE} only works on @code{MyISAM} and
@code{BDB} tables. For @code{BDB} tables, @code{OPTIMIZE TABLE} is
-currently mapped to @code{ANALYZE TABLE}. @xref{ANALYZE TABLE}.
+currently mapped to @code{ANALYZE TABLE}.
+@xref{ANALYZE TABLE, , @code{ANALYZE TABLE}}.
-You can get optimise table to work on other table types by starting
+You can get @code{OPTIMIZE TABLE} to work on other table types by starting
@code{mysqld} with @code{--skip-new} or @code{--safe-mode}, but in this
case @code{OPTIMIZE TABLE} is just mapped to @code{ALTER TABLE}.
@@ -18905,7 +19000,7 @@ If the statistics are not up to date (and the repair couldn't be done
by sorting the index), update them.
@end itemize
-@code{OPTIMIZE TABLE} for @code{MyISAM} tables is equvialent of running
+@code{OPTIMIZE TABLE} for a @code{MyISAM} table is equivalent to running
@code{myisamchk --quick --check-only-changed --sort-index --analyze}
on the table.
@@ -18923,7 +19018,7 @@ ANALYZE TABLE tbl_name[,tbl_name...]
@end example
Analyse and store the key distribution for the table. During the
-analyse the table is locked with a read lock. This works on
+analysis, the table is locked with a read lock. This works on
@code{MyISAM} and @code{BDB} tables.
This is equivalent to running @code{myisamchk -a} on the table.
@@ -18959,12 +19054,12 @@ the table will not be analysed again.
@cindex caches, clearing
@example
-FLUSH flush_option [,flush_option]
+FLUSH flush_option [,flush_option] ...
@end example
You should use the @code{FLUSH} command if you want to clear some of the
internal caches MySQL uses. To execute @code{FLUSH}, you must have
-the @strong{RELOAD} privilege.
+the @strong{reload} privilege.
@code{flush_option} can be any of the following:
@@ -18981,7 +19076,8 @@ Flushing the host tables allows the host to attempt to connect
again. @xref{Blocked host}. You can start @code{mysqld} with
@code{-O max_connection_errors=999999999} to avoid this error message.
-@item @code{DES_KEY_FILE} @tab Reloads the des keys from the file specified with @code{--des-key-file}.
+@item @code{DES_KEY_FILE} @tab Reloads the DES keys from the file that was
+specified with the @code{--des-key-file} option at server startup time.
@item @code{LOGS} @tab Closes and reopens all log files.
If you have specified the update log file or a binary log file without
@@ -18994,15 +19090,19 @@ signal to the @code{mysqld} server.
@item @code{PRIVILEGES} @tab Reloads the privileges from the grant tables in
the @code{mysql} database.
-@item @code{QUERY CACHE} @tab Defragment the query cache to better utilise its memory. This command will not remove any queries from the cache.
+@item @code{QUERY CACHE} @tab Defragment the query cache to better utilise its
+memory. This command will not remove any queries from the cache, unlike
+@code{RESET QUERY CACHE}.
@item @code{TABLES} @tab Closes all open tables and force all tables in use to be closed. This also flushes the query cache.
-@item @code{[TABLE | TABLES] table_name [,table_name...]} @tab Flushes only the given tables.
+@item @code{[TABLE | TABLES] tbl_name [,tbl_name...]} @tab Flushes only the given tables.
-@item @code{TABLES WITH READ LOCK} @tab Closes all open tables and locks all tables for all databases with a read until one executes @code{UNLOCK TABLES}. This is very convenient way to get backups if you have a file system, like Veritas,that can take snapshots in time.
+@item @code{TABLES WITH READ LOCK} @tab Closes all open tables and locks all tables for all databases with a read until one executes @code{UNLOCK TABLES}. This is very convenient way to get backups if you have a filesystem, like Veritas,that can take snapshots in time.
@item @code{STATUS} @tab Resets most status variables to zero. This is something one should only use when debugging a query.
+
+@item @code{USER_RESOURCES} @tab Resets all user resources to zero. This will enable blocked users to login again. @xref{User resources}.
@end multitable
You can also access each of the commands shown above with the @code{mysqladmin}
@@ -19010,32 +19110,31 @@ utility, using the @code{flush-hosts}, @code{flush-logs}, @code{reload},
or @code{flush-tables} commands.
Take also a look at the @code{RESET} command used with replication.
-@xref{RESET}.
+@xref{RESET, , @code{RESET}}.
@node RESET, KILL, FLUSH, Database Administration
@subsection @code{RESET} Syntax
@example
-FLUSH flush_option [,flush_option]
+RESET reset_option [,reset_option] ...
@end example
The @code{RESET} command is used to clear things. It also acts as an stronger
-version of the @code{FLUSH} command. @xref{FLUSH}.
+version of the @code{FLUSH} command. @xref{FLUSH, , @code{FLUSH}}.
+
+To execute @code{RESET}, you must have the @strong{reload} privilege.
@multitable @columnfractions .25 .75
@item @strong{Option} @tab @strong{Description}
-@item @code{MASTER}
-@tab Deletes all binary logs listed in the index file, resetting the binlog
+@item @code{MASTER} @tab Deletes all binary logs listed in the index file, resetting the binlog
index file to be empty. In pre-3.23.26 versions, @code{FLUSH MASTER} (Master)
-@item @code{SLAVE}
-@tab Makes the slave forget its replication position in the master
+@item @code{SLAVE} @tab Makes the slave forget its replication position in the master
logs. In pre 3.23.26 versions the command was called
@code{FLUSH SLAVE}(Slave)
-@item @code{QUERY CACHE}
-@tab Removes all query results from the query cache.
+@item @code{QUERY CACHE} @tab Removes all query results from the query cache.
@end multitable
@node KILL, SHOW, RESET, Database Administration
@@ -19134,7 +19233,7 @@ or SHOW SLAVE STATUS
@code{SHOW} provides information about databases, tables, columns, or
status information about the server. If the @code{LIKE wild} part is
used, the @code{wild} string can be a string that uses the SQL @samp{%}
-and @samp{_} wild-card characters.
+and @samp{_} wildcard characters.
@menu
* SHOW DATABASE INFO:: Retrieving information about Database, Tables, Columns, and Indexes
@@ -19167,7 +19266,7 @@ host. You can also get this list using the @code{mysqlshow} command.
@code{SHOW TABLES} lists the tables in a given database. You can also
get this list using the @code{mysqlshow db_name} command.
-@strong{Note:} If a user doesn't have any privileges for a table, the table
+@strong{Note}: if a user doesn't have any privileges for a table, the table
will not show up in the output from @code{SHOW TABLES} or @code{mysqlshow
db_name}.
@@ -19177,7 +19276,7 @@ how many times the table is @code{cached} and @code{in_use}.
@code{SHOW COLUMNS} lists the columns in a given table. If you specify
the @code{FULL} option, you will also get the privileges you have for
-each column. If the column types are different than you expect them to
+each column. If the column types are different from what you expect them to
be based on a @code{CREATE TABLE} statement, note that MySQL
sometimes changes column types. @xref{Silent column changes}.
@@ -19239,20 +19338,20 @@ STATUS}, but provides a lot of information about each table. You can
also get this list using the @code{mysqlshow --status db_name} command.
The following columns are returned:
-@multitable @columnfractions .20 .65
+@multitable @columnfractions .20 .70
@item @strong{Column} @tab @strong{Meaning}
@item @code{Name} @tab Name of the table.
@item @code{Type} @tab Type of table. @xref{Table types}.
@item @code{Row_format} @tab The row storage format (Fixed, Dynamic, or Compressed).
@item @code{Rows} @tab Number of rows.
@item @code{Avg_row_length} @tab Average row length.
-@item @code{Data_length} @tab Length of the data file.
-@item @code{Max_data_length} @tab Max length of the data file.
+@item @code{Data_length} @tab Length of the datafile.
+@item @code{Max_data_length} @tab Max length of the datafile.
@item @code{Index_length} @tab Length of the index file.
@item @code{Data_free} @tab Number of allocated but not used bytes.
@item @code{Auto_increment} @tab Next autoincrement value.
@item @code{Create_time} @tab When the table was created.
-@item @code{Update_time} @tab When the data file was last updated.
+@item @code{Update_time} @tab When the datafile was last updated.
@item @code{Check_time} @tab When the table was last checked.
@item @code{Create_options} @tab Extra options used with @code{CREATE TABLE}.
@item @code{Comment} @tab The comment used when creating the table (or some information why MySQL couldn't access the table information).
@@ -19268,7 +19367,7 @@ in the table comment.
@cindex @code{mysqladmin}
@code{SHOW STATUS} provides server status information
(like @code{mysqladmin extended-status}). The output resembles that shown
-below, though the format and numbers probably differ:
+here, though the format and numbers probably differ:
@example
+--------------------------+------------+
@@ -19340,15 +19439,16 @@ The status variables listed above have the following meaning:
@item @code{Aborted_connects} @tab Number of tries to connect to the MySQL server that failed. @xref{Communication errors}.
@item @code{Bytes_received} @tab Number of bytes received from all clients.
@item @code{Bytes_sent} @tab Number of bytes sent to all clients.
-@item @code{Com_xxxx} @tab Number of times the xxx commands has been executed.
+@item @code{Com_xxx} @tab Number of times each xxx command has been executed.
@item @code{Connections} @tab Number of connection attempts to the MySQL server.
@item @code{Created_tmp_disk_tables} @tab Number of implicit temporary tables on disk created while executing statements.
@item @code{Created_tmp_tables} @tab Number of implicit temporary tables in memory created while executing statements.
-@item @code{Created_tmp_files} @tab How many temporary files @code{mysqld} have created.
+@item @code{Created_tmp_files} @tab How many temporary files @code{mysqld} has created.
@item @code{Delayed_insert_threads} @tab Number of delayed insert handler threads in use.
@item @code{Delayed_writes} @tab Number of rows written with @code{INSERT DELAYED}.
@item @code{Delayed_errors} @tab Number of rows written with @code{INSERT DELAYED} for which some error occurred (probably @code{duplicate key}).
@item @code{Flush_commands} @tab Number of executed @code{FLUSH} commands.
+@item @code{Handler_commit} @tab Number of internal @code{COMMIT} commands.
@item @code{Handler_delete} @tab Number of times a row was deleted from a table.
@item @code{Handler_read_first} @tab Number of times the first entry was read from an index.
If this is high, it suggests that the server is doing a lot of full index scans, for example,
@@ -19358,12 +19458,14 @@ is high, it is a good indication that your queries and tables are properly index
@item @code{Handler_read_next} @tab Number of requests to read next row in key order. This
will be incremented if you are querying an index column with a range constraint. This also
will be incremented if you are doing an index scan.
+@item @code{Handler_read_prev} @tab Number of requests to read previous row in key order. This is mainly used to optimize @code{ORDER BY ... DESC}.
@item @code{Handler_read_rnd} @tab Number of requests to read a row based on a fixed position.
This will be high if you are doing a lot of queries that require sorting of the result.
@item @code{Handler_read_rnd_next} @tab Number of requests to read the next row in the datafile.
This will be high if you are doing a lot of table scans. Generally this suggests that your tables
are not properly indexed or that your queries are not written to take advantage of the indexes you
have.
+@item @code{Handler_rollback} @tab Number of internal @code{ROLLBACK} commands.
@item @code{Handler_update} @tab Number of requests to update a row in a table.
@item @code{Handler_write} @tab Number of requests to insert a row in a table.
@item @code{Key_blocks_used} @tab The number of used blocks in the key cache.
@@ -19378,20 +19480,23 @@ have.
@item @code{Open_files} @tab Number of files that are open.
@item @code{Open_streams} @tab Number of streams that are open (used mainly for logging).
@item @code{Opened_tables} @tab Number of tables that have been opened.
-@item @code{Select_full_join} @tab Number of joins without keys (Should be 0).
+@item @code{Rpl_status} @tab Status of failsafe replication. (Not yet in use).
+@item @code{Select_full_join} @tab Number of joins without keys (If this is 0, you should carefully check the index of your tables).
@item @code{Select_full_range_join} @tab Number of joins where we used a range search on reference table.
@item @code{Select_range} @tab Number of joins where we used ranges on the first table. (It's normally not critical even if this is big.)
-@item @code{Select_scan} @tab Number of joins where we scanned the first table.
-@item @code{Select_range_check} @tab Number of joins without keys where we check for key usage after each row (Should be 0).
+@item @code{Select_scan} @tab Number of joins where we did a full scann of the first table.
+@item @code{Select_range_check} @tab Number of joins without keys where we check for key usage after each row (If this is 0, you should carefully check the index of your tables).
@item @code{Questions} @tab Number of queries sent to the server.
@item @code{Slave_open_temp_tables} @tab Number of temporary tables currently
open by the slave thread
-@item @code{Slow_launch_threads} @tab Number of threads that have taken more than @code{slow_launch_time} to connect.
+@item @code{Slave_running} @tab Is @code{ON} if this is a slave that is connected to a master.
+@item @code{Slow_launch_threads} @tab Number of threads that have taken more than @code{slow_launch_time} to create.
@item @code{Slow_queries} @tab Number of queries that have taken more than @code{long_query_time}. @xref{Slow query log}.
-@item @code{Sort_merge_passes} @tab Number of merges the sort has to do. If this value is large you should consider increasing @code{sort_buffer}.
+@item @code{Sort_merge_passes} @tab Number of merges passes the sort algoritm have had to do. If this value is large you should consider increasing @code{sort_buffer}.
@item @code{Sort_range} @tab Number of sorts that where done with ranges.
@item @code{Sort_rows} @tab Number of sorted rows.
@item @code{Sort_scan} @tab Number of sorts that where done by scanning the table.
+@item @code{ssl_xxx} @tab Variables used by SSL; Not yet implemented.
@item @code{Table_locks_immediate} @tab Number of times a table lock was
acquired immediately. Available after 3.23.33.
@item @code{Table_locks_waited} @tab Number of times a table lock could not
@@ -19412,9 +19517,9 @@ Some comments about the above:
If @code{Opened_tables} is big, then your @code{table_cache}
variable is probably too small.
@item
-If @code{key_reads} is big, then your @code{key_cache} is probably too
-small. The cache hit rate can be calculated with
-@code{key_reads}/@code{key_read_requests}.
+If @code{Key_reads} is big, then your @code{key_buffer_size} variable is
+probably too small. The cache hit rate can be calculated with
+@code{Key_reads}/@code{Key_read_requests}.
@item
If @code{Handler_read_rnd} is big, then you probably have a lot of
queries that require MySQL to scan whole tables or you have
@@ -19425,7 +19530,7 @@ If @code{Threads_created} is big, you may want to increase the
with @code{Threads_created}/@code{Connections}.
@item
If @code{Created_tmp_disk_tables} is big, you may want to increase the
-@code{tmp_table_size} variable to get the temporary tables memory based
+@code{tmp_table_size} variable to get the temporary tables memory-based
instead of disk based.
@end itemize
@@ -19443,7 +19548,7 @@ variables} command. If the default values are unsuitable, you can set most
of these variables using command-line options when @code{mysqld} starts up.
@xref{Command-line options}.
-The output resembles that shown below, though the format and numbers may
+The output resembles that shown here, though the format and numbers may
differ somewhat:
@example
@@ -19536,12 +19641,16 @@ differ somewhat:
+------------------------------+---------------------------+
@end example
-Each option is described below. Values for buffer sizes, lengths, and stack
+Each option is described here. Values for buffer sizes, lengths, and stack
sizes are given in bytes. You can specify values with a suffix of @samp{K}
or @samp{M} to indicate kilobytes or megabytes. For example, @code{16M}
indicates 16 megabytes. The case of suffix letters does not matter;
@code{16M} and @code{16m} are equivalent:
+@c FIX 2002-04-29 arjen / paul
+@c FIX Below should be a @multitable just like SHOW STATUS.
+@c FIX Has to wait till after O'Reilly printed edition is out the door.
+
@cindex variables, values
@itemize
@item @code{ansi_mode}.
@@ -19626,7 +19735,7 @@ The value of the @code{--datadir} option.
@item @code{delay_key_write}
If enabled (is on by default), MySQL will honor the
-@code{delay_key_write} option @code{CREATE TABLE}. This means that the
+@code{DELAY_KEY_WRITE} option for @code{CREATE TABLE}. This means that the
key buffer for tables with this option will not get flushed on every
index update, but only when a table is closed. This will speed up
writes on keys a lot, but you should add automatic checking of all tables
@@ -19662,13 +19771,13 @@ very little resources.
@item @code{ft_min_word_len}
The minimum length of the word to be included in a @code{FULLTEXT} index.
-@strong{Note: @code{FULLTEXT} index have to be rebuilt after changing
-this variable.}
+@strong{Note: @code{FULLTEXT} indexes must be rebuilt after changing
+this variable.} (This option is new for MySQL 4.0.)
@item @code{ft_max_word_len}
The maximum length of the word to be included in a @code{FULLTEXT} index.
-@strong{Note: @code{FULLTEXT} index have to be rebuilt after changing
-this variable.}
+@strong{Note: @code{FULLTEXT} indexes must be rebuilt after changing
+this variable.} (This option is new for MySQL 4.0.)
@item @code{ft_max_word_len_sort}
The maximum length of the word in a @code{FULLTEXT} index
@@ -19677,11 +19786,10 @@ to be used in fast index recreation method in @code{REPAIR},
slow way. The rule of the thumb is as follows: with
@code{ft_max_word_len_sort} increasing, @strong{MySQL} will create bigger
temporary files (thus slowing the process down, due to disk I/O), and will put
-fewer keys in one sort block (againg, decreasing the efficiency). When
+fewer keys in one sort block (again, decreasing the efficiency). When
@code{ft_max_word_len_sort} is too small, instead, @strong{MySQL} will insert a
-lot of words into index the slow way - but short words will be inserted very
-fast. It applies only to index recreation during @code{REPAIR},
-@code{CREATE INDEX}, or @code{ALTER TABLE}.
+lot of words into index the slow way, but short words will be inserted very
+quickly.
@item @code{ft_boolean_syntax}
List of operators supported by @code{MATCH ... AGAINST(... IN BOOLEAN MODE)}.
@@ -19727,10 +19835,10 @@ Index blocks are buffered and are shared by all threads.
Increase this to get better index handling (for all reads and multiple
writes) to as much as you can afford; 64M on a 256M machine that mainly
runs MySQL is quite common. If you, however, make this too big
-(more than 50% of your total memory?) your system may start to page and
-become extremely slow. Remember that because MySQL does not cache
-data read, that you will have to leave some room for the OS filesystem
-cache.
+(for instance more than 50% of your total memory) your system may start
+to page and become extremely slow. Remember that because MySQL does not
+cache data reads, you will have to leave some room for the OS
+filesystem cache.
You can check the performance of the key buffer by doing @code{show
status} and examine the variables @code{Key_read_requests},
@@ -19739,7 +19847,7 @@ status} and examine the variables @code{Key_read_requests},
The @code{Key_write/Key_write_requests} is usually near 1 if you are
using mostly updates/deletes but may be much smaller if you tend to
do updates that affect many at the same time or if you are
-using @code{delay_key_write}. @xref{SHOW}.
+using @code{delay_key_write}. @xref{SHOW, , @code{SHOW}}.
To get even more speed when writing many rows at the same time, use
@code{LOCK TABLES}. @xref{LOCK TABLES, , @code{LOCK TABLES}}.
@@ -19840,7 +19948,7 @@ MySQL uses special tree-like cache to make bulk inserts (that is,
@code{LOAD DATA INFILE}) faster. This variable limits
the size of the cache tree in bytes per thread. Setting it to 0
will disable this optimization.
-@strong{Note:} This cache is only used when adding data to non-empty table.
+@strong{Note}: this cache is only used when adding data to non-empty table.
Default value is 8 MB.
@item @code{myisam_recover_options}
@@ -19852,18 +19960,18 @@ The buffer that is allocated when sorting the index when doing a
@code{ALTER TABLE}.
@item @code{myisam_max_extra_sort_file_size}.
-If the creating of the temporary file for fast index creation would be
-this much bigger than using the key cache, then prefer the key cache
-method. This is mainly used to force long character keys in large
+If the temporary file used for fast index creation would be bigger than
+using the key cache by the amount specified here, then prefer the key
+cache method. This is mainly used to force long character keys in large
tables to use the slower key cache method to create the index.
-@strong{NOTE} that this parameter is given in megabytes!
+@strong{Note} that this parameter is given in megabytes!
@item @code{myisam_max_sort_file_size}
The maximum size of the temporary file MySQL is allowed to use
while recreating the index (during @code{REPAIR}, @code{ALTER TABLE}
-or @code{LOAD DATA INFILE}. If the file size would be bigger than this,
+or @code{LOAD DATA INFILE}. If the file-size would be bigger than this,
the index will be created through the key cache (which is slower).
-@strong{NOTE} that this parameter is given in megabytes!
+@strong{Note} that this parameter is given in megabytes!
@item @code{net_buffer_length}
The communication buffer is reset to this size between queries. This
@@ -19875,7 +19983,7 @@ is automatically enlarged, up to @code{max_allowed_packet} bytes.)
@item @code{net_read_timeout}
Number of seconds to wait for more data from a connection before aborting
the read. Note that when we don't expect data from a connection, the timeout
-is defined by @code{write_timeout}. See also @code{slave_read_timeout}.
+is defined by @code{write_timeout}. See also @code{slave_net_timeout}.
@item @code{net_retry_count}
If a read on a communication port is interrupted, retry this many times
@@ -19926,18 +20034,18 @@ If this is 0, the query cache is disabled (default).
@item @code{query_cache_startup_type}
This may be set (only numeric) to
-@multitable @columnfractions .10 .15 .70
+@multitable @columnfractions .09 .14 .72
@item @strong{Value} @tab @strong{Alias} @tab @strong{Comment}
@item 0 @tab OFF @tab Don't cache or retrieve results.
@item 1 @tab ON @tab Cache all results except @code{SELECT SQL_NO_CACHE ...} queries.
@item 2 @tab DEMAND @tab Cache only @code{SELECT SQL_CACHE ...} queries.
@end multitable
-@item @code{safe_show_databases}
+@item @code{safe_show_database}
Don't show databases for which the user doesn't have any database or
table privileges. This can improve security if you're concerned about
people being able to see what databases other users have. See also
-@code{skip_show_databases}.
+@code{skip_show_database}.
@item @code{server_id}
The value of the @code{--server-id} option.
@@ -19948,13 +20056,13 @@ Is OFF if @code{mysqld} uses external locking.
@item @code{skip_networking}
Is ON if we only allow local (socket) connections.
-@item @code{skip_show_databases}
+@item @code{skip_show_database}
This prevents people from doing @code{SHOW DATABASES} if they don't have
-the @code{Process_priv} privilege. This can improve security if you're
+the @strong{process} privilege. This can improve security if you're
concerned about people being able to see what databases other users
-have. See also @code{safe_show_databases}.
+have. See also @code{safe_show_database}.
-@item @code{slave_read_timeout}
+@item @code{slave_net_timeout}
Number of seconds to wait for more data from a master/slave connection
before aborting the read.
@@ -19975,15 +20083,15 @@ operations.
The number of open tables for all threads. Increasing this value
increases the number of file descriptors that @code{mysqld} requires.
You can check if you need to increase the table cache by checking the
-@code{Opened_tables} variable. @xref{SHOW}. If this variable is big and
-you don't do @code{FLUSH TABLES} a lot (which just forces all tables to
-be closed and reopenend), then you should increase the value of this
+@code{Opened_tables} variable. @xref{SHOW, , @code{SHOW}}. If this variable
+is big and you don't do @code{FLUSH TABLES} a lot (which just forces all
+tables to be closed and reopenend), then you should increase the value of this
variable.
For more information about the table cache, see @ref{Table cache}.
@item @code{table_type}
-The default table type
+The default table type.
@item @code{thread_cache_size}
How many threads we should keep in a cache for reuse. When a
@@ -20067,15 +20175,15 @@ the first 100 characters of each query will be shown.
This command is very useful if you get the 'too many connections' error
message and want to find out what's going on. MySQL reserves
-one extra connection for a client with the @code{Process_priv} privilege
+one extra connection for a client with the @strong{process} privilege
to ensure that you should always be able to login and check the system
(assuming you are not giving this privilege to all your users).
-Some frequently states in @code{mysqladmin processlist}
+Some states commonly seen in @code{mysqladmin processlist}
@itemize @bullet
@item @code{Checking table}
-The thread doing an [automatic ?] checking of the table.
+The thread is performing [automatic] checking of the table.
@item @code{Closing tables}
Means that the thread is flushing the changed table data to disk and
closing the used tables. This should be a fast operation. If not, then
@@ -20085,7 +20193,7 @@ in very heavy use.
Slave connecting to master.
@item @code{Copying to tmp table on disk}
The temporary result set was larger than @code{tmp_table_size} and the
-thread is now changing the in memory based temporary table to a disk
+thread is now changing the in memory-based temporary table to a disk
based one to save memory.
@item @code{Creating tmp table}
The thread is creating a temporary table to hold a part of the result for
@@ -20168,7 +20276,7 @@ Most states are very quick operations. If threads last in any of these
states for many seconds, there may be a problem around that needs to be
investigated.
-There are some other states that are not mentioned above, but most of
+There are some other states that are not mentioned previously, but most of
these are only useful to find bugs in @code{mysqld}.
@node SHOW GRANTS, SHOW CREATE TABLE, SHOW PROCESSLIST, SHOW
@@ -20195,7 +20303,7 @@ mysql> SHOW GRANTS FOR root@@localhost;
Shows a @code{CREATE TABLE} statement that will create the given table:
@example
-mysql> show create table t\G
+mysql> SHOW CREATE TABLE t\G
*************************** 1. row ***************************
Table: t
Create Table: CREATE TABLE t (
@@ -20218,7 +20326,7 @@ Create Table: CREATE TABLE t (
* Character sets:: The Character Set Used for Data and Sorting
* Languages:: Non-English Error Messages
* Adding character set:: Adding a New Character Set
-* Character arrays:: The character definition arrays
+* Character arrays:: The Character Definition Arrays
* String collating:: String Collating Support
* Multi-byte characters:: Multi-byte Character Support
* Problems with character sets:: Problems With Character Sets
@@ -20255,7 +20363,7 @@ character set configuration files listed in
If you change the character set when running MySQL (which may
also change the sort order), you must run @code{myisamchk -r -q} on all
-tables. Otherwise your indexes may not be ordered correctly.
+tables. Otherwise, your indexes may not be ordered correctly.
When a client connects to a MySQL server, the server sends the
default character set in use to the client. The client will switch to
@@ -20267,7 +20375,7 @@ old @code{mysql_escape_string()} function, except that it takes the @code{MYSQL}
connection handle as the first parameter.
If the client is compiled with different paths than where the server is
-installed and the user who configured MySQL didn't included all
+installed and the user who configured MySQL didn't include all
character sets in the MySQL binary, one must specify for
the client where it can find the additional character sets it will need
if the server runs with a different character set than the client.
@@ -20279,8 +20387,8 @@ One can specify this by putting in a MySQL option file:
character-sets-dir=/usr/local/mysql/share/mysql/charsets
@end example
-where the path points to where the dynamic MySQL character sets
-are stored.
+where the path points to the directory in which the dynamic MySQL character
+sets are stored.
One can force the client to use specific character set by specifying:
@@ -20457,7 +20565,7 @@ The @code{configure} program uses this comment to include
the character set into the MySQL library automatically.
The strxfrm_multiply and mbmaxlen lines will be explained in
-the following sections. Only include them if you the string
+the following sections. Only include these if you need the string
collating functions or the multi-byte character set functions,
respectively.
@@ -20488,7 +20596,7 @@ distribution, mail a patch to @email{internals@@lists.mysql.com}.
@node Character arrays, String collating, Adding character set, Localisation
-@subsection The character definition arrays
+@subsection The Character Definition Arrays
@code{to_lower[]} and @code{to_upper[]} are simple arrays that hold the
lowercase and uppercase characters corresponding to each member of the
@@ -20501,7 +20609,7 @@ to_upper['a'] should contain 'A'
@code{sort_order[]} is a map indicating how characters should be ordered for
comparison and sorting purposes. For many character sets, this is the same as
-@code{to_upper[]} (which means sorting will be case insensitive).
+@code{to_upper[]} (which means sorting will be case-insensitive).
MySQL will sort characters based on the value of
@code{sort_order[character]}. For more complicated sorting rules, see
the discussion of string collating below. @xref{String collating}.
@@ -20615,10 +20723,10 @@ table with @code{myisamchk -dvv table_name}.
@menu
* Server-Side Overview:: Overview of the Server-Side Scripts and Utilities
-* safe_mysqld:: safe_mysqld, the wrapper around mysqld
-* mysqld_multi:: mysqld_multi, program for managing multiple MySQL servers
-* myisampack:: myisampack, The MySQL Compressed Read-only Table Generator
-* mysqld-max:: mysqld-max, An extended mysqld server
+* safe_mysqld:: @code{safe_mysqld}, The Wrapper Around @code{mysqld}
+* mysqld_multi:: @code{mysqld_multi}, Program for Managing Multiple MySQL Servers
+* myisampack:: @code{myisampack}, The MySQL Compressed Read-only Table Generator
+* mysqld-max:: @code{mysqld-max}, An Extended @code{mysqld} Server
@end menu
@@ -20639,7 +20747,7 @@ All MySQL clients that communicate with the server using the
@tindex environment variable, @code{MYSQL_PWD}
@tindex @code{MYSQL_DEBUG} environment variable
@tindex environment variable, @code{MYSQL_DEBUG}
-@multitable @columnfractions .25 .55
+@multitable @columnfractions .25 .60
@item @strong{Name} @tab @strong{Description}
@item @code{MYSQL_UNIX_PORT} @tab The default socket; used for connections to @code{localhost}
@item @code{MYSQL_TCP_PORT} @tab The default TCP/IP port
@@ -20656,7 +20764,7 @@ Use of @code{MYSQL_PWD} is insecure.
@tindex @code{HOME} environment variable
@tindex environment variable, @code{HOME}
@cindex history file
-@cindex command line history
+@cindex command-line history
@tindex .mysql_history file
The @file{mysql} client uses the file named in the @code{MYSQL_HISTFILE}
environment variable to save the command-line history. The default value for
@@ -20671,7 +20779,7 @@ to get a full description of the program's different options. For example, try
You can override default options for all standard client programs with an
option file. @ref{Option files}.
-The list below briefly describes the MySQL programs:
+The following list briefly describes the MySQL programs:
@table @code
@@ -20750,7 +20858,7 @@ shell> replace a b b a -- file1 file2 ...
@node safe_mysqld, mysqld_multi, Server-Side Overview, Server-Side Scripts
-@subsection safe_mysqld, the wrapper around mysqld
+@subsection @code{safe_mysqld}, The Wrapper Around @code{mysqld}
@cindex tools, safe_mysqld
@cindex scripts
@@ -20765,17 +20873,17 @@ If you don't use @code{--mysqld=#} or @code{--mysqld-version=#}
@code{safe_mysqld} will use an executable named @code{mysqld-max} if it
exists. If not, @code{safe_mysqld} will start @code{mysqld}.
This makes it very easy to test to use @code{mysqld-max} instead of
-@code{mysqld}; Just copy @code{mysqld-max} to where you have
+@code{mysqld}; just copy @code{mysqld-max} to where you have
@code{mysqld} and it will be used.
Normally one should never edit the @code{safe_mysqld} script, but
instead put the options to @code{safe_mysqld} in the
-@code{[safe_mysqld]} section in the @code{my.cnf}
+@code{[safe_mysqld]} section in the @file{my.cnf}
file. @code{safe_mysqld} will read all options from the @code{[mysqld]},
@code{[server]} and @code{[safe_mysqld]} sections from the option files.
@xref{Option files}.
-Note that all options on the command line to @code{safe_mysqld} are passed
+Note that all options on the command-line to @code{safe_mysqld} are passed
to @code{mysqld}. If you wants to use any options in @code{safe_mysqld} that
@code{mysqld} doesn't support, you must specify these in the option file.
@@ -20784,7 +20892,7 @@ Most of the options to @code{safe_mysqld} are the same as the options to
@code{safe_mysqld} supports the following options:
-@itemize
+@table @code
@item --basedir=path
@item --core-file-size=#
Size of the core file @code{mysqld} should be able to create. Passed to @code{ulimit -c}.
@@ -20811,7 +20919,7 @@ Number of files @code{mysqld} should be able to open. Passed to @code{ulimit -n}
@item --timezone=#
Set the timezone (the @code{TZ}) variable to the value of this parameter.
@item --user=#
-@end itemize
+@end table
The @code{safe_mysqld} script is written so that it normally is able to start
a server that was installed from either a source or a binary version of
@@ -20856,7 +20964,7 @@ edited version that you can reinstall.
@node mysqld_multi, myisampack, safe_mysqld, Server-Side Scripts
-@subsection mysqld_multi, program for managing multiple MySQL servers
+@subsection @code{mysqld_multi}, Program for Managing Multiple MySQL Servers
@cindex tools, mysqld_multi
@cindex scripts
@@ -20869,12 +20977,12 @@ processes running in different Unix sockets and TCP/IP ports.
The program will search for group(s) named [mysqld#] from my.cnf (or the
given --config-file=...), where # can be any positive number starting
from 1. These groups should be the same as the usual @code{[mysqld]}
-group (e.g. options to mysqld, see MySQL manual for detailed
-information about this group), but with those port, socket etc. options
+group (e.g., options to @code{mysqld}, see the MySQL manual for detailed
+information about this group), but with those port, socket, etc. options
that are wanted for each separate @code{mysqld} processes. The number in
the group name has another function; it can be used for starting,
stopping, or reporting some specific @code{mysqld} servers with this
-program. See the usage and options below for more information.
+program. See the usage and options here for more information.
@example
Usage: mysqld_multi [OPTIONS] @{start|stop|report@} [GNR,GNR,GNR...]
@@ -20883,7 +20991,7 @@ or mysqld_multi [OPTIONS] @{start|stop|report@} [GNR-GNR,GNR,GNR-GNR,...]
The GNR above means the group number. You can start, stop or report
any GNR, or several of them at the same time. (See --example) The GNRs
-list can be comma separated, or a dash combined, of which the latter
+list can be comma separated or combined with a dash, of which the latter
means that all the GNRs between GNR1-GNR2 will be affected. Without
GNR argument all the found groups will be either started, stopped, or
reported. Note that you must not have any white spaces in the GNR
@@ -20891,7 +20999,7 @@ list. Anything after a white space is ignored.
@code{mysqld_multi} supports the following options:
-@itemize
+@table @code
@cindex config-file option
@item --config-file=...
Alternative config file. Note: This will not affect this program's own
@@ -20936,7 +21044,7 @@ MySQL user for @code{mysqladmin}.
@cindex version option
@item --version
Print the version number and exit.
-@end itemize
+@end table
Some notes about @code{mysqld_multi}:
@@ -20959,7 +21067,7 @@ You will have to do the above for each @code{mysqld} running in each
data directory, that you have (just change the socket, -S=...).
@item
@code{pid-file} is very important, if you are using @code{safe_mysqld}
-to start @code{mysqld} (e.g. --mysqld=safe_mysqld) Every @code{mysqld}
+to start @code{mysqld} (e.g., @code{--mysqld=safe_mysqld}) Every @code{mysqld}
should have its own @code{pid-file}. The advantage using
@code{safe_mysqld} instead of @code{mysqld} directly here is, that
@code{safe_mysqld} 'guards' every @code{mysqld} process and will restart
@@ -20980,7 +21088,7 @@ release) if test -d /data/mysql -a -f ./share/mysql/english/errmsg.sys
@end example
The above test should be successful, or you may encounter problems.
@item
-Beware of the dangers starting multiple @code{mysqlds} in the same data
+Beware of the dangers starting multiple @code{mysqld}s in the same data
directory. Use separate data directories, unless you @strong{know} what
you are doing!
@item
@@ -21063,7 +21171,7 @@ user = jani
@node myisampack, mysqld-max, mysqld_multi, Server-Side Scripts
-@subsection myisampack, The MySQL Compressed Read-only Table Generator
+@subsection @code{myisampack}, The MySQL Compressed Read-only Table Generator
@cindex compressed tables
@cindex tables, compressed
@@ -21081,22 +21189,22 @@ The information needed to decompress columns is read into memory when the
table is opened. This results in much better performance when accessing
individual records, because you only have to uncompress exactly one record, not
a much larger disk block as when using Stacker on MS-DOS.
-Usually, @code{myisampack} packs the data file 40%-70%.
+Usually, @code{myisampack} packs the datafile 40%-70%.
MySQL uses memory mapping (@code{mmap()}) on compressed tables and
falls back to normal read/write file usage if @code{mmap()} doesn't work.
-There are currently two limitations with @code{myisampack}:
+Please note the following:
@itemize @bullet
@item
-After packing, the table is read-only.
+After packing, the table is read-only. This is generally intended
+(such as when accessing packed tables on a CD). Also allowing writes
+to a packed table is on our TODO list but with low priority.
@item
-@code{myisampack} can also pack @code{BLOB} or @code{TEXT} columns. The
-older @code{pack_isam} could not do this.
+@code{myisampack} can also pack @code{BLOB} or @code{TEXT} columns.
+The older @code{pack_isam} (for @code{ISAM} tables) can not do this.
@end itemize
-Fixing these limitations is on our TODO list but with low priority.
-
@code{myisampack} is invoked like this:
@example
@@ -21109,7 +21217,7 @@ file. It is permissible to omit the @file{.MYI} extension.
@code{myisampack} supports the following options:
-@itemize @bullet
+@table @code
@item -b, --backup
Make a backup of the table as @code{tbl_name.OLD}.
@@ -21129,7 +21237,7 @@ it finds that @file{tbl_name.TMD} exists. With @code{--force},
Display a help message and exit.
@item -j big_tbl_name, --join=big_tbl_name
-Join all tables named on the command line into a single table
+Join all tables named on the command-line into a single table
@code{big_tbl_name}. All tables that are to be combined
@strong{must} be identical (same column names and types, same indexes, etc.).
@@ -21163,10 +21271,10 @@ Wait and retry if table is in use. If the @code{mysqld} server was
invoked with the @code{--skip-locking} option, it is not a good idea to
invoke @code{myisampack} if the table might be updated during the
packing process.
-@end itemize
+@end table
@cindex examples, compressed tables
-The sequence of commands shown below illustrates a typical table compression
+The sequence of commands shown here illustrates a typical table compression
session:
@example
@@ -21345,7 +21453,7 @@ Field Start Length Type Huff tree Bits
57 831 4 no zeros, zerofill(1) 2 9
@end example
-The information printed by @code{myisampack} is described below:
+The information printed by @code{myisampack} is described here:
@table @code
@item normal
@@ -21447,7 +21555,7 @@ If you want to unpack a packed table, you can do this with the
@node mysqld-max, , myisampack, Server-Side Scripts
-@subsection mysqld-max, An extended mysqld server
+@subsection @code{mysqld-max}, An Extended @code{mysqld} Server
@cindex @code{mysqld-max}
@@ -21476,7 +21584,7 @@ You can check which table types are supported by doing the following
query:
@example
-mysql> show variables like "have_%";
+mysql> SHOW VARIABLES LIKE "have_%";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
@@ -21520,12 +21628,12 @@ The following table shows which table types our standard @strong{MySQL-Max}
binaries includes:
@multitable @columnfractions .15 .10 .10
-@item @strong{System} @tab @strong{BDB} @tab @strong{InnoDB}
+@item @strong{System} @tab @code{BDB} @tab @code{InnoDB}
@item AIX 4.3 @tab N @tab Y
@item HP-UX 11.0 @tab N @tab Y
@item Linux-Alpha @tab N @tab Y
@item Linux-Intel @tab Y @tab Y
-@item Linux-Ia64 @tab N @tab Y
+@item Linux-IA64 @tab N @tab Y
@item Solaris-Intel @tab N @tab Y
@item Solaris-SPARC @tab Y @tab Y
@item Caldera (SCO) OSR5 @tab Y @tab Y
@@ -21540,13 +21648,13 @@ binaries includes:
@menu
* Client-Side Overview:: Overview of the Client-Side Scripts and Utilities
* mysql:: The Command-line Tool
-* mysqladmin:: mysqladmin, Administrating a MySQL Server
+* mysqladmin:: @code{mysqladmin}, Administrating a MySQL Server
* Using mysqlcheck:: Using @code{mysqlcheck} for Table Maintenance and Crash Recovery
-* mysqldump:: mysqldump, Dumping Table Structure and Data
-* mysqlhotcopy:: mysqlhotcopy, Copying MySQL Databases and Tables
-* mysqlimport:: mysqlimport, Importing Data from Text Files
+* mysqldump:: @code{mysqldump}, Dumping Table Structure and Data
+* mysqlhotcopy:: @code{mysqlhotcopy}, Copying MySQL Databases and Tables
+* mysqlimport:: @code{mysqlimport}, Importing Data from Text Files
* mysqlshow:: Showing Databases, Tables, and Columns
-* perror:: perror, Explaining Error Codes
+* perror:: @code{perror}, Explaining Error Codes
* Batch Commands:: How to Run SQL Commands from a Text File
@end menu
@@ -21568,7 +21676,7 @@ All MySQL clients that communicate with the server using the
@tindex environment variable, @code{MYSQL_PWD}
@tindex @code{MYSQL_DEBUG} environment variable
@tindex environment variable, @code{MYSQL_DEBUG}
-@multitable @columnfractions .25 .55
+@multitable @columnfractions .25 .60
@item @strong{Name} @tab @strong{Description}
@item @code{MYSQL_UNIX_PORT} @tab The default socket; used for connections to @code{localhost}
@item @code{MYSQL_TCP_PORT} @tab The default TCP/IP port
@@ -21585,7 +21693,7 @@ Use of @code{MYSQL_PWD} is insecure.
@tindex @code{HOME} environment variable
@tindex environment variable, @code{HOME}
@cindex history file
-@cindex command line history
+@cindex command-line history
@tindex .mysql_history file
The @file{mysql} client uses the file named in the @code{MYSQL_HISTFILE}
environment variable to save the command-line history. The default value for
@@ -21600,7 +21708,7 @@ to get a full description of the program's different options. For example, try
You can override default options for all standard client programs with an
option file. @ref{Option files}.
-The list below briefly describes the MySQL programs:
+The following list briefly describes the MySQL programs:
@table @code
@@ -21679,10 +21787,10 @@ shell> replace a b b a -- file1 file2 ...
@node mysql, mysqladmin, Client-Side Overview, Client-Side Scripts
-@subsection The Command-line Tool
+@subsection @code{mysql}, The Command-line Tool
-@cindex command line tool
-@cindex tools, command line
+@cindex command-line tool
+@cindex tools, command-line
@cindex scripts
@cindex @code{mysql}
@@ -21706,9 +21814,9 @@ Using @code{mysql} is very easy. Just start it as follows:
@code{mysql database} or @code{mysql --user=user_name --password=your_password database}. Type a SQL statement, end it with @samp{;}, @samp{\g}, or @samp{\G}
and press Enter.
-@cindex @code{mysql} command line options
-@cindex command line options, @code{mysql}
-@cindex options, command line, @code{mysql}
+@cindex @code{mysql} command-line options
+@cindex command-line options, @code{mysql}
+@cindex options, command-line, @code{mysql}
@cindex startup parameters, @code{mysql}
@code{mysql} supports the following options:
@@ -21722,6 +21830,14 @@ Display this help and exit.
No automatic rehashing. One has to use 'rehash' to get table and field
completion. This gives a quicker start of mysql.
+@cindex @code{prompt}, @code{mysql} option
+@item --prompt=...
+Set the mysql prompt to specified format.
+
+@cindex @code{no-beep}, @code{mysql} option
+@item -b, --no-beep
+Turn off beep-on-error.
+
@cindex @code{batch}, @code{mysql} option
@item -B, --batch
Print results with a tab as separator, each row on a new line. Doesn't use
@@ -21741,7 +21857,7 @@ Debug log. Default is 'd:t:o,/tmp/mysql.trace'.
@cindex @code{database}, @code{mysql} option
@item -D, --database=...
-Database to use. This is mainly useful in the @code{my.cnf} file.
+Database to use. This is mainly useful in the @file{my.cnf} file.
@cindex @code{default-character-set}, @code{mysql} option
@item --default-character-set=...
@@ -21824,7 +21940,7 @@ also. This option does not work in batch mode. Pager works only in Unix.
@cindex @code{password}, @code{mysql} option
@item -p[password], --password[=...]
Password to use when connecting to server. If a password is not given on
-the command line, you will be prompted for it. Note that if you use the
+the command-line, you will be prompted for it. Note that if you use the
short form @code{-p} you can't have a space between the option and the
password.
@@ -21870,7 +21986,7 @@ User for login if not current user.
@item -U, --safe-updates[=#], --i-am-a-dummy[=#]
Only allow @code{UPDATE} and @code{DELETE} that uses keys. See below for
more information about this option. You can reset this option if you have
-it in your @code{my.cnf} file by using @code{--safe-updates=0}.
+it in your @file{my.cnf} file by using @code{--safe-updates=0}.
@cindex @code{verbose}, @code{mysql} option
@item -v, --verbose
@@ -21903,7 +22019,7 @@ You can also set the following variables with @code{-O} or
@item max_join_size @tab 1000000 @tab Automatic limit for rows in a join when using --i-am-a-dummy.
@end multitable
-If you type 'help' on the command line, @code{mysql} will print out the
+If you type 'help' on the command-line, @code{mysql} will print out the
commands that it supports:
@cindex commands, list of
@@ -21926,6 +22042,7 @@ notee (\t) Don't write into outfile.
pager (\P) Set PAGER [to_pager].
Print the query results via PAGER.
print (\p) Print current command.
+prompt (\R) Change your mysql prompt.
quit (\q) Quit mysql.
rehash (\#) Rebuild completion hash.
source (\.) Execute a SQL script file.
@@ -21937,9 +22054,9 @@ use (\u) Use another database.
Takes database name as argument.
@end example
-From the above, pager only works in Unix.
+The @code{pager} command works only in Unix.
-@cindex status command
+@cindex @code{status} command
The @code{status} command gives you some information about the
connection and the server you are using. If you are running in the
@code{--safe-updates} mode, @code{status} will also print the values for
@@ -21959,7 +22076,7 @@ SET SQL_SAFE_UPDATES=1,SQL_SELECT_LIMIT=#select_limit#,
@end example
where @code{#select_limit#} and @code{#max_join_size#} are variables that
-can be set from the @code{mysql} command line. @xref{SET OPTION, @code{SET}}.
+can be set from the @code{mysql} command-line. @xref{SET OPTION, @code{SET}}.
The effect of the above is:
@@ -21986,7 +22103,7 @@ includes new lines, is often much easier to be read with vertical
output.
@example
-mysql> select * from mails where length(txt) < 300 limit 300,1\G
+mysql> SELECT * FROM mails WHERE LENGTH(txt) < 300 lIMIT 300,1\G
*************************** 1. row ***************************
msg_nro: 3068
date: 2000-03-01 23:29:50
@@ -21998,7 +22115,7 @@ mail_from: Monty
txt: >>>>> "Thimble" == Thimble Smith writes:
Thimble> Hi. I think this is a good idea. Is anyone familiar with UTF-8
-Thimble> or Unicode? Otherwise I'll put this on my TODO list and see what
+Thimble> or Unicode? Otherwise, I'll put this on my TODO list and see what
Thimble> happens.
Yes, please do that.
@@ -22013,14 +22130,14 @@ Monty
@itemize @bullet
@item
For logging, you can use the @code{tee} option. The @code{tee} can be
-started with option @code{--tee=...}, or from the command line
+started with option @code{--tee=...}, or from the command-line
interactively with command @code{tee}. All the data displayed on the
screen will also be appended into a given file. This can be very useful
for debugging purposes also. The @code{tee} can be disabled from the
-command line with command @code{notee}. Executing @code{tee} again
+command-line with command @code{notee}. Executing @code{tee} again
starts logging again. Without a parameter the previous file will be
used. Note that @code{tee} will flush the results into the file after
-each command, just before the command line appears again waiting for the
+each command, just before the command-line appears again waiting for the
next command.
@item
@@ -22028,7 +22145,7 @@ Browsing, or searching the results in the interactive mode in Unix less,
more, or any other similar program, is now possible with option
@code{--pager[=...]}. Without argument, @code{mysql} client will look
for environment variable PAGER and set @code{pager} to that.
-@code{pager} can be started from the interactive command line with
+@code{pager} can be started from the interactive command-line with
command @code{pager} and disabled with command @code{nopager}. The
command takes an argument optionally and the @code{pager} will be set to
that. Command @code{pager} can be called without an argument, but this
@@ -22083,9 +22200,89 @@ more handy to switch on and off, when you want to log something into a
file, but want to be able to turn the feature off sometimes.
@end itemize
+@cindex @code{prompt} command
+You can change the prompt in the @code{mysql} command-line client.
+
+You can use the following prompt options:
+@c FIX these columnfractions have NOT been measured!
+@multitable @columnfractions .10 .50
+@item @strong{Option} @tab @strong{Description}
+@item \v @tab mysqld version
+@item \d @tab database in use
+@item \h @tab host connected to
+@item \p @tab port connected on
+@item \u @tab username
+@item \U @tab full username@@host
+@item \\ @tab @samp{\}
+@item \n @tab new line break
+@item \t @tab tab
+@item \ @tab space
+@item \_ @tab space
+@item \R @tab military hour time (0-23)
+@item \r @tab standard hour time (1-12)
+@item \m @tab minutes
+@item \y @tab two digit year
+@item \Y @tab four digit year
+@item \D @tab full date format
+@item \s @tab seconds
+@item \w @tab day of the week in three letter format (Mon, Tue, ...)
+@item \P @tab am/pm
+@item \o @tab month in number format
+@item \O @tab month in three letter format (Jan, Feb, ...)
+@item \c @tab counter that counts up for each command you do
+@end multitable
+
+@samp{\} followed by any other letter just becomes that letter.
+
+You may set the prompt in the following places:
+
+@table @strong
+@item Environment Variable
+You may set the @code{MYSQL_PS1} environment variable to a prompt string. For
+example:
+
+@example
+shell> export MYSQL_PS1="(\u@@\h) [\d]> "
+@end example
+
+@item @file{my.cnf}
+@item @file{.my.cnf}
+You may set the @code{prompt} option in any MySQL configuration file, in the
+@code{mysql} group. For example:
+
+@example
+[mysql]
+prompt=(\u@@\h) [\d]>\_
+@end example
+
+@item Command Line
+You may set the @code{--prompt} option on the command line to @code{mysql}.
+For example:
+
+@example
+shell> mysql --prompt="(\u@@\h) [\d]> "
+
+(user@@host) [database]>
+@end example
+
+@item Interactively
+You may also use the @code{prompt} (or @code{\R}) command to change your
+prompt interactively. For example:
+
+@example
+mysql> prompt (\u@@\h) [\d]>\_
+PROMPT set to '(\u@@\h) [\d]>\_'
+(user@@host) [database]>
+(user@@host) [database]> prompt
+Returning to default PROMPT of mysql>
+mysql>
+@end example
+
+@end table
+
@node mysqladmin, Using mysqlcheck, mysql, Client-Side Scripts
-@subsection mysqladmin, Administrating a MySQL Server
+@subsection @code{mysqladmin}, Administrating a MySQL Server
@cindex administration, server
@cindex server administration
@@ -22280,7 +22477,7 @@ Use compression in server/client protocol.
@item -?, --help
Display this help message and exit.
@item -B, --databases
-To check several databases. Note the difference in usage; In this case
+To check several databases. Note the difference in usage; in this case
no tables are given. All name arguments are regarded as database names.
@item --default-character-set=...
Set the default character set
@@ -22332,7 +22529,7 @@ Output version information and exit.
@node mysqldump, mysqlhotcopy, Using mysqlcheck, Client-Side Scripts
-@subsection mysqldump, Dumping Table Structure and Data
+@subsection @code{mysqldump}, Dumping Table Structure and Data
@cindex dumping, databases
@cindex databases, dumping
@@ -22425,7 +22622,8 @@ tables.
@item -K, --disable-keys
@code{/*!40000 ALTER TABLE tb_name DISABLE KEYS */;} and
@code{/*!40000 ALTER TABLE tb_name ENABLE KEYS */;}
-will be put in the output.
+will be put in the output. This will make loading the data into a MySQL
+4.0 server faster as the indexes are created after all data are inserted.
@item -n, --no-create-db
@code{CREATE DATABASE /*!32312 IF NOT EXISTS*/ db_name;} will not be put in the
output. The above line will be added otherwise, if --databases or
@@ -22450,6 +22648,8 @@ used.)
@item -q, --quick
Don't buffer query, dump directly to stdout. Uses @code{mysql_use_result()}
to do this.
+@item -Q, --quote-names
+Quote table and column names within @samp{`} characters.
@item -r, --result-file=...
Direct output to a given file. This option should be used in MSDOS,
because it prevents new line '\n' from being converted to '\n\r' (new
@@ -22462,7 +22662,7 @@ Overrides option --databases (-B).
@item -T, --tab=path-to-some-directory
Creates a @code{table_name.sql} file, that contains the SQL CREATE commands,
and a @code{table_name.txt} file, that contains the data, for each give table.
-@strong{NOTE}: This only works if @code{mysqldump} is run on the same
+@strong{Note}: This only works if @code{mysqldump} is run on the same
machine as the @code{mysqld} daemon. The format of the @file{.txt} file
is made according to the @code{--fields-xxx} and @code{--lines--xxx} options.
@item -u user_name, --user=user_name
@@ -22533,14 +22733,14 @@ mysqldump --all-databases > all_databases.sql
@node mysqlhotcopy, mysqlimport, mysqldump, Client-Side Scripts
-@subsection mysqlhotcopy, Copying MySQL Databases and Tables
+@subsection @code{mysqlhotcopy}, Copying MySQL Databases and Tables
@cindex dumping, databases
@cindex databases, dumping
@cindex tables, dumping
@cindex backing up, databases
-@code{mysqlhotcopy} is a perl script that uses @code{LOCK TABLES},
+@code{mysqlhotcopy} is a Perl script that uses @code{LOCK TABLES},
@code{FLUSH TABLES} and @code{cp} or @code{scp} to quickly make a backup
of a database. It's the fastest way to make a backup of the database,
of single tables but it can only be run on the same machine where the
@@ -22601,13 +22801,13 @@ documentation for @code{mysqlhotcopy}.
from the option files.
To be able to execute @code{mysqlhotcopy} you need write access to the
-backup directory, @code{SELECT} privilege to the tables you are about to
-copy and the MySQL @code{Reload} privilege (to be able to
+backup directory, the @strong{select} privilege for the tables you are about to
+copy and the MySQL @strong{reload} privilege (to be able to
execute @code{FLUSH TABLES}).
@node mysqlimport, mysqlshow, mysqlhotcopy, Client-Side Scripts
-@subsection mysqlimport, Importing Data from Text Files
+@subsection @code{mysqlimport}, Importing Data from Text Files
@cindex importing, data
@cindex data, importing
@@ -22626,7 +22826,7 @@ directly to the same options to @code{LOAD DATA INFILE}.
shell> mysqlimport [options] database textfile1 [textfile2 ...]
@end example
-For each text file named on the command line,
+For each text file named on the command-line,
@code{mysqlimport} strips any extension from the filename and uses the result
to determine which table to import the file's contents into. For example,
files named @file{patient.txt}, @file{patient.text}, and @file{patient} would
@@ -22784,12 +22984,12 @@ are shown.
Note that in newer MySQL versions, you only see those
database/tables/columns for which you have some privileges.
-If the last argument contains a shell or SQL wild-card (@code{*}, @code{?},
-@code{%} or @code{_}) then only what's matched by the wild card is shown.
+If the last argument contains a shell or SQL wildcard (@code{*}, @code{?},
+@code{%} or @code{_}) then only what's matched by the wildcard is shown.
This may cause some confusion when you try to display the columns for a
table with a @code{_} as in this case @code{mysqlshow} only shows you
the table names that match the pattern. This is easily fixed by
-adding an extra @code{%} last on the command line (as a separate
+adding an extra @code{%} last on the command-line (as a separate
argument).
@@ -22830,8 +23030,6 @@ Note that the error messages are mostly system dependent!
@node Batch Commands, , perror, Client-Side Scripts
@subsection How to Run SQL Commands from a Text File
-@c FIX add the 'source' command
-
The @code{mysql} client typically is used interactively, like this:
@example
@@ -22841,7 +23039,7 @@ shell> mysql database
However, it's also possible to put your SQL commands in a file and tell
@code{mysql} to read its input from that file. To do so, create a text
file @file{text_file} that contains the commands you wish to execute.
-Then invoke @code{mysql} as shown below:
+Then invoke @code{mysql} as shown here:
@example
shell> mysql database < text_file
@@ -22855,7 +23053,14 @@ line:
shell> mysql < text_file
@end example
-@xref{Client-Side Scripts}.
+If you are already running @code{mysql}, you can execute a SQL
+script file using the @code{source} command:
+
+@example
+mysql> source filename;
+@end example
+
+For more information about batch mode, @ref{Batch mode}.
@node Log Files, Replication, Client-Side Scripts, MySQL Database Administration
@@ -22929,7 +23134,7 @@ remove the @code{-l} option from @code{mysql.server} or change it to
@code{--log-bin}.
The entries in this log are written as @code{mysqld} receives the questions.
-This may be different than the order in which the statements are executed.
+This may be different from the order in which the statements are executed.
This is in contrast to the update log and the binary log which are written
after the query is executed, but before any locks are released.
@@ -22940,7 +23145,7 @@ after the query is executed, but before any locks are released.
@cindex update log
@cindex files, update log
-@strong{Note}: The update log is replaced by the binary
+@strong{Note}: the update log is replaced by the binary
log. @xref{Binary log}. With this you can do anything that you can do
with the update log.
@@ -22954,7 +23159,7 @@ extension, @code{mysqld} will create log file names like so:
time you execute @code{mysqladmin refresh}, execute @code{mysqladmin
flush-logs}, execute the @code{FLUSH LOGS} statement, or restart the server.
-@strong{Note:} For the above scheme to work, you must not create
+@strong{Note}: for the above scheme to work, you must not create
your own files with the same filename as the update log + some extensions
that may be regarded as a number, in the directory used by the update log!
@@ -23030,7 +23235,7 @@ command. @xref{RESET}.
You can use the following options to @code{mysqld} to affect what is logged
to the binary log:
-@multitable @columnfractions .35 .65
+@multitable @columnfractions .38 .62
@item @strong{Option} @tab @strong{Description}
@item @code{binlog-do-db=database_name} @tab
@@ -23105,7 +23310,7 @@ more than @code{long_query_time} to execute. The time to get the initial
table locks are not counted as execution time.
The slow query log is logged after the query is executed and after all
-locks has been released. This may be different than the order in which
+locks has been released. This may be different from the order in which
the statements are executed.
If no file name is given, it defaults to the name of the host machine
@@ -23189,7 +23394,7 @@ and then take a backup and remove @file{mysql.old}.
* Replication Implementation:: Replication Implementation Overview
* Replication HOWTO:: How To Set Up Replication
* Replication Features:: Replication Features and Known Problems
-* Replication Options:: Replication Options in my.cnf
+* Replication Options:: Replication Options in @file{my.cnf}
* Replication SQL:: SQL Commands Related to Replication
* Replication FAQ:: Replication FAQ
* Replication Problems:: Troubleshooting Replication
@@ -23198,7 +23403,7 @@ and then take a backup and remove @file{mysql.old}.
This section describes the various replication features in MySQL.
It serves as a reference to the options available with replication.
You will be introduced to replication and learn how to implement it.
-Towards the end, there are some frequently asked questions and descriptions
+Toward the end, there are some frequently asked questions and descriptions
of problems and how to solve them.
We suggest that you visit our website at @uref{http://www.mysql.com/}
@@ -23271,7 +23476,7 @@ Due to the above limitation, we recommend that at this point you use
small, or if a prolonged read lock on the master is acceptable. While the
actual speed of @code{LOAD DATA FROM MASTER} may vary from system to system,
a good rule for a rough estimate of how long it is going to take is 1 second
-per 1 MB of the data file. You will get close to the estimate if both master
+per 1 MB of the datafile. You will get close to the estimate if both master
and slave are equivalent to 700 MHz Pentium, are connected through
100 MBit/s network, and your index file is about half the size of your data
file. Of course, your mileage will vary from system to system, the above rule
@@ -23293,24 +23498,24 @@ The next section explains the master/slave setup process in more detail.
@node Replication HOWTO, Replication Features, Replication Implementation, Replication
@subsection How To Set Up Replication
-Below is a quick description of how to set up complete replication on
+Here is a quick description of how to set up complete replication on
your current MySQL server. It assumes you want to replicate all
your databases and have not configured replication before. You will need
to shutdown your master server briefly to complete the steps outlined
-below.
+here.
-While the above method is the most straightforward way to set up a slave,
+While this method is the most straightforward way to set up a slave,
it is not the only one. For example, if you already have a snapshot
of the master, and
-the master already has server id set and binary logging enabled, one can
+the master already has server id set and binary logging enabled, you can
set up a slave without shutting the master down or even blocking the updates.
For more details, please see @ref{Replication FAQ}.
If you want to become a real MySQL replication guru, we suggest that you
-begin with studing, pondering, and trying all commands
+begin by studying, pondering, and trying all commands
mentioned in @ref{Replication SQL}. You should also familiarize yourself
-with replication startup options in @code{my.cnf} in
-@xref{Replication Options}.
+with replication startup options in @file{my.cnf} in
+@ref{Replication Options}.
@enumerate
@item
@@ -23332,7 +23537,7 @@ For example, to create a user named @code{repl} which can access your
master from any host, you might use this command:
@example
-GRANT FILE ON *.* TO repl@@"%" IDENTIFIED BY '<password>';
+mysql> GRANT FILE ON *.* TO repl@@"%" IDENTIFIED BY '<password>';
@end example
@item
@@ -23357,7 +23562,7 @@ Windows users can use @code{WinZIP} or similar software to create an
archive of the data directory.
@item
-In @code{my.cnf} on the master add @code{log-bin} and
+In @file{my.cnf} on the master add @code{log-bin} and
@code{server-id=unique number} to the @code{[mysqld]} section and
restart it. It is very important that the id of the slave is different from
the id of the master. Think of @code{server-id} as something similar
@@ -23374,7 +23579,7 @@ server-id=1
Restart MySQL on the master.
@item
-Add the following to @code{my.cnf} on the slave(s):
+Add the following to @file{my.cnf} on the slave(s):
@example
master-host=<hostname of the master>
@@ -23416,16 +23621,16 @@ Warning: one should set server_id to a non-0 value if master_host is set.
The server will not act as a slave.
@end example
-If you have forgot to do this for the master, the slaves will not be
+If you have forgotten to do this for the master, the slaves will not be
able to connect to the master.
If a slave is not able to replicate for any reason, you will find error
messages in the error log on the slave.
Once a slave is replicating, you will find a file called
-@code{master.info} in the same directory as your error log. The
-@code{master.info} file is used by the slave to keep track of how much
-of the master's binary log is has processed. @strong{Do not} remove or
+@file{master.info} in the same directory as your error log. The
+@file{master.info} file is used by the slave to keep track of how much
+of the master's binary log it has processed. @strong{Do not} remove or
edit the file, unless you really know what you are doing. Even in that case,
it is preferred that you use @code{CHANGE MASTER TO} command.
@@ -23433,10 +23638,10 @@ it is preferred that you use @code{CHANGE MASTER TO} command.
@subsection Replication Features and Known Problems
@cindex options, replication
-@cindex @code{my.cnf} file
-@cindex files,@code{my.cnf}
+@cindex @file{my.cnf} file
+@cindex files,@file{my.cnf}
-Below is an explanation of what is supported and what is not:
+Here is an explanation of what is supported and what is not:
@itemize @bullet
@item
@@ -23464,15 +23669,15 @@ Update queries that use user variables are not replication-safe (yet).
@code{FLUSH} commands are not stored in the binary log and are because
of this not replicated to the slaves. This is not normally a problem as
@code{FLUSH} doesn't change anything. This does however mean that if you
-update the @code{MySQL} privilege tables directly without using
-@code{GRANT} statement and you replicate the @code{MySQL} privilege
+update the MySQL privilege tables directly without using the
+@code{GRANT} statement and you replicate the @code{mysql} privilege
database, you must do a @code{FLUSH PRIVILEGES} on your slaves to put
the new privileges into effect.
@item
Temporary tables starting in 3.23.29 are replicated properly with the
exception of the case when you shut down slave server ( not just slave thread),
-you have some temporary tables open, and the are used in subsequent updates.
-To deal with this problem, to shut down the slave, do @code{SLAVE STOP}, then
+you have some temporary tables open, and they are used in subsequent updates.
+To deal with this problem shutting down the slave, do @code{SLAVE STOP},
check @code{Slave_open_temp_tables} variable to see if it is 0, then issue
@code{mysqladmin shutdown}. If the number is not 0, restart the slave thread
with @code{SLAVE START} and see
@@ -23482,10 +23687,10 @@ In earlier versions temporary tables are not replicated properly - we
recommend that you either upgrade, or execute @code{SET SQL_LOG_BIN=0} on
your clients before all queries with temp tables.
@item
-MySQL only supports one master and many slaves. We will in 4.x
+MySQL only supports one master and many slaves. In 4.x, we will
add a voting algorithm to automatically change master if something goes
wrong with the current master. We will also introduce 'agent' processes
-to help doing load balancing by sending select queries to different
+to help do load balancing by sending select queries to different
slaves.
@item
Starting in Version 3.23.26, it is safe to connect servers in a circular
@@ -23513,7 +23718,7 @@ pre-3.23.26 slaves will not be able to read it.
If the query on the slave gets an error, the slave thread will
terminate, and a message will appear in the @file{.err} file. You should
then connect to the slave manually, fix the cause of the error (for
-example, non-existent table), and then run @code{SLAVE START} sql
+example, non-existent table), and then run the @code{SLAVE START} SQL
command (available starting in Version 3.23.16). In Version 3.23.15, you
will have to restart the server.
@item
@@ -23529,19 +23734,19 @@ if disk cache was not synced before the system died. Your system fault
tolerance will be greatly increased if you have a good UPS.
@item
If the master is listening on a non-standard port, you will also need to
-specify this with @code{master-port} parameter in @code{my.cnf} .
+specify this with @code{master-port} parameter in @file{my.cnf} .
@item
In Version 3.23.15, all of the tables and databases will be
replicated. Starting in Version 3.23.16, you can restrict replication to
a set of databases with @code{replicate-do-db} directives in
-@code{my.cnf} or just exclude a set of databases with
+@file{my.cnf} or just exclude a set of databases with
@code{replicate-ignore-db}. Note that up until Version 3.23.23, there was a bug
that did not properly deal with @code{LOAD DATA INFILE} if you did it in
a database that was excluded from replication.
@item
Starting in Version 3.23.16, @code{SET SQL_LOG_BIN = 0} will turn off
replication (binary) logging on the master, and @code{SET SQL_LOG_BIN =
-1} will turn in back on - you must have the process privilege to do
+1} will turn it back on -- you must have the @strong{process} privilege to do
this.
@item
Starting in Version 3.23.19, you can clean up stale replication leftovers when
@@ -23580,14 +23785,14 @@ While individual tables can be excluded from replication with
@code{replicate-wild-do-table}/@code{replicate-wild-ignore-table}, there
are currently some design deficiencies that in some rather rare cases
produce unexpected results. The replication protocol does not inform the
-slave explicitly which tables are going to be modified by the query - so
+slave explicitly which tables are going to be modified by the query -- so
the slave has to parse the query to know this. To avoid redundant
parsing for queries that will end up actually being executed, table
exclusion is currently implemented by sending the query to the standard
MySQL parser, which will short-circuit the query and report success if
it detects that the table should be ignored. In addition to several
inefficiencies, this approach is also more bug prone, and there are two
-known bugs as of Version 3.23.49 - because the parser automatically opens
+known bugs as of Version 3.23.49 -- because the parser automatically opens
the table when parsing some queries the ignored table has to exist on
the slave. The other bug is that if the ignored table gets partially
updated, the slave thread will not notice that the table actually should
@@ -23595,17 +23800,17 @@ have been ignored and will suspend the replication process. While the
above bugs are conceptually very simple to fix, we have not yet found a way
to do this without a sigficant code change that would compromize the stability
status of 3.23 branch. There exists a workaround for both if in the rare case
-it happens to affect your application - use @code{slave-skip-errors}.
+it happens to affect your application -- use @code{slave-skip-errors}.
@end itemize
@node Replication Options, Replication SQL, Replication Features, Replication
-@subsection Replication Options in my.cnf
+@subsection Replication Options in @file{my.cnf}
-If you are using replication, we recommend you to use MySQL Version
+If you are using replication, we recommend that you use MySQL Version
3.23.30 or later. Older versions work, but they do have some bugs and are
-missing some features. Some of the options below may not be available in
+missing some features. Some of the options mentioned here may not be available in
your version if it is not the most recent one. For all options specific to
the 4.0 branch, there is a note indicating so. Otherwise, if you discover
that the option you are interested in is not available in your 3.23 version,
@@ -23622,9 +23827,9 @@ This sets an unique replication id. You should pick a unique value in the
range between 1 to 2^32-1 for each master and slave.
Example: @code{server-id=3}
-The following table has the options you can use for the @strong{MASTER}:
+The following table describes the options you can use for the @code{MASTER}:
-@multitable @columnfractions .35 .65
+@multitable @columnfractions .38 .62
@item @strong{Option} @tab @strong{Description}
@item @code{log-bin=filename} @tab
@@ -23635,17 +23840,16 @@ not work right during replication if you do @code{FLUSH LOGS} . The
problem is fixed in Version 3.23.25. If you are using this kind of log
name, @code{FLUSH LOGS} will be ignored on binlog. To clear the log, run
@code{FLUSH MASTER}, and do not forget to run @code{FLUSH SLAVE} on all
-slaves. In Version 3.23.26 and in later versions you should use
+slaves. In Versions 3.23.26 and later, you should use
@code{RESET MASTER} and @code{RESET SLAVE}
@item @code{log-bin-index=filename} @tab
Because the user could issue the @code{FLUSH LOGS} command, we need to
know which log is currently active and which ones have been rotated out
and in what sequence. This information is stored in the binary log index file.
-The default is `hostname`.index. You can use this option if you want to
-be a rebel.
+The default is @file{`hostname`.index}. You should not need to change this.
-Example: @code{log-bin-index=db.index}.
+Example: @code{log-bin-index=db.index}
@item @code{sql-bin-update-same} @tab
If set, setting @code{SQL_LOG_BIN} to a value will automatically set
@@ -23653,91 +23857,90 @@ If set, setting @code{SQL_LOG_BIN} to a value will automatically set
@item @code{binlog-do-db=database_name} @tab
Tells the master that it should log updates to the binary log if the
-current database is 'database_name'. All others database are ignored.
-Note that if you use this you should ensure that you only do updates in
+current database is @code{database_name}. All other databases are ignored.
+Note that if you use this, you should ensure that you do updates only in
the current database.
-Example: @code{binlog-do-db=sales}.
+Example: @code{binlog-do-db=sales}
@item @code{binlog-ignore-db=database_name} @tab
Tells the master that updates where the current database is
-'database_name' should not be stored in the binary log. Note that if
-you use this you should ensure that you only do updates in the current
+@code{database_name} should not be stored in the binary log. Note that if
+you use this, you should ensure that you do updates only in the current
database.
Example: @code{binlog-ignore-db=accounting}
@end multitable
-The following table has the options you can use for the @strong{SLAVE}:
+The following table describes the options you can use for the @code{SLAVE}:
-@multitable @columnfractions .35 .65
+@multitable @columnfractions .38 .62
@item @strong{Option} @tab @strong{Description}
@item @code{master-host=host} @tab
Master hostname or IP address for replication. If not set, the slave
thread will not be started. Note that the setting of @code{master-host}
-will be ignored if there exists a valid @code{master.info} file. Probably a
+will be ignored if there exists a valid @file{master.info} file. Probably a
better name for this options would have been something like
@code{bootstrap-master-host}, but it is too late to change now.
-Example: @code{master-host=db-master.mycompany.com}.
+Example: @code{master-host=db-master.mycompany.com}
@item @code{master-user=username} @tab
The username the slave thread will use for authentication when connecting to
-the master. The user must have @code{FILE} privilege. If the master user
-is not set, user @code{test} is assumed. The value in @code{master.info} will
+the master. The user must have the @strong{file} privilege. If the master user
+is not set, user @code{test} is assumed. The value in @file{master.info} will
take precedence if it can be read.
-Example: @code{master-user=scott}.
+Example: @code{master-user=scott}
@item @code{master-password=password} @tab
The password the slave thread will authenticate with when connecting to
the master. If not set, an empty password is assumed.The value in
-@code{master.info} will take precedence if it can be read.
+@file{master.info} will take precedence if it can be read.
-Example: @code{master-password=tiger}.
+Example: @code{master-password=tiger}
@item @code{master-port=portnumber} @tab
The port the master is listening on. If not set, the compiled setting of
@code{MYSQL_PORT} is assumed. If you have not tinkered with
@code{configure} options, this should be 3306. The value in
-@code{master.info} will take precedence if it can be read.
+@file{master.info} will take precedence if it can be read.
-Example: @code{master-port=3306}.
+Example: @code{master-port=3306}
@item @code{master-connect-retry=seconds} @tab
The number of seconds the slave thread will sleep before retrying to
connect to the master in case the master goes down or the connection is
lost. Default is 60.
-Example: @code{master-connect-retry=60}.
+Example: @code{master-connect-retry=60}
@item @code{master-ssl} @tab
Available after 4.0.0. Turn SSL on for replication. Be warned that is
this is a relatively new feature.
-Example: @code{master-ssl}.
+Example: @code{master-ssl}
@item @code{master-ssl-key} @tab
Available after 4.0.0. Master SSL keyfile name. Only applies if you have
enabled @code{master-ssl}.
-Example: @code{master-ssl-key=SSL/master-key.pem}.
+Example: @code{master-ssl-key=SSL/master-key.pem}
@item @code{master-ssl-cert} @tab
Available after 4.0.0. Master SSL certificate file name. Only applies if
you have enabled @code{master-ssl}.
-Example: @code{master-ssl-key=SSL/master-cert.pem}.
+Example: @code{master-ssl-key=SSL/master-cert.pem}
@item @code{master-info-file=filename} @tab
The location of the file that remembers where we left off on the master
-during the replication process. The default is master.info in the data
-directory. Sasha: The only reason I see for ever changing the default
-is the desire to be rebelious.
+during the replication process. The default is @file{master.info} in the data
+directory. You should not need to change this.
-Example: @code{master-info-file=master.info}.
+Example: @code{master-info-file=master.info}
@item @code{report-host} @tab
Available after 4.0.0. Hostname or IP of the slave to be reported to to
@@ -23762,7 +23965,7 @@ To specify more than one table, use the directive multiple times, once
for each table. This will work for cross-database updates, in
contrast to @code{replicate-do-db}.
-Example: @code{replicate-do-table=some_db.some_table}.
+Example: @code{replicate-do-table=some_db.some_table}
@item @code{replicate-ignore-table=db_name.table_name} @tab
Tells the slave thread to not replicate to the specified table. To
@@ -23770,7 +23973,7 @@ specify more than one table to ignore, use the directive multiple times,
once for each table. This will work for cross-datbase updates,
in contrast to @code{replicate-ignore-db}.
-Example: @code{replicate-ignore-table=db_name.some_table}.
+Example: @code{replicate-ignore-table=db_name.some_table}
@item @code{replicate-wild-do-table=db_name.table_name} @tab
Tells the slave thread to restrict replication to the tables that match
@@ -23779,18 +23982,18 @@ directive multiple times, once for each table. This will work for
cross-database updates.
Example: @code{replicate-wild-do-table=foo%.bar%} will replicate only updates
-to tables in all databases that start with foo and whose table names
-start with bar.
+to tables in all databases that start with @code{foo} and whose table names
+start with @code{bar}.
@item @code{replicate-wild-ignore-table=db_name.table_name} @tab
Tells the slave thread to not replicate to the tables that match the
-given wild card pattern. To specify more than one table to ignore, use
+given wildcard pattern. To specify more than one table to ignore, use
the directive multiple times, once for each table. This will work for
cross-database updates.
Example: @code{replicate-wild-ignore-table=foo%.bar%} will not do updates
-to tables in databases that start with foo and whose table names start
-with bar.
+to tables in databases that start with @code{foo} and whose table names start
+with @code{bar}.
@item @code{replicate-ignore-db=database_name} @tab
Tells the slave thread to not replicate to the specified database. To
@@ -23798,9 +24001,9 @@ specify more than one database to ignore, use the directive multiple
times, once for each database. This option will not work if you use cross
database updates. If you need cross database updates to work, make sure
you have 3.23.28 or later, and use
-@code{replicate-wild-ignore-table=db_name.%}
+@code{replicate-wild-ignore-table=db_name.%}.
-Example: @code{replicate-ignore-db=some_db}.
+Example: @code{replicate-ignore-db=some_db}
@item @code{replicate-do-db=database_name} @tab
@@ -23810,9 +24013,9 @@ times, once for each database. Note that this will only work if you do
not use cross-database queries such as @code{UPDATE some_db.some_table
SET foo='bar'} while having selected a different or no database. If you
need cross database updates to work, make sure you have 3.23.28 or
-later, and use @code{replicate-wild-do-table=db_name.%}
+later, and use @code{replicate-wild-do-table=db_name.%}.
-Example: @code{replicate-do-db=some_db}.
+Example: @code{replicate-do-db=some_db}
@item @code{log-slave-updates} @tab
Tells the slave to log the updates from the slave thread to the binary
@@ -23820,32 +24023,33 @@ log. Off by default. You will need to turn it on if you plan to
daisy-chain the slaves.
@item @code{replicate-rewrite-db=from_name->to_name} @tab
-Updates to a database with a different name than the original
+Updates to a database with a different name than the original.
+
+Example: @code{replicate-rewrite-db=master_db_name->slave_db_name}
-Example: @code{replicate-rewrite-db=master_db_name->slave_db_name}.
+@item @code{slave-skip-errors= [err_code1,err_code2,... | all]} @tab
-@item @code{slave-skip-errors=err_code1,err_code2,...} @tab
Available only in 3.23.47 and later. Tells the slave thread to continue
replication when a query returns an error from the provided
list. Normally, replication will discontinue when an error is
-encountered giving the user a chance to resolve the inconsistency in the
+encountered, giving the user a chance to resolve the inconsistency in the
data manually. Do not use this option unless you fully understand why
you are getting the errors. If there are no bugs in your
replication setup and client programs, and no bugs in MySQL itself, you
-should never get an abort with error.Indiscriminate use of this option
+should never get an abort with error. Indiscriminate use of this option
will result in slaves being hopelessly out of sync with the master and
you having no idea how the problem happened.
For error codes, you should use the numbers provided by the error message in
your slave error log and in the output of @code{SHOW SLAVE STATUS}. Full list
of error messages can be found in the source distribution in
-@code{Docs/mysqld_error.txt}.
+@file{Docs/mysqld_error.txt}.
-You can ( but should not) also use a very non-recommended value of @code{all}
+You can (but should not) also use a very non-recommended value of @code{all}
which will ignore all error messages and keep barging along regardless.
Needless to say, if you use it, we make no promises regarding your data
integrity. Please do not complain if your data on the slave is not anywhere
-close to what it is on the master in this case - you have been warned.
+close to what it is on the master in this case -- you have been warned.
Example:
@@ -23855,7 +24059,7 @@ Example:
Tells the slave server not to start the slave on the startup. The user
can start it later with @code{SLAVE START}.
-@item @code{slave_read_timeout=#} @tab
+@item @code{slave_net_timeout=#} @tab
Number of seconds to wait for more data from the master before aborting
the read.
@end multitable
@@ -23868,10 +24072,10 @@ the read.
@cindex commands, replication
@cindex replication, commands
-Replication can be controlled through the SQL interface. Below is the
+Replication can be controlled through the SQL interface. Here is the
summary of commands:
-@multitable @columnfractions .40 .60
+@multitable @columnfractions .45 .55
@item @strong{Command} @tab @strong{Description}
@item @code{SLAVE START}
@@ -23881,11 +24085,11 @@ summary of commands:
@tab Stops the slave thread. (Slave)
@item @code{SET SQL_LOG_BIN=0}
- @tab Disables update logging if the user has process privilege.
+ @tab Disables update logging if the user has the @strong{process} privilege.
Ignored otherwise. (Master)
@item @code{SET SQL_LOG_BIN=1}
- @tab Re-enables update logging if the user has process privilege.
+ @tab Re-enables update logging if the user has the @strong{process} privilege.
Ignored otherwise. (Master)
@item @code{SET SQL_SLAVE_SKIP_COUNTER=n}
@@ -23895,7 +24099,8 @@ recovering from replication glitches.
@item @code{RESET MASTER}
@tab Deletes all binary logs listed in the index file, resetting the binlog
-index file to be empty. In pre-3.23.26 versions, @code{FLUSH MASTER} (Master)
+index file to be empty. In pre-3.23.26 versions, use @code{FLUSH MASTER}
+(Master)
@item @code{RESET SLAVE}
@tab Makes the slave forget its replication position in the master
@@ -23904,9 +24109,9 @@ logs. In pre 3.23.26 versions the command was called
@item @code{LOAD TABLE tblname FROM MASTER}
@tab Downloads a copy of the table from master to the slave. Implemented
- mainly for debugging of @code{LOAD DATA FROM MASTER}, but some "gourmet"
+ mainly for debugging of @code{LOAD DATA FROM MASTER}, but some ``gourmet''
users might find it useful for other things. Do not use it if you consider
- yourself the average "non-hacker" type user. (Slave)
+ yourself the average ``non-hacker'' type user. (Slave)
@item @code{LOAD DATA FROM MASTER} @tab
Available starting in 4.0.0. Takes a snapshot of the master and copies
@@ -23945,11 +24150,11 @@ old values of log and position are not applicable anymore, and will
automatically be reset to an empty string and 0, respectively (the start
values). Note that if you restart the slave, it will remember its last master.
If this is not desirable, you should delete the @file{master.info} file before
-restarting, and the slave will read its master from @code{my.cnf} or the
-command line.
+restarting, and the slave will read its master from @file{my.cnf} or the
+command-line.
This command is useful for setting up a slave when you have the snapshot of
-the master and have record the log and the offset on the master that the
+the master and have recorded the log and the offset on the master that the
snapshot corresponds to. You can run
@code{CHANGE MASTER TO MASTER_LOG_FILE='log_name_on_master',
MASTER_LOG_POS=log_offset_on_master} on the slave after restoring the
@@ -23990,8 +24195,8 @@ intuitive way to describe this operation.
@item @code{PURGE MASTER LOGS TO 'logname'}
@tab Available starting in Version 3.23.28. Deletes all the
replication logs that are listed in the log
-index as being prior to the specified log, and removed them from the
-log index, so that the given log now becomes first. Example:
+index as being prior to the specified log, and removes them from the
+log index, so that the given log now becomes the first. Example:
@example
PURGE MASTER LOGS TO 'mysql-bin.010'
@@ -24001,7 +24206,7 @@ This command will do nothing and fail with an error if you have an
active slave that is currently reading one of the logs you are trying to
delete. However, if you have a dormant slave, and happen to purge one of
the logs it wants to read, the slave will be unable to replicate once it
-comes up. The command is safe to run while slaves are replicating - you
+comes up. The command is safe to run while slaves are replicating -- you
do not need to stop them.
You must first check all the slaves with @code{SHOW SLAVE STATUS} to
@@ -24052,7 +24257,7 @@ later
@end itemize
Afterwards, follow the instructions for the case when you have a snapshot and
-have records the log name and offset. You can use the same snapshot to set up
+have recorded the log name and offset. You can use the same snapshot to set up
several slaves. As long as the binary logs of the master are left intact, you
can wait as long as several days or in some cases maybe a month to set up a
slave once you have the snapshot of the master. In theory the waiting gap can
@@ -24148,7 +24353,7 @@ restart the master, start slave threads, and then remove the old log files.
lock the master tables, let the slave catch up, then run @code{FLUSH
MASTER} on the master, and @code{FLUSH SLAVE} on the slave to reset the
logs, then restart new versions of the master and the slave. Note that
-the slave can stay down for some time - since the master is logging
+the slave can stay down for some time -- since the master is logging
all the updates, the slave will be able to catch up once it is up and
can connect.
@@ -24168,7 +24373,7 @@ for client A to make an update to co-master 1, and in the meantime,
before it propagates to co-master 2, client B could make an update to
co-master 2 that will make the update of client A work differently than
it did on co-master 1. Thus when the update of client A will make it
-to co-master 2, it will produce tables that will be different than
+to co-master 2, it will produce tables that will be different from
what you have on co-master 1, even after all the updates from co-master
2 have also propagated. So you should not co-chain two servers in a
two-way replication relationship, unless you are sure that you updates
@@ -24203,7 +24408,7 @@ performance-enhancing replication?
@strong{A}:
If the part of your code that is responsible for database access has
been properly abstracted/modularised, converting it to run with the
-replicated setup should be very smooth and easy - just change the
+replicated setup should be very smooth and easy -- just change the
implementation of your database access to read from some slave or the
master, and to always write to the master. If your code does not have
this level of abstraction,
@@ -24238,7 +24443,7 @@ written a lot of code already, you may want to automate the conversion
task by using Monty's @code{replace} utility, which comes with the
standard distribution of MySQL, or just write your own Perl script.
Hopefully, your code follows some recognisable pattern. If not, then
-you are probably better off re-writing it anyway, or at least going
+you are probably better off rewriting it anyway, or at least going
through and manually beating it into a pattern.
Note that, of course, you can use different names for the
@@ -24262,7 +24467,7 @@ of your site, you need to know your query patterns, and empirically
(by benchmarking) determine the relationship between the throughput
on reads (reads per second, or @code{max_reads}) and on writes
@code{max_writes}) on a typical master and a typical slave. The
-example below will show you a rather simplified calculation of what you
+example here will show you a rather simplified calculation of what you
can get with replication for our imagined system.
Let's say our system load consists of 10% writes and 90% reads, and we
@@ -24328,9 +24533,9 @@ the slaves of the master change in case of failure. Some suggestions:
@item
To tell a slave to change the master use the @code{CHANGE MASTER TO} command.
@item
-A good way to keep your applications informed where the master is by
-having a dynamic DNS entry for the master. With @strong{bind} you can
-use @code{nsupdate} to dynamically update your DNS.
+A good way to keep your applications informed as to the location of the
+master is by having a dynamic DNS entry for the master.
+With @code{bind} you can use @file{nsupdate} to dynamically update your DNS.
@item
You should run your slaves with the @code{log-bin} option and without
@code{log-slave-updates}. This way the slave will be ready to become a
@@ -24394,10 +24599,10 @@ query from the master.
@item
If you have decided you can skip the next query, do
@code{SET SQL_SLAVE_SKIP_COUNTER=1; SLAVE START;} to skip a query that
-does not use auto_increment, or last_insert_id or
+does not use @code{AUTO_INCREMENT} or @code{LAST_INSERT_ID()}, or
@code{SET SQL_SLAVE_SKIP_COUNTER=2; SLAVE START;} otherwise. The reason
-auto_increment/last_insert_id queries are different is that they take
-two events in the binary log of the master.
+queries that use @code{AUTO_INCREMENT} or @code{LAST_INSERT_ID()}
+are different is that they take two events in the binary log of the master.
@item
If you are sure the slave started out perfectly in sync with the master,
@@ -24412,7 +24617,7 @@ version.
If all else fails, read the error logs. If they are big,
@code{grep -i slave /path/to/your-log.err} on the slave. There is no
generic pattern to search for on the master, as the only errors it logs
-are general system errors - if it can, it will send the error to the slave
+are general system errors -- if it can, it will send the error to the slave
when things go wrong.
@end itemize
@@ -24425,14 +24630,14 @@ bug report. Ideally, we would like to have a test case in the format found in
case like that, you can expect a patch within a day or two in most cases,
although, of course, you mileage may vary depending on a number of factors.
-Second best option is a just program with easily configurable connection
-arguments for the master and the slave that will demonstrate the problem on our
-systems. You can write one in Perl or in C, depending on which language you
-know better.
+The second best option is to write a simple program with easily configurable
+connection arguments for the master and the slave that will demonstrate
+the problem on our systems. You can write one in Perl or in C, depending
+on which language you know better.
If you have one of the above ways to demonstrate the bug, use
@code{mysqlbug} to prepare a bug report and send it to
-@email{bugs@@lists.mysql.com}. If you have a phantom - a problem that
+@email{bugs@@lists.mysql.com}. If you have a phantom -- a problem that
does occur but you cannot duplicate "at will":
@itemize @bullet
@@ -24442,7 +24647,7 @@ slave outside of the slave thread, the data will be out of sync, and you can
have unique key violations on updates, in which case the slave thread will
stop and wait for you to clean up the tables manually to bring them in sync.
@item
-Run slave with @code{log-slave-updates} and @code{log-bin} - this will keep
+Run slave with @code{log-slave-updates} and @code{log-bin} -- this will keep
a log of all updates on the slave.
@item
Save all evidence before resetting the replication. If we have no or only
@@ -24653,7 +24858,7 @@ MySQL-specific keywords to a query. The code inside
servers.
If high performance is more important than exactness, as in some
-Web applications, it is possibile to create an application layer that
+web applications, it is possibile to create an application layer that
caches all results to give you even higher performance. By letting
old results 'expire' after a while, you can keep the cache reasonably
fresh. This provides a method to handle high load spikes, in which case
@@ -24689,8 +24894,8 @@ We solved this by storing all information per month in compressed
'transaction' tables. We have a set of simple macros (script) that
generates summary tables grouped by different criteria (product group,
customer id, store ...) from the transaction tables. The reports are
-Web pages that are dynamically generated by a small Perl script that
-parses a Web page, executes the SQL statements in it, and inserts the
+web pages that are dynamically generated by a small Perl script that
+parses a web page, executes the SQL statements in it, and inserts the
results. We would have used PHP or mod_perl instead but they were
not available at that time.
@@ -24777,7 +24982,7 @@ For example, (run on the same NT 4.0 machine):
In the above test MySQL was run with a 8M index cache.
-We have gather some more benchmark results at
+We have gathered some more benchmark results at
@uref{http://www.mysql.com/information/benchmarks.html}.
Note that Oracle is not included because they asked to be removed. All
@@ -24868,16 +25073,16 @@ system setup you have, the more overhead you get.
If you do not have any @code{GRANT} statements done, MySQL will
optimise the permission checking somewhat. So if you have a very high
-volume it may be worth the time to avoid grants. Otherwise more
+volume it may be worth the time to avoid grants. Otherwise, more
permission check results in a larger overhead.
If your problem is with some explicit MySQL function, you can
always time this in the MySQL client:
@example
-mysql> select benchmark(1000000,1+1);
+mysql> SELECT BENCHMARK(1000000,1+1);
+------------------------+
-| benchmark(1000000,1+1) |
+| BENCHMARK(1000000,1+1) |
+------------------------+
| 0 |
+------------------------+
@@ -24888,7 +25093,7 @@ The above shows that MySQL can execute 1,000,000 @code{+}
expressions in 0.32 seconds on a @code{PentiumII 400MHz}.
All MySQL functions should be very optimised, but there may be
-some exceptions, and the @code{benchmark(loop_count,expression)} is a
+some exceptions, and the @code{BENCHMARK(loop_count,expression)} is a
great tool to find out if this is a problem with your query.
@menu
@@ -25055,7 +25260,7 @@ If you want to get your queries as fast as possible, you should look out for
@code{Using filesort} and @code{Using temporary}.
@end table
-The different join types are listed below, ordered from best to worst type:
+The different join types are listed here, ordered from best to worst type:
@cindex system table
@cindex tables, system
@@ -25095,7 +25300,7 @@ The @code{ref} column will be NULL for this type.
@item index
This is the same as @code{ALL}, except that only the index tree is
scanned. This is usually faster than @code{ALL}, as the index file is usually
-smaller than the data file.
+smaller than the datafile.
@item ALL
A full table scan will be done for each combination of rows from the
@@ -25116,7 +25321,7 @@ variable.
The following example shows how a @code{JOIN} can be optimised progressively
using the information provided by @code{EXPLAIN}.
-Suppose you have the @code{SELECT} statement shown below, that you examine
+Suppose you have the @code{SELECT} statement shown here, that you examine
using @code{EXPLAIN}:
@example
@@ -25150,7 +25355,7 @@ The columns being compared have been declared as follows:
@end multitable
@item
-The tables have the indexes shown below:
+The tables have the indexes shown here:
@multitable @columnfractions .10 .30
@item @strong{Table} @tab @strong{Index}
@@ -25224,7 +25429,7 @@ mysql> ALTER TABLE tt MODIFY AssignedPC VARCHAR(15),
-> MODIFY ClientID VARCHAR(15);
@end example
-Now @code{EXPLAIN} produces the output shown below:
+Now @code{EXPLAIN} produces the output shown here:
@example
table type possible_keys key key_len ref rows Extra
@@ -25313,7 +25518,7 @@ the data grows. @xref{Server parameters}.
@cindex speed, of queries
In general, when you want to make a slow @code{SELECT ... WHERE} faster, the
-first thing to check is whether or not you can add an index. @xref{MySQL
+first thing to check is whether you can add an index. @xref{MySQL
indexes, , MySQL indexes}. All references between different tables
should usually be done with indexes. You can use the @code{EXPLAIN} command
to determine which indexes are used for a @code{SELECT}.
@@ -25356,7 +25561,7 @@ they are mostly used with @code{SELECT}, but the same optimisations apply for
Also note that this section is incomplete. MySQL does many
optimisations, and we have not had time to document them all.
-Some of the optimisations performed by MySQL are listed below:
+Some of the optimisations performed by MySQL are listed here:
@itemize @bullet
@item
@@ -25431,7 +25636,7 @@ Each table index is queried, and the best index that spans fewer than 30% of
the rows is used. If no such index can be found, a quick table scan is used.
@item
In some cases, MySQL can read rows from the index without even
-consulting the data file. If all columns used from the index are numeric,
+consulting the datafile. If all columns used from the index are numeric,
then only the index tree is used to resolve the query.
@item
Before each record is output, those that do not match the @code{HAVING} clause
@@ -25586,9 +25791,9 @@ SELECT * FROM t1 ORDER BY key_part1 DESC,key_part2 DESC
SELECT * FROM t1 WHERE key_part1=1 ORDER BY key_part1 DESC,key_part2 DESC
@end example
-Some cases where MySQL can NOT use indexes to resolve the @code{ORDER
+Some cases where MySQL can @strong{not} use indexes to resolve the @code{ORDER
BY}: (Note that MySQL will still use indexes to find the rows that
-matches the where clause):
+matches the @code{WHERE} clause):
@itemize @bullet
@item
@@ -25596,7 +25801,7 @@ You are doing an @code{ORDER BY} on different keys:
@code{SELECT * FROM t1 ORDER BY key1,key2}
@item
-You are doing an @code{ORDER BY} on not following key parts.
+You are doing an @code{ORDER BY} using non-consecutive key parts.
@code{SELECT * FROM t1 WHERE key2=constant ORDER BY key_part2}
@@ -25718,8 +25923,8 @@ will abort the query (If you are not using @code{SQL_CALC_FOUND_ROWS}).
@code{LIMIT 0} will always quickly return an empty set. This is useful
to check the query and to get the column types of the result columns.
@item
-The size of temporary tables uses the @code{LIMIT #} to calculate how much
-space is needed to resolve the query.
+When the server uses temporary tables to resolve the query, the
+@code{LIMIT #} is used to calculate how much space is required.
@end itemize
@@ -25812,7 +26017,7 @@ flush-tables}.
@end enumerate
Note that @code{LOAD DATA INFILE} also does the above optimization if
-you insert into an empty table; The main difference with the above
+you insert into an empty table; the main difference with the above
procedure is that you can let myisamchk allocate much more temporary
memory for the index creation that you may want MySQL to allocate for
every index recreation.
@@ -25936,7 +26141,7 @@ In some cases it may make sense to introduce a column that is 'hashed'
based on information from other columns. If this column is short and
reasonably unique it may be much faster than a big index on many
columns. In MySQL it's very easy to use this extra column:
-@code{SELECT * FROM table_name WHERE hash=MD5(concat(col1,col2))
+@code{SELECT * FROM table_name WHERE hash=MD5(CONCAT(col1,col2))
AND col_1='constant' AND col_2='constant'}
@item
For tables that change a lot you should try to avoid all @code{VARCHAR}
@@ -26023,15 +26228,15 @@ is integrated in @code{mysqld}.
Use @code{AUTO_INCREMENT} columns to make unique values.
@item
Use @code{OPTIMIZE TABLE} once in a while to avoid fragmentation when
-using dynamic table format. @xref{OPTIMIZE TABLE, , @code{OPTIMIZE TABLE}}.
+using a dynamic table format. @xref{OPTIMIZE TABLE, , @code{OPTIMIZE TABLE}}.
@item
Use @code{HEAP} tables to get more speed when possible. @xref{Table
types}.
@item
-When using a normal Web server setup, images should be stored as
+When using a normal web server setup, images should be stored as
files. That is, store only a file reference in the database. The main
-reason for this is that a normal Web server is much better at caching
+reason for this is that a normal web server is much better at caching
files than database contents. So it it's much easier to get a fast
system if you are using files.
@item
@@ -26140,7 +26345,7 @@ once in a while.
This can be done with the following code:
@example
mysql> LOCK TABLES real_table WRITE, insert_table WRITE;
-mysql> insert into real_table select * from insert_table;
+mysql> INSERT INTO real_table SELECT * FROM insert_table;
mysql> TRUNCATE TABLE insert_table;
mysql> UNLOCK TABLES;
@end example
@@ -26346,7 +26551,7 @@ Choosing the right table format may give you a big performance gain.
@xref{Table types}.
You can get better performance on a table and minimise storage space
-using the techniques listed below:
+using the techniques listed here:
@itemize @bullet
@item
@@ -26411,7 +26616,7 @@ fast. Without an index MySQL has to start with the first record
and then read through the whole table until it finds the relevant
rows. The bigger the table, the more this costs. If the table has an index
for the columns in question, MySQL can quickly get a position to
-seek to in the middle of the data file without having to look at all the
+seek to in the middle of the datafile without having to look at all the
data. If a table has 1000 rows, this is at least 100 times faster than
reading sequentially. Note that if you need to access almost all 1000
rows it is faster to read sequentially because we then avoid disk seeks.
@@ -26448,7 +26653,7 @@ parts are followed by @code{DESC}. @xref{ORDER BY optimisation}.
@item
In some cases a query can be optimised to retrieve values without
-consulting the data file. If all used columns for some table are numeric
+consulting the datafile. If all used columns for some table are numeric
and form a leftmost prefix for some key, the values may be retrieved
from the index tree for greater speed:
@@ -26480,7 +26685,7 @@ search capabilities on @code{(col1)}, @code{(col1,col2)}, and
MySQL can't use a partial index if the columns don't form a
leftmost prefix of the index. Suppose you have the @code{SELECT}
-statements shown below:
+statements shown here:
@example
mysql> SELECT * FROM tbl_name WHERE col1=val1;
@@ -26498,12 +26703,12 @@ leftmost prefixes of @code{(col1,col2,col3)}.
@cindex indexes, and @code{LIKE}
@cindex wildcards, and @code{LIKE}
MySQL also uses indexes for @code{LIKE} comparisons if the argument
-to @code{LIKE} is a constant string that doesn't start with a wild-card
+to @code{LIKE} is a constant string that doesn't start with a wildcard
character. For example, the following @code{SELECT} statements use indexes:
@example
-mysql> select * from tbl_name where key_col LIKE "Patrick%";
-mysql> select * from tbl_name where key_col LIKE "Pat%_ck%";
+mysql> SELECT * FROM tbl_name WHERE key_col LIKE "Patrick%";
+mysql> SELECT * FROM tbl_name WHERE key_col LIKE "Pat%_ck%";
@end example
In the first statement, only rows with @code{"Patrick" <= key_col <
@@ -26512,14 +26717,20 @@ In the first statement, only rows with @code{"Patrick" <= key_col <
The following @code{SELECT} statements will not use indexes:
@example
-mysql> select * from tbl_name where key_col LIKE "%Patrick%";
-mysql> select * from tbl_name where key_col LIKE other_col;
+mysql> SELECT * FROM tbl_name WHERE key_col LIKE "%Patrick%";
+mysql> SELECT * FROM tbl_name WHERE key_col LIKE other_col;
@end example
-In the first statement, the @code{LIKE} value begins with a wild-card
+In the first statement, the @code{LIKE} value begins with a wildcard
character. In the second statement, the @code{LIKE} value is not a
constant.
+MySQL 4.0 does another optimization on @code{LIKE}. If you use
+@code{... LIKE "%string%"} and @code{string} is longer than 3 characters,
+MySQL will use the @code{Turbo Boyer-Moore} algorithm to initialise the
+pattern for the string and then use this pattern to perform the search
+quicker.
+
@findex IS NULL, and indexes
@cindex indexes, and @code{IS NULL}
Searching using @code{column_name IS NULL} will use indexes if column_name
@@ -26528,7 +26739,7 @@ is an index.
MySQL normally uses the index that finds the least number of rows. An
index is used for columns that you compare with the following operators:
@code{=}, @code{>}, @code{>=}, @code{<}, @code{<=}, @code{BETWEEN}, and a
-@code{LIKE} with a non-wild-card prefix like @code{'something%'}.
+@code{LIKE} with a non-wildcard prefix like @code{'something%'}.
Any index that doesn't span all @code{AND} levels in the @code{WHERE} clause
is not used to optimise the query. In other words: To be able to use an
@@ -26592,7 +26803,7 @@ index a column prefix looks like this:
KEY index_name (col_name(length))
@end example
-The example below creates an index for the first 10 characters of the
+The example here creates an index for the first 10 characters of the
@code{name} column:
@example
@@ -26686,12 +26897,12 @@ Uptime: 426 Running threads: 1 Questions: 11082 Reloads: 1 Open tables: 12
This can be somewhat perplexing if you only have 6 tables.
-MySQL is multithreaded, so it may have many queries on the same table
+MySQL is multi-threaded, so it may have many queries on the same table
simultaneously. To minimise the problem with two threads having
different states on the same file, the table is opened independently by
each concurrent thread. This takes some memory but will normaly increase
performance. Wth ISAM and MyISAM tables this also requires one extra file
-descriptor for the data file. With these table types the index file
+descriptor for the datafile. With these table types the index file
descriptor is shared between all threads.
You can read more about this topic in the next section. @xref{Table cache}.
@@ -26782,13 +26993,13 @@ If you are opening a table with the @code{HANDLER table_name OPEN}
statement, a dedicated table object is allocated for the thread.
This table object is not shared by other threads an will not be closed
until the thread calls @code{HANDLER table_name CLOSE} or the thread dies.
-@xref{HANDLER}. When this happens, the table is put back in the table_cache
-(if it isn't full).
+@xref{HANDLER, , @code{HANDLER}}. When this happens, the table is put
+back in the table_cache (if it isn't full).
You can check if your table cache is too small by checking the mysqld
variable @code{Opened_tables}. If this is quite big, even if you
haven't done a lot of @code{FLUSH TABLES}, you should increase your table
-cache. @xref{SHOW STATUS}.
+cache. @xref{SHOW STATUS, , @code{SHOW STATUS}}.
@node Creating many tables, , Table cache, Optimising Database Structure
@@ -26831,13 +27042,13 @@ nice to have a feeling about how much one could gain by changing things
at this level.
The default OS to use is really important! To get the most use of
-multiple CPU machines one should use Solaris (because the threads works
+multiple-CPU machines one should use Solaris (because the threads works
really nice) or Linux (because the 2.2 kernel has really good SMP
-support). Also on 32-bit machines Linux has a 2G file size limit by
+support). Also on 32-bit machines Linux has a 2G file-size limit by
default. Hopefully this will be fixed soon when new filesystems are
released (XFS/Reiserfs). If you have a desperate need for files bigger
than 2G on Linux-intel 32 bit, you should get the LFS patch for the ext2
-file system.
+filesystem.
Because we have not run MySQL in production on that many platforms, we
advice you to test your intended platform before choosing it, if possible.
@@ -26992,7 +27203,7 @@ much bigger than your available memory you should increase the value of
is done.
When you have installed MySQL, the @file{support-files} directory will
-contain some different @code{my.cnf} example files, @file{my-huge.cnf},
+contain some different @file{my.cnf} example files, @file{my-huge.cnf},
@file{my-large.cnf}, @file{my-medium.cnf}, and @file{my-small.cnf}, you can
use as a base to optimise your system.
@@ -27011,7 +27222,7 @@ shell> mysqld -O key_buffer=32m --help
@end example
Make sure that the @code{--help} option is last; otherwise, the effect of any
-options listed after it on the command line will not be reflected in the
+options listed after it on the command-line will not be reflected in the
output.
@@ -27104,7 +27315,7 @@ Running with @code{--log-bin} makes @strong{[MySQL} 1 % slower.
@item
Compiling on Linux-x86 using gcc without frame pointers
@code{-fomit-frame-pointer} or @code{-fomit-frame-pointer -ffixed-ebp}
-@code{mysqld} 1-4% faster.
+makes @code{mysqld} 1-4% faster.
@end itemize
The MySQL-Linux distribution provided by MySQL AB used
@@ -27121,14 +27332,14 @@ Linux binary is linked statically to get it faster and more portable.
@cindex memory use
-The list below indicates some of the ways that the @code{mysqld} server
+The following list indicates some of the ways that the @code{mysqld} server
uses memory. Where applicable, the name of the server variable relevant
to the memory use is given:
@itemize @bullet
@item
The key buffer (variable @code{key_buffer_size}) is shared by all
-threads; Other buffers used by the server are allocated as
+threads; other buffers used by the server are allocated as
needed. @xref{Server parameters}.
@item
@@ -27191,7 +27402,7 @@ unexpectedly large strings (this is done with @code{malloc()} and
@code{free()}).
@item
-Each index file is opened once and the data file is opened once for each
+Each index file is opened once and the datafile is opened once for each
concurrently running thread. For each concurrent thread, a table structure,
column structures for each column, and a buffer of size @code{3 * n} is
allocated (where @code{n} is the maximum row length, not counting @code{BLOB}
@@ -27310,7 +27521,7 @@ mysql> UPDATE mysql.user SET password=PASSWORD("newpass")
@item SQL_AUTO_IS_NULL = 0 | 1
If set to @code{1} (default) then one can find the last inserted row
-for a table with an auto_increment row with the following construct:
+for a table with an @code{AUTO_INCREMENT} column with the following construct:
@code{WHERE auto_increment_column IS NULL}. This is used by some
ODBC programs like Access.
@@ -27439,7 +27650,7 @@ the disks.
@table @strong
@item Using symbolic links
-This means that you symlink the index and/or data file(s) from the
+This means that you symlink the index and/or datafile(s) from the
normal data directory to another disk (that may also be striped). This
makes both the seek and read times better (if the disks are not used for
other things). @xref{Symbolic links}.
@@ -27474,8 +27685,8 @@ and logs) on a RAID 0+1 or RAID N disk. RAID N can be a problem if you
have many writes because of the time to update the parity bits.
@item
-You may also set the parameters for the file system that the database
-uses. One easy change is to mount the file system with the noatime
+You may also set the parameters for the filesystem that the database
+uses. One easy change is to mount the filesystem with the noatime
option. That makes it skip the updating of the last access time in the
inode and by this will avoid some disk seeks.
@@ -27497,13 +27708,13 @@ filesystem corruption may result. Backup everything before experimenting!
@item
On many operating systems you can mount the disks with the 'async' flag to
-set the file system to be updated asynchronously. If your computer is
+set the filesystem to be updated asynchronously. If your computer is
reasonable stable, this should give you more performance without sacrificing
too much reliability. (This flag is on by default on Linux.)
@item
If you don't need to know when a file was last accessed (which is not
-really useful on a database server), you can mount your file systems
+really useful on a database server), you can mount your filesystems
with the noatime flag.
@end itemize
@@ -27609,7 +27820,7 @@ In the data directory you will always have the table definition file
and the data/index files.
@item
-You can symlink the index file and the data file to different directories
+You can symlink the index file and the datafile to different directories
independent of the other.
@item
@@ -27784,19 +27995,19 @@ work around the problem that ASCII(26) stands for END-OF-FILE on Windows.
@item \\
A backslash (@samp{\}) character.
-@findex % (wild card character)
-@findex Wild card character (%)
+@findex % (wildcard character)
+@findex Wildcard character (%)
@item \%
A @samp{%} character. This is used to search for literal instances of
@samp{%} in contexts where @samp{%} would otherwise be interpreted
-as a wild-card character. @xref{String comparison functions}.
+as a wildcard character. @xref{String comparison functions}.
-@findex _ (wild card character)
-@findex Wild card character (_)
+@findex _ (wildcard character)
+@findex Wildcard character (_)
@item \_
A @samp{_} character. This is used to search for literal instances of
@samp{_} in contexts where @samp{_} would otherwise be interpreted
-as a wild-card character. @xref{String comparison functions}.
+as a wildcard character. @xref{String comparison functions}.
@end table
Note that if you use @samp{\%} or @samp{\_} in some string contexts, these
@@ -27823,7 +28034,7 @@ and need not be doubled or escaped. In the same way, @samp{"} inside a
string quoted with @samp{'} needs no special treatment.
@end itemize
-The @code{SELECT} statements shown below demonstrate how quoting and
+The @code{SELECT} statements shown here demonstrate how quoting and
escaping work:
@example
@@ -27929,7 +28140,7 @@ mysql> SELECT x'FF'
-> 255
mysql> SELECT 0xa+0;
-> 10
-mysql> select 0x5061756c;
+mysql> SELECT 0x5061756c;
-> Paul
@end example
@@ -27976,7 +28187,7 @@ introduced quoting of identifiers (database, table, and column names)
with @samp{`}. @samp{"} will also work to quote identifiers if you run
in ANSI mode. @xref{ANSI mode}.
-@multitable @columnfractions .15 .15 .65
+@multitable @columnfractions .15 .15 .70
@item @strong{Identifier} @tab @strong{Max length} @tab @strong{Allowed characters}
@item Database @tab 64 @tab Any character that is allowed in a directory name except @samp{/} or @samp{.}.
@item Table @tab 64 @tab Any character that is allowed in a file name, except @samp{/} or @samp{.}.
@@ -27991,7 +28202,7 @@ Note that if the identifier is a restricted word or contains special characters
you must always quote it with @code{`} when you use it:
@example
-mysql> SELECT * from `select` where `select`.id > 100;
+mysql> SELECT * FROM `select` WHERE `select`.id > 100;
@end example
In previous versions of MySQL, the name rules are as follows:
@@ -28064,12 +28275,12 @@ programs prefix table names with a @samp{.} character.
In MySQL, databases and tables correspond to directories and files
within those directories. Consequently, the case sensitivity of the
underlying operating system determines the case sensitivity of database and
-table names. This means database and table names are case insensitive in
-Windows, and case sensitive in most varieties of Unix (Mac OS X being an
+table names. This means database and table names are case-insensitive in
+Windows, and case-sensitive in most varieties of Unix (Mac OS X being an
exception).
@xref{Extensions to ANSI}.
-@strong{NOTE:} Although database and table names are case insensitive for
+@strong{Note}: although database and table names are case-insensitive for
Windows, you should not refer to a given database or table using different
cases within the same query. The following query would not work because it
refers to a table both as @code{my_table} and as @code{MY_TABLE}:
@@ -28078,9 +28289,9 @@ refers to a table both as @code{my_table} and as @code{MY_TABLE}:
mysql> SELECT * FROM my_table WHERE MY_TABLE.col=1;
@end example
-Column names and column aliases are case insensitive in all cases.
+Column names and column aliases are case-insensitive in all cases.
-Aliases on tables are case sensitive. The following query would not work
+Aliases on tables are case-sensitive. The following query would not work
because it refers to the alias both as @code{a} and as @code{A}:
@example
@@ -28101,6 +28312,12 @@ table names to lower case on storage and lookup. Note that if you
change this option, you need to first convert your old table names to
lower case before starting @code{mysqld}.
+If you move @code{MyISAM} files from a Windows to a *nix disk, you may
+in some cases need to use the @file{mysql_fix_extensions} tool to fix-up
+the case of the file extensions in each specified database directory
+(lowercase @file{.frm}, uppercase @file{.MYI} and @file{.MYD}).
+@file{mysql_fix_extensions} can be found in the @file{script} subdirectory.
+
@node Variables, Comments, Name case sensitivity, Language Structure
@subsection User Variables
@@ -28134,7 +28351,7 @@ However, in this case the assignment operator is @code{:=} rather than
statements:
@example
-select @@t1:=(@@t2:=1)+@@t3:=4,@@t1,@@t2,@@t3;
+mysql> SELECT @@t1:=(@@t2:=1)+@@t3:=4,@@t1,@@t2,@@t3;
+----------------------+------+------+------+
| @@t1:=(@@t2:=1)+@@t3:=4 | @@t1 | @@t2 | @@t3 |
+----------------------+------+------+------+
@@ -28147,14 +28364,14 @@ this does not currently include contexts where a number is explicitly
required, such as in the @code{LIMIT} clause of a @code{SELECT} statement,
or the @code{IGNORE number LINES} clause of a @code{LOAD DATA} statement.
-@strong{NOTE:} In a @code{SELECT} statement, each expression is evaluated
+@strong{Note}: in a @code{SELECT} statement, each expression is evaluated
only when it's sent to the client. This means that in the @code{HAVING},
@code{GROUP BY}, or @code{ORDER BY} clause, you can't refer to an expression
that involves variables that are set in the @code{SELECT} part. For example,
the following statement will NOT work as expected:
@example
-SELECT (@@aa:=id) AS a, (@@aa+3) AS b FROM table_name HAVING b=5;
+mysql> SELECT (@@aa:=id) AS a, (@@aa+3) AS b FROM table_name HAVING b=5;
@end example
The reason is that @code{@@aa} will not contain the value of the current
@@ -28172,10 +28389,10 @@ to end of line} and @code{/* in-line or multiple-line */} comment
styles:
@example
-mysql> select 1+1; # This comment continues to the end of line
-mysql> select 1+1; -- This comment continues to the end of line
-mysql> select 1 /* this is an in-line comment */ + 1;
-mysql> select 1+
+mysql> SELECT 1+1; # This comment continues to the end of line
+mysql> SELECT 1+1; -- This comment continues to the end of line
+mysql> SELECT 1 /* this is an in-line comment */ + 1;
+mysql> SELECT 1+
/*
this is a
multiple-line comment
@@ -28233,104 +28450,199 @@ A few are reserved because MySQL needs them and is
@c START_OF_RESERVED_WORDS
-@multitable @columnfractions .25 .25 .25 .25
-@item @strong{Word} @tab @strong{Word} @tab @strong{Word} @tab @strong{Word}
-@c Reserved word list updated Fri Dec 7 10:49:17 2001 by arjen.
+@c Reserved word list updated Fri May 3 08:41:00 2002 by arjen.
@c To regenerate, use Support/update-reserved-words.pl.
-@item @code{ADD} @tab @code{ALL}
- @tab @code{ALTER} @tab @code{ANALYZE}
-@item @code{AND} @tab @code{AS}
- @tab @code{ASC} @tab @code{AUTO_INCREMENT}
-@item @code{BDB} @tab @code{BERKELEYDB}
- @tab @code{BETWEEN} @tab @code{BIGINT}
-@item @code{BINARY} @tab @code{BLOB}
- @tab @code{BOTH} @tab @code{BY}
-@item @code{CASCADE} @tab @code{CASE}
- @tab @code{CHANGE} @tab @code{CHAR}
-@item @code{CHARACTER} @tab @code{COLUMN}
- @tab @code{COLUMNS} @tab @code{CONSTRAINT}
-@item @code{CREATE} @tab @code{CROSS}
- @tab @code{CURRENT_DATE} @tab @code{CURRENT_TIME}
-@item @code{CURRENT_TIMESTAMP} @tab @code{DATABASE}
- @tab @code{DATABASES} @tab @code{DAY_HOUR}
-@item @code{DAY_MINUTE} @tab @code{DAY_SECOND}
- @tab @code{DEC} @tab @code{DECIMAL}
-@item @code{DEFAULT} @tab @code{DELAYED}
- @tab @code{DELETE} @tab @code{DESC}
-@item @code{DESCRIBE} @tab @code{DISTINCT}
- @tab @code{DISTINCTROW} @tab @code{DOUBLE}
-@item @code{DROP} @tab @code{ELSE}
- @tab @code{ENCLOSED} @tab @code{ESCAPED}
-@item @code{EXISTS} @tab @code{EXPLAIN}
- @tab @code{FIELDS} @tab @code{FLOAT}
-@item @code{FOR} @tab @code{FOREIGN}
- @tab @code{FROM} @tab @code{FULLTEXT}
-@item @code{FUNCTION} @tab @code{GRANT}
- @tab @code{GROUP} @tab @code{HAVING}
-@item @code{HIGH_PRIORITY} @tab @code{HOUR_MINUTE}
- @tab @code{HOUR_SECOND} @tab @code{IF}
-@item @code{IGNORE} @tab @code{IN}
- @tab @code{INDEX} @tab @code{INFILE}
-@item @code{INNER} @tab @code{INNODB}
- @tab @code{INSERT} @tab @code{INSERT_ID}
-@item @code{INT} @tab @code{INTEGER}
- @tab @code{INTERVAL} @tab @code{INTO}
-@item @code{IS} @tab @code{JOIN}
- @tab @code{KEY} @tab @code{KEYS}
-@item @code{KILL} @tab @code{LAST_INSERT_ID}
- @tab @code{LEADING} @tab @code{LEFT}
-@item @code{LIKE} @tab @code{LIMIT}
- @tab @code{LINES} @tab @code{LOAD}
-@item @code{LOCK} @tab @code{LONG}
- @tab @code{LONGBLOB} @tab @code{LONGTEXT}
-@item @code{LOW_PRIORITY} @tab @code{MASTER_LOG_SEQ}
- @tab @code{MASTER_SERVER_ID} @tab @code{MATCH}
-@item @code{MEDIUMBLOB} @tab @code{MEDIUMINT}
- @tab @code{MEDIUMTEXT} @tab @code{MIDDLEINT}
-@item @code{MINUTE_SECOND} @tab @code{MRG_MYISAM}
- @tab @code{NATURAL} @tab @code{NOT}
-@item @code{NULL} @tab @code{NUMERIC}
- @tab @code{ON} @tab @code{OPTIMIZE}
-@item @code{OPTION} @tab @code{OPTIONALLY}
- @tab @code{OR} @tab @code{ORDER}
-@item @code{OUTER} @tab @code{OUTFILE}
- @tab @code{PARTIAL} @tab @code{PRECISION}
-@item @code{PRIMARY} @tab @code{PRIVILEGES}
- @tab @code{PROCEDURE} @tab @code{PURGE}
-@item @code{READ} @tab @code{REAL}
- @tab @code{REFERENCES} @tab @code{REGEXP}
-@item @code{RENAME} @tab @code{REPLACE}
- @tab @code{REQUIRE} @tab @code{RESTRICT}
-@item @code{RETURNS} @tab @code{REVOKE}
- @tab @code{RIGHT} @tab @code{RLIKE}
-@item @code{SELECT} @tab @code{SET}
- @tab @code{SHOW} @tab @code{SMALLINT}
-@item @code{SONAME} @tab @code{SQL_AUTO_IS_NULL}
- @tab @code{SQL_BIG_RESULT} @tab @code{SQL_BIG_SELECTS}
-@item @code{SQL_BIG_TABLES} @tab @code{SQL_BUFFER_RESULT}
- @tab @code{SQL_CALC_FOUND_ROWS} @tab @code{SQL_LOG_BIN}
-@item @code{SQL_LOG_OFF} @tab @code{SQL_LOG_UPDATE}
- @tab @code{SQL_LOW_PRIORITY_UPDATES} @tab @code{SQL_MAX_JOIN_SIZE}
-@item @code{SQL_QUOTE_SHOW_CREATE} @tab @code{SQL_SAFE_UPDATES}
- @tab @code{SQL_SELECT_LIMIT} @tab @code{SQL_SLAVE_SKIP_COUNTER}
-@item @code{SQL_SMALL_RESULT} @tab @code{SQL_WARNINGS}
- @tab @code{SSL} @tab @code{STARTING}
-@item @code{STRAIGHT_JOIN} @tab @code{STRIPED}
- @tab @code{TABLE} @tab @code{TABLES}
-@item @code{TERMINATED} @tab @code{THEN}
- @tab @code{TINYBLOB} @tab @code{TINYINT}
-@item @code{TINYTEXT} @tab @code{TO}
- @tab @code{TRAILING} @tab @code{UNION}
-@item @code{UNIQUE} @tab @code{UNLOCK}
- @tab @code{UNSIGNED} @tab @code{UPDATE}
-@item @code{USAGE} @tab @code{USE}
- @tab @code{USING} @tab @code{VALUES}
-@item @code{VARBINARY} @tab @code{VARCHAR}
- @tab @code{VARYING} @tab @code{WHEN}
-@item @code{WHERE} @tab @code{WITH}
- @tab @code{WRITE} @tab @code{YEAR_MONTH}
+@multitable @columnfractions .33 .33 .34
+@item @strong{Word}
+ @tab @strong{Word}
+ @tab @strong{Word}
+@item @code{ADD}
+ @tab @code{ALL}
+ @tab @code{ALTER}
+@item @code{ANALYZE}
+ @tab @code{AND}
+ @tab @code{AS}
+@item @code{ASC}
+ @tab @code{AUTO_INCREMENT}
+ @tab @code{BDB}
+@item @code{BERKELEYDB}
+ @tab @code{BETWEEN}
+ @tab @code{BIGINT}
+@item @code{BINARY}
+ @tab @code{BLOB}
+ @tab @code{BOTH}
+@item @code{BY}
+ @tab @code{CASCADE}
+ @tab @code{CASE}
+@item @code{CHANGE}
+ @tab @code{CHAR}
+ @tab @code{CHARACTER}
+@item @code{COLUMN}
+ @tab @code{COLUMNS}
+ @tab @code{CONSTRAINT}
+@item @code{CREATE}
+ @tab @code{CROSS}
+ @tab @code{CURRENT_DATE}
+@item @code{CURRENT_TIME}
+ @tab @code{CURRENT_TIMESTAMP}
+ @tab @code{DATABASE}
+@item @code{DATABASES}
+ @tab @code{DAY_HOUR}
+ @tab @code{DAY_MINUTE}
+@item @code{DAY_SECOND}
+ @tab @code{DEC}
+ @tab @code{DECIMAL}
+@item @code{DEFAULT}
+ @tab @code{DELAYED}
+ @tab @code{DELETE}
+@item @code{DESC}
+ @tab @code{DESCRIBE}
+ @tab @code{DISTINCT}
+@item @code{DISTINCTROW}
+ @tab @code{DOUBLE}
+ @tab @code{DROP}
+@item @code{ELSE}
+ @tab @code{ENCLOSED}
+ @tab @code{ESCAPED}
+@item @code{EXISTS}
+ @tab @code{EXPLAIN}
+ @tab @code{FIELDS}
+@item @code{FLOAT}
+ @tab @code{FOR}
+ @tab @code{FOREIGN}
+@item @code{FROM}
+ @tab @code{FULLTEXT}
+ @tab @code{FUNCTION}
+@item @code{GRANT}
+ @tab @code{GROUP}
+ @tab @code{HAVING}
+@item @code{HIGH_PRIORITY}
+ @tab @code{HOUR_MINUTE}
+ @tab @code{HOUR_SECOND}
+@item @code{IF}
+ @tab @code{IGNORE}
+ @tab @code{IN}
+@item @code{INDEX}
+ @tab @code{INFILE}
+ @tab @code{INNER}
+@item @code{INNODB}
+ @tab @code{INSERT}
+ @tab @code{INSERT_ID}
+@item @code{INT}
+ @tab @code{INTEGER}
+ @tab @code{INTERVAL}
+@item @code{INTO}
+ @tab @code{IS}
+ @tab @code{JOIN}
+@item @code{KEY}
+ @tab @code{KEYS}
+ @tab @code{KILL}
+@item @code{LAST_INSERT_ID}
+ @tab @code{LEADING}
+ @tab @code{LEFT}
+@item @code{LIKE}
+ @tab @code{LIMIT}
+ @tab @code{LINES}
+@item @code{LOAD}
+ @tab @code{LOCK}
+ @tab @code{LONG}
+@item @code{LONGBLOB}
+ @tab @code{LONGTEXT}
+ @tab @code{LOW_PRIORITY}
+@item @code{MASTER_SERVER_ID}
+ @tab @code{MATCH}
+ @tab @code{MEDIUMBLOB}
+@item @code{MEDIUMINT}
+ @tab @code{MEDIUMTEXT}
+ @tab @code{MIDDLEINT}
+@item @code{MINUTE_SECOND}
+ @tab @code{MRG_MYISAM}
+ @tab @code{NATURAL}
+@item @code{NOT}
+ @tab @code{NULL}
+ @tab @code{NUMERIC}
+@item @code{ON}
+ @tab @code{OPTIMIZE}
+ @tab @code{OPTION}
+@item @code{OPTIONALLY}
+ @tab @code{OR}
+ @tab @code{ORDER}
+@item @code{OUTER}
+ @tab @code{OUTFILE}
+ @tab @code{PARTIAL}
+@item @code{PRECISION}
+ @tab @code{PRIMARY}
+ @tab @code{PRIVILEGES}
+@item @code{PROCEDURE}
+ @tab @code{PURGE}
+ @tab @code{READ}
+@item @code{REAL}
+ @tab @code{REFERENCES}
+ @tab @code{REGEXP}
+@item @code{RENAME}
+ @tab @code{REPLACE}
+ @tab @code{REQUIRE}
+@item @code{RESTRICT}
+ @tab @code{RETURNS}
+ @tab @code{REVOKE}
+@item @code{RIGHT}
+ @tab @code{RLIKE}
+ @tab @code{SELECT}
+@item @code{SET}
+ @tab @code{SHOW}
+ @tab @code{SMALLINT}
+@item @code{SONAME}
+ @tab @code{SQL_AUTO_IS_NULL}
+ @tab @code{SQL_BIG_RESULT}
+@item @code{SQL_BIG_SELECTS}
+ @tab @code{SQL_BIG_TABLES}
+ @tab @code{SQL_BUFFER_RESULT}
+@item @code{SQL_CALC_FOUND_ROWS}
+ @tab @code{SQL_LOG_BIN}
+ @tab @code{SQL_LOG_OFF}
+@item @code{SQL_LOG_UPDATE}
+ @tab @code{SQL_LOW_PRIORITY_UPDATES}
+ @tab @code{SQL_MAX_JOIN_SIZE}
+@item @code{SQL_QUOTE_SHOW_CREATE}
+ @tab @code{SQL_SAFE_UPDATES}
+ @tab @code{SQL_SELECT_LIMIT}
+@item @code{SQL_SLAVE_SKIP_COUNTER}
+ @tab @code{SQL_SMALL_RESULT}
+ @tab @code{SQL_WARNINGS}
+@item @code{SSL}
+ @tab @code{STARTING}
+ @tab @code{STRAIGHT_JOIN}
+@item @code{STRIPED}
+ @tab @code{TABLE}
+ @tab @code{TABLES}
+@item @code{TERMINATED}
+ @tab @code{THEN}
+ @tab @code{TINYBLOB}
+@item @code{TINYINT}
+ @tab @code{TINYTEXT}
+ @tab @code{TO}
+@item @code{TRAILING}
+ @tab @code{UNION}
+ @tab @code{UNIQUE}
+@item @code{UNLOCK}
+ @tab @code{UNSIGNED}
+ @tab @code{UPDATE}
+@item @code{USAGE}
+ @tab @code{USE}
+ @tab @code{USING}
+@item @code{VALUES}
+ @tab @code{VARBINARY}
+ @tab @code{VARCHAR}
+@item @code{VARYING}
+ @tab @code{WHEN}
+ @tab @code{WHERE}
+@item @code{WITH}
+ @tab @code{WRITE}
+ @tab @code{YEAR_MONTH}
@item @code{ZEROFILL}
+ @tab
+ @tab
@end multitable
@c END_OF_RESERVED_WORDS
@@ -28397,7 +28709,7 @@ that are optional.
Note that if you specify @code{ZEROFILL} for a column, MySQL will
automatically add the @code{UNSIGNED} attribute to the column.
-@strong{Warning:} You should be aware that when you use subtraction
+@strong{Warning}: you should be aware that when you use subtraction
between integer values where one is of type @code{UNSIGNED}, the result
will be unsigned! @xref{Cast Functions}.
@@ -28653,7 +28965,7 @@ This is a synonym for @code{CHAR(1)}.
@tindex VARCHAR
@item [NATIONAL] VARCHAR(M) [BINARY]
-A variable-length string. @strong{Note:} Trailing spaces are removed when
+A variable-length string. @strong{Note}: trailing spaces are removed when
the value is stored (this differs from the ANSI SQL specification). The range
of @code{M} is 0 to 255 characters (1 to 255 prior to MySQL Version 4.0.2).
@code{VARCHAR} values are sorted and compared in case-insensitive fashion
@@ -28919,7 +29231,7 @@ When MySQL encounters a value for a date or time type that is
out of range or otherwise illegal for the type (see the start of this
section), it converts the value to the ``zero'' value for that type.
(The exception is that out-of-range @code{TIME} values are clipped to
-the appropriate endpoint of the @code{TIME} range.) The table below
+the appropriate endpoint of the @code{TIME} range.) The following table
shows the format of the ``zero'' value for each type:
@multitable @columnfractions .15 .55
@@ -28937,8 +29249,8 @@ explicitly using the values shown in the table. You can also do this
using the values @code{'0'} or @code{0}, which are easier to write.
@item
-``Zero'' date or time values used through @strong{MyODBC} are converted
-automatically to @code{NULL} in @strong{MyODBC} Version 2.50.12 and above,
+``Zero'' date or time values used through @code{MyODBC} are converted
+automatically to @code{NULL} in @code{MyODBC} Version 2.50.12 and above,
because ODBC can't handle such values.
@end itemize
@@ -29029,7 +29341,7 @@ You explicitly set the @code{TIMESTAMP} column to @code{NULL}.
@code{TIMESTAMP} columns other than the first may also be set to the current
date and time. Just set the column to @code{NULL} or to @code{NOW()}.
-You can set any @code{TIMESTAMP} column to a value different than the current
+You can set any @code{TIMESTAMP} column to a value different from the current
date and time by setting it explicitly to the desired value. This is true
even for the first @code{TIMESTAMP} column. You can use this property if,
for example, you want a @code{TIMESTAMP} to be set to the current date and
@@ -29055,7 +29367,7 @@ the year 2037, with a resolution of one second. Values are displayed as
numbers.
The format in which MySQL retrieves and displays @code{TIMESTAMP}
-values depends on the display size, as illustrated by the table below. The
+values depends on the display size, as illustrated by the following table. The
`full' @code{TIMESTAMP} format is 14 digits, but @code{TIMESTAMP} columns may
be created with shorter display sizes:
@@ -29150,7 +29462,7 @@ as though padded with leading zeros to the closest length.
@cindex strings, non-delimited
Values specified as non-delimited strings are interpreted using their length
as given. If the string is 8 or 14 characters long, the year is assumed to
-be given by the first 4 characters. Otherwise the year is assumed to be
+be given by the first 4 characters. Otherwise, the year is assumed to be
given by the first 2 characters. The string is interpreted from left to
right to find year, month, day, hour, minute, and second values, for as many
parts as are present in the string. This means you should not use strings
@@ -29230,6 +29542,15 @@ will be converted to @code{'0000-00-00'} because @code{'45'} is not a legal
month.
@item
+The MySQL server only performs basic checking on the validity of a date:
+days @code{00-31}, months @code{00-12}, years @code{1000-9999}.
+Any date not within this range will revert to @code{0000-00-00}.
+Please note that this still allows you to store invalid dates such as
+@code{2002-04-31}. It allows web applications to store data from a form
+without further checking. To ensure a date is valid, perform a check in
+your application.
+
+@item
Year values specified as two digits are ambiguous, because the century is
unknown. MySQL interprets 2-digit year values using the following
rules:
@@ -29345,9 +29666,9 @@ As a two-digit number in the range @code{1} to @code{99}. Values in the
ranges @code{1} to @code{69} and @code{70} to @code{99} are converted to
@code{YEAR} values in the ranges @code{2001} to @code{2069} and @code{1970}
to @code{1999}. Note that the range for two-digit numbers is slightly
-different than the range for two-digit strings, because you cannot specify zero
+different from the range for two-digit strings, because you cannot specify zero
directly as a number and have it be interpreted as @code{2000}. You
-@emph{must} specify it as a string @code{'0'} or @code{'00'} or it will be
+@strong{must} specify it as a string @code{'0'} or @code{'00'} or it will be
interpreted as @code{0000}.
@item
@@ -29404,7 +29725,7 @@ SQL specification.)
If you assign a value to a @code{CHAR} or @code{VARCHAR} column that
exceeds the column's maximum length, the value is truncated to fit.
-The table below illustrates the differences between the two types of columns
+The following table illustrates the differences between the two types of columns
by showing the result of storing various string values into @code{CHAR(4)}
and @code{VARCHAR(4)} columns:
@@ -29484,7 +29805,7 @@ when values are stored, as there is for @code{VARCHAR} columns.
@code{BLOB} and @code{TEXT} columns cannot have @code{DEFAULT} values.
@end itemize
-@strong{MyODBC} defines @code{BLOB} values as @code{LONGVARBINARY} and
+@code{MyODBC} defines @code{BLOB} values as @code{LONGVARBINARY} and
@code{TEXT} values as @code{LONGVARCHAR}.
Because @code{BLOB} and @code{TEXT} values may be extremely long, you
@@ -29498,7 +29819,7 @@ object. The standard way to do this is with the @code{SUBSTRING}
function. For example:
@example
-mysql> SELECT comment FROM tbl_name,substring(comment,20) AS substr
+mysql> SELECT comment FROM tbl_name,SUBSTRING(comment,20) AS substr
-> ORDER BY substr;
@end example
@@ -29509,8 +29830,8 @@ column are used when sorting. The default value of @code{max_sort_length} is
@code{TEXT} values by specifying the column position or by using an alias:
@example
-mysql> SELECT id,substring(blob_col,1,100) FROM tbl_name GROUP BY 2;
-mysql> SELECT id,substring(blob_col,1,100) AS b FROM tbl_name GROUP BY b;
+mysql> SELECT id,SUBSTRING(blob_col,1,100) FROM tbl_name GROUP BY 2;
+mysql> SELECT id,SUBSTRING(blob_col,1,100) AS b FROM tbl_name GROUP BY b;
@end example
@item
@@ -29575,7 +29896,7 @@ The index of the @code{NULL} value is @code{NULL}.
@end itemize
For example, a column specified as @code{ENUM("one", "two", "three")} can
-have any of the values shown below. The index of each value is also shown:
+have any of the values shown here. The index of each value is also shown:
@multitable @columnfractions .10 .10
@item @strong{Value} @tab @strong{Index}
@@ -29588,6 +29909,9 @@ have any of the values shown below. The index of each value is also shown:
An enumeration can have a maximum of 65535 elements.
+Starting from 3.23.51 trailing spaces are automatically deleted from
+@code{ENUM} values when the table is created.
+
Lettercase is irrelevant when you assign values to an @code{ENUM} column.
However, values retrieved from the column later have lettercase matching the
values that were used to specify the allowable values at table creation time.
@@ -29604,6 +29928,8 @@ If you store a number into an @code{ENUM}, the number is treated as an
index, and the value stored is the enumeration member with that index.
(However, this will not work with @code{LOAD DATA}, which treats all
input as strings.)
+It's not advisable to store numbers in an @code{ENUM} string because
+it will make things confusing.
@code{ENUM} values are sorted according to the order in which the enumeration
members were listed in the column specification. (In other words,
@@ -29642,6 +29968,9 @@ any of these values:
A @code{SET} can have a maximum of 64 different members.
+Starting from 3.23.51 trailing spaces are automatically deleted from
+@code{SET} values when the table is created.
+
MySQL stores @code{SET} values numerically, with the low-order bit
of the stored value corresponding to the first set member. If you retrieve a
@code{SET} value in a numeric context, the value retrieved has bits set
@@ -29737,7 +30066,7 @@ and convert results back to floating-point values only when necessary.
@cindex columns, other types
To make it easier to use code written for SQL implementations from other
-vendors, MySQL maps column types as shown in the table below. These
+vendors, MySQL maps column types as shown in the following table. These
mappings make it easier to move table definitions from other database engines
to MySQL:
@@ -29771,7 +30100,7 @@ MySQL types.
@cindex columns, storage requirements
The storage requirements for each of the column types supported by
-MySQL are listed below by category.
+MySQL are listed by category.
@cindex numeric types
@cindex types, numeric
@@ -29878,7 +30207,7 @@ An expression that contains @code{NULL} always produces a @code{NULL} value
unless otherwise indicated in the documentation for the operators and
functions involved in the expression.
-@strong{Note:} There must be no whitespace between a function name and the
+@strong{Note}: there must be no whitespace between a function name and the
parentheses following it. This helps the MySQL parser distinguish
between function calls and references to tables or columns that happen to
have the same name as a function. Spaces around arguments are permitted,
@@ -30006,7 +30335,7 @@ By default, string comparisons are done in case-independent fashion using the
current character set (ISO-8859-1 Latin1 by default, which also works
excellently for English).
-The examples below illustrate conversion of strings to numbers for comparison
+The following examples illustrate conversion of strings to numbers for comparison
operations:
@example
@@ -30026,15 +30355,15 @@ mysql> SELECT 0 = 'x6';
@item =
Equal:
@example
-mysql> select 1 = 0;
+mysql> SELECT 1 = 0;
-> 0
-mysql> select '0' = 0;
+mysql> SELECT '0' = 0;
-> 1
-mysql> select '0.0' = 0;
+mysql> SELECT '0.0' = 0;
-> 1
-mysql> select '0.01' = 0;
+mysql> SELECT '0.01' = 0;
-> 0
-mysql> select '.01' = 0.01;
+mysql> SELECT '.01' = 0.01;
-> 1
@end example
@@ -30046,11 +30375,11 @@ mysql> select '.01' = 0.01;
@itemx !=
Not equal:
@example
-mysql> select '.01' <> '0.01';
+mysql> SELECT '.01' <> '0.01';
-> 1
-mysql> select .01 <> '0.01';
+mysql> SELECT .01 <> '0.01';
-> 0
-mysql> select 'zapp' <> 'zappp';
+mysql> SELECT 'zapp' <> 'zappp';
-> 1
@end example
@@ -30059,7 +30388,7 @@ mysql> select 'zapp' <> 'zappp';
@item <=
Less than or equal:
@example
-mysql> select 0.1 <= 2;
+mysql> SELECT 0.1 <= 2;
-> 1
@end example
@@ -30068,7 +30397,7 @@ mysql> select 0.1 <= 2;
@item <
Less than:
@example
-mysql> select 2 < 2;
+mysql> SELECT 2 < 2;
-> 0
@end example
@@ -30077,7 +30406,7 @@ mysql> select 2 < 2;
@item >=
Greater than or equal:
@example
-mysql> select 2 >= 2;
+mysql> SELECT 2 >= 2;
-> 1
@end example
@@ -30086,7 +30415,7 @@ mysql> select 2 >= 2;
@item >
Greater than:
@example
-mysql> select 2 > 2;
+mysql> SELECT 2 > 2;
-> 0
@end example
@@ -30095,7 +30424,7 @@ mysql> select 2 > 2;
@item <=>
NULL safe equal:
@example
-mysql> select 1 <=> 1, NULL <=> NULL, 1 <=> NULL;
+mysql> SELECT 1 <=> 1, NULL <=> NULL, 1 <=> NULL;
-> 1 1 0
@end example
@@ -30104,11 +30433,11 @@ mysql> select 1 <=> 1, NULL <=> NULL, 1 <=> NULL;
@findex IS NOT NULL
@item IS NULL
@itemx IS NOT NULL
-Test whether or not a value is or is not @code{NULL}:
+Test whether a value is or is not @code{NULL}:
@example
-mysql> select 1 IS NULL, 0 IS NULL, NULL IS NULL;
+mysql> SELECT 1 IS NULL, 0 IS NULL, NULL IS NULL;
-> 0 0 1
-mysql> select 1 IS NOT NULL, 0 IS NOT NULL, NULL IS NOT NULL;
+mysql> SELECT 1 IS NOT NULL, 0 IS NOT NULL, NULL IS NOT NULL;
-> 1 1 0
@end example
@@ -30165,13 +30494,13 @@ Otherwise, a floating-point (real) comparison is done.
@end itemize
@example
-mysql> select 1 BETWEEN 2 AND 3;
+mysql> SELECT 1 BETWEEN 2 AND 3;
-> 0
-mysql> select 'b' BETWEEN 'a' AND 'c';
+mysql> SELECT 'b' BETWEEN 'a' AND 'c';
-> 1
-mysql> select 2 BETWEEN 2 AND '3';
+mysql> SELECT 2 BETWEEN 2 AND '3';
-> 1
-mysql> select 2 BETWEEN 2 AND 'x-3';
+mysql> SELECT 2 BETWEEN 2 AND 'x-3';
-> 0
@end example
@@ -30190,9 +30519,9 @@ is a case-sensitive string expression, the string comparison is performed in
case-sensitive fashion:
@example
-mysql> select 2 IN (0,3,5,'wefwf');
+mysql> SELECT 2 IN (0,3,5,'wefwf');
-> 0
-mysql> select 'wefwf' IN (0,3,5,'wefwf');
+mysql> SELECT 'wefwf' IN (0,3,5,'wefwf');
-> 1
@end example
@@ -30205,9 +30534,9 @@ Same as @code{NOT (expr IN (value,...))}.
If @code{expr} is @code{NULL}, @code{ISNULL()} returns @code{1}, otherwise
it returns @code{0}:
@example
-mysql> select ISNULL(1+1);
+mysql> SELECT ISNULL(1+1);
-> 0
-mysql> select ISNULL(1/0);
+mysql> SELECT ISNULL(1/0);
-> 1
@end example
@@ -30220,9 +30549,9 @@ false!
Returns first non-@code{NULL} element in list:
@example
-mysql> select COALESCE(NULL,1);
+mysql> SELECT COALESCE(NULL,1);
-> 1
-mysql> select COALESCE(NULL,NULL,NULL);
+mysql> SELECT COALESCE(NULL,NULL,NULL);
-> NULL
@end example
@@ -30234,21 +30563,21 @@ and so on. All arguments are treated as integers. It is required that
to work correctly. This is because a binary search is used (very fast):
@example
-mysql> select INTERVAL(23, 1, 15, 17, 30, 44, 200);
+mysql> SELECT INTERVAL(23, 1, 15, 17, 30, 44, 200);
-> 3
-mysql> select INTERVAL(10, 1, 10, 100, 1000);
+mysql> SELECT INTERVAL(10, 1, 10, 100, 1000);
-> 2
-mysql> select INTERVAL(22, 23, 30, 44, 200);
+mysql> SELECT INTERVAL(22, 23, 30, 44, 200);
-> 0
@end example
@end table
-If you are comparing case sensitive string with any of the standard
+If you are comparing case-sensitive string with any of the standard
operators (@code{=}, @code{<>}..., but not @code{LIKE}) end space will
be ignored.
@example
-mysql> select "a" ="A ";
+mysql> SELECT "a" ="A ";
-> 1
@end example
@@ -30256,10 +30585,10 @@ mysql> select "a" ="A ";
@node Logical Operators, Control flow functions, Comparison Operators, Non-typed Operators
@subsubsection Logical Operators
-@findex Logical functions
-@findex Functions, logical
+@findex Logical operators
+@findex Operators, logical
-All logical functions return @code{1} (TRUE), @code{0} (FALSE) or
+All logical operators evaluate to @code{1} (TRUE), @code{0} (FALSE) or
@code{NULL} (unknown, which is in most cases the same as FALSE):
@table @code
@@ -30267,34 +30596,34 @@ All logical functions return @code{1} (TRUE), @code{0} (FALSE) or
@findex ! (logical NOT)
@item NOT
@itemx !
-Logical NOT. Returns @code{1} if the argument is @code{0}, otherwise returns
-@code{0}.
-Exception: @code{NOT NULL} returns @code{NULL}:
+Logical NOT. Evaluates to @code{1} if the operand is @code{0}, otherwise
+evaluates to @code{0}.
+Exception: @code{NOT NULL} evaluates to @code{NULL}:
@example
-mysql> select NOT 1;
+mysql> SELECT NOT 1;
-> 0
-mysql> select NOT NULL;
+mysql> SELECT NOT NULL;
-> NULL
-mysql> select ! (1+1);
+mysql> SELECT ! (1+1);
-> 0
-mysql> select ! 1+1;
+mysql> SELECT ! 1+1;
-> 1
@end example
-The last example returns @code{1} because the expression evaluates
+The last example produces @code{1} because the expression evaluates
the same way as @code{(!1)+1}.
@findex OR, logical
@findex || (logical OR)
@item OR
@itemx ||
-Logical OR. Returns @code{1} if either argument is not @code{0} and not
+Logical OR. Evaluates to @code{1} if either operand is not @code{0} and not
@code{NULL}:
@example
-mysql> select 1 || 0;
+mysql> SELECT 1 || 0;
-> 1
-mysql> select 0 || 0;
+mysql> SELECT 0 || 0;
-> 0
-mysql> select 1 || NULL;
+mysql> SELECT 1 || NULL;
-> 1
@end example
@@ -30303,13 +30632,16 @@ mysql> select 1 || NULL;
@findex && (logical AND)
@item AND
@itemx &&
-Logical AND. Returns @code{0} if either argument is @code{0} or @code{NULL},
-otherwise returns @code{1}:
+Logical AND. For non-@code{NULL} operands, evaluates to @code{1} if both
+operands are non-zero and to @code{0} otherwise.
+Produces @code{NULL} if either operand is @code{NULL}:
@example
-mysql> select 1 && NULL;
- -> 0
-mysql> select 1 && 0;
+mysql> SELECT 1 && 1;
+ -> 1
+mysql> SELECT 1 && 0;
-> 0
+mysql> SELECT 1 && NULL;
+ -> NULL
@end example
@end table
@@ -30328,13 +30660,13 @@ If @code{expr1} is not @code{NULL}, @code{IFNULL()} returns @code{expr1},
else it returns @code{expr2}. @code{IFNULL()} returns a numeric or string
value, depending on the context in which it is used:
@example
-mysql> select IFNULL(1,0);
+mysql> SELECT IFNULL(1,0);
-> 1
-mysql> select IFNULL(NULL,10);
+mysql> SELECT IFNULL(NULL,10);
-> 10
-mysql> select IFNULL(1/0,10);
+mysql> SELECT IFNULL(1/0,10);
-> 10
-mysql> select IFNULL(1/0,'yes');
+mysql> SELECT IFNULL(1/0,'yes');
-> 'yes'
@end example
@@ -30343,9 +30675,9 @@ mysql> select IFNULL(1/0,'yes');
If @code{expr1 = expr2} is true, return @code{NULL} else return @code{expr1}.
This is the same as @code{CASE WHEN x = y THEN NULL ELSE x END}:
@example
-mysql> select NULLIF(1,1);
+mysql> SELECT NULLIF(1,1);
-> NULL
-mysql> select NULLIF(1,2);
+mysql> SELECT NULLIF(1,2);
-> 1
@end example
@@ -30360,11 +30692,11 @@ If @code{expr1} is TRUE (@code{expr1 <> 0} and @code{expr1 <> NULL}) then
in which it is used:
@example
-mysql> select IF(1>2,2,3);
+mysql> SELECT IF(1>2,2,3);
-> 3
-mysql> select IF(1<2,'yes','no');
+mysql> SELECT IF(1<2,'yes','no');
-> 'yes'
-mysql> select IF(strcmp('test','test1'),'no','yes');
+mysql> SELECT IF(STRCMP('test','test1'),'no','yes');
-> 'no'
@end example
@@ -30373,9 +30705,9 @@ testing floating-point or string values, you should do so using a comparison
operation:
@example
-mysql> select IF(0.1,1,0);
+mysql> SELECT IF(0.1,1,0);
-> 0
-mysql> select IF(0.1<>0,1,0);
+mysql> SELECT IF(0.1<>0,1,0);
-> 1
@end example
@@ -30389,13 +30721,16 @@ The default return type of @code{IF()} (which may matter when it is
stored into a temporary table) is calculated in MySQL Version
3.23 as follows:
-@multitable @columnfractions .45 .15
+@multitable @columnfractions .50 .20
@item @strong{Expression} @tab @strong{Return value}
@item expr2 or expr3 returns string @tab string
@item expr2 or expr3 returns a floating-point value @tab floating-point
@item expr2 or expr3 returns an integer @tab integer
@end multitable
+If expr2 and expr3 are strings, then the result is case-sensitive if
+both strings are case-sensitive. (Starting from 3.23.51)
+
@findex CASE
@item CASE value WHEN [compare-value] THEN result [WHEN [compare-value] THEN result ...] [ELSE result] END
@item CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END
@@ -30443,11 +30778,11 @@ Returns the ASCII code value of the leftmost character of the string
@code{NULL} if @code{str} is @code{NULL}:
@example
-mysql> select ASCII('2');
+mysql> SELECT ASCII('2');
-> 50
-mysql> select ASCII(2);
+mysql> SELECT ASCII(2);
-> 50
-mysql> select ASCII('dx');
+mysql> SELECT ASCII('dx');
-> 100
@end example
@@ -30463,7 +30798,7 @@ If the leftmost character is not a multi-byte character, returns the same
value that the @code{ASCII()} function does:
@example
-mysql> select ORD('2');
+mysql> SELECT ORD('2');
-> 50
@end example
@@ -30479,13 +30814,13 @@ signed number. Otherwise, @code{N} is treated as unsigned. @code{CONV} works
with 64-bit precision:
@example
-mysql> select CONV("a",16,2);
+mysql> SELECT CONV("a",16,2);
-> '1010'
-mysql> select CONV("6E",18,8);
+mysql> SELECT CONV("6E",18,8);
-> '172'
-mysql> select CONV(-17,10,-18);
+mysql> SELECT CONV(-17,10,-18);
-> '-H'
-mysql> select CONV(10+"10"+'10'+0xa,10,10);
+mysql> SELECT CONV(10+"10"+'10'+0xa,10,10);
-> '40'
@end example
@@ -30496,7 +30831,7 @@ Returns a string representation of the binary value of @code{N}, where
@code{CONV(N,10,2)}. Returns @code{NULL} if @code{N} is @code{NULL}:
@example
-mysql> select BIN(12);
+mysql> SELECT BIN(12);
-> '1100'
@end example
@@ -30507,7 +30842,7 @@ Returns a string representation of the octal value of @code{N}, where
Returns @code{NULL} if @code{N} is @code{NULL}:
@example
-mysql> select OCT(12);
+mysql> SELECT OCT(12);
-> '14'
@end example
@@ -30523,11 +30858,11 @@ character in N_OR_S is converted to 2 hexadecimal digits. This is the
invers of the @code{0xff} strings.
@example
-mysql> select HEX(255);
+mysql> SELECT HEX(255);
-> 'FF'
-mysql> select HEX("abc");
+mysql> SELECT HEX("abc");
-> 616263
-mysql> select 0x616263;
+mysql> SELECT 0x616263;
-> "abc"
@end example
@@ -30538,9 +30873,9 @@ consisting of the characters given by the ASCII code values of those
integers. @code{NULL} values are skipped:
@example
-mysql> select CHAR(77,121,83,81,'76');
+mysql> SELECT CHAR(77,121,83,81,'76');
-> 'MySQL'
-mysql> select CHAR(77,77.3,'77.3');
+mysql> SELECT CHAR(77,77.3,'77.3');
-> 'MMM'
@end example
@@ -30551,11 +30886,11 @@ Returns the string that results from concatenating the arguments. Returns
A numeric argument is converted to the equivalent string form:
@example
-mysql> select CONCAT('My', 'S', 'QL');
+mysql> SELECT CONCAT('My', 'S', 'QL');
-> 'MySQL'
-mysql> select CONCAT('My', NULL, 'QL');
+mysql> SELECT CONCAT('My', NULL, 'QL');
-> NULL
-mysql> select CONCAT(14.3);
+mysql> SELECT CONCAT(14.3);
-> '14.3'
@end example
@@ -30571,9 +30906,9 @@ separator argument. The separator will be added between the strings to be
concatenated:
@example
-mysql> select CONCAT_WS(",","First name","Second name","Last Name");
+mysql> SELECT CONCAT_WS(",","First name","Second name","Last Name");
-> 'First name,Second name,Last Name'
-mysql> select CONCAT_WS(",","First name",NULL,"Last Name");
+mysql> SELECT CONCAT_WS(",","First name",NULL,"Last Name");
-> 'First name,Last Name'
@end example
@@ -30588,9 +30923,9 @@ mysql> select CONCAT_WS(",","First name",NULL,"Last Name");
Returns the length of the string @code{str}:
@example
-mysql> select LENGTH('text');
+mysql> SELECT LENGTH('text');
-> 4
-mysql> select OCTET_LENGTH('text');
+mysql> SELECT OCTET_LENGTH('text');
-> 4
@end example
@@ -30602,7 +30937,7 @@ characters are only counted once.
Returns the length of the string @code{str} in bits:
@example
-mysql> select BIT_LENGTH('text');
+mysql> SELECT BIT_LENGTH('text');
-> 32
@end example
@@ -30614,14 +30949,14 @@ Returns the position of the first occurrence of substring @code{substr}
in string @code{str}. Returns @code{0} if @code{substr} is not in @code{str}:
@example
-mysql> select LOCATE('bar', 'foobarbar');
+mysql> SELECT LOCATE('bar', 'foobarbar');
-> 4
-mysql> select LOCATE('xbar', 'foobar');
+mysql> SELECT LOCATE('xbar', 'foobar');
-> 0
@end example
This function is multi-byte safe. In MySQL 3.23 this function is case
-insensitive, while in 4.0 it's only case insensitive if either argument is
+insensitive, while in 4.0 it's only case-insensitive if either argument is
a binary string.
@findex LOCATE()
@@ -30631,12 +30966,12 @@ string @code{str}, starting at position @code{pos}.
Returns @code{0} if @code{substr} is not in @code{str}:
@example
-mysql> select LOCATE('bar', 'foobarbar',5);
+mysql> SELECT LOCATE('bar', 'foobarbar',5);
-> 7
@end example
This function is multi-byte safe. In MySQL 3.23 this function is case
-insensitive, while in 4.0 it's only case insensitive if either argument is
+insensitive, while in 4.0 it's only case-insensitive if either argument is
a binary string.
@findex INSTR()
@@ -30646,14 +30981,14 @@ string @code{str}. This is the same as the two-argument form of
@code{LOCATE()}, except that the arguments are swapped:
@example
-mysql> select INSTR('foobarbar', 'bar');
+mysql> SELECT INSTR('foobarbar', 'bar');
-> 4
-mysql> select INSTR('xbar', 'foobar');
+mysql> SELECT INSTR('xbar', 'foobar');
-> 0
@end example
This function is multi-byte safe. In MySQL 3.23 this function is case
-insensitive, while in 4.0 it's only case insensitive if either argument is
+insensitive, while in 4.0 it's only case-insensitive if either argument is
a binary string.
@findex LPAD()
@@ -30663,7 +30998,7 @@ until @code{str} is @code{len} characters long. If @code{str} is longer
than @code{len'} then it will be shortened to @code{len} characters.
@example
-mysql> select LPAD('hi',4,'??');
+mysql> SELECT LPAD('hi',4,'??');
-> '??hi'
@end example
@@ -30675,7 +31010,7 @@ Returns the string @code{str}, right-padded with the string
@code{len} characters.
@example
-mysql> select RPAD('hi',5,'?');
+mysql> SELECT RPAD('hi',5,'?');
-> 'hi???'
@end example
@@ -30684,7 +31019,7 @@ mysql> select RPAD('hi',5,'?');
Returns the leftmost @code{len} characters from the string @code{str}:
@example
-mysql> select LEFT('foobarbar', 5);
+mysql> SELECT LEFT('foobarbar', 5);
-> 'fooba'
@end example
@@ -30695,7 +31030,7 @@ This function is multi-byte safe.
Returns the rightmost @code{len} characters from the string @code{str}:
@example
-mysql> select RIGHT('foobarbar', 4);
+mysql> SELECT RIGHT('foobarbar', 4);
-> 'rbar'
@end example
@@ -30711,7 +31046,7 @@ starting at position @code{pos}.
The variant form that uses @code{FROM} is ANSI SQL92 syntax:
@example
-mysql> select SUBSTRING('Quadratically',5,6);
+mysql> SELECT SUBSTRING('Quadratically',5,6);
-> 'ratica'
@end example
@@ -30723,9 +31058,9 @@ This function is multi-byte safe.
Returns a substring from string @code{str} starting at position @code{pos}:
@example
-mysql> select SUBSTRING('Quadratically',5);
+mysql> SELECT SUBSTRING('Quadratically',5);
-> 'ratically'
-mysql> select SUBSTRING('foobarbar' FROM 4);
+mysql> SELECT SUBSTRING('foobarbar' FROM 4);
-> 'barbar'
@end example
@@ -30741,9 +31076,9 @@ If @code{count} is negative, everything to the right of the final delimiter
(counting from the right) is returned:
@example
-mysql> select SUBSTRING_INDEX('www.mysql.com', '.', 2);
+mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', 2);
-> 'www.mysql'
-mysql> select SUBSTRING_INDEX('www.mysql.com', '.', -2);
+mysql> SELECT SUBSTRING_INDEX('www.mysql.com', '.', -2);
-> 'mysql.com'
@end example
@@ -30754,7 +31089,7 @@ This function is multi-byte safe.
Returns the string @code{str} with leading space characters removed:
@example
-mysql> select LTRIM(' barbar');
+mysql> SELECT LTRIM(' barbar');
-> 'barbar'
@end example
@@ -30763,7 +31098,7 @@ mysql> select LTRIM(' barbar');
Returns the string @code{str} with trailing space characters removed:
@example
-mysql> select RTRIM('barbar ');
+mysql> SELECT RTRIM('barbar ');
-> 'barbar'
@end example
@@ -30777,13 +31112,13 @@ removed. If none of the specifiers @code{BOTH}, @code{LEADING} or
specified, spaces are removed:
@example
-mysql> select TRIM(' bar ');
+mysql> SELECT TRIM(' bar ');
-> 'bar'
-mysql> select TRIM(LEADING 'x' FROM 'xxxbarxxx');
+mysql> SELECT TRIM(LEADING 'x' FROM 'xxxbarxxx');
-> 'barxxx'
-mysql> select TRIM(BOTH 'x' FROM 'xxxbarxxx');
+mysql> SELECT TRIM(BOTH 'x' FROM 'xxxbarxxx');
-> 'bar'
-mysql> select TRIM(TRAILING 'xyz' FROM 'barxxyz');
+mysql> SELECT TRIM(TRAILING 'xyz' FROM 'barxxyz');
-> 'barx'
@end example
@@ -30800,9 +31135,9 @@ in the given string. All international alpha characters outside the A-Z range
are treated as vowels:
@example
-mysql> select SOUNDEX('Hello');
+mysql> SELECT SOUNDEX('Hello');
-> 'H400'
-mysql> select SOUNDEX('Quadratically');
+mysql> SELECT SOUNDEX('Quadratically');
-> 'Q36324'
@end example
@@ -30811,7 +31146,7 @@ mysql> select SOUNDEX('Quadratically');
Returns a string consisting of @code{N} space characters:
@example
-mysql> select SPACE(6);
+mysql> SELECT SPACE(6);
-> ' '
@end example
@@ -30821,7 +31156,7 @@ Returns the string @code{str} with all all occurrences of the string
@code{from_str} replaced by the string @code{to_str}:
@example
-mysql> select REPLACE('www.mysql.com', 'w', 'Ww');
+mysql> SELECT REPLACE('www.mysql.com', 'w', 'Ww');
-> 'WwWwWw.mysql.com'
@end example
@@ -30834,7 +31169,7 @@ times. If @code{count <= 0}, returns an empty string. Returns @code{NULL} if
@code{str} or @code{count} are @code{NULL}:
@example
-mysql> select REPEAT('MySQL', 3);
+mysql> SELECT REPEAT('MySQL', 3);
-> 'MySQLMySQLMySQL'
@end example
@@ -30843,7 +31178,7 @@ mysql> select REPEAT('MySQL', 3);
Returns the string @code{str} with the order of the characters reversed:
@example
-mysql> select REVERSE('abc');
+mysql> SELECT REVERSE('abc');
-> 'cba'
@end example
@@ -30856,7 +31191,7 @@ Returns the string @code{str}, with the substring beginning at position
@code{newstr}:
@example
-mysql> select INSERT('Quadratic', 3, 4, 'What');
+mysql> SELECT INSERT('Quadratic', 3, 4, 'What');
-> 'QuWhattic'
@end example
@@ -30870,9 +31205,9 @@ or greater than the number of arguments. @code{ELT()} is the complement of
@code{FIELD()}:
@example
-mysql> select ELT(1, 'ej', 'Heja', 'hej', 'foo');
+mysql> SELECT ELT(1, 'ej', 'Heja', 'hej', 'foo');
-> 'ej'
-mysql> select ELT(4, 'ej', 'Heja', 'hej', 'foo');
+mysql> SELECT ELT(4, 'ej', 'Heja', 'hej', 'foo');
-> 'foo'
@end example
@@ -30884,9 +31219,9 @@ Returns @code{0} if @code{str} is not found.
@code{FIELD()} is the complement of @code{ELT()}:
@example
-mysql> select FIELD('ej', 'Hej', 'ej', 'Heja', 'hej', 'foo');
+mysql> SELECT FIELD('ej', 'Hej', 'ej', 'Heja', 'hej', 'foo');
-> 2
-mysql> select FIELD('fo', 'Hej', 'ej', 'Heja', 'hej', 'foo');
+mysql> SELECT FIELD('fo', 'Hej', 'ej', 'Heja', 'hej', 'foo');
-> 0
@end example
@@ -30932,7 +31267,7 @@ with 'separator' (default ',') and only 'number_of_bits' (default 64) of
'bits' is used:
@example
-mysql> select EXPORT_SET(5,'Y','N',',',4)
+mysql> SELECT EXPORT_SET(5,'Y','N',',',4)
-> Y,N,Y,N
@end example
@@ -30945,7 +31280,7 @@ according to the current character set mapping (the default is ISO-8859-1
Latin1):
@example
-mysql> select LCASE('QUADRATICALLY');
+mysql> SELECT LCASE('QUADRATICALLY');
-> 'quadratically'
@end example
@@ -30960,7 +31295,7 @@ according to the current character set mapping (the default is ISO-8859-1
Latin1):
@example
-mysql> select UCASE('Hej');
+mysql> SELECT UCASE('Hej');
-> 'HEJ'
@end example
@@ -30978,7 +31313,7 @@ If the file doesn't exist or can't be read due to one of the above reasons,
the function returns @code{NULL}:
@example
-mysql> UPDATE table_name
+mysql> UPDATE tbl_name
SET blob_column=LOAD_FILE("/tmp/picture")
WHERE id=1;
@end example
@@ -31022,7 +31357,7 @@ a binary string. This only affects comparisons.
@cindex case sensitivity, in string comparisons
@cindex string comparisons, case sensitivity
-Normally, if any expression in a string comparison is case sensitive, the
+Normally, if any expression in a string comparison is case-sensitive, the
comparison is performed in case-sensitive fashion.
@table @code
@@ -31030,7 +31365,7 @@ comparison is performed in case-sensitive fashion.
@item expr LIKE pat [ESCAPE 'escape-char']
Pattern matching using
SQL simple regular expression comparison. Returns @code{1} (TRUE) or @code{0}
-(FALSE). With @code{LIKE} you can use the following two wild-card characters
+(FALSE). With @code{LIKE} you can use the following two wildcard characters
in the pattern:
@multitable @columnfractions .10 .60
@@ -31040,13 +31375,24 @@ in the pattern:
@end multitable
@example
-mysql> select 'David!' LIKE 'David_';
+mysql> SELECT 'David!' LIKE 'David_';
-> 1
-mysql> select 'David!' LIKE '%D%v%';
+mysql> SELECT 'David!' LIKE '%D%v%';
-> 1
+mysql> select TRUNCATE(-1,999,1);
+ -> -1.9
@end example
-To test for literal instances of a wild-card character, precede the character
+Starting from MySQL 3.23.51 all numbers are rounded towards zero.
+
+If @code{D} is negative, then the whole part of the number is zeroed out:
+
+@example
+mysql> select truncate(122,-2);
+ -> 100
+@end example
+
+To test for literal instances of a wildcard character, precede the character
with the escape character. If you don't specify the @code{ESCAPE} character,
@samp{\} is assumed:
@@ -31057,24 +31403,24 @@ with the escape character. If you don't specify the @code{ESCAPE} character,
@end multitable
@example
-mysql> select 'David!' LIKE 'David\_';
+mysql> SELECT 'David!' LIKE 'David\_';
-> 0
-mysql> select 'David_' LIKE 'David\_';
+mysql> SELECT 'David_' LIKE 'David\_';
-> 1
@end example
To specify a different escape character, use the @code{ESCAPE} clause:
@example
-mysql> select 'David_' LIKE 'David|_' ESCAPE '|';
+mysql> SELECT 'David_' LIKE 'David|_' ESCAPE '|';
-> 1
@end example
The following two statements illustrate that string comparisons are
-case insensitive unless one of the operands is a binary string:
+case-insensitive unless one of the operands is a binary string:
@example
-mysql> select 'abc' LIKE 'ABC';
+mysql> SELECT 'abc' LIKE 'ABC';
-> 1
mysql> SELECT 'abc' LIKE BINARY 'ABC';
-> 0
@@ -31084,7 +31430,7 @@ mysql> SELECT 'abc' LIKE BINARY 'ABC';
extension to the ANSI SQL @code{LIKE}.)
@example
-mysql> select 10 LIKE '1%';
+mysql> SELECT 10 LIKE '1%';
-> 1
@end example
@@ -31112,18 +31458,18 @@ returns @code{0}. @code{RLIKE} is a synonym for @code{REGEXP}, provided for
@code{mSQL} compatibility. Note: Because MySQL uses the C escape
syntax in strings (for example, @samp{\n}), you must double any @samp{\} that
you use in your @code{REGEXP} strings. As of MySQL Version 3.23.4,
-@code{REGEXP} is case insensitive for normal (not binary) strings:
+@code{REGEXP} is case-insensitive for normal (not binary) strings:
@example
-mysql> select 'Monty!' REGEXP 'm%y%%';
+mysql> SELECT 'Monty!' REGEXP 'm%y%%';
-> 0
-mysql> select 'Monty!' REGEXP '.*';
+mysql> SELECT 'Monty!' REGEXP '.*';
-> 1
-mysql> select 'new*\n*line' REGEXP 'new\\*.\\*line';
+mysql> SELECT 'new*\n*line' REGEXP 'new\\*.\\*line';
-> 1
-mysql> select "a" REGEXP "A", "a" REGEXP BINARY "A";
+mysql> SELECT "a" REGEXP "A", "a" REGEXP BINARY "A";
-> 1 0
-mysql> select "a" REGEXP "^[a-d]";
+mysql> SELECT "a" REGEXP "^[a-d]";
-> 1
@end example
@@ -31144,11 +31490,11 @@ argument is smaller than the second according to the current sort order,
and @code{1} otherwise:
@example
-mysql> select STRCMP('text', 'text2');
+mysql> SELECT STRCMP('text', 'text2');
-> -1
-mysql> select STRCMP('text2', 'text');
+mysql> SELECT STRCMP('text2', 'text');
-> 1
-mysql> select STRCMP('text', 'text');
+mysql> SELECT STRCMP('text', 'text');
-> 0
@end example
@@ -31176,12 +31522,12 @@ positive floating-point number. Zero relevance means no similarity.
@findex BINARY
@item @code{BINARY}
The @code{BINARY} operator casts the string following it to a binary string.
-This is an easy way to force a column comparison to be case sensitive even
+This is an easy way to force a column comparison to be case-sensitive even
if the column isn't defined as @code{BINARY} or @code{BLOB}:
@example
-mysql> select "a" = "A";
+mysql> SELECT "a" = "A";
-> 1
-mysql> select BINARY "a" = "A";
+mysql> SELECT BINARY "a" = "A";
-> 0
@end example
@@ -31232,7 +31578,7 @@ is also an integer, the result will be an unsigned integer.
@item +
Addition:
@example
-mysql> select 3+5;
+mysql> SELECT 3+5;
-> 8
@end example
@@ -31241,7 +31587,7 @@ mysql> select 3+5;
@item -
Subtraction:
@example
-mysql> select 3-5;
+mysql> SELECT 3-5;
-> -2
@end example
@@ -31250,11 +31596,11 @@ mysql> select 3-5;
@item *
Multiplication:
@example
-mysql> select 3*5;
+mysql> SELECT 3*5;
-> 15
-mysql> select 18014398509481984*18014398509481984.0;
+mysql> SELECT 18014398509481984*18014398509481984.0;
-> 324518553658426726783156020576256.0
-mysql> select 18014398509481984*18014398509481984;
+mysql> SELECT 18014398509481984*18014398509481984;
-> 0
@end example
@@ -31267,14 +31613,14 @@ calculations.
@item /
Division:
@example
-mysql> select 3/5;
+mysql> SELECT 3/5;
-> 0.60
@end example
Division by zero produces a @code{NULL} result:
@example
-mysql> select 102/(1-1);
+mysql> SELECT 102/(1-1);
-> NULL
@end example
@@ -31297,7 +31643,7 @@ All mathematical functions return @code{NULL} in case of an error.
@item -
Unary minus. Changes the sign of the argument:
@example
-mysql> select - 2;
+mysql> SELECT - 2;
-> -2
@end example
@@ -31309,9 +31655,9 @@ may have the value of @code{-2^63}!
@item ABS(X)
Returns the absolute value of @code{X}:
@example
-mysql> select ABS(2);
+mysql> SELECT ABS(2);
-> 2
-mysql> select ABS(-32);
+mysql> SELECT ABS(-32);
-> 32
@end example
@@ -31322,11 +31668,11 @@ This function is safe to use with @code{BIGINT} values.
Returns the sign of the argument as @code{-1}, @code{0}, or @code{1}, depending
on whether @code{X} is negative, zero, or positive:
@example
-mysql> select SIGN(-32);
+mysql> SELECT SIGN(-32);
-> -1
-mysql> select SIGN(0);
+mysql> SELECT SIGN(0);
-> 0
-mysql> select SIGN(234);
+mysql> SELECT SIGN(234);
-> 1
@end example
@@ -31338,11 +31684,11 @@ mysql> select SIGN(234);
Modulo (like the @code{%} operator in C).
Returns the remainder of @code{N} divided by @code{M}:
@example
-mysql> select MOD(234, 10);
+mysql> SELECT MOD(234, 10);
-> 4
-mysql> select 253 % 7;
+mysql> SELECT 253 % 7;
-> 1
-mysql> select MOD(29,9);
+mysql> SELECT MOD(29,9);
-> 2
@end example
@@ -31352,9 +31698,9 @@ This function is safe to use with @code{BIGINT} values.
@item FLOOR(X)
Returns the largest integer value not greater than @code{X}:
@example
-mysql> select FLOOR(1.23);
+mysql> SELECT FLOOR(1.23);
-> 1
-mysql> select FLOOR(-1.23);
+mysql> SELECT FLOOR(-1.23);
-> -2
@end example
@@ -31364,9 +31710,9 @@ Note that the return value is converted to a @code{BIGINT}!
@item CEILING(X)
Returns the smallest integer value not less than @code{X}:
@example
-mysql> select CEILING(1.23);
+mysql> SELECT CEILING(1.23);
-> 2
-mysql> select CEILING(-1.23);
+mysql> SELECT CEILING(-1.23);
-> -1
@end example
@@ -31376,18 +31722,18 @@ Note that the return value is converted to a @code{BIGINT}!
@item ROUND(X)
Returns the argument @code{X}, rounded to the nearest integer:
@example
-mysql> select ROUND(-1.23);
+mysql> SELECT ROUND(-1.23);
-> -1
-mysql> select ROUND(-1.58);
+mysql> SELECT ROUND(-1.58);
-> -2
-mysql> select ROUND(1.58);
+mysql> SELECT ROUND(1.58);
-> 2
@end example
Note that the behavior of @code{ROUND()} when the argument
is half way between two integers depends on the C library
implementation. Some round to the nearest even number,
-always up, always down, or always towards zero. If you need
+always up, always down, or always toward zero. If you need
one kind of rounding, you should use a well-defined function
like @code{TRUNCATE()} or @code{FLOOR()} instead.
@@ -31398,9 +31744,9 @@ If @code{D} is @code{0}, the result will have no decimal point or fractional
part:
@example
-mysql> select ROUND(1.298, 1);
+mysql> SELECT ROUND(1.298, 1);
-> 1.3
-mysql> select ROUND(1.298, 0);
+mysql> SELECT ROUND(1.298, 0);
-> 1
@end example
@@ -31409,18 +31755,18 @@ mysql> select ROUND(1.298, 0);
Returns the value of @code{e} (the base of natural logarithms) raised to
the power of @code{X}:
@example
-mysql> select EXP(2);
+mysql> SELECT EXP(2);
-> 7.389056
-mysql> select EXP(-2);
+mysql> SELECT EXP(-2);
-> 0.135335
@end example
@findex LOG()
@item LOG(X)
Returns the natural logarithm of @code{X}:
@example
-mysql> select LOG(2);
+mysql> SELECT LOG(2);
-> 0.693147
-mysql> select LOG(-2);
+mysql> SELECT LOG(-2);
-> NULL
@end example
If you want the log of a number @code{X} to some arbitary base @code{B}, use
@@ -31430,11 +31776,11 @@ the formula @code{LOG(X)/LOG(B)}.
@item LOG10(X)
Returns the base-10 logarithm of @code{X}:
@example
-mysql> select LOG10(2);
+mysql> SELECT LOG10(2);
-> 0.301030
-mysql> select LOG10(100);
+mysql> SELECT LOG10(100);
-> 2.000000
-mysql> select LOG10(-100);
+mysql> SELECT LOG10(-100);
-> NULL
@end example
@@ -31444,9 +31790,9 @@ mysql> select LOG10(-100);
@itemx POWER(X,Y)
Returns the value of @code{X} raised to the power of @code{Y}:
@example
-mysql> select POW(2,2);
+mysql> SELECT POW(2,2);
-> 4.000000
-mysql> select POW(2,-2);
+mysql> SELECT POW(2,-2);
-> 0.250000
@end example
@@ -31454,9 +31800,9 @@ mysql> select POW(2,-2);
@item SQRT(X)
Returns the non-negative square root of @code{X}:
@example
-mysql> select SQRT(4);
+mysql> SELECT SQRT(4);
-> 2.000000
-mysql> select SQRT(20);
+mysql> SELECT SQRT(20);
-> 4.472136
@end example
@@ -31465,7 +31811,7 @@ mysql> select SQRT(20);
Returns the value of PI. The default shown number of decimals is 5, but
MySQL internally uses the full double precession for PI.
@example
-mysql> select PI();
+mysql> SELECT PI();
-> 3.141593
mysql> SELECT PI()+0.000000000000000000;
-> 3.141592653589793116
@@ -31475,7 +31821,7 @@ mysql> SELECT PI()+0.000000000000000000;
@item COS(X)
Returns the cosine of @code{X}, where @code{X} is given in radians:
@example
-mysql> select COS(PI());
+mysql> SELECT COS(PI());
-> -1.000000
@end example
@@ -31483,7 +31829,7 @@ mysql> select COS(PI());
@item SIN(X)
Returns the sine of @code{X}, where @code{X} is given in radians:
@example
-mysql> select SIN(PI());
+mysql> SELECT SIN(PI());
-> 0.000000
@end example
@@ -31491,7 +31837,7 @@ mysql> select SIN(PI());
@item TAN(X)
Returns the tangent of @code{X}, where @code{X} is given in radians:
@example
-mysql> select TAN(PI()+1);
+mysql> SELECT TAN(PI()+1);
-> 1.557408
@end example
@@ -31501,11 +31847,11 @@ Returns the arc cosine of @code{X}, that is, the value whose cosine is
@code{X}. Returns @code{NULL} if @code{X} is not in the range @code{-1} to
@code{1}:
@example
-mysql> select ACOS(1);
+mysql> SELECT ACOS(1);
-> 0.000000
-mysql> select ACOS(1.0001);
+mysql> SELECT ACOS(1.0001);
-> NULL
-mysql> select ACOS(0);
+mysql> SELECT ACOS(0);
-> 1.570796
@end example
@@ -31515,9 +31861,9 @@ Returns the arc sine of @code{X}, that is, the value whose sine is
@code{X}. Returns @code{NULL} if @code{X} is not in the range @code{-1} to
@code{1}:
@example
-mysql> select ASIN(0.2);
+mysql> SELECT ASIN(0.2);
-> 0.201358
-mysql> select ASIN('foo');
+mysql> SELECT ASIN('foo');
-> 0.000000
@end example
@@ -31526,9 +31872,9 @@ mysql> select ASIN('foo');
Returns the arc tangent of @code{X}, that is, the value whose tangent is
@code{X}:
@example
-mysql> select ATAN(2);
+mysql> SELECT ATAN(2);
-> 1.107149
-mysql> select ATAN(-2);
+mysql> SELECT ATAN(-2);
-> -1.107149
@end example
@@ -31540,9 +31886,9 @@ similar to calculating the arc tangent of @code{Y / X}, except that the
signs of both arguments are used to determine the quadrant of the
result:
@example
-mysql> select ATAN(-2,2);
+mysql> SELECT ATAN(-2,2);
-> -0.785398
-mysql> select ATAN2(PI(),0);
+mysql> SELECT ATAN2(PI(),0);
-> 1.570796
@end example
@@ -31550,9 +31896,9 @@ mysql> select ATAN2(PI(),0);
@item COT(X)
Returns the cotangent of @code{X}:
@example
-mysql> select COT(12);
+mysql> SELECT COT(12);
-> -1.57267341
-mysql> select COT(0);
+mysql> SELECT COT(0);
-> NULL
@end example
@@ -31562,15 +31908,15 @@ mysql> select COT(0);
Returns a random floating-point value in the range @code{0} to @code{1.0}.
If an integer argument @code{N} is specified, it is used as the seed value:
@example
-mysql> select RAND();
+mysql> SELECT RAND();
-> 0.9233482386203
-mysql> select RAND(20);
+mysql> SELECT RAND(20);
-> 0.15888261251047
-mysql> select RAND(20);
+mysql> SELECT RAND(20);
-> 0.15888261251047
-mysql> select RAND();
+mysql> SELECT RAND();
-> 0.63553050033332
-mysql> select RAND();
+mysql> SELECT RAND();
-> 0.70100469486881
@end example
@@ -31586,7 +31932,7 @@ Note that a @code{RAND()} in a @code{WHERE} clause will be re-evaluated
every time the @code{WHERE} is executed.
@code{RAND()} is not meant to be a perfect random generator, but instead a
-fast way to generate add-hook random numbers that will be portable between
+fast way to generate ad hoc random numbers that will be portable between
platforms for the same MySQL version.
@findex LEAST()
@@ -31612,11 +31958,11 @@ In other cases, the arguments are compared as case-insensitive strings:
@end itemize
@example
-mysql> select LEAST(2,0);
+mysql> SELECT LEAST(2,0);
-> 0
-mysql> select LEAST(34.0,3.0,5.0,767.0);
+mysql> SELECT LEAST(34.0,3.0,5.0,767.0);
-> 3.0
-mysql> select LEAST("B","A","C");
+mysql> SELECT LEAST("B","A","C");
-> "A"
@end example
In MySQL versions prior to Version 3.22.5, you can use @code{MIN()}
@@ -31627,11 +31973,11 @@ instead of @code{LEAST}.
Returns the largest (maximum-valued) argument.
The arguments are compared using the same rules as for @code{LEAST}:
@example
-mysql> select GREATEST(2,0);
+mysql> SELECT GREATEST(2,0);
-> 2
-mysql> select GREATEST(34.0,3.0,5.0,767.0);
+mysql> SELECT GREATEST(34.0,3.0,5.0,767.0);
-> 767.0
-mysql> select GREATEST("B","A","C");
+mysql> SELECT GREATEST("B","A","C");
-> "C"
@end example
In MySQL versions prior to Version 3.22.5, you can use @code{MAX()}
@@ -31641,7 +31987,7 @@ instead of @code{GREATEST}.
@item DEGREES(X)
Returns the argument @code{X}, converted from radians to degrees:
@example
-mysql> select DEGREES(PI());
+mysql> SELECT DEGREES(PI());
-> 180.000000
@end example
@@ -31649,7 +31995,7 @@ mysql> select DEGREES(PI());
@item RADIANS(X)
Returns the argument @code{X}, converted from degrees to radians:
@example
-mysql> select RADIANS(90);
+mysql> SELECT RADIANS(90);
-> 1.570796
@end example
@@ -31658,11 +32004,11 @@ mysql> select RADIANS(90);
Returns the number @code{X}, truncated to @code{D} decimals. If @code{D}
is @code{0}, the result will have no decimal point or fractional part:
@example
-mysql> select TRUNCATE(1.223,1);
+mysql> SELECT TRUNCATE(1.223,1);
-> 1.2
-mysql> select TRUNCATE(1.999,1);
+mysql> SELECT TRUNCATE(1.999,1);
-> 1.9
-mysql> select TRUNCATE(1.999,0);
+mysql> SELECT TRUNCATE(1.999,0);
-> 1
@end example
@@ -31672,7 +32018,7 @@ result:
@cindex rounding errors
@example
-mysql> select TRUNCATE(10.28*100,0);
+mysql> SELECT TRUNCATE(10.28*100,0);
-> 1027
@end example
@@ -31690,11 +32036,11 @@ See @ref{Date and time types} for a description of the range of values
each type has and the valid formats in which date and time values may be
specified.
-Here is an example that uses date functions. The query below selects
+Here is an example that uses date functions. The following query selects
all records with a @code{date_col} value from within the last 30 days:
@example
-mysql> SELECT something FROM table
+mysql> SELECT something FROM tbl_name
WHERE TO_DAYS(NOW()) - TO_DAYS(date_col) <= 30;
@end example
@@ -31707,7 +32053,7 @@ for @code{date} (@code{1} = Sunday, @code{2} = Monday, ... @code{7} =
Saturday). These index values correspond to the ODBC standard:
@example
-mysql> select DAYOFWEEK('1998-02-03');
+mysql> SELECT DAYOFWEEK('1998-02-03');
-> 3
@end example
@@ -31717,9 +32063,9 @@ Returns the weekday index for
@code{date} (@code{0} = Monday, @code{1} = Tuesday, ... @code{6} = Sunday):
@example
-mysql> select WEEKDAY('1997-10-04 22:23:00');
+mysql> SELECT WEEKDAY('1997-10-04 22:23:00');
-> 5
-mysql> select WEEKDAY('1997-11-05');
+mysql> SELECT WEEKDAY('1997-11-05');
-> 2
@end example
@@ -31729,7 +32075,7 @@ Returns the day of the month for @code{date}, in the range @code{1} to
@code{31}:
@example
-mysql> select DAYOFMONTH('1998-02-03');
+mysql> SELECT DAYOFMONTH('1998-02-03');
-> 3
@end example
@@ -31739,7 +32085,7 @@ Returns the day of the year for @code{date}, in the range @code{1} to
@code{366}:
@example
-mysql> select DAYOFYEAR('1998-02-03');
+mysql> SELECT DAYOFYEAR('1998-02-03');
-> 34
@end example
@@ -31748,7 +32094,7 @@ mysql> select DAYOFYEAR('1998-02-03');
Returns the month for @code{date}, in the range @code{1} to @code{12}:
@example
-mysql> select MONTH('1998-02-03');
+mysql> SELECT MONTH('1998-02-03');
-> 2
@end example
@@ -31757,7 +32103,7 @@ mysql> select MONTH('1998-02-03');
Returns the name of the weekday for @code{date}:
@example
-mysql> select DAYNAME("1998-02-05");
+mysql> SELECT DAYNAME("1998-02-05");
-> 'Thursday'
@end example
@@ -31766,7 +32112,7 @@ mysql> select DAYNAME("1998-02-05");
Returns the name of the month for @code{date}:
@example
-mysql> select MONTHNAME("1998-02-05");
+mysql> SELECT MONTHNAME("1998-02-05");
-> 'February'
@end example
@@ -31776,7 +32122,7 @@ Returns the quarter of the year for @code{date}, in the range @code{1}
to @code{4}:
@example
-mysql> select QUARTER('98-04-01');
+mysql> SELECT QUARTER('98-04-01');
-> 2
@end example
@@ -31792,13 +32138,13 @@ second argument is @code{0}, on Monday if the second argument is
@code{1}:
@example
-mysql> select WEEK('1998-02-20');
+mysql> SELECT WEEK('1998-02-20');
-> 7
-mysql> select WEEK('1998-02-20',0);
+mysql> SELECT WEEK('1998-02-20',0);
-> 7
-mysql> select WEEK('1998-02-20',1);
+mysql> SELECT WEEK('1998-02-20',1);
-> 8
-mysql> select WEEK('1998-12-31',1);
+mysql> SELECT WEEK('1998-12-31',1);
-> 53
@end example
@@ -31810,7 +32156,7 @@ calendar in the USA.
Returns the year for @code{date}, in the range @code{1000} to @code{9999}:
@example
-mysql> select YEAR('98-02-03');
+mysql> SELECT YEAR('98-02-03');
-> 1998
@end example
@@ -31822,7 +32168,7 @@ different from the year in the date argument for the first and the last
week of the year:
@example
-mysql> select YEARWEEK('1987-01-01');
+mysql> SELECT YEARWEEK('1987-01-01');
-> 198653
@end example
@@ -31831,7 +32177,7 @@ mysql> select YEARWEEK('1987-01-01');
Returns the hour for @code{time}, in the range @code{0} to @code{23}:
@example
-mysql> select HOUR('10:05:03');
+mysql> SELECT HOUR('10:05:03');
-> 10
@end example
@@ -31840,7 +32186,7 @@ mysql> select HOUR('10:05:03');
Returns the minute for @code{time}, in the range @code{0} to @code{59}:
@example
-mysql> select MINUTE('98-02-03 10:05:03');
+mysql> SELECT MINUTE('98-02-03 10:05:03');
-> 5
@end example
@@ -31849,7 +32195,7 @@ mysql> select MINUTE('98-02-03 10:05:03');
Returns the second for @code{time}, in the range @code{0} to @code{59}:
@example
-mysql> select SECOND('10:05:03');
+mysql> SELECT SECOND('10:05:03');
-> 3
@end example
@@ -31858,10 +32204,10 @@ mysql> select SECOND('10:05:03');
Adds @code{N} months to period @code{P} (in the format @code{YYMM} or
@code{YYYYMM}). Returns a value in the format @code{YYYYMM}.
-Note that the period argument @code{P} is @emph{not} a date value:
+Note that the period argument @code{P} is @strong{not} a date value:
@example
-mysql> select PERIOD_ADD(9801,2);
+mysql> SELECT PERIOD_ADD(9801,2);
-> 199803
@end example
@@ -31870,11 +32216,11 @@ mysql> select PERIOD_ADD(9801,2);
Returns the number of months between periods @code{P1} and @code{P2}.
@code{P1} and @code{P2} should be in the format @code{YYMM} or @code{YYYYMM}.
-Note that the period arguments @code{P1} and @code{P2} are @emph{not}
+Note that the period arguments @code{P1} and @code{P2} are @strong{not}
date values:
@example
-mysql> select PERIOD_DIFF(9802,199703);
+mysql> SELECT PERIOD_DIFF(9802,199703);
-> 11
@end example
@@ -31894,7 +32240,7 @@ Version 3.22. @code{ADDDATE()} and @code{SUBDATE()} are synonyms for
In MySQL Version 3.23, you can use @code{+} and @code{-} instead of
@code{DATE_ADD()} and @code{DATE_SUB()} if the expression on the right side is
-a date or datetime column. (See example)
+a date or datetime column. (See example below.)
@code{date} is a @code{DATETIME} or @code{DATE} value specifying the starting
date. @code{expr} is an expression specifying the interval value to be added
@@ -31908,7 +32254,7 @@ interval from the date.
The following table shows how the @code{type} and @code{expr} arguments
are related:
-@multitable @columnfractions .25 .40
+@multitable @columnfractions .25 .45
@item @code{type} @strong{value} @tab @strong{Expected} @code{expr} @strong{format}
@item @code{SECOND} @tab @code{SECONDS}
@item @code{MINUTE} @tab @code{MINUTES}
@@ -31929,7 +32275,7 @@ MySQL allows any punctuation delimiter in the @code{expr} format.
Those shown in the table are the suggested delimiters. If the @code{date}
argument is a @code{DATE} value and your calculations involve only
@code{YEAR}, @code{MONTH}, and @code{DAY} parts (that is, no time parts), the
-result is a @code{DATE} value. Otherwise the result is a @code{DATETIME}
+result is a @code{DATE} value. Otherwise, the result is a @code{DATETIME}
value:
@example
@@ -31975,9 +32321,9 @@ contains a time part, the date value will be automatically converted to a
datetime value:
@example
-mysql> select date_add("1999-01-01", interval 1 day);
+mysql> SELECT DATE_ADD("1999-01-01", INTERVAL 1 DAY);
-> 1999-01-02
-mysql> select date_add("1999-01-01", interval 1 hour);
+mysql> SELECT DATE_ADD("1999-01-01", INTERVAL 1 HOUR);
-> 1999-01-01 01:00:00
@end example
@@ -31987,12 +32333,12 @@ has a day that is larger than the maximum day for the new month, the day is
adjusted to the maximum days in the new month:
@example
-mysql> select DATE_ADD('1998-01-30', Interval 1 month);
+mysql> SELECT DATE_ADD('1998-01-30', INTERVAL 1 MONTH);
-> 1998-02-28
@end example
Note from the preceding example that the word @code{INTERVAL} and the
-@code{type} keyword are not case sensitive.
+@code{type} keyword are not case-sensitive.
@findex EXTRACT()
@item EXTRACT(type FROM date)
@@ -32016,9 +32362,9 @@ Given a date @code{date}, returns a daynumber (the number of days since year
0):
@example
-mysql> select TO_DAYS(950501);
+mysql> SELECT TO_DAYS(950501);
-> 728779
-mysql> select TO_DAYS('1997-10-07');
+mysql> SELECT TO_DAYS('1997-10-07');
-> 729669
@end example
@@ -32031,7 +32377,7 @@ days that were lost when the calendar was changed.
Given a daynumber @code{N}, returns a @code{DATE} value:
@example
-mysql> select FROM_DAYS(729669);
+mysql> SELECT FROM_DAYS(729669);
-> '1997-10-07'
@end example
@@ -32071,27 +32417,27 @@ following specifiers may be used in the @code{format} string:
@item @code{%s} @tab Seconds (@code{00}..@code{59})
@item @code{%p} @tab @code{AM} or @code{PM}
@item @code{%w} @tab Day of the week (@code{0}=Sunday..@code{6}=Saturday)
-@item @code{%U} @tab Week (@code{0}..@code{53}), where Sunday is the first day of the week
-@item @code{%u} @tab Week (@code{0}..@code{53}), where Monday is the first day of the week
-@item @code{%V} @tab Week (@code{1}..@code{53}), where Sunday is the first day of the week. Used with '%X'
-@item @code{%v} @tab Week (@code{1}..@code{53}), where Monday is the first day of the week. Used with '%x'
+@item @code{%U} @tab Week (@code{00}..@code{53}), where Sunday is the first day of the week
+@item @code{%u} @tab Week (@code{00}..@code{53}), where Monday is the first day of the week
+@item @code{%V} @tab Week (@code{01}..@code{53}), where Sunday is the first day of the week. Used with '%X'
+@item @code{%v} @tab Week (@code{01}..@code{53}), where Monday is the first day of the week. Used with '%x'
@item @code{%%} @tab A literal @samp{%}.
@end multitable
All other characters are just copied to the result without interpretation:
@example
-mysql> select DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y');
+mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', '%W %M %Y');
-> 'Saturday October 1997'
-mysql> select DATE_FORMAT('1997-10-04 22:23:00', '%H:%i:%s');
+mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00', '%H:%i:%s');
-> '22:23:00'
-mysql> select DATE_FORMAT('1997-10-04 22:23:00',
+mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00',
'%D %y %a %d %m %b %j');
-> '4th 97 Sat 04 10 Oct 277'
-mysql> select DATE_FORMAT('1997-10-04 22:23:00',
+mysql> SELECT DATE_FORMAT('1997-10-04 22:23:00',
'%H %k %I %r %T %S %w');
-> '22 22 10 10:23:00 PM 22:23:00 00 6'
-mysql> select DATE_FORMAT('1999-01-01', '%X %V');
+mysql> SELECT DATE_FORMAT('1999-01-01', '%X %V');
-> '1998 52'
@end example
@@ -32115,9 +32461,9 @@ format, depending on whether the function is used in a string or numeric
context:
@example
-mysql> select CURDATE();
+mysql> SELECT CURDATE();
-> '1997-12-15'
-mysql> select CURDATE() + 0;
+mysql> SELECT CURDATE() + 0;
-> 19971215
@end example
@@ -32130,9 +32476,9 @@ format, depending on whether the function is used in a string or numeric
context:
@example
-mysql> select CURTIME();
+mysql> SELECT CURTIME();
-> '23:50:26'
-mysql> select CURTIME() + 0;
+mysql> SELECT CURTIME() + 0;
-> 235026
@end example
@@ -32147,9 +32493,9 @@ or @code{YYYYMMDDHHMMSS} format, depending on whether the function is used in
a string or numeric context:
@example
-mysql> select NOW();
+mysql> SELECT NOW();
-> '1997-12-15 23:50:26'
-mysql> select NOW() + 0;
+mysql> SELECT NOW() + 0;
-> 19971215235026
@end example
@@ -32165,17 +32511,18 @@ returns the value of the argument as seconds since @code{'1970-01-01
@code{YYMMDD} or @code{YYYYMMDD} in local time:
@example
-mysql> select UNIX_TIMESTAMP();
+mysql> SELECT UNIX_TIMESTAMP();
-> 882226357
-mysql> select UNIX_TIMESTAMP('1997-10-04 22:23:00');
+mysql> SELECT UNIX_TIMESTAMP('1997-10-04 22:23:00');
-> 875996580
@end example
When @code{UNIX_TIMESTAMP} is used on a @code{TIMESTAMP} column, the function
will return the internal timestamp value directly, with no implicit
``string-to-unix-timestamp'' conversion.
-If you give @code{UNIX_TIMESTAMP()} a wrong or out-of-range date, it will
-return 0.
+If you pass an out-of-range date to @code{UNIX_TIMESTAMP()} it will
+return 0, but please note that only basic checking is performed
+(year 1970-2037, month 01-12, day 01-31).
If you want to subtract @code{UNIX_TIMESTAMP()} columns, you may want to
cast the result to signed integers. @xref{Cast Functions}.
@@ -32187,9 +32534,9 @@ Returns a representation of the @code{unix_timestamp} argument as a value in
whether the function is used in a string or numeric context:
@example
-mysql> select FROM_UNIXTIME(875996580);
+mysql> SELECT FROM_UNIXTIME(875996580);
-> '1997-10-04 22:23:00'
-mysql> select FROM_UNIXTIME(875996580) + 0;
+mysql> SELECT FROM_UNIXTIME(875996580) + 0;
-> 19971004222300
@end example
@@ -32200,7 +32547,7 @@ the @code{format} string. @code{format} may contain the same specifiers as
those listed in the entry for the @code{DATE_FORMAT()} function:
@example
-mysql> select FROM_UNIXTIME(UNIX_TIMESTAMP(),
+mysql> SELECT FROM_UNIXTIME(UNIX_TIMESTAMP(),
'%Y %D %M %h:%i:%s %x');
-> '1997 23rd December 03:43:30 1997'
@end example
@@ -32212,9 +32559,9 @@ as a value in @code{'HH:MM:SS'} or @code{HHMMSS} format, depending on whether
the function is used in a string or numeric context:
@example
-mysql> select SEC_TO_TIME(2378);
+mysql> SELECT SEC_TO_TIME(2378);
-> '00:39:38'
-mysql> select SEC_TO_TIME(2378) + 0;
+mysql> SELECT SEC_TO_TIME(2378) + 0;
-> 3938
@end example
@@ -32223,9 +32570,9 @@ mysql> select SEC_TO_TIME(2378) + 0;
Returns the @code{time} argument, converted to seconds:
@example
-mysql> select TIME_TO_SEC('22:23:00');
+mysql> SELECT TIME_TO_SEC('22:23:00');
-> 80580
-mysql> select TIME_TO_SEC('00:39:38');
+mysql> SELECT TIME_TO_SEC('00:39:38');
-> 2378
@end example
@end table
@@ -32274,38 +32621,38 @@ CREATE TABLE new_table SELECT CAST('2000-01-01' AS DATE);
@code{CAST(string AS BINARY} is the same thing as @code{BINARY string}.
To cast a string to a numeric value, you don't normally have to do
-anything; Just use the string value as it would be a number:
+anything; just use the string value as it would be a number:
@example
-mysql> select 1+'1';
+mysql> SELECT 1+'1';
-> 2
@end example
-MySQL supports arithmetic with both signed and unsigned 64 bit values.
+MySQL supports arithmetic with both signed and unsigned 64-bit values.
If you are using an numerical operations (like @code{+}) and one of the
operands are @code{unsigned integer}, then the result will be unsigned.
You can override this by using the @code{SIGNED} and @code{UNSIGNED}
-cast operators, which will cast the operation to signed respective
-unsigned 64 bit integer.
+cast operators, which will cast the operation to a signed or
+unsigned 64-bit integer, respectively.
@example
-mysql> select CAST(1-2 AS UNSIGNED)
+mysql> SELECT CAST(1-2 AS UNSIGNED)
-> 18446744073709551615
-mysql select CAST(CAST(1-2 AS UNSIGNED) AS SIGNED);
+mysql> SELECT CAST(CAST(1-2 AS UNSIGNED) AS SIGNED);
-> -1
@end example
-Note that if either operation is a floating point value (In this context
-@code{DECIMAL()} is regarded as a floating point value) the result will
-be a floating point value and is not affected by the above rule.
+Note that if either operation is a floating-point value (In this context
+@code{DECIMAL()} is regarded as a floating-point value) the result will
+be a floating-point value and is not affected by the above rule.
@example
-mysql> select CAST(1 AS UNSIGNED) -2.0
+mysql> SELECT CAST(1 AS UNSIGNED) -2.0
-> -1.0
@end example
If you are using a string in an arithmetic operation, this is converted
-to a floating point number.
+to a floating-point number.
The @code{CAST()} and @code{CONVERT()} functions were added in MySQL 4.0.2.
@@ -32319,7 +32666,7 @@ result when subtracting two unsigned integer columns:
SELECT (unsigned_column_1+0.0)-(unsigned_column_2+0.0);
@end example
-The idea is that the columns are converted to floating point before doing
+The idea is that the columns are converted to floating-point before doing
the subtraction.
If you get a problem with @code{UNSIGNED} columns in your old MySQL
@@ -32354,58 +32701,58 @@ these operators have a maximum range of 64 bits.
@item |
Bitwise OR
@example
-mysql> select 29 | 15;
+mysql> SELECT 29 | 15;
-> 31
@end example
-The result is an unsigned 64 bit integer.
+The result is an unsigned 64-bit integer.
@findex & (bitwise AND)
@findex AND, bitwise
@item &
Bitwise AND:
@example
-mysql> select 29 & 15;
+mysql> SELECT 29 & 15;
-> 13
@end example
-The result is an unsigned 64 bit integer.
+The result is an unsigned 64-bit integer.
@findex << (left shift)
@item <<
Shifts a longlong (@code{BIGINT}) number to the left:
@example
-mysql> select 1 << 2;
+mysql> SELECT 1 << 2;
-> 4
@end example
-The result is an unsigned 64 bit integer.
+The result is an unsigned 64-bit integer.
@findex >> (right shift)
@item >>
Shifts a longlong (@code{BIGINT}) number to the right:
@example
-mysql> select 4 >> 2;
+mysql> SELECT 4 >> 2;
-> 1
@end example
-The result is an unsigned 64 bit integer.
+The result is an unsigned 64-bit integer.
@findex ~
@item ~
Invert all bits:
@example
-mysql> select 5 & ~1;
+mysql> SELECT 5 & ~1;
-> 4
@end example
-The result is an unsigned 64 bit integer.
+The result is an unsigned 64-bit integer.
@findex BIT_COUNT()
@item BIT_COUNT(N)
Returns the number of bits that are set in the argument @code{N}:
@example
-mysql> select BIT_COUNT(29);
+mysql> SELECT BIT_COUNT(29);
-> 4
@end example
@end table
@@ -32423,7 +32770,7 @@ mysql> select BIT_COUNT(29);
Returns the current database name:
@example
-mysql> select DATABASE();
+mysql> SELECT DATABASE();
-> 'test'
@end example
@@ -32438,16 +32785,16 @@ If there is no current database, @code{DATABASE()} returns the empty string.
Returns the current MySQL user name:
@example
-mysql> select USER();
+mysql> SELECT USER();
-> 'davida@@localhost'
@end example
In MySQL Version 3.22.11 or later, this includes the client hostname
as well as the user name. You can extract just the user name part like this
-(which works whether or not the value includes a hostname part):
+(which works whether the value includes a hostname part):
@example
-mysql> select substring_index(USER(),"@@",1);
+mysql> SELECT SUBSTRING_INDEX(USER(),"@@",1);
-> 'davida'
@end example
@@ -32458,7 +32805,7 @@ the function that is used for encrypting MySQL passwords for storage
in the @code{Password} column of the @code{user} grant table:
@example
-mysql> select PASSWORD('badpwd');
+mysql> SELECT PASSWORD('badpwd');
-> '7f84554057dd964b'
@end example
@@ -32478,7 +32825,7 @@ Encrypt @code{str} using the Unix @code{crypt()} system call. The
(As of MySQL Version 3.22.16, @code{salt} may be longer than two characters.):
@example
-mysql> select ENCRYPT("hello");
+mysql> SELECT ENCRYPT("hello");
-> 'VxuFAJXVARROc'
@end example
@@ -32509,7 +32856,7 @@ Calculates a MD5 checksum for the string. Value is returned as a 32 long
hex number that may, for example, be used as a hash key:
@example
-mysql> select MD5("testing");
+mysql> SELECT MD5("testing");
-> 'ae2b1fca515949e5d54fb22b8ed95575'
@end example
@@ -32526,7 +32873,7 @@ SSL support. @xref{Secure connections}.
The encryption key to use is chosen the following way:
-@multitable @columnfractions .20 .65
+@multitable @columnfractions .25 .65
@item @strong{Argument} @tab @strong{Description}
@item Only one argument @tab
The first key from @code{des-key-file} is used.
@@ -32585,7 +32932,7 @@ If no @code{key_string} argument is given, @code{DES_DECRYPT()} examines
the first byte of the encrypted string to determine the DES key number
that was used to encrypt the original string, then reads the key
from the @code{des-key-file} to decrypt the message. For this to work
-the user must have the @code{Process_priv} privilege.
+the user must have the @strong{process} privilege.
If you pass this function a @code{key_string} argument, that string
is used as the key for decrypting the message.
@@ -32602,7 +32949,7 @@ Returns the last automatically generated value that was inserted into an
@xref{mysql_insert_id,, @code{mysql_insert_id()}}.
@example
-mysql> select LAST_INSERT_ID();
+mysql> SELECT LAST_INSERT_ID();
-> 195
@end example
@@ -32620,19 +32967,19 @@ the same @code{INSERT} statement against some other server.
If @code{expr} is given as an argument to @code{LAST_INSERT_ID()}, then
the value of the argument is returned by the function, is set as the
next value to be returned by @code{LAST_INSERT_ID()} and used as the next
-auto_increment value. This can be used to simulate sequences:
+@code{AUTO_INCREMENT} value. This can be used to simulate sequences:
First create the table:
@example
-mysql> create table sequence (id int not null);
-mysql> insert into sequence values (0);
+mysql> CREATE TABLE sequence (id INT NOT NULL);
+mysql> INSERT INTO sequence VALUES (0);
@end example
Then the table can be used to generate sequence numbers like this:
@example
-mysql> update sequence set id=LAST_INSERT_ID(id+1);
+mysql> UPDATE sequence SET id=LAST_INSERT_ID(id+1);
@end example
You can generate sequences without calling @code{LAST_INSERT_ID()}, but the
@@ -32656,11 +33003,11 @@ to @code{D} decimals. If @code{D} is @code{0}, the result will have no
decimal point or fractional part:
@example
-mysql> select FORMAT(12332.123456, 4);
+mysql> SELECT FORMAT(12332.123456, 4);
-> '12,332.1235'
-mysql> select FORMAT(12332.1,4);
+mysql> SELECT FORMAT(12332.1,4);
-> '12,332.1000'
-mysql> select FORMAT(12332.2,0);
+mysql> SELECT FORMAT(12332.2,0);
-> '12,332'
@end example
@@ -32669,7 +33016,7 @@ mysql> select FORMAT(12332.2,0);
Returns a string indicating the MySQL server version:
@example
-mysql> select VERSION();
+mysql> SELECT VERSION();
-> '3.23.13-log'
@end example
@@ -32682,7 +33029,7 @@ Returns the connection id (@code{thread_id}) for the connection.
Every connection has its own unique id:
@example
-mysql> select CONNECTION_ID();
+mysql> SELECT CONNECTION_ID();
-> 1
@end example
@@ -32701,13 +33048,13 @@ the same name; clients that agree on a given lock string name can use the
string to perform cooperative advisory locking:
@example
-mysql> select GET_LOCK("lock1",10);
+mysql> SELECT GET_LOCK("lock1",10);
-> 1
-mysql> select GET_LOCK("lock2",10);
+mysql> SELECT GET_LOCK("lock2",10);
-> 1
-mysql> select RELEASE_LOCK("lock2");
+mysql> SELECT RELEASE_LOCK("lock2");
-> 1
-mysql> select RELEASE_LOCK("lock1");
+mysql> SELECT RELEASE_LOCK("lock1");
-> NULL
@end example
@@ -32735,9 +33082,9 @@ processes the expression. The result value is always @code{0}. The intended
use is in the @code{mysql} client, which reports query execution times:
@example
-mysql> select BENCHMARK(1000000,encode("hello","goodbye"));
+mysql> SELECT BENCHMARK(1000000,ENCODE("hello","goodbye"));
+----------------------------------------------+
-| BENCHMARK(1000000,encode("hello","goodbye")) |
+| BENCHMARK(1000000,ENCODE("hello","goodbye")) |
+----------------------------------------------+
| 0 |
+----------------------------------------------+
@@ -32755,7 +33102,7 @@ Given a numeric network address (4 or 8 byte), returns the dotted-quad
representation of the address as a string:
@example
-mysql> select INET_NTOA(3520061480);
+mysql> SELECT INET_NTOA(3520061480);
-> "209.207.224.40"
@end example
@@ -32766,11 +33113,11 @@ returns an integer that represents the numeric value of the address.
Addresses may be 4 or 8 byte addresses:
@example
-mysql> select INET_ATON("209.207.224.40");
+mysql> SELECT INET_ATON("209.207.224.40");
-> 3520061480
@end example
-The generated number is always in network byte order; For example the
+The generated number is always in network byte order; for example the
above number is calculated as @code{209*256^3 + 207*256^2 + 224*256 +40}.
@findex MASTER_POS_WAIT()
@@ -32792,7 +33139,7 @@ Returns the number of rows that the last @code{SELECT SQL_CALC_FOUND_ROWS ...}
command would have returned, if wasn't restricted with @code{LIMIT}.
@example
-mysql> SELECT SQL_CALC_FOUND_ROWS * FROM table_name
+mysql> SELECT SQL_CALC_FOUND_ROWS * FROM tbl_name
WHERE id > 100 LIMIT 10;
mysql> SELECT FOUND_ROWS();
@end example
@@ -32832,7 +33179,7 @@ mysql> SELECT student.student_name,COUNT(*)
@end example
@code{COUNT(*)} is somewhat different in that it returns a count of
-the number of rows retrieved, whether or not they contain @code{NULL}
+the number of rows retrieved, whether they contain @code{NULL}
values.
@code{COUNT(*)} is optimised to
@@ -32841,7 +33188,7 @@ other columns are retrieved, and there is no @code{WHERE} clause.
For example:
@example
-mysql> select COUNT(*) from student;
+mysql> SELECT COUNT(*) FROM student;
@end example
@findex COUNT(DISTINCT)
@@ -32850,7 +33197,7 @@ mysql> select COUNT(*) from student;
Returns a count of the number of different non-@code{NULL} values:
@example
-mysql> select COUNT(DISTINCT results) from student;
+mysql> SELECT COUNT(DISTINCT results) FROM student;
@end example
In MySQL you can get the number of distinct expression
@@ -32863,8 +33210,8 @@ inside @code{CODE(DISTINCT ...)}.
Returns the average value of @code{expr}:
@example
-mysql> select student_name, AVG(test_score)
- -> from student
+mysql> SELECT student_name, AVG(test_score)
+ -> FROM student
-> GROUP BY student_name;
@end example
@@ -32877,8 +33224,8 @@ Returns the minimum or maximum value of @code{expr}. @code{MIN()} and
minimum or maximum string value. @xref{MySQL indexes}.
@example
-mysql> select student_name, MIN(test_score), MAX(test_score)
- -> from student
+mysql> SELECT student_name, MIN(test_score), MAX(test_score)
+ -> FROM student
-> GROUP BY student_name;
@end example
@@ -32917,9 +33264,9 @@ grouping on unnecessary items. For example, you don't need to group on
@code{customer.name} in the following query:
@example
-mysql> select order.custid,customer.name,max(payments)
- -> from order,customer
- -> where order.custid = customer.custid
+mysql> SELECT order.custid,customer.name,MAX(payments)
+ -> FROM order,customer
+ -> WHERE order.custid = customer.custid
-> GROUP BY order.custid;
@end example
@@ -32937,7 +33284,7 @@ column value even if it isn't unique. The following gives the value of
column:
@example
-substr(MIN(concat(rpad(sort,6,' '),column)),7)
+SUBSTR(MIN(CONCAT(RPAD(sort,6,' '),column)),7)
@end example
@xref{example-Maximum-column-group-row}.
@@ -33031,8 +33378,8 @@ is used as the expression's column name and can be used with
@code{ORDER BY} or @code{HAVING} clauses. For example:
@example
-mysql> select concat(last_name,', ',first_name) AS full_name
- from mytable ORDER BY full_name;
+mysql> SELECT CONCAT(last_name,', ',first_name) AS full_name
+ FROM mytable ORDER BY full_name;
@end example
@item
@@ -33078,10 +33425,10 @@ forms.
A table reference may be aliased using @code{tbl_name [AS] alias_name}:
@example
-mysql> select t1.name, t2.salary from employee AS t1, info AS t2
- -> where t1.name = t2.name;
-mysql> select t1.name, t2.salary from employee t1, info t2
- -> where t1.name = t2.name;
+mysql> SELECT t1.name, t2.salary FROM employee AS t1, info AS t2
+ -> WHERE t1.name = t2.name;
+mysql> SELECT t1.name, t2.salary FROM employee t1, info t2
+ -> WHERE t1.name = t2.name;
@end example
@item
@@ -33090,11 +33437,11 @@ Columns selected for output may be referred to in @code{ORDER BY} and
positions. Column positions begin with 1:
@example
-mysql> select college, region, seed from tournament
+mysql> SELECT college, region, seed FROM tournament
-> ORDER BY region, seed;
-mysql> select college, region AS r, seed AS s from tournament
+mysql> SELECT college, region AS r, seed AS s FROM tournament
-> ORDER BY r, s;
-mysql> select college, region, seed from tournament
+mysql> SELECT college, region, seed FROM tournament
-> ORDER BY 2, 3;
@end example
@@ -33114,26 +33461,26 @@ the client, with no optimisation. Don't use @code{HAVING} for items that
should be in the @code{WHERE} clause. For example, do not write this:
@example
-mysql> select col_name from tbl_name HAVING col_name > 0;
+mysql> SELECT col_name FROM tbl_name HAVING col_name > 0;
@end example
Write this instead:
@example
-mysql> select col_name from tbl_name WHERE col_name > 0;
+mysql> SELECT col_name FROM tbl_name WHERE col_name > 0;
@end example
In MySQL Version 3.22.5 or later, you can also write queries like this:
@example
-mysql> select user,max(salary) from users
- -> group by user HAVING max(salary)>10;
+mysql> SELECT user,MAX(salary) FROM users
+ -> GROUP BY user HAVING MAX(salary)>10;
@end example
In older MySQL versions, you can write this instead:
@example
-mysql> select user,max(salary) AS sum from users
+mysql> SELECT user,MAX(salary) AS sum FROM users
-> group by user HAVING sum>10;
@end example
@@ -33209,20 +33556,6 @@ read the @code{GROUP BY} description.
@item
@cindex hints
-@code{SQL_BUFFER_RESULT} will force the result to be put into a temporary
-table. This will help MySQL free the table locks early and will help
-in cases where it takes a long time to send the result set to the client.
-
-@item
-@cindex hints
-@code{SQL_SMALL_RESULT}, a MySQL-specific option, can be used
-with @code{GROUP BY} or @code{DISTINCT} to tell the optimiser that the
-result set will be small. In this case, MySQL will use fast
-temporary tables to store the resulting table instead of using sorting. In
-MySQL Version 3.23 this shouldn't normally be needed.
-
-@item
-@cindex hints
@code{STRAIGHT_JOIN} forces the optimiser to join the tables in the order in
which they are listed in the @code{FROM} clause. You can use this to speed up
a query if the optimiser joins the tables in non-optimal order.
@@ -33238,13 +33571,13 @@ return, the second specifies the maximum number of rows to return.
The offset of the initial row is 0 (not 1):
@example
-mysql> select * from table LIMIT 5,10; # Retrieve rows 6-15
+mysql> SELECT * FROM table LIMIT 5,10; # Retrieve rows 6-15
@end example
If one argument is given, it indicates the maximum number of rows to return:
@example
-mysql> select * from table LIMIT 5; # Retrieve first 5 rows
+mysql> SELECT * FROM table LIMIT 5; # Retrieve first 5 rows
@end example
In other words, @code{LIMIT n} is equivalent to @code{LIMIT 0,n}.
@@ -33390,8 +33723,8 @@ A table reference may be aliased using @code{tbl_name AS alias_name} or
@code{tbl_name alias_name}:
@example
-mysql> select t1.name, t2.salary from employee AS t1, info AS t2
- -> where t1.name = t2.name;
+mysql> SELECT t1.name, t2.salary FROM employee AS t1, info AS t2
+ -> WHERE t1.name = t2.name;
@end example
@item
@@ -33405,9 +33738,9 @@ If there is no matching record for the right table in the @code{ON} or
records in a table that have no counterpart in another table:
@example
-mysql> select table1.* from table1
+mysql> SELECT table1.* FROM table1
-> LEFT JOIN table2 ON table1.id=table2.id
- -> where table2.id is NULL;
+ -> WHERE table2.id IS NULL;
@end example
This example finds all rows in @code{table1} with an @code{id} value that is
@@ -33514,7 +33847,7 @@ Only the last @code{SELECT} command can have @code{INTO OUTFILE}.
@end itemize
If you don't use the keyword @code{ALL} for the @code{UNION}, all
-returned rows will be unique, as if if you had done a @code{DISTINCT} for
+returned rows will be unique, as if you had done a @code{DISTINCT} for
the total result set. If you specify @code{ALL}, then you will get all
matching rows from all the used @code{SELECT} statements.
@@ -33533,47 +33866,51 @@ ORDER BY a;
@subsection @code{HANDLER} Syntax
@example
-HANDLER table OPEN [ AS alias ]
-HANDLER table READ index @{ = | >= | <= | < @} (value1, value2, ... )
-[ WHERE ... ] [LIMIT ... ]
-
-HANDLER table READ index @{ FIRST | NEXT | PREV | LAST @}
-[ WHERE ... ] [LIMIT ... ]
-
-HANDLER table READ @{ FIRST | NEXT @} [ WHERE ... ] [LIMIT ... ]
-HANDLER table CLOSE
+HANDLER tbl_name OPEN [ AS alias ]
+HANDLER tbl_name READ index_name @{ = | >= | <= | < @} (value1,value2,...)
+ [ WHERE ... ] [LIMIT ... ]
+HANDLER tbl_name READ index_name @{ FIRST | NEXT | PREV | LAST @}
+ [ WHERE ... ] [LIMIT ... ]
+HANDLER tbl_name READ @{ FIRST | NEXT @}
+ [ WHERE ... ] [LIMIT ... ]
+HANDLER tbl_name CLOSE
@end example
-The @code{HANDLER} statement provides direct access to MySQL table
-interface, bypassing SQL optimiser. Thus, it is faster then SELECT.
+The @code{HANDLER} statement provides direct access to the @code{MyISAM} table
+handler interface, bypassing the SQL optimiser. Thus, it is faster than
+@code{SELECT}.
The first form of @code{HANDLER} statement opens a table, making
-in accessible via the following @code{HANDLER ... READ} routines.
-This table object is not shared by other threads an will not be closed
-until the thread calls @code{HANDLER table_name CLOSE} or the thread dies.
+it accessible via subsequent @code{HANDLER ... READ} statements.
+This table object is not shared by other threads and will not be closed
+until the thread calls @code{HANDLER tbl_name CLOSE} or the thread dies.
+
+@c FIX The sentence below needs to be rewritten. The reference to "the condition" is not clear.
+@c FIX Also all mentions of the LIMIT clause need to be clarified in various sentences below.
-The second form fetches one (or, specified by @code{LIMIT} clause) row
+The second form fetches one row (or more, specified by @code{LIMIT} clause)
where the index specified complies to the condition and @code{WHERE}
condition is met. If the index consists of several parts (spans over
several columns) the values are specified in comma-separated list,
providing values only for few first columns is possible.
-The third form fetches one (or, specified by @code{LIMIT} clause) row
+The third form fetches one row (or more, specified by @code{LIMIT} clause)
from the table in index order, matching @code{WHERE} condition.
-The fourth form (without index specification) fetches one (or, specified
-by @code{LIMIT} clause) row from the table in natural row order (as stored
-in data file) matching @code{WHERE} condition. It is faster than
-@code{HANDLER table READ index} when full table scan is desired.
+The fourth form (without index specification) fetches one row (or more, specified
+by @code{LIMIT} clause) from the table in natural row order (as stored
+in datafile) matching @code{WHERE} condition. It is faster than
+@code{HANDLER tbl_name READ index_name} when a full table scan is desired.
-The last form closes the table, opened with @code{HANDLER ... OPEN}.
+@code{HANDLER ... CLOSE} closes a table that was opened with
+@code{HANDLER ... OPEN}.
-@code{HANDLER} is somewhat of a low-level statement, for example it does
-not provide consistency, that is @code{HANDLER ... OPEN} does @strong{NOT}
+@code{HANDLER} is a somewhat low-level statement. For example, it does
+not provide consistency. That is, @code{HANDLER ... OPEN} does @strong{NOT}
take a snapshot of the table, and does @strong{NOT} lock the table. This
means that after a @code{HANDLER ... OPEN} is issued, table data can be
-modified (by this or an other thread) and these modifications may only
-partially appear in @code{HANDLER ... NEXT} or @code{HANDLER ... PREV} scans.
+modified (by this or any other thread) and these modifications may appear
+only partially in @code{HANDLER ... NEXT} or @code{HANDLER ... PREV} scans.
@node INSERT, INSERT DELAYED, HANDLER, Data Manipulation
@@ -33674,7 +34011,7 @@ with the @code{mysql_insert_id} function.
If you use @code{INSERT ... SELECT} or an @code{INSERT ... VALUES}
statement with multiple value lists, you can use the C API function
@code{mysql_info()} to get information about the query. The format of the
-information string is shown below:
+information string is shown here:
@example
Records: 100 Duplicates: 0 Warnings: 0
@@ -33784,7 +34121,7 @@ Version 3.22.15. It is a MySQL extension to ANSI SQL92.
@code{INSERT DELAYED} only works with @code{ISAM} and @code{MyISAM}
tables. Note that as @code{MyISAM} tables supports concurrent
@code{SELECT} and @code{INSERT}, if there is no free blocks in the
-middle of the data file, you very seldom need to use @code{INSERT
+middle of the datafile, you very seldom need to use @code{INSERT
DELAYED} with @code{MyISAM}. @xref{MyISAM}.
When you use @code{INSERT DELAYED}, the client will get an OK at once
@@ -33812,7 +34149,7 @@ thread is created to process all @code{DELAYED} statements for the table, if
no such handler already exists.
@item
-The thread checks whether or not the handler has acquired a @code{DELAYED}
+The thread checks whether the handler has acquired a @code{DELAYED}
lock already; if not, it tells the handler thread to do so. The
@code{DELAYED} lock can be obtained even if other threads have a @code{READ}
or @code{WRITE} lock on the table. However, the handler will wait for all
@@ -33839,7 +34176,7 @@ the first row is inserted.
@item
After every @code{delayed_insert_limit} rows are written, the handler checks
-whether or not any @code{SELECT} statements are still pending. If so, it
+whether any @code{SELECT} statements are still pending. If so, it
allows these to execute before continuing.
@cindex delayed_insert_limit
@@ -33865,7 +34202,6 @@ table before exiting. During this time it will not accept any new
@code{INSERT} commands from another thread. If you execute an @code{INSERT
DELAYED} command after this, a new handler thread will be created.
-@item
Note that the above means that @code{INSERT DELAYED} commands have higher
priority than normal @code{INSERT} commands if there is an @code{INSERT
DELAYED} handler already running! Other update commands will have to wait
@@ -33876,7 +34212,7 @@ thread (with @code{KILL thread_id}), or someone executes @code{FLUSH TABLES}.
The following status variables provide information about @code{INSERT
DELAYED} commands:
-@multitable @columnfractions .30 .50
+@multitable @columnfractions .30 .55
@item @strong{Variable} @tab @strong{Meaning}
@item @code{Delayed_insert_threads} @tab Number of handler threads
@item @code{Delayed_writes} @tab Number of rows written with @code{INSERT DELAYED}
@@ -33901,7 +34237,7 @@ DELAYED} when you are really sure you need it!
@example
UPDATE [LOW_PRIORITY] [IGNORE] tbl_name
- SET col_name1=expr1, [col_name2=expr2, ...]
+ SET col_name1=expr1 [, col_name2=expr2, ...]
[WHERE where_definition]
[LIMIT #]
@end example
@@ -33909,7 +34245,7 @@ UPDATE [LOW_PRIORITY] [IGNORE] tbl_name
@code{UPDATE} updates columns in existing table rows with new values.
The @code{SET} clause indicates which columns to modify and the values
they should be given. The @code{WHERE} clause, if given, specifies
-which rows should be updated. Otherwise all rows are updated. If the
+which rows should be updated. Otherwise, all rows are updated. If the
@code{ORDER BY} clause is specified, the rows will be updated in the
order that is specified.
@@ -34003,7 +34339,7 @@ deletes.
In @code{MyISAM} tables, deleted records are maintained in a linked list and
subsequent @code{INSERT} operations reuse old record positions. To
-reclaim unused space and reduce file sizes, use the @code{OPTIMIZE
+reclaim unused space and reduce file-sizes, use the @code{OPTIMIZE
TABLE} statement or the @code{myisamchk} utility to reorganise tables.
@code{OPTIMIZE TABLE} is easier, but @code{myisamchk} is faster. See
@ref{OPTIMIZE TABLE, , @code{OPTIMIZE TABLE}} and @ref{Optimisation}.
@@ -34066,8 +34402,8 @@ TRUNCATE TABLE table_name
In 3.23 @code{TRUNCATE TABLE} is mapped to
@code{COMMIT ; DELETE FROM table_name}. @xref{DELETE}.
-The differences between @code{TRUNCATE TABLE} and @code{DELETE FROM ...}
-are:
+@code{TRUNCATE TABLE} differs from @code{DELETE FROM ...}
+in the following ways:
@itemize @bullet
@item
@@ -34178,9 +34514,9 @@ example the output from gunzip), use @code{LOAD DATA LOCAL INFILE}
instead.
@cindex @code{mysqlimport}
-You can also load data files by using the @code{mysqlimport} utility; it
+You can also load datafiles by using the @code{mysqlimport} utility; it
operates by sending a @code{LOAD DATA INFILE} command to the server. The
-@code{--local} option causes @code{mysqlimport} to read data files from the
+@code{--local} option causes @code{mysqlimport} to read datafiles from the
client host. You can specify the @code{--compress} option to get better
performance over slow networks if the client and server support the
compressed protocol.
@@ -34300,7 +34636,7 @@ The @code{IGNORE number LINES} option can be used to ignore a header of
column names at the start of the file:
@example
-mysql> LOAD DATA INFILE "/tmp/file_name" into table test IGNORE 1 LINES;
+mysql> LOAD DATA INFILE "/tmp/file_name" INTO TABLE test IGNORE 1 LINES;
@end example
When you use @code{SELECT ... INTO OUTFILE} in tandem with @code{LOAD
@@ -34324,7 +34660,7 @@ mysql> LOAD DATA INFILE 'data.txt' INTO TABLE table2
-> FIELDS TERMINATED BY ',';
@end example
-If instead you tried to read in the file with the statement shown below, it
+If instead you tried to read in the file with the statement shown here, it
wouldn't work because it instructs @code{LOAD DATA INFILE} to look for
tabs between fields:
@@ -34339,7 +34675,7 @@ a single field.
@code{LOAD DATA INFILE} can be used to read files obtained from
external sources, too. For example, a file in dBASE format will have
fields separated by commas and enclosed in double quotes. If lines in
-the file are terminated by newlines, the command shown below
+the file are terminated by newlines, the command shown here
illustrates the field and line handling options you would use to load
the file:
@@ -34362,17 +34698,17 @@ For example, to read a file of jokes, that are separated with a line
of @code{%%}, into a SQL table you can do:
@example
-create table jokes (a int not null auto_increment primary key, joke text
-not null);
-load data infile "/tmp/jokes.txt" into table jokes fields terminated by ""
-lines terminated by "\n%%\n" (joke);
+CREATE TABLE jokes (a INT NOT NULL AUTO_INCREMENT PRIMARY KEY, joke TEXT
+NOT NULL);
+LOAD DATA INFILE "/tmp/jokes.txt" INTO TABLE jokes FIELDS TERMINATED BY ""
+LINES TERMINATED BY "\n%%\n" (joke);
@end example
@code{FIELDS [OPTIONALLY] ENCLOSED BY} controls quoting of fields. For
output (@code{SELECT ... INTO OUTFILE}), if you omit the word
@code{OPTIONALLY}, all fields are enclosed by the @code{ENCLOSED BY}
character. An example of such output (using a comma as the field
-delimiter) is shown below:
+delimiter) is shown here:
@example
"1","a string","100.20"
@@ -34396,7 +34732,7 @@ field value are escaped by prefixing them with the @code{ESCAPED BY}
character. Also note that if you specify an empty @code{ESCAPED BY}
value, it is possible to generate output that cannot be read properly by
@code{LOAD DATA INFILE}. For example, the output just shown above would
-appear as shown below if the escape character is empty. Observe that the
+appear as shown here if the escape character is empty. Observe that the
second field in the fourth line contains a comma following the quote, which
(erroneously) appears to terminate the field:
@@ -34408,14 +34744,14 @@ second field in the fourth line contains a comma following the quote, which
@end example
For input, the @code{ENCLOSED BY} character, if present, is stripped from the
-ends of field values. (This is true whether or not @code{OPTIONALLY} is
+ends of field values. (This is true whether @code{OPTIONALLY} is
specified; @code{OPTIONALLY} has no effect on input interpretation.)
Occurrences of the @code{ENCLOSED BY} character preceded by the
@code{ESCAPED BY} character are interpreted as part of the current field
value. In addition, duplicated @code{ENCLOSED BY} characters occurring
within fields are interpreted as single @code{ENCLOSED BY} characters if the
field itself starts with that character. For example, if @code{ENCLOSED BY
-'"'} is specified, quotes are handled as shown below:
+'"'} is specified, quotes are handled as shown here:
@example
"The ""BIG"" boss" -> The "BIG" boss
@@ -34588,7 +34924,7 @@ specified as strings!
@findex mysql_info()
If you are using the C API, you can get information about the query by
calling the API function @code{mysql_info()} when the @code{LOAD DATA INFILE}
-query finishes. The format of the information string is shown below:
+query finishes. The format of the information string is shown here:
@example
Records: 1 Deleted: 0 Skipped: 0 Warnings: 0
@@ -34809,7 +35145,7 @@ allowable table names are given in @ref{Legal names}. An error occurs if
there is no current database or if the table already exists.
In MySQL Version 3.22 or later, the table name can be specified as
-@code{db_name.tbl_name}. This works whether or not there is a current
+@code{db_name.tbl_name}. This works whether there is a current
database.
In MySQL Version 3.23, you can use the @code{TEMPORARY} keyword when
@@ -34830,7 +35166,7 @@ directory. In the case of MyISAM-type tables you will get:
@multitable @columnfractions .20 .30
@item @strong{File} @tab @strong{Purpose}
@item @code{tbl_name.frm} @tab Table definition (form) file
-@item @code{tbl_name.MYD} @tab Data file
+@item @code{tbl_name.MYD} @tab Datafile
@item @code{tbl_name.MYI} @tab Index file
@end multitable
@@ -34857,13 +35193,13 @@ If you delete the row containing the maximum value for an
with @code{DELETE FROM table_name} (without a @code{WHERE}) in
@code{AUTOCOMMIT} mode, the sequence starts over for all table types.
-@strong{NOTE:} There can be only one @code{AUTO_INCREMENT} column per
+@strong{Note}: there can be only one @code{AUTO_INCREMENT} column per
table, and it must be indexed. MySQL Version 3.23 will also only
-work properly if the auto_increment column only has positive
+work properly if the @code{AUTO_INCREMENT} column only has positive
values. Inserting a negative number is regarded as inserting a very large
positive number. This is done to avoid precision problems when
numbers 'wrap' over from positive to negative and also to ensure that one
-doesn't accidentally get an auto_increment column that contains 0.
+doesn't accidentally get an @code{AUTO_INCREMENT} column that contains 0.
In MyISAM and BDB tables you can specify @code{AUTO_INCREMENT} secondary
column in a multi-column key. @xref{example-AUTO_INCREMENT}.
@@ -34921,7 +35257,7 @@ column in a table, the default value is the current date and time.
@item
For string types other than @code{ENUM}, the default value is the empty
string. For @code{ENUM}, the default is the first enumeration value (if
-you haven't explicitely specified another default value with the
+you haven't explicitly specified another default value with the
@code{DEFAULT} directive).
@end itemize
@@ -34987,7 +35323,7 @@ Only the @code{MyISAM} table type supports indexing on @code{BLOB} and
@code{TEXT} columns. When putting an index on a @code{BLOB} or @code{TEXT}
column you MUST always specify the length of the index:
@example
-CREATE TABLE test (blob_col BLOB, index(blob_col(10)));
+CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10)));
@end example
@item
@@ -35029,7 +35365,7 @@ implemented in MySQL Version 3.23 and above.
The different table types are:
-@multitable @columnfractions .25 .75
+@multitable @columnfractions .25 .70
@item @strong{Table type} @tab @strong{Description}
@item BDB or Berkeley_db @tab Transaction-safe tables with page locking. @xref{BDB}.
@item HEAP @tab The data for this table is only stored in memory. @xref{HEAP}.
@@ -35051,9 +35387,9 @@ The other table options are used to optimise the behavior of the
table. In most cases, you don't have to specify any of them.
The options work for all table types, if not otherwise indicated:
-@multitable @columnfractions .25 .75
+@multitable @columnfractions .25 .70
@item @strong{Option} @tab @strong{Description}
-@item @code{AUTO_INCREMENT} @tab The next auto_increment value you want to set for your table (MyISAM).
+@item @code{AUTO_INCREMENT} @tab The next @code{AUTO_INCREMENT} value you want to set for your table (MyISAM).
@item @code{AVG_ROW_LENGTH} @tab An approximation of the average row length for your table. You only need to set this for large tables with variable size records.
@item @code{CHECKSUM} @tab Set this to 1 if you want MySQL to maintain a checksum for all rows (makes the table a little slower to update but makes it easier to find corrupted tables) (MyISAM).
@item @code{COMMENT} @tab A 60-character comment for your table.
@@ -35096,9 +35432,9 @@ MySQL will create new fields for all elements in the
@code{SELECT}. For example:
@example
-mysql> CREATE TABLE test (a int not null auto_increment,
- -> primary key (a), key(b))
- -> TYPE=MyISAM SELECT b,c from test2;
+mysql> CREATE TABLE test (a INT NOT NULL AUTO_INCREMENT,
+ -> PRIMARY KEY (a), KEY(b))
+ -> TYPE=MyISAM SELECT b,c FROM test2;
@end example
This will create a @code{MyISAM} table with three columns, a, b, and c.
@@ -35107,18 +35443,18 @@ the right side of the table, not overlapped onto it. Take the following
example:
@example
-mysql> select * from foo;
+mysql> SELECT * FROM foo;
+---+
| n |
+---+
| 1 |
+---+
-mysql> create table bar (m int) select n from foo;
+mysql> CREATE TABLE bar (m INT) SELECT n FROM foo;
Query OK, 1 row affected (0.02 sec)
Records: 1 Duplicates: 0 Warnings: 0
-mysql> select * from bar;
+mysql> SELECT * FROM bar;
+------+---+
| m | n |
+------+---+
@@ -35136,7 +35472,7 @@ possible. If you want to have indexes in the created table, you should
specify these before the @code{SELECT} statement:
@example
-mysql> create table bar (unique (n)) select n from foo;
+mysql> CREATE TABLE bar (UNIQUE (n)) SELECT n FROM foo;
@end example
If any errors occur while copying the data to the table, it will
@@ -35147,9 +35483,9 @@ original tables, MySQL will not allow concurrent inserts during
@code{CREATE TABLE ... SELECT}.
@item
The @code{RAID_TYPE} option will help you to break the 2G/4G limit for
-the MyISAM data file (not the index file) on operating systems that
+the MyISAM datafile (not the index file) on operating systems that
don't support big files. Note that this option is not recommended for
-file system that supports big files!
+filesystem that supports big files!
You can get more speed from the I/O bottleneck by putting @code{RAID}
directories on different physical disks. @code{RAID_TYPE} will work on
@@ -35161,15 +35497,16 @@ If you specify @code{RAID_TYPE=STRIPED} for a @code{MyISAM} table,
@code{MyISAM} will create @code{RAID_CHUNKS} subdirectories named 00,
01, 02 in the database directory. In each of these directories
@code{MyISAM} will create a @code{table_name.MYD}. When writing data
-to the data file, the @code{RAID} handler will map the first
+to the datafile, the @code{RAID} handler will map the first
@code{RAID_CHUNKSIZE} *1024 bytes to the first file, the next
@code{RAID_CHUNKSIZE} *1024 bytes to the next file and so on.
@item
@code{UNION} is used when you want to use a collection of identical
-tables as one. This only works with MERGE tables. @xref{MERGE}.
+tables as one. This only works with @code{MERGE} tables.
+@xref{MERGE, , @code{MERGE}}.
-For the moment you need to have @code{SELECT}, @code{UPDATE}, and
-@code{DELETE} privileges on the tables you map to a @code{MERGE} table.
+For the moment you need to have @strong{select}, @strong{update}, and
+@strong{delete} privileges on the tables you map to a @code{MERGE} table.
All mapped tables must be in the same database as the @code{MERGE} table.
@item
@@ -35238,7 +35575,7 @@ MySQL maps certain column types used by other SQL database vendors
to MySQL types. @xref{Other-vendor column types}.
@end itemize
-If you want to see whether or not MySQL used a column type other
+If you want to see whether MySQL used a column type other
than the one you specified, issue a @code{DESCRIBE tbl_name} statement after
creating or altering your table.
@@ -35304,11 +35641,14 @@ Note that if you use any other option to @code{ALTER TABLE} than
if the data wouldn't strictly need to be copied (like when you change the
name of a column). We plan to fix this in the future, but as one doesn't
normally do @code{ALTER TABLE} that often this isn't that high on our TODO.
+For MyISAM tables, you can speed up the index recreation part (which is the
+slowest part of the recreation process) by setting the
+@code{myisam_sort_buffer_size} variable to a high value.
@itemize @bullet
@item
-To use @code{ALTER TABLE}, you need @strong{ALTER}, @strong{INSERT},
-and @strong{CREATE} privileges on the table.
+To use @code{ALTER TABLE}, you need @strong{alter}, @strong{insert},
+and @strong{create} privileges on the table.
@item
@code{IGNORE} is a MySQL extension to ANSI SQL92.
@@ -35429,7 +35769,7 @@ specific order. Note that the table will not remain in this order after
inserts and deletes. In some cases, it may make sorting easier for
MySQL if the table is in order by the column that you wish to
order it by later. This option is mainly useful when you know that you
-are mostly going to query the rows in a certain order; By using this
+are mostly going to query the rows in a certain order; by using this
option after big changes to the table, you may be able to get higher
performance.
@@ -35465,7 +35805,7 @@ that create tables with references.
@end itemize
Here is an example that shows some of the uses of @code{ALTER TABLE}. We
-begin with a table @code{t1} that is created as shown below:
+begin with a table @code{t1} that is created as shown here:
@example
mysql> CREATE TABLE t1 (a INTEGER,b CHAR(10));
@@ -35535,7 +35875,7 @@ column, the numbers will start from 1 again.
@findex RENAME TABLE
@example
-RENAME TABLE tbl_name TO new_table_name[, tbl_name2 TO new_table_name2,...]
+RENAME TABLE tbl_name TO new_tbl_name[, tbl_name2 TO new_tbl_name2,...]
@end example
The rename is done atomically, which means that no other thread can
@@ -35560,15 +35900,15 @@ As long as two databases are on the same disk you can also rename
from one database to another:
@example
-RENAME TABLE current_database.table_name TO other_database.table_name;
+RENAME TABLE current_db.tbl_name TO other_db.tbl_name;
@end example
When you execute @code{RENAME}, you can't have any locked tables or
-active transactions. You must also have the @code{ALTER} and @code{DROP}
-privilege on the original table and @code{CREATE} and @code{INSERT}
-privilege on the new table.
+active transactions. You must also have the @strong{alter} and @strong{drop}
+privileges on the original table, and the @strong{create} and @strong{insert}
+privileges on the new table.
-If MySQL encounters any errors in a multiple table rename, it
+If MySQL encounters any errors in a multiple-table rename, it
will do a reverse rename for all renamed tables to get everything back
to the original state.
@@ -35628,7 +35968,7 @@ columns.
For @code{CHAR} and @code{VARCHAR} columns, indexes can be created that
use only part of a column, using @code{col_name(length)} syntax. (On
@code{BLOB} and @code{TEXT} columns the length is required.) The
-statement shown below creates an index using the first 10 characters of
+statement shown here creates an index using the first 10 characters of
the @code{name} column:
@example
@@ -35696,14 +36036,14 @@ is issued:
@example
mysql> USE db1;
-mysql> SELECT count(*) FROM mytable; # selects from db1.mytable
+mysql> SELECT COUNT(*) FROM mytable; # selects from db1.mytable
mysql> USE db2;
-mysql> SELECT count(*) FROM mytable; # selects from db2.mytable
+mysql> SELECT COUNT(*) FROM mytable; # selects from db2.mytable
@end example
Making a particular database current by means of the @code{USE} statement
-does not preclude you from accessing tables in other databases. The example
-below accesses the @code{author} table from the @code{db1} database and the
+does not preclude you from accessing tables in other databases. The following example
+accesses the @code{author} table from the @code{db1} database and the
@code{editor} table from the @code{db2} database:
@example
@@ -35732,9 +36072,9 @@ The @code{USE} statement is provided for Sybase compatibility.
@code{DESCRIBE} provides information about a table's columns. @code{col_name}
may be a column name or a string containing the SQL @samp{%} and @samp{_}
-wild-card characters.
+wildcard characters.
-If the column types are different than you expect them to be based on a
+If the column types are different from what you expect them to be based on a
@code{CREATE TABLE} statement, note that MySQL sometimes
changes column types. @xref{Silent column changes}.
@@ -35806,7 +36146,7 @@ rolled back are not stored. @xref{Binary log}.
The following commands automatically end a transaction (as if you had done
a @code{COMMIT} before executing the command):
-@multitable @columnfractions .20 .20 .20
+@multitable @columnfractions .25 .25 .25
@item @strong{Command} @tab @strong{Command} @tab @strong{Command}
@item @code{ALTER TABLE} @tab @code{BEGIN} @tab @code{CREATE INDEX}
@item @code{DROP DATABASE} @tab @code{DROP TABLE} @tab @code{RENAME TABLE}
@@ -35918,13 +36258,13 @@ each SQL statement). This speeds up inserting/updateing/deletes on
If you are using a table handler in MySQL that doesn't support
transactions, you must use @code{LOCK TABLES} if you want to ensure that
no other thread comes between a @code{SELECT} and an @code{UPDATE}. The
-example shown below requires @code{LOCK TABLES} in order to execute safely:
+example shown here requires @code{LOCK TABLES} in order to execute safely:
@example
mysql> LOCK TABLES trans READ, customer WRITE;
-mysql> select sum(value) from trans where customer_id= some_id;
-mysql> update customer set total_value=sum_from_previous_statement
- -> where customer_id=some_id;
+mysql> SELECT SUM(value) FROM trans WHERE customer_id=some_id;
+mysql> UPDATE customer SET total_value=sum_from_previous_statement
+ -> WHERE customer_id=some_id;
mysql> UNLOCK TABLES;
@end example
@@ -35947,7 +36287,7 @@ See @ref{Internal locking}, for more information on locking policy.
You can lock all tables in all databases with read locks with the
@code{FLUSH TABLES WITH READ LOCK} command. @xref{FLUSH}. This is very
-convenient way to get backups if you have a file system, like Veritas,
+convenient way to get backups if you have a filesystem, like Veritas,
that can take snapshots in time.
@strong{NOTE}: @code{LOCK TABLES} is not transaction-safe and will
@@ -35958,26 +36298,26 @@ tables.
@node SET TRANSACTION, , LOCK TABLES, Transactional Commands
@subsection @code{SET TRANSACTION} Syntax
+@findex SET TRANSACTION
@findex ISOLATION LEVEL
@example
SET [GLOBAL | SESSION] TRANSACTION ISOLATION LEVEL
-[READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE]
+@{ READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE @}
@end example
Sets the transaction isolation level for the global, whole session or
the next transaction.
-The default behavior is to set the isolation level for the next (not started)
-transaction.
-
-If you set the @code{GLOBAL} privilege it will affect all new created threads.
-You will need the @code{PROCESS} privilege to do do this.
+The default behavior is to set the isolation level for the next (not
+started) transaction. If you use the @code{GLOBAL} keyword, the statement
+sets the default transaction level globally for all new connections
+created from that point on. You will need the @strong{process}
+privilege to do do this. Using the @code{SESSION} keyword sets the
+default transaction level for all future transactions performed on the
+current connection.
-Setting the @code{SESSION} privilege will affect the following and all
-future transactions.
-
-You can set the default isolation level for @code{mysqld} with
+You can set the default global isolation level for @code{mysqld} with
@code{--transaction-isolation=...}. @xref{Command-line options}.
@node Fulltext Search, Query Cache, Transactional Commands, Reference
@@ -36183,6 +36523,9 @@ others, but will not be excluded altogether, as it would be with the
@item *
An asterisk is the truncation operator. Unlike the other operators, it
should be @strong{appended} to the word, not prepended.
+@item "
+The phrase, that is enclosed in double quotes @code{"}, matches only
+rows that contain this phrase @strong{literally, as it was typed}.
@end table
And here are some examples:
@@ -36191,16 +36534,18 @@ And here are some examples:
@item apple banana
find rows that contain at least one of these words.
@item +apple +juice
-... both words
+... both words.
@item +apple macintosh
-... word ``apple'', but rank it higher if it also contain ``macintosh''
+... word ``apple'', but rank it higher if it also contain ``macintosh''.
@item +apple -macintosh
-... word ``apple'' but not ``macintosh''
+... word ``apple'' but not ``macintosh''.
@item +apple +(>pie <strudel)
... ``apple'' and ``pie'', or ``apple'' and ``strudel'' (in any
order), but rank ``apple pie'' higher than ``apple strudel''.
@item apple*
-... ``apple'', ``apples'', ``applesauce'', and ``applet''
+... ``apple'', ``apples'', ``applesauce'', and ``applet''.
+@item "some words"
+... ``some words of wisdom'', but not ``some noise words''.
@end table
@menu
@@ -36244,8 +36589,8 @@ unless you know what you are doing!
@item
The minimum length of words to be indexed is defined by the MySQL
variable @code{ft_min_word_length}. @xref{SHOW VARIABLES}.
-Change it to the value you prefer, and rebuild
-your @code{FULLTEXT} indexes.
+Change it to the value you prefer, and rebuild your @code{FULLTEXT} indexes.
+(This variable is only available from MySQL version 4.0.)
@item
The stopword list is defined in @file{myisam/ft_static.c}
@@ -36264,7 +36609,7 @@ To:
@end example
Then recompile MySQL.
There is no need to rebuild the indexes in this case.
-@strong{Note:} by doing this you @strong{severely} decrease MySQL's ability
+@strong{Note}: by doing this you @strong{severely} decrease MySQL's ability
to provide adequate relevance values for the @code{MATCH()} function.
If you really need to search for such common words, it would be better to
search using @code{IN BOOLEAN MODE} instead, which does not observe the 50%
@@ -36284,16 +36629,14 @@ Still, this variable is read-only, its value is set in
@itemize @bullet
@item Make all operations with @code{FULLTEXT} index @strong{faster}.
-@item Phrase search, proximity operators
-@item Boolean search can work without @code{FULLTEXT} index
-(yes, @strong{very} slow).
+@item Proximity operators
@item Support for "always-index words". They could be any strings
the user wants to treat as words, examples are "C++", "AS/400", "TCP/IP", etc.
@item Support for full-text search in @code{MERGE} tables.
@item Support for multi-byte charsets.
@item Make stopword list to depend of the language of the data.
@item Stemming (dependent of the language of the data, of course).
-@item Generic user-suppliable UDF (?) preparser.
+@item Generic user-suppliable UDF preparser.
@item Make the model more flexible (by adding some adjustable
parameters to @code{FULLTEXT} in @code{CREATE/ALTER TABLE}).
@end itemize
@@ -36325,6 +36668,8 @@ Following are some performance data for the query cache
@item
If you want to disable the query cache code set @code{query_cache_size=0}.
By disabling the query cache code there is no noticeable overhead.
+(query cache can be excluded from code with help of configure option
+@code{--without-query-cache})
@item
If all of the queries you're preforming are simple (such as selecting a
row from a table with one row); but still differ so that the queries can
@@ -36384,21 +36729,31 @@ Transactional @code{InnoDB} tables that have been changed will be invalidated
when a @code{COMMIT} is performed.
A query cannot be cached if it contains one of the functions:
-@multitable @columnfractions .25 .25 .25 .25
-@item @strong{Function} @tab @strong{Function}
- @tab @strong{Function} @tab @strong{Function}
-@item @code{User Defined Functions} @tab @code{CONNECTION_ID}
- @tab @code{FOUND_ROWS} @tab @code{GET_LOCK}
-@item @code{RELEASE_LOCK} @tab @code{LOAD_FILE}
- @tab @code{MASTER_POS_WAIT} @tab @code{NOW}
-@item @code{SYSDATE} @tab @code{CURRENT_TIMESTAMP}
- @tab @code{CURDATE} @tab @code{CURRENT_DATE}
-@item @code{CURTIME} @tab @code{CURRENT_TIME}
- @tab @code{DATABASE} @tab @code{ENCRYPT} (with one parameter)
-@item @code{LAST_INSERT_ID} @tab @code{RAND}
- @tab @code{UNIX_TIMESTAMP} (without parameters) @tab @code{USER}
-@item @code{BENCHMARK} @tab
- @tab @tab
+@multitable @columnfractions .33 .33 .34
+@item @strong{Function}
+ @tab @strong{Function}
+ @tab @strong{Function}
+@item @code{User-Defined Functions}
+ @tab @code{CONNECTION_ID}
+ @tab @code{FOUND_ROWS}
+@item @code{GET_LOCK}
+ @tab @code{RELEASE_LOCK}
+ @tab @code{LOAD_FILE}
+@item @code{MASTER_POS_WAIT}
+ @tab @code{NOW}
+ @tab @code{SYSDATE}
+@item @code{CURRENT_TIMESTAMP}
+ @tab @code{CURDATE}
+ @tab @code{CURRENT_DATE}
+@item @code{CURTIME}
+ @tab @code{CURRENT_TIME}
+ @tab @code{DATABASE}
+@item @code{ENCRYPT} (with one parameter)
+ @tab @code{LAST_INSERT_ID}
+ @tab @code{RAND}
+@item @code{UNIX_TIMESTAMP} (without parameters)
+ @tab @code{USER}
+ @tab @code{BENCHMARK}
@end multitable
Nor can a query be cached if it contains user variables,
@@ -36421,7 +36776,7 @@ tables. If this is not the case, the cached result will not be used.
The query cache adds a few @code{MySQL} system variables for
@code{mysqld} which may be set in a configuration file, on the
-command line when starting @code{mysqld}.
+command-line when starting @code{mysqld}.
@itemize
@item @code{query_cache_limit}
@@ -36629,13 +36984,13 @@ The following is new in @code{MyISAM}:
@itemize @bullet
@item
-There is a flag in the @code{MyISAM} file that indicates whether or not
+There is a flag in the @code{MyISAM} file that indicates whether
the table was closed correctly. If @code{mysqld} is started with
@code{--myisam-recover}, @code{MyISAM} tables will automatically be
checked and/or repaired on open if the table wasn't closed properly.
@item
You can @code{INSERT} new rows in a table that doesn't have free blocks
-in the middle of the data file, at the same time other threads are
+in the middle of the datafile, at the same time other threads are
reading from the table (concurrent insert). An free block can come from
an update of a dynamic length row with much data to a row with less data
or when deleting rows. When all free blocks are used up, all future
@@ -36652,7 +37007,7 @@ mainstream machines). The only area of machines that may not support
binary compatibility are embedded systems (because they sometimes have
peculiar processors).
-There is no big speed penalty in storing data low byte first; The bytes
+There is no big speed penalty in storing data low byte first; the bytes
in a table row is normally unaligned and it doesn't take that much more
power to read an unaligned byte in order than in reverse order. The
actual fetch-column-value code is also not time critical compared to
@@ -36708,7 +37063,7 @@ will be able to use in the near future:
@itemize @bullet
@item
-Support for a true @code{VARCHAR} type; A @code{VARCHAR} column starts
+Support for a true @code{VARCHAR} type; a @code{VARCHAR} column starts
with a length stored in 2 bytes.
@item
Tables with @code{VARCHAR} may have fixed or dynamic record length.
@@ -36724,7 +37079,7 @@ can't search on a @code{UNIQUE} computed index, however.)
Note that index files are usually much smaller with @code{MyISAM} than with
@code{ISAM}. This means that @code{MyISAM} will normally use less
-system resources than @code{ISAM}, but will need more CPU when inserting
+system resources than @code{ISAM}, but will need more CPU time when inserting
data into a compressed index.
The following options to @code{mysqld} can be used to change the behavior of
@@ -36732,7 +37087,7 @@ The following options to @code{mysqld} can be used to change the behavior of
@multitable @columnfractions .40 .60
@item @strong{Option} @tab @strong{Description}
-@item @code{--myisam-recover=#} @tab Automatic recover of crashed tables.
+@item @code{--myisam-recover=#} @tab Automatic recovery of crashed tables.
@item @code{-O myisam_sort_buffer_size=#} @tab Buffer used when recovering tables.
@item @code{--delay-key-write-for-all-tables} @tab Don't flush key buffers between writes for any MyISAM table
@item @code{-O myisam_max_extra_sort_file_size=#} @tab Used to help MySQL to decide when to use the slow but safe key cache index create method. @strong{Note} that this parameter is given in megabytes!
@@ -36751,10 +37106,10 @@ count variable for the table is not 0 and you are running with
The table is checked for errors.
@item
If we found an error, try to do a fast repair (with sorting and without
-re-creating the data file) of the table.
+re-creating the datafile) of the table.
@item
-If the repair fails because of an error in the data file (for example a
-duplicate key error), we try again, but this time we re-create the data file.
+If the repair fails because of an error in the datafile (for example a
+duplicate key error), we try again, but this time we re-create the datafile.
@item
If the repair fails, retry once more with the old repair option method
(write row by row without sorting) which should be able to repair any
@@ -36819,7 +37174,7 @@ high-byte first.
@node MyISAM table formats, MyISAM table problems, Key space, MyISAM
@subsection MyISAM Table Formats
-@strong{MyISAM} supports 3 different table types. Two of them are chosen
+@code{MyISAM} supports 3 different table types. Two of them are chosen
automatically depending on the type of columns you are using. The third,
compressed tables, can only be created with the @code{myisampack} tool.
@@ -37105,7 +37460,7 @@ Many @code{mysqld} servers are using the table and one has done a
@code{REPAIR} or @code{CHECK} of the table while it was in use by
another server. In this setup the @code{CHECK} is safe to do (even if
you will get the warning from other servers), but @code{REPAIR} should
-be avoided as it currently replaces the data file with a new one, which
+be avoided as it currently replaces the datafile with a new one, which
is not signaled to the other servers.
@end itemize
@@ -37130,9 +37485,9 @@ will only clear the mapping for the table, not delete everything in the
mapped tables. (We plan to fix this in 4.1).
With identical tables we mean that all tables are created with identical
-column and key information. You can't put a MERGE over tables where the
-columns are packed differently, doesn't have exactly the same columns or
-have the keys in different order. Some of the tables can however be
+column and key information. You can't merge tables in which the
+columns are packed differently, doesn't have exactly the same columns,
+or have the keys in different order. However, some of the tables can be
compressed with @code{myisampack}. @xref{myisampack, , @code{myisampack}}.
When you create a @code{MERGE} table, you will get a @file{.frm} table
@@ -37141,8 +37496,8 @@ contains a list of the index files (@file{.MYI} files) that should
be used as one. All used tables must be in the same database as the
@code{MERGE} table itself.
-For the moment you need to have @code{SELECT}, @code{UPDATE}, and
-@code{DELETE} privileges on the tables you map to a @code{MERGE} table.
+For the moment, you need to have @strong{select}, @strong{update}, and
+@strong{delete} privileges on the tables you map to a @code{MERGE} table.
@code{MERGE} tables can help you solve the following problems:
@@ -37160,7 +37515,7 @@ kind of benefits.)
@item
Do more efficient searches. If you know exactly what you are looking
after, you can search in just one of the split tables for some queries
-and use @strong{MERGE} table for others. You can even have many
+and use @code{MERGE} table for others. You can even have many
different @code{MERGE} tables active, with possible overlapping files.
@item
More efficient repairs. It's easier to repair the individual files that
@@ -37176,11 +37531,12 @@ If you have a set of tables that you join to a big table on demand or
batch, you should instead create a @code{MERGE} table on them on demand.
This is much faster and will save a lot of disk space.
@item
-Go around the file size limit for the operating system.
+Go around the file-size limit for the operating system.
@item
-You can create an alias/synonym for a table by just using MERGE over one
-table. There shouldn't be any really notable performance impacts of doing this
-(only a couple of indirect calls and memcpy's for each read).
+You can create an alias/synonym for a table by just using @code{MERGE}
+over one table. There shouldn't be any really notable performance
+impacts of doing this (only a couple of indirect calls and @code{memcpy()}
+calls for each read).
@end itemize
The disadvantages with @code{MERGE} tables are:
@@ -37194,8 +37550,8 @@ You can only use identical @code{MyISAM} tables for a @code{MERGE} table.
@code{REPLACE} doesn't work.
@item
@code{MERGE} tables uses more file descriptors. If you are using a
-@strong{MERGE} that maps over 10 tables and 10 users are using this, you
-are using 10*10 + 10 file descriptors. (10 data files for 10 users
+@code{MERGE} that maps over 10 tables and 10 users are using this, you
+are using 10*10 + 10 file descriptors. (10 datafiles for 10 users
and 10 shared index files.)
@item
Key reads are slower. When you do a read on a key, the @code{MERGE}
@@ -37249,7 +37605,7 @@ shell> mysqladmin flush-tables
Now you can do things like:
@example
-mysql> select * from total;
+mysql> SELECT * FROM total;
+---+---------+
| a | message |
+---+---------+
@@ -37382,7 +37738,7 @@ without overflow areas. There is no extra space needed for free lists.
normally is common with hashed tables:
@example
-mysql> CREATE TABLE test TYPE=HEAP SELECT ip,SUM(downloads) as down
+mysql> CREATE TABLE test TYPE=HEAP SELECT ip,SUM(downloads) AS down
-> FROM log_table GROUP BY ip;
mysql> SELECT COUNT(ip),AVG(down) FROM test;
mysql> DROP TABLE test;
@@ -37461,7 +37817,7 @@ SUM_OVER_ALL_KEYS(max_length_of_key + sizeof(char*) * 2)
* InnoDB transaction model:: InnoDB Transaction Model.
* Implementation:: Implementation of Multi-versioning
* Table and index:: Table and Index Structures
-* File space management:: File Space Management and Disk i/o
+* File space management:: File Space Management and Disk I/O
* Error handling:: Error Handling
* InnoDB restrictions:: Restrictions on InnoDB Tables
* InnoDB contact information:: InnoDB Contact Information.
@@ -37497,7 +37853,7 @@ memory. InnoDB stores its tables and indexes in a tablespace, which
may consist of several files. This is different from, for example,
MyISAM tables where each table is stored as a separate file.
InnoDB tables can be of any size also on those operating
-systems where file size is limited to 2 GB.
+systems where file-size is limited to 2 GB.
You can find the latest information about InnoDB at
@uref{http://www.innodb.com/}. The most up-to-date version of the
@@ -37550,7 +37906,7 @@ innodb_data_file_path=ibdata:30M
@end example
but to get good performance it is best that you specify options
-like recommended below in the section 'InnoDB startup options'.
+as recommended. @xref{InnoDB start}.
InnoDB is distributed under the GNU GPL License Version 2 (of June 1991).
In the source distribution of MySQL, InnoDB appears as a subdirectory.
@@ -37570,27 +37926,27 @@ At the minimum, in 3.23 you must specify @code{innodb_data_file_path}.
In MySQL-4.0 you do not need to specify even
@code{innodb_data_file_path}: the default for it is to create
an auto-extending 16 MB file @file{ibdata1} to the @code{datadir}
-of MySQL. (In MySQL-4.0.0 and 4.0.1 the data file is 64 MB and not
+of MySQL. (In MySQL-4.0.0 and 4.0.1 the datafile is 64 MB and not
auto-extending.)
But to get good performance you MUST explicitly set the InnoDB parameters
-listed below in the examples.
+listed in the following examples.
Starting from versions 3.23.50 and 4.0.2 InnoDB allows the last
-data file on the @code{innodb_data_file_path} line
+datafile on the @code{innodb_data_file_path} line
to be specified as @strong{auto-extending}. The syntax for
@code{innodb_data_file_path} is then the following:
@example
pathtodatafile:sizespecification;pathtodatafile:sizespecification;...
... ;pathtodatafile:sizespecification[:autoextend[:max:sizespecification]]
@end example
-If you specify the last data file with the autoextend option, InnoDB
-will extend the last data file if it runs out of free space in the
+If you specify the last datafile with the autoextend option, InnoDB
+will extend the last datafile if it runs out of free space in the
tablespace. The increment is 8 MB at a time. An example:
@example
innodb_data_file_path = /ibdata/ibdata1:100M:autoextend
@end example
-instructs InnoDB to create just a single data file whose initial size is
+instructs InnoDB to create just a single datafile whose initial size is
100 MB and which is extended in 8 MB blocks when space runs out.
If the disk becomes full you may want to add another data
file to another disk, for example. Then you have to look the size
@@ -37598,20 +37954,20 @@ of @file{ibdata1}, round the size downward to
the closest multiple of 1024 * 1024 bytes (= 1 MB), and specify
the rounded size of @file{ibdata1} explicitly in
@code{innodb_data_file_path}.
-After that you can add another data file:
+After that you can add another datafile:
@example
innodb_data_file_path = /ibdata/ibdata1:988M;/disk2/ibdata2:50M:autoextend
@end example
-Be cautious on file systems where the maximum file size is 2 GB!
-InnoDB is not aware of the OS maximum file size. On those file systems
-you might want to specify the max size for the data file:
+Be cautious on filesystems where the maximum file-size is 2 GB!
+InnoDB is not aware of the OS maximum file-size. On those filesystems
+you might want to specify the max size for the datafile:
@example
innodb_data_file_path = /ibdata/ibdata1:100M:autoextend:max:2000M
@end example
Suppose you have a Windows NT computer with 128 MB RAM and a
single 10 GB hard disk.
-Below is an example of possible configuration parameters in
+Following is an example of possible configuration parameters in
@file{my.cnf} or @file{my.ini} for InnoDB:
@example
@@ -37620,7 +37976,7 @@ Below is an example of possible configuration parameters in
# ...
#
innodb_data_home_dir = c:\ibdata
-# Data files must be able to
+# Datafiles must be able to
# hold your data and indexes
innodb_data_file_path = ibdata1:2000M;ibdata2:2000M
# Set buffer pool size to 50 - 80 %
@@ -37633,7 +37989,7 @@ innodb_log_group_home_dir = c:\iblogs
innodb_log_arch_dir = c:\iblogs
innodb_log_archive=0
set-variable = innodb_log_files_in_group=3
-# Set the log file size to about
+# Set the log file-size to about
# 15 % of the buffer pool size
set-variable = innodb_log_file_size=10M
set-variable = innodb_log_buffer_size=8M
@@ -37645,20 +38001,20 @@ set-variable = innodb_file_io_threads=4
set-variable = innodb_lock_wait_timeout=50
@end example
-Note that @strong{InnoDB does not create directories:
-you have to create them yourself.}
+Note that @code{InnoDB} @strong{does not create directories:
+you must create them yourself.}
Use the Unix or MS-DOS @code{mkdir} command to create
the data and log group home directories.
Check also that the MySQL server
has @strong{the rights to create files} in the directories you specify.
-Note that data files must be < 2G in
-some file systems! The combined size of data files
+Note that datafiles must be < 2G in
+some filesystems! The combined size of datafiles
must be >= 10 MB.
The combined size of the log files must be < 4G.
If you do not specify @code{innodb_data_home_dir}, then
-the default is that InnoDB creates its data files to the
+the default is that InnoDB creates its datafiles to the
@code{datadir} of MySQL. Then you cannot use absolute
file paths in @code{innodb_data_file_path}.
@@ -37671,8 +38027,8 @@ For example, in Windows you can start @file{mysqld-max.exe} with:
@example
your-path-to-mysqld>mysqld-max --standalone --console
@end example
-See the manual section `Creating an InnoDB database' about what
-the printout should look like.
+For information about what the printout should look like,
+see @ref{InnoDB init}.
@strong{Where to put @file{my.cnf} or @file{my.ini} in Windows?}
The rules for Windows are the following:
@@ -37710,7 +38066,7 @@ option to the server:
Suppose you have a Linux computer with 512 MB RAM and
three 20 GB hard disks (at directory paths @file{`/'},
@file{`/dr2'} and @file{`/dr3'}).
-Below is an example of possible configuration parameters
+Here is an example of possible configuration parameters
in @file{my.cnf} for
InnoDB:
@@ -37720,7 +38076,7 @@ InnoDB:
# ...
#
innodb_data_home_dir = /
-# Data files must be able to
+# Datafiles must be able to
# hold your data and indexes
innodb_data_file_path = ibdata/ibdata1:2000M;dr2/ibdata/ibdata2:2000M
# Set buffer pool size to 50 - 80 %
@@ -37735,7 +38091,7 @@ innodb_log_group_home_dir = /dr3/iblogs
innodb_log_arch_dir = /dr3/iblogs
innodb_log_archive=0
set-variable = innodb_log_files_in_group=3
-# Set the log file size to about
+# Set the log file-size to about
# 15 % of the buffer pool size
set-variable = innodb_log_file_size=50M
set-variable = innodb_log_buffer_size=8M
@@ -37750,22 +38106,22 @@ set-variable = innodb_lock_wait_timeout=50
#set-variable = innodb_thread_concurrency=5
@end example
-Note that we have placed the two data files on different disks.
+Note that we have placed the two datafiles on different disks.
The reason for the name @code{innodb_data_file_path} is that
-you can also specify paths to your data files, and
+you can also specify paths to your datafiles, and
@code{innodb_data_home_dir} is just textually catenated
-before your data file paths, adding a possible slash or
+before your datafile paths, adding a possible slash or
backslash in between. InnoDB will fill the tablespace
-formed by the data files from bottom up. In some cases it will
+formed by the datafiles from bottom up. In some cases it will
improve the performance of the database if all data is not placed
on the same physical disk. Putting log files on a different disk from
data is very often beneficial for performance.
You can also use @strong{raw disk partitions} (raw devices)
-as data files. In some Unixes
-they speed up i/o. See the manual section on InnoDB file space management
+as datafiles. In some Unixes
+they speed up I/O. See the manual section on InnoDB file space management
about how to specify them in @file{my.cnf}.
-@strong{Warning:} on Linux x86 you must be careful you @strong{do not set memory usage
+@strong{Warning}: on Linux x86 you must be careful you @strong{do not set memory usage
too high}. glibc will allow the process heap to grow over thread stacks,
which will crash your server. It is a risk if the value of
@example
@@ -37800,19 +38156,19 @@ parameter format: @code{set-variable = innodb... = 123}, others
The meanings of the configuration parameters are the following:
-@multitable @columnfractions .30 .70
+@multitable @columnfractions .35 .65
@item @strong{Option} @tab @strong{Description}
@item @code{innodb_data_home_dir} @tab
-The common part of the directory path for all InnoDB data files.
+The common part of the directory path for all InnoDB datafiles.
The default for this parameter is the @code{datadir} of MySQL.
@item @code{innodb_data_file_path} @tab
-Paths to individual data files and their sizes. The full directory path
-to each data file is acquired by concatenating innodb_data_home_dir to
-the paths specified here. The file sizes are specified in megabytes,
+Paths to individual datafiles and their sizes. The full directory path
+to each datafile is acquired by concatenating innodb_data_home_dir to
+the paths specified here. The file-sizes are specified in megabytes,
hence the 'M' after the size specification above.
InnoDB also understands the abbreviation 'G', 1G meaning 1024M.
Starting from
-3.23.44 you can set the file size bigger than 4 GB on those
+3.23.44 you can set the file-size bigger than 4 GB on those
operating systems which support big files.
On some operating systems files must be < 2 GB.
The sum of the sizes of the files must be at least 10 MB.
@@ -37830,7 +38186,7 @@ from 1M to 1/nth of the size of the buffer pool specified below,
where n is the number of log files in the group. The
bigger the value,
the less checkpoint flush activity is needed in the buffer pool,
-saving disk i/o. But bigger log files also mean that recovery will be
+saving disk I/O. But bigger log files also mean that recovery will be
slower in case of a crash. The combined size of log files must
be < 4 GB on 32-bit computers.
@item @code{innodb_log_buffer_size} @tab
@@ -37838,13 +38194,13 @@ The size of the buffer which InnoDB uses to write log to the log files
on disk. Sensible values range from 1M to half the combined size of log
files. A big log buffer allows large transactions to run without a need
to write the log to disk until the transaction commit. Thus, if you have
-big transactions, making the log buffer big will save disk i/o.
+big transactions, making the log buffer big will save disk I/O.
@item @code{innodb_flush_log_at_trx_commit} @tab
Normally this is set to 1, meaning that at a transaction commit the log
is flushed to disk, and the modifications made by the transaction become
permanent, and survive a database crash. If you are willing to
compromise this safety, and you are running small transactions, you may
-set this to 0 to reduce disk i/o to the logs.
+set this to 0 to reduce disk I/O to the logs.
@item @code{innodb_log_arch_dir} @tab
The directory where fully written log files would be archived if we used
log archiving. The value of this parameter should currently be set the
@@ -37855,7 +38211,7 @@ done by MySQL using its own log files, there is currently no need to
archive InnoDB log files.
@item @code{innodb_buffer_pool_size} @tab
The size of the memory buffer InnoDB uses to cache data and indexes of
-its tables. The bigger you set this the less disk i/o is needed to
+its tables. The bigger you set this the less disk I/O is needed to
access data in tables. On a dedicated database server you may set this
parameter up to 80 % of the machine physical memory size. Do not set it
too large, though, because competition of the physical memory may cause
@@ -37868,8 +38224,8 @@ need to allocate here. If InnoDB runs out of memory in this pool, it
will start to allocate memory from the operating system, and write
warning messages to the MySQL error log.
@item @code{innodb_file_io_threads} @tab
-Number of file i/o threads in InnoDB. Normally, this should be 4, but
-on Windows disk i/o may benefit from a larger number.
+Number of file I/O threads in InnoDB. Normally, this should be 4, but
+on Windows disk I/O may benefit from a larger number.
@item @code{innodb_lock_wait_timeout} @tab
Timeout in seconds an InnoDB transaction may wait for a lock before
being rolled back. InnoDB automatically detects transaction deadlocks
@@ -37891,22 +38247,22 @@ Another option is @code{O_DSYNC}.
Suppose you have installed MySQL and have edited @file{my.cnf} so that
it contains the necessary InnoDB configuration parameters.
Before starting MySQL you should check that the directories you have
-specified for InnoDB data files and log files exist and that you have
+specified for InnoDB datafiles and log files exist and that you have
access rights to those directories. InnoDB
cannot create directories, only files. Check also you have enough disk space
for the data and log files.
-When you now start MySQL, InnoDB will start creating your data files
+When you now start MySQL, InnoDB will start creating your datafiles
and log files. InnoDB will print something like the following:
@example
~/mysqlm/sql > mysqld
-InnoDB: The first specified data file /home/heikki/data/ibdata1
+InnoDB: The first specified datafile /home/heikki/data/ibdata1
did not exist:
InnoDB: a new database to be created!
InnoDB: Setting file /home/heikki/data/ibdata1 size to 134217728
InnoDB: Database physically writes the file full: wait...
-InnoDB: Data file /home/heikki/data/ibdata2 did not exist:
+InnoDB: datafile /home/heikki/data/ibdata2 did not exist:
new to be created
InnoDB: Setting file /home/heikki/data/ibdata2 size to 262144000
InnoDB: Database physically writes the file full: wait...
@@ -37935,7 +38291,7 @@ InnoDB: Starting shutdown...
InnoDB: Shutdown completed
@end example
-You can now look at the data files and logs directories and you
+You can now look at the datafiles and logs directories and you
will see the files created. The log directory will also contain
a small file named @file{ib_arch_log_0000000000}. That file
resulted from the database creation, after which InnoDB switched off
@@ -37966,14 +38322,14 @@ directories.
@item @file{mysqld} does not read the right @file{my.cnf} or @file{my.ini}
file, and consequently does not see the options you specified.
@item The disk is full or a disk quota is exceeded.
-@item You have created a subdirectory whose name is equal to a data file
+@item You have created a subdirectory whose name is equal to a datafile
you specified.
@item There is a syntax error in @code{innodb_data_home_dir}
or @code{innodb_data_file_path}.
@end itemize
If something goes wrong in an InnoDB database creation, you should
-delete all files created by InnoDB. This means all data files, all log
+delete all files created by InnoDB. This means all datafiles, all log
files, the small archived log file, and in the case you already did
create some InnoDB tables, delete also the corresponding @file{.frm}
files for these tables from the MySQL database
@@ -37993,7 +38349,7 @@ CREATE TABLE CUSTOMER (A INT, B CHAR (20), INDEX (A)) TYPE = InnoDB;
@end example
This SQL command will create a table and an index on column @code{A}
-into the InnoDB tablespace consisting of the data files you specified
+into the InnoDB tablespace consisting of the datafiles you specified
in @file{my.cnf}. In addition MySQL will create a file
@file{CUSTOMER.frm} to the MySQL database directory @file{test}.
Internally, InnoDB will add to its own data dictionary an entry
@@ -38037,7 +38393,7 @@ After all data has been inserted you can rename the tables.
During the conversion of big tables you should set the InnoDB
buffer pool size big
-to reduce disk i/o. Not bigger than 80 % of the physical memory, though.
+to reduce disk I/O. Not bigger than 80 % of the physical memory, though.
You should set InnoDB log files big, and also the log buffer large.
Make sure you do not run out of tablespace: InnoDB tables take a lot
@@ -38045,7 +38401,7 @@ more space than MyISAM tables. If an @code{ALTER TABLE} runs out
of space, it will start a rollback, and that can take hours if it is
disk-bound.
In inserts InnoDB uses the insert buffer to merge secondary index records
-to indexes in batches. That saves a lot of disk i/o. In rollback no such
+to indexes in batches. That saves a lot of disk I/O. In rollback no such
mechanism is used, and the rollback can take 30 times longer than the
insertion.
@@ -38053,7 +38409,7 @@ In the case of a runaway rollback, if you do not have valuable data in your
database,
it is better that you kill the database process and delete all InnoDB data
and log files and all InnoDB table @file{.frm} files, and start
-your job again, rather than wait for millions of disk i/os to complete.
+your job again, rather than wait for millions of disk I/Os to complete.
@subsubsection Foreign Key Constraints
@@ -38064,22 +38420,49 @@ constraints to guard the integrity of your data.
The syntax of a foreign key constraint definition in InnoDB:
@example
FOREIGN KEY (index_col_name, ...)
- REFERENCES table_name (index_col_name, ...)
+ REFERENCES table_name (index_col_name, ...)
+ [ON DELETE CASCADE | ON DELETE SET NULL]
@end example
+Both tables have to be InnoDB type and @strong{there must be an index
+where the foreign key and the referenced key are listed as the first
+columns}. InnoDB does not auto-create indexes on foreign keys or
+referenced keys: you have to create them explicitly.
+
+Corresponding columns in the foreign key
+and the referenced key must have similar internal data types
+inside InnoDB so that they can be compared without a type
+conversion.
+The size and the signedness of integer types has to be the same.
+The length of string types need not be the same.
+
+Starting from version 3.23.50 you can also associate the
+@code{ON DELETE CASCADE} or @code{ON DELETE SET NULL}
+clause with the foreign key constraint.
+
+If @code{ON DELETE CASCADE} is specified, and a row in the parent
+table is deleted, then InnoDB automatically deletes also all those rows
+in the child table whose foreign key values are equal to
+the referenced key value in the parent row. If @code{ON DELETE SET NULL}
+is specified, the child rows are automatically updated so that the
+columns in the foreign key are set to the SQL NULL value.
+
+Starting from version 3.23.50, InnoDB does not check foreign key
+constraints on those foreign key or referenced key values
+which contain a NULL column.
+
Starting from version 3.23.50 the InnoDB parser allows you to
use backquotes (`) around table and column names in the above
-definition.
+definition but the InnoDB parser is not yet aware of possible
+variable @code{lower_case_table_names} you give in @file{my.cnf}.
An example:
@example
CREATE TABLE parent(id INT NOT NULL, PRIMARY KEY (id)) TYPE=INNODB;
CREATE TABLE child(id INT, parent_id INT, INDEX par_ind (parent_id),
- FOREIGN KEY (parent_id) REFERENCES parent(id)) TYPE=INNODB;
+ FOREIGN KEY (parent_id) REFERENCES parent(id)
+ ON DELETE SET NULL
+) TYPE=INNODB;
@end example
-Both tables have to be InnoDB type and @strong{there must be an index
-where the foreign key and the referenced key are listed as the first
-columns}. InnoDB does not auto-create indexes on foreign keys or
-referenced keys: you have to create them explicitly.
If MySQL gives the error number 1005 from a @code{CREATE TABLE}
statement, and the error message string refers to errno 150, then
@@ -38097,10 +38480,6 @@ ALTER TABLE yourtablename
@end example
Remember to create the required indexes first, though.
-Starting from version 3.23.50, InnoDB does not check foreign key
-constraints on those foreign key or referenced key values
-which contain a NULL column.
-
In InnoDB versions < 3.23.50 @code{ALTER TABLE}
or @code{CREATE INDEX}
should not be used in connection with tables which have foreign
@@ -38116,12 +38495,6 @@ A @code{CREATE INDEX} statement is in MySQL
processed as an @code{ALTER TABLE}, and these
restrictions apply also to it.
-Corresponding columns in the foreign key
-and the referenced key must have similar internal data types
-inside InnoDB so that they can be compared without a type
-conversion. The length of string types need not be the same.
-The size and the signedness of integer types has to be the same.
-
When doing foreign key checks InnoDB sets shared row
level locks on child or parent records it has to look at.
InnoDB checks foreign key constraints immediately: the check
@@ -38162,13 +38535,13 @@ or other special options on the constraints.
@node Adding and removing, Backing up, Using InnoDB tables, InnoDB
@subsection Adding and Removing InnoDB Data and Log Files
-You cannot increase the size of an InnoDB data file. To add more into
-your tablespace you have to add a new data file. To do this you have to
+You cannot increase the size of an InnoDB datafile. To add more into
+your tablespace you have to add a new datafile. To do this you have to
shut down your MySQL database, edit the @file{my.cnf} file, adding a
new file to @code{innodb_data_file_path}, and then start MySQL
again.
-Currently you cannot remove a data file from InnoDB. To decrease the
+Currently you cannot remove a datafile from InnoDB. To decrease the
size of your database you have to use @file{mysqldump} to dump
all your tables, create a new database, and import your tables to the
new database.
@@ -38204,7 +38577,7 @@ a 'binary' backup of your database you have to do the following:
@item
Shut down your MySQL database and make sure it shuts down without errors.
@item
-Copy all your data files into a safe place.
+Copy all your datafiles into a safe place.
@item
Copy all your InnoDB log files to a safe place.
@item
@@ -38214,7 +38587,7 @@ Copy all the @file{.frm} files for your InnoDB tables into a
safe place.
@end itemize
-There is currently no on-line or incremental backup tool available for
+There is currently no online or incremental backup tool available for
InnoDB, though they are in the TODO list.
In addition to taking the binary backups described above,
@@ -38307,7 +38680,7 @@ has to make a checkpoint and often this involves flushing of
modified database pages to disk.
The above explains why making your log files very big may save
-disk i/o in checkpointing. It can make sense to set
+disk I/O in checkpointing. It can make sense to set
the total size of the log files as big as the buffer pool or even bigger.
The drawback in big log files is that crash recovery can last longer
because there will be more log to apply to the database.
@@ -38317,14 +38690,14 @@ because there will be more log to apply to the database.
@subsection Moving an InnoDB Database to Another Machine
InnoDB data and log files are binary-compatible on all platforms
-if the floating point number format on the machines is the same.
+if the floating-point number format on the machines is the same.
You can move an InnoDB database simply by copying all the relevant
files, which we already listed in the previous section on backing up
-a database. If the floating point formats on the machines are
+a database. If the floating-point formats on the machines are
different but you have not used @code{FLOAT} or @code{DOUBLE}
data types in your tables then the procedure is the same: just copy
the relevant files. If the formats are different and your tables
-contain floating point data, you have to use @file{mysqldump}
+contain floating-point data, you have to use @file{mysqldump}
and @file{mysqlimport} to move those tables.
A performance tip is to switch off the auto commit when you import
@@ -38559,11 +38932,12 @@ constraint fails, InnoDB sets these locks.
@code{LOCK TABLES ... } : sets table locks. In the implementation
the MySQL layer of code sets these locks. The automatic deadlock detection
of InnoDB cannot detect deadlocks where such table locks are involved:
-see the next section below. See also section 13 'InnoDB restrictions'
-about the following: since MySQL does know about row level locks,
+see the following section.
+Also, since MySQL does know about row level locks,
it is possible that you
get a table lock on a table where another user currently has row level
locks. But that does not put transaction integerity into danger.
+@xref{InnoDB restrictions}.
@end itemize
@@ -38603,7 +38977,7 @@ This is called multi-versioned concurrency control.
@example
User A User B
- set autocommit=0; set autocommit=0;
+ SET AUTOCOMMIT=0; SET AUTOCOMMIT=0;
time
| SELECT * FROM t;
| empty set
@@ -38626,10 +39000,10 @@ v SELECT * FROM t;
Thus user A sees the row inserted by B only when B has committed the
insert, and A has committed his own transaction so that the timepoint
-is advanced past the the commit of B.
+is advanced past the commit of B.
-If you want to see the 'freshest' state of the database, you should use
-a locking read:
+If you want to see the ``freshest'' state of the database, you should
+use a locking read:
@example
SELECT * FROM t LOCK IN SHARE MODE;
@@ -38684,22 +39058,22 @@ to @code{O_DSYNC}, though O_DSYNC seems to be slower on most systems.
Put before your plain SQL import file line
@example
-set autocommit=0;
+SET AUTOCOMMIT=0;
@end example
and after it
@example
-commit;
+COMMIT;
@end example
If you use the @file{mysqldump} option @code{--opt}, you will get dump
files which are fast to import also to an InnoDB table, even without wrapping
-them to the above @code{set autocommit=0; ... commit;} wrappers.
+them to the above @code{SET AUTOCOMMIT=0; ... COMMIT;} wrappers.
@strong{8.}
Beware of big rollbacks of mass inserts: InnoDB uses the insert buffer
-to save disk i/o in inserts, but in a corresponding rollback no such
+to save disk I/O in inserts, but in a corresponding rollback no such
mechanism is used. A disk-bound rollback can take 30 times the time
of the corresponding insert. Killing the database process will not
help because the rollback will start again at the database startup. The
@@ -38750,7 +39124,7 @@ lock waits of a transactions,
@item
semaphore waits of threads,
@item
-pending file i/o requests,
+pending file I/O requests,
@item
buffer pool statistics, and
@item
@@ -38866,18 +39240,18 @@ Section SYNC ARRAY INFO reports threads waiting
for a semaphore and statistics on how many times
threads have needed a spin or a wait on a mutex or
a rw-lock semaphore. A big number of threads waiting
-for semaphores may be a result of disk i/o, or
+for semaphores may be a result of disk I/O, or
contention problems inside InnoDB. Contention can be
due to heavy parallelism of queries, or problems in
operating system thread scheduling.
@item
Section CURRENT PENDING FILE I/O'S lists pending
-file i/o requests. A large number of these indicates
-that the workload is disk i/o -bound.
+file I/O requests. A large number of these indicates
+that the workload is disk I/O-bound.
@item
Section BUFFER POOL gives you statistics
on pages read and written. You can calculate from these
-numbers how many data file i/o's your queries are
+numbers how many datafile I/Os your queries are
currently doing.
@end itemize
@@ -38964,7 +39338,7 @@ Accessing a row through the clustered index is fast, because
the row data will be on the same page where the index search
leads us. In many databases the data is traditionally stored on a different
page from the index record. If a table is large, the clustered
-index architecture often saves a disk i/o when compared to the
+index architecture often saves a disk I/O when compared to the
traditional solution.
The records in non-clustered indexes (we also call them secondary indexes),
@@ -39007,7 +39381,7 @@ clustered index do not require random reads from a disk.
On the other hand, secondary indexes are usually non-unique and
insertions happen in a relatively random order into secondary indexes.
-This would cause a lot of random disk i/o's without a special mechanism
+This would cause a lot of random disk I/Os without a special mechanism
used in InnoDB.
If an index record should be inserted to a non-unique secondary index,
@@ -39020,7 +39394,7 @@ pool, and insertions can be made to it very fast.
The insert buffer is periodically merged to the secondary index
trees in the database. Often we can merge several insertions on the
-same page in of the index tree, and hence save disk i/o's.
+same page in of the index tree, and hence save disk I/Os.
It has been measured that the insert buffer can speed up insertions
to a table up to 15 times.
@@ -39080,7 +39454,7 @@ table @code{T}
where an auto-increment column has been defined, and the user does not provide
an explicit value for the column, then InnoDB executes @code{SELECT
MAX(auto-inc-column) FROM T}, and assigns that value incremented
-by one to the the column and the auto-increment counter of the table.
+by one to the column and the auto-increment counter of the table.
We say that
the auto-increment counter for table @code{T} has been initialised.
@@ -39108,27 +39482,27 @@ integer that can be stored in the specified integer type.
@node File space management, Error handling, Table and index, InnoDB
-@subsection File Space Management and Disk i/o
+@subsection File Space Management and Disk I/O
@menu
-* InnoDB Disk i/o:: Disk i/o
+* InnoDB Disk I/O:: Disk I/O
* InnoDB File space:: File Space Management
* InnoDB File Defragmenting:: Defragmenting a Table
@end menu
-@node InnoDB Disk i/o, InnoDB File space, File space management, File space management
-@subsubsection Disk i/o
+@node InnoDB Disk I/O, InnoDB File space, File space management, File space management
+@subsubsection Disk I/O
-In disk i/o InnoDB uses asynchronous i/o. On Windows NT
-it uses the native asynchronous i/o provided by the operating system.
-On Unix, InnoDB uses simulated asynchronous i/o built
-into InnoDB: InnoDB creates a number of i/o threads to take care
-of i/o operations, such as read-ahead. In a future version we will
+In disk I/O InnoDB uses asynchronous I/O. On Windows NT
+it uses the native asynchronous I/O provided by the operating system.
+On Unix, InnoDB uses simulated asynchronous I/O built
+into InnoDB: InnoDB creates a number of I/O threads to take care
+of I/O operations, such as read-ahead. In a future version we will
add support for simulated aio on Windows NT and native aio on those
versions of Unix which have one.
-On Windows NT InnoDB uses non-buffered i/o. That means that the disk
+On Windows NT InnoDB uses non-buffered I/O. That means that the disk
pages InnoDB reads or writes are not buffered in the operating system
file cache. This saves some memory bandwidth.
@@ -39138,19 +39512,19 @@ It adds safety to crash recovery after an operating system crash
or a power outage, and improves performance on most Unix flavors
by reducing the need for fsync operations.
-Doublewrite means that InnoDB before writing pages to a data file
+Doublewrite means that InnoDB before writing pages to a datafile
first writes them to a contiguous tablespace area called the
doublewrite buffer. Only after the write and the flush to the doublewrite
buffer has completed, InnoDB writes the pages to their proper
-positions in the data file. If the operating system crashes in the
+positions in the datafile. If the operating system crashes in the
middle of a page write, InnoDB will in recovery find a good
copy of the page from the doublewrite buffer.
Starting from 3.23.41
-you can also use a raw disk partition as a data file, though this has
-not been tested yet. When you create a new data file you have
+you can also use a raw disk partition as a datafile, though this has
+not been tested yet. When you create a new datafile you have
to put the keyword @code{newraw} immediately after the data
-file size in @code{innodb_data_file_path}. The partition must be
+file-size in @code{innodb_data_file_path}. The partition must be
>= than you specify as the size. Note that 1M in InnoDB is
1024 x 1024 bytes, while in disk specifications 1 MB usually means
1000 000 bytes.
@@ -39160,29 +39534,29 @@ innodb_data_file_path=hdd1:5Gnewraw;hdd2:2Gnewraw
@end example
When you start the database again you @strong{must} change the keyword
-to @code{raw}. Otherwise InnoDB will write over your
+to @code{raw}. Otherwise, InnoDB will write over your
partition!
@example
innodb_data_file_path=hdd1:5Graw;hdd2:2Graw
@end example
-By using a raw disk you can on some Unixes perform unbuffered i/o.
+By using a raw disk you can on some Unixes perform unbuffered I/O.
There are two read-ahead heuristics in InnoDB: sequential read-ahead
and random read-ahead. In sequential read-ahead InnoDB notices that
the access pattern to a segment in the tablespace is sequential.
Then InnoDB will post in advance a batch of reads of database pages to the
-i/o system. In random read-ahead InnoDB notices that some area
+I/O system. In random read-ahead InnoDB notices that some area
in a tablespace seems to be in the process of being
fully read into the buffer pool. Then InnoDB posts the remaining
-reads to the i/o system.
+reads to the I/O system.
-@node InnoDB File space, InnoDB File Defragmenting, InnoDB Disk i/o, File space management
+@node InnoDB File space, InnoDB File Defragmenting, InnoDB Disk I/O, File space management
@subsubsection File Space Management
-The data files you define in the configuration file form the tablespace
+The datafiles you define in the configuration file form the tablespace
of InnoDB. The files are simply catenated to form the tablespace,
there is no striping in use.
Currently you cannot directly instruct where the space is allocated
@@ -39212,10 +39586,9 @@ allocated to segments as a whole, but only as individual pages.
When you issue a query @code{SHOW TABLE STATUS FROM ... LIKE ...}
to ask for available free space in the tablespace, InnoDB will
-report you the space which is certainly usable in totally free extents
-of the tablespace. InnoDB always reserves some extents for
-clean-up and other internal purposes; these reserved extents are not
-included in the free space.
+report the extents which are definitely free in the tablespace.
+InnoDB always reserves some extents for clean-up and other internal
+purposes; these reserved extents are not included in the free space.
When you delete data from a table, InnoDB will contract the corresponding
B-tree indexes. It depends on the pattern of deletes if that frees
@@ -39246,7 +39619,7 @@ Note that a @code{MyISAM} table must fit in a single file
on your operating system.
If the insertions to and index are always ascending and
-records are deleted only from the end, then the the file space management
+records are deleted only from the end, then the file space management
algorithm of InnoDB guarantees that fragmentation in the index will
not occur.
@@ -39290,8 +39663,8 @@ they roll back the corresponding SQL statement.
@itemize @bullet
@item
-@strong{WARNING:} Do @strong{NOT} convert MySQL system tables from
-MyISAM TO InnoDB tables! This is not supported; If you do this MySQL
+@strong{Warning}: do @strong{NOT} convert MySQL system tables from
+MyISAM TO InnoDB tables! This is not supported; if you do this MySQL
will not restart until you restore the old system tables from a backup
or re-generate them with the mysql_install_db script.
@@ -39343,7 +39716,7 @@ pages. After InnoDB has modified the row by storing long fields on
separate pages, the remaining length of the row must be less
than half a database page. The maximun key length is 7000 bytes.
@item
-On some operating systems data files must be < 2 GB. The combined
+On some operating systems datafiles must be < 2 GB. The combined
size of log files must be < 4 GB on 32-bit computers.
@item
The maximum tablespace size is 4 billion database pages. This is also
@@ -39381,7 +39754,7 @@ Finland
* BDB start:: BDB startup options
* BDB characteristics:: Characteristics of @code{BDB} tables:
* BDB TODO:: Things we need to fix for BDB in the near future:
-* BDB portability:: Operating systems supported by @strong{BDB}
+* BDB portability:: Operating systems supported by @code{BDB}
* BDB restrictions:: Restrictions on BDB Tables
* BDB errors:: Errors That May Occur When Using BDB Tables
@end menu
@@ -39488,7 +39861,7 @@ calculate the query.
You may also want to change @code{binlog_cache_size} and
@code{max_binlog_cache_size} if you are using big multi-line transactions.
-@xref{COMMIT}.
+@xref{COMMIT, , @code{COMMIT}}.
@node BDB characteristics, BDB TODO, BDB start, BDB
@@ -39539,7 +39912,7 @@ Internal locking in @code{BDB} tables is done on page level.
maintain a count of the number of rows in the table.
@item
Scanning is slower than with @code{MyISAM} tables as one has data in BDB
-tables stored in B-trees and not in a separate data file.
+tables stored in B-trees and not in a separate datafile.
@item
The application must always be prepared to handle cases where
any change of a @code{BDB} table may make an automatic rollback and any
@@ -39557,9 +39930,9 @@ MyISAM tables.
The optimiser needs to know an approximation of the number of rows in
the table. MySQL solves this by counting inserts and
maintaining this in a separate segment in each BDB table. If you don't
-do a lot of @code{DELETE} or @code{ROLLBACK}:s this number should be
-accurate enough for the MySQL optimiser, but as MySQL
-only store the number on close, it may be wrong if MySQL dies
+issue a lot of @code{DELETE} or @code{ROLLBACK} statements, this number
+should be accurate enough for the MySQL optimiser, but as MySQL
+only stores the number on close, it may be incorrect if MySQL dies
unexpectedly. It should not be fatal even if this number is not 100 %
correct. One can update the number of rows by executing @code{ANALYZE
TABLE} or @code{OPTIMIZE TABLE}. @xref{ANALYZE TABLE} . @xref{OPTIMIZE
@@ -39578,8 +39951,8 @@ wait for enough free disk before continuing.
@itemize @bullet
@item
It's very slow to open many BDB tables at the same time. If you are
-going to use BDB tables, you should not have a very big table cache (>
-256 ?) and you should use @code{--no-auto-rehash} with the @code{mysql}
+going to use BDB tables, you should not have a very big table cache
+(like >256) and you should use @code{--no-auto-rehash} with the @code{mysql}
client. We plan to partly fix this in 4.0.
@item
@code{SHOW TABLE STATUS} doesn't yet provide that much information for BDB
@@ -39592,7 +39965,7 @@ Change to not use page locks at all when we are scanning tables.
@node BDB portability, BDB restrictions, BDB TODO, BDB
-@subsection Operating systems supported by @strong{BDB}
+@subsection Operating systems supported by @code{BDB}
If you after having built MySQL with support for BDB tables get
the following error in the log file when you start @code{mysqld}:
@@ -39605,8 +39978,8 @@ Can't init dtabases
This means that @code{BDB} tables are not supported for your architecture.
In this case you have to rebuild MySQL without BDB table support.
-NOTE: The following list is not complete; We will update this as we get
-more information about this.
+Note: The following list is not complete; we will update it as we
+receive more information about this.
Currently we know that BDB tables works with the following operating
system.
@@ -39639,7 +40012,7 @@ Here follows the restrictions you have when using BDB tables:
@itemize @bullet
@item
BDB tables store in the .db file the path to the file as it was created
-(My guess is that this is to be able to detect locks in a multi-user
+This was done to be able to detect locks in a multi-user
environment that supports symlinks).
The effect of this is that BDB tables are not movable between directories!
@@ -39721,9 +40094,9 @@ other APIs.
@cindex PHP API
PHP is a server-side, HTML-embedded scripting language that may be used to
-create dynamic Web pages. It contains support for accessing several
+create dynamic web pages. It contains support for accessing several
databases, including MySQL. PHP may be run as a separate program
-or compiled as a module for use with the Apache Web server.
+or compiled as a module for use with the Apache web server.
The distribution and documentation are available at the PHP web site
(@uref{http://www.php.net/}).
@@ -39737,7 +40110,7 @@ The distribution and documentation are available at the PHP web site
@itemize @bullet
@item Error: "Maximum Execution Time Exceeded"
-This is a PHP limit; Go into the @file{php3.ini} file and set the maximum
+This is a PHP limit; go into the @file{php3.ini} file and set the maximum
execution time up from 30 seconds to something higher, as needed.
It is also not a bad idea to double the ram allowed per script to 16MB instead of
8 MB.
@@ -39782,10 +40155,10 @@ without change. You need a DataBase Driver (DBD) defined for each
database type. For MySQL, this driver is called
@code{DBD::mysql}.
-For more information on the Perl5 DBI, please visit the @code{DBI} Web
+For more information on the Perl5 DBI, please visit the @code{DBI} web
page and read the documentation:
@example
-@uref{http://www.symbolstone.org/technology/perl/DBI/}
+@uref{http://dbi.perl.org/}
@end example
For more information on Object Oriented Programming
(OOP) as defined in Perl5, see the Perl OOP page:
@@ -39969,7 +40342,7 @@ affected. If no rows are affected, @code{execute} returns @code{"0E0"},
which Perl treats as zero but regards as true. If an error occurs,
@code{execute} returns @code{undef}. For @code{SELECT} statements,
@code{execute} only starts the SQL query in the database; you need to use one
-of the @code{fetch_*} methods described below to retrieve the data.
+of the @code{fetch_*} methods described here to retrieve the data.
Example:
@example
$rv = $sth->execute
@@ -40134,7 +40507,7 @@ handle (and any future children of the handle). Setting @code{$trace_level}
to 2 provides detailed trace information. Setting @code{$trace_level} to 0
disables tracing. Trace output goes to the standard error output by
default. If @code{$trace_filename} is specified, the file is opened in
-append mode and output for @emph{all} traced handles is written to that
+append mode and output for @strong{all} traced handles is written to that
file. Example:
@example
DBI->trace(2); # trace everything
@@ -40156,11 +40529,11 @@ environment variable. Setting it to a numeric value is equivalent to calling
@noindent
@strong{MySQL-specific Methods}
-The methods shown below are MySQL-specific and not part of the
+The methods shown here are MySQL-specific and not part of the
@code{DBI} standard. Several of them are now deprecated:
@code{is_blob}, @code{is_key}, @code{is_num}, @code{is_pri_key},
@code{is_not_null}, @code{length}, @code{max_length}, and @code{table}.
-Where @code{DBI}-standard alternatives exist, they are noted below:
+Where @code{DBI}-standard alternatives exist, they are noted here:
@table @code
@findex DBI->@{insertid@}
@@ -40297,7 +40670,7 @@ You can also use the @code{pod2man}, @code{pod2html}, etc., tools to
translate to other formats.
You can find the latest @code{DBI} information at
-the @code{DBI} Web page:
+the @code{DBI} web page:
@example
@uref{http://www.symbolstone.org/technology/perl/DBI/}
@end example
@@ -40315,48 +40688,48 @@ the @code{DBI} Web page:
* ODBC administrator:: How to fill in the various fields in the ODBC administrator program
* MyODBC connect parameters:: Connect parameters for MyODBC
* ODBC Problems:: How to report problems with MySQL ODBC
-* MyODBC clients:: Programs known to work with @strong{MyODBC}
+* MyODBC clients:: Programs known to work with @code{MyODBC}
* ODBC and last_insert_id:: How to get the value of an @code{AUTO_INCREMENT} column in ODBC
* MyODBC bug report:: Reporting problems with MyODBC
@end menu
-MySQL provides support for ODBC by means of the @strong{MyODBC}
-program. This chapter will teach you how to install @strong{MyODBC},
+MySQL provides support for ODBC by means of the @code{MyODBC}
+program. This chapter will teach you how to install @code{MyODBC},
and how to use it. Here, you will also find a list of common programs that
-are known to work with @strong{MyODBC}.
+are known to work with @code{MyODBC}.
@node Installing MyODBC, ODBC administrator, ODBC, ODBC
@subsection How To Install MyODBC
-@strong{MyODBC} is a 32-bit ODBC (2.50) level 0 (with level 1 and
+@code{MyODBC} is a 32-bit ODBC (2.50) level 0 (with level 1 and
level 2 features) driver for connecting an ODBC-aware application
-to MySQL. @strong{MyODBC} works on Windows 9x/Me/NT/2000/XP
+to MySQL. @code{MyODBC} works on Windows 9x/Me/NT/2000/XP
and most Unix platforms.
-@strong{MyODBC} is in public domain, and you can find the newest
+@code{MyODBC} is in public domain, and you can find the newest
version at @uref{http://www.mysql.com/downloads/api-myodbc.html}.
-If you have problem with @strong{MyODBC} and your program also works
+If you have problem with @code{MyODBC} and your program also works
with OLEDB, you should try the OLEDB driver.
-Normally you only need to install @strong{MyODBC} on Windows machines.
-You only need @strong{MyODBC} for Unix if you have a program like
+Normally you only need to install @code{MyODBC} on Windows machines.
+You only need @code{MyODBC} for Unix if you have a program like
ColdFusion that is running on the Unix machine and uses ODBC to connect
to the databases.
-If you want to install @strong{MyODBC} on a Unix box, you will also need
-an @strong{ODBC} manager. @strong{MyODBC} is known to work with
+If you want to install @code{MyODBC} on a Unix box, you will also need
+an @code{ODBC} manager. @code{MyODBC} is known to work with
most of the Unix ODBC managers. @xref{Portals}.
-To install @strong{MyODBC} on Windows, you should download the
-appropriate @strong{MyODBC} @file{.zip} file,
+To install @code{MyODBC} on Windows, you should download the
+appropriate @code{MyODBC} @file{.zip} file,
unpack it with @code{WinZIP} or some similar program,
and execute the @file{SETUP.EXE} file.
On Windows/NT/XP you may get the following error when trying to install
-@strong{MyODBC}:
+@code{MyODBC}:
@example
An error occurred while copying C:\WINDOWS\SYSTEM\MFC30.DLL. Restart
@@ -40371,14 +40744,14 @@ cases you can continue by just pressing @code{Ignore} to copy the rest
of the MyODBC files and the final installation should still work. If
this doesn't work, the solution is to reboot your computer in ``safe
mode`` (Choose this by pressing F8 just before your machine starts
-Windows during rebooting), install @strong{MyODBC}, and reboot to normal
+Windows during rebooting), install @code{MyODBC}, and reboot to normal
mode.
@itemize @bullet
@item
To make a connection to a Unix box from a Windows box, with an ODBC
application (one that doesn't support MySQL natively), you must
-first install @strong{MyODBC} on the Windows machine.
+first install @code{MyODBC} on the Windows machine.
@item
The user and Windows machine must have the access privileges to the
MySQL server on the Unix machine. This is set up with the
@@ -40390,7 +40763,7 @@ You must create an ODBC DSN entry as follows:
@item
Open the Control Panel on the Windows machine.
@item
-Double-click the ODBC Data Sources 32 bits icon.
+Double-click the ODBC Data Sources 32-bit icon.
@item
Click the tab User DSN.
@item
@@ -40473,8 +40846,8 @@ You can use all options that are usable by @code{mysql_options()}.
@node MyODBC connect parameters, ODBC Problems, ODBC administrator, ODBC
@subsection Connect parameters for MyODBC
-One can specify the following parameters for @strong{MyODBC} on
-the @code{[Servername]} section of an @code{ODBC.INI} file or
+One can specify the following parameters for @code{MyODBC} on
+the @code{[Servername]} section of an @file{ODBC.INI} file or
through the @code{InConnectionString} argument in the
@code{SQLDriverConnect()} call.
@@ -40483,22 +40856,22 @@ through the @code{InConnectionString} argument in the
@item user @tab ODBC (on Windows) @tab The username used to connect to MySQL.
@item server @tab localhost @tab The hostname of the MySQL server.
@item database @tab @tab The default database
-@item option @tab 0 @tab A integer by which you can specify how @strong{MyODBC} should work. See below.
+@item option @tab 0 @tab A integer by which you can specify how @code{MyODBC} should work. See below.
@item port @tab 3306 @tab The TCP/IP port to use if @code{server} is not @code{localhost}.
@item stmt @tab @tab A statement that will be executed when connection to @code{MySQL}.
@item password @tab @tab The password for the @code{server} @code{user} combination.
@item socket @tab @tab The socket or Windows pipe to connect to.
@end multitable
-The option argument is used to tell @strong{MyODBC} that the client isn't 100%
+The option argument is used to tell @code{MyODBC} that the client isn't 100%
ODBC compliant. On Windows, one normally sets the option flag by
toggling the different options on the connection screen but one can also
set this in the opton argument. The following options are listed in the
-same order as they appear in the @strong{MyODBC} connect screen:
+same order as they appear in the @code{MyODBC} connect screen:
@multitable @columnfractions .10 .90
@item @strong{Bit} @tab @strong{Description}
-@item 1 @tab The client can't handle that @strong{MyODBC} returns the real width of a column.
+@item 1 @tab The client can't handle that @code{MyODBC} returns the real width of a column.
@item 2 @tab The client can't handle that MySQL returns the true value of affected rows. If this flag is set then MySQL returns 'found rows' instead. One must have MySQL 3.21.14 or newer to get this to work.
@item 4 @tab Make a debug log in c:\myodbc.log. This is the same as putting @code{MYSQL_DEBUG=d:t:O,c::\myodbc.log} in @file{AUTOEXEC.BAT}
@item 8 @tab Don't set any packet limit for results and parameters.
@@ -40523,22 +40896,22 @@ example setting option to 12 (4+8) gives you debugging without package
limits!
The default @file{MYODBC.DLL} is compiled for optimal performance. If
-you want to to debug @strong{MyODBC} (for example to enable tracing),
-you should instead use @code{MYODBCD.DLL}. To install this file, copy
-@file{MYODBCD.DLL} over the installed @code{MYODBC.DLL} file.
+you want to to debug @code{MyODBC} (for example to enable tracing),
+you should instead use @file{MYODBCD.DLL}. To install this file, copy
+@file{MYODBCD.DLL} over the installed @file{MYODBC.DLL} file.
@node ODBC Problems, MyODBC clients, MyODBC connect parameters, ODBC
@subsection How to Report Problems with MyODBC
-@strong{MyODBC} has been tested with Access, Admndemo.exe, C++-Builder,
+@code{MyODBC} has been tested with Access, Admndemo.exe, C++-Builder,
Borland Builder 4, Centura Team Developer (formerly Gupta SQL/Windows),
ColdFusion (on Solaris and NT with svc pack 5), Crystal Reports,
DataJunction, Delphi, ERwin, Excel, iHTML, FileMaker Pro, FoxPro, Notes
4.5/4.6, SBSS, Perl DBD-ODBC, Paradox, Powerbuilder, Powerdesigner 32
bit, VC++, and Visual Basic.
-If you know of any other applications that work with @strong{MyODBC}, please
+If you know of any other applications that work with @code{MyODBC}, please
send mail to @email{myodbc@@lists.mysql.com} about this!
With some programs you may get an error like:
@@ -40562,8 +40935,8 @@ try to figure out why things go wrong.
@node MyODBC clients, ODBC and last_insert_id, ODBC Problems, ODBC
@subsection Programs Known to Work with MyODBC
-Most programs should work with @strong{MyODBC}, but for each of those
-listed below, we have tested it ourselves or received confirmation from
+Most programs should work with @code{MyODBC}, but for each of those
+listed here, we have tested it ourselves or received confirmation from
some user that it works:
@table @asis
@@ -40652,12 +41025,12 @@ This will give you problems if you have values > 127 in the column!
@cindex ADO program
@item ADO
-When you are coding with the ADO API and @strong{MyODBC} you need to put
+When you are coding with the ADO API and @code{MyODBC} you need to put
attention in some default properties that aren't supported by the
MySQL server. For example, using the @code{CursorLocation
Property} as @code{adUseServer} will return for the @code{RecordCount
Property} a result of -1. To have the right value, you need to set this
-property to @code{adUseClient}, like is showing in the VB code below:
+property to @code{adUseClient}, like is showing in the VB code here:
@example
Dim myconn As New ADODB.Connection
@@ -40697,10 +41070,10 @@ your tables are big!
The following information is taken from the ColdFusion documentation:
Use the following information to configure ColdFusion Server for Linux
-to use the unixODBC driver with @strong{MyODBC} for MySQL data
-sources. Allaire has verified that @strong{MyODBC} Version 2.50.26
+to use the unixODBC driver with @code{MyODBC} for MySQL data
+sources. Allaire has verified that @code{MyODBC} Version 2.50.26
works with MySQL Version 3.22.27 and ColdFusion for Linux. (Any
-newer version should also work.) You can download @strong{MyODBC} at
+newer version should also work.) You can download @code{MyODBC} at
@uref{http://www.mysql.com/downloads/api-myodbc.html}
@cindex ColdFusion program
@@ -40708,7 +41081,7 @@ ColdFusion Version 4.5.1 allows you to us the ColdFusion Administrator
to add the MySQL data source. However, the driver is not
included with ColdFusion Version 4.5.1. Before the MySQL driver
will appear in the ODBC datasources drop-down list, you must build and
-copy the @strong{MyODBC} driver to
+copy the @code{MyODBC} driver to
@file{/opt/coldfusion/lib/libmyodbc.so}.
The Contrib directory contains the program @file{mydsn-xxx.zip} which allows
@@ -40754,7 +41127,7 @@ For example, create a db with a table containing 2 columns of text:
@item
Insert rows using the @code{mysql} client command-line tool.
@item
-Create a DSN file using the MyODBC driver, for example, my for the db above.
+Create a DSN file using the ODBC manager, for example, @file{my} for the db above.
@item
Open the Word application.
@item
@@ -40794,7 +41167,7 @@ You must use BDE Version 3.2 or newer. Set the @code{Don't optimize column widt
option field when connecting to MySQL.
Also, here is some potentially useful Delphi code that sets up both an
-ODBC entry and a BDE entry for @strong{MyODBC} (the BDE entry requires a BDE
+ODBC entry and a BDE entry for @code{MyODBC} (the BDE entry requires a BDE
Alias Editor that is free at a Delphi Super Page near
you. (Thanks to Bryan Brunton @email{bryan@@flesherfab.com} for this):
@@ -40903,28 +41276,28 @@ SELECT * FROM tbl_name WHERE auto IS NULL;
@cindex problems, ODBC
@cindex MyODBC, reporting problems
-If you encounter difficulties with @strong{MyODBC}, you should start by
+If you encounter difficulties with @code{MyODBC}, you should start by
making a log file from the ODBC manager (the log you get when requesting
-logs from ODBCADMIN) and a @strong{MyODBC} log.
+logs from ODBCADMIN) and a @code{MyODBC} log.
-To get a @strong{MyODBC} log, you need to do the following:
+To get a @code{MyODBC} log, you need to do the following:
@enumerate
@item
-Ensure that you are using @code{myodbcd.dll} and not @code{myodbc.dll}.
-The easiest way to do this is to get @code{myodbcd.dll} from the MyODBC
-distribution and copy it over the @code{myodbc.dll}, which is probably
-in your @code{C:\windows\system32} or @code{C:\winnt\system32} directory.
+Ensure that you are using @file{myodbcd.dll} and not @file{myodbc.dll}.
+The easiest way to do this is to get @file{myodbcd.dll} from the MyODBC
+distribution and copy it over the @file{myodbc.dll}, which is probably
+in your @file{C:\windows\system32} or @file{C:\winnt\system32} directory.
Note that you probably want to restore the old myodbc.dll file when you
-have finished testing, as this is a lot faster than @code{myodbcd.dll}.
+have finished testing, as this is a lot faster than @file{myodbcd.dll}.
@item
-Tag the `Trace MyODBC' option flag in the @strong{MyODBC} connect/configure
+Tag the `Trace MyODBC' option flag in the @code{MyODBC} connect/configure
screen. The log will be written to file @file{C:\myodbc.log}.
If the trace option is not remembered when you are going back to the
above screen, it means that you are not using the @code{myodbcd.dll}
-driver (see above).
+driver (see the item above).
@item
Start your application and try to get it to fail.
@end enumerate
@@ -41045,7 +41418,7 @@ values may contain null bytes internally.) Rows are obtained by calling
@tindex MYSQL_FIELD C type
@item MYSQL_FIELD
This structure contains information about a field, such as the field's
-name, type, and size. Its members are described in more detail below.
+name, type, and size. Its members are described in more detail here.
You may obtain the @code{MYSQL_FIELD} structures for each field by
calling @code{mysql_fetch_field()} repeatedly. Field values are not part of
this structure; they are contained in a @code{MYSQL_ROW} structure.
@@ -41073,7 +41446,7 @@ printf (Number of rows: %lu\n", (unsigned long) mysql_num_rows(result));
@end table
@noindent
-The @code{MYSQL_FIELD} structure contains the members listed below:
+The @code{MYSQL_FIELD} structure contains the members listed here:
@table @code
@item char * name
@@ -41091,7 +41464,7 @@ only if you use @code{mysql_list_fields()}.
The type of the field.
The @code{type} value may be one of the following:
-@multitable @columnfractions .30 .50
+@multitable @columnfractions .35 .55
@item @strong{Type value} @tab @strong{Type description}
@item @code{FIELD_TYPE_TINY} @tab @code{TINYINT} field
@item @code{FIELD_TYPE_SHORT} @tab @code{SMALLINT} field
@@ -41114,7 +41487,7 @@ The @code{type} value may be one of the following:
@item @code{FIELD_TYPE_CHAR} @tab Deprecated; use @code{FIELD_TYPE_TINY} instead
@end multitable
-You can use the @code{IS_NUM()} macro to test whether or not a field has a
+You can use the @code{IS_NUM()} macro to test whether a field has a
numeric type. Pass the @code{type} value to @code{IS_NUM()} and it
will evaluate to TRUE if the field is numeric:
@@ -41137,7 +41510,7 @@ value of this variable is zero.
Different bit-flags for the field. The @code{flags} value may have zero
or more of the following bits set:
-@multitable @columnfractions .30 .45
+@multitable @columnfractions .35 .55
@item @strong{Flag value} @tab @strong{Flag description}
@item @code{NOT_NULL_FLAG} @tab Field can't be @code{NULL}
@item @code{PRI_KEY_FLAG} @tab Field is part of a primary key
@@ -41161,7 +41534,7 @@ a field rather than an attribute of its type. It is preferable to test
@code{FIELD_TYPE_SET}, or @code{FIELD_TYPE_TIMESTAMP} instead.
@noindent
-The example below illustrates a typical use of the @code{flags} value:
+The following example illustrates a typical use of the @code{flags} value:
@example
if (field->flags & NOT_NULL_FLAG)
@@ -41171,7 +41544,7 @@ if (field->flags & NOT_NULL_FLAG)
You may use the following convenience macros to determine the boolean
status of the @code{flags} value:
-@multitable @columnfractions .25 .50
+@multitable @columnfractions .25 .55
@item @strong{Flag status} @tab @strong{Description}
@item @code{IS_NOT_NULL(flags)} @tab True if this field is defined as @code{NOT NULL}
@item @code{IS_PRI_KEY(flags)} @tab True if this field is a primary key
@@ -41189,11 +41562,11 @@ The number of decimals for numeric fields.
@cindex C API, functions
@cindex functions, C API
-The functions available in the C API are listed below and are described in
-greater detail in the next section.
+The functions available in the C API are listed here and are described in
+greater detail in a later section.
@xref{C API functions}.
-@multitable @columnfractions .30 .70
+@multitable @columnfractions .32 .68
@item @strong{Function} @tab @strong{Description}
@item @strong{mysql_affected_rows()} @tab
@@ -41231,7 +41604,7 @@ Drops a database. This function is deprecated; use the SQL command
Makes the server write debug information to the log.
@item @strong{mysql_eof()} @tab
-Determines whether or not the last row of a result set has been read.
+Determines whether the last row of a result set has been read.
This function is deprecated; @code{mysql_errno()} or @code{mysql_error()}
may be used instead.
@@ -41319,7 +41692,7 @@ Returns the number of rows in a result set.
Sets connect options for @code{mysql_connect()}.
@item @strong{mysql_ping()} @tab
-Checks whether or not the connection to the server is working, reconnecting
+Checks whether the connection to the server is working, reconnecting
as necessary.
@item @strong{mysql_query()} @tab
@@ -41361,7 +41734,7 @@ Retrieves a complete result set to the client.
Returns the current thread ID.
@item @strong{mysql_thread_safe()} @tab
-Returns 1 if the clients are compiled as thread safe.
+Returns 1 if the clients are compiled as thread-safe.
@item @strong{mysql_use_result()} @tab
Initiates a row-by-row result set retrieval.
@@ -41432,7 +41805,7 @@ faster). Disadvantages are that you must process each row quickly to avoid
tying up the server, you don't have random access to rows within the result
set (you can only access rows sequentially), and you don't know how many rows
are in the result set until you have retrieved them all. Furthermore, you
-@emph{must} retrieve all the rows even if you determine in mid-retrieval that
+@strong{must} retrieve all the rows even if you determine in mid-retrieval that
you've found the information you were looking for.
The API makes it possible for clients to respond appropriately to
@@ -41441,7 +41814,7 @@ not the query is a @code{SELECT}. You can do this by calling
@code{mysql_store_result()} after each @code{mysql_query()} (or
@code{mysql_real_query()}). If the result set call succeeds, the query
was a @code{SELECT} and you can read the rows. If the result set call
-fails, call @code{mysql_field_count()} to determine whether or not a
+fails, call @code{mysql_field_count()} to determine whether a
result was actually to be expected. If @code{mysql_field_count()}
returns zero, the query returned no data (indicating that it was an
@code{INSERT}, @code{UPDATE}, @code{DELETE}, etc.), and was not
@@ -41525,7 +41898,7 @@ when an error occurred and what it was.
* mysql_use_result:: @code{mysql_use_result()}
@end menu
-In the descriptions below, a parameter or return value of @code{NULL} means
+In the descriptions here, a parameter or return value of @code{NULL} means
@code{NULL} in the sense of the C programming language, not a
MySQL @code{NULL} value.
@@ -41832,7 +42205,7 @@ None.
@subsubheading Example
-The call shown below causes the client library to generate a trace file in
+The call shown here causes the client library to generate a trace file in
@file{/tmp/client.trace} on the client machine:
@example
@@ -41921,7 +42294,7 @@ An unknown error occurred.
This function is deprecated. @code{mysql_errno()} or @code{mysql_error()}
may be used instead.
-@code{mysql_eof()} determines whether or not the last row of a result
+@code{mysql_eof()} determines whether the last row of a result
set has been read.
If you acquire a result set from a successful call to
@@ -42203,7 +42576,7 @@ for(i = 0; i < num_fields; i++)
Returns the lengths of the columns of the current row within a result set.
If you plan to copy field values, this length information is also useful for
optimisation, because you can avoid calling @code{strlen()}. In addition, if
-the result set contains binary data, you @emph{must} use this function to
+the result set contains binary data, you @strong{must} use this function to
determine the size of the data, because @code{strlen()} returns incorrect
results for any field containing null characters.
@@ -42268,7 +42641,7 @@ The lengths of the field values in the row may be obtained by calling
@code{mysql_fetch_lengths()}. Empty fields and fields containing
@code{NULL} both have length 0; you can distinguish these by checking
the pointer for the field value. If the pointer is @code{NULL}, the field
-is @code{NULL}; otherwise the field is empty.
+is @code{NULL}; otherwise, the field is empty.
@subsubheading Return Values
@@ -42322,10 +42695,10 @@ Returns the number of columns for the most recent query on the connection.
The normal use of this function is when @code{mysql_store_result()}
returned @code{NULL} (and thus you have no result set pointer).
In this case, you can call @code{mysql_field_count()} to
-determine whether or not @code{mysql_store_result()} should have produced a
+determine whether @code{mysql_store_result()} should have produced a
non-empty result. This allows the client program to take proper action
-without knowing whether or not the query was a @code{SELECT} (or
-@code{SELECT}-like) statement. The example shown below illustrates how this
+without knowing whether the query was a @code{SELECT} (or
+@code{SELECT}-like) statement. The example shown here illustrates how this
may be done.
@xref{NULL mysql_store_result, , @code{NULL mysql_store_result()}}.
@@ -42375,7 +42748,7 @@ else // query succeeded, process any data returned by it
An alternative is to replace the @code{mysql_field_count(&mysql)} call with
@code{mysql_errno(&mysql)}. In this case, you are checking directly for an
error from @code{mysql_store_result()} rather than inferring from the value
-of @code{mysql_field_count()} whether or not the statement was a
+of @code{mysql_field_count()} whether the statement was a
@code{SELECT}.
@@ -42533,9 +42906,9 @@ None.
@subsubheading Description
Retrieves a string providing information about the most recently executed
-query, but only for the statements listed below. For other statements,
+query, but only for the statements listed here. For other statements,
@code{mysql_info()} returns @code{NULL}. The format of the string varies
-depending on the type of query, as described below. The numbers are
+depending on the type of query, as described here. The numbers are
illustrative only; the string will contain values appropriate for the query.
@table @code
@@ -42576,7 +42949,7 @@ None.
Allocates or initialises a @code{MYSQL} object suitable for
@code{mysql_real_connect()}. If @code{mysql} is a @code{NULL} pointer, the
-function allocates, initialises, and returns a new object. Otherwise the
+function allocates, initialises, and returns a new object. Otherwise, the
object is initialised and the address of the object is returned. If
@code{mysql_init()} allocates a new object, it will be freed when
@code{mysql_close()} is called to close the connection.
@@ -42668,7 +43041,7 @@ An unknown error occurred.
Returns a result set consisting of database names on the server that match
the simple regular expression specified by the @code{wild} parameter.
-@code{wild} may contain the wild-card characters @samp{%} or @samp{_}, or may
+@code{wild} may contain the wildcard characters @samp{%} or @samp{_}, or may
be a @code{NULL} pointer to match all databases. Calling
@code{mysql_list_dbs()} is similar to executing the query @code{SHOW
databases [LIKE wild]}.
@@ -42706,7 +43079,7 @@ An unknown error occurred.
Returns a result set consisting of field names in the given table that match
the simple regular expression specified by the @code{wild} parameter.
-@code{wild} may contain the wild-card characters @samp{%} or @samp{_}, or may
+@code{wild} may contain the wildcard characters @samp{%} or @samp{_}, or may
be a @code{NULL} pointer to match all fields. Calling
@code{mysql_list_fields()} is similar to executing the query @code{SHOW
COLUMNS FROM tbl_name [LIKE wild]}.
@@ -42778,7 +43151,7 @@ An unknown error occurred.
Returns a result set consisting of table names in the current database that
match the simple regular expression specified by the @code{wild} parameter.
-@code{wild} may contain the wild-card characters @samp{%} or @samp{_}, or may
+@code{wild} may contain the wildcard characters @samp{%} or @samp{_}, or may
be a @code{NULL} pointer to match all tables. Calling
@code{mysql_list_tables()} is similar to executing the query @code{SHOW
tables [LIKE wild]}.
@@ -42827,11 +43200,11 @@ Note that you can get the number of columns either from a pointer to a result
set or to a connection handle. You would use the connection handle if
@code{mysql_store_result()} or @code{mysql_use_result()} returned
@code{NULL} (and thus you have no result set pointer). In this case, you can
-call @code{mysql_field_count()} to determine whether or not
+call @code{mysql_field_count()} to determine whether
@code{mysql_store_result()} should have produced a non-empty result. This
allows the client program to take proper action without knowing whether or
not the query was a @code{SELECT} (or @code{SELECT}-like) statement. The
-example shown below illustrates how this may be done.
+example shown here illustrates how this may be done.
@xref{NULL mysql_store_result, , @code{NULL mysql_store_result()}}.
@@ -42930,7 +43303,7 @@ argument is the value for the option. If the option is an integer, then
Possible options values:
-@multitable @columnfractions .40 .25 .35
+@multitable @columnfractions .42 .20 .38
@item @strong{Option} @tab @strong{Argument type} @tab @strong{Function}
@item @code{MYSQL_OPT_CONNECT_TIMEOUT} @tab @code{unsigned int *} @tab Connect timeout in seconds.
@item @code{MYSQL_OPT_COMPRESS} @tab Not used @tab Use the compressed client/server protocol.
@@ -42946,7 +43319,7 @@ Note that the group @code{client} is always read if you use
The specified group in the option file may contain the following options:
-@multitable @columnfractions .20 .60
+@multitable @columnfractions .25 .60
@item @strong{Option} @tab @strong{Description}
@item @code{connect-timeout} @tab Connect timeout in seconds. On Linux this timeout is also used for waiting for the first answer from the server.
@item @code{compress} @tab Use the compressed client/server protocol.
@@ -42990,7 +43363,7 @@ if (!mysql_real_connect(&mysql,"host","user","passwd","database",0,NULL,0))
@end example
The above requests the client to use the compressed client/server protocol and
-read the additional options from the @code{odbc} section in the @code{my.cnf}
+read the additional options from the @code{odbc} section in the @file{my.cnf}
file.
@@ -43003,11 +43376,11 @@ file.
@subsubheading Description
-Checks whether or not the connection to the server is working. If it has gone
+Checks whether the connection to the server is working. If it has gone
down, an automatic reconnection is attempted.
This function can be used by clients that remain idle for a long while,
-to check whether or not the server has closed the connection and reconnect
+to check whether the server has closed the connection and reconnect
if necessary.
@subsubheading Return Values
@@ -43114,7 +43487,7 @@ allows the database administrator to set up the MySQL privilege
system in such a way that users get different privileges depending on whether
or not they have specified a password.
-NOTE: Do not attempt to encrypt the password before calling
+Note: Do not attempt to encrypt the password before calling
@code{mysql_real_connect()}; password encryption is handled automatically by
the client API.
@@ -43137,7 +43510,7 @@ parameter determines the type of the connection.
The value of @code{client_flag} is usually 0, but can be set to a combination
of the following flags in very special circumstances:
-@multitable @columnfractions .30 .70
+@multitable @columnfractions .30 .65
@item @strong{Flag name} @tab @strong{Flag description}
@item @code{CLIENT_COMPRESS} @tab Use compression protocol.
@item @code{CLIENT_FOUND_ROWS} @tab Return the number of found (matched) rows, not the number of affected rows.
@@ -43213,7 +43586,7 @@ if (!mysql_real_connect(&mysql,"host","user","passwd","database",0,NULL,0))
@end example
By using @code{mysql_options()} the MySQL library will read the
-@code{[client]} and @code{your_prog_name} sections in the @code{my.cnf}
+@code{[client]} and @code{your_prog_name} sections in the @file{my.cnf}
file which will ensure that your program will work, even if someone has
set up MySQL in some non-standard way.
@@ -43298,7 +43671,7 @@ Executes the SQL query pointed to by @code{query}, which should be a string
You should not add a terminating semicolon (@samp{;}) or @code{\g} to the
statement.
-You @emph{must} use @code{mysql_real_query()} rather than
+You @strong{must} use @code{mysql_real_query()} rather than
@code{mysql_query()} for queries that contain binary data, because binary data
may contain the @samp{\0} character. In addition, @code{mysql_real_query()}
is faster than @code{mysql_query()} because it does not call @code{strlen()} on
@@ -43633,9 +44006,9 @@ This will tie up the server and prevent other threads from updating any
tables from which the data is being fetched.
When using @code{mysql_use_result()}, you must execute
-@code{mysql_fetch_row()} until a @code{NULL} value is returned, otherwise the
+@code{mysql_fetch_row()} until a @code{NULL} value is returned, otherwise, the
unfetched rows will be returned as part of the result set for your next
-query. The C API will give the error @code{Commands out of sync; You can't
+query. The C API will give the error @code{Commands out of sync; you can't
run this command now} if you forget to do this!
You may not use @code{mysql_data_seek()}, @code{mysql_row_seek()},
@@ -43678,6 +44051,7 @@ threaded client. @xref{Threaded clients}.
* my_init:: @code{my_init()}
* mysql_thread_init:: @code{mysql_thread_init()}
* mysql_thread_end:: @code{mysql_thread_end()}
+* mysql_thread_safe:: @code{mysql_thread_safe()}
@end menu
@node my_init, mysql_thread_init, C Thread functions, C Thread functions
@@ -43719,7 +44093,7 @@ This is automatically called by @code{my_init()} and @code{mysql_connect()}.
None.
-@node mysql_thread_end, , mysql_thread_init, C Thread functions
+@node mysql_thread_end, mysql_thread_safe, mysql_thread_init, C Thread functions
@subsubsection @code{mysql_thread_end()}
@findex @code{mysql_thread_end()}
@@ -43738,6 +44112,21 @@ library. It must be called explicitly to avoid a memory leak.
None.
+@node mysql_thread_safe, , mysql_thread_end, C Thread functions
+@subsubsection @code{mysql_thread_safe()}
+
+@findex @code{mysql_thread_safe()}
+
+@code{unsigned int mysql_thread_safe(void)}
+
+@subsubheading Description
+
+This function indicates whether the client is compiled as thread-safe.
+
+@subsubheading Return Values
+
+1 is the client is thread-safe, 0 otherwise.
+
@node C Embedded Server func, C API problems, C Thread functions, C
@subsection C Embedded Server Function Descriptions
@@ -43867,7 +44256,7 @@ The query returned no data (for example, it was an @code{INSERT},
@code{UPDATE}, or @code{DELETE}).
@end itemize
-You can always check whether or not the statement should have produced a
+You can always check whether the statement should have produced a
non-empty result by calling @code{mysql_field_count()}. If
@code{mysql_field_count()} returns zero, the result is empty and the last
query was a statement that does not return values (for example, an
@@ -43989,7 +44378,7 @@ adding @code{-lm} to the end of the compile/link line.
@cindex programs, client
If you compile MySQL clients that you've written yourself or that
-you obtain from a third party, they must be linked using the
+you obtain from a third-party, they must be linked using the
@code{-lmysqlclient -lz} option on the link command. You may also need to
specify a @code{-L} option to tell the linker where to find the library. For
example, if the library is installed in @file{/usr/local/mysql/lib}, use
@@ -44007,26 +44396,26 @@ files.
@cindex clients, threaded
@cindex threaded clients
-The client library is almost thread safe. The biggest problem is
+The client library is almost thread-safe. The biggest problem is
that the subroutines in @file{net.c} that read from sockets are not
interrupt safe. This was done with the thought that you might want to
have your own alarm that can break a long read to a server. If you
install interrupt handlers for the @code{SIGPIPE} interrupt,
-the socket handling should be thread safe.
+the socket handling should be thread-safe.
In the older binaries we distribute on our web site
(@uref{http://www.mysql.com/}), the client libraries are not normally
compiled with the thread-safe option (the Windows binaries are by
-default compiled to be thread safe). Newer binary distributions should
+default compiled to be thread-safe). Newer binary distributions should
have both a normal and a thread-safe client library.
To get a threaded client where you can interrupt the client from other
threads and set timeouts when talking with the MySQL server, you should
-use the @code{-lmysys}, @code{-lstring}, and @code{-ldbug} libraries and
+use the @code{-lmysys}, @code{-lmystrings}, and @code{-ldbug} libraries and
the @code{net_serv.o} code that the server uses.
-If you don't need interrupts or timeouts, you can just compile a thread
-safe client library @code{(mysqlclient_r)} and use this. @xref{C,,
+If you don't need interrupts or timeouts, you can just compile a
+thread-safe client library @code{(mysqlclient_r)} and use this. @xref{C,,
MySQL C API}. In this case you don't have to worry about the
@code{net_serv.o} object file or the other MySQL libraries.
@@ -44037,13 +44426,13 @@ interrupts, you can make great use of the routines in the
@code{my_init()} first! @xref{C Thread functions}.
All functions except @code{mysql_real_connect()} are by default
-thread safe. The following notes describe how to compile a thread-safe
+thread-safe. The following notes describe how to compile a thread-safe
client library and use it in a thread-safe manner. (The notes below for
@code{mysql_real_connect()} actually apply to @code{mysql_connect()} as
well, but because @code{mysql_connect()} is deprecated, you should be
using @code{mysql_real_connect()} anyway.)
-To make @code{mysql_real_connect()} thread safe, you must recompile the
+To make @code{mysql_real_connect()} thread-safe, you must recompile the
client library with this command:
@example
@@ -44051,9 +44440,9 @@ shell> ./configure --enable-thread-safe-client
@end example
This will create a thread-safe client library @code{libmysqlclient_r}.
-@code{--enable-thread-safe-client}. This library is thread safe per
-connection. You can let two threads share the same connection with
-the following caveats:
+(Assuming your OS has a thread-safe @code{gethostbyname_r()} function.)
+This library is thread-safe per connection. You can let two threads
+share the same connection with the following caveats:
@itemize @bullet
@item
@@ -44142,9 +44531,9 @@ client/server version. To change an old threaded application to use the
embedded library, you normally only have to add calls to the following
functions:
-@multitable @columnfractions .25 .65
+@multitable @columnfractions .25 .70
@item @strong{Function} @tab @strong{When to call}
-@item @code{mysql_server_init()} @tab Should be called before any other other MySQL function is called, preferably early in the @code{main()} function.
+@item @code{mysql_server_init()} @tab Should be called before any other MySQL function is called, preferably early in the @code{main()} function.
@item @code{mysql_server_end()} @tab Should be called before your program exits.
@item @code{mysql_thread_init()} @tab Should be called in each thread you create that will access MySQL.
@item @code{mysql_thread_end()} @tab Should be called before calling @code{pthread_exit()}
@@ -44310,8 +44699,8 @@ language = /path/to/source/of/mysql/sql/share/english
one = db_connect("test");
two = db_connect(NULL);
- db_do_query(one, "show table status");
- db_do_query(two, "show databases");
+ db_do_query(one, "SHOW TABLE STATUS");
+ db_do_query(two, "SHOW DATABASES");
mysql_close(two);
mysql_close(one);
@@ -44441,9 +44830,9 @@ compatible with the GPL).
We encourage everyone to promote free software by releasing
code under the GPL or a compatible license. For those who
-are not able to do this, another option is to purchase the
-MySQL code from MySQL AB under a commercial license. For details
-concerning this issue, please see @ref{MySQL server licenses}.
+are not able to do this, another option is to purchase a
+commercial licence for the MySQL code from MySQL AB.
+For details, please see @ref{MySQL licenses}.
@node Cplusplus, Java, C, Clients
@section MySQL C++ APIs
@@ -44577,7 +44966,7 @@ The MySQL server creates the following threads:
@item
The TCP/IP connection thread handles all connection requests and
creates a new dedicated thread to handle the authentication and
-and SQL query processing for each connection.
+SQL query processing for each connection.
@item
On Windows NT there is a named pipe handler thread that does the same work as
@@ -44689,12 +45078,12 @@ The tests are located in @code{mysql-test/t/*.test}
@item
A test case consists of @code{;} terminated statements and is similar to the
-input of @code{mysql} command line client. A statement by default is a query
+input of @code{mysql} command-line client. A statement by default is a query
to be sent to MySQL server, unless it is recognised as internal
command (eg. @code{sleep}).
@item
-All queries that produce results, e.g. @code{SELECT}, @code{SHOW},
+All queries that produce results@-e.g., @code{SELECT}, @code{SHOW},
@code{EXPLAIN}, etc., must be preceded with @code{@@/path/to/result/file}. The
file must contain the expected results. An easy way to generate the result
file is to run @code{mysqltest -r < t/test-case-name.test} from
@@ -44967,7 +45356,7 @@ The C/C++ functions that you write to implement the interface for
@item @code{xxx()} (required)
The main function. This is where the function result is computed.
The correspondence between the SQL type and return type of your C/C++
-function is shown below:
+function is shown here:
@multitable @columnfractions .15 .15
@item @strong{SQL type} @tab @strong{C/C++ type}
@@ -44993,7 +45382,7 @@ Specify the maximum length of the result.
@item
Specify (for @code{REAL} functions) the maximum number of decimals.
@item
-Specify whether or not the result can be @code{NULL}.
+Specify whether the result can be @code{NULL}.
@end itemize
@item @code{xxx_deinit()} (optional)
@@ -45042,7 +45431,7 @@ Repeat 3-5 until all rows has been processed
Call @code{xxx_deinit()} to let the UDF free any memory it has allocated.
@end enumerate
-All functions must be thread safe (not just the main function,
+All functions must be thread-safe (not just the main function,
but the initialisation and deinitialisation functions as well). This means
that you are not allowed to allocate any global or static variables that
change! If you need memory, you should allocate it in @code{xxx_init()}
@@ -45054,7 +45443,7 @@ and free it in @code{xxx_deinit()}.
@cindex calling sequences for simple functions, UDF
-The main function should be declared as shown below. Note that the return
+The main function should be declared as shown here. Note that the return
type and parameters differ, depending on whether you will declare the SQL
function @code{XXX()} to return @code{STRING}, @code{INTEGER}, or @code{REAL}
in the @code{CREATE FUNCTION} statement:
@@ -45118,7 +45507,7 @@ digits. For real functions, the default is 13 plus the number of decimals
indicated by @code{initid->decimals}. (For numeric functions, the length
includes any sign or decimal point characters.)
-If you want to return a blob, you can set this to 65K or 16M; This
+If you want to return a blob, you can set this to 65K or 16M; this
memory is not allocated but used to decide which column type to use if
there is a need to temporary store the data.
@@ -45199,7 +45588,7 @@ will return @code{NULL} as the result for the group function.
@cindex processing, arguments
The @code{args} parameter points to a @code{UDF_ARGS} structure that has the
-members listed below:
+members listed here:
@table @code
@item unsigned int arg_count
@@ -45355,7 +45744,7 @@ parameter to @code{1}:
If @code{xxx()} sets @code{*error} to @code{1} for any row, the function
value is @code{NULL} for the current row and for any subsequent rows
processed by the statement in which @code{XXX()} was invoked. (@code{xxx()}
-will not even be called for subsequent rows.) @strong{Note:} In
+will not even be called for subsequent rows.) @strong{Note}: in
MySQL versions prior to 3.22.10, you should set both @code{*error}
and @code{*is_null}:
@@ -45463,7 +45852,7 @@ You should not use @code{CREATE FUNCTION} to add a function that has already
been created. If you need to reinstall a function, you should remove it with
@code{DROP FUNCTION} and then reinstall it with @code{CREATE FUNCTION}. You
would need to do this, for example, if you recompile a new version of your
-function, so that @code{mysqld} gets the new version. Otherwise the server
+function, so that @code{mysqld} gets the new version. Otherwise, the server
will continue to use the old version.
Active functions are reloaded each time the server starts, unless you start
@@ -45480,7 +45869,7 @@ one that has been loaded with @code{CREATE FUNCTION} and not removed with
@cindex native functions, adding
@cindex functions, native, adding
-The procedure for adding a new native function is described below. Note
+The procedure for adding a new native function is described here. Note
that you cannot add native functions to a binary distribution because
the procedure involves modifying MySQL source code. You must
compile MySQL yourself from a source distribution. Also note
@@ -45543,7 +45932,7 @@ can take a look at @code{Item_func_mod::fix_length_and_dec} for a
typical example of how to do this.
@end enumerate
-All functions must be thread safe (in other words, don't use any global or
+All functions must be thread-safe (in other words, don't use any global or
static variables in the functions without protecting them with mutexes).
If you want to return @code{NULL}, from @code{::val()}, @code{::val_int()}
@@ -45733,7 +46122,7 @@ If a program fails, it's always useful to know:
@item
Has the program in question made a segmentation fault (core dumped)?
@item
-Is the program taking the whole CPU? Check with @code{top}. Let the
+Is the program taking up the whole CPU? Check with @code{top}. Let the
program run for a while, it may be evaluating something heavy.
@item
If it's the @code{mysqld} server that is causing problems, can you
@@ -45803,16 +46192,13 @@ Another common reason to receive the @code{MySQL server has gone away} error
is because you have issued a ``close'' on your MySQL connection
and then tried to run a query on the closed connection.
-You can check that the MySQL hasn't died by executing
-@code{mysqladmin version} and examining the uptime.
-
If you have a script, you just have to issue the query again for the client
to do an automatic reconnection.
You normally can get the following error codes in this case
(which one you get is OS-dependent):
-@multitable @columnfractions .35 .60
+@multitable @columnfractions .35 .65
@item @strong{Error code} @tab @strong{Description}
@item @code{CR_SERVER_GONE_ERROR} @tab The client couldn't send a question to the
server.
@@ -45820,6 +46206,15 @@ server.
to the server, but it didn't get a full answer (or any answer) to the question.
@end multitable
+You will also get this error if someone has kills the running thread with
+@code{kill #threadid#}.
+
+You can check that the MySQL hasn't died by executing @code{mysqladmin
+version} and examining the uptime. If the problem is that mysqld
+crashed you should concentrate one finding the reason for the crash.
+You should in this case start by checking if issuing the query again
+will kill MySQL again. @xref{Crashing}.
+
You can also get these errors if you send a query to the server that is
incorrect or too large. If @code{mysqld} gets a packet that is too large
or out of order, it assumes that something has gone wrong with the client and
@@ -45830,6 +46225,26 @@ starting @code{mysqld} with the @code{-O max_allowed_packet=#} option
use more memory only when you issue a big query or when @code{mysqld} must
return a big result row!
+If you want to make a bug report regarding this problem, be sure that
+you include the following information:
+
+@itemize @bullet
+@item
+Include information if MySQL died or not. (You can find this in the
+@code{hostname.err file}. @xref{Crashing}.
+@item
+If a specific query kills @code{mysqld} and the involved tables where
+checked with @code{CHECK TABLE} before you did the query, can you do
+a test case for this? @xref{Reproduceable test case}.
+@item
+What is the value of the @code{wait_timeout} variable in the MySQL server ?
+@code{mysqladmin variables} gives you the value of this
+@item
+Have you tried to run @code{mysqld} with @code{--log} and check if the
+issued query appears in the log ?
+@end itemize
+
+@xref{Asking questions}.
@node Can not connect to server, Blocked host, Gone away, Common errors
@appendixsubsec @code{Can't connect to [local] MySQL server} Error
@@ -46073,7 +46488,7 @@ Note that both the client and the server has it's own
you have to increase this variable both in the client and in the server.
It's safe to increase this variable as memory is only allocated when
-needed; This variable is more a precaution to catch wrong packets
+needed; this variable is more a precaution to catch wrong packets
between the client/server and also to ensure that you don't accidently
use big packets so that you run out of memory.
@@ -46225,7 +46640,7 @@ Error code 28: No space left on device
@cindex commands out of sync
-If you get @code{Commands out of sync; You can't run this command now}
+If you get @code{Commands out of sync; you can't run this command now}
in your client code, you are calling client functions in the wrong order!
This can happen, for example, if you are using @code{mysql_use_result()} and
@@ -46239,7 +46654,7 @@ a @code{mysql_use_result()} or @code{mysql_store_result()} in between.
If you get the following error:
-@code{Found wrong password for user: 'some_user@@some_host'; Ignoring user}
+@code{Found wrong password for user: 'some_user@@some_host'; ignoring user}
this means that when @code{mysqld} was started or when it reloaded the
permissions tables, it found an entry in the @code{user} table with
@@ -46270,8 +46685,8 @@ You have specified a password in the @code{user} table without using the
function:
@example
-mysql> update user set password=PASSWORD('your password')
- -> where user='XXX';
+mysql> UPDATE user SET password=PASSWORD('your password')
+ -> WHERE user='XXX';
@end example
@end itemize
@@ -46284,8 +46699,8 @@ find file: 'xxx' (errno: 2)}, this means that no table exists
in the current database with the name @code{xxx}.
Note that as MySQL uses directories and files to store databases and
-tables, the database and table names are @strong{case sensitive}!
-(On Windows the databases and tables names are not case sensitive, but all
+tables, the database and table names are @strong{case-sensitive}!
+(On Windows the databases and tables names are not case-sensitive, but all
references to a given table within a query must use the same case!)
You can check which tables you have in the current database with
@@ -46534,7 +46949,7 @@ as a Unix user other than @code{root}; just specify the @code{-u root} option
to the client program.
Note that accessing MySQL as @code{root}, by supplying @code{-u
-root} on the command line, has @emph{nothing} to do with MySQL running
+root} on the command-line, has @strong{nothing} to do with MySQL running
as the Unix @code{root} user, or, indeed, as another Unix user. The access
permissions and user names of MySQL are completely separate from
Unix user names. The only connection with Unix user names is that if you
@@ -46652,11 +47067,11 @@ Someone is manipulating the data/index files outside of @strong{mysqld}
without locking the table properly.
@item
If you are running many @code{mysqld} servers on the same data on a
-system that doesn't support good file system locks (normally handled by
+system that doesn't support good filesystem locks (normally handled by
the @code{lockd} daemon ) or if you are running
multiple servers with @code{--skip-locking}
@item
-You have a crashed index/data file that contains very wrong data that
+You have a crashed index/datafile that contains very wrong data that
got @code{mysqld} confused.
@item
You have found a bug in the data storage code. This isn't that likely,
@@ -46666,11 +47081,16 @@ repaired copy of the table!
@end itemize
Because it is very difficult to know why something is crashing, first try to
-check whether or not things that work for others crash for you. Please try
+check whether things that work for others crash for you. Please try
the following things:
@itemize @bullet
@item
+Cleaned up @code{NULL} handling for default values in @code{DESCRIBE
+table_name}.
+@item
+Fixed @code{truncate()} to round up negative values to the nearest integer.
+@item
Take down the @code{mysqld} daemon with @code{mysqladmin shutdown}, run
@code{myisamchk --silent --force */*.MYI} on all tables, and restart the
@code{mysqld} daemon. This will ensure that you are running from a clean
@@ -46678,7 +47098,7 @@ state. @xref{MySQL Database Administration}.
@item
Use @code{mysqld --log} and try to determine from the information in the log
-whether or not some specific query kills the server. About 95% of all bugs are
+whether some specific query kills the server. About 95% of all bugs are
related to a particular query! Normally this is one of the last queries in
the log file just before MySQL restarted. @xref{Query log}.
If you can repeatadly kill MySQL with one of the queries, even
@@ -46843,7 +47263,7 @@ When a disk-full condition occurs, MySQL does the following:
@itemize @bullet
@item
-It checks once every minute to see whether or not there is enough space to
+It checks once every minute to see whether there is enough space to
write the current row. If there is enough space, it continues as if nothing had
happened.
@item
@@ -46885,16 +47305,16 @@ unchanged).
MySQL uses the value of the @code{TMPDIR} environment variable as
the pathname of the directory in which to store temporary files. If you don't
have @code{TMPDIR} set, MySQL uses the system default, which is
-normally @file{/tmp} or @file{/usr/tmp}. If the file system containing your
+normally @file{/tmp} or @file{/usr/tmp}. If the filesystem containing your
temporary file directory is too small, you should edit @code{safe_mysqld} to
-set @code{TMPDIR} to point to a directory in a file system where you have
+set @code{TMPDIR} to point to a directory in a filesystem where you have
enough space! You can also set the temporary directory using the
@code{--tmpdir} option to @code{mysqld}.
MySQL creates all temporary files as hidden files. This ensures
that the temporary files will be removed if @code{mysqld} is terminated. The
disadvantage of using hidden files is that you will not see a big temporary
-file that fills up the file system in which the temporary file directory is
+file that fills up the filesystem in which the temporary file directory is
located.
When sorting (@code{ORDER BY} or @code{GROUP BY}), MySQL normally
@@ -46924,14 +47344,14 @@ the original table.
If you have problems with the fact that anyone can delete the
MySQL communication socket @file{/tmp/mysql.sock}, you can,
-on most versions of Unix, protect your @file{/tmp} file system by setting
+on most versions of Unix, protect your @file{/tmp} filesystem by setting
the @code{sticky} bit on it. Log in as @code{root} and do the following:
@example
shell> chmod +t /tmp
@end example
-This will protect your @file{/tmp} file system so that files can be deleted
+This will protect your @file{/tmp} filesystem so that files can be deleted
only by their owners or the superuser (@code{root}).
You can check if the @code{sticky} bit is set by executing @code{ls -ld /tmp}.
@@ -46956,7 +47376,7 @@ socket=path-for-socket-file
@end example
@xref{Option files}.
@item
-Specifying this on the command line to @code{safe_mysqld} and most
+Specifying this on the command-line to @code{safe_mysqld} and most
clients with the @code{--socket=path-for-socket-file} option.
@item
Specify the path to the socket in the @code{MYSQL_UNIX_PORT} environment
@@ -46999,7 +47419,7 @@ the server runs, for example, in @code{safe_mysqld} or @code{mysql.server}.
* Problems with alias:: Problems with @code{alias}
* Deleting from related tables:: Deleting Rows from Related Tables
* No matching rows:: Solving Problems with No Matching Rows
-* Problems with float:: Problems with floating point comparison
+* Problems with float:: Problems with floating-point comparison
@end menu
@node Case sensitivity, Using DATE, Query Issues, Query Issues
@@ -47011,7 +47431,7 @@ the server runs, for example, in @code{safe_mysqld} or @code{mysql.server}.
@cindex Big5 Chinese character encoding
By default, MySQL searches are case-insensitive (although there are
-some character sets that are never case insensitive, such as @code{czech}).
+some character sets that are never case-insensitive, such as @code{czech}).
That means that if you search with @code{col_name LIKE 'a%'}, you will get all
column values that start with @code{A} or @code{a}. If you want to make this
search case-sensitive, use something like @code{INSTR(col_name, "A")=1} to
@@ -47064,8 +47484,8 @@ makes sense as a date.
The special date @code{'0000-00-00'} can be stored and retrieved as
@code{'0000-00-00'.} When using a @code{'0000-00-00'} date through
-@strong{MyODBC}, it will automatically be converted to @code{NULL} in
-@strong{MyODBC} Version 2.50.12 and above, because ODBC can't handle this kind of
+@code{MyODBC}, it will automatically be converted to @code{NULL} in
+@code{MyODBC} Version 2.50.12 and above, because ODBC can't handle this kind of
date.
Because MySQL performs the conversions described above, the following
@@ -47081,7 +47501,7 @@ mysql> INSERT INTO tbl_name (idate) VALUES ('0000-00-00');
mysql> SELECT idate FROM tbl_name WHERE idate >= '1997-05-05';
mysql> SELECT idate FROM tbl_name WHERE idate >= 19970505;
-mysql> SELECT mod(idate,100) FROM tbl_name WHERE idate >= 19970505;
+mysql> SELECT MOD(idate,100) FROM tbl_name WHERE idate >= 19970505;
mysql> SELECT idate FROM tbl_name WHERE idate >= '19970505';
@end example
@@ -47096,7 +47516,7 @@ mysql> SELECT idate FROM tbl_name WHERE STRCMP(idate,'19970505')=0;
a string and performs a string comparison. It does not convert
@code{'19970505'} to a date and perform a date comparison.
-Note that MySQL does no checking whether or not the date is
+Note that MySQL does no checking whether the date is
correct. If you store an incorrect date, such as @code{'1998-2-31'}, the
wrong date will be stored. If the date cannot be converted to any reasonable
value, a @code{0} is stored in the @code{DATE} field. This is mainly a speed
@@ -47113,7 +47533,7 @@ the server.
The concept of the @code{NULL} value is a common source of confusion for
newcomers to SQL, who often think that @code{NULL} is the same thing as an
-empty string @code{''}. This is not the case! For example, the following
+empty string @code{""}. This is not the case! For example, the following
statements are completely different:
@example
@@ -47153,10 +47573,12 @@ mysql> SELECT * FROM my_table WHERE phone IS NULL;
mysql> SELECT * FROM my_table WHERE phone = "";
@end example
-In MySQL, as in many other SQL servers, you can't index
-columns that can have @code{NULL} values. You must declare such columns
-@code{NOT NULL}. Conversely, you cannot insert @code{NULL} into an indexed
-column.
+Note that you can only add an index on a column that can have @code{NULL}
+values if you are using MySQL Version 3.23.2 or newer and are using the
+@code{MyISAM} or @code{InnoDB} table type.
+In earlier versions and with other table types, you must declare such
+columns @code{NOT NULL}. This also means you cannot then insert
+@code{NULL} into an indexed column.
@findex LOAD DATA INFILE
When reading data with @code{LOAD DATA INFILE}, empty columns are updated
@@ -47219,9 +47641,9 @@ decide which rows from the result set should be used.
@cindex rows, deleting
@cindex tables, deleting rows
-As MySQL doesn't support sub-selects or use of more than one table
-in the @code{DELETE} statement, you should use the following approach to
-delete rows from 2 related tables:
+As MySQL doesn't yet support sub-selects, nor the use of more than one
+table in the @code{DELETE} statement (prior to Version 4.0), you should
+use the following approach to delete rows from 2 related tables:
@enumerate
@item
@@ -47292,17 +47714,17 @@ Post the test file using @code{mysqlbug} to @email{mysql@@lists.mysql.com}.
@end enumerate
@node Problems with float, , No matching rows, Query Issues
-@appendixsubsec Problems with Floating Point Comparison
+@appendixsubsec Problems with Floating-Point Comparison
-Floating point numbers cause confusion sometimes, because these numbers
+floating-point numbers cause confusion sometimes, because these numbers
are not stored as exact values inside computer architecture. What one
can see on the screen usually is not the exact value of the number.
Field types @code{FLOAT}, @code{DOUBLE} and @code{DECIMAL} are such.
@example
-CREATE TABLE t1 (i int, d1 decimal(9,2), d2 decimal(9,2));
-INSERT INTO t1 values (1, 101.40, 21.40), (1, -80.00, 0.00),
+CREATE TABLE t1 (i INT, d1 DECIMAL(9,2), d2 DECIMAL(9,2));
+INSERT INTO t1 VALUES (1, 101.40, 21.40), (1, -80.00, 0.00),
(2, 0.00, 0.00), (2, -13.20, 0.00), (2, 59.60, 46.40),
(2, 30.40, 30.40), (3, 37.00, 7.40), (3, -29.60, 0.00),
(4, 60.00, 15.40), (4, -10.60, 0.00), (4, -34.00, 0.00),
@@ -47329,7 +47751,7 @@ difference between the numbers show up around tenth decimal, or so
depending on computer architecture.
The problem cannot be solved by using ROUND() (or similar function),
-because the result is still a floating point number. Example:
+because the result is still a floating-point number. Example:
@example
mysql> SELECT i, ROUND(SUM(d1), 2) AS a, ROUND(SUM(d2), 2) AS b
@@ -47363,7 +47785,7 @@ mysql> SELECT i, ROUND(SUM(d1), 2)*1.0000000000000000 AS a,
@end example
Depending on the computer architecture you may or may not see similar results.
-Each CPU may evaluate floating point numbers differently. For example in
+Each CPU may evaluate floating-point numbers differently. For example in
some machines you may get 'right' results by multiplaying both arguments
with 1, an example follows.
@@ -47381,14 +47803,14 @@ mysql> SELECT i, ROUND(SUM(d1), 2)*1 AS a, ROUND(SUM(d2), 2)*1 AS b
@end example
The reason why the above example seems to be working is that on the
-particular machine where the test was done, the CPU floating point
+particular machine where the test was done, the CPU floating-point
arithmetics happens to round the numbers to same, but there is no
rule that any CPU should do so, so it cannot be trusted.
-The correct way to do floating point number comparison is to first
+The correct way to do floating-point number comparison is to first
decide on what is the wanted tolerance between the numbers and then do
the comparsion against the tolerance number. For example, if we agree on
-that floating point numbers should be regarded the same, if they are
+that floating-point numbers should be regarded the same, if they are
same with precision of one of ten thousand (0.0001), the comparsion
should be done like this:
@@ -47523,14 +47945,14 @@ The following are a list of the limitations with @code{TEMPORARY TABLES}.
@itemize @bullet
@item
-A temporary table can only be of type @code{HEAP}, @code{ISAM} or
-@code{MyISAM}.
+A temporary table can only be of type @code{HEAP}, @code{ISAM},
+@code{MyISAM} or @code{InnoDB}.
@item
You can't use temporary tables more than once in the same query.
For example, the following doesn't work.
@example
-select * from temporary_table, temporary_table as t2;
+mysql> SELECT * FROM temporary_table, temporary_table AS t2;
@end example
We plan to fix the above in 4.0.
@@ -47555,7 +47977,7 @@ tools and add-ons.
A list of what is available at
@uref{http://www.mysql.com/Downloads/Contrib/}
-(or any mirror) is shown below.
+(or any mirror) is shown here.
Please visit our Software Portal at
@uref{http://www.mysql.com/portal/software/}.
@@ -47620,7 +48042,7 @@ license. Please check @uref{http://www.worldserver.com/mm.mysql/} for
the latest drivers (and other JDBC information) because these drivers may be out of date.
@item @uref{http://www.caucho.com/projects/jdbc-mysql/index.xtp}
-The Resin commercial JDBC driver, which is released under Open Source.
+The Resin commercial JDBC driver, which is released under @code{Open Source}.
It claims to be faster than the mm driver, but we haven't received that much
information about this yet.
@@ -47714,7 +48136,7 @@ Python interface for MySQL. By Joseph Skinner @email{joe@@earthlight.co.nz}. Mod
@item @uref{http://www.mysql.com/Downloads/Contrib/MySQL-python-0.3.0.tar.gz}
MySQLdb Python is an DB-API v2.0-compliant interface to MySQL. Transactions
are supported if the server and tables support them. It is
-thread safe, and contains a compatibility module for older code
+thread-safe, and contains a compatibility module for older code
written for the no-longer-maintained MySQLmodule interface.
@item @uref{http://www.mysql.com/Downloads/Contrib/mysql_mex_12.tar.gz}
@@ -47777,7 +48199,7 @@ By Ken Menzel @email{kenm@@icarz.com}.
@item @uref{http://www.mysql.com/Downloads/Contrib/MYSQLX.EXE}
MySQL ActiveX Object for directly accessing your MySQL
servers from IIS/ASP, VB, VC++ skipping the slower ODBC methods. Fully
-updatable, multithreaded with full support for all MySQL fieldtypes
+updatable, multi-threaded with full support for all MySQL fieldtypes
(version 2001.1.1). By SciBit @uref{http://www.scibit.com/}.
@item @uref{http://www.fastflow.it/mylua/}
@@ -47912,7 +48334,7 @@ The xmysql homepage is at @uref{http://web.wt.net/~dblhack/}
Requires @uref{http://bragg.phys.uwm.edu/xforms/} (xforms 0.88) to work.
@item @uref{http://www.tamos.net/sw/dbMetrix/}
-dbMatrix is an Open Source client for exploring databases and executing
+dbMatrix is an @code{Open Source} client for exploring databases and executing
SQL. Supports MySQL, Oracle, PostgreSQL, and mSQL.
@item @uref{http://www.multimania.com/bbrox/GtkSQL/}
@@ -47942,7 +48364,7 @@ Oracle 8 and MySQL as the back-end databases. It requires JDK 1.3 from
JavaSoft.
@item @uref{http://www.jetools.com/products/databrowser/}
The DataBrowser is a cross-database, cross-platform data access tool. It is more
-user friendly than tools like SQL Plus, psql (command line based tools). It is more
+user friendly than tools like SQL Plus, psql (command-line based tools). It is more
flexible than TOAD, ISQL, PGAccess which are GUI's that are limitied to a single
platform or database.
@item @uref{http://www.intrex.net/amit/software/}
@@ -47970,7 +48392,7 @@ WWW MySQL administrator for the @code{user,} @code{db} and
@item @uref{http://www.mysql.com/Downloads/Contrib/mysql-webadmin-1.0a8-rz.tar.gz}
A tool written in PHP-FI to administrate MySQL databases
-remotely over the web within a Web-Browser. By Peter Kuppelwieser,
+remotely over the web within a web-browser. By Peter Kuppelwieser,
@email{peter.kuppelwieser@@kantea.it}. Updated by Wim Bonis,
@email{bonis@@kiss.de}. Not maintained anymore!
@@ -48008,8 +48430,8 @@ This cgi scripts in Perl enables you to edit content of Mysql
database. By Tomas Zeman.
@item @uref{http://worldcommunity.com/opensource/futuresql/}
-FutureSQL by Peter F. Brown, is a free, Open Source rapid application
-development Web database administration tool, written in Perl,
+FutureSQL by Peter F. Brown, is a free, @code{Open Source} rapid application
+development web database administration tool, written in Perl,
using MySQL. It uses @code{DBI:DBD} and @code{CGI.pm}.
FutureSQL allows one to easily set up config files to view, edit, delete,
@@ -48184,13 +48606,13 @@ while converting, quotes @strong{all} special characters in text and
binary data, and so on. It will also convert to @code{mSQL} v1 and v2,
and is free of charge for anyone. See
@uref{http://www.cynergi.net/exportsql/} for the latest version. By
-Pedro Freire, @email{support@@cynergi.net}. NOTE: Doesn't work with
+Pedro Freire, @email{support@@cynergi.net}. Note: Doesn't work with
Access2!
@item @uref{http://www.mysql.com/Downloads/Contrib/access_to_mysql.txt}
Paste this function into an Access module of a database that has the
tables you want to export. See also @code{exportsql}. By Brian Andrews.
-NOTE: Doesn't work with Access2!
+Note: Doesn't work with Access2!
@item @uref{http://www.mysql.com/Downloads/Contrib/importsql.txt}
A script that does the exact reverse of @code{exportsql.txt}. That is,
@@ -48200,7 +48622,7 @@ use Access for all DB design and administration, and synchronise with
your actual MySQL server either way. Free of charge. See
@uref{http://www.netdive.com/freebies/importsql/} for any updates.
Created by Laurent Bossavit of NetDIVE.
-@strong{NOTE:} Doesn't work with Access2!
+@strong{Note}: doesn't work with Access2!
@item @uref{http://www.mysql.com/Downloads/Contrib/mdb2sql.bas}
Converter from Access97 to MySQL by Moshe Gurvich.
@@ -48420,7 +48842,7 @@ hashing. In use since 1981 and published around 1984.
@item
The @code{replace} program (take a look at it, it's @strong{COOL}!).
@item
-@strong{MyODBC}, the ODBC driver for Windows95.
+@code{MyODBC}, the ODBC driver for Windows95.
@item
Fixing bugs in MIT-pthreads to get it to work for MySQL Server. And
also Unireg, a curses-based application tool with many utilities.
@@ -48881,7 +49303,7 @@ This appendix lists the changes from version to version in the MySQL
source code.
Note that we tend to update the manual at the same time we make changes to
-MySQL. If you find a version listed below that you can't
+MySQL. If you find a version listed here that you can't
find on the MySQL download page
(@uref{http://www.mysql.com/downloads/}),
this means that the version has not yet been released!
@@ -48909,8 +49331,8 @@ Our TODO section contains what we plan to have in 4.0. @xref{TODO MySQL 4.0}.
@menu
* News-4.0.2:: Changes in release 4.0.2
-* News-4.0.1:: Changes in release 4.0.1
-* News-4.0.0:: Changes in release 4.0.0
+* News-4.0.1:: Changes in release 4.0.1 (23 Dec 2001)
+* News-4.0.0:: Changes in release 4.0.0 (Oct 2001: Alpha)
@end menu
@node News-4.0.2, News-4.0.1, News-4.0.x, News-4.0.x
@@ -48918,7 +49340,47 @@ Our TODO section contains what we plan to have in 4.0. @xref{TODO MySQL 4.0}.
@itemize @bullet
@item
-@code{INET_NTOA()} now returns @code{NULL} if you give it a too big argument.
+Fixed bug in @code{GROUP BY} with two or more fields, where at least one
+field can contain @code{NULL} values.
+@item
+Use @code{Turbo Boyer-Moore} algorithm to speed up @code{LIKE "%keyword%"}
+searches.
+@item
+Fixed bug in @code{DROP DATABASE} with symlink.
+@item
+Fixed crash in @code{REPAIR ... USE_FRM}.
+@item
+Fixed bug in @code{EXPLAIN} with @code{LIMIT offset != 0}
+@item
+Fixed bug in phrase operator @code{"..."} in boolean full-text search.
+@item
+Fixed bug that caused duplicated rows when using truncation operator
+@code{*} in boolean full-text search.
+@item
+Fixed bug in truncation operator of boolean full-text search (wrong results
+when there are only @code{+word*}'s in the query).
+@item
+Fixed bug in boolean full-text search that caused a crash when an identical
+@code{MATCH} expression that did not use an index appeared twice.
+@item
+Query cache is now automatically disabled in @code{mysqldump}.
+@item
+Fixed problem on Windows 98 that made sending of results very slow.
+@item
+Boolean full-text search weighting scheme changed to something more reasonable.
+@item
+Fixed bug in boolean full-text search that caused MySQL to ignore queries of
+@code{ft_min_word_len} characters.
+@item
+Boolean full-text search now supports ``phrase searches''.
+@item
+New configure option @code{--without-query-cache}.
+@item
+Memory allocation strategy for ``root memory'' changed. Block size now grows
+with number of allocated blocks.
+@item
+@code{INET_NTOA()} now returns @code{NULL} if you give it an argument that
+is too large (greater than the value corresponding to @code{255.255.255.255}).
@item
Fix @code{SQL_CALC_FOUND_ROWS} to work with @code{UNION}s. It will work only
if the first @code{SELECT} has this option and if there is global @code{LIMIT}
@@ -49062,17 +49524,27 @@ Changed order in which keys are created in tables.
@item
Added new columns @code{Null} and @code{Index_type} to @code{SHOW INDEX}
output.
+@item
+Added @code{--no-beep} and @code{--prompt} options to @code{mysql} command-line client.
+@item
+New feature: management of user resources.
+@example
+GRANT ... WITH MAX_QUERIES_PER_HOUR = N1
+ MAX_UPDATES_PER_HOUR = N2
+ MAX_CONNECTIONS_PER_HOUR = N3;
+@end example
+@xref{User resources}.
@end itemize
@node News-4.0.1, News-4.0.0, News-4.0.2, News-4.0.x
-@appendixsubsec Changes in release 4.0.1
+@appendixsubsec Changes in release 4.0.1 (23 Dec 2001)
@itemize @bullet
@item
Fixed bug when @code{HANDLER} was used with some unsupported table type.
@item
@code{mysqldump} now puts @code{ALTER TABLE tbl_name DISABLE KEYS} and
-@code{ALTER TABLE tbl_name DISABLE KEYS} in the sql dump.
+@code{ALTER TABLE tbl_name ENABLE KEYS} in the sql dump.
@item
Added @code{mysql_fix_extensions} script.
@item
@@ -49118,7 +49590,7 @@ Added support for @code{MATCH ... AGAINST(... IN BOOLEAN MODE)}.
@code{ALTER TABLE tablename TYPE=MyISAM} to be
able to use boolean full-text search}.
@item
-@code{LOCATE()} and @code{INSTR()} are now case sensitive if either
+@code{LOCATE()} and @code{INSTR()} are now case-sensitive if either
argument is a binary string.
@item
Changed @code{RAND()} initialisation so that @code{RAND(N)} and
@@ -49139,7 +49611,7 @@ Indexes are now used with @code{ORDER BY} on a whole @code{InnoDB} table.
@end itemize
@node News-4.0.0, , News-4.0.1, News-4.0.x
-@appendixsubsec Changes in release 4.0.0
+@appendixsubsec Changes in release 4.0.0 (Oct 2001: Alpha)
@itemize @bullet
@item
@@ -49169,7 +49641,7 @@ now handle signed and unsigned @code{BIGINT} numbers correctly.
New character set @code{latin_de} which provides correct German sorting.
@item
@code{STRCMP()} now uses the current character set when doing comparisons,
-which means that the default comparison behavior now is case insensitive.
+which means that the default comparison behavior now is case-insensitive.
@item
@code{TRUNCATE TABLE} and @code{DELETE FROM tbl_name} are now separate
functions. One bonus is that @code{DELETE FROM tbl_name} now returns
@@ -49211,7 +49683,8 @@ Optimised queries of type:
@item
@code{LOAD DATA FROM MASTER} ``auto-magically'' sets up a slave.
@item
-Renamed @code{safe_mysqld} to @code{mysqld_safe}.
+Renamed @code{safe_mysqld} to @code{mysqld_safe} to make this name more
+in line with other MySQL scripts/commands.
@item
Added support for symbolic links to @code{MyISAM} tables. Symlink handling is
now enabled by default for Windows.
@@ -49263,12 +49736,12 @@ present in previous versions. We have added three new
table types:
@table @asis
-@item @strong{MyISAM}
+@item @code{MyISAM}
A new ISAM library which is tuned for SQL and supports large files.
-@item @strong{BerkeleyDB} or @strong{BDB}
+@item @code{BerkeleyDB} or @code{BDB}
Uses the Berkeley DB library from Sleepycat Software to implement
transaction-safe tables.
-@item @strong{InnoDB}
+@item @code{InnoDB}
A transaction-safe table handler that supports row level locking, and many
Oracle-like features.
@end table
@@ -49296,43 +49769,43 @@ not yet 100% confident in this code.
@menu
* News-3.23.51:: Changes in release 3.23.51
-* News-3.23.50:: Changes in release 3.23.50
+* News-3.23.50:: Changes in release 3.23.50 (21 Apr 2002)
* News-3.23.49:: Changes in release 3.23.49
-* News-3.23.48:: Changes in release 3.23.48
-* News-3.23.47:: Changes in release 3.23.47
-* News-3.23.46:: Changes in release 3.23.46
-* News-3.23.45:: Changes in release 3.23.45
-* News-3.23.44:: Changes in release 3.23.44
+* News-3.23.48:: Changes in release 3.23.48 (07 Feb 2002)
+* News-3.23.47:: Changes in release 3.23.47 (27 Dec 2001)
+* News-3.23.46:: Changes in release 3.23.46 (29 Nov 2001)
+* News-3.23.45:: Changes in release 3.23.45 (22 Nov 2001)
+* News-3.23.44:: Changes in release 3.23.44 (31 Oct 2001)
* News-3.23.43:: Changes in release 3.23.43
-* News-3.23.42:: Changes in release 3.23.42
-* News-3.23.41:: Changes in release 3.23.41
+* News-3.23.42:: Changes in release 3.23.42 (08 Sep 2001)
+* News-3.23.41:: Changes in release 3.23.41 (11 Aug 2001)
* News-3.23.40:: Changes in release 3.23.40
-* News-3.23.39:: Changes in release 3.23.39
-* News-3.23.38:: Changes in release 3.23.38
-* News-3.23.37:: Changes in release 3.23.37
-* News-3.23.36:: Changes in release 3.23.36
-* News-3.23.35:: Changes in release 3.23.35
+* News-3.23.39:: Changes in release 3.23.39 (12 Jun 2001)
+* News-3.23.38:: Changes in release 3.23.38 (09 May 2001)
+* News-3.23.37:: Changes in release 3.23.37 (17 Apr 2001)
+* News-3.23.36:: Changes in release 3.23.36 (27 Mar 2001)
+* News-3.23.35:: Changes in release 3.23.35 (15 Mar 2001)
* News-3.23.34a:: Changes in release 3.23.34a
-* News-3.23.34:: Changes in release 3.23.34
-* News-3.23.33:: Changes in release 3.23.33
-* News-3.23.32:: Changes in release 3.23.32
-* News-3.23.31:: Changes in release 3.23.31
-* News-3.23.30:: Changes in release 3.23.30
-* News-3.23.29:: Changes in release 3.23.29
-* News-3.23.28:: Changes in release 3.23.28
-* News-3.23.27:: Changes in release 3.23.27
+* News-3.23.34:: Changes in release 3.23.34 (10 Mar 2001)
+* News-3.23.33:: Changes in release 3.23.33 (09 Feb 2001)
+* News-3.23.32:: Changes in release 3.23.32 (22 Jan 2001: Stable)
+* News-3.23.31:: Changes in release 3.23.31 (17 Jan 2001)
+* News-3.23.30:: Changes in release 3.23.30 (04 Jan 2001)
+* News-3.23.29:: Changes in release 3.23.29 (16 Dec 2000)
+* News-3.23.28:: Changes in release 3.23.28 (22 Nov 2000: Gamma)
+* News-3.23.27:: Changes in release 3.23.27 (24 Oct 2000)
* News-3.23.26:: Changes in release 3.23.26
* News-3.23.25:: Changes in release 3.23.25
-* News-3.23.24:: Changes in release 3.23.24
+* News-3.23.24:: Changes in release 3.23.24 (08 Sep 2000)
* News-3.23.23:: Changes in release 3.23.23
-* News-3.23.22:: Changes in release 3.23.22
+* News-3.23.22:: Changes in release 3.23.22 (31 Jul 2000)
* News-3.23.21:: Changes in release 3.23.21
* News-3.23.20:: Changes in release 3.23.20
* News-3.23.19:: Changes in release 3.23.19
* News-3.23.18:: Changes in release 3.23.18
* News-3.23.17:: Changes in release 3.23.17
* News-3.23.16:: Changes in release 3.23.16
-* News-3.23.15:: Changes in release 3.23.15
+* News-3.23.15:: Changes in release 3.23.15 (May 2000: Beta)
* News-3.23.14:: Changes in release 3.23.14
* News-3.23.13:: Changes in release 3.23.13
* News-3.23.12:: Changes in release 3.23.12
@@ -49347,7 +49820,7 @@ not yet 100% confident in this code.
* News-3.23.3:: Changes in release 3.23.3
* News-3.23.2:: Changes in release 3.23.2
* News-3.23.1:: Changes in release 3.23.1
-* News-3.23.0:: Changes in release 3.23.0
+* News-3.23.0:: Changes in release 3.23.0 (Sep 1999: Alpha)
@end menu
@node News-3.23.51, News-3.23.50, News-3.23.x, News-3.23.x
@@ -49355,16 +49828,71 @@ not yet 100% confident in this code.
@itemize @bullet
@item
-Fixed @code{SIGINT} and @code{SIGQUIT} problems in @code{mysql}.
+Remove end space from @code{enum} values. (This fixed a problem with
+@code{SHOW CREATE TABLE}).
@item
-Fixed bug in character table converts when used with big ( > 64K) strings.
+Fixed bug in @code{CONCAT_WS()} that cut the result.
+@item
+Changed name of variables @code{Com_show_master_stat} to
+@code{Com_show_master_status} and @code{Com_show_slave_stat} to
+@code{Com_show_slave_status}.
+@item
+Changed handling of @code{gethostbyname()} to make the client library
+threadsafe even if @code{gethostbyname_r} doesn't exists.
+@item
+Fixed core-dump problem when giving a wrong password string to @code{GRANT}.
+@item
+Fixed bug in @code{DROP DATABASE} with symlinked directory.
+@item
+Fixed optimization problem with @code{DATETIME} and value outside
+@code{DATETIME} range.
+@item
+Removed BDB documentation.
+@item
+Fixed mit-pthreads to compile with glibc 2.2 (needed for @code{make dist}).
+@item
+Fixed the @code{FLOAT(X+1,X)} is not converted to @code{FLOAT(X+2,X)}.
+(This also affected @code{DECIMAL}, @code{DOUBLE} and @code{REAL} types)
+@item
+Fixed the result from @code{IF()} is case in-sensitive if the 2 and
+third arguments are case sensitive.
+@item
+Fixed core dump problem on OSF in @code{gethostbyname_r}.
+@item
+Fixed that underflowed decimal fields is not zero filled.
+@item
+If we get an overflow when inserting @code{'+11111'} for
+@code{decimal(5,0) unsigned} columns, we will just drop the sign.
+@item
+Fixed optimization bug with @code{ISNULL(expression_which_cannot_be_null)} and
+@code{ISNULL(constant_expression)}.
+@item
+Fixed host lookup bug in the glibc library that we used with the 3.23.50
+Linux-x86 binaries.
@end itemize
@node News-3.23.50, News-3.23.49, News-3.23.51, News-3.23.x
-@appendixsubsec Changes in release 3.23.50
+@appendixsubsec Changes in release 3.23.50 (21 Apr 2002)
@itemize @bullet
@item
+Fixed problem with @code{crash-me} and @code{gcc} 3.0.4.
+@item
+Fixed that @code{@@@@unknown_variable} doesn't hang server.
+@item
+Added @code{@@@@VERSION} as a synonym for @code{VERSION()}.
+@item
+@code{SHOW VARIABLES LIKE 'xxx'} is now case-insensitive.
+@item
+Fixed timeout for @code{GET_LOCK()} on HPUX with DCE threads.
+@item
+Fixed memory allocation bug in the glibc library used to build Linux
+binaries, which caused mysqld to die in 'free()'.
+@item
+Fixed @code{SIGINT} and @code{SIGQUIT} problems in @code{mysql}.
+@item
+Fixed bug in character table converts when used with big ( > 64K) strings.
+@item
@code{InnoDB} now retains foreign key constraints through @code{ALTER TABLE}
and @code{CREATE/DROP INDEX}.
@item
@@ -49418,7 +49946,7 @@ with @code{GROUP BY}.
@itemize @bullet
@item
-Don't give warning for a statement that is only a comment; This is needed for
+Don't give warning for a statement that is only a comment; this is needed for
@code{mysqldump --disable-keys} to work.
@item
Fixed unlikely caching bug when doing a join without keys. In this case
@@ -49434,7 +49962,7 @@ Fixed shutdown problem on NT.
@end itemize
@node News-3.23.48, News-3.23.47, News-3.23.49, News-3.23.x
-@appendixsubsec Changes in release 3.23.48
+@appendixsubsec Changes in release 3.23.48 (07 Feb 2002)
@itemize @bullet
@item
@@ -49493,7 +50021,7 @@ this situation.
@end itemize
@node News-3.23.47, News-3.23.46, News-3.23.48, News-3.23.x
-@appendixsubsec Changes in release 3.23.47
+@appendixsubsec Changes in release 3.23.47 (27 Dec 2001)
@itemize @bullet
@item
@@ -49525,7 +50053,7 @@ Fixed bug when using @code{t1 LEFT JOIN t2 ON t2.key=constant}.
@end itemize
@node News-3.23.46, News-3.23.45, News-3.23.47, News-3.23.x
-@appendixsubsec Changes in release 3.23.46
+@appendixsubsec Changes in release 3.23.46 (29 Nov 2001)
@itemize @bullet
@item
@@ -49554,7 +50082,7 @@ Fixed bug in replication on Mac OS X.
@end itemize
@node News-3.23.45, News-3.23.44, News-3.23.46, News-3.23.x
-@appendixsubsec Changes in release 3.23.45
+@appendixsubsec Changes in release 3.23.45 (22 Nov 2001)
@itemize @bullet
@item
@@ -49585,13 +50113,13 @@ date_column was declared as @code{NOT NULL}.
@item
Fixed bug with @code{BDB} tables and keys on @code{BLOB} columns.
@item
-Fixed bug in @code{MERGE} tables on OS with 32 bit file pointers.
+Fixed bug in @code{MERGE} tables on OS with 32-bit file pointers.
@item
Fixed bug in @code{TIME_TO_SEC()} when using negative values.
@end itemize
@node News-3.23.44, News-3.23.43, News-3.23.45, News-3.23.x
-@appendixsubsec Changes in release 3.23.44
+@appendixsubsec Changes in release 3.23.44 (31 Oct 2001)
@itemize @bullet
@item
@@ -49640,7 +50168,7 @@ Foreign keys checking is now done for @code{InnoDB} tables.
@item
@code{DROP DATABASE} now works also for @code{InnoDB} tables.
@item
-@code{InnoDB} now supports data files and raw disk partitions bigger
+@code{InnoDB} now supports datafiles and raw disk partitions bigger
than 4 GB on those operating systems that have big files.
@item
@code{InnoDB} calculates better table cardinality estimates for the
@@ -49649,7 +50177,7 @@ MySQL optimiser.
Accent characters in the default character set @code{latin1} are ordered
according to the MySQL ordering.
-NOTE: if you are using @code{latin1} and have inserted characters whose
+Note: if you are using @code{latin1} and have inserted characters whose
code is greater than 127 into an indexed @code{CHAR} column, you should
run @code{CHECK TABLE} on your table when you upgrade to 3.23.44, and
drop and reimport the table if @code{CHECK TABLE} reports an error!
@@ -49657,10 +50185,10 @@ drop and reimport the table if @code{CHECK TABLE} reports an error!
A new @file{my.cnf} parameter, @code{innodb_thread_concurrency}, helps in
performance tuning in heavily concurrent environments.
@item
-A new @code{my.cnf} parameter, @code{innodb_fast_shutdown}, speeds up
+A new @file{my.cnf} parameter, @code{innodb_fast_shutdown}, speeds up
server shutdown.
@item
-A new @code{my.cnf} parameter, @code{innodb_force_recovery}, helps to save
+A new @file{my.cnf} parameter, @code{innodb_force_recovery}, helps to save
your data in case the disk image of the database becomes corrupt.
@item
@code{innodb_monitor} has been improved and a new
@@ -49674,7 +50202,7 @@ multiple-line inserts.
Fixed a bug when the case of letters changes in an update of an indexed
secondary column.
@item
-Fixed a hang when there are > 24 data files.
+Fixed a hang when there are > 24 datafiles.
@item
Fixed a crash when @code{MAX(col)} is selected from an empty table, and
@code{col} is not the first column in a multi-column index.
@@ -49714,7 +50242,7 @@ Fixed bug in @code{--safe-user-create}.
@end itemize
@node News-3.23.42, News-3.23.41, News-3.23.43, News-3.23.x
-@appendixsubsec Changes in release 3.23.42
+@appendixsubsec Changes in release 3.23.42 (08 Sep 2001)
@itemize @bullet
@item
@@ -49772,7 +50300,7 @@ other threads.
@end itemize
@node News-3.23.41, News-3.23.40, News-3.23.42, News-3.23.x
-@appendixsubsec Changes in release 3.23.41
+@appendixsubsec Changes in release 3.23.41 (11 Aug 2001)
@itemize @bullet
@item
@@ -49831,7 +50359,7 @@ Fixed problem with @code{UPDATE} and @code{BDB} tables.
Fixed hard bug in @code{BDB} tables when using key parts.
@item
Fixed problem when using @code{GRANT FILE ON database.* ...}; previously
-we added the @code{DROP} privilege for the database.
+we added the @strong{drop} privilege for the database.
@item
Fixed @code{DELETE FROM tbl_name ... LIMIT 0} and
@code{UPDATE FROM tbl_name ... LIMIT 0}, which acted as though the
@@ -49867,12 +50395,12 @@ Fixed a bug when using @code{COUNT(DISTINCT)} with @code{LEFT JOIN} and
there weren't any matching rows.
@item
Removed all documentation referring to the @code{GEMINI} table
-type. @code{GEMINI} is not released under an Open Source license.
+type. @code{GEMINI} is not released under an @code{Open Source} license.
@end itemize
@node News-3.23.39, News-3.23.38, News-3.23.40, News-3.23.x
-@appendixsubsec Changes in release 3.23.39
+@appendixsubsec Changes in release 3.23.39 (12 Jun 2001)
@itemize @bullet
@item
@@ -49915,7 +50443,7 @@ Fixed problem with @code{MERGE} tables and big tables (> 4G) when using
@node News-3.23.38, News-3.23.37, News-3.23.39, News-3.23.x
-@appendixsubsec Changes in release 3.23.38
+@appendixsubsec Changes in release 3.23.38 (09 May 2001)
@itemize @bullet
@item
@@ -49967,7 +50495,7 @@ Fixed bug with @code{LOCK TABLE} and @code{BDB} tables.
@node News-3.23.37, News-3.23.36, News-3.23.38, News-3.23.x
-@appendixsubsec Changes in release 3.23.37
+@appendixsubsec Changes in release 3.23.37 (17 Apr 2001)
@itemize @bullet
@item
@@ -49986,7 +50514,7 @@ configuration files where you have used @code{innobase} options!
Fixed bug when using indexes on @code{CHAR(255) NULL} columns.
@item
Slave thread will now be started even if @code{master-host} is not set, as
-long as @code{server-id} is set and valid @code{master.info} is present.
+long as @code{server-id} is set and valid @file{master.info} is present.
@item
Partial updates (terminated with kill) are now logged with a special error
code to the binary log. Slave will refuse to execute them if the error code
@@ -50033,7 +50561,7 @@ Added @code{--skip-safemalloc} option to @code{mysqld}.
@node News-3.23.36, News-3.23.35, News-3.23.37, News-3.23.x
-@appendixsubsec Changes in release 3.23.36
+@appendixsubsec Changes in release 3.23.36 (27 Mar 2001)
@itemize @bullet
@item
@@ -50074,7 +50602,7 @@ Changed some macros to be able to use fast mutex with @code{glibc} 2.2.
@node News-3.23.35, News-3.23.34a, News-3.23.36, News-3.23.x
-@appendixsubsec Changes in release 3.23.35
+@appendixsubsec Changes in release 3.23.35 (15 Mar 2001)
@itemize @bullet
@item
@@ -50103,7 +50631,7 @@ to be compiled.
@node News-3.23.34, News-3.23.33, News-3.23.34a, News-3.23.x
-@appendixsubsec Changes in release 3.23.34
+@appendixsubsec Changes in release 3.23.34 (10 Mar 2001)
@itemize @bullet
@item
@@ -50179,7 +50707,7 @@ where @code{bar} is a column reference, an error was not properly generated.
@node News-3.23.33, News-3.23.32, News-3.23.34, News-3.23.x
-@appendixsubsec Changes in release 3.23.33
+@appendixsubsec Changes in release 3.23.33 (09 Feb 2001)
@itemize @bullet
@item
@@ -50229,7 +50757,7 @@ Added @code{Table_locks_immediate} and @code{Table_locks_waited} status
variables.
@item
Fixed bug in replication that broke slave server start with existing
-@code{master.info}. This fixes a bug introduced in 3.23.32.
+@file{master.info}. This fixes a bug introduced in 3.23.32.
@item
Added @code{SET SQL_SLAVE_SKIP_COUNTER=n} command to recover from
replication glitches without a full database copy.
@@ -50271,7 +50799,7 @@ the disk cache.
@node News-3.23.32, News-3.23.31, News-3.23.33, News-3.23.x
-@appendixsubsec Changes in release 3.23.32
+@appendixsubsec Changes in release 3.23.32 (22 Jan 2001: Stable)
@itemize @bullet
@item
@@ -50313,7 +50841,7 @@ Added @code{MASTER_POS_WAIT()}.
@node News-3.23.31, News-3.23.30, News-3.23.32, News-3.23.x
-@appendixsubsec Changes in release 3.23.31
+@appendixsubsec Changes in release 3.23.31 (17 Jan 2001)
@itemize @bullet
@item
@@ -50369,7 +50897,7 @@ Added @code{Threads_created} status variable to @code{mysqld}.
@node News-3.23.30, News-3.23.29, News-3.23.31, News-3.23.x
-@appendixsubsec Changes in release 3.23.30
+@appendixsubsec Changes in release 3.23.30 (04 Jan 2001)
@itemize @bullet
@item
@@ -50432,7 +50960,7 @@ Fixed bug when running two simultaneous @code{SHOW LOGS} queries.
@node News-3.23.29, News-3.23.28, News-3.23.30, News-3.23.x
-@appendixsubsec Changes in release 3.23.29
+@appendixsubsec Changes in release 3.23.29 (16 Dec 2000)
@itemize @bullet
@item
@@ -50511,7 +51039,7 @@ debugging and testing of replication.
Fixed replication of temporary tables. Handles everything except
slave server restart.
@item
-@code{SHOW KEYS} now shows whether or not key is @code{FULLTEXT}.
+@code{SHOW KEYS} now shows whether key is @code{FULLTEXT}.
@item
New script @code{mysqld_multi}. @xref{mysqld_multi, , @code{mysqld_multi}}.
@item
@@ -50561,7 +51089,7 @@ read by @code{mysql_options()}.
@node News-3.23.28, News-3.23.27, News-3.23.29, News-3.23.x
-@appendixsubsec Changes in release 3.23.28
+@appendixsubsec Changes in release 3.23.28 (22 Nov 2000: Gamma)
@itemize @bullet
@item
@@ -50684,12 +51212,12 @@ new table with the rows in a specific order.
@node News-3.23.27, News-3.23.26, News-3.23.28, News-3.23.x
-@appendixsubsec Changes in release 3.23.27
+@appendixsubsec Changes in release 3.23.27 (24 Oct 2000)
@itemize @bullet
@item
Fixed a bug where the automatic repair of @code{MyISAM} tables sometimes failed
-when the data file was corrupt.
+when the datafile was corrupt.
@item
Fixed a bug in @code{SHOW CREATE} when using @code{AUTO_INCREMENT} columns.
@item
@@ -50708,6 +51236,9 @@ Small portability fixes.
@itemize @bullet
@item
+Renamed @code{FLUSH MASTER} and @code{FLUSH SLAVE} to @code{RESET MASTER}
+and @code{RESET SLAVE}.
+@item
Fixed @code{<>} to work properly with @code{NULL}.
@item
Fixed a problem with @code{SUBSTRING_INDEX()} and @code{REPLACE()}.
@@ -50871,7 +51402,7 @@ Added file mutexes to make @code{pwrite()} safe on Windows.
@node News-3.23.24, News-3.23.23, News-3.23.25, News-3.23.x
-@appendixsubsec Changes in release 3.23.24
+@appendixsubsec Changes in release 3.23.24 (08 Sep 2000)
@itemize @bullet
@item
@@ -50900,7 +51431,7 @@ Restored the @code{win1251} character set (it's now only marked deprecated).
@itemize @bullet
@item
-Changed sort order for 'German'; All tables created with 'German' sortorder
+Changed sort order for 'German'; all tables created with 'German' sortorder
must be repaired with @code{REPAIR TABLE} or @code{myisamchk} before use!
@item
Added @code{--core-file} option to @code{mysqld} to get a core file on
@@ -51007,7 +51538,7 @@ Full-text search via the @code{MATCH()} function and @code{FULLTEXT} index type
@node News-3.23.22, News-3.23.21, News-3.23.23, News-3.23.x
-@appendixsubsec Changes in release 3.23.22
+@appendixsubsec Changes in release 3.23.22 (31 Jul 2000)
@itemize @bullet
@item
@@ -51022,10 +51553,10 @@ Fixed that open transactions in @code{BDB} tables are rolled back if the
connection is closed unexpectedly.
@item
Added workaround for a bug in @code{gcc} 2.96 (intel) and @code{gcc} 2.9
-(Ia64) in @code{gen_lex_hash.c}.
+(IA64) in @code{gen_lex_hash.c}.
@item
Fixed memory leak in the client library when using @code{host=} in the
-@code{my.cnf} file.
+@file{my.cnf} file.
@item
Optimised functions that manipulate the hours/minutes/seconds.
@item
@@ -51035,7 +51566,7 @@ against a number.
Changed the meaning of @code{-F, --fast} for @code{myisamchk}. Added
@code{-C, --check-only-changed} option to @code{myisamchk}.
@item
-Added @code{ANALYZE table_name} to update key statistics for tables.
+Added @code{ANALYZE tbl_name} to update key statistics for tables.
@item
Changed binary items @code{0x...} to be regarded as integers by default.
@item
@@ -51158,7 +51689,7 @@ Fixed big/little endian problem in the replication.
Fixed a problem from 3.23.17 when choosing character set on the client side.
@item
Added @code{FLUSH TABLES WITH READ LOCK} to make a global lock suitable for
-making a copy of MySQL data files.
+making a copy of MySQL datafiles.
@item
@code{CREATE TABLE ... SELECT ... PROCEDURE} now works.
@item
@@ -51184,7 +51715,7 @@ Added table locks to Berkeley DB.
Fixed a bug with @code{LEFT JOIN} and @code{ORDER BY} where the first
table had only one matching row.
@item
-Added 4 sample @code{my.cnf} example files in the @file{support-files}
+Added 4 sample @file{my.cnf} example files in the @file{support-files}
directory.
@item
Fixed @code{duplicated key} problem when doing big @code{GROUP BY} operations.
@@ -51211,7 +51742,7 @@ Changed protocol to let client know if the server is in @code{AUTOCOMMIT} mode
and if there is a pending transaction. If there is a pending transaction,
the client library will give an error before reconnecting to the server to
let the client know that the server did a rollback.
-The protocol is still backward compatible with old clients.
+The protocol is still backward-compatible with old clients.
@item
@code{KILL} now works on a thread that is locked on a 'write' to a dead client.
@item
@@ -51237,6 +51768,8 @@ Added deadlock detection sanity checks to @code{INSERT DELAYED}.
@itemize @bullet
@item
+Added @code{SLAVE START} and @code{SLAVE STOP} statements.
+@item
Added @code{TYPE=QUICK} option to @code{CHECK} and to @code{REPAIR}.
@item
Fixed bug in @code{REPAIR TABLE} when the table was in use by other threads.
@@ -51264,13 +51797,13 @@ Added @code{SQL_LOG_BIN} option.
@node News-3.23.15, News-3.23.14, News-3.23.16, News-3.23.x
-@appendixsubsec Changes in release 3.23.15
+@appendixsubsec Changes in release 3.23.15 (May 2000: Beta)
@itemize @bullet
@item
To start @code{mysqld} as @code{root}, you must now use the @code{--user=root} option.
@item
-Added interface to Berkeley DB. (This is not yet functional; Play with it at
+Added interface to Berkeley DB. (This is not yet functional; play with it at
your own risk!)
@item
Replication between master and slaves.
@@ -51486,7 +52019,7 @@ Fix problem with timezones that have half hour offsets.
@item
Allow the syntax @code{UNIQUE INDEX} in @code{CREATE} statements.
@item
-@code{mysqlhotcopy} - fast on-line hot-backup utility for local
+@code{mysqlhotcopy} - fast online hot-backup utility for local
MySQL databases. By Tim Bunce.
@item
New more secure @code{mysqlaccess}. Thanks to Steve Harvey for this.
@@ -51662,7 +52195,7 @@ FROM pos)}, @code{SUBSTRING_INDEX(str,delim,count)}, @code{RTRIM(str)},
@code{TRIM([[BOTH | TRAILING] [remstr] FROM] str)},
@code{REPLACE(str,from_str,to_str)}, @code{REVERSE(str)},
@code{INSERT(str,pos,len,newstr)}, @code{LCASE(str)}, @code{LOWER(str)},
-@code{UCASE(str)} and @code{UPPER(str)}; Patch by Wei He.
+@code{UCASE(str)} and @code{UPPER(str)}; patch by Wei He.
@item
Fix core dump when releasing a lock from a non-existent table.
@item
@@ -51712,7 +52245,7 @@ Added @code{--quote-names} option to @code{mysqldump}.
@item
Fixed bug that one could make a part of a @code{PRIMARY KEY NOT NULL}.
@item
-Fixed @code{encrypt()} to be thread safe and not reuse buffer.
+Fixed @code{encrypt()} to be thread-safe and not reuse buffer.
@item
Added @code{mysql_odbc_escape_string()} function to support big5 characters in
MyODBC.
@@ -51766,7 +52299,7 @@ Fixed problem when using an @code{AUTO_INCREMENT} column in two keys
@item
With @code{MyISAM}, you now can have an @code{AUTO_INCREMENT} column as a key
sub part:
-@code{CREATE TABLE foo (a int not null auto_increment, b char(5), primary key (b,a))}
+@code{CREATE TABLE foo (a INT NOT NULL AUTO_INCREMENT, b CHAR(5), PRIMARY KEY (b,a))}
@item
Fixed bug in @code{MyISAM} with packed char keys that could be @code{NULL}.
@item
@@ -51835,9 +52368,9 @@ Fixed privilege check for @code{LOAD DATA REPLACE}.
@item
Automatic fixing of broken include files on Solaris 2.7
@item
-Some configure issues to fix problems with big file system detection.
+Some configure issues to fix problems with big filesystem detection.
@item
-@code{REGEXP} is now case insensitive if you use non-binary strings.
+@code{REGEXP} is now case-insensitive if you use non-binary strings.
@end itemize
@@ -51906,7 +52439,7 @@ Added handling of fuzzy dates (dates where day or month is 0), such as
@code{'1999-01-00'}.
@item
Fixed optimisation of @code{SELECT ... WHERE key_part1=const1 AND
-key_part_2=const2 AND key_part1=const4 AND key_part2=const4}; Indextype
+key_part_2=const2 AND key_part1=const4 AND key_part2=const4}; indextype
should be @code{range} instead of @code{ref}.
@item
Fixed @code{egcs} 1.1.2 optimiser bug (when using @code{BLOB}s) on Linux Alpha.
@@ -51960,7 +52493,7 @@ Fixed some compilation problems.
@node News-3.23.0, , News-3.23.1, News-3.23.x
-@appendixsubsec Changes in release 3.23.0
+@appendixsubsec Changes in release 3.23.0 (Sep 1999: Alpha)
@itemize @bullet
@item
@@ -52023,11 +52556,11 @@ WHERE ... PROCEDURE ANALYSE([max elements,[max memory]])
This procedure is extremely useful when you want to check the data in your
table!
@item
-@code{BINARY} cast to force a string to be compared in case sensitive fashion.
+@code{BINARY} cast to force a string to be compared in case-sensitive fashion.
@item
Added @code{--skip-show-database} option to @code{mysqld}.
@item
-Check whether or not a row has changed in an @code{UPDATE} now also works
+Check whether a row has changed in an @code{UPDATE} now also works
with @code{BLOB}/@code{TEXT} columns.
@item
Added the @code{INNER} join syntax. @strong{NOTE}: This made @code{INNER}
@@ -52082,7 +52615,7 @@ All C client API macros are now functions to make shared libraries more
reliable. Because of this, you can no longer call @code{mysql_num_fields()} on
a @code{MYSQL} object, you must use @code{mysql_field_count()} instead.
@item
-Added use of @code{LIBEWRAP}; Patch by Henning P . Schmiedehausen.
+Added use of @code{LIBEWRAP}; patch by Henning P. Schmiedehausen.
@item
Don't allow @code{AUTO_INCREMENT} for other than numerical columns.
@item
@@ -52091,7 +52624,7 @@ Using @code{AUTO_INCREMENT} will now automatically make the column
@item
Show @code{NULL} as the default value for @code{AUTO_INCREMENT} columns.
@item
-Added @code{SQL_BIG_RESULT}; @code{SQL_SMALL_RESULT} is now default.
+Added @code{SQL_BIG_RESULT}; @code{SQL_SMALL_RESULT} is now default.
@item
Added a shared library RPM. This enhancement was contributed by David
Fox (@email{dsfox@@cogsci.ucsd.edu}).
@@ -52135,10 +52668,10 @@ be very easy and painless. @xref{Upgrading-from-3.21}.
* News-3.22.22:: Changes in release 3.22.22
* News-3.22.21:: Changes in release 3.22.21
* News-3.22.20:: Changes in release 3.22.20
-* News-3.22.19:: Changes in release 3.22.19
+* News-3.22.19:: Changes in release 3.22.19 (Mar 1999: Stable)
* News-3.22.18:: Changes in release 3.22.18
* News-3.22.17:: Changes in release 3.22.17
-* News-3.22.16:: Changes in release 3.22.16
+* News-3.22.16:: Changes in release 3.22.16 (Feb 1999: Gamma)
* News-3.22.15:: Changes in release 3.22.15
* News-3.22.14:: Changes in release 3.22.14
* News-3.22.13:: Changes in release 3.22.13
@@ -52147,13 +52680,13 @@ be very easy and painless. @xref{Upgrading-from-3.21}.
* News-3.22.10:: Changes in release 3.22.10
* News-3.22.9:: Changes in release 3.22.9
* News-3.22.8:: Changes in release 3.22.8
-* News-3.22.7:: Changes in release 3.22.7
+* News-3.22.7:: Changes in release 3.22.7 (Sep 1998: Beta)
* News-3.22.6:: Changes in release 3.22.6
* News-3.22.5:: Changes in release 3.22.5
* News-3.22.4:: Changes in release 3.22.4
* News-3.22.3:: Changes in release 3.22.3
* News-3.22.2:: Changes in release 3.22.2
-* News-3.22.1:: Changes in release 3.22.1
+* News-3.22.1:: Changes in release 3.22.1 (Jun 1998: Alpha)
* News-3.22.0:: Changes in release 3.22.0
@end menu
@@ -52179,7 +52712,7 @@ on a table with only one row.
@itemize @bullet
@item
-Fixed problem with @code{GROUP BY} on @code{TINYBLOB} columns; This
+Fixed problem with @code{GROUP BY} on @code{TINYBLOB} columns; this
caused bugzilla to not show rows in some queries.
@item
Had to do total recompile of the Windows binary version as VC++ didn't
@@ -52207,7 +52740,7 @@ Fixed problem when storing numbers in timestamps.
@item
Fix problem with timezones that have half hour offsets.
@item
-Added @code{mysqlhotcopy}, a fast on-line hot-backup utility for local MySQL
+Added @code{mysqlhotcopy}, a fast online hot-backup utility for local MySQL
databases. By Tim Bunce.
@item
New more secure @code{mysqlaccess}. Thanks to Steve Harvey for this.
@@ -52298,7 +52831,7 @@ Fixed problem with @code{AVG()} and @code{STD()} with @code{NULL} values.
@item
Fixed prototype in @file{my_ctype.h} when using other character sets.
@item
-Some configure issues to fix problems with big file system detection.
+Some configure issues to fix problems with big filesystem detection.
@item
Fixed problem when sorting on big @code{BLOB} columns.
@item
@@ -52429,7 +52962,7 @@ another thread.
@item
Fixed bug in @code{LEFT JOIN} involving empty tables.
@item
-Changed the @code{mysql.db} column from @code{char(32)} to @code{char(60)}.
+Changed the @code{mysql.db} column from @code{CHAR(32)} to @code{CHAR(60)}.
@item
@code{MODIFY} and @code{DELAYED} are not reserved words anymore.
@item
@@ -52458,7 +52991,7 @@ The update log didn't have newlines on some operating systems.
@node News-3.22.19, News-3.22.18, News-3.22.20, News-3.22.x
-@appendixsubsec Changes in release 3.22.19
+@appendixsubsec Changes in release 3.22.19 (Mar 1999: Stable)
@itemize @bullet
@item
@@ -52476,8 +53009,8 @@ columns.
@itemize @bullet
@item
-Fixes a fatal problem in 3.22.17 on Linux; After @code{shutdown}
-all threads didn't die properly.
+Fixes a fatal problem in 3.22.17 on Linux; after @code{shutdown}
+not all threads died properly.
@item
Added option @code{-O flush_time=#} to @code{mysqld}. This is mostly
useful on Windows and tells how often MySQL should close all
@@ -52504,7 +53037,7 @@ Using @code{LEFT JOIN} on tables that had circular dependencies caused
@node News-3.22.16, News-3.22.15, News-3.22.17, News-3.22.x
-@appendixsubsec Changes in release 3.22.16
+@appendixsubsec Changes in release 3.22.16 (Feb 1999: Gamma)
@itemize @bullet
@item
@@ -52585,7 +53118,7 @@ Added a patch for @code{localtime_r()} on Windows so that it will not crash
anymore if your date is > 2039, but instead will return a time of all zero.
@item
Names for
-user-defined functions are no longer case sensitive.
+user-defined functions are no longer case-sensitive.
@item
Added escape of @code{^Z} (ASCII 26) to @code{\Z} as @code{^Z} doesn't
work with pipes on Windows.
@@ -52833,7 +53366,7 @@ Added patches for UNIXWARE 7.
@node News-3.22.7, News-3.22.6, News-3.22.8, News-3.22.x
-@appendixsubsec Changes in release 3.22.7
+@appendixsubsec Changes in release 3.22.7 (Sep 1998: Beta)
@itemize @bullet
@item
@@ -52858,7 +53391,7 @@ Changed optimiser to make it better at deciding when to do a full join
and when using keys.
@item
You can now use @code{mysqladmin proc} to display information about your own
-threads. Only users with the @code{Process_priv} privilege can get
+threads. Only users with the @strong{process} privilege can get
information about all threads.
@item
Added handling of formats @code{YYMMDD}, @code{YYYYMMDD},
@@ -52940,7 +53473,7 @@ New better compressed server/client protocol.
You can now store values in the range @code{-838:59:59} <= x <=
@code{838:59:59} in a @code{TIME} column.
@item
-@strong{WARNING: INCOMPATIBLE CHANGE!!}
+@strong{Warning: incompatible change!!}
If you set a @code{TIME} column to too short a value, MySQL now
assumes the value is given as: @code{[[[D ]HH:]MM:]SS} instead of
@code{HH[:MM[:SS]]}.
@@ -52990,13 +53523,13 @@ trailing @samp{;}.
@item
Fix for corrupted fixed-format output generated by @code{SELECT INTO OUTFILE}.
@item
-@strong{Warning: Incompatible change!}
+@strong{Warning: incompatible change!}
Added Oracle @code{GREATEST()} and @code{LEAST()} functions. You must now use
these instead of the @code{MAX()} and @code{MIN()} functions to get the
largest/smallest value from a list of values. These can now handle @code{REAL},
@code{BIGINT} and string (@code{CHAR} or @code{VARCHAR}) values.
@item
-@strong{Warning: Incompatible change!}
+@strong{Warning: incompatible change!}
@code{DAYOFWEEK()} had offset 0 for Sunday. Changed the offset to 1.
@item
Give an error for queries that mix @code{GROUP BY} columns and fields when
@@ -53126,7 +53659,7 @@ All bug fixes from MySQL Version 3.21.32.
@node News-3.22.1, News-3.22.0, News-3.22.2, News-3.22.x
-@appendixsubsec Changes in release 3.22.1
+@appendixsubsec Changes in release 3.22.1 (Jun 1998: Alpha)
@itemize @bullet
@item
@@ -53161,7 +53694,7 @@ matched and updated, and how many ``warnings'' occurred when doing the update.
Fixed incorrect result from @code{FORMAT(-100,2)}.
@item
@code{ENUM} and @code{SET} columns were compared in binary (case-sensitive)
-fashion; changed to be case insensitive.
+fashion; changed to be case-insensitive.
@end itemize
@@ -53170,7 +53703,7 @@ fashion; changed to be case insensitive.
@itemize @bullet
@item
-New (backward compatible) connect protocol that allows you to
+New (backward-compatible) connect protocol that allows you to
specify the database to use when connecting, to get much faster
connections to a specific database.
@@ -53186,7 +53719,7 @@ Each connection is handled by its own thread, rather than by the
master @code{accept()} thread. This fixes permanently the telnet bug
that was a topic on the mail list some time ago.
@item
-All TCP/IP connections are now checked with backward resolution of
+All TCP/IP connections are now checked with backward-resolution of
the hostname to get better security. @code{mysqld} now has a local hostname
resolver cache so connections should actually be faster than before,
even with this feature.
@@ -53243,7 +53776,7 @@ to join them in a specific order.
@item
String functions now return @code{VARCHAR} rather than @code{CHAR} and
the column type is now @code{VARCHAR} for fields saved as @code{VARCHAR}.
-This should make the @strong{MyODBC} driver better, but may break some old
+This should make the @code{MyODBC} driver better, but may break some old
MySQL clients that don't handle @code{FIELD_TYPE_VARCHAR} the same
way as @code{FIELD_TYPE_CHAR}.
@item
@@ -53398,7 +53931,7 @@ it more easily in the future.
@item
@code{mysql} now returns an exit code > 0 if the query returned an error.
@item
-Saving of command line history to file in @code{mysql} client.
+Saving of command-line history to file in @code{mysql} client.
By Tommy Larsen @email{tommy@@mix.hive.no}.
@item
Fixed problem with empty lines that were ignored in @file{mysql.cc}.
@@ -53606,7 +54139,7 @@ Setting a @code{TIMESTAMP} to @code{NULL} in @code{LOAD DATA INFILE ...} didn't
set the current time for the @code{TIMESTAMP}.
@item
Fix @code{BETWEEN} to recognise binary strings. Now @code{BETWEEN} is
-case sensitive.
+case-sensitive.
@item
Added @code{--skip-thread-priority} option to @code{mysqld}, for systems
where @code{mysqld}'s thread scheduling doesn't work properly (BSDI 3.1).
@@ -53649,7 +54182,7 @@ Fix @code{COUNT(*)} problems when the @code{WHERE} clause didn't match any
records. (Bug from 3.21.17.)
@item
Removed that @code{NULL = NULL} is true. Now you must use @code{IS NULL}
-or @code{IS NOT NULL} to test whether or not a value is @code{NULL}.
+or @code{IS NOT NULL} to test whether a value is @code{NULL}.
(This is according to ANSI SQL but may break
old applications that are ported from @code{mSQL}.)
You can get the old behavior by compiling with @code{-DmSQL_COMPLIANT}.
@@ -53868,7 +54401,7 @@ designed to find as many limits as possible in a SQL server. Tested with
@item
Fixed bug in range-optimiser that crashed MySQL on some queries.
@item
-Table and column name completion for @code{mysql} command line tool, by Zeev
+Table and column name completion for @code{mysql} command-line tool, by Zeev
Suraski and Andi Gutmans.
@item
Added new command @code{REPLACE} that works like @code{INSERT} but
@@ -54190,7 +54723,7 @@ Added more secure password handling.
Added new client function @code{mysql_errno()}, to get the error number of
the error message. This makes error checking in the client much easier.
This makes the new server incompatible with the 3.20.x server when running
-without @code{--old-protocol}. The client code is backward compatible.
+without @code{--old-protocol}. The client code is backward-compatible.
More information can be found in the @file{README} file!
@item
Fixed some problems when using very long, illegal names.
@@ -54334,7 +54867,7 @@ memory. Also added more checks to handle ``out of memory'' problems.
multiple threads.
@item
When the maximum connection limit is reached, one extra connection by a user
-with the @strong{PROCESS_ACL} privilege is granted.
+with the @strong{process_acl} privilege is granted.
@item
Added @code{-O backlog=#} option to @code{mysqld}.
@item
@@ -54560,8 +55093,8 @@ Inserts of timestamps with values didn't always work.
@item
Added some tests to @code{safe_mysqld} to make it ``safer''.
@item
-@code{LIKE} was case sensitive in some places and case insensitive in others.
-Now @code{LIKE} is always case insensitive.
+@code{LIKE} was case-sensitive in some places and case-insensitive in others.
+Now @code{LIKE} is always case-insensitive.
@item
@file{mysql.cc}: Allow @code{'#'} anywhere on the line.
@item
@@ -54925,7 +55458,7 @@ New math functions:
The @code{configure} source now compiles a thread-free client library
@code{-lmysqlclient}. This is the only library that needs to be linked
with client applications. When using the binary releases, you must
-link with @code{-lmysql -lmysys -ldbug -lstrings} as before.
+link with @code{-lmysql -lmysys -ldbug -lmystrings} as before.
@item
New @code{readline} library from @code{bash-2.0}.
@item
@@ -54972,8 +55505,8 @@ compiler.
@item
SQL functions must now have a @code{'('} immediately after the function name
(no intervening space).
-For example, @code{'user('} is regarded as beginning a function call, and
-@code{'user ('} is regarded as an identifier @code{user} followed by a
+For example, @code{'USER('} is regarded as beginning a function call, and
+@code{'USER ('} is regarded as an identifier @code{USER} followed by a
@code{'('}, not as a function call.
@end itemize
@@ -55184,7 +55717,7 @@ If you run into problems with a new port, you may have to do some debugging
of MySQL!
@xref{Debugging server}.
-@strong{NOTE:} Before you start debugging @code{mysqld}, first get the test
+@strong{Note}: before you start debugging @code{mysqld}, first get the test
programs @code{mysys/thr_alarm} and @code{mysys/thr_lock} to work. This
will ensure that your thread installation has even a remote chance to work!
@@ -55212,8 +55745,8 @@ disables a lot of optimisation that may cause problems.
@xref{Crashing}.
If @code{mysqld} doesn't want to start, you should check that you don't have
-any @code{my.cnf} files that interfere with your setup!
-You can check your @code{my.cnf} arguments with @code{mysqld --print-defaults}
+any @file{my.cnf} files that interfere with your setup!
+You can check your @file{my.cnf} arguments with @code{mysqld --print-defaults}
and avoid using them by starting with @code{mysqld --no-defaults ...}.
If @code{mysqld} starts to eat up CPU or memory or if it ``hangs'', you
@@ -55252,7 +55785,7 @@ problems that may be unique to your environment.
If you have some very specific problem, you can always try to debug
MySQL. To do this you must configure MySQL with the
@code{--with-debug} or the @code{--with-debug=full} option. You can check
-whether or not MySQL was compiled with debugging by doing:
+whether MySQL was compiled with debugging by doing:
@code{mysqld --help}. If the @code{--debug} flag is listed with the
options then you have debugging enabled. @code{mysqladmin ver} also
lists the @code{mysqld} version as @code{mysql ... --debug} in this case.
@@ -55325,7 +55858,7 @@ In a DOS window do:
mysqld --debug --standalone
@end example
-After this you can use the @code{mysql.exe} command line tool in a
+After this you can use the @code{mysql.exe} command-line tool in a
second DOS window to reproduce the problem. You can take down the above
@code{mysqld} server with @code{mysqladmin shutdown}.
@@ -55353,7 +55886,7 @@ The trace file is made with the @strong{DBUG} package by Fred Fish.
@cindex gdb, using
-On most system you can also start @code{mysqld} from @code{gdb} to get
+On most systems you can also start @code{mysqld} from @code{gdb} to get
more information if @code{mysqld} crashes.
With some older @code{gdb} versions on Linux you must use @code{run
@@ -55518,7 +56051,7 @@ If you are using @code{--log} without a file name, the log is stored in
the database directory as 'hostname'.log In most cases it's the last
query in the log file that killed @code{mysqld}, but if possible you
should verify this by restarting @code{mysqld} and executing the found
-query from the @code{mysql} command line tools. If this works, you
+query from the @code{mysql} command-line tools. If this works, you
should also test all complicated queries that didn't complete.
You can also try the command @code{EXPLAIN} on all @code{SELECT}
@@ -55698,7 +56231,7 @@ The currently recognised flag characters are:
@end multitable
Some examples of debug control strings which might appear on a shell
-command line (the "-#" is typically used to introduce a control string
+command-line (the "-#" is typically used to introduce a control string
to an application program) are:
@example
@@ -55752,7 +56285,7 @@ Cons:
@item
Takes more memory than page level or table locks.
@item
-Is slower than page level or table locks when used one a big part of the table,
+Is slower than page level or table locks when used on a big part of the table,
because one has to do many more locks.
@item
Is definitely much worse than other locks if you do often do @code{GROUP
@@ -55770,7 +56303,7 @@ following cases:
@item
Mostly reads
@item
-Read and updates on strict keys; This is where one updates or deletes
+Read and updates on strict keys; this is where one updates or deletes
a row that can be fetched with one key read:
@example
UPDATE table_name SET column=value WHERE unique_key#
@@ -55792,7 +56325,7 @@ on when one started to access it. Other names for this are time travel,
copy on write or copy on demand.
Copy on demand is in many case much better than page or row level
-locking; The worst case does, however, use much more memory than
+locking; the worst case does, however, use much more memory than
when using normal locks.
Instead of using row level locks one can use application level locks
@@ -55801,7 +56334,7 @@ only in well-behaved applications.
In many cases one can do an educated guess which locking type is best
for the application but generally it's very hard to say that a given
-lock type is better than another; Everything depends on the application
+lock type is better than another; everything depends on the application
and different part of the application may require different lock types.
Here are some tips about locking in MySQL:
@@ -55948,7 +56481,7 @@ threads have to wait for data. If the user thread packages are
integrated in the standard libs (FreeBSD and BSDI threads) the thread
package requires less overhead than thread packages that have to map all
unsafe calls (MIT-pthreads, FSU Pthreads and RTS threads). In some
-environments (for example, SCO), all system calls are thread safe so the
+environments (for example, SCO), all system calls are thread-safe so the
mapping can be done very easily (FSU Pthreads on SCO). Downside: All
mapped calls take a little time and it's quite tricky to be able to
handle all situations. There are usually also some system calls that are
@@ -55966,7 +56499,7 @@ somewhat expensive.
Kernel threads. Thread switching is handled by the thread library or the
kernel and is very fast. Everything is done in one process, but on some
systems, @code{ps} may show the different threads. If one thread aborts, the
-whole process aborts. Most system calls are thread safe and should
+whole process aborts. Most system calls are thread-safe and should
require very little overhead. Solaris, HP-UX, AIX and OSF/1 have kernel
threads.
@end itemize
@@ -55988,7 +56521,7 @@ Here is a list of all the environment variables that are used directly or
indirectly by MySQL. Most of these can also be found in other
places in this manual.
-Note that any options on the command line will take precedence over
+Note that any options on the command-line will take precedence over
values specified in configuration files and environment variables, and
values in configuration files take precedence over values in environment
variables.
@@ -56101,57 +56634,57 @@ characters/constructs:
@item ^
Match the beginning of a string.
@example
-mysql> select "fo\nfo" REGEXP "^fo$"; -> 0
-mysql> select "fofo" REGEXP "^fo"; -> 1
+mysql> SELECT "fo\nfo" REGEXP "^fo$"; -> 0
+mysql> SELECT "fofo" REGEXP "^fo"; -> 1
@end example
@item $
Match the end of a string.
@example
-mysql> select "fo\no" REGEXP "^fo\no$"; -> 1
-mysql> select "fo\no" REGEXP "^fo$"; -> 0
+mysql> SELECT "fo\no" REGEXP "^fo\no$"; -> 1
+mysql> SELECT "fo\no" REGEXP "^fo$"; -> 0
@end example
@item .
Match any character (including newline).
@example
-mysql> select "fofo" REGEXP "^f.*"; -> 1
-mysql> select "fo\nfo" REGEXP "^f.*"; -> 1
+mysql> SELECT "fofo" REGEXP "^f.*"; -> 1
+mysql> SELECT "fo\nfo" REGEXP "^f.*"; -> 1
@end example
@item a*
Match any sequence of zero or more @code{a} characters.
@example
-mysql> select "Ban" REGEXP "^Ba*n"; -> 1
-mysql> select "Baaan" REGEXP "^Ba*n"; -> 1
-mysql> select "Bn" REGEXP "^Ba*n"; -> 1
+mysql> SELECT "Ban" REGEXP "^Ba*n"; -> 1
+mysql> SELECT "Baaan" REGEXP "^Ba*n"; -> 1
+mysql> SELECT "Bn" REGEXP "^Ba*n"; -> 1
@end example
@item a+
Match any sequence of one or more @code{a} characters.
@example
-mysql> select "Ban" REGEXP "^Ba+n"; -> 1
-mysql> select "Bn" REGEXP "^Ba+n"; -> 0
+mysql> SELECT "Ban" REGEXP "^Ba+n"; -> 1
+mysql> SELECT "Bn" REGEXP "^Ba+n"; -> 0
@end example
@item a?
Match either zero or one @code{a} character.
@example
-mysql> select "Bn" REGEXP "^Ba?n"; -> 1
-mysql> select "Ban" REGEXP "^Ba?n"; -> 1
-mysql> select "Baan" REGEXP "^Ba?n"; -> 0
+mysql> SELECT "Bn" REGEXP "^Ba?n"; -> 1
+mysql> SELECT "Ban" REGEXP "^Ba?n"; -> 1
+mysql> SELECT "Baan" REGEXP "^Ba?n"; -> 0
@end example
@item de|abc
Match either of the sequences @code{de} or @code{abc}.
@example
-mysql> select "pi" REGEXP "pi|apa"; -> 1
-mysql> select "axe" REGEXP "pi|apa"; -> 0
-mysql> select "apa" REGEXP "pi|apa"; -> 1
-mysql> select "apa" REGEXP "^(pi|apa)$"; -> 1
-mysql> select "pi" REGEXP "^(pi|apa)$"; -> 1
-mysql> select "pix" REGEXP "^(pi|apa)$"; -> 0
+mysql> SELECT "pi" REGEXP "pi|apa"; -> 1
+mysql> SELECT "axe" REGEXP "pi|apa"; -> 0
+mysql> SELECT "apa" REGEXP "pi|apa"; -> 1
+mysql> SELECT "apa" REGEXP "^(pi|apa)$"; -> 1
+mysql> SELECT "pi" REGEXP "^(pi|apa)$"; -> 1
+mysql> SELECT "pix" REGEXP "^(pi|apa)$"; -> 0
@end example
@item (abc)*
Match zero or more instances of the sequence @code{abc}.
@example
-mysql> select "pi" REGEXP "^(pi)*$"; -> 1
-mysql> select "pip" REGEXP "^(pi)*$"; -> 0
-mysql> select "pipi" REGEXP "^(pi)*$"; -> 1
+mysql> SELECT "pi" REGEXP "^(pi)*$"; -> 1
+mysql> SELECT "pip" REGEXP "^(pi)*$"; -> 0
+mysql> SELECT "pipi" REGEXP "^(pi)*$"; -> 1
@end example
@item @{1@}
@itemx @{2,3@}
@@ -56187,12 +56720,12 @@ literal @code{-} character, it must be written first or last. So
a defined meaning inside a @code{[]} pair has no special meaning and
matches only itself.
@example
-mysql> select "aXbc" REGEXP "[a-dXYZ]"; -> 1
-mysql> select "aXbc" REGEXP "^[a-dXYZ]$"; -> 0
-mysql> select "aXbc" REGEXP "^[a-dXYZ]+$"; -> 1
-mysql> select "aXbc" REGEXP "^[^a-dXYZ]+$"; -> 0
-mysql> select "gheis" REGEXP "^[^a-dXYZ]+$"; -> 1
-mysql> select "gheisa" REGEXP "^[^a-dXYZ]+$"; -> 0
+mysql> SELECT "aXbc" REGEXP "[a-dXYZ]"; -> 1
+mysql> SELECT "aXbc" REGEXP "^[a-dXYZ]$"; -> 0
+mysql> SELECT "aXbc" REGEXP "^[a-dXYZ]+$"; -> 1
+mysql> SELECT "aXbc" REGEXP "^[^a-dXYZ]+$"; -> 0
+mysql> SELECT "gheis" REGEXP "^[^a-dXYZ]+$"; -> 1
+mysql> SELECT "gheisa" REGEXP "^[^a-dXYZ]+$"; -> 0
@end example
@item [[.characters.]]
The sequence of characters of that collating element. The sequence is a
@@ -56228,8 +56761,8 @@ These stand for the character classes defined in the @code{ctype(3)} manual
page. A locale may provide others. A character class may not be used as an
endpoint of a range.
@example
-mysql> select "justalnums" REGEXP "[[:alnum:]]+"; -> 1
-mysql> select "!!" REGEXP "[[:alnum:]]+"; -> 0
+mysql> SELECT "justalnums" REGEXP "[[:alnum:]]+"; -> 1
+mysql> SELECT "!!" REGEXP "[[:alnum:]]+"; -> 0
@end example
@item [[:<:]]
@@ -56240,20 +56773,20 @@ is neither preceded nor followed by word characters. A word character is
an alnum character (as defined by @code{ctype(3)}) or an underscore
(@code{_}).
@example
-mysql> select "a word a" REGEXP "[[:<:]]word[[:>:]]"; -> 1
-mysql> select "a xword a" REGEXP "[[:<:]]word[[:>:]]"; -> 0
+mysql> SELECT "a word a" REGEXP "[[:<:]]word[[:>:]]"; -> 1
+mysql> SELECT "a xword a" REGEXP "[[:<:]]word[[:>:]]"; -> 0
@end example
@end table
@example
-mysql> select "weeknights" REGEXP "^(wee|week)(knights|nights)$"; -> 1
+mysql> SELECT "weeknights" REGEXP "^(wee|week)(knights|nights)$"; -> 1
@end example
@node GPL license, LGPL license, Regexp, Top
-@appendix GNU GENERAL PUBLIC LICENSE
+@appendix GNU General Public License
@cindex GPL, General Public License
@cindex GPL, GNU General Public License
@@ -56420,7 +56953,7 @@ source code, which must be distributed under the terms of Sections
@item
Accompany it with a written offer, valid for at least three
-years, to give any third party, for a charge no more than your
+years, to give any third-party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
@@ -56654,7 +57187,7 @@ Public License instead of this License.
@node LGPL license, Function Index, GPL license, Top
-@appendix GNU LESSER GENERAL PUBLIC LICENSE
+@appendix GNU Lesser General Public License
@cindex LGPL, Library General Public License
@cindex LGPL, GNU Library General Public License
@@ -56949,7 +57482,7 @@ Library will still fall under Section 6.)
Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6,
-whether or not they are linked directly with the Library itself.
+whether they are linked directly with the Library itself.
@item
As an exception to the Sections above, you may also combine or
@@ -56983,7 +57516,7 @@ to use the modified definitions.)
@item
Use a suitable shared library mechanism for linking with the Library. A
-suitable mechanism is one that (1) uses at run time a copy of the
+suitable mechanism is one that (1) uses at runtime a copy of the
library already present on the user's computer system, rather than
copying library functions into the executable, and (2) will operate
properly with a modified version of the library, if the user installs
diff --git a/Docs/mirrors.texi b/Docs/mirrors.texi
index 61bb08f3979..6042d168316 100644
--- a/Docs/mirrors.texi
+++ b/Docs/mirrors.texi
@@ -63,6 +63,11 @@ WWW (@uref{http://mysql-mirror.free.fr/})
FTP (@uref{ftp://ftp.free.fr/pub/MySQL/})
@item
+@image{Flags/france} France [mir2.ovh.net/] @@
+WWW (@uref{http://mir2.ovh.net/ftp.mysql.com/})
+FTP (@uref{ftp://mir1.ovh.net/ftp.mysql.com/})
+
+@item
@image{Flags/france} France [Netsample] @@
WWW (@uref{http://www.mysql.netsample.com/})
@@ -71,6 +76,11 @@ WWW (@uref{http://www.mysql.netsample.com/})
WWW (@uref{http://mysql.omegatomic.com/})
@item
+@image{Flags/france} France [Universite Paris 10] @@
+WWW (@uref{http://ftp.u-paris10.fr/mysql.com})
+FTP (@uref{ftp://ftp.u-paris10.fr/mysql.com})
+
+@item
@image{Flags/germany} Germany [GWDG] @@
WWW (@uref{http://ftp.gwdg.de/pub/misc/mysql/})
FTP (@uref{ftp://ftp.gwdg.de/pub/misc/mysql/})
@@ -110,9 +120,8 @@ WWW (@uref{http://mysql.sote.hu/})
FTP (@uref{ftp://xenia.sote.hu/pub/mirrors/www.mysql.com/})
@item
-@image{Flags/iceland} Iceland [GM] @@
-WWW (@uref{http://mysql.gm.is/})
-FTP (@uref{ftp://ftp.gm.is/pub/mysql/})
+@image{Flags/iceland} Iceland [Tvíund] @@
+WWW (@uref{http://mysql.tviund.is/})
@item
@image{Flags/ireland} Ireland [Esat Net] @@
@@ -124,6 +133,10 @@ FTP (@uref{ftp://ftp.esat.net/mirrors/download.sourceforge.net/pub/mirrors/mysql
WWW (@uref{http://mirrors.nmtbmedia.com/mysql/})
@item
+@image{Flags/israel} Israel [fresh.co.il] @@
+WWW (@uref{http://mysql.fresh.co.il/})
+
+@item
@image{Flags/italy} Italy [feelinglinux.com] @@
WWW (@uref{http://mysql.feelinglinux.com/})
@@ -171,16 +184,16 @@ WWW (@uref{http://darkstar.ist.utl.pt/mysql/})
FTP (@uref{ftp://darkstar.ist.utl.pt/pub/mysql/})
@item
-@image{Flags/portugal} Portugal [Netc] @@
-WWW (@uref{http://ftp.netc.pt/pub/mysql/})
-FTP (@uref{ftp://ftp.netc.pt/pub/mysql/})
-
-@item
@image{Flags/portugal} Portugal [Netvisão] @@
WWW (@uref{http://mysql.netvisao.pt/})
FTP (@uref{ftp://mirrors2.netvisao.pt/pub/mysql/})
@item
+@image{Flags/portugal} Portugal [VIZZAVI] @@
+WWW (@uref{http://ftp.vizzavi.pt/pub/mysql/})
+FTP (@uref{ftp://ftp.vizzavi.pt/pub/mysql/})
+
+@item
@image{Flags/romania} Romania [roedu.net/Bucharest] @@
FTP (@uref{ftp://ftp.roedu.net/pub/mirrors/ftp.mysql.com/})
@@ -199,11 +212,6 @@ WWW (@uref{http://ftp.arnes.si/mysql/})
FTP (@uref{ftp://ftp.arnes.si/packages/mysql/})
@item
-@image{Flags/spain} Spain [GMC Control Systems] @@
-WWW (@uref{http://mysql.neptuno2000.com/})
-FTP (@uref{ftp://ftp.neptuno2000.com/pub/mysql/})
-
-@item
@image{Flags/sweden} Sweden [Sunet] @@
WWW (@uref{http://ftp.sunet.se/pub/unix/databases/relational/mysql/})
FTP (@uref{ftp://ftp.sunet.se/pub/unix/databases/relational/mysql/})
@@ -293,11 +301,6 @@ FTP (@uref{ftp://mirror.sit.wisc.edu/mirrors/mysql/})
WWW (@uref{http://mysql.secsup.org/})
FTP (@uref{ftp://mysql.secsup.org/pub/software/mysql/})
-@item
-@image{Flags/usa} USA [ValueClick / Los Angeles, CA] @@
-WWW (@uref{http://mysql.valueclick.com/})
-FTP (@uref{ftp://mysql.valueclick.com/pub/mysql/})
-
@end itemize
@strong{South America:}
@@ -334,11 +337,6 @@ FTP (@uref{ftp://mysql.ogmios.co.cr/pub/mysql/})
@itemize @bullet
@item
-@image{Flags/china} China [Gremlins/Hong Kong] @@
-WWW (@uref{http://mysql.gremlins.com.hk/})
-FTP (@uref{ftp://ftp.mirrors.gremlins.com.hk/mysql/})
-
-@item
@image{Flags/china} China [HKLPG/Hong Kong] @@
WWW (@uref{http://mysql.hklpg.org/})
@@ -363,6 +361,7 @@ FTP (@uref{ftp://mysql.incaf.net/})
@item
@image{Flags/indonesia} Indonesia [M-Web] @@
WWW (@uref{http://mysql.mweb.net.id/})
+FTP (@uref{ftp://mysql.mweb.net.id/pub/database/mysql/})
@item
@image{Flags/indonesia} Indonesia [web.id] @@
@@ -413,6 +412,10 @@ WWW (@uref{http://mysql.ttn.net/})
WWW (@uref{http://mysql.planetmirror.com/})
FTP (@uref{ftp://planetmirror.com/pub/mysql/})
+@item
+@image{Flags/new-zealand} New Zealand [Cubalan] @@
+WWW (@uref{http://mysql.soa.co.nz/})
+
@end itemize
@strong{Africa:}
diff --git a/Docs/mysqld_error.txt b/Docs/mysqld_error.txt
index 7a5b6cf38d0..db663e3d1f5 100644
--- a/Docs/mysqld_error.txt
+++ b/Docs/mysqld_error.txt
@@ -1,457 +1,457 @@
/* Copyright Abandoned 1997 TCX DataKonsult AB & Monty Program KB & Detron HB
This file is public domain and comes with NO WARRANTY of any kind */
-#define ER_HASHCHK 0
+#define ER_HASHCHK 1000
"hashchk",
-#define ER_NISAMCHK 1
+#define ER_NISAMCHK 1001
"isamchk",
-#define ER_NO 2
+#define ER_NO 1002
"NO",
-#define ER_YES 3
+#define ER_YES 1003
"YES",
-#define ER_CANT_CREATE_FILE 4
+#define ER_CANT_CREATE_FILE 1004
"Can't create file '%-.64s' (errno: %d)",
-#define ER_CANT_CREATE_TABLE 5
+#define ER_CANT_CREATE_TABLE 1005
"Can't create table '%-.64s' (errno: %d)",
-#define ER_CANT_CREATE_DB 6
+#define ER_CANT_CREATE_DB 1006
"Can't create database '%-.64s'. (errno: %d)",
-#define ER_DB_CREATE_EXISTS 7
+#define ER_DB_CREATE_EXISTS 1007
"Can't create database '%-.64s'. Database exists",
-#define ER_DB_DROP_EXISTS 8
+#define ER_DB_DROP_EXISTS 1008
"Can't drop database '%-.64s'. Database doesn't exist",
-#define ER_DB_DROP_DELETE 9
+#define ER_DB_DROP_DELETE 1009
"Error dropping database (can't delete '%-.64s', errno: %d)",
-#define ER_DB_DROP_RMDIR 10
+#define ER_DB_DROP_RMDIR 1010
"Error dropping database (can't rmdir '%-.64s', errno: %d)",
-#define ER_CANT_DELETE_FILE 11
+#define ER_CANT_DELETE_FILE 1011
"Error on delete of '%-.64s' (errno: %d)",
-#define ER_CANT_FIND_SYSTEM_REC 12
+#define ER_CANT_FIND_SYSTEM_REC 1012
"Can't read record in system table",
-#define ER_CANT_GET_STAT 13
+#define ER_CANT_GET_STAT 1013
"Can't get status of '%-.64s' (errno: %d)",
-#define ER_CANT_GET_WD 14
+#define ER_CANT_GET_WD 1014
"Can't get working directory (errno: %d)",
-#define ER_CANT_LOCK 15
+#define ER_CANT_LOCK 1015
"Can't lock file (errno: %d)",
-#define ER_CANT_OPEN_FILE 16
+#define ER_CANT_OPEN_FILE 1016
"Can't open file: '%-.64s'. (errno: %d)",
-#define ER_FILE_NOT_FOUND 17
+#define ER_FILE_NOT_FOUND 1017
"Can't find file: '%-.64s' (errno: %d)",
-#define ER_CANT_READ_DIR 18
+#define ER_CANT_READ_DIR 1018
"Can't read dir of '%-.64s' (errno: %d)",
-#define ER_CANT_SET_WD 19
+#define ER_CANT_SET_WD 1019
"Can't change dir to '%-.64s' (errno: %d)",
-#define ER_CHECKREAD 20
+#define ER_CHECKREAD 1020
"Record has changed since last read in table '%-.64s'",
-#define ER_DISK_FULL 21
+#define ER_DISK_FULL 1021
"Disk full (%s). Waiting for someone to free some space....",
-#define ER_DUP_KEY 22
+#define ER_DUP_KEY 1022
"Can't write, duplicate key in table '%-.64s'",
-#define ER_ERROR_ON_CLOSE 23
+#define ER_ERROR_ON_CLOSE 1023
"Error on close of '%-.64s' (errno: %d)",
-#define ER_ERROR_ON_READ 24
+#define ER_ERROR_ON_READ 1024
"Error reading file '%-.64s' (errno: %d)",
-#define ER_ERROR_ON_RENAME 25
+#define ER_ERROR_ON_RENAME 1025
"Error on rename of '%-.64s' to '%-.64s' (errno: %d)",
-#define ER_ERROR_ON_WRITE 26
+#define ER_ERROR_ON_WRITE 1026
"Error writing file '%-.64s' (errno: %d)",
-#define ER_FILE_USED 27
+#define ER_FILE_USED 1027
"'%-.64s' is locked against change",
-#define ER_FILSORT_ABORT 28
+#define ER_FILSORT_ABORT 1028
"Sort aborted",
-#define ER_FORM_NOT_FOUND 29
+#define ER_FORM_NOT_FOUND 1029
"View '%-.64s' doesn't exist for '%-.64s'",
-#define ER_GET_ERRNO 30
+#define ER_GET_ERRNO 1030
"Got error %d from table handler",
-#define ER_ILLEGAL_HA 31
+#define ER_ILLEGAL_HA 1031
"Table handler for '%-.64s' doesn't have this option",
-#define ER_KEY_NOT_FOUND 32
+#define ER_KEY_NOT_FOUND 1032
"Can't find record in '%-.64s'",
-#define ER_NOT_FORM_FILE 33
+#define ER_NOT_FORM_FILE 1033
"Incorrect information in file: '%-.64s'",
-#define ER_NOT_KEYFILE 34
+#define ER_NOT_KEYFILE 1034
"Incorrect key file for table: '%-.64s'. Try to repair it",
-#define ER_OLD_KEYFILE 35
+#define ER_OLD_KEYFILE 1035
"Old key file for table '%-.64s'; Repair it!",
-#define ER_OPEN_AS_READONLY 36
+#define ER_OPEN_AS_READONLY 1036
"Table '%-.64s' is read only",
-#define ER_OUTOFMEMORY 37
+#define ER_OUTOFMEMORY 1037
"Out of memory. Restart daemon and try again (needed %d bytes)",
-#define ER_OUT_OF_SORTMEMORY 38
+#define ER_OUT_OF_SORTMEMORY 1038
"Out of sort memory. Increase daemon sort buffer size",
-#define ER_UNEXPECTED_EOF 39
+#define ER_UNEXPECTED_EOF 1039
"Unexpected eof found when reading file '%-.64s' (errno: %d)",
-#define ER_CON_COUNT_ERROR 40
+#define ER_CON_COUNT_ERROR 1040
"Too many connections",
-#define ER_OUT_OF_RESOURCES 41
+#define ER_OUT_OF_RESOURCES 1041
"Out of memory; Check if mysqld or some other process uses all available memory. If not you may have to use 'ulimit' to allow mysqld to use more memory or you can add more swap space",
-#define ER_BAD_HOST_ERROR 42
+#define ER_BAD_HOST_ERROR 1042
"Can't get hostname for your address",
-#define ER_HANDSHAKE_ERROR 43
+#define ER_HANDSHAKE_ERROR 1043
"Bad handshake",
-#define ER_DBACCESS_DENIED_ERROR 44
+#define ER_DBACCESS_DENIED_ERROR 1044
"Access denied for user: '%-.32s@%-.64s' to database '%-.64s'",
-#define ER_ACCESS_DENIED_ERROR 45
+#define ER_ACCESS_DENIED_ERROR 1045
"Access denied for user: '%-.32s@%-.64s' (Using password: %s)",
-#define ER_NO_DB_ERROR 46
+#define ER_NO_DB_ERROR 1046
"No Database Selected",
-#define ER_UNKNOWN_COM_ERROR 47
+#define ER_UNKNOWN_COM_ERROR 1047
"Unknown command",
-#define ER_BAD_NULL_ERROR 48
+#define ER_BAD_NULL_ERROR 1048
"Column '%-.64s' cannot be null",
-#define ER_BAD_DB_ERROR 49
+#define ER_BAD_DB_ERROR 1049
"Unknown database '%-.64s'",
-#define ER_TABLE_EXISTS_ERROR 50
+#define ER_TABLE_EXISTS_ERROR 1050
"Table '%-.64s' already exists",
-#define ER_BAD_TABLE_ERROR 51
+#define ER_BAD_TABLE_ERROR 1051
"Unknown table '%-.64s'",
-#define ER_NON_UNIQ_ERROR 52
+#define ER_NON_UNIQ_ERROR 1052
"Column: '%-.64s' in %-.64s is ambiguous",
-#define ER_SERVER_SHUTDOWN 53
+#define ER_SERVER_SHUTDOWN 1053
"Server shutdown in progress",
-#define ER_BAD_FIELD_ERROR 54
+#define ER_BAD_FIELD_ERROR 1054
"Unknown column '%-.64s' in '%-.64s'",
-#define ER_WRONG_FIELD_WITH_GROUP 55
+#define ER_WRONG_FIELD_WITH_GROUP 1055
"'%-.64s' isn't in GROUP BY",
-#define ER_WRONG_GROUP_FIELD 56
+#define ER_WRONG_GROUP_FIELD 1056
"Can't group on '%-.64s'",
-#define ER_WRONG_SUM_SELECT 57
+#define ER_WRONG_SUM_SELECT 1057
"Statement has sum functions and columns in same statement",
-#define ER_WRONG_VALUE_COUNT 58
+#define ER_WRONG_VALUE_COUNT 1058
"Column count doesn't match value count",
-#define ER_TOO_LONG_IDENT 59
+#define ER_TOO_LONG_IDENT 1059
"Identifier name '%-.100s' is too long",
-#define ER_DUP_FIELDNAME 60
+#define ER_DUP_FIELDNAME 1060
"Duplicate column name '%-.64s'",
-#define ER_DUP_KEYNAME 61
+#define ER_DUP_KEYNAME 1061
"Duplicate key name '%-.64s'",
-#define ER_DUP_ENTRY 62
+#define ER_DUP_ENTRY 1062
"Duplicate entry '%-.64s' for key %d",
-#define ER_WRONG_FIELD_SPEC 63
+#define ER_WRONG_FIELD_SPEC 1063
"Incorrect column specifier for column '%-.64s'",
-#define ER_PARSE_ERROR 64
+#define ER_PARSE_ERROR 1064
"%s near '%-.80s' at line %d",
-#define ER_EMPTY_QUERY 65
+#define ER_EMPTY_QUERY 1065
"Query was empty",
-#define ER_NONUNIQ_TABLE 66
+#define ER_NONUNIQ_TABLE 1066
"Not unique table/alias: '%-.64s'",
-#define ER_INVALID_DEFAULT 67
+#define ER_INVALID_DEFAULT 1067
"Invalid default value for '%-.64s'",
-#define ER_MULTIPLE_PRI_KEY 68
+#define ER_MULTIPLE_PRI_KEY 1068
"Multiple primary key defined",
-#define ER_TOO_MANY_KEYS 69
+#define ER_TOO_MANY_KEYS 1069
"Too many keys specified. Max %d keys allowed",
-#define ER_TOO_MANY_KEY_PARTS 70
+#define ER_TOO_MANY_KEY_PARTS 1070
"Too many key parts specified. Max %d parts allowed",
-#define ER_TOO_LONG_KEY 71
+#define ER_TOO_LONG_KEY 1071
"Specified key was too long. Max key length is %d",
-#define ER_KEY_COLUMN_DOES_NOT_EXITS 72
+#define ER_KEY_COLUMN_DOES_NOT_EXITS 1072
"Key column '%-.64s' doesn't exist in table",
-#define ER_BLOB_USED_AS_KEY 73
+#define ER_BLOB_USED_AS_KEY 1073
"BLOB column '%-.64s' can't be used in key specification with the used table type",
-#define ER_TOO_BIG_FIELDLENGTH 74
+#define ER_TOO_BIG_FIELDLENGTH 1074
"Too big column length for column '%-.64s' (max = %d). Use BLOB instead",
-#define ER_WRONG_AUTO_KEY 75
+#define ER_WRONG_AUTO_KEY 1075
"Incorrect table definition; There can only be one auto column and it must be defined as a key",
-#define ER_READY 76
+#define ER_READY 1076
"%s: ready for connections\n",
-#define ER_NORMAL_SHUTDOWN 77
+#define ER_NORMAL_SHUTDOWN 1077
"%s: Normal shutdown\n",
-#define ER_GOT_SIGNAL 78
+#define ER_GOT_SIGNAL 1078
"%s: Got signal %d. Aborting!\n",
-#define ER_SHUTDOWN_COMPLETE 79
+#define ER_SHUTDOWN_COMPLETE 1079
"%s: Shutdown Complete\n",
-#define ER_FORCING_CLOSE 80
+#define ER_FORCING_CLOSE 1080
"%s: Forcing close of thread %ld user: '%-.32s'\n",
-#define ER_IPSOCK_ERROR 81
+#define ER_IPSOCK_ERROR 1081
"Can't create IP socket",
-#define ER_NO_SUCH_INDEX 82
+#define ER_NO_SUCH_INDEX 1082
"Table '%-.64s' has no index like the one used in CREATE INDEX. Recreate the table",
-#define ER_WRONG_FIELD_TERMINATORS 83
+#define ER_WRONG_FIELD_TERMINATORS 1083
"Field separator argument is not what is expected. Check the manual",
-#define ER_BLOBS_AND_NO_TERMINATED 84
+#define ER_BLOBS_AND_NO_TERMINATED 1084
"You can't use fixed rowlength with BLOBs. Please use 'fields terminated by'.",
-#define ER_TEXTFILE_NOT_READABLE 85
+#define ER_TEXTFILE_NOT_READABLE 1085
"The file '%-.64s' must be in the database directory or be readable by all",
-#define ER_FILE_EXISTS_ERROR 86
+#define ER_FILE_EXISTS_ERROR 1086
"File '%-.80s' already exists",
-#define ER_LOAD_INFO 87
+#define ER_LOAD_INFO 1087
"Records: %ld Deleted: %ld Skipped: %ld Warnings: %ld",
-#define ER_ALTER_INFO 88
+#define ER_ALTER_INFO 1088
"Records: %ld Duplicates: %ld",
-#define ER_WRONG_SUB_KEY 89
+#define ER_WRONG_SUB_KEY 1089
"Incorrect sub part key. The used key part isn't a string, the used length is longer than the key part or the table handler doesn't support unique sub keys",
-#define ER_CANT_REMOVE_ALL_FIELDS 90
+#define ER_CANT_REMOVE_ALL_FIELDS 1090
"You can't delete all columns with ALTER TABLE. Use DROP TABLE instead",
-#define ER_CANT_DROP_FIELD_OR_KEY 91
+#define ER_CANT_DROP_FIELD_OR_KEY 1091
"Can't DROP '%-.64s'. Check that column/key exists",
-#define ER_INSERT_INFO 92
+#define ER_INSERT_INFO 1092
"Records: %ld Duplicates: %ld Warnings: %ld",
-#define ER_INSERT_TABLE_USED 93
+#define ER_INSERT_TABLE_USED 1093
"INSERT TABLE '%-.64s' isn't allowed in FROM table list",
-#define ER_NO_SUCH_THREAD 94
+#define ER_NO_SUCH_THREAD 1094
"Unknown thread id: %lu",
-#define ER_KILL_DENIED_ERROR 95
+#define ER_KILL_DENIED_ERROR 1095
"You are not owner of thread %lu",
-#define ER_NO_TABLES_USED 96
+#define ER_NO_TABLES_USED 1096
"No tables used",
-#define ER_TOO_BIG_SET 97
+#define ER_TOO_BIG_SET 1097
"Too many strings for column %-.64s and SET",
-#define ER_NO_UNIQUE_LOGFILE 98
+#define ER_NO_UNIQUE_LOGFILE 1098
"Can't generate a unique log-filename %-.64s.(1-999)\n",
-#define ER_TABLE_NOT_LOCKED_FOR_WRITE 99
+#define ER_TABLE_NOT_LOCKED_FOR_WRITE 1099
"Table '%-.64s' was locked with a READ lock and can't be updated",
-#define ER_TABLE_NOT_LOCKED 100
+#define ER_TABLE_NOT_LOCKED 1100
"Table '%-.64s' was not locked with LOCK TABLES",
-#define ER_BLOB_CANT_HAVE_DEFAULT 101
+#define ER_BLOB_CANT_HAVE_DEFAULT 1101
"BLOB column '%-.64s' can't have a default value",
-#define ER_WRONG_DB_NAME 102
+#define ER_WRONG_DB_NAME 1102
"Incorrect database name '%-.100s'",
-#define ER_WRONG_TABLE_NAME 103
+#define ER_WRONG_TABLE_NAME 1103
"Incorrect table name '%-.100s'",
-#define ER_TOO_BIG_SELECT 104
+#define ER_TOO_BIG_SELECT 1104
"The SELECT would examine too many records and probably take a very long time. Check your WHERE and use SET OPTION SQL_BIG_SELECTS=1 if the SELECT is ok",
-#define ER_UNKNOWN_ERROR 105
+#define ER_UNKNOWN_ERROR 1105
"Unknown error",
-#define ER_UNKNOWN_PROCEDURE 106
+#define ER_UNKNOWN_PROCEDURE 1106
"Unknown procedure '%-.64s'",
-#define ER_WRONG_PARAMCOUNT_TO_PROCEDURE 107
+#define ER_WRONG_PARAMCOUNT_TO_PROCEDURE 1107
"Incorrect parameter count to procedure '%-.64s'",
-#define ER_WRONG_PARAMETERS_TO_PROCEDURE 108
+#define ER_WRONG_PARAMETERS_TO_PROCEDURE 1108
"Incorrect parameters to procedure '%-.64s'",
-#define ER_UNKNOWN_TABLE 109
+#define ER_UNKNOWN_TABLE 1109
"Unknown table '%-.64s' in %-.32s",
-#define ER_FIELD_SPECIFIED_TWICE 110
+#define ER_FIELD_SPECIFIED_TWICE 1110
"Column '%-.64s' specified twice",
-#define ER_INVALID_GROUP_FUNC_USE 111
+#define ER_INVALID_GROUP_FUNC_USE 1111
"Invalid use of group function",
-#define ER_UNSUPPORTED_EXTENSION 112
+#define ER_UNSUPPORTED_EXTENSION 1112
"Table '%-.64s' uses an extension that doesn't exist in this MySQL version",
-#define ER_TABLE_MUST_HAVE_COLUMNS 113
+#define ER_TABLE_MUST_HAVE_COLUMNS 1113
"A table must have at least 1 column",
-#define ER_RECORD_FILE_FULL 114
+#define ER_RECORD_FILE_FULL 1114
"The table '%-.64s' is full",
-#define ER_UNKNOWN_CHARACTER_SET 115
+#define ER_UNKNOWN_CHARACTER_SET 1115
"Unknown character set: '%-.64s'",
-#define ER_TOO_MANY_TABLES 116
+#define ER_TOO_MANY_TABLES 1116
"Too many tables. MySQL can only use %d tables in a join",
-#define ER_TOO_MANY_FIELDS 117
+#define ER_TOO_MANY_FIELDS 1117
"Too many columns",
-#define ER_TOO_BIG_ROWSIZE 118
+#define ER_TOO_BIG_ROWSIZE 1118
"Too big row size. The maximum row size, not counting BLOBs, is %d. You have to change some fields to BLOBs",
-#define ER_STACK_OVERRUN 119
+#define ER_STACK_OVERRUN 1119
"Thread stack overrun: Used: %ld of a %ld stack. Use 'mysqld -O thread_stack=#' to specify a bigger stack if needed",
-#define ER_WRONG_OUTER_JOIN 120
+#define ER_WRONG_OUTER_JOIN 1120
"Cross dependency found in OUTER JOIN. Examine your ON conditions",
-#define ER_NULL_COLUMN_IN_INDEX 121
+#define ER_NULL_COLUMN_IN_INDEX 1121
"Column '%-.64s' is used with UNIQUE or INDEX but is not defined as NOT NULL",
-#define ER_CANT_FIND_UDF 122
+#define ER_CANT_FIND_UDF 1122
"Can't load function '%-.64s'",
-#define ER_CANT_INITIALIZE_UDF 123
+#define ER_CANT_INITIALIZE_UDF 1123
"Can't initialize function '%-.64s'; %-.80s",
-#define ER_UDF_NO_PATHS 124
+#define ER_UDF_NO_PATHS 1124
"No paths allowed for shared library",
-#define ER_UDF_EXISTS 125
+#define ER_UDF_EXISTS 1125
"Function '%-.64s' already exist",
-#define ER_CANT_OPEN_LIBRARY 126
+#define ER_CANT_OPEN_LIBRARY 1126
"Can't open shared library '%-.64s' (errno: %d %-.64s)",
-#define ER_CANT_FIND_DL_ENTRY 127
+#define ER_CANT_FIND_DL_ENTRY 1127
"Can't find function '%-.64s' in library'",
-#define ER_FUNCTION_NOT_DEFINED 128
+#define ER_FUNCTION_NOT_DEFINED 1128
"Function '%-.64s' is not defined",
-#define ER_HOST_IS_BLOCKED 129
+#define ER_HOST_IS_BLOCKED 1129
"Host '%-.64s' is blocked because of many connection errors. Unblock with 'mysqladmin flush-hosts'",
-#define ER_HOST_NOT_PRIVILEGED 130
+#define ER_HOST_NOT_PRIVILEGED 1130
"Host '%-.64s' is not allowed to connect to this MySQL server",
-#define ER_PASSWORD_ANONYMOUS_USER 131
+#define ER_PASSWORD_ANONYMOUS_USER 1131
"You are using MySQL as an anonymous users and anonymous users are not allowed to change passwords",
-#define ER_PASSWORD_NOT_ALLOWED 132
+#define ER_PASSWORD_NOT_ALLOWED 1132
"You must have privileges to update tables in the mysql database to be able to change passwords for others",
-#define ER_PASSWORD_NO_MATCH 133
+#define ER_PASSWORD_NO_MATCH 1133
"Can't find any matching row in the user table",
-#define ER_UPDATE_INFO 134
+#define ER_UPDATE_INFO 1134
"Rows matched: %ld Changed: %ld Warnings: %ld",
-#define ER_CANT_CREATE_THREAD 135
+#define ER_CANT_CREATE_THREAD 1135
"Can't create a new thread (errno %d). If you are not out of available memory, you can consult the manual for a possible OS-dependent bug",
-#define ER_WRONG_VALUE_COUNT_ON_ROW 136
+#define ER_WRONG_VALUE_COUNT_ON_ROW 1136
"Column count doesn't match value count at row %ld",
-#define ER_CANT_REOPEN_TABLE 137
+#define ER_CANT_REOPEN_TABLE 1137
"Can't reopen table: '%-.64s'",
-#define ER_INVALID_USE_OF_NULL 138
+#define ER_INVALID_USE_OF_NULL 1138
"Invalid use of NULL value",
-#define ER_REGEXP_ERROR 139
+#define ER_REGEXP_ERROR 1139
"Got error '%-.64s' from regexp",
-#define ER_MIX_OF_GROUP_FUNC_AND_FIELDS 140
+#define ER_MIX_OF_GROUP_FUNC_AND_FIELDS 1140
"Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause",
-#define ER_NONEXISTING_GRANT 141
+#define ER_NONEXISTING_GRANT 1141
"There is no such grant defined for user '%-.32s' on host '%-.64s'",
-#define ER_TABLEACCESS_DENIED_ERROR 142
+#define ER_TABLEACCESS_DENIED_ERROR 1142
"%-.16s command denied to user: '%-.32s@%-.64s' for table '%-.64s'",
-#define ER_COLUMNACCESS_DENIED_ERROR 143
+#define ER_COLUMNACCESS_DENIED_ERROR 1143
"%-.16s command denied to user: '%-.32s@%-.64s' for column '%-.64s' in table '%-.64s'",
-#define ER_ILLEGAL_GRANT_FOR_TABLE 144
+#define ER_ILLEGAL_GRANT_FOR_TABLE 1144
"Illegal GRANT/REVOKE command. Please consult the manual which privileges can be used.",
-#define ER_GRANT_WRONG_HOST_OR_USER 145
+#define ER_GRANT_WRONG_HOST_OR_USER 1145
"The host or user argument to GRANT is too long",
-#define ER_NO_SUCH_TABLE 146
+#define ER_NO_SUCH_TABLE 1146
"Table '%-.64s.%-.64s' doesn't exist",
-#define ER_NONEXISTING_TABLE_GRANT 147
+#define ER_NONEXISTING_TABLE_GRANT 1147
"There is no such grant defined for user '%-.32s' on host '%-.64s' on table '%-.64s'",
-#define ER_NOT_ALLOWED_COMMAND 148
+#define ER_NOT_ALLOWED_COMMAND 1148
"The used command is not allowed with this MySQL version",
-#define ER_SYNTAX_ERROR 149
+#define ER_SYNTAX_ERROR 1149
"You have an error in your SQL syntax",
-#define ER_DELAYED_CANT_CHANGE_LOCK 150
+#define ER_DELAYED_CANT_CHANGE_LOCK 1150
"Delayed insert thread couldn't get requested lock for table %-.64s",
-#define ER_TOO_MANY_DELAYED_THREADS 151
+#define ER_TOO_MANY_DELAYED_THREADS 1151
"Too many delayed threads in use",
-#define ER_ABORTING_CONNECTION 152
+#define ER_ABORTING_CONNECTION 1152
"Aborted connection %ld to db: '%-.64s' user: '%-.32s' (%-.64s)",
-#define ER_NET_PACKET_TOO_LARGE 153
+#define ER_NET_PACKET_TOO_LARGE 1153
"Got a packet bigger than 'max_allowed_packet'",
-#define ER_NET_READ_ERROR_FROM_PIPE 154
+#define ER_NET_READ_ERROR_FROM_PIPE 1154
"Got a read error from the connection pipe",
-#define ER_NET_FCNTL_ERROR 155
+#define ER_NET_FCNTL_ERROR 1155
"Got an error from fcntl()",
-#define ER_NET_PACKETS_OUT_OF_ORDER 156
+#define ER_NET_PACKETS_OUT_OF_ORDER 1156
"Got packets out of order",
-#define ER_NET_UNCOMPRESS_ERROR 157
+#define ER_NET_UNCOMPRESS_ERROR 1157
"Couldn't uncompress communication packet",
-#define ER_NET_READ_ERROR 158
+#define ER_NET_READ_ERROR 1158
"Got an error reading communication packets",
-#define ER_NET_READ_INTERRUPTED 159
+#define ER_NET_READ_INTERRUPTED 1159
"Got timeout reading communication packets",
-#define ER_NET_ERROR_ON_WRITE 160
+#define ER_NET_ERROR_ON_WRITE 1160
"Got an error writing communication packets",
-#define ER_NET_WRITE_INTERRUPTED 161
+#define ER_NET_WRITE_INTERRUPTED 1161
"Got timeout writing communication packets",
-#define ER_TOO_LONG_STRING 162
+#define ER_TOO_LONG_STRING 1162
"Result string is longer than max_allowed_packet",
-#define ER_TABLE_CANT_HANDLE_BLOB 163
+#define ER_TABLE_CANT_HANDLE_BLOB 1163
"The used table type doesn't support BLOB/TEXT columns",
-#define ER_TABLE_CANT_HANDLE_AUTO_INCREMENT 164
+#define ER_TABLE_CANT_HANDLE_AUTO_INCREMENT 1164
"The used table type doesn't support AUTO_INCREMENT columns",
-#define ER_DELAYED_INSERT_TABLE_LOCKED 165
+#define ER_DELAYED_INSERT_TABLE_LOCKED 1165
"INSERT DELAYED can't be used with table '%-.64s', because it is locked with LOCK TABLES",
-#define ER_WRONG_COLUMN_NAME 166
+#define ER_WRONG_COLUMN_NAME 1166
"Incorrect column name '%-.100s'",
-#define ER_WRONG_KEY_COLUMN 167
+#define ER_WRONG_KEY_COLUMN 1167
"The used table handler can't index column '%-.64s'",
-#define ER_WRONG_MRG_TABLE 168
+#define ER_WRONG_MRG_TABLE 1168
"All tables in the MERGE table are not identically defined",
-#define ER_DUP_UNIQUE 169
+#define ER_DUP_UNIQUE 1169
"Can't write, because of unique constraint, to table '%-.64s'",
-#define ER_BLOB_KEY_WITHOUT_LENGTH 170
+#define ER_BLOB_KEY_WITHOUT_LENGTH 1170
"BLOB column '%-.64s' used in key specification without a key length",
-#define ER_PRIMARY_CANT_HAVE_NULL 171
+#define ER_PRIMARY_CANT_HAVE_NULL 1171
"All parts of a PRIMARY KEY must be NOT NULL; If you need NULL in a key, use UNIQUE instead",
-#define ER_TOO_MANY_ROWS 172
+#define ER_TOO_MANY_ROWS 1172
"Result consisted of more than one row",
-#define ER_REQUIRES_PRIMARY_KEY 173
+#define ER_REQUIRES_PRIMARY_KEY 1173
"This table type requires a primary key",
-#define ER_NO_RAID_COMPILED 174
+#define ER_NO_RAID_COMPILED 1174
"This version of MySQL is not compiled with RAID support",
-#define ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE 175
+#define ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE 1175
"You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column",
-#define ER_KEY_DOES_NOT_EXITS 176
+#define ER_KEY_DOES_NOT_EXITS 1176
"Key '%-.64s' doesn't exist in table '%-.64s'",
-#define ER_CHECK_NO_SUCH_TABLE 177
+#define ER_CHECK_NO_SUCH_TABLE 1177
"Can't open table",
-#define ER_CHECK_NOT_IMPLEMENTED 178
+#define ER_CHECK_NOT_IMPLEMENTED 1178
"The handler for the table doesn't support check/repair",
-#define ER_CANT_DO_THIS_DURING_AN_TRANSACTION 179
+#define ER_CANT_DO_THIS_DURING_AN_TRANSACTION 1179
"You are not allowed to execute this command in a transaction",
-#define ER_ERROR_DURING_COMMIT 180
+#define ER_ERROR_DURING_COMMIT 1180
"Got error %d during COMMIT",
-#define ER_ERROR_DURING_ROLLBACK 181
+#define ER_ERROR_DURING_ROLLBACK 1181
"Got error %d during ROLLBACK",
-#define ER_ERROR_DURING_FLUSH_LOGS 182
+#define ER_ERROR_DURING_FLUSH_LOGS 1182
"Got error %d during FLUSH_LOGS",
-#define ER_ERROR_DURING_CHECKPOINT 183
+#define ER_ERROR_DURING_CHECKPOINT 1183
"Got error %d during CHECKPOINT",
-#define ER_NEW_ABORTING_CONNECTION 184
+#define ER_NEW_ABORTING_CONNECTION 1184
"Aborted connection %ld to db: '%-.64s' user: '%-.32s' host: `%-.64s' (%-.64s)",
-#define ER_DUMP_NOT_IMPLEMENTED 185
+#define ER_DUMP_NOT_IMPLEMENTED 1185
"The handler for the table does not support binary table dump",
-#define ER_FLUSH_MASTER_BINLOG_CLOSED 186
+#define ER_FLUSH_MASTER_BINLOG_CLOSED 1186
"Binlog closed, cannot RESET MASTER",
-#define ER_INDEX_REBUILD 187
+#define ER_INDEX_REBUILD 1187
"Failed rebuilding the index of dumped table '%-.64s'",
-#define ER_MASTER 188
+#define ER_MASTER 1188
"Error from master: '%-.64s'",
-#define ER_MASTER_NET_READ 189
+#define ER_MASTER_NET_READ 1189
"Net error reading from master",
-#define ER_MASTER_NET_WRITE 190
+#define ER_MASTER_NET_WRITE 1190
"Net error writing to master",
-#define ER_FT_MATCHING_KEY_NOT_FOUND 191
+#define ER_FT_MATCHING_KEY_NOT_FOUND 1191
"Can't find FULLTEXT index matching the column list",
-#define ER_LOCK_OR_ACTIVE_TRANSACTION 192
+#define ER_LOCK_OR_ACTIVE_TRANSACTION 1192
"Can't execute the given command because you have active locked tables or an active transaction",
-#define ER_UNKNOWN_SYSTEM_VARIABLE 193
-"Unknown system variable '%-.64'",
-#define ER_CRASHED_ON_USAGE 194
+#define ER_UNKNOWN_SYSTEM_VARIABLE 1193
+"Unknown system variable '%-.64s'",
+#define ER_CRASHED_ON_USAGE 1194
"Table '%-.64s' is marked as crashed and should be repaired",
-#define ER_CRASHED_ON_REPAIR 195
+#define ER_CRASHED_ON_REPAIR 1195
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
-#define ER_WARNING_NOT_COMPLETE_ROLLBACK 196
+#define ER_WARNING_NOT_COMPLETE_ROLLBACK 1196
"Warning: Some non-transactional changed tables couldn't be rolled back",
-#define ER_TRANS_CACHE_FULL 197
+#define ER_TRANS_CACHE_FULL 1197
"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again',
-#define ER_SLAVE_MUST_STOP 198
+#define ER_SLAVE_MUST_STOP 1198
"This operation cannot be performed with a running slave, run SLAVE STOP first",
-#define ER_SLAVE_NOT_RUNNING 199
+#define ER_SLAVE_NOT_RUNNING 1199
"This operation requires a running slave, configure slave and do SLAVE START",
-#define ER_BAD_SLAVE 200
+#define ER_BAD_SLAVE 1200
"The server is not configured as slave, fix in config file or with CHANGE MASTER TO",
-#define ER_MASTER_INFO 201
+#define ER_MASTER_INFO 1201
"Could not initialize master info structure, check permisions on master.info",
-#define ER_SLAVE_THREAD 202
+#define ER_SLAVE_THREAD 1202
"Could not create slave thread, check system resources",
-#define ER_TOO_MANY_USER_CONNECTIONS 203
+#define ER_TOO_MANY_USER_CONNECTIONS 1203
"User %-.64s has already more than 'max_user_connections' active connections",
-#define ER_SET_CONSTANTS_ONLY 204
+#define ER_SET_CONSTANTS_ONLY 1204
"You may only use constant expressions with SET",
-#define ER_LOCK_WAIT_TIMEOUT 205
+#define ER_LOCK_WAIT_TIMEOUT 1205
"Lock wait timeout exceeded; Try restarting transaction",
-#define ER_LOCK_TABLE_FULL 206
+#define ER_LOCK_TABLE_FULL 1206
"The total number of locks exceeds the lock table size",
-#define ER_READ_ONLY_TRANSACTION 207
+#define ER_READ_ONLY_TRANSACTION 1207
"Update locks cannot be acquired during a READ UNCOMMITTED transaction",
-#define ER_DROP_DB_WITH_READ_LOCK 208
+#define ER_DROP_DB_WITH_READ_LOCK 1208
"DROP DATABASE not allowed while thread is holding global read lock",
-#define ER_CREATE_DB_WITH_READ_LOCK 209
+#define ER_CREATE_DB_WITH_READ_LOCK 1209
"CREATE DATABASE not allowed while thread is holding global read lock",
-#define ER_WRONG_ARGUMENTS 210
+#define ER_WRONG_ARGUMENTS 1210
"Wrong arguments to %s",
-#define ER_NO_PERMISSION_TO_CREATE_USER 211
+#define ER_NO_PERMISSION_TO_CREATE_USER 1211
"%-.32s@%-.64s is not allowed to create new users",
-#define ER_UNION_TABLES_IN_DIFFERENT_DIR 212
+#define ER_UNION_TABLES_IN_DIFFERENT_DIR 1212
"Incorrect table definition; All MERGE tables must be in the same database",
-#define ER_LOCK_DEADLOCK 213
+#define ER_LOCK_DEADLOCK 1213
"Deadlock found when trying to get lock; Try restarting transaction",
-#define ER_TABLE_CANT_HANDLE_FULLTEXT 214
+#define ER_TABLE_CANT_HANDLE_FULLTEXT 1214
"The used table type doesn't support FULLTEXT indexes",
-#define ER_CANNOT_ADD_FOREIGN 215
+#define ER_CANNOT_ADD_FOREIGN 1215
"Cannot add foreign key constraint",
-#define ER_NO_REFERENCED_ROW 216
+#define ER_NO_REFERENCED_ROW 1216
"Cannot add a child row: a foreign key constraint fails",
-#define ER_ROW_IS_REFERENCED 217
+#define ER_ROW_IS_REFERENCED 1217
"Cannot delete a parent row: a foreign key constraint fails",
-#define ER_CONNECT_TO_MASTER 218
+#define ER_CONNECT_TO_MASTER 1218
"Error connecting to master: %-.128s",
-#define ER_QUERY_ON_MASTER 219
+#define ER_QUERY_ON_MASTER 1219
"Error running query on master: %-.128s",
-#define ER_ERROR_WHEN_EXECUTING_COMMAND 220
+#define ER_ERROR_WHEN_EXECUTING_COMMAND 1220
"Error when executing command %s: %-.128s",
-#define ER_WRONG_USAGE 221
+#define ER_WRONG_USAGE 1221
"Wrong usage of %s and %s",
-#define ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT 222
+#define ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT 1222
"The used SELECT statements have a different number of columns",
-#define ER_CANT_UPDATE_WITH_READLOCK 223
+#define ER_CANT_UPDATE_WITH_READLOCK 1223
"Can't execute the query because you have a conflicting read lock",
-#define ER_MIXING_NOT_ALLOWED 224
+#define ER_MIXING_NOT_ALLOWED 1224
"Mixing of transactional and non-transactional tables is disabled",
-#define ER_DUP_ARGUMENT 225
+#define ER_DUP_ARGUMENT 1225
"Option '%s' used twice in statement",
-#define ER_TOO_MANY_USER_CONNECTIONS 203
-"User %-.64s has already more than 'max_user_connections' active connections",
+#define ER_USER_LIMIT_REACHED 1226
+"User '%-64s' has exceeded the '%s' resource (current value: %ld)",
diff --git a/Makefile.am b/Makefile.am
index 8cb67521a4a..f56e67f1e83 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -17,14 +17,14 @@
# Process this file with automake to create Makefile.in
AUTOMAKE_OPTIONS = foreign
-TAR = gtar
+
# These are built from source in the Docs directory
EXTRA_DIST = INSTALL-SOURCE README \
COPYING COPYING.LIB MIRRORS
SUBDIRS = include @docs_dirs@ @readline_dir@ \
@thread_dirs@ pstack @sql_client_dirs@ \
@sql_server_dirs@ @libmysqld_dirs@ scripts man \
- tests BUILD \
+ tests BUILD os2 \
@bench_dirs@ support-files @fs_dirs@ @tools_dirs@
# Relink after clean
diff --git a/README b/README
index 0c536de2ed5..29851358765 100644
--- a/README
+++ b/README
@@ -1,8 +1,8 @@
This is a release of MySQL, a GPL (free) SQL database server (more
licence information in the PUBLIC file and in the reference manual).
-Please read the Upgrading section in the manual if emigration from
-3.20.# to 3.21.#. Otherwise it wont work!!
+Please read the "Upgrading from..." section in the manual first, if you are
+migrating from older versions of MySQL!
The latest information about MySQL can be found at:
http://www.mysql.com
@@ -24,13 +24,11 @@ For examples of SQL and benchmarking information see the bench
directory.
The manual mentioned above can be found in the Docs directory. The
-manual is available in the following formats: as text in
-Docs/manual.txt, as HTML in Docs/manual_toc.html, as GNU Info in
+manual is available in the following formats: as plain ASCII text in
+Docs/manual.txt, in HTML format in Docs/manual_toc.html, as GNU Info in
Docs/mysql.info and as PostScript in Docs/manual.ps.
-For a contributed user manual see http://www.turbolift.com/mysql.
-
-MySQL is brought to you by the MySQL team at MySQL AB
+MySQL is brought to you by the MySQL team at MySQL AB
For a list of developers and other contributors, see the Credits appendix
in the manual.
@@ -48,8 +46,7 @@ and start your editor with a form in which you can describe your
problem. Bug reports might be silently ignored by the MySQL
maintainers if there is not a good reason included in the report as to
why mysqlbug has not been used. A report that says 'MySQL does not
-work for me. Why?' is not consider a valid bug report.
-
-The mysqlbug script can be found in the 'scripts' directory in the
-distribution, that is 'there-you-installed-mysql/scripts'.
+work for me. Why?' is not considered a valid bug report.
+The mysqlbug script can be found in the 'scripts' directory of the
+distribution, that is '<where-you-installed-mysql>/scripts'.
diff --git a/bdb/Makefile.in b/bdb/Makefile.in
index 04741cf0ecd..92c5b6ff54e 100644
--- a/bdb/Makefile.in
+++ b/bdb/Makefile.in
@@ -26,7 +26,7 @@ bdb_build = build_unix
files = LICENSE Makefile Makefile.in README
subdirs = btree build_vxworks build_win32 clib common cxx db db185 \
db_archive db_checkpoint db_deadlock db_dump db_dump185 db_load \
- db_printlog db_recover db_stat db_upgrade db_verify dbm dist docs \
+ db_printlog db_recover db_stat db_upgrade db_verify dbm dist \
env examples_c examples_cxx hash hsearch include java libdb_java \
lock log mp mutex os os_vxworks os_win32 perl.BerkeleyDB \
perl.DB_File qam rpc_client rpc_server tcl test txn xa
diff --git a/bdb/docs/api_c/c_index.html b/bdb/docs/api_c/c_index.html
deleted file mode 100644
index 4b6023c8057..00000000000
--- a/bdb/docs/api_c/c_index.html
+++ /dev/null
@@ -1,172 +0,0 @@
-<!--$Id: c_index.so,v 10.53 2000/12/21 19:11:27 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: C Interface by Function/Structure</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<h1 align=center>C Interface by Function/Structure</h1>
-<p><table border=1 align=center>
-<tr><th>Database Environment</th><th>Description</th></tr>
-<tr><td><a href="../api_c/env_create.html">db_env_create</a></td><td>Create an environment handle</td></tr>
-<tr><td><a href="../api_c/env_close.html">DBENV-&gt;close</a></td><td>Close an environment</td></tr>
-<tr><td><a href="../api_c/db_err.html">DBENV-&gt;err</a></td><td>Error message with error string</td></tr>
-<tr><td><a href="../api_c/db_err.html">DBENV-&gt;errx</a></td><td>Error message</td></tr>
-<tr><td><a href="../api_c/env_open.html">DBENV-&gt;open</a></td><td>Open an environment</td></tr>
-<tr><td><a href="../api_c/env_remove.html">DBENV-&gt;remove</a></td><td>Remove an environment</td></tr>
-<tr><td><a href="../api_c/env_set_cachesize.html">DBENV-&gt;set_cachesize</a></td><td>Set the environment cache size</td></tr>
-<tr><td><a href="../api_c/env_set_data_dir.html">DBENV-&gt;set_data_dir</a></td><td>Set the environment data directory</td></tr>
-<tr><td><a href="../api_c/env_set_errcall.html">DBENV-&gt;set_errcall</a></td><td>Set error message callback</td></tr>
-<tr><td><a href="../api_c/env_set_errfile.html">DBENV-&gt;set_errfile</a></td><td>Set error message FILE</td></tr>
-<tr><td><a href="../api_c/env_set_errpfx.html">DBENV-&gt;set_errpfx</a></td><td>Set error message prefix</td></tr>
-<tr><td><a href="../api_c/env_set_feedback.html">DBENV-&gt;set_feedback</a></td><td>Set feedback callback</td></tr>
-<tr><td><a href="../api_c/env_set_flags.html">DBENV-&gt;set_flags</a></td><td>Environment configuration</td></tr>
-<tr><td><a href="../api_c/env_set_mutexlocks.html">DBENV-&gt;set_mutexlocks</a></td><td>Turn off mutual exclusion locking</td></tr>
-<tr><td><a href="../api_c/env_set_paniccall.html">DBENV-&gt;set_paniccall</a></td><td>Set panic callback</td></tr>
-<tr><td><a href="../api_c/env_set_rec_init.html">DBENV-&gt;set_recovery_init</a></td><td>Set recovery initialization callback</td></tr>
-<tr><td><a href="../api_c/env_set_server.html">DBENV-&gt;set_server</a></td><td>Establish server connection</td></tr>
-<tr><td><a href="../api_c/env_set_shm_key.html">DBENV-&gt;set_shm_key</a></td><td>Set system memory shared segment ID</td></tr>
-<tr><td><a href="../api_c/env_set_tmp_dir.html">DBENV-&gt;set_tmp_dir</a></td><td>Set the environment temporary file directory</td></tr>
-<tr><td><a href="../api_c/env_set_verbose.html">DBENV-&gt;set_verbose</a></td><td>Set verbose messages</td></tr>
-<tr><td><a href="../api_c/env_strerror.html">db_strerror</a></td><td>Error strings</td></tr>
-<tr><td><a href="../api_c/env_version.html">db_version</a></td><td>Return version information</td></tr>
-<tr><th>Database Operations</th><th>Description</th></tr>
-<tr><td><a href="../api_c/db_create.html">db_create</a></td><td>Create a database handle</td></tr>
-<tr><td><a href="../api_c/db_close.html">DB-&gt;close</a></td><td>Close a database</td></tr>
-<tr><td><a href="../api_c/db_del.html">DB-&gt;del</a></td><td>Delete items from a database</td></tr>
-<tr><td><a href="../api_c/db_err.html">DB-&gt;err</a></td><td>Error message with error string</td></tr>
-<tr><td><a href="../api_c/db_err.html">DB-&gt;errx</a></td><td>Error message</td></tr>
-<tr><td><a href="../api_c/db_fd.html">DB-&gt;fd</a></td><td>Return a file descriptor from a database</td></tr>
-<tr><td><a href="../api_c/db_get.html">DB-&gt;get</a></td><td>Get items from a database</td></tr>
-<tr><td><a href="../api_c/db_get_byteswapped.html">DB-&gt;get_byteswapped</a></td><td>Return if the underlying database is in host order</td></tr>
-<tr><td><a href="../api_c/db_get_type.html">DB-&gt;get_type</a></td><td>Return the database type</td></tr>
-<tr><td><a href="../api_c/db_join.html">DB-&gt;join</a></td><td>Perform a database join on cursors</td></tr>
-<tr><td><a href="../api_c/db_key_range.html">DB-&gt;key_range</a></td><td>Return estimate of key location</td></tr>
-<tr><td><a href="../api_c/db_open.html">DB-&gt;open</a></td><td>Open a database</td></tr>
-<tr><td><a href="../api_c/db_put.html">DB-&gt;put</a></td><td>Store items into a database</td></tr>
-<tr><td><a href="../api_c/db_remove.html">DB-&gt;remove</a></td><td>Remove a database</td></tr>
-<tr><td><a href="../api_c/db_rename.html">DB-&gt;rename</a></td><td>Rename a database</td></tr>
-<tr><td><a href="../api_c/db_set_append_recno.html">DB-&gt;set_append_recno</a></td><td>Set record append callback</td></tr>
-<tr><td><a href="../api_c/db_set_bt_compare.html">DB-&gt;set_bt_compare</a></td><td>Set a Btree comparison function</td></tr>
-<tr><td><a href="../api_c/db_set_bt_minkey.html">DB-&gt;set_bt_minkey</a></td><td>Set the minimum number of keys per Btree page</td></tr>
-<tr><td><a href="../api_c/db_set_bt_prefix.html">DB-&gt;set_bt_prefix</a></td><td>Set a Btree prefix comparison function</td></tr>
-<tr><td><a href="../api_c/db_set_cachesize.html">DB-&gt;set_cachesize</a></td><td>Set the database cache size</td></tr>
-<tr><td><a href="../api_c/db_set_dup_compare.html">DB-&gt;set_dup_compare</a></td><td>Set a duplicate comparison function</td></tr>
-<tr><td><a href="../api_c/db_set_errcall.html">DB-&gt;set_errcall</a></td><td>Set error message callback</td></tr>
-<tr><td><a href="../api_c/db_set_errfile.html">DB-&gt;set_errfile</a></td><td>Set error message FILE</td></tr>
-<tr><td><a href="../api_c/db_set_errpfx.html">DB-&gt;set_errpfx</a></td><td>Set error message prefix</td></tr>
-<tr><td><a href="../api_c/db_set_feedback.html">DB-&gt;set_feedback</a></td><td>Set feedback callback</td></tr>
-<tr><td><a href="../api_c/db_set_flags.html">DB-&gt;set_flags</a></td><td>General database configuration</td></tr>
-<tr><td><a href="../api_c/db_set_h_ffactor.html">DB-&gt;set_h_ffactor</a></td><td>Set the Hash table density</td></tr>
-<tr><td><a href="../api_c/db_set_h_hash.html">DB-&gt;set_h_hash</a></td><td>Set a hashing function</td></tr>
-<tr><td><a href="../api_c/db_set_h_nelem.html">DB-&gt;set_h_nelem</a></td><td>Set the Hash table size</td></tr>
-<tr><td><a href="../api_c/db_set_lorder.html">DB-&gt;set_lorder</a></td><td>Set the database byte order</td></tr>
-<tr><td><a href="../api_c/db_set_malloc.html">DB-&gt;set_malloc</a></td><td>Set a local space allocation function</td></tr>
-<tr><td><a href="../api_c/db_set_pagesize.html">DB-&gt;set_pagesize</a></td><td>Set the underlying database page size</td></tr>
-<tr><td><a href="../api_c/db_set_paniccall.html">DB-&gt;set_paniccall</a></td><td>Set panic callback</td></tr>
-<tr><td><a href="../api_c/db_set_q_extentsize.html">DB-&gt;set_q_extentsize</a></td><td>Set Queue database extent size</td></tr>
-<tr><td><a href="../api_c/db_set_re_delim.html">DB-&gt;set_re_delim</a></td><td>Set the variable-length record delimiter</td></tr>
-<tr><td><a href="../api_c/db_set_re_len.html">DB-&gt;set_re_len</a></td><td>Set the fixed-length record length</td></tr>
-<tr><td><a href="../api_c/db_set_re_pad.html">DB-&gt;set_re_pad</a></td><td>Set the fixed-length record pad byte</td></tr>
-<tr><td><a href="../api_c/db_set_re_source.html">DB-&gt;set_re_source</a></td><td>Set the backing Recno text file</td></tr>
-<tr><td><a href="../api_c/db_set_realloc.html">DB-&gt;set_realloc</a></td><td>Set a local space allocation function</td></tr>
-<tr><td><a href="../api_c/db_stat.html">DB-&gt;stat</a></td><td>Return database statistics</td></tr>
-<tr><td><a href="../api_c/db_sync.html">DB-&gt;sync</a></td><td>Flush a database to stable storage</td></tr>
-<tr><td><a href="../api_c/db_upgrade.html">DB-&gt;upgrade</a></td><td>Upgrade a database</td></tr>
-<tr><td><a href="../api_c/db_verify.html">DB-&gt;verify</a></td><td>Verify/salvage a database</td></tr>
-<tr><th>Database Cursors</th><th>Description</th></tr>
-<tr><td><a href="../api_c/db_cursor.html">DB-&gt;cursor</a></td><td>Open a cursor into a database</td></tr>
-<tr><td><a href="../api_c/dbc_close.html">DBcursor-&gt;c_close</a></td><td>Close a cursor</td></tr>
-<tr><td><a href="../api_c/dbc_count.html">DBcursor-&gt;c_count</a></td><td>Return count of duplicates</td></tr>
-<tr><td><a href="../api_c/dbc_del.html">DBcursor-&gt;c_del</a></td><td>Delete by cursor</td></tr>
-<tr><td><a href="../api_c/dbc_dup.html">DBcursor-&gt;c_dup</a></td><td>Duplicate a cursor</td></tr>
-<tr><td><a href="../api_c/dbc_get.html">DBcursor-&gt;c_get</a></td><td>Retrieve by cursor</td></tr>
-<tr><td><a href="../api_c/dbc_put.html">DBcursor-&gt;c_put</a></td><td>Store by cursor</td></tr>
-<tr><th>Lock Manager</th><th>Description</th></tr>
-<tr><td><a href="../api_c/env_set_lk_conflicts.html">DBENV-&gt;set_lk_conflicts</a></td><td>Set lock conflicts matrix</td></tr>
-<tr><td><a href="../api_c/env_set_lk_detect.html">DBENV-&gt;set_lk_detect</a></td><td>Set automatic deadlock detection</td></tr>
-<tr><td><a href="../api_c/env_set_lk_max.html">DBENV-&gt;set_lk_max</a></td><td>Set maximum number of locks (<b>Deprecated</b>)</td></tr>
-<tr><td><a href="../api_c/env_set_lk_max_locks.html">DBENV-&gt;set_lk_max_locks</a></td><td>Set maximum number of locks</td></tr>
-<tr><td><a href="../api_c/env_set_lk_max_lockers.html">DBENV-&gt;set_lk_max_lockers</a></td><td>Set maximum number of lockers</td></tr>
-<tr><td><a href="../api_c/env_set_lk_max_objects.html">DBENV-&gt;set_lk_max_objects</a></td><td>Set maximum number of lock objects</td></tr>
-<tr><td><a href="../api_c/lock_detect.html">lock_detect</a></td><td>Perform deadlock detection</td></tr>
-<tr><td><a href="../api_c/lock_get.html">lock_get</a></td><td>Acquire a lock</td></tr>
-<tr><td><a href="../api_c/lock_id.html">lock_id</a></td><td>Acquire a locker ID</td></tr>
-<tr><td><a href="../api_c/lock_put.html">lock_put</a></td><td>Release a lock</td></tr>
-<tr><td><a href="../api_c/lock_stat.html">lock_stat</a></td><td>Return lock subsystem statistics</td></tr>
-<tr><td><a href="../api_c/lock_vec.html">lock_vec</a></td><td>Acquire/release locks</td></tr>
-<tr><th>Log Manager</th><th>Description</th></tr>
-<tr><td><a href="../api_c/env_set_lg_bsize.html">DBENV-&gt;set_lg_bsize</a></td><td>Set log buffer size</td></tr>
-<tr><td><a href="../api_c/env_set_lg_dir.html">DBENV-&gt;set_lg_dir</a></td><td>Set the environment logging directory</td></tr>
-<tr><td><a href="../api_c/env_set_lg_max.html">DBENV-&gt;set_lg_max</a></td><td>Set log file size</td></tr>
-<tr><td><a href="../api_c/log_archive.html">log_archive</a></td><td>List log and database files</td></tr>
-<tr><td><a href="../api_c/log_compare.html">log_compare</a></td><td>Compare two Log Sequence Numbers</td></tr>
-<tr><td><a href="../api_c/log_file.html">log_file</a></td><td>Map Log Sequence Numbers to log files</td></tr>
-<tr><td><a href="../api_c/log_flush.html">log_flush</a></td><td>Flush log records</td></tr>
-<tr><td><a href="../api_c/log_get.html">log_get</a></td><td>Get a log record</td></tr>
-<tr><td><a href="../api_c/log_put.html">log_put</a></td><td>Write a log record</td></tr>
-<tr><td><a href="../api_c/log_register.html">log_register</a></td><td>Register a file name with the log manager</td></tr>
-<tr><td><a href="../api_c/log_stat.html">log_stat</a></td><td>Return log subsystem statistics</td></tr>
-<tr><td><a href="../api_c/log_unregister.html">log_unregister</a></td><td>Unregister a file name with the log manager</td></tr>
-<tr><th>Buffer Pool</th><th>Description</th></tr>
-<tr><td><a href="../api_c/env_set_cachesize.html">DBENV-&gt;set_cachesize</a></td><td>Set the environment cache size</td></tr>
-<tr><td><a href="../api_c/env_set_mp_mmapsize.html">DBENV-&gt;set_mp_mmapsize</a></td><td>Set maximum mapped-in database file size</td></tr>
-<tr><td><a href="../api_c/memp_fclose.html">memp_fclose</a></td><td>Close a file in a buffer pool</td></tr>
-<tr><td><a href="../api_c/memp_fget.html">memp_fget</a></td><td>Get a page from a file in a buffer pool</td></tr>
-<tr><td><a href="../api_c/memp_fopen.html">memp_fopen</a></td><td>Open a file in a buffer pool</td></tr>
-<tr><td><a href="../api_c/memp_fput.html">memp_fput</a></td><td>Return a page to a buffer pool</td></tr>
-<tr><td><a href="../api_c/memp_fset.html">memp_fset</a></td><td>Modify meta information for buffer pool page</td></tr>
-<tr><td><a href="../api_c/memp_fsync.html">memp_fsync</a></td><td>Flush pages from a file in a buffer pool</td></tr>
-<tr><td><a href="../api_c/memp_register.html">memp_register</a></td><td>Register input/output functions for a file in a buffer pool</td></tr>
-<tr><td><a href="../api_c/memp_stat.html">memp_stat</a></td><td>Return buffer pool statistics</td></tr>
-<tr><td><a href="../api_c/memp_sync.html">memp_sync</a></td><td>Flush pages from a buffer pool</td></tr>
-<tr><td><a href="../api_c/memp_trickle.html">memp_trickle</a></td><td>Trickle flush pages from a buffer pool</td></tr>
-<tr><th>Transaction Manager</th><th>Description</th></tr>
-<tr><td><a href="../api_c/env_set_tx_max.html">DBENV-&gt;set_tx_max</a></td><td>Set maximum number of transactions</td></tr>
-<tr><td><a href="../api_c/env_set_tx_recover.html">DBENV-&gt;set_tx_recover</a></td><td>Set transaction abort recover function</td></tr>
-<tr><td><a href="../api_c/env_set_tx_timestamp.html">DBENV-&gt;set_tx_timestamp</a></td><td>Set recovery timestamp</td></tr>
-<tr><td><a href="../api_c/txn_abort.html">txn_abort</a></td><td>Abort a transaction</td></tr>
-<tr><td><a href="../api_c/txn_begin.html">txn_begin</a></td><td>Begin a transaction</td></tr>
-<tr><td><a href="../api_c/txn_checkpoint.html">txn_checkpoint</a></td><td>Checkpoint the transaction subsystem</td></tr>
-<tr><td><a href="../api_c/txn_commit.html">txn_commit</a></td><td>Commit a transaction</td></tr>
-<tr><td><a href="../api_c/txn_id.html">txn_id</a></td><td>Return a transaction ID</td></tr>
-<tr><td><a href="../api_c/txn_prepare.html">txn_prepare</a></td><td>Prepare a transaction for commit</td></tr>
-<tr><td><a href="../api_c/txn_stat.html">txn_stat</a></td><td>Return transaction subsystem statistics</td></tr>
-<tr><th>Historic Interfaces</th><th>Description</th></tr>
-<tr><td><a href="../api_c/dbm.html">dbm</a></td><td>UNIX Dbm/Ndbm Interfaces</td></tr>
-<tr><td><a href="../api_c/hsearch.html">hsearch</a></td><td>UNIX Hsearch Interfaces</td></tr>
-<tr><th>Data Structures</th><th>Description</th></tr>
-<tr><td><a href="../api_c/dbt.html">DBT</a></td><td>DBT structures</td></tr>
-<tr><td><a href="../api_c/db_lsn.html">DB_LSN</a></td><td>DB_LSN structures</td></tr>
-<tr><th>DB Library Configuration</th><th>Description</th></tr>
-<tr><td><a href="../api_c/env_set_pageyield.html">db_env_set_pageyield</a></td><td>Yield the processor on each page access</td></tr>
-<tr><td><a href="../api_c/env_set_panicstate.html">db_env_set_panicstate</a></td><td>Reset panic state</td></tr>
-<tr><td><a href="../api_c/env_set_region_init.html">db_env_set_region_init</a></td><td>Fault in shared regions on initial access</td></tr>
-<tr><td><a href="../api_c/env_set_tas_spins.html">db_env_set_tas_spins</a></td><td>Set the number of test-and-set spins</td></tr>
-<tr><th>DB System Call Configuration</th><th>Description</th></tr>
-<tr><td><a href="../api_c/set_func_close.html">db_env_set_func_close</a></td><td>Replace underlying Berkeley DB system interfaces</td></tr>
-<tr><td><a href="../api_c/set_func_dirfree.html">db_env_set_func_dirfree</a></td><td><br></td></tr>
-<tr><td><a href="../api_c/set_func_dirlist.html">db_env_set_func_dirlist</a></td><td><br></td></tr>
-<tr><td><a href="../api_c/set_func_exists.html">db_env_set_func_exists</a></td><td><br></td></tr>
-<tr><td><a href="../api_c/set_func_free.html">db_env_set_func_free</a></td><td><br></td></tr>
-<tr><td><a href="../api_c/set_func_fsync.html">db_env_set_func_fsync</a></td><td><br></td></tr>
-<tr><td><a href="../api_c/set_func_ioinfo.html">db_env_set_func_ioinfo</a></td><td><br></td></tr>
-<tr><td><a href="../api_c/set_func_malloc.html">db_env_set_func_malloc</a></td><td><br></td></tr>
-<tr><td><a href="../api_c/set_func_map.html">db_env_set_func_map</a></td><td><br></td></tr>
-<tr><td><a href="../api_c/set_func_open.html">db_env_set_func_open</a></td><td><br></td></tr>
-<tr><td><a href="../api_c/set_func_read.html">db_env_set_func_read</a></td><td><br></td></tr>
-<tr><td><a href="../api_c/set_func_realloc.html">db_env_set_func_realloc</a></td><td><br></td></tr>
-<tr><td><a href="../api_c/set_func_rename.html">db_env_set_func_rename</a></td><td><br></td></tr>
-<tr><td><a href="../api_c/set_func_seek.html">db_env_set_func_seek</a></td><td><br></td></tr>
-<tr><td><a href="../api_c/set_func_sleep.html">db_env_set_func_sleep</a></td><td><br></td></tr>
-<tr><td><a href="../api_c/set_func_unlink.html">db_env_set_func_unlink</a></td><td><br></td></tr>
-<tr><td><a href="../api_c/set_func_unmap.html">db_env_set_func_unmap</a></td><td><br></td></tr>
-<tr><td><a href="../api_c/set_func_write.html">db_env_set_func_write</a></td><td><br></td></tr>
-<tr><td><a href="../api_c/set_func_yield.html">db_env_set_func_yield</a></td><td><br></td></tr>
-</table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/c_pindex.html b/bdb/docs/api_c/c_pindex.html
deleted file mode 100644
index 725bf0068a9..00000000000
--- a/bdb/docs/api_c/c_pindex.html
+++ /dev/null
@@ -1,530 +0,0 @@
-<html>
-<head>
-<title>Berkeley DB: C Interface Index</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<h1 align=center>C Interface Index</h1>
-<center>
-<table cellspacing=0 cellpadding=0>
-<tr><td align=right> configuring Berkeley DB </td><td><a href="../ref/build_unix/conf.html#5">1.85</a> API compatibility</td></tr>
-<tr><td align=right> building a utility to dump Berkeley DB </td><td><a href="../ref/build_unix/conf.html#7">1.85</a> databases</td></tr>
-<tr><td align=right> Upgrading to release </td><td><a href="../ref/upgrade.2.0/intro.html#2">2.0</a></td></tr>
-<tr><td align=right> Upgrading to release </td><td><a href="../ref/upgrade.3.0/intro.html#2">3.0</a></td></tr>
-<tr><td align=right> Upgrading to release </td><td><a href="../ref/upgrade.3.1/intro.html#2">3.1</a></td></tr>
-<tr><td align=right> Upgrading to release </td><td><a href="../ref/upgrade.3.2/intro.html#2">3.2</a></td></tr>
-<tr><td align=right> selecting an </td><td><a href="../ref/am_conf/select.html#2">access</a> method</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am_conf/intro.html#2">access</a> methods</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/aix.html#2">AIX</a></td></tr>
-<tr><td align=right> data </td><td><a href="../api_c/dbt.html#5">alignment</a></td></tr>
-<tr><td align=right> programmatic </td><td><a href="../ref/arch/apis.html#2">APIs</a></td></tr>
-<tr><td align=right> utility to </td><td><a href="../utility/db_archive.html#3">archive</a> log files</td></tr>
-<tr><td align=right> </td><td><a href="../utility/berkeley_db_svc.html#2">berkeley_db_svc</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/intro.html#2">building</a> for UNIX</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/notes.html#2">building</a> for UNIX FAQ</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_vxworks/intro.html#2">building</a> for VxWorks</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_vxworks/faq.html#2">building</a> for VxWorks FAQ</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_win/intro.html#2">building</a> for Win32</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_win/faq.html#2">building</a> for Windows FAQ</td></tr>
-<tr><td align=right> selecting a </td><td><a href="../ref/am_conf/byteorder.html#2">byte</a> order</td></tr>
-<tr><td align=right> </td><td><a href="../ref/program/byteorder.html#2">byte</a> ordering</td></tr>
-<tr><td align=right> configuring the </td><td><a href="../ref/build_unix/conf.html#6">C++</a> API</td></tr>
-<tr><td align=right> flushing the database </td><td><a href="../ref/am/sync.html#2">cache</a></td></tr>
-<tr><td align=right> selecting a </td><td><a href="../ref/am_conf/cachesize.html#2">cache</a> size</td></tr>
-<tr><td align=right> </td><td><a href="../ref/transapp/archival.html#3">catastrophic</a> recovery</td></tr>
-<tr><td align=right>Patches, Updates and </td><td><a href="http://www.sleepycat.com/update/index.html">Change</a> logs</td></tr>
-<tr><td align=right> utility to take </td><td><a href="../utility/db_checkpoint.html#3">checkpoints</a></td></tr>
-<tr><td align=right>memp_fopen</td><td><a href="../api_c/memp_fopen.html#clear_len">clear_len</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/curclose.html#2">closing</a> a cursor</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/close.html#2">closing</a> a database</td></tr>
-<tr><td align=right> specifying a Btree </td><td><a href="../ref/am_conf/bt_compare.html#2">comparison</a> function</td></tr>
-<tr><td align=right> changing </td><td><a href="../ref/build_unix/flags.html#2">compile</a> or load options</td></tr>
-<tr><td align=right> </td><td><a href="../ref/cam/intro.html#2">Concurrent</a> Data Store</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/conf.html#2">configuring</a> Berkeley DB for UNIX systems</td></tr>
-<tr><td align=right> recovering </td><td><a href="../ref/am/verify.html#4">corrupted</a> databases</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/count.html#2">counting</a> data items for a key</td></tr>
-<tr><td align=right> closing a </td><td><a href="../ref/am/curclose.html#3">cursor</a></td></tr>
-<tr><td align=right> deleting records with a </td><td><a href="../ref/am/curdel.html#3">cursor</a></td></tr>
-<tr><td align=right> duplicating a </td><td><a href="../ref/am/curdup.html#3">cursor</a></td></tr>
-<tr><td align=right> retrieving records with a </td><td><a href="../ref/am/curget.html#3">cursor</a></td></tr>
-<tr><td align=right> storing records with a </td><td><a href="../ref/am/curput.html#3">cursor</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/stability.html#2">cursor</a> stability</td></tr>
-<tr><td align=right> database </td><td><a href="../ref/am/cursor.html#2">cursors</a></td></tr>
-<tr><td align=right>DBT</td><td><a href="../api_c/dbt.html#data">data</a></td></tr>
-<tr><td align=right> utility to upgrade </td><td><a href="../utility/db_upgrade.html#3">database</a> files</td></tr>
-<tr><td align=right> utility to verify </td><td><a href="../utility/db_verify.html#3">database</a> files</td></tr>
-<tr><td align=right>DBcursor-&gt;c_put</td><td><a href="../api_c/dbc_put.html#DB_AFTER">DB_AFTER</a></td></tr>
-<tr><td align=right>DB-&gt;verify</td><td><a href="../api_c/db_verify.html#DB_AGGRESSIVE">DB_AGGRESSIVE</a></td></tr>
-<tr><td align=right>DB-&gt;put</td><td><a href="../api_c/db_put.html#DB_APPEND">DB_APPEND</a></td></tr>
-<tr><td align=right>log_archive</td><td><a href="../api_c/log_archive.html#DB_ARCH_ABS">DB_ARCH_ABS</a></td></tr>
-<tr><td align=right>log_archive</td><td><a href="../api_c/log_archive.html#DB_ARCH_DATA">DB_ARCH_DATA</a></td></tr>
-<tr><td align=right> </td><td><a href="../utility/db_archive.html#2">db_archive</a></td></tr>
-<tr><td align=right>log_archive</td><td><a href="../api_c/log_archive.html#DB_ARCH_LOG">DB_ARCH_LOG</a></td></tr>
-<tr><td align=right>DBcursor-&gt;c_put</td><td><a href="../api_c/dbc_put.html#DB_BEFORE">DB_BEFORE</a></td></tr>
-<tr><td align=right>DB-&gt;stat</td><td><a href="../api_c/db_stat.html#DB_CACHED_COUNTS">DB_CACHED_COUNTS</a></td></tr>
-<tr><td align=right>DBENV-&gt;set_flags</td><td><a href="../api_c/env_set_flags.html#DB_CDB_ALLDB">DB_CDB_ALLDB</a></td></tr>
-<tr><td align=right>log_get</td><td><a href="../api_c/log_get.html#DB_CHECKPOINT">DB_CHECKPOINT</a></td></tr>
-<tr><td align=right>log_put</td><td><a href="../api_c/log_put.html#DB_CHECKPOINT">DB_CHECKPOINT</a></td></tr>
-<tr><td align=right> </td><td><a href="../utility/db_checkpoint.html#2">db_checkpoint</a></td></tr>
-<tr><td align=right>db_env_create</td><td><a href="../api_c/env_create.html#DB_CLIENT">DB_CLIENT</a></td></tr>
-<tr><td align=right>File naming</td><td><a href="../ref/env/naming.html#DB_CONFIG">DB_CONFIG</a></td></tr>
-<tr><td align=right>DB-&gt;get</td><td><a href="../api_c/db_get.html#DB_CONSUME">DB_CONSUME</a></td></tr>
-<tr><td align=right>DB-&gt;get</td><td><a href="../api_c/db_get.html#DB_CONSUME_WAIT">DB_CONSUME_WAIT</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/db_create.html#2">db_create</a></td></tr>
-<tr><td align=right>DB-&gt;open</td><td><a href="../api_c/db_open.html#DB_CREATE">DB_CREATE</a></td></tr>
-<tr><td align=right>DBENV-&gt;open</td><td><a href="../api_c/env_open.html#DB_CREATE">DB_CREATE</a></td></tr>
-<tr><td align=right>memp_fopen</td><td><a href="../api_c/memp_fopen.html#DB_CREATE">DB_CREATE</a></td></tr>
-<tr><td align=right>log_put</td><td><a href="../api_c/log_put.html#DB_CURLSN">DB_CURLSN</a></td></tr>
-<tr><td align=right>DBcursor-&gt;c_get</td><td><a href="../api_c/dbc_get.html#DB_CURRENT">DB_CURRENT</a></td></tr>
-<tr><td align=right>DBcursor-&gt;c_put</td><td><a href="../api_c/dbc_put.html#DB_CURRENT">DB_CURRENT</a></td></tr>
-<tr><td align=right>log_get</td><td><a href="../api_c/log_get.html#DB_CURRENT">DB_CURRENT</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/dbc_close.html#2">DBcursor-&gt;c_close</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/dbc_count.html#2">DBcursor-&gt;c_count</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/dbc_del.html#2">DBcursor-&gt;c_del</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/dbc_dup.html#2">DBcursor-&gt;c_dup</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/dbc_get.html#2">DBcursor-&gt;c_get</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/dbc_put.html#2">DBcursor-&gt;c_put</a></td></tr>
-<tr><td align=right>DBT</td><td><a href="../api_c/dbt.html#DB_DBT_MALLOC">DB_DBT_MALLOC</a></td></tr>
-<tr><td align=right>DBT</td><td><a href="../api_c/dbt.html#DB_DBT_PARTIAL">DB_DBT_PARTIAL</a></td></tr>
-<tr><td align=right>DBT</td><td><a href="../api_c/dbt.html#DB_DBT_REALLOC">DB_DBT_REALLOC</a></td></tr>
-<tr><td align=right>DBT</td><td><a href="../api_c/dbt.html#DB_DBT_USERMEM">DB_DBT_USERMEM</a></td></tr>
-<tr><td align=right> </td><td><a href="../utility/db_deadlock.html#2">db_deadlock</a></td></tr>
-<tr><td align=right> </td><td><a href="../utility/db_dump.html#2">db_dump</a></td></tr>
-<tr><td align=right>DB-&gt;set_flags</td><td><a href="../api_c/db_set_flags.html#DB_DUP">DB_DUP</a></td></tr>
-<tr><td align=right>DB-&gt;set_flags</td><td><a href="../api_c/db_set_flags.html#DB_DUPSORT">DB_DUPSORT</a></td></tr>
-<tr><td align=right>DB-&gt;upgrade</td><td><a href="../api_c/db_upgrade.html#DB_DUPSORT">DB_DUPSORT</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/env_create.html#2">db_env_create</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/env_close.html#2">DBENV-&gt;close</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/db_err.html#2">DBENV-&gt;err</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/env_open.html#2">DBENV-&gt;open</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/env_remove.html#2">DBENV-&gt;remove</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/env_set_cachesize.html#2">DBENV-&gt;set_cachesize</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/env_set_data_dir.html#2">DBENV-&gt;set_data_dir</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/env_set_errcall.html#2">DBENV-&gt;set_errcall</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/env_set_errfile.html#2">DBENV-&gt;set_errfile</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/env_set_errpfx.html#2">DBENV-&gt;set_errpfx</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/env_set_feedback.html#2">DBENV-&gt;set_feedback</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/env_set_flags.html#2">DBENV-&gt;set_flags</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/env_set_lg_bsize.html#2">DBENV-&gt;set_lg_bsize</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/env_set_lg_dir.html#2">DBENV-&gt;set_lg_dir</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/env_set_lg_max.html#2">DBENV-&gt;set_lg_max</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/env_set_lk_conflicts.html#2">DBENV-&gt;set_lk_conflicts</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/env_set_lk_detect.html#2">DBENV-&gt;set_lk_detect</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/env_set_lk_max.html#2">DBENV-&gt;set_lk_max</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/env_set_lk_max_lockers.html#2">DBENV-&gt;set_lk_max_lockers</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/env_set_lk_max_locks.html#2">DBENV-&gt;set_lk_max_locks</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/env_set_lk_max_objects.html#2">DBENV-&gt;set_lk_max_objects</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/env_set_mp_mmapsize.html#2">DBENV-&gt;set_mp_mmapsize</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/env_set_mutexlocks.html#2">DBENV-&gt;set_mutexlocks</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/env_set_paniccall.html#2">DBENV-&gt;set_paniccall</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/env_set_rec_init.html#2">DBENV-&gt;set_recovery_init</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/env_set_server.html#2">DBENV-&gt;set_server</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/env_set_shm_key.html#2">DBENV-&gt;set_shm_key</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/env_set_tmp_dir.html#2">DBENV-&gt;set_tmp_dir</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/env_set_tx_max.html#2">DBENV-&gt;set_tx_max</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/env_set_tx_recover.html#2">DBENV-&gt;set_tx_recover</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/env_set_tx_timestamp.html#2">DBENV-&gt;set_tx_timestamp</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/env_set_verbose.html#2">DBENV-&gt;set_verbose</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/set_func_close.html#2">db_env_set_func_close</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/set_func_dirfree.html#2">db_env_set_func_dirfree</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/set_func_dirlist.html#2">db_env_set_func_dirlist</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/set_func_exists.html#2">db_env_set_func_exists</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/set_func_free.html#2">db_env_set_func_free</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/set_func_fsync.html#2">db_env_set_func_fsync</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/set_func_ioinfo.html#2">db_env_set_func_ioinfo</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/set_func_malloc.html#2">db_env_set_func_malloc</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/set_func_map.html#2">db_env_set_func_map</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/set_func_open.html#2">db_env_set_func_open</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/set_func_read.html#2">db_env_set_func_read</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/set_func_realloc.html#2">db_env_set_func_realloc</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/set_func_rename.html#2">db_env_set_func_rename</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/set_func_seek.html#2">db_env_set_func_seek</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/set_func_sleep.html#2">db_env_set_func_sleep</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/set_func_unlink.html#2">db_env_set_func_unlink</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/set_func_unmap.html#2">db_env_set_func_unmap</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/set_func_write.html#2">db_env_set_func_write</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/set_func_yield.html#2">db_env_set_func_yield</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/env_set_pageyield.html#2">db_env_set_pageyield</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/env_set_panicstate.html#2">db_env_set_panicstate</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/env_set_region_init.html#2">db_env_set_region_init</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/env_set_tas_spins.html#2">db_env_set_tas_spins</a></td></tr>
-<tr><td align=right>DB-&gt;open</td><td><a href="../api_c/db_open.html#DB_EXCL">DB_EXCL</a></td></tr>
-<tr><td align=right>DBcursor-&gt;c_get</td><td><a href="../api_c/dbc_get.html#DB_FIRST">DB_FIRST</a></td></tr>
-<tr><td align=right>log_get</td><td><a href="../api_c/log_get.html#DB_FIRST">DB_FIRST</a></td></tr>
-<tr><td align=right>log_put</td><td><a href="../api_c/log_put.html#DB_FLUSH">DB_FLUSH</a></td></tr>
-<tr><td align=right>DBENV-&gt;remove</td><td><a href="../api_c/env_remove.html#DB_FORCE">DB_FORCE</a></td></tr>
-<tr><td align=right>txn_checkpoint</td><td><a href="../api_c/txn_checkpoint.html#DB_FORCE">DB_FORCE</a></td></tr>
-<tr><td align=right>DB-&gt;get</td><td><a href="../api_c/db_get.html#DB_GET_BOTH">DB_GET_BOTH</a></td></tr>
-<tr><td align=right>DBcursor-&gt;c_get</td><td><a href="../api_c/dbc_get.html#DB_GET_BOTH">DB_GET_BOTH</a></td></tr>
-<tr><td align=right>DBcursor-&gt;c_get</td><td><a href="../api_c/dbc_get.html#DB_GET_RECNO">DB_GET_RECNO</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/db_close.html#2">DB-&gt;close</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/db_cursor.html#2">DB-&gt;cursor</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/db_del.html#2">DB-&gt;del</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/db_fd.html#2">DB-&gt;fd</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/db_get.html#2">DB-&gt;get</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/db_get_byteswapped.html#2">DB-&gt;get_byteswapped</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/db_get_type.html#2">DB-&gt;get_type</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/db_join.html#2">DB-&gt;join</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/db_key_range.html#2">DB-&gt;key_range</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/db_open.html#2">DB-&gt;open</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/db_put.html#2">DB-&gt;put</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/db_remove.html#2">DB-&gt;remove</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/db_rename.html#2">DB-&gt;rename</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/db_set_append_recno.html#2">DB-&gt;set_append_recno</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/db_set_bt_compare.html#2">DB-&gt;set_bt_compare</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/db_set_bt_minkey.html#2">DB-&gt;set_bt_minkey</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/db_set_bt_prefix.html#2">DB-&gt;set_bt_prefix</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/db_set_cachesize.html#2">DB-&gt;set_cachesize</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/db_set_dup_compare.html#2">DB-&gt;set_dup_compare</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/db_set_errcall.html#2">DB-&gt;set_errcall</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/db_set_errfile.html#2">DB-&gt;set_errfile</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/db_set_errpfx.html#2">DB-&gt;set_errpfx</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/db_set_feedback.html#2">DB-&gt;set_feedback</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/db_set_flags.html#2">DB-&gt;set_flags</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/db_set_h_ffactor.html#2">DB-&gt;set_h_ffactor</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/db_set_h_hash.html#2">DB-&gt;set_h_hash</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/db_set_h_nelem.html#2">DB-&gt;set_h_nelem</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/db_set_lorder.html#2">DB-&gt;set_lorder</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/db_set_malloc.html#2">DB-&gt;set_malloc</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/db_set_pagesize.html#2">DB-&gt;set_pagesize</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/db_set_paniccall.html#2">DB-&gt;set_paniccall</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/db_set_q_extentsize.html#2">DB-&gt;set_q_extentsize</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/db_set_realloc.html#2">DB-&gt;set_realloc</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/db_set_re_delim.html#2">DB-&gt;set_re_delim</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/db_set_re_len.html#2">DB-&gt;set_re_len</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/db_set_re_pad.html#2">DB-&gt;set_re_pad</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/db_set_re_source.html#2">DB-&gt;set_re_source</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/db_stat.html#2">DB-&gt;stat</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/db_sync.html#2">DB-&gt;sync</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/db_upgrade.html#2">DB-&gt;upgrade</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/db_verify.html#2">DB-&gt;verify</a></td></tr>
-<tr><td align=right>File naming</td><td><a href="../ref/env/naming.html#DB_HOME">DB_HOME</a></td></tr>
-<tr><td align=right>File naming</td><td><a href="../ref/env/naming.html#db_home">db_home</a></td></tr>
-<tr><td align=right> DB-&gt;close </td><td><a href="../api_c/db_close.html#3">DB_INCOMPLETE</a></td></tr>
-<tr><td align=right>DBENV-&gt;open</td><td><a href="../api_c/env_open.html#DB_INIT_CDB">DB_INIT_CDB</a></td></tr>
-<tr><td align=right>DBENV-&gt;open</td><td><a href="../api_c/env_open.html#DB_INIT_LOCK">DB_INIT_LOCK</a></td></tr>
-<tr><td align=right>DBENV-&gt;open</td><td><a href="../api_c/env_open.html#DB_INIT_LOG">DB_INIT_LOG</a></td></tr>
-<tr><td align=right>DBENV-&gt;open</td><td><a href="../api_c/env_open.html#DB_INIT_MPOOL">DB_INIT_MPOOL</a></td></tr>
-<tr><td align=right>DBENV-&gt;open</td><td><a href="../api_c/env_open.html#DB_INIT_TXN">DB_INIT_TXN</a></td></tr>
-<tr><td align=right>DBENV-&gt;open</td><td><a href="../api_c/env_open.html#DB_JOINENV">DB_JOINENV</a></td></tr>
-<tr><td align=right>DB-&gt;join</td><td><a href="../api_c/db_join.html#DB_JOIN_ITEM">DB_JOIN_ITEM</a></td></tr>
-<tr><td align=right>DBcursor-&gt;c_get</td><td><a href="../api_c/dbc_get.html#DB_JOIN_ITEM">DB_JOIN_ITEM</a></td></tr>
-<tr><td align=right>DB-&gt;join</td><td><a href="../api_c/db_join.html#DB_JOIN_NOSORT">DB_JOIN_NOSORT</a></td></tr>
-<tr><td align=right>Error returns to applications</td><td><a href="../ref/program/errorret.html#DB_KEYEMPTY">DB_KEYEMPTY</a></td></tr>
-<tr><td align=right>DBcursor-&gt;c_put</td><td><a href="../api_c/dbc_put.html#DB_KEYFIRST">DB_KEYFIRST</a></td></tr>
-<tr><td align=right>DBcursor-&gt;c_put</td><td><a href="../api_c/dbc_put.html#DB_KEYLAST">DB_KEYLAST</a></td></tr>
-<tr><td align=right>DBcursor-&gt;c_get</td><td><a href="../api_c/dbc_get.html#DB_LAST">DB_LAST</a></td></tr>
-<tr><td align=right>log_get</td><td><a href="../api_c/log_get.html#DB_LAST">DB_LAST</a></td></tr>
-<tr><td align=right> </td><td><a href="../utility/db_load.html#2">db_load</a></td></tr>
-<tr><td align=right>lock_detect</td><td><a href="../api_c/lock_detect.html#DB_LOCK_CONFLICT">DB_LOCK_CONFLICT</a></td></tr>
-<tr><td align=right>Error returns to applications</td><td><a href="../ref/program/errorret.html#DB_LOCK_DEADLOCK">DB_LOCK_DEADLOCK</a></td></tr>
-<tr><td align=right>DBENV-&gt;set_lk_detect</td><td><a href="../api_c/env_set_lk_detect.html#DB_LOCK_DEFAULT">DB_LOCK_DEFAULT</a></td></tr>
-<tr><td align=right>DBENV-&gt;open</td><td><a href="../api_c/env_open.html#DB_LOCKDOWN">DB_LOCKDOWN</a></td></tr>
-<tr><td align=right>lock_vec</td><td><a href="../api_c/lock_vec.html#DB_LOCK_GET">DB_LOCK_GET</a></td></tr>
-<tr><td align=right>lock_get</td><td><a href="../api_c/lock_get.html#DB_LOCK_NOTGRANTED">DB_LOCK_NOTGRANTED</a></td></tr>
-<tr><td align=right>lock_vec</td><td><a href="../api_c/lock_vec.html#DB_LOCK_NOTGRANTED">DB_LOCK_NOTGRANTED</a></td></tr>
-<tr><td align=right>Error returns to applications</td><td><a href="../ref/program/errorret.html#DB_LOCK_NOTGRANTED">DB_LOCK_NOTGRANTED</a></td></tr>
-<tr><td align=right>lock_get</td><td><a href="../api_c/lock_get.html#DB_LOCK_NOWAIT">DB_LOCK_NOWAIT</a></td></tr>
-<tr><td align=right>lock_vec</td><td><a href="../api_c/lock_vec.html#DB_LOCK_NOWAIT">DB_LOCK_NOWAIT</a></td></tr>
-<tr><td align=right>DBENV-&gt;set_lk_detect</td><td><a href="../api_c/env_set_lk_detect.html#DB_LOCK_OLDEST">DB_LOCK_OLDEST</a></td></tr>
-<tr><td align=right>lock_vec</td><td><a href="../api_c/lock_vec.html#DB_LOCK_PUT">DB_LOCK_PUT</a></td></tr>
-<tr><td align=right>lock_vec</td><td><a href="../api_c/lock_vec.html#DB_LOCK_PUT_ALL">DB_LOCK_PUT_ALL</a></td></tr>
-<tr><td align=right>lock_vec</td><td><a href="../api_c/lock_vec.html#DB_LOCK_PUT_OBJ">DB_LOCK_PUT_OBJ</a></td></tr>
-<tr><td align=right>DBENV-&gt;set_lk_detect</td><td><a href="../api_c/env_set_lk_detect.html#DB_LOCK_RANDOM">DB_LOCK_RANDOM</a></td></tr>
-<tr><td align=right>DBENV-&gt;set_lk_detect</td><td><a href="../api_c/env_set_lk_detect.html#DB_LOCK_YOUNGEST">DB_LOCK_YOUNGEST</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/db_lsn.html#2">DB_LSN</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/dbm.html#2">dbm/ndbm</a></td></tr>
-<tr><td align=right>memp_fput</td><td><a href="../api_c/memp_fput.html#DB_MPOOL_CLEAN">DB_MPOOL_CLEAN</a></td></tr>
-<tr><td align=right>memp_fset</td><td><a href="../api_c/memp_fset.html#DB_MPOOL_CLEAN">DB_MPOOL_CLEAN</a></td></tr>
-<tr><td align=right>memp_fget</td><td><a href="../api_c/memp_fget.html#DB_MPOOL_CREATE">DB_MPOOL_CREATE</a></td></tr>
-<tr><td align=right>memp_fput</td><td><a href="../api_c/memp_fput.html#DB_MPOOL_DIRTY">DB_MPOOL_DIRTY</a></td></tr>
-<tr><td align=right>memp_fset</td><td><a href="../api_c/memp_fset.html#DB_MPOOL_DIRTY">DB_MPOOL_DIRTY</a></td></tr>
-<tr><td align=right>memp_fput</td><td><a href="../api_c/memp_fput.html#DB_MPOOL_DISCARD">DB_MPOOL_DISCARD</a></td></tr>
-<tr><td align=right>memp_fset</td><td><a href="../api_c/memp_fset.html#DB_MPOOL_DISCARD">DB_MPOOL_DISCARD</a></td></tr>
-<tr><td align=right>memp_fget</td><td><a href="../api_c/memp_fget.html#DB_MPOOL_LAST">DB_MPOOL_LAST</a></td></tr>
-<tr><td align=right>memp_fget</td><td><a href="../api_c/memp_fget.html#DB_MPOOL_NEW">DB_MPOOL_NEW</a></td></tr>
-<tr><td align=right>DBcursor-&gt;c_get</td><td><a href="../api_c/dbc_get.html#DB_NEXT">DB_NEXT</a></td></tr>
-<tr><td align=right>log_get</td><td><a href="../api_c/log_get.html#DB_NEXT">DB_NEXT</a></td></tr>
-<tr><td align=right>DBcursor-&gt;c_get</td><td><a href="../api_c/dbc_get.html#DB_NEXT_DUP">DB_NEXT_DUP</a></td></tr>
-<tr><td align=right>DBcursor-&gt;c_get</td><td><a href="../api_c/dbc_get.html#DB_NEXT_NODUP">DB_NEXT_NODUP</a></td></tr>
-<tr><td align=right>DB-&gt;put</td><td><a href="../api_c/db_put.html#DB_NODUPDATA">DB_NODUPDATA</a></td></tr>
-<tr><td align=right>DBcursor-&gt;c_put</td><td><a href="../api_c/dbc_put.html#DB_NODUPDATA">DB_NODUPDATA</a></td></tr>
-<tr><td align=right>DB-&gt;open</td><td><a href="../api_c/db_open.html#DB_NOMMAP">DB_NOMMAP</a></td></tr>
-<tr><td align=right>DBENV-&gt;set_flags</td><td><a href="../api_c/env_set_flags.html#DB_NOMMAP">DB_NOMMAP</a></td></tr>
-<tr><td align=right>memp_fopen</td><td><a href="../api_c/memp_fopen.html#DB_NOMMAP">DB_NOMMAP</a></td></tr>
-<tr><td align=right>DB-&gt;verify</td><td><a href="../api_c/db_verify.html#DB_NOORDERCHK">DB_NOORDERCHK</a></td></tr>
-<tr><td align=right>DB-&gt;put</td><td><a href="../api_c/db_put.html#DB_NOOVERWRITE">DB_NOOVERWRITE</a></td></tr>
-<tr><td align=right>DBENV-&gt;set_server</td><td><a href="../api_c/env_set_server.html#DB_NOSERVER">DB_NOSERVER</a></td></tr>
-<tr><td align=right>DBENV-&gt;set_server</td><td><a href="../api_c/env_set_server.html#DB_NOSERVER_ID">DB_NOSERVER_ID</a></td></tr>
-<tr><td align=right>DB-&gt;close</td><td><a href="../api_c/db_close.html#DB_NOSYNC">DB_NOSYNC</a></td></tr>
-<tr><td align=right>Error returns to applications</td><td><a href="../ref/program/errorret.html#DB_NOTFOUND">DB_NOTFOUND</a></td></tr>
-<tr><td align=right>DB-&gt;open</td><td><a href="../api_c/db_open.html#DB_OLD_VERSION">DB_OLD_VERSION</a></td></tr>
-<tr><td align=right>DB-&gt;upgrade</td><td><a href="../api_c/db_upgrade.html#DB_OLD_VERSION">DB_OLD_VERSION</a></td></tr>
-<tr><td align=right>DB-&gt;verify</td><td><a href="../api_c/db_verify.html#DB_ORDERCHKONLY">DB_ORDERCHKONLY</a></td></tr>
-<tr><td align=right>DBcursor-&gt;c_dup</td><td><a href="../api_c/dbc_dup.html#DB_POSITION">DB_POSITION</a></td></tr>
-<tr><td align=right>DBcursor-&gt;c_get</td><td><a href="../api_c/dbc_get.html#DB_PREV">DB_PREV</a></td></tr>
-<tr><td align=right>log_get</td><td><a href="../api_c/log_get.html#DB_PREV">DB_PREV</a></td></tr>
-<tr><td align=right>DBcursor-&gt;c_get</td><td><a href="../api_c/dbc_get.html#DB_PREV_NODUP">DB_PREV_NODUP</a></td></tr>
-<tr><td align=right> </td><td><a href="../utility/db_printlog.html#2">db_printlog</a></td></tr>
-<tr><td align=right>DBENV-&gt;open</td><td><a href="../api_c/env_open.html#DB_PRIVATE">DB_PRIVATE</a></td></tr>
-<tr><td align=right>DB-&gt;open</td><td><a href="../api_c/db_open.html#DB_RDONLY">DB_RDONLY</a></td></tr>
-<tr><td align=right>memp_fopen</td><td><a href="../api_c/memp_fopen.html#DB_RDONLY">DB_RDONLY</a></td></tr>
-<tr><td align=right>DB-&gt;set_flags</td><td><a href="../api_c/db_set_flags.html#DB_RECNUM">DB_RECNUM</a></td></tr>
-<tr><td align=right>DB-&gt;stat</td><td><a href="../api_c/db_stat.html#DB_RECORDCOUNT">DB_RECORDCOUNT</a></td></tr>
-<tr><td align=right>DBENV-&gt;open</td><td><a href="../api_c/env_open.html#DB_RECOVER">DB_RECOVER</a></td></tr>
-<tr><td align=right>DBENV-&gt;set_feedback</td><td><a href="../api_c/env_set_feedback.html#DB_RECOVER">DB_RECOVER</a></td></tr>
-<tr><td align=right> </td><td><a href="../utility/db_recover.html#2">db_recover</a></td></tr>
-<tr><td align=right>DBENV-&gt;open</td><td><a href="../api_c/env_open.html#DB_RECOVER_FATAL">DB_RECOVER_FATAL</a></td></tr>
-<tr><td align=right>DB-&gt;set_flags</td><td><a href="../api_c/db_set_flags.html#DB_RENUMBER">DB_RENUMBER</a></td></tr>
-<tr><td align=right>DB-&gt;set_flags</td><td><a href="../api_c/db_set_flags.html#DB_REVSPLITOFF">DB_REVSPLITOFF</a></td></tr>
-<tr><td align=right>DB-&gt;get</td><td><a href="../api_c/db_get.html#DB_RMW">DB_RMW</a></td></tr>
-<tr><td align=right>DB-&gt;join</td><td><a href="../api_c/db_join.html#DB_RMW">DB_RMW</a></td></tr>
-<tr><td align=right>DBcursor-&gt;c_get</td><td><a href="../api_c/dbc_get.html#DB_RMW">DB_RMW</a></td></tr>
-<tr><td align=right>Error returns to applications</td><td><a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a></td></tr>
-<tr><td align=right>DB-&gt;verify</td><td><a href="../api_c/db_verify.html#DB_SALVAGE">DB_SALVAGE</a></td></tr>
-<tr><td align=right>DBcursor-&gt;c_get</td><td><a href="../api_c/dbc_get.html#DB_SET">DB_SET</a></td></tr>
-<tr><td align=right>log_get</td><td><a href="../api_c/log_get.html#DB_SET">DB_SET</a></td></tr>
-<tr><td align=right>DBcursor-&gt;c_get</td><td><a href="../api_c/dbc_get.html#DB_SET_RANGE">DB_SET_RANGE</a></td></tr>
-<tr><td align=right>DB-&gt;get</td><td><a href="../api_c/db_get.html#DB_SET_RECNO">DB_SET_RECNO</a></td></tr>
-<tr><td align=right>DBcursor-&gt;c_get</td><td><a href="../api_c/dbc_get.html#DB_SET_RECNO">DB_SET_RECNO</a></td></tr>
-<tr><td align=right>DB-&gt;set_flags</td><td><a href="../api_c/db_set_flags.html#DB_SNAPSHOT">DB_SNAPSHOT</a></td></tr>
-<tr><td align=right> </td><td><a href="../utility/db_stat.html#2">db_stat</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/env_strerror.html#2">db_strerror</a></td></tr>
-<tr><td align=right>DBENV-&gt;open</td><td><a href="../api_c/env_open.html#DB_SYSTEM_MEM">DB_SYSTEM_MEM</a></td></tr>
-<tr><td align=right>DB-&gt;open</td><td><a href="../api_c/db_open.html#DB_THREAD">DB_THREAD</a></td></tr>
-<tr><td align=right>DBENV-&gt;open</td><td><a href="../api_c/env_open.html#DB_THREAD">DB_THREAD</a></td></tr>
-<tr><td align=right>DB-&gt;open</td><td><a href="../api_c/db_open.html#DB_TRUNCATE">DB_TRUNCATE</a></td></tr>
-<tr><td align=right>DBENV-&gt;set_tx_recover</td><td><a href="../api_c/env_set_tx_recover.html#DB_TXN_ABORT">DB_TXN_ABORT</a></td></tr>
-<tr><td align=right>DBENV-&gt;set_tx_recover</td><td><a href="../api_c/env_set_tx_recover.html#DB_TXN_BACKWARD_ROLL">DB_TXN_BACKWARD_ROLL</a></td></tr>
-<tr><td align=right>DBENV-&gt;set_tx_recover</td><td><a href="../api_c/env_set_tx_recover.html#DB_TXN_FORWARD_ROLL">DB_TXN_FORWARD_ROLL</a></td></tr>
-<tr><td align=right>DBENV-&gt;set_flags</td><td><a href="../api_c/env_set_flags.html#DB_TXN_NOSYNC">DB_TXN_NOSYNC</a></td></tr>
-<tr><td align=right>txn_begin</td><td><a href="../api_c/txn_begin.html#DB_TXN_NOSYNC">DB_TXN_NOSYNC</a></td></tr>
-<tr><td align=right>txn_commit</td><td><a href="../api_c/txn_commit.html#DB_TXN_NOSYNC">DB_TXN_NOSYNC</a></td></tr>
-<tr><td align=right>txn_begin</td><td><a href="../api_c/txn_begin.html#DB_TXN_NOWAIT">DB_TXN_NOWAIT</a></td></tr>
-<tr><td align=right>txn_begin</td><td><a href="../api_c/txn_begin.html#DB_TXN_SYNC">DB_TXN_SYNC</a></td></tr>
-<tr><td align=right>txn_commit</td><td><a href="../api_c/txn_commit.html#DB_TXN_SYNC">DB_TXN_SYNC</a></td></tr>
-<tr><td align=right>DB-&gt;set_feedback</td><td><a href="../api_c/db_set_feedback.html#DB_UPGRADE">DB_UPGRADE</a></td></tr>
-<tr><td align=right> </td><td><a href="../utility/db_upgrade.html#2">db_upgrade</a></td></tr>
-<tr><td align=right>DBENV-&gt;open</td><td><a href="../api_c/env_open.html#DB_USE_ENVIRON">DB_USE_ENVIRON</a></td></tr>
-<tr><td align=right>DBENV-&gt;remove</td><td><a href="../api_c/env_remove.html#DB_USE_ENVIRON">DB_USE_ENVIRON</a></td></tr>
-<tr><td align=right>DBENV-&gt;open</td><td><a href="../api_c/env_open.html#DB_USE_ENVIRON_ROOT">DB_USE_ENVIRON_ROOT</a></td></tr>
-<tr><td align=right>DBENV-&gt;remove</td><td><a href="../api_c/env_remove.html#DB_USE_ENVIRON_ROOT">DB_USE_ENVIRON_ROOT</a></td></tr>
-<tr><td align=right>DBENV-&gt;set_verbose</td><td><a href="../api_c/env_set_verbose.html#DB_VERB_CHKPOINT">DB_VERB_CHKPOINT</a></td></tr>
-<tr><td align=right>DBENV-&gt;set_verbose</td><td><a href="../api_c/env_set_verbose.html#DB_VERB_DEADLOCK">DB_VERB_DEADLOCK</a></td></tr>
-<tr><td align=right>DBENV-&gt;set_verbose</td><td><a href="../api_c/env_set_verbose.html#DB_VERB_RECOVERY">DB_VERB_RECOVERY</a></td></tr>
-<tr><td align=right>DBENV-&gt;set_verbose</td><td><a href="../api_c/env_set_verbose.html#DB_VERB_WAITSFOR">DB_VERB_WAITSFOR</a></td></tr>
-<tr><td align=right>DB-&gt;set_feedback</td><td><a href="../api_c/db_set_feedback.html#DB_VERIFY">DB_VERIFY</a></td></tr>
-<tr><td align=right> </td><td><a href="../utility/db_verify.html#2">db_verify</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/env_version.html#2">db_version</a></td></tr>
-<tr><td align=right>DB-&gt;cursor</td><td><a href="../api_c/db_cursor.html#DB_WRITECURSOR">DB_WRITECURSOR</a></td></tr>
-<tr><td align=right>db_create</td><td><a href="../api_c/db_create.html#DB_XA_CREATE">DB_XA_CREATE</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/lock/dead.html#2">deadlocks</a></td></tr>
-<tr><td align=right> utility to detect </td><td><a href="../utility/db_deadlock.html#3">deadlocks</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/debug/common.html#2">debugging</a> applications</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/delete.html#2">deleting</a> records</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/curdel.html#2">deleting</a> records with a cursor</td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--disable-bigfile">--disable-bigfile</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/program/diskspace.html#2">disk</a> space requirements</td></tr>
-<tr><td align=right>DBT</td><td><a href="../api_c/dbt.html#dlen">dlen</a></td></tr>
-<tr><td align=right>DBT</td><td><a href="../api_c/dbt.html#doff">doff</a></td></tr>
-<tr><td align=right> utility to </td><td><a href="../utility/db_dump.html#3">dump</a> databases as text files</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am_conf/dup.html#2">duplicate</a> data items</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/curdup.html#2">duplicating</a> a cursor</td></tr>
-<tr><td align=right> configuring </td><td><a href="../ref/build_unix/conf.html#9">dynamic</a> shared libraries</td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-compat185">--enable-compat185</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-cxx">--enable-cxx</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-debug">--enable-debug</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-debug_rop">--enable-debug_rop</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-debug_wop">--enable-debug_wop</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-diagnostic">--enable-diagnostic</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-dump185">--enable-dump185</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-dynamic">--enable-dynamic</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-java">--enable-java</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-posixmutexes">--enable-posixmutexes</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-rpc">--enable-rpc</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-shared">--enable-shared</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-tcl">--enable-tcl</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-test">--enable-test</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-uimutexes">--enable-uimutexes</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-umrw">--enable-umrw</a></td></tr>
-<tr><td align=right> byte </td><td><a href="../ref/program/byteorder.html#3">endian</a></td></tr>
-<tr><td align=right> database </td><td><a href="../ref/env/create.html#2">environment</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/program/environ.html#2">environment</a> variables</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/error.html#2">error</a> handling</td></tr>
-<tr><td align=right> </td><td><a href="../ref/program/errorret.html#3">error</a> name space</td></tr>
-<tr><td align=right> </td><td><a href="../ref/program/errorret.html#2">error</a> returns</td></tr>
-<tr><td align=right> </td><td><a href="../ref/install/file.html#2">/etc/magic</a></td></tr>
-<tr><td align=right> selecting a Queue </td><td><a href="../ref/am_conf/extentsize.html#2">extent</a> size</td></tr>
-<tr><td align=right> Java </td><td><a href="../ref/java/faq.html#2">FAQ</a></td></tr>
-<tr><td align=right> Tcl </td><td><a href="../ref/tcl/faq.html#2">FAQ</a></td></tr>
-<tr><td align=right> configuring without large </td><td><a href="../ref/build_unix/conf.html#4">file</a> support</td></tr>
-<tr><td align=right> </td><td><a href="../ref/install/file.html#3">file</a> utility</td></tr>
-<tr><td align=right>memp_fopen</td><td><a href="../api_c/memp_fopen.html#fileid">fileid</a></td></tr>
-<tr><td align=right> recovery and </td><td><a href="../ref/transapp/filesys.html#2">filesystem</a> operations</td></tr>
-<tr><td align=right> remote </td><td><a href="../ref/env/remote.html#2">filesystems</a></td></tr>
-<tr><td align=right> page </td><td><a href="../ref/am_conf/h_ffactor.html#2">fill</a> factor</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/freebsd.html#2">FreeBSD</a></td></tr>
-<tr><td align=right> Berkeley DB </td><td><a href="../ref/program/scope.html#3">free-threaded</a> handles</td></tr>
-<tr><td align=right>memp_fopen</td><td><a href="../api_c/memp_fopen.html#ftype">ftype</a></td></tr>
-<tr><td align=right> specifying a database </td><td><a href="../ref/am_conf/h_hash.html#2">hash</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/am_conf/h_nelem.html#2">hash</a> table size</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/hpux.html#2">HP-UX</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/hsearch.html#2">hsearch</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/install.html#2">installing</a> Berkeley DB for UNIX systems</td></tr>
-<tr><td align=right> </td><td><a href="../ref/program/compatible.html#2">interface</a> compatibility</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/irix.html#2">IRIX</a></td></tr>
-<tr><td align=right> configuring the </td><td><a href="../ref/build_unix/conf.html#10">Java</a> API</td></tr>
-<tr><td align=right> </td><td><a href="../ref/java/compat.html#2">Java</a> compatibility</td></tr>
-<tr><td align=right> </td><td><a href="../ref/java/conf.html#2">Java</a> configuration</td></tr>
-<tr><td align=right> </td><td><a href="../ref/java/faq.html#3">Java</a> FAQ</td></tr>
-<tr><td align=right> logical </td><td><a href="../ref/am/join.html#2">join</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/dbt.html#2">key/data</a> pairs</td></tr>
-<tr><td align=right> retrieved </td><td><a href="../api_c/dbt.html#4">key/data</a> permanence</td></tr>
-<tr><td align=right> database </td><td><a href="../ref/program/dbsizes.html#2">limits</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/linux.html#2">Linux</a></td></tr>
-<tr><td align=right> changing compile or </td><td><a href="../ref/build_unix/flags.html#3">load</a> options</td></tr>
-<tr><td align=right> utility to </td><td><a href="../utility/db_load.html#3">load</a> text files into databases</td></tr>
-<tr><td align=right>lock_vec</td><td><a href="../api_c/lock_vec.html#lock">lock</a></td></tr>
-<tr><td align=right> standard </td><td><a href="../ref/lock/stdmode.html#2">lock</a> modes</td></tr>
-<tr><td align=right> </td><td><a href="../api_c/lock_detect.html#2">lock_detect</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/lock_get.html#2">lock_get</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/lock_id.html#2">lock_id</a></td></tr>
-<tr><td align=right> page-level </td><td><a href="../ref/lock/page.html#2">locking</a></td></tr>
-<tr><td align=right> two-phase </td><td><a href="../ref/lock/twopl.html#2">locking</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/lock/nondb.html#2">locking</a> and non-Berkeley DB applications</td></tr>
-<tr><td align=right> </td><td><a href="../ref/lock/config.html#2">locking</a> configuration</td></tr>
-<tr><td align=right> </td><td><a href="../ref/lock/am_conv.html#2">locking</a> conventions</td></tr>
-<tr><td align=right> Berkeley DB Concurrent Data Store </td><td><a href="../ref/lock/cam_conv.html#2">locking</a> conventions</td></tr>
-<tr><td align=right> </td><td><a href="../ref/lock/intro.html#2">locking</a> introduction</td></tr>
-<tr><td align=right> sizing the </td><td><a href="../ref/lock/max.html#2">locking</a> subsystem</td></tr>
-<tr><td align=right> </td><td><a href="../ref/lock/notxn.html#2">locking</a> without transactions</td></tr>
-<tr><td align=right> </td><td><a href="../api_c/lock_put.html#2">lock_put</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/lock_stat.html#2">lock_stat</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/lock_vec.html#2">lock_vec</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/log/limits.html#2">log</a> file limits</td></tr>
-<tr><td align=right> </td><td><a href="../ref/transapp/logfile.html#2">log</a> file removal</td></tr>
-<tr><td align=right> utility to display </td><td><a href="../utility/db_printlog.html#3">log</a> files as text</td></tr>
-<tr><td align=right> </td><td><a href="../api_c/log_archive.html#2">log_archive</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/log_compare.html#2">log_compare</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/log_file.html#2">log_file</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/log_flush.html#2">log_flush</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/log_get.html#2">log_get</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/log/config.html#2">logging</a> configuration</td></tr>
-<tr><td align=right> </td><td><a href="../ref/log/intro.html#2">logging</a> introduction</td></tr>
-<tr><td align=right> </td><td><a href="../api_c/log_put.html#2">log_put</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/log_register.html#2">log_register</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/log_stat.html#2">log_stat</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/log_unregister.html#2">log_unregister</a></td></tr>
-<tr><td align=right>memp_fopen</td><td><a href="../api_c/memp_fopen.html#lsn_offset">lsn_offset</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/mp/config.html#2">memory</a> pool configuration</td></tr>
-<tr><td align=right> </td><td><a href="../api_c/memp_fclose.html#2">memp_fclose</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/memp_fget.html#2">memp_fget</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/memp_fopen.html#2">memp_fopen</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/memp_fput.html#2">memp_fput</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/memp_fset.html#2">memp_fset</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/memp_fsync.html#2">memp_fsync</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/memp_register.html#2">memp_register</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/memp_stat.html#2">memp_stat</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/memp_sync.html#2">memp_sync</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/memp_trickle.html#2">memp_trickle</a></td></tr>
-<tr><td align=right>lock_vec</td><td><a href="../api_c/lock_vec.html#mode">mode</a></td></tr>
-<tr><td align=right> Berkeley DB library </td><td><a href="../ref/program/namespace.html#2">name</a> spaces</td></tr>
-<tr><td align=right> file </td><td><a href="../ref/env/naming.html#2">naming</a></td></tr>
-<tr><td align=right> retrieving Btree records by </td><td><a href="../ref/am_conf/bt_recnum.html#2">number</a></td></tr>
-<tr><td align=right>lock_vec</td><td><a href="../api_c/lock_vec.html#obj">obj</a></td></tr>
-<tr><td align=right>lock_vec</td><td><a href="../api_c/lock_vec.html#op">op</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/open.html#2">opening</a> a database</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/osf1.html#2">OSF/1</a></td></tr>
-<tr><td align=right> selecting a </td><td><a href="../ref/am_conf/pagesize.html#2">page</a> size</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/partial.html#2">partial</a> record storage and retrieval</td></tr>
-<tr><td align=right></td><td><a href="http://www.sleepycat.com/update/index.html">Patches,</a> Updates and Change logs</td></tr>
-<tr><td align=right> </td><td><a href="../ref/perl/intro.html#2">Perl</a></td></tr>
-<tr><td align=right> retrieved key/data </td><td><a href="../api_c/dbt.html#3">permanence</a></td></tr>
-<tr><td align=right>memp_fopen</td><td><a href="../api_c/memp_fopen.html#pgcookie">pgcookie</a></td></tr>
-<tr><td align=right> Sleepycat Software's Berkeley DB </td><td><a href="../ref/intro/products.html#2">products</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/qnx.html#2">QNX</a></td></tr>
-<tr><td align=right> logical </td><td><a href="../api_c/dbt.html#6">record</a> number format</td></tr>
-<tr><td align=right> logical </td><td><a href="../ref/am_conf/logrec.html#2">record</a> numbers</td></tr>
-<tr><td align=right> managing </td><td><a href="../ref/am_conf/recno.html#2">record-based</a> databases</td></tr>
-<tr><td align=right> logically renumbering </td><td><a href="../ref/am_conf/renumber.html#2">records</a></td></tr>
-<tr><td align=right> utility to </td><td><a href="../utility/db_recover.html#3">recover</a> database environments</td></tr>
-<tr><td align=right> Berkeley DB </td><td><a href="../ref/transapp/reclimit.html#2">recoverability</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/get.html#2">retrieving</a> records</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/curget.html#2">retrieving</a> records with a cursor</td></tr>
-<tr><td align=right> </td><td><a href="../ref/rpc/client.html#2">RPC</a> client</td></tr>
-<tr><td align=right> configuring a </td><td><a href="../ref/build_unix/conf.html#11">RPC</a> client/server</td></tr>
-<tr><td align=right> utility to support </td><td><a href="../utility/berkeley_db_svc.html#3">RPC</a> client/server</td></tr>
-<tr><td align=right> </td><td><a href="../ref/rpc/server.html#2">RPC</a> server</td></tr>
-<tr><td align=right> database </td><td><a href="../ref/am/verify.html#3">salvage</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/sco.html#2">SCO</a></td></tr>
-<tr><td align=right> Berkeley DB handle </td><td><a href="../ref/program/scope.html#2">scope</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/env/security.html#2">security</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/sendmail/intro.html#2">Sendmail</a></td></tr>
-<tr><td align=right> configuring </td><td><a href="../ref/build_unix/conf.html#8">shared</a> libraries</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/shlib.html#2">shared</a> libraries</td></tr>
-<tr><td align=right> application </td><td><a href="../ref/program/appsignals.html#2">signal</a> handling</td></tr>
-<tr><td align=right>DBT</td><td><a href="../api_c/dbt.html#size">size</a></td></tr>
-<tr><td align=right></td><td><a href="http://www.sleepycat.com/">Sleepycat</a> Software</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/solaris.html#2">Solaris</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/distrib/layout.html#2">source</a> code layout</td></tr>
-<tr><td align=right> cursor </td><td><a href="../ref/am/stability.html#3">stability</a></td></tr>
-<tr><td align=right> database </td><td><a href="../ref/am/stat.html#2">statistics</a></td></tr>
-<tr><td align=right> utility to display database and environment </td><td><a href="../utility/db_stat.html#3">statistics</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/put.html#2">storing</a> records</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/curput.html#2">storing</a> records with a cursor</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/sunos.html#2">SunOS</a></td></tr>
-<tr><td align=right> loading Berkeley DB with </td><td><a href="../ref/tcl/intro.html#2">Tcl</a></td></tr>
-<tr><td align=right> using Berkeley DB with </td><td><a href="../ref/tcl/using.html#2">Tcl</a></td></tr>
-<tr><td align=right> configuring the </td><td><a href="../ref/build_unix/conf.html#12">Tcl</a> API</td></tr>
-<tr><td align=right> </td><td><a href="../ref/tcl/program.html#2">Tcl</a> API programming notes</td></tr>
-<tr><td align=right> </td><td><a href="../ref/tcl/faq.html#3">Tcl</a> FAQ</td></tr>
-<tr><td align=right> configuring the </td><td><a href="../ref/build_unix/conf.html#13">test</a> suite</td></tr>
-<tr><td align=right> running the </td><td><a href="../ref/test/run.html#2">test</a> suite</td></tr>
-<tr><td align=right> running the </td><td><a href="../ref/build_unix/test.html#2">test</a> suite under UNIX</td></tr>
-<tr><td align=right> running the </td><td><a href="../ref/build_win/test.html#2">test</a> suite under Windows</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am_conf/re_source.html#2">text</a> backing files</td></tr>
-<tr><td align=right> loading </td><td><a href="../ref/dumpload/text.html#2">text</a> into databases</td></tr>
-<tr><td align=right> dumping/loading </td><td><a href="../ref/dumpload/utility.html#2">text</a> to/from databases</td></tr>
-<tr><td align=right> building </td><td><a href="../ref/program/mt.html#2">threaded</a> applications</td></tr>
-<tr><td align=right> </td><td><a href="../ref/txn/config.html#2">transaction</a> configuration</td></tr>
-<tr><td align=right> </td><td><a href="../ref/txn/limits.html#2">transaction</a> limits</td></tr>
-<tr><td align=right> administering </td><td><a href="../ref/transapp/admin.html#2">transaction</a> protected applications</td></tr>
-<tr><td align=right> archival in </td><td><a href="../ref/transapp/archival.html#2">transaction</a> protected applications</td></tr>
-<tr><td align=right> checkpoints in </td><td><a href="../ref/transapp/checkpoint.html#2">transaction</a> protected applications</td></tr>
-<tr><td align=right> deadlock detection in </td><td><a href="../ref/transapp/deadlock.html#2">transaction</a> protected applications</td></tr>
-<tr><td align=right> recovery in </td><td><a href="../ref/transapp/recovery.html#2">transaction</a> protected applications</td></tr>
-<tr><td align=right> </td><td><a href="../ref/transapp/throughput.html#2">transaction</a> throughput</td></tr>
-<tr><td align=right> </td><td><a href="../ref/transapp/intro.html#2">Transactional</a> Data Store</td></tr>
-<tr><td align=right> Berkeley DB and </td><td><a href="../ref/txn/intro.html#2">transactions</a></td></tr>
-<tr><td align=right> nested </td><td><a href="../ref/txn/nested.html#2">transactions</a></td></tr>
-<tr><td align=right> configuring Berkeley DB with the </td><td><a href="../ref/xa/config.html#2">Tuxedo</a> System</td></tr>
-<tr><td align=right> </td><td><a href="../api_c/txn_abort.html#2">txn_abort</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/txn_begin.html#2">txn_begin</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/txn_checkpoint.html#2">txn_checkpoint</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/txn_commit.html#2">txn_commit</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/txn_id.html#2">txn_id</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/txn_prepare.html#2">txn_prepare</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_c/txn_stat.html#2">txn_stat</a></td></tr>
-<tr><td align=right>DBT</td><td><a href="../api_c/dbt.html#ulen">ulen</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/ultrix.html#2">Ultrix</a></td></tr>
-<tr><td align=right> building for </td><td><a href="../ref/build_unix/notes.html#3">UNIX</a> FAQ</td></tr>
-<tr><td align=right> configuring Berkeley DB for </td><td><a href="../ref/build_unix/conf.html#3">UNIX</a> systems</td></tr>
-<tr><td align=right>Patches, </td><td><a href="http://www.sleepycat.com/update/index.html">Updates</a> and Change logs</td></tr>
-<tr><td align=right> utility to </td><td><a href="../utility/db_upgrade.html#4">upgrade</a> database files</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/upgrade.html#2">upgrading</a> databases</td></tr>
-<tr><td align=right> </td><td><a href="../ref/arch/utilities.html#2">utilities</a></td></tr>
-<tr><td align=right> database </td><td><a href="../ref/am/verify.html#2">verification</a></td></tr>
-<tr><td align=right> utility to </td><td><a href="../utility/db_verify.html#4">verify</a> database files</td></tr>
-<tr><td align=right> building for </td><td><a href="../ref/build_vxworks/faq.html#3">VxWorks</a> FAQ</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_vxworks/notes.html#2">VxWorks</a> notes</td></tr>
-<tr><td align=right> running the test suite under </td><td><a href="../ref/build_win/test.html#3">Windows</a></td></tr>
-<tr><td align=right> building for </td><td><a href="../ref/build_win/faq.html#3">Windows</a> FAQ</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_win/notes.html#2">Windows</a> notes</td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--with-tcl=DIR">--with-tcl=DIR</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/xa/intro.html#2">XA</a> Resource Manager</td></tr>
-</table>
-</center>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/db_close.html b/bdb/docs/api_c/db_close.html
deleted file mode 100644
index f6c763c5b12..00000000000
--- a/bdb/docs/api_c/db_close.html
+++ /dev/null
@@ -1,119 +0,0 @@
-<!--$Id: db_close.so,v 10.27 2000/09/08 15:20:28 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DB-&gt;close</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DB-&gt;close</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DB-&gt;close(DB *db, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The DB-&gt;close function flushes any cached database information to disk,
-closes any open cursors, frees any allocated resources, and closes any
-underlying files. Since key/data pairs are cached in memory, failing to
-sync the file with the DB-&gt;close or <a href="../api_c/db_sync.html">DB-&gt;sync</a> function may result
-in inconsistent or lost information.
-<p>The <b>flags</b> parameter must be set to 0 or the following value:
-<p><dl compact>
-<p><dt><a name="DB_NOSYNC">DB_NOSYNC</a><dd>Do not flush cached information to disk.
-<p>The <a href="../api_c/db_close.html#DB_NOSYNC">DB_NOSYNC</a> flag is a dangerous option. It should only be set
-if the application is doing logging (with transactions) so that the
-database is recoverable after a system or application crash, or if the
-database is always generated from scratch after any system or application
-crash.
-<p><b>It is important to understand that flushing cached information to disk
-only minimizes the window of opportunity for corrupted data.</b>
-While unlikely, it is possible for database corruption to happen if a
-system or application crash occurs while writing data to the database.
-To ensure that database corruption never occurs, applications must either:
-use transactions and logging with automatic recovery, use logging and
-application-specific recovery, or edit a copy of the database,
-and, once all applications using the database have successfully called
-DB-&gt;close, atomically replace the original database with the
-updated copy.
-</dl>
-<p>When multiple threads are using the Berkeley DB handle concurrently, only a single
-thread may call the DB-&gt;close function.
-<p>Once DB-&gt;close has been called, regardless of its return, the
-DB handle may not be accessed again.
- <a name="3"><!--meow--></a>
-<p>The DB-&gt;close function returns a non-zero error value on failure, 0 on success, and returns <a href="../api_c/memp_fsync.html#DB_INCOMPLETE">DB_INCOMPLETE</a> if the underlying database still has
-dirty pages in the cache. (The only reason to return
-<a href="../api_c/memp_fsync.html#DB_INCOMPLETE">DB_INCOMPLETE</a> is if another thread of control was writing pages
-in the underlying database file at the same time as the
-DB-&gt;close function was called. For this reason, a return of
-<a href="../api_c/memp_fsync.html#DB_INCOMPLETE">DB_INCOMPLETE</a> can normally be ignored, or, in cases where it is
-a possible return value, the <a href="../api_c/db_close.html#DB_NOSYNC">DB_NOSYNC</a> option should probably
-have been specified.)
-<p>The DB-&gt;close function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p>The DB-&gt;close function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the DB-&gt;close function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/db_create.html">db_create</a>,
-<a href="../api_c/db_close.html">DB-&gt;close</a>,
-<a href="../api_c/db_cursor.html">DB-&gt;cursor</a>,
-<a href="../api_c/db_del.html">DB-&gt;del</a>,
-<a href="../api_c/db_err.html">DB-&gt;err</a>,
-<a href="../api_c/db_fd.html">DB-&gt;fd</a>,
-<a href="../api_c/db_get.html">DB-&gt;get</a>,
-<a href="../api_c/db_get_byteswapped.html">DB-&gt;get_byteswapped</a>,
-<a href="../api_c/db_get_type.html">DB-&gt;get_type</a>,
-<a href="../api_c/db_join.html">DB-&gt;join</a>,
-<a href="../api_c/db_key_range.html">DB-&gt;key_range</a>,
-<a href="../api_c/db_open.html">DB-&gt;open</a>,
-<a href="../api_c/db_put.html">DB-&gt;put</a>,
-<a href="../api_c/db_remove.html">DB-&gt;remove</a>,
-<a href="../api_c/db_set_bt_compare.html">DB-&gt;set_bt_compare</a>,
-<a href="../api_c/db_set_bt_minkey.html">DB-&gt;set_bt_minkey</a>,
-<a href="../api_c/db_set_bt_prefix.html">DB-&gt;set_bt_prefix</a>,
-<a href="../api_c/db_set_cachesize.html">DB-&gt;set_cachesize</a>,
-<a href="../api_c/db_set_dup_compare.html">DB-&gt;set_dup_compare</a>,
-<a href="../api_c/db_set_errcall.html">DB-&gt;set_errcall</a>,
-<a href="../api_c/db_set_errfile.html">DB-&gt;set_errfile</a>,
-<a href="../api_c/db_set_errpfx.html">DB-&gt;set_errpfx</a>,
-<a href="../api_c/db_set_flags.html">DB-&gt;set_flags</a>,
-<a href="../api_c/db_set_h_ffactor.html">DB-&gt;set_h_ffactor</a>,
-<a href="../api_c/db_set_h_hash.html">DB-&gt;set_h_hash</a>,
-<a href="../api_c/db_set_h_nelem.html">DB-&gt;set_h_nelem</a>,
-<a href="../api_c/db_set_lorder.html">DB-&gt;set_lorder</a>,
-<a href="../api_c/db_set_malloc.html">DB-&gt;set_malloc</a>,
-<a href="../api_c/db_set_pagesize.html">DB-&gt;set_pagesize</a>,
-<a href="../api_c/db_set_paniccall.html">DB-&gt;set_paniccall</a>,
-<a href="../api_c/db_set_q_extentsize.html">DB-&gt;set_q_extentsize</a>,
-<a href="../api_c/db_set_realloc.html">DB-&gt;set_realloc</a>,
-<a href="../api_c/db_set_re_delim.html">DB-&gt;set_re_delim</a>,
-<a href="../api_c/db_set_re_len.html">DB-&gt;set_re_len</a>,
-<a href="../api_c/db_set_re_pad.html">DB-&gt;set_re_pad</a>,
-<a href="../api_c/db_set_re_source.html">DB-&gt;set_re_source</a>,
-<a href="../api_c/db_stat.html">DB-&gt;stat</a>,
-<a href="../api_c/db_sync.html">DB-&gt;sync</a>,
-<a href="../api_c/db_upgrade.html">DB-&gt;upgrade</a>
-and
-<a href="../api_c/db_verify.html">DB-&gt;verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/db_create.html b/bdb/docs/api_c/db_create.html
deleted file mode 100644
index c1fd3fca10b..00000000000
--- a/bdb/docs/api_c/db_create.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<!--$Id: db_create.so,v 10.12 2000/10/25 18:51:08 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db_create</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>db_create</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-db_create(DB **dbp, DB_ENV *dbenv, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The db_create function creates a DB structure which is the
-handle for a Berkeley DB database. A pointer to this structure is returned
-in the memory referenced by <b>db</b>.
-<p>If the <b>dbenv</b> argument is NULL, the database is standalone, i.e.,
-it is not part of any Berkeley DB environment.
-<p>If the <b>dbenv</b> argument is not NULL, the database is created within
-the specified Berkeley DB environment. The database access methods
-automatically make calls to the other subsystems in Berkeley DB based on the
-enclosing environment. For example, if the environment has been
-configured to use locking, then the access methods will automatically
-acquire the correct locks when reading and writing pages of the database.
-<p>The <b>flags</b> parameter must be set to 0 or one of the following
-values:
-<p><dl compact>
-<p><dt><a name="DB_XA_CREATE">DB_XA_CREATE</a><dd>Instead of creating a standalone database, create a database intended to
-be accessed via applications running under a X/Open conformant Transaction
-Manager. The database will be opened in the environment specified by the
-OPENINFO parameter of the GROUPS section of the ubbconfig file. See the
-<a href="../ref/xa/intro.html">XA Resource Manager</a> chapter in the
-Reference Guide for more information.
-</dl>
-<p>The DB handle contains a special field, "app_private", which
-is declared as type "void *". This field is provided for the use of
-the application program. It is initialized to NULL and is not further
-used by Berkeley DB in any way.
-<p>The db_create function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p>The db_create function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the db_create function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/db_create.html">db_create</a>,
-<a href="../api_c/db_close.html">DB-&gt;close</a>,
-<a href="../api_c/db_cursor.html">DB-&gt;cursor</a>,
-<a href="../api_c/db_del.html">DB-&gt;del</a>,
-<a href="../api_c/db_err.html">DB-&gt;err</a>,
-<a href="../api_c/db_fd.html">DB-&gt;fd</a>,
-<a href="../api_c/db_get.html">DB-&gt;get</a>,
-<a href="../api_c/db_get_byteswapped.html">DB-&gt;get_byteswapped</a>,
-<a href="../api_c/db_get_type.html">DB-&gt;get_type</a>,
-<a href="../api_c/db_join.html">DB-&gt;join</a>,
-<a href="../api_c/db_key_range.html">DB-&gt;key_range</a>,
-<a href="../api_c/db_open.html">DB-&gt;open</a>,
-<a href="../api_c/db_put.html">DB-&gt;put</a>,
-<a href="../api_c/db_remove.html">DB-&gt;remove</a>,
-<a href="../api_c/db_set_bt_compare.html">DB-&gt;set_bt_compare</a>,
-<a href="../api_c/db_set_bt_minkey.html">DB-&gt;set_bt_minkey</a>,
-<a href="../api_c/db_set_bt_prefix.html">DB-&gt;set_bt_prefix</a>,
-<a href="../api_c/db_set_cachesize.html">DB-&gt;set_cachesize</a>,
-<a href="../api_c/db_set_dup_compare.html">DB-&gt;set_dup_compare</a>,
-<a href="../api_c/db_set_errcall.html">DB-&gt;set_errcall</a>,
-<a href="../api_c/db_set_errfile.html">DB-&gt;set_errfile</a>,
-<a href="../api_c/db_set_errpfx.html">DB-&gt;set_errpfx</a>,
-<a href="../api_c/db_set_flags.html">DB-&gt;set_flags</a>,
-<a href="../api_c/db_set_h_ffactor.html">DB-&gt;set_h_ffactor</a>,
-<a href="../api_c/db_set_h_hash.html">DB-&gt;set_h_hash</a>,
-<a href="../api_c/db_set_h_nelem.html">DB-&gt;set_h_nelem</a>,
-<a href="../api_c/db_set_lorder.html">DB-&gt;set_lorder</a>,
-<a href="../api_c/db_set_malloc.html">DB-&gt;set_malloc</a>,
-<a href="../api_c/db_set_pagesize.html">DB-&gt;set_pagesize</a>,
-<a href="../api_c/db_set_paniccall.html">DB-&gt;set_paniccall</a>,
-<a href="../api_c/db_set_q_extentsize.html">DB-&gt;set_q_extentsize</a>,
-<a href="../api_c/db_set_realloc.html">DB-&gt;set_realloc</a>,
-<a href="../api_c/db_set_re_delim.html">DB-&gt;set_re_delim</a>,
-<a href="../api_c/db_set_re_len.html">DB-&gt;set_re_len</a>,
-<a href="../api_c/db_set_re_pad.html">DB-&gt;set_re_pad</a>,
-<a href="../api_c/db_set_re_source.html">DB-&gt;set_re_source</a>,
-<a href="../api_c/db_stat.html">DB-&gt;stat</a>,
-<a href="../api_c/db_sync.html">DB-&gt;sync</a>,
-<a href="../api_c/db_upgrade.html">DB-&gt;upgrade</a>
-and
-<a href="../api_c/db_verify.html">DB-&gt;verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/db_cursor.html b/bdb/docs/api_c/db_cursor.html
deleted file mode 100644
index 1fb6616ab63..00000000000
--- a/bdb/docs/api_c/db_cursor.html
+++ /dev/null
@@ -1,103 +0,0 @@
-<!--$Id: db_cursor.so,v 10.25 2000/07/11 19:11:25 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DB-&gt;cursor</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DB-&gt;cursor</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DB-&gt;cursor(DB *db,
- DB_TXN *txnid, DBC **cursorp, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The DB-&gt;cursor function
-creates a cursor and copies a pointer to it into the memory referenced
-by <b>cursorp</b>.
-<p>If the file is being accessed under transaction protection, the
-<b>txnid</b> parameter is a transaction ID returned from
-<a href="../api_c/txn_begin.html">txn_begin</a>, otherwise, NULL.
-<p>If transaction protection is enabled, cursors must be opened and closed
-within the context of a transaction, and the <b>txnid</b> parameter
-specifies the transaction context in which the cursor may be used.
-<p>The <b>flags</b> value must be set to 0 or by bitwise inclusively <b>OR</b>'ing together one or more
-of the following values.
-<p><dl compact>
-<p><dt><a name="DB_WRITECURSOR">DB_WRITECURSOR</a><dd>Specify that the cursor will be used to update the database. This
-flag should <b>only</b> be set when the <a href="../api_c/env_open.html#DB_INIT_CDB">DB_INIT_CDB</a> flag
-was specified to <a href="../api_c/env_open.html">DBENV-&gt;open</a>.
-</dl>
-<p>The DB-&gt;cursor function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p>The DB-&gt;cursor function may fail and return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<p>The DB-&gt;cursor function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the DB-&gt;cursor function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/db_create.html">db_create</a>,
-<a href="../api_c/db_close.html">DB-&gt;close</a>,
-<a href="../api_c/db_cursor.html">DB-&gt;cursor</a>,
-<a href="../api_c/db_del.html">DB-&gt;del</a>,
-<a href="../api_c/db_err.html">DB-&gt;err</a>,
-<a href="../api_c/db_fd.html">DB-&gt;fd</a>,
-<a href="../api_c/db_get.html">DB-&gt;get</a>,
-<a href="../api_c/db_get_byteswapped.html">DB-&gt;get_byteswapped</a>,
-<a href="../api_c/db_get_type.html">DB-&gt;get_type</a>,
-<a href="../api_c/db_join.html">DB-&gt;join</a>,
-<a href="../api_c/db_key_range.html">DB-&gt;key_range</a>,
-<a href="../api_c/db_open.html">DB-&gt;open</a>,
-<a href="../api_c/db_put.html">DB-&gt;put</a>,
-<a href="../api_c/db_remove.html">DB-&gt;remove</a>,
-<a href="../api_c/db_set_bt_compare.html">DB-&gt;set_bt_compare</a>,
-<a href="../api_c/db_set_bt_minkey.html">DB-&gt;set_bt_minkey</a>,
-<a href="../api_c/db_set_bt_prefix.html">DB-&gt;set_bt_prefix</a>,
-<a href="../api_c/db_set_cachesize.html">DB-&gt;set_cachesize</a>,
-<a href="../api_c/db_set_dup_compare.html">DB-&gt;set_dup_compare</a>,
-<a href="../api_c/db_set_errcall.html">DB-&gt;set_errcall</a>,
-<a href="../api_c/db_set_errfile.html">DB-&gt;set_errfile</a>,
-<a href="../api_c/db_set_errpfx.html">DB-&gt;set_errpfx</a>,
-<a href="../api_c/db_set_flags.html">DB-&gt;set_flags</a>,
-<a href="../api_c/db_set_h_ffactor.html">DB-&gt;set_h_ffactor</a>,
-<a href="../api_c/db_set_h_hash.html">DB-&gt;set_h_hash</a>,
-<a href="../api_c/db_set_h_nelem.html">DB-&gt;set_h_nelem</a>,
-<a href="../api_c/db_set_lorder.html">DB-&gt;set_lorder</a>,
-<a href="../api_c/db_set_malloc.html">DB-&gt;set_malloc</a>,
-<a href="../api_c/db_set_pagesize.html">DB-&gt;set_pagesize</a>,
-<a href="../api_c/db_set_paniccall.html">DB-&gt;set_paniccall</a>,
-<a href="../api_c/db_set_q_extentsize.html">DB-&gt;set_q_extentsize</a>,
-<a href="../api_c/db_set_realloc.html">DB-&gt;set_realloc</a>,
-<a href="../api_c/db_set_re_delim.html">DB-&gt;set_re_delim</a>,
-<a href="../api_c/db_set_re_len.html">DB-&gt;set_re_len</a>,
-<a href="../api_c/db_set_re_pad.html">DB-&gt;set_re_pad</a>,
-<a href="../api_c/db_set_re_source.html">DB-&gt;set_re_source</a>,
-<a href="../api_c/db_stat.html">DB-&gt;stat</a>,
-<a href="../api_c/db_sync.html">DB-&gt;sync</a>,
-<a href="../api_c/db_upgrade.html">DB-&gt;upgrade</a>
-and
-<a href="../api_c/db_verify.html">DB-&gt;verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/db_del.html b/bdb/docs/api_c/db_del.html
deleted file mode 100644
index b273d29fd14..00000000000
--- a/bdb/docs/api_c/db_del.html
+++ /dev/null
@@ -1,101 +0,0 @@
-<!--$Id: db_del.so,v 10.23 2000/09/05 19:35:10 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DB-&gt;del</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DB-&gt;del</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DB-&gt;del(DB *db, DB_TXN *txnid, DBT *key, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The DB-&gt;del function removes key/data pairs from the database. The
-key/data pair associated with the specified <b>key</b> is discarded from
-the database. In the presence of duplicate key values, all records
-associated with the designated key will be discarded.
-<p>If the file is being accessed under transaction protection, the
-<b>txnid</b> parameter is a transaction ID returned from
-<a href="../api_c/txn_begin.html">txn_begin</a>, otherwise, NULL.
-<p>The <b>flags</b> parameter is currently unused, and must be set to 0.
-<p>The DB-&gt;del function returns a non-zero error value on failure, 0 on success, and <a href="../ref/program/errorret.html#DB_NOTFOUND">DB_NOTFOUND</a> if the specified <b>key</b> did not exist in
-the file.
-<h1>Errors</h1>
-<p>The DB-&gt;del function may fail and return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>DB_LOCK_DEADLOCK<dd>The operation was selected to resolve a deadlock.
-</dl>
-<p><dl compact>
-<p><dt>EACCES<dd>An attempt was made to modify a read-only database.
-</dl>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<p>The DB-&gt;del function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the DB-&gt;del function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/db_create.html">db_create</a>,
-<a href="../api_c/db_close.html">DB-&gt;close</a>,
-<a href="../api_c/db_cursor.html">DB-&gt;cursor</a>,
-<a href="../api_c/db_del.html">DB-&gt;del</a>,
-<a href="../api_c/db_err.html">DB-&gt;err</a>,
-<a href="../api_c/db_fd.html">DB-&gt;fd</a>,
-<a href="../api_c/db_get.html">DB-&gt;get</a>,
-<a href="../api_c/db_get_byteswapped.html">DB-&gt;get_byteswapped</a>,
-<a href="../api_c/db_get_type.html">DB-&gt;get_type</a>,
-<a href="../api_c/db_join.html">DB-&gt;join</a>,
-<a href="../api_c/db_key_range.html">DB-&gt;key_range</a>,
-<a href="../api_c/db_open.html">DB-&gt;open</a>,
-<a href="../api_c/db_put.html">DB-&gt;put</a>,
-<a href="../api_c/db_remove.html">DB-&gt;remove</a>,
-<a href="../api_c/db_set_bt_compare.html">DB-&gt;set_bt_compare</a>,
-<a href="../api_c/db_set_bt_minkey.html">DB-&gt;set_bt_minkey</a>,
-<a href="../api_c/db_set_bt_prefix.html">DB-&gt;set_bt_prefix</a>,
-<a href="../api_c/db_set_cachesize.html">DB-&gt;set_cachesize</a>,
-<a href="../api_c/db_set_dup_compare.html">DB-&gt;set_dup_compare</a>,
-<a href="../api_c/db_set_errcall.html">DB-&gt;set_errcall</a>,
-<a href="../api_c/db_set_errfile.html">DB-&gt;set_errfile</a>,
-<a href="../api_c/db_set_errpfx.html">DB-&gt;set_errpfx</a>,
-<a href="../api_c/db_set_flags.html">DB-&gt;set_flags</a>,
-<a href="../api_c/db_set_h_ffactor.html">DB-&gt;set_h_ffactor</a>,
-<a href="../api_c/db_set_h_hash.html">DB-&gt;set_h_hash</a>,
-<a href="../api_c/db_set_h_nelem.html">DB-&gt;set_h_nelem</a>,
-<a href="../api_c/db_set_lorder.html">DB-&gt;set_lorder</a>,
-<a href="../api_c/db_set_malloc.html">DB-&gt;set_malloc</a>,
-<a href="../api_c/db_set_pagesize.html">DB-&gt;set_pagesize</a>,
-<a href="../api_c/db_set_paniccall.html">DB-&gt;set_paniccall</a>,
-<a href="../api_c/db_set_q_extentsize.html">DB-&gt;set_q_extentsize</a>,
-<a href="../api_c/db_set_realloc.html">DB-&gt;set_realloc</a>,
-<a href="../api_c/db_set_re_delim.html">DB-&gt;set_re_delim</a>,
-<a href="../api_c/db_set_re_len.html">DB-&gt;set_re_len</a>,
-<a href="../api_c/db_set_re_pad.html">DB-&gt;set_re_pad</a>,
-<a href="../api_c/db_set_re_source.html">DB-&gt;set_re_source</a>,
-<a href="../api_c/db_stat.html">DB-&gt;stat</a>,
-<a href="../api_c/db_sync.html">DB-&gt;sync</a>,
-<a href="../api_c/db_upgrade.html">DB-&gt;upgrade</a>
-and
-<a href="../api_c/db_verify.html">DB-&gt;verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/db_err.html b/bdb/docs/api_c/db_err.html
deleted file mode 100644
index 1eae12fabf0..00000000000
--- a/bdb/docs/api_c/db_err.html
+++ /dev/null
@@ -1,93 +0,0 @@
-<!--$Id: db_err.so,v 10.11 1999/12/20 08:52:27 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DBENV-&gt;err</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DBENV-&gt;err</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-void
-DBENV-&gt;err(DB_ENV *dbenv, int error, const char *fmt, ...);
-<p>
-void
-DBENV-&gt;errx(DB_ENV *dbenv, const char *fmt, ...);
-<p>
-void
-DB-&gt;err(DB *db, int error, const char *fmt, ...);
-<p>
-void
-DB-&gt;errx(DB *db, const char *fmt, ...);
-</pre></h3>
-<h1>Description</h1>
-<p>The DBENV-&gt;err, DBENV-&gt;errx, DB-&gt;err and
-DB-&gt;errx functions provide error messaging functionality for
-applications written using the Berkeley DB library.
-<p>The DBENV-&gt;err function constructs an error message consisting of the
-following elements:
-<p><blockquote><p><dl compact>
-<p><dt>An optional prefix string<dd>If no error callback function has been set using the
-<a href="../api_c/env_set_errcall.html">DBENV-&gt;set_errcall</a> function, any prefix string specified using the
-<a href="../api_c/env_set_errpfx.html">DBENV-&gt;set_errpfx</a> function, followed by two separating characters: a colon
-and a &lt;space&gt; character.
-<p><dt>An optional printf-style message<dd>The supplied message <b>fmt</b>, if non-NULL, where the ANSI C X3.159-1989 (ANSI C)
-printf function specifies how subsequent arguments are converted for
-output.
-<p><dt>A separator<dd>Two separating characters: a colon and a &lt;space&gt; character.
-<p><dt>A standard error string<dd>The standard system or Berkeley DB library error string associated with the
-<b>error</b> value, as returned by the <a href="../api_c/env_strerror.html">db_strerror</a> function.
-</dl>
-</blockquote>
-<p>This constructed error message is then handled as follows:
-<p><blockquote>
-<p>If an error callback function has been set (see <a href="../api_c/db_set_errcall.html">DB-&gt;set_errcall</a>
-and <a href="../api_c/env_set_errcall.html">DBENV-&gt;set_errcall</a>), that function is called with two
-arguments: any prefix string specified (see <a href="../api_c/db_set_errpfx.html">DB-&gt;set_errpfx</a> and
-<a href="../api_c/env_set_errpfx.html">DBENV-&gt;set_errpfx</a>), and the error message.
-<p>If a C library FILE * has been set (see <a href="../api_c/db_set_errfile.html">DB-&gt;set_errfile</a> and
-<a href="../api_c/env_set_errfile.html">DBENV-&gt;set_errfile</a>), the error message is written to that output
-stream.
-<p>If none of these output options has been configured, the error message
-is written to stderr, the standard error output stream.</blockquote>
-<p>The DBENV-&gt;errx and DB-&gt;errx functions perform identically to the
-DBENV-&gt;err and DB-&gt;err functions except that they do not append
-the final separator characters and standard error string to the error
-message.
-<h1>See Also</h1>
-<a href="../api_c/env_close.html">DBENV-&gt;close</a>,
-<a href="../api_c/env_create.html">db_env_create</a>,
-<a href="../api_c/env_open.html">DBENV-&gt;open</a>,
-<a href="../api_c/env_remove.html">DBENV-&gt;remove</a>,
-<a href="../api_c/db_err.html">DBENV-&gt;err</a>,
-<a href="../api_c/env_strerror.html">db_strerror</a>,
-<a href="../api_c/env_version.html">db_version</a>,
-<a href="../api_c/env_set_cachesize.html">DBENV-&gt;set_cachesize</a>,
-<a href="../api_c/env_set_errcall.html">DBENV-&gt;set_errcall</a>,
-<a href="../api_c/env_set_errfile.html">DBENV-&gt;set_errfile</a>,
-<a href="../api_c/env_set_errpfx.html">DBENV-&gt;set_errpfx</a>,
-<a href="../api_c/env_set_flags.html">DBENV-&gt;set_flags</a>,
-<a href="../api_c/env_set_mutexlocks.html">DBENV-&gt;set_mutexlocks</a>,
-<a href="../api_c/env_set_paniccall.html">DBENV-&gt;set_paniccall</a>,
-and
-<a href="../api_c/env_set_verbose.html">DBENV-&gt;set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/db_fd.html b/bdb/docs/api_c/db_fd.html
deleted file mode 100644
index 2a385c1b3d1..00000000000
--- a/bdb/docs/api_c/db_fd.html
+++ /dev/null
@@ -1,92 +0,0 @@
-<!--$Id: db_fd.so,v 10.21 2000/03/01 21:41:28 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DB-&gt;fd</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DB-&gt;fd</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DB-&gt;fd(DB *db, int *fdp);
-</pre></h3>
-<h1>Description</h1>
-<p>The DB-&gt;fd function
-copies a file descriptor representative of the underlying database into
-the memory referenced by <b>fdp</b>. A file descriptor referencing the
-same file will be returned to all processes that call <a href="../api_c/db_open.html">DB-&gt;open</a> with
-the same <b>file</b> argument. This file descriptor may be safely used
-as an argument to the <b>fcntl</b>(2) and <b>flock</b>(2) locking
-functions. The file descriptor is not necessarily associated with any of
-the underlying files actually used by the access method.
-<p>The DB-&gt;fd function only supports a coarse-grained form of locking.
-Applications should use the lock manager where possible.
-<p>The DB-&gt;fd function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p>The DB-&gt;fd function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the DB-&gt;fd function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/db_create.html">db_create</a>,
-<a href="../api_c/db_close.html">DB-&gt;close</a>,
-<a href="../api_c/db_cursor.html">DB-&gt;cursor</a>,
-<a href="../api_c/db_del.html">DB-&gt;del</a>,
-<a href="../api_c/db_err.html">DB-&gt;err</a>,
-<a href="../api_c/db_fd.html">DB-&gt;fd</a>,
-<a href="../api_c/db_get.html">DB-&gt;get</a>,
-<a href="../api_c/db_get_byteswapped.html">DB-&gt;get_byteswapped</a>,
-<a href="../api_c/db_get_type.html">DB-&gt;get_type</a>,
-<a href="../api_c/db_join.html">DB-&gt;join</a>,
-<a href="../api_c/db_key_range.html">DB-&gt;key_range</a>,
-<a href="../api_c/db_open.html">DB-&gt;open</a>,
-<a href="../api_c/db_put.html">DB-&gt;put</a>,
-<a href="../api_c/db_remove.html">DB-&gt;remove</a>,
-<a href="../api_c/db_set_bt_compare.html">DB-&gt;set_bt_compare</a>,
-<a href="../api_c/db_set_bt_minkey.html">DB-&gt;set_bt_minkey</a>,
-<a href="../api_c/db_set_bt_prefix.html">DB-&gt;set_bt_prefix</a>,
-<a href="../api_c/db_set_cachesize.html">DB-&gt;set_cachesize</a>,
-<a href="../api_c/db_set_dup_compare.html">DB-&gt;set_dup_compare</a>,
-<a href="../api_c/db_set_errcall.html">DB-&gt;set_errcall</a>,
-<a href="../api_c/db_set_errfile.html">DB-&gt;set_errfile</a>,
-<a href="../api_c/db_set_errpfx.html">DB-&gt;set_errpfx</a>,
-<a href="../api_c/db_set_flags.html">DB-&gt;set_flags</a>,
-<a href="../api_c/db_set_h_ffactor.html">DB-&gt;set_h_ffactor</a>,
-<a href="../api_c/db_set_h_hash.html">DB-&gt;set_h_hash</a>,
-<a href="../api_c/db_set_h_nelem.html">DB-&gt;set_h_nelem</a>,
-<a href="../api_c/db_set_lorder.html">DB-&gt;set_lorder</a>,
-<a href="../api_c/db_set_malloc.html">DB-&gt;set_malloc</a>,
-<a href="../api_c/db_set_pagesize.html">DB-&gt;set_pagesize</a>,
-<a href="../api_c/db_set_paniccall.html">DB-&gt;set_paniccall</a>,
-<a href="../api_c/db_set_q_extentsize.html">DB-&gt;set_q_extentsize</a>,
-<a href="../api_c/db_set_realloc.html">DB-&gt;set_realloc</a>,
-<a href="../api_c/db_set_re_delim.html">DB-&gt;set_re_delim</a>,
-<a href="../api_c/db_set_re_len.html">DB-&gt;set_re_len</a>,
-<a href="../api_c/db_set_re_pad.html">DB-&gt;set_re_pad</a>,
-<a href="../api_c/db_set_re_source.html">DB-&gt;set_re_source</a>,
-<a href="../api_c/db_stat.html">DB-&gt;stat</a>,
-<a href="../api_c/db_sync.html">DB-&gt;sync</a>,
-<a href="../api_c/db_upgrade.html">DB-&gt;upgrade</a>
-and
-<a href="../api_c/db_verify.html">DB-&gt;verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/db_get.html b/bdb/docs/api_c/db_get.html
deleted file mode 100644
index c6cc3fcce43..00000000000
--- a/bdb/docs/api_c/db_get.html
+++ /dev/null
@@ -1,156 +0,0 @@
-<!--$Id: db_get.so,v 10.31 2000/11/28 20:12:30 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DB-&gt;get</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DB-&gt;get</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DB-&gt;get(DB *db,
- DB_TXN *txnid, DBT *key, DBT *data, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The DB-&gt;get function retrieves key/data pairs from the database. The
-address
-and length of the data associated with the specified <b>key</b> are
-returned in the structure referenced by <b>data</b>.
-<p>In the presence of duplicate key values, DB-&gt;get will return the
-first data item for the designated key. Duplicates are sorted by insert
-order except where this order has been overridden by cursor operations.
-<b>Retrieval of duplicates requires the use of cursor operations.</b>
-See <a href="../api_c/dbc_get.html">DBcursor-&gt;c_get</a> for details.
-<p>If the file is being accessed under transaction protection, the
-<b>txnid</b> parameter is a transaction ID returned from
-<a href="../api_c/txn_begin.html">txn_begin</a>, otherwise, NULL.
-<p>The <b>flags</b> parameter must be set to 0 or one of the following
-values:
-<p><dl compact>
-<p><dt><a name="DB_CONSUME">DB_CONSUME</a><dd>Return the record number and data from the available record closest to
-the head of the queue and delete the record. The cursor will be
-positioned on the deleted record. The record number will be returned
-in <b>key</b> as described in <a href="../api_c/dbt.html">DBT</a>. The data will be returned
-in the <b>data</b> parameter. A record is available if it is not
-deleted and is not currently locked. The underlying database must be
-of type Queue for DB_CONSUME to be specified.
-<p><dt><a name="DB_CONSUME_WAIT">DB_CONSUME_WAIT</a><dd>The DB_CONSUME_WAIT flag is the same as the DB_CONSUME
-flag except that if the Queue database is empty, the thread of control
-will wait until there is data in the queue before returning. The
-underlying database must be of type Queue for DB_CONSUME_WAIT
-to be specified.
-<p><dt><a name="DB_GET_BOTH">DB_GET_BOTH</a><dd>Retrieve the key/data pair only if both the key and data match the
-arguments.
-<p><dt><a name="DB_SET_RECNO">DB_SET_RECNO</a><dd>Retrieve the specified numbered key/data pair from a database.
-Upon return, both the <b>key</b> and <b>data</b> items will have been
-filled in, not just the data item as is done for all other uses of the
-DB-&gt;get function.
-<p>The <b>data</b> field of the specified <b>key</b>
-must be a pointer to a logical record number (i.e., a <b>db_recno_t</b>).
-This record number determines the record to be retrieved.
-<p>For DB_SET_RECNO to be specified, the underlying database must be
-of type Btree and it must have been created with the DB_RECNUM flag.
-</dl>
-<p>In addition, the following flag may be set by bitwise inclusively <b>OR</b>'ing it into the
-<b>flags</b> parameter:
-<p><dl compact>
-<p><dt><a name="DB_RMW">DB_RMW</a><dd>Acquire write locks instead of read locks when doing the retrieval.
-Setting this flag may decrease the likelihood of deadlock during a
-read-modify-write cycle by immediately acquiring the write lock during
-the read part of the cycle so that another thread of control acquiring
-a read lock for the same item, in its own read-modify-write cycle, will
-not result in deadlock.
-<p>As the DB-&gt;get interface will not hold locks across
-Berkeley DB interface calls in non-transactional environments, the
-<a href="../api_c/dbc_get.html#DB_RMW">DB_RMW</a> flag to the DB-&gt;get call is only meaningful in
-the presence of transactions.
-</dl>
-<p>If the database is a Queue or Recno database and the requested key exists,
-but was never explicitly created by the application or was later deleted,
-the DB-&gt;get function returns <a href="../ref/program/errorret.html#DB_KEYEMPTY">DB_KEYEMPTY</a>.
-<p>Otherwise, if the requested key is not in the database, the
-DB-&gt;get function returns <a href="../ref/program/errorret.html#DB_NOTFOUND">DB_NOTFOUND</a>.
-<p>Otherwise, the DB-&gt;get function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p>The DB-&gt;get function may fail and return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>DB_LOCK_DEADLOCK<dd>The operation was selected to resolve a deadlock.
-</dl>
-<p><dl compact>
-<p><dt>ENOMEM<dd>There was insufficient memory to return the requested item.
-</dl>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>A record number of 0 was specified.
-<p>The <a href="../api_c/env_open.html#DB_THREAD">DB_THREAD</a> flag was specified to the
-<a href="../api_c/db_open.html">DB-&gt;open</a> function and none of the <a href="../api_c/dbt.html#DB_DBT_MALLOC">DB_DBT_MALLOC</a>,
-<a href="../api_c/dbt.html#DB_DBT_REALLOC">DB_DBT_REALLOC</a> or <a href="../api_c/dbt.html#DB_DBT_USERMEM">DB_DBT_USERMEM</a> flags were set in the
-<a href="../api_c/dbt.html">DBT</a>.
-</dl>
-<p>The DB-&gt;get function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the DB-&gt;get function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/db_create.html">db_create</a>,
-<a href="../api_c/db_close.html">DB-&gt;close</a>,
-<a href="../api_c/db_cursor.html">DB-&gt;cursor</a>,
-<a href="../api_c/db_del.html">DB-&gt;del</a>,
-<a href="../api_c/db_err.html">DB-&gt;err</a>,
-<a href="../api_c/db_fd.html">DB-&gt;fd</a>,
-<a href="../api_c/db_get.html">DB-&gt;get</a>,
-<a href="../api_c/db_get_byteswapped.html">DB-&gt;get_byteswapped</a>,
-<a href="../api_c/db_get_type.html">DB-&gt;get_type</a>,
-<a href="../api_c/db_join.html">DB-&gt;join</a>,
-<a href="../api_c/db_key_range.html">DB-&gt;key_range</a>,
-<a href="../api_c/db_open.html">DB-&gt;open</a>,
-<a href="../api_c/db_put.html">DB-&gt;put</a>,
-<a href="../api_c/db_remove.html">DB-&gt;remove</a>,
-<a href="../api_c/db_set_bt_compare.html">DB-&gt;set_bt_compare</a>,
-<a href="../api_c/db_set_bt_minkey.html">DB-&gt;set_bt_minkey</a>,
-<a href="../api_c/db_set_bt_prefix.html">DB-&gt;set_bt_prefix</a>,
-<a href="../api_c/db_set_cachesize.html">DB-&gt;set_cachesize</a>,
-<a href="../api_c/db_set_dup_compare.html">DB-&gt;set_dup_compare</a>,
-<a href="../api_c/db_set_errcall.html">DB-&gt;set_errcall</a>,
-<a href="../api_c/db_set_errfile.html">DB-&gt;set_errfile</a>,
-<a href="../api_c/db_set_errpfx.html">DB-&gt;set_errpfx</a>,
-<a href="../api_c/db_set_flags.html">DB-&gt;set_flags</a>,
-<a href="../api_c/db_set_h_ffactor.html">DB-&gt;set_h_ffactor</a>,
-<a href="../api_c/db_set_h_hash.html">DB-&gt;set_h_hash</a>,
-<a href="../api_c/db_set_h_nelem.html">DB-&gt;set_h_nelem</a>,
-<a href="../api_c/db_set_lorder.html">DB-&gt;set_lorder</a>,
-<a href="../api_c/db_set_malloc.html">DB-&gt;set_malloc</a>,
-<a href="../api_c/db_set_pagesize.html">DB-&gt;set_pagesize</a>,
-<a href="../api_c/db_set_paniccall.html">DB-&gt;set_paniccall</a>,
-<a href="../api_c/db_set_q_extentsize.html">DB-&gt;set_q_extentsize</a>,
-<a href="../api_c/db_set_realloc.html">DB-&gt;set_realloc</a>,
-<a href="../api_c/db_set_re_delim.html">DB-&gt;set_re_delim</a>,
-<a href="../api_c/db_set_re_len.html">DB-&gt;set_re_len</a>,
-<a href="../api_c/db_set_re_pad.html">DB-&gt;set_re_pad</a>,
-<a href="../api_c/db_set_re_source.html">DB-&gt;set_re_source</a>,
-<a href="../api_c/db_stat.html">DB-&gt;stat</a>,
-<a href="../api_c/db_sync.html">DB-&gt;sync</a>,
-<a href="../api_c/db_upgrade.html">DB-&gt;upgrade</a>
-and
-<a href="../api_c/db_verify.html">DB-&gt;verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/db_get_byteswapped.html b/bdb/docs/api_c/db_get_byteswapped.html
deleted file mode 100644
index 205ddb79467..00000000000
--- a/bdb/docs/api_c/db_get_byteswapped.html
+++ /dev/null
@@ -1,84 +0,0 @@
-<!--$Id: db_get_byteswapped.so,v 10.7 1999/12/20 08:52:27 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DB-&gt;get_byteswapped</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DB-&gt;get_byteswapped</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DB-&gt;get_byteswapped(DB *db);
-</pre></h3>
-<h1>Description</h1>
-<p>The DB-&gt;get_byteswapped function returns
-0
-if the underlying database files were created on an architecture
-of the same byte order as the current one, and
-1
-if they were not (i.e., big-endian on a little-endian machine or
-vice-versa). This field may be used to determine if application
-data needs to be adjusted for this architecture or not.
-<h1>See Also</h1>
-<a href="../api_c/db_create.html">db_create</a>,
-<a href="../api_c/db_close.html">DB-&gt;close</a>,
-<a href="../api_c/db_cursor.html">DB-&gt;cursor</a>,
-<a href="../api_c/db_del.html">DB-&gt;del</a>,
-<a href="../api_c/db_err.html">DB-&gt;err</a>,
-<a href="../api_c/db_fd.html">DB-&gt;fd</a>,
-<a href="../api_c/db_get.html">DB-&gt;get</a>,
-<a href="../api_c/db_get_byteswapped.html">DB-&gt;get_byteswapped</a>,
-<a href="../api_c/db_get_type.html">DB-&gt;get_type</a>,
-<a href="../api_c/db_join.html">DB-&gt;join</a>,
-<a href="../api_c/db_key_range.html">DB-&gt;key_range</a>,
-<a href="../api_c/db_open.html">DB-&gt;open</a>,
-<a href="../api_c/db_put.html">DB-&gt;put</a>,
-<a href="../api_c/db_remove.html">DB-&gt;remove</a>,
-<a href="../api_c/db_set_bt_compare.html">DB-&gt;set_bt_compare</a>,
-<a href="../api_c/db_set_bt_minkey.html">DB-&gt;set_bt_minkey</a>,
-<a href="../api_c/db_set_bt_prefix.html">DB-&gt;set_bt_prefix</a>,
-<a href="../api_c/db_set_cachesize.html">DB-&gt;set_cachesize</a>,
-<a href="../api_c/db_set_dup_compare.html">DB-&gt;set_dup_compare</a>,
-<a href="../api_c/db_set_errcall.html">DB-&gt;set_errcall</a>,
-<a href="../api_c/db_set_errfile.html">DB-&gt;set_errfile</a>,
-<a href="../api_c/db_set_errpfx.html">DB-&gt;set_errpfx</a>,
-<a href="../api_c/db_set_flags.html">DB-&gt;set_flags</a>,
-<a href="../api_c/db_set_h_ffactor.html">DB-&gt;set_h_ffactor</a>,
-<a href="../api_c/db_set_h_hash.html">DB-&gt;set_h_hash</a>,
-<a href="../api_c/db_set_h_nelem.html">DB-&gt;set_h_nelem</a>,
-<a href="../api_c/db_set_lorder.html">DB-&gt;set_lorder</a>,
-<a href="../api_c/db_set_malloc.html">DB-&gt;set_malloc</a>,
-<a href="../api_c/db_set_pagesize.html">DB-&gt;set_pagesize</a>,
-<a href="../api_c/db_set_paniccall.html">DB-&gt;set_paniccall</a>,
-<a href="../api_c/db_set_q_extentsize.html">DB-&gt;set_q_extentsize</a>,
-<a href="../api_c/db_set_realloc.html">DB-&gt;set_realloc</a>,
-<a href="../api_c/db_set_re_delim.html">DB-&gt;set_re_delim</a>,
-<a href="../api_c/db_set_re_len.html">DB-&gt;set_re_len</a>,
-<a href="../api_c/db_set_re_pad.html">DB-&gt;set_re_pad</a>,
-<a href="../api_c/db_set_re_source.html">DB-&gt;set_re_source</a>,
-<a href="../api_c/db_stat.html">DB-&gt;stat</a>,
-<a href="../api_c/db_sync.html">DB-&gt;sync</a>,
-<a href="../api_c/db_upgrade.html">DB-&gt;upgrade</a>
-and
-<a href="../api_c/db_verify.html">DB-&gt;verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/db_get_type.html b/bdb/docs/api_c/db_get_type.html
deleted file mode 100644
index a1905c782e4..00000000000
--- a/bdb/docs/api_c/db_get_type.html
+++ /dev/null
@@ -1,81 +0,0 @@
-<!--$Id: db_get_type.so,v 10.10 1999/12/20 08:52:27 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DB-&gt;get_type</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DB-&gt;get_type</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-DBTYPE
-DB-&gt;get_type(DB *db);
-</pre></h3>
-<h1>Description</h1>
-<p>The DB-&gt;get_type function returns the type of the underlying access method
-(and file format). It returns one of DB_BTREE,
-DB_HASH or DB_RECNO. This value may be used to
-determine the type of the database after a return from <a href="../api_c/db_open.html">DB-&gt;open</a>
-with the <b>type</b> argument set to DB_UNKNOWN.
-<h1>See Also</h1>
-<a href="../api_c/db_create.html">db_create</a>,
-<a href="../api_c/db_close.html">DB-&gt;close</a>,
-<a href="../api_c/db_cursor.html">DB-&gt;cursor</a>,
-<a href="../api_c/db_del.html">DB-&gt;del</a>,
-<a href="../api_c/db_err.html">DB-&gt;err</a>,
-<a href="../api_c/db_fd.html">DB-&gt;fd</a>,
-<a href="../api_c/db_get.html">DB-&gt;get</a>,
-<a href="../api_c/db_get_byteswapped.html">DB-&gt;get_byteswapped</a>,
-<a href="../api_c/db_get_type.html">DB-&gt;get_type</a>,
-<a href="../api_c/db_join.html">DB-&gt;join</a>,
-<a href="../api_c/db_key_range.html">DB-&gt;key_range</a>,
-<a href="../api_c/db_open.html">DB-&gt;open</a>,
-<a href="../api_c/db_put.html">DB-&gt;put</a>,
-<a href="../api_c/db_remove.html">DB-&gt;remove</a>,
-<a href="../api_c/db_set_bt_compare.html">DB-&gt;set_bt_compare</a>,
-<a href="../api_c/db_set_bt_minkey.html">DB-&gt;set_bt_minkey</a>,
-<a href="../api_c/db_set_bt_prefix.html">DB-&gt;set_bt_prefix</a>,
-<a href="../api_c/db_set_cachesize.html">DB-&gt;set_cachesize</a>,
-<a href="../api_c/db_set_dup_compare.html">DB-&gt;set_dup_compare</a>,
-<a href="../api_c/db_set_errcall.html">DB-&gt;set_errcall</a>,
-<a href="../api_c/db_set_errfile.html">DB-&gt;set_errfile</a>,
-<a href="../api_c/db_set_errpfx.html">DB-&gt;set_errpfx</a>,
-<a href="../api_c/db_set_flags.html">DB-&gt;set_flags</a>,
-<a href="../api_c/db_set_h_ffactor.html">DB-&gt;set_h_ffactor</a>,
-<a href="../api_c/db_set_h_hash.html">DB-&gt;set_h_hash</a>,
-<a href="../api_c/db_set_h_nelem.html">DB-&gt;set_h_nelem</a>,
-<a href="../api_c/db_set_lorder.html">DB-&gt;set_lorder</a>,
-<a href="../api_c/db_set_malloc.html">DB-&gt;set_malloc</a>,
-<a href="../api_c/db_set_pagesize.html">DB-&gt;set_pagesize</a>,
-<a href="../api_c/db_set_paniccall.html">DB-&gt;set_paniccall</a>,
-<a href="../api_c/db_set_q_extentsize.html">DB-&gt;set_q_extentsize</a>,
-<a href="../api_c/db_set_realloc.html">DB-&gt;set_realloc</a>,
-<a href="../api_c/db_set_re_delim.html">DB-&gt;set_re_delim</a>,
-<a href="../api_c/db_set_re_len.html">DB-&gt;set_re_len</a>,
-<a href="../api_c/db_set_re_pad.html">DB-&gt;set_re_pad</a>,
-<a href="../api_c/db_set_re_source.html">DB-&gt;set_re_source</a>,
-<a href="../api_c/db_stat.html">DB-&gt;stat</a>,
-<a href="../api_c/db_sync.html">DB-&gt;sync</a>,
-<a href="../api_c/db_upgrade.html">DB-&gt;upgrade</a>
-and
-<a href="../api_c/db_verify.html">DB-&gt;verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/db_join.html b/bdb/docs/api_c/db_join.html
deleted file mode 100644
index 13fe95d84d7..00000000000
--- a/bdb/docs/api_c/db_join.html
+++ /dev/null
@@ -1,151 +0,0 @@
-<!--$Id: db_join.so,v 10.30 2000/12/20 15:34:50 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DB-&gt;join</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DB-&gt;join</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DB-&gt;join(DB *primary,
- DBC **curslist, DBC **dbcp, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The DB-&gt;join function creates a specialized cursor for use in performing
-joins on secondary indexes. For information on how to organize your data
-to use this functionality, see <a href="../ref/am/join.html">Logical
-join</a>.
-<p>The <b>primary</b> argument contains the DB handle of the primary
-database, which is keyed by the data values found in entries in the
-<b>curslist</b>.
-<p>The <b>curslist</b> argument contains a NULL terminated array of cursors.
-Each cursor must have been initialized to reference the key on which the
-underlying database should be joined. Typically, this initialization is done
-by a <a href="../api_c/dbc_get.html">DBcursor-&gt;c_get</a> call with the <a href="../api_c/dbc_get.html#DB_SET">DB_SET</a> flag specified. Once the
-cursors have been passed as part of a <b>curslist</b>, they should not
-be accessed or modified until the newly created join cursor has been closed,
-or else inconsistent results may be returned.
-<p>Joined values are retrieved by doing a sequential iteration over the first
-cursor in the <b>curslist</b> argument, and a nested iteration over each
-secondary cursor in the order they are specified in the <b>curslist</b>
-argument. This requires database traversals to search for the current
-datum in all the cursors after the first. For this reason, the best join
-performance normally results from sorting the cursors from the one that
-references the least number of data items to the one that references the
-most. By default, DB-&gt;join does this sort on behalf of its caller.
-<p>The <b>flags</b> parameter must be set to 0 or the following value:
-<p><dl compact>
-<p><dt><a name="DB_JOIN_NOSORT">DB_JOIN_NOSORT</a><dd>Do not sort the cursors based on the number of data items they reference.
-If the data are structured such that cursors with many data items also
-share many common elements, higher performance will result from listing
-those cursors before cursors with fewer data items, that is, a sort order
-other than the default. The DB_JOIN_NOSORT flag permits
-applications to perform join optimization prior to calling DB-&gt;join.
-</dl>
-<p>A newly created cursor is returned in the memory location referenced by
-<b>dbcp</b> and has the standard cursor functions:
-<p><dl compact>
-<p><dt><a href="../api_c/dbc_get.html">DBcursor-&gt;c_get</a><dd>Iterates over the values associated with the keys to which each item in
-<b>curslist</b> has been initialized. Any data value which appears in
-all items specified by the <b>curslist</b> argument is then used as a
-key into the <b>primary</b>, and the key/data pair found in the
-<b>primary</b> is returned.
-<p>The <b>flags</b> parameter must be set to 0 or the following value:
-<p><dl compact>
-<p><dt><a name="DB_JOIN_ITEM">DB_JOIN_ITEM</a><dd>Do not use the data value found in all of the cursors as a lookup
-key for the <b>primary</b>, but simply return it in the key parameter
-instead. The data parameter is left unchanged.
-</dl>
-<p>In addition, the following flag may be set by bitwise inclusively <b>OR</b>'ing it into the
-<b>flags</b> parameter:
-<p><dl compact>
-<p><dt><a name="DB_RMW">DB_RMW</a><dd>Acquire write locks instead of read locks when doing the retrieval.
-Setting this flag may decrease the likelihood of deadlock during a
-read-modify-write cycle by immediately acquiring the write lock during
-the read part of the cycle so that another thread of control acquiring
-a read lock for the same item, in its own read-modify-write cycle, will
-not result in deadlock.
-</dl>
-<p><dt><a href="../api_c/dbc_put.html">DBcursor-&gt;c_put</a><dd>Returns EINVAL.
-<p><dt><a href="../api_c/dbc_del.html">DBcursor-&gt;c_del</a><dd>Returns EINVAL.
-<p><dt><a href="../api_c/dbc_close.html">DBcursor-&gt;c_close</a><dd>Close the returned cursor and release all resources. (Closing the cursors
-in <b>curslist</b> is the responsibility of the caller.)
-</dl>
-<p>For the returned join cursor to be used in a transaction protected manner,
-the cursors listed in <b>curslist</b> must have been created within the
-context of the same transaction.
-<p>The DB-&gt;join function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p>The DB-&gt;join function may fail and return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>The <a href="../api_c/dbc_put.html">DBcursor-&gt;c_put</a> or <a href="../api_c/dbc_del.html">DBcursor-&gt;c_del</a> functions were called.
-</dl>
-<p>The DB-&gt;join function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the DB-&gt;join function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/db_create.html">db_create</a>,
-<a href="../api_c/db_close.html">DB-&gt;close</a>,
-<a href="../api_c/db_cursor.html">DB-&gt;cursor</a>,
-<a href="../api_c/db_del.html">DB-&gt;del</a>,
-<a href="../api_c/db_err.html">DB-&gt;err</a>,
-<a href="../api_c/db_fd.html">DB-&gt;fd</a>,
-<a href="../api_c/db_get.html">DB-&gt;get</a>,
-<a href="../api_c/db_get_byteswapped.html">DB-&gt;get_byteswapped</a>,
-<a href="../api_c/db_get_type.html">DB-&gt;get_type</a>,
-<a href="../api_c/db_join.html">DB-&gt;join</a>,
-<a href="../api_c/db_key_range.html">DB-&gt;key_range</a>,
-<a href="../api_c/db_open.html">DB-&gt;open</a>,
-<a href="../api_c/db_put.html">DB-&gt;put</a>,
-<a href="../api_c/db_remove.html">DB-&gt;remove</a>,
-<a href="../api_c/db_set_bt_compare.html">DB-&gt;set_bt_compare</a>,
-<a href="../api_c/db_set_bt_minkey.html">DB-&gt;set_bt_minkey</a>,
-<a href="../api_c/db_set_bt_prefix.html">DB-&gt;set_bt_prefix</a>,
-<a href="../api_c/db_set_cachesize.html">DB-&gt;set_cachesize</a>,
-<a href="../api_c/db_set_dup_compare.html">DB-&gt;set_dup_compare</a>,
-<a href="../api_c/db_set_errcall.html">DB-&gt;set_errcall</a>,
-<a href="../api_c/db_set_errfile.html">DB-&gt;set_errfile</a>,
-<a href="../api_c/db_set_errpfx.html">DB-&gt;set_errpfx</a>,
-<a href="../api_c/db_set_flags.html">DB-&gt;set_flags</a>,
-<a href="../api_c/db_set_h_ffactor.html">DB-&gt;set_h_ffactor</a>,
-<a href="../api_c/db_set_h_hash.html">DB-&gt;set_h_hash</a>,
-<a href="../api_c/db_set_h_nelem.html">DB-&gt;set_h_nelem</a>,
-<a href="../api_c/db_set_lorder.html">DB-&gt;set_lorder</a>,
-<a href="../api_c/db_set_malloc.html">DB-&gt;set_malloc</a>,
-<a href="../api_c/db_set_pagesize.html">DB-&gt;set_pagesize</a>,
-<a href="../api_c/db_set_paniccall.html">DB-&gt;set_paniccall</a>,
-<a href="../api_c/db_set_q_extentsize.html">DB-&gt;set_q_extentsize</a>,
-<a href="../api_c/db_set_realloc.html">DB-&gt;set_realloc</a>,
-<a href="../api_c/db_set_re_delim.html">DB-&gt;set_re_delim</a>,
-<a href="../api_c/db_set_re_len.html">DB-&gt;set_re_len</a>,
-<a href="../api_c/db_set_re_pad.html">DB-&gt;set_re_pad</a>,
-<a href="../api_c/db_set_re_source.html">DB-&gt;set_re_source</a>,
-<a href="../api_c/db_stat.html">DB-&gt;stat</a>,
-<a href="../api_c/db_sync.html">DB-&gt;sync</a>,
-<a href="../api_c/db_upgrade.html">DB-&gt;upgrade</a>
-and
-<a href="../api_c/db_verify.html">DB-&gt;verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/db_key_range.html b/bdb/docs/api_c/db_key_range.html
deleted file mode 100644
index 1e3c4c91f99..00000000000
--- a/bdb/docs/api_c/db_key_range.html
+++ /dev/null
@@ -1,106 +0,0 @@
-<!--$Id: db_key_range.so,v 10.5 2000/05/01 21:57:43 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DB-&gt;key_range</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DB-&gt;key_range</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DB-&gt;key_range(DB *db, DB_TXN *txnid,
- DBT *key, DB_KEY_RANGE *key_range, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The DB-&gt;key_range function returns an estimate of the proportion of keys
-that are less than, equal to and greater than the specified key. The
-underlying database must be of type Btree.
-<p>The information is returned in the <b>key_range</b> argument, which
-contains three elements of type double, <b>less</b>, <b>equal</b> and
-<b>greater</b>. Values are in the range of 0 to 1, e.g., if the field
-<b>less</b> is 0.05, that indicates that 5% of the keys in the database
-are less than the key argument. The value for <b>equal</b> will be zero
-if there is no matching key and non-zero otherwise.
-<p>If the file is being accessed under transaction protection, the
-<b>txnid</b> parameter is a transaction ID returned from
-<a href="../api_c/txn_begin.html">txn_begin</a>, otherwise, NULL.
-The DB-&gt;key_range function does not retain the locks it acquires for the
-life of the transaction, so estimates may not be repeatable.
-<p>The <b>flags</b> parameter is currently unused, and must be set to 0.
-<p>The DB-&gt;key_range function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p>The DB-&gt;key_range function may fail and return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>DB_LOCK_DEADLOCK<dd>The operation was selected to resolve a deadlock.
-</dl>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>The underlying database was not of type Btree.
-</dl>
-<p>The DB-&gt;key_range function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the DB-&gt;key_range function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/db_create.html">db_create</a>,
-<a href="../api_c/db_close.html">DB-&gt;close</a>,
-<a href="../api_c/db_cursor.html">DB-&gt;cursor</a>,
-<a href="../api_c/db_del.html">DB-&gt;del</a>,
-<a href="../api_c/db_err.html">DB-&gt;err</a>,
-<a href="../api_c/db_fd.html">DB-&gt;fd</a>,
-<a href="../api_c/db_get.html">DB-&gt;get</a>,
-<a href="../api_c/db_get_byteswapped.html">DB-&gt;get_byteswapped</a>,
-<a href="../api_c/db_get_type.html">DB-&gt;get_type</a>,
-<a href="../api_c/db_join.html">DB-&gt;join</a>,
-<a href="../api_c/db_key_range.html">DB-&gt;key_range</a>,
-<a href="../api_c/db_open.html">DB-&gt;open</a>,
-<a href="../api_c/db_put.html">DB-&gt;put</a>,
-<a href="../api_c/db_remove.html">DB-&gt;remove</a>,
-<a href="../api_c/db_set_bt_compare.html">DB-&gt;set_bt_compare</a>,
-<a href="../api_c/db_set_bt_minkey.html">DB-&gt;set_bt_minkey</a>,
-<a href="../api_c/db_set_bt_prefix.html">DB-&gt;set_bt_prefix</a>,
-<a href="../api_c/db_set_cachesize.html">DB-&gt;set_cachesize</a>,
-<a href="../api_c/db_set_dup_compare.html">DB-&gt;set_dup_compare</a>,
-<a href="../api_c/db_set_errcall.html">DB-&gt;set_errcall</a>,
-<a href="../api_c/db_set_errfile.html">DB-&gt;set_errfile</a>,
-<a href="../api_c/db_set_errpfx.html">DB-&gt;set_errpfx</a>,
-<a href="../api_c/db_set_flags.html">DB-&gt;set_flags</a>,
-<a href="../api_c/db_set_h_ffactor.html">DB-&gt;set_h_ffactor</a>,
-<a href="../api_c/db_set_h_hash.html">DB-&gt;set_h_hash</a>,
-<a href="../api_c/db_set_h_nelem.html">DB-&gt;set_h_nelem</a>,
-<a href="../api_c/db_set_lorder.html">DB-&gt;set_lorder</a>,
-<a href="../api_c/db_set_malloc.html">DB-&gt;set_malloc</a>,
-<a href="../api_c/db_set_pagesize.html">DB-&gt;set_pagesize</a>,
-<a href="../api_c/db_set_paniccall.html">DB-&gt;set_paniccall</a>,
-<a href="../api_c/db_set_q_extentsize.html">DB-&gt;set_q_extentsize</a>,
-<a href="../api_c/db_set_realloc.html">DB-&gt;set_realloc</a>,
-<a href="../api_c/db_set_re_delim.html">DB-&gt;set_re_delim</a>,
-<a href="../api_c/db_set_re_len.html">DB-&gt;set_re_len</a>,
-<a href="../api_c/db_set_re_pad.html">DB-&gt;set_re_pad</a>,
-<a href="../api_c/db_set_re_source.html">DB-&gt;set_re_source</a>,
-<a href="../api_c/db_stat.html">DB-&gt;stat</a>,
-<a href="../api_c/db_sync.html">DB-&gt;sync</a>,
-<a href="../api_c/db_upgrade.html">DB-&gt;upgrade</a>
-and
-<a href="../api_c/db_verify.html">DB-&gt;verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/db_lsn.html b/bdb/docs/api_c/db_lsn.html
deleted file mode 100644
index 1fc62e5e688..00000000000
--- a/bdb/docs/api_c/db_lsn.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!--$Id: db_lsn.so,v 10.7 1999/12/20 08:52:27 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DB_LSN</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DB_LSN</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-</pre></h3>
-<h1>Description</h1>
-<p>A <a href="../api_c/db_lsn.html">DB_LSN</a> is a <b>log sequence number</b>, which indicates a
-unique position in the log. The <a href="../api_c/db_lsn.html">DB_LSN</a> structure is completely
-opaque, and no application should ever need to look inside.
-<a href="../api_c/db_lsn.html">DB_LSN</a> structures are used by the logging and memory pool
-subsystems.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/db_open.html b/bdb/docs/api_c/db_open.html
deleted file mode 100644
index afd410223a6..00000000000
--- a/bdb/docs/api_c/db_open.html
+++ /dev/null
@@ -1,182 +0,0 @@
-<!--$Id: db_open.so,v 10.61 2000/10/25 15:24:44 dda Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DB-&gt;open</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DB-&gt;open</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DB-&gt;open(DB *db, const char *file,
- const char *database, DBTYPE type, u_int32_t flags, int mode);
-</pre></h3>
-<h1>Description</h1>
-<p>The currently supported Berkeley DB file formats (or <i>access methods</i>)
-are Btree, Hash, Queue and Recno. The Btree format is a representation
-of a sorted, balanced tree structure. The Hash format is an extensible,
-dynamic hashing scheme. The Queue format supports fast access to
-fixed-length records accessed by sequentially or logical record number.
-The Recno format supports fixed- or variable-length records, accessed
-sequentially or by logical record number, and optionally retrieved from
-a flat text file.
-<p>Storage and retrieval for the Berkeley DB access methods are based on key/data
-pairs, see <a href="../api_c/dbt.html">DBT</a> for more information.
-<p>The DB-&gt;open interface opens the database represented by the
-<b>file</b> and <b>database</b> arguments for both reading and writing.
-The <b>file</b> argument is used as the name of a physical file on disk
-that will be used to back the database. The <b>database</b> argument is
-optional and allows applications to have multiple logical databases in a
-single physical file. While no <b>database</b> argument needs to be
-specified, it is an error to attempt to open a second database in a
-<b>file</b> that was not initially created using a <b>database</b> name.
-In-memory databases never intended to be preserved on disk may
-be created by setting both the <b>file</b> and <b>database</b> arguments
-to NULL. Note that in-memory databases can only ever be shared by
-sharing the single database handle that created them, in circumstances
-where doing so is safe.
-<p>The <b>type</b> argument is of type DBTYPE
-and must be set to one of DB_BTREE, DB_HASH,
-DB_QUEUE, DB_RECNO or DB_UNKNOWN, except
-that databases of type DB_QUEUE are restricted to one per
-<b>file</b>. If <b>type</b> is DB_UNKNOWN, the database must
-already exist and DB-&gt;open will automatically determine its type.
-The <a href="../api_c/db_get_type.html">DB-&gt;get_type</a> function may be used to determine the underlying type of
-databases opened using DB_UNKNOWN.
-<p>The <b>flags</b> and <b>mode</b> arguments specify how files will be opened
-and/or created if they do not already exist.
-<p>The <b>flags</b> value must be set to 0 or by bitwise inclusively <b>OR</b>'ing together one or more
-of the following values.
-<p><dl compact>
-<p><dt><a name="DB_CREATE">DB_CREATE</a><dd>Create any underlying files, as necessary. If the files do not already
-exist and the DB_CREATE flag is not specified, the call will fail.
-<p><dt><a name="DB_EXCL">DB_EXCL</a><dd>Return an error if the file already exists. Underlying filesystem
-primitives are used to implement this flag. For this reason it is only
-applicable to the physical file and cannot be used to test if a database
-in a file already exists.
-<p>The DB_EXCL flag is only meaningful when specified with the
-DB_CREATE flag.
-<p><dt><a name="DB_NOMMAP">DB_NOMMAP</a><dd>Do not map this database into process memory (see the description of the
-<a href="../api_c/env_set_mp_mmapsize.html">DBENV-&gt;set_mp_mmapsize</a> function for further information).
-<p><dt><a name="DB_RDONLY">DB_RDONLY</a><dd>Open the database for reading only. Any attempt to modify items in the
-database will fail regardless of the actual permissions of any underlying
-files.
-<p><dt><a name="DB_THREAD">DB_THREAD</a><dd>Cause the DB handle returned by DB-&gt;open to be
-<i>free-threaded</i>, that is, useable by multiple threads within a
-single address space.
-<p><dt><a name="DB_TRUNCATE">DB_TRUNCATE</a><dd>Physically truncate the underlying file, discarding all previous databases
-it might have held. Underlying filesystem primitives are used to
-implement this flag. For this reason it is only applicable to the
-physical file and cannot be used to discard databases within a file.
-<p>The DB_TRUNCATE flag cannot be transaction protected, and it is
-an error to specify it in a transaction protected environment.
-</dl>
-<p>On UNIX systems, or in IEEE/ANSI Std 1003.1 (POSIX) environments, all files created by the access methods
-are created with mode <b>mode</b> (as described in <b>chmod</b>(2)) and
-modified by the process' umask value at the time of creation (see
-<b>umask</b>(2)). The group ownership of created files is based on
-the system and directory defaults, and is not further specified by Berkeley DB.
-If <b>mode</b> is 0, files are created readable and writeable by both
-owner and group. On Windows systems, the mode argument is ignored.
-<p>Calling DB-&gt;open is a reasonably expensive operation, and
-maintaining a set of open databases will normally be preferable to
-repeatedly open and closing the database for each new query.
-<p>The DB-&gt;open function returns a non-zero error value on failure and 0 on success.
-<h1>Environment Variables</h1>
-<p><dl compact>
-<p><dt>DB_HOME<dd>If the <b>dbenv</b> argument to <a href="../api_c/db_create.html">db_create</a> was initialized using
-<a href="../api_c/env_open.html">DBENV-&gt;open</a> the environment variable <b>DB_HOME</b> may be used
-as the path of the database environment home. Specifically, DB-&gt;open
-is affected by the configuration value DB_DATA_DIR.
-</dl>
-<p><dl compact>
-<p><dt>TMPDIR<dd>If the <b>file</b> and <b>dbenv</b> arguments to DB-&gt;open are
-NULL, the environment variable <b>TMPDIR</b> may be used as a
-directory in which to create a temporary backing file.
-</dl>
-<h1>Errors</h1>
-<p>The DB-&gt;open function may fail and return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt><a name="DB_OLD_VERSION">DB_OLD_VERSION</a><dd>The database cannot be opened without being first upgraded.
-<p><dt>EEXIST<dd>DB_CREATE and DB_EXCL were specified and the file exists.
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified (e.g., unknown database
-type, page size, hash function, pad byte, byte order) or a flag value
-or parameter that is incompatible with the specified database.
-<p>
-The <a href="../api_c/env_open.html#DB_THREAD">DB_THREAD</a> flag was specified and spinlocks are not
-implemented for this architecture.
-<p>The <a href="../api_c/env_open.html#DB_THREAD">DB_THREAD</a> flag was specified to DB-&gt;open, but was not
-specified to the <a href="../api_c/env_open.html">DBENV-&gt;open</a> call for the environment in which the
-DB handle was created.
-<p>A <b>re_source</b> file was specified with either the <a href="../api_c/env_open.html#DB_THREAD">DB_THREAD</a>
-flag or the provided database environment supports transaction
-processing.
-<p><dt>ENOENT<dd>A non-existent <b>re_source</b> file was specified.
-</dl>
-<p>The DB-&gt;open function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the DB-&gt;open function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/db_create.html">db_create</a>,
-<a href="../api_c/db_close.html">DB-&gt;close</a>,
-<a href="../api_c/db_cursor.html">DB-&gt;cursor</a>,
-<a href="../api_c/db_del.html">DB-&gt;del</a>,
-<a href="../api_c/db_err.html">DB-&gt;err</a>,
-<a href="../api_c/db_fd.html">DB-&gt;fd</a>,
-<a href="../api_c/db_get.html">DB-&gt;get</a>,
-<a href="../api_c/db_get_byteswapped.html">DB-&gt;get_byteswapped</a>,
-<a href="../api_c/db_get_type.html">DB-&gt;get_type</a>,
-<a href="../api_c/db_join.html">DB-&gt;join</a>,
-<a href="../api_c/db_key_range.html">DB-&gt;key_range</a>,
-<a href="../api_c/db_open.html">DB-&gt;open</a>,
-<a href="../api_c/db_put.html">DB-&gt;put</a>,
-<a href="../api_c/db_remove.html">DB-&gt;remove</a>,
-<a href="../api_c/db_set_bt_compare.html">DB-&gt;set_bt_compare</a>,
-<a href="../api_c/db_set_bt_minkey.html">DB-&gt;set_bt_minkey</a>,
-<a href="../api_c/db_set_bt_prefix.html">DB-&gt;set_bt_prefix</a>,
-<a href="../api_c/db_set_cachesize.html">DB-&gt;set_cachesize</a>,
-<a href="../api_c/db_set_dup_compare.html">DB-&gt;set_dup_compare</a>,
-<a href="../api_c/db_set_errcall.html">DB-&gt;set_errcall</a>,
-<a href="../api_c/db_set_errfile.html">DB-&gt;set_errfile</a>,
-<a href="../api_c/db_set_errpfx.html">DB-&gt;set_errpfx</a>,
-<a href="../api_c/db_set_flags.html">DB-&gt;set_flags</a>,
-<a href="../api_c/db_set_h_ffactor.html">DB-&gt;set_h_ffactor</a>,
-<a href="../api_c/db_set_h_hash.html">DB-&gt;set_h_hash</a>,
-<a href="../api_c/db_set_h_nelem.html">DB-&gt;set_h_nelem</a>,
-<a href="../api_c/db_set_lorder.html">DB-&gt;set_lorder</a>,
-<a href="../api_c/db_set_malloc.html">DB-&gt;set_malloc</a>,
-<a href="../api_c/db_set_pagesize.html">DB-&gt;set_pagesize</a>,
-<a href="../api_c/db_set_paniccall.html">DB-&gt;set_paniccall</a>,
-<a href="../api_c/db_set_q_extentsize.html">DB-&gt;set_q_extentsize</a>,
-<a href="../api_c/db_set_realloc.html">DB-&gt;set_realloc</a>,
-<a href="../api_c/db_set_re_delim.html">DB-&gt;set_re_delim</a>,
-<a href="../api_c/db_set_re_len.html">DB-&gt;set_re_len</a>,
-<a href="../api_c/db_set_re_pad.html">DB-&gt;set_re_pad</a>,
-<a href="../api_c/db_set_re_source.html">DB-&gt;set_re_source</a>,
-<a href="../api_c/db_stat.html">DB-&gt;stat</a>,
-<a href="../api_c/db_sync.html">DB-&gt;sync</a>,
-<a href="../api_c/db_upgrade.html">DB-&gt;upgrade</a>
-and
-<a href="../api_c/db_verify.html">DB-&gt;verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/db_put.html b/bdb/docs/api_c/db_put.html
deleted file mode 100644
index 85c63b7cc7e..00000000000
--- a/bdb/docs/api_c/db_put.html
+++ /dev/null
@@ -1,136 +0,0 @@
-<!--$Id: db_put.so,v 10.34 2000/09/16 22:27:56 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DB-&gt;put</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DB-&gt;put</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DB-&gt;put(DB *db,
- DB_TXN *txnid, DBT *key, DBT *data, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The DB-&gt;put function stores key/data pairs in the database. The default
-behavior of the DB-&gt;put function is to enter the new key/data
-pair, replacing any previously existing key if duplicates are disallowed,
-or adding a duplicate data item if duplicates are allowed. If the database
-supports duplicates, the DB-&gt;put function adds the new data value at the
-end of the duplicate set. If the database supports sorted duplicates,
-the new data value is inserted at the correct sorted location.
-<p>If the file is being accessed under transaction protection, the
-<b>txnid</b> parameter is a transaction ID returned from
-<a href="../api_c/txn_begin.html">txn_begin</a>, otherwise, NULL.
-<p>The <b>flags</b> parameter must be set to 0 or one of the following
-values:
-<p><dl compact>
-<p><dt><a name="DB_APPEND">DB_APPEND</a><dd>Append the key/data pair to the end of the database. For the
-DB_APPEND flag to be specified, the underlying database must be
-a Queue or Recno database. The record number allocated to the record is
-returned in the specified <b>key</b>.
-<p>There is a minor behavioral difference between the Recno and Queue access
-methods for the DB_APPEND flag. If a transaction enclosing a
-DB-&gt;put operation with the DB_APPEND flag aborts, the
-record number may be decremented (and later re-allocated by a subsequent
-DB_APPEND operation) by the Recno access method, but will not be
-decremented or re-allocated by the Queue access method.
-<p><dt><a name="DB_NODUPDATA">DB_NODUPDATA</a><dd>In the case of the Btree and Hash access methods, enter the new key/data
-pair only if it does not already appear in the database. If the
-key/data pair already appears in the database, <a href="../api_c/dbc_put.html#DB_KEYEXIST">DB_KEYEXIST</a> is
-returned. The DB_NODUPDATA flag may only be specified if the
-underlying database has been configured to support sorted duplicates.
-<p>The DB_NODUPDATA flag may not be specified to the Queue or Recno
-access methods.
-<p><dt><a name="DB_NOOVERWRITE">DB_NOOVERWRITE</a><dd>Enter the new key/data pair only if the key does not already appear in
-the database. If the key already appears in the database,
-<a href="../api_c/dbc_put.html#DB_KEYEXIST">DB_KEYEXIST</a> is returned. Even if the database allows duplicates,
-a call to DB-&gt;put with the DB_NOOVERWRITE flag set will
-fail if the key already exists in the database.
-</dl>
-<p>Otherwise, the DB-&gt;put function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p>The DB-&gt;put function may fail and return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>DB_LOCK_DEADLOCK<dd>The operation was selected to resolve a deadlock.
-</dl>
-<p><dl compact>
-<p><dt>EACCES<dd>An attempt was made to modify a read-only database.
-</dl>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>A record number of 0 was specified.
-<p>An attempt was made to add a record to a fixed-length database that was too
-large to fit.
-<p>An attempt was made to do a partial put.
-</dl>
-<p><dl compact>
-<p><dt>ENOSPC<dd>A btree exceeded the maximum btree depth (255).
-</dl>
-<p>The DB-&gt;put function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the DB-&gt;put function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/db_create.html">db_create</a>,
-<a href="../api_c/db_close.html">DB-&gt;close</a>,
-<a href="../api_c/db_cursor.html">DB-&gt;cursor</a>,
-<a href="../api_c/db_del.html">DB-&gt;del</a>,
-<a href="../api_c/db_err.html">DB-&gt;err</a>,
-<a href="../api_c/db_fd.html">DB-&gt;fd</a>,
-<a href="../api_c/db_get.html">DB-&gt;get</a>,
-<a href="../api_c/db_get_byteswapped.html">DB-&gt;get_byteswapped</a>,
-<a href="../api_c/db_get_type.html">DB-&gt;get_type</a>,
-<a href="../api_c/db_join.html">DB-&gt;join</a>,
-<a href="../api_c/db_key_range.html">DB-&gt;key_range</a>,
-<a href="../api_c/db_open.html">DB-&gt;open</a>,
-<a href="../api_c/db_put.html">DB-&gt;put</a>,
-<a href="../api_c/db_remove.html">DB-&gt;remove</a>,
-<a href="../api_c/db_set_bt_compare.html">DB-&gt;set_bt_compare</a>,
-<a href="../api_c/db_set_bt_minkey.html">DB-&gt;set_bt_minkey</a>,
-<a href="../api_c/db_set_bt_prefix.html">DB-&gt;set_bt_prefix</a>,
-<a href="../api_c/db_set_cachesize.html">DB-&gt;set_cachesize</a>,
-<a href="../api_c/db_set_dup_compare.html">DB-&gt;set_dup_compare</a>,
-<a href="../api_c/db_set_errcall.html">DB-&gt;set_errcall</a>,
-<a href="../api_c/db_set_errfile.html">DB-&gt;set_errfile</a>,
-<a href="../api_c/db_set_errpfx.html">DB-&gt;set_errpfx</a>,
-<a href="../api_c/db_set_flags.html">DB-&gt;set_flags</a>,
-<a href="../api_c/db_set_h_ffactor.html">DB-&gt;set_h_ffactor</a>,
-<a href="../api_c/db_set_h_hash.html">DB-&gt;set_h_hash</a>,
-<a href="../api_c/db_set_h_nelem.html">DB-&gt;set_h_nelem</a>,
-<a href="../api_c/db_set_lorder.html">DB-&gt;set_lorder</a>,
-<a href="../api_c/db_set_malloc.html">DB-&gt;set_malloc</a>,
-<a href="../api_c/db_set_pagesize.html">DB-&gt;set_pagesize</a>,
-<a href="../api_c/db_set_paniccall.html">DB-&gt;set_paniccall</a>,
-<a href="../api_c/db_set_q_extentsize.html">DB-&gt;set_q_extentsize</a>,
-<a href="../api_c/db_set_realloc.html">DB-&gt;set_realloc</a>,
-<a href="../api_c/db_set_re_delim.html">DB-&gt;set_re_delim</a>,
-<a href="../api_c/db_set_re_len.html">DB-&gt;set_re_len</a>,
-<a href="../api_c/db_set_re_pad.html">DB-&gt;set_re_pad</a>,
-<a href="../api_c/db_set_re_source.html">DB-&gt;set_re_source</a>,
-<a href="../api_c/db_stat.html">DB-&gt;stat</a>,
-<a href="../api_c/db_sync.html">DB-&gt;sync</a>,
-<a href="../api_c/db_upgrade.html">DB-&gt;upgrade</a>
-and
-<a href="../api_c/db_verify.html">DB-&gt;verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/db_remove.html b/bdb/docs/api_c/db_remove.html
deleted file mode 100644
index e8dae864538..00000000000
--- a/bdb/docs/api_c/db_remove.html
+++ /dev/null
@@ -1,108 +0,0 @@
-<!--$Id: db_remove.so,v 10.20 2000/10/25 15:24:44 dda Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DB-&gt;remove</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DB-&gt;remove</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DB-&gt;remove(DB *db,
- const char *file, const char *database, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The DB-&gt;remove interface removes the database specified by the
-<b>file</b> and <b>database</b> arguments. If no <b>database</b> is
-specified, the physical file represented by <b>file</b> is removed,
-incidentally removing all databases that it contained.
-<p>If a physical file is being removed and logging is currently enabled in
-the database environment, no database in the file may be open when the
-DB-&gt;remove function is called. Otherwise, no reference count of database
-use is maintained by Berkeley DB. Applications should not remove databases that
-are currently in use. In particular, some architectures do not permit
-the removal of files with open handles. On these architectures, attempts
-to remove databases that are currently in use will fail.
-<p>The <b>flags</b> parameter is currently unused, and must be set to 0.
-<p>Once DB-&gt;remove has been called, regardless of its return, the
-DB handle may not be accessed again.
-<p>The DB-&gt;remove function returns a non-zero error value on failure and 0 on success.
-<h1>Environment Variables</h1>
-<p><dl compact>
-<p><dt>DB_HOME<dd>If the <b>dbenv</b> argument to <a href="../api_c/db_create.html">db_create</a> was initialized using
-<a href="../api_c/env_open.html">DBENV-&gt;open</a> the environment variable <b>DB_HOME</b> may be used
-as the path of the database environment home. Specifically, DB-&gt;remove
-is affected by the configuration value DB_DATA_DIR.
-</dl>
-<h1>Errors</h1>
-<p>The DB-&gt;remove function may fail and return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>A database in the file is currently open.
-</dl>
-<p>The DB-&gt;remove function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the DB-&gt;remove function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/db_create.html">db_create</a>,
-<a href="../api_c/db_close.html">DB-&gt;close</a>,
-<a href="../api_c/db_cursor.html">DB-&gt;cursor</a>,
-<a href="../api_c/db_del.html">DB-&gt;del</a>,
-<a href="../api_c/db_err.html">DB-&gt;err</a>,
-<a href="../api_c/db_fd.html">DB-&gt;fd</a>,
-<a href="../api_c/db_get.html">DB-&gt;get</a>,
-<a href="../api_c/db_get_byteswapped.html">DB-&gt;get_byteswapped</a>,
-<a href="../api_c/db_get_type.html">DB-&gt;get_type</a>,
-<a href="../api_c/db_join.html">DB-&gt;join</a>,
-<a href="../api_c/db_key_range.html">DB-&gt;key_range</a>,
-<a href="../api_c/db_open.html">DB-&gt;open</a>,
-<a href="../api_c/db_put.html">DB-&gt;put</a>,
-<a href="../api_c/db_remove.html">DB-&gt;remove</a>,
-<a href="../api_c/db_set_bt_compare.html">DB-&gt;set_bt_compare</a>,
-<a href="../api_c/db_set_bt_minkey.html">DB-&gt;set_bt_minkey</a>,
-<a href="../api_c/db_set_bt_prefix.html">DB-&gt;set_bt_prefix</a>,
-<a href="../api_c/db_set_cachesize.html">DB-&gt;set_cachesize</a>,
-<a href="../api_c/db_set_dup_compare.html">DB-&gt;set_dup_compare</a>,
-<a href="../api_c/db_set_errcall.html">DB-&gt;set_errcall</a>,
-<a href="../api_c/db_set_errfile.html">DB-&gt;set_errfile</a>,
-<a href="../api_c/db_set_errpfx.html">DB-&gt;set_errpfx</a>,
-<a href="../api_c/db_set_flags.html">DB-&gt;set_flags</a>,
-<a href="../api_c/db_set_h_ffactor.html">DB-&gt;set_h_ffactor</a>,
-<a href="../api_c/db_set_h_hash.html">DB-&gt;set_h_hash</a>,
-<a href="../api_c/db_set_h_nelem.html">DB-&gt;set_h_nelem</a>,
-<a href="../api_c/db_set_lorder.html">DB-&gt;set_lorder</a>,
-<a href="../api_c/db_set_malloc.html">DB-&gt;set_malloc</a>,
-<a href="../api_c/db_set_pagesize.html">DB-&gt;set_pagesize</a>,
-<a href="../api_c/db_set_paniccall.html">DB-&gt;set_paniccall</a>,
-<a href="../api_c/db_set_q_extentsize.html">DB-&gt;set_q_extentsize</a>,
-<a href="../api_c/db_set_realloc.html">DB-&gt;set_realloc</a>,
-<a href="../api_c/db_set_re_delim.html">DB-&gt;set_re_delim</a>,
-<a href="../api_c/db_set_re_len.html">DB-&gt;set_re_len</a>,
-<a href="../api_c/db_set_re_pad.html">DB-&gt;set_re_pad</a>,
-<a href="../api_c/db_set_re_source.html">DB-&gt;set_re_source</a>,
-<a href="../api_c/db_stat.html">DB-&gt;stat</a>,
-<a href="../api_c/db_sync.html">DB-&gt;sync</a>,
-<a href="../api_c/db_upgrade.html">DB-&gt;upgrade</a>
-and
-<a href="../api_c/db_verify.html">DB-&gt;verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/db_rename.html b/bdb/docs/api_c/db_rename.html
deleted file mode 100644
index ff90836c6b2..00000000000
--- a/bdb/docs/api_c/db_rename.html
+++ /dev/null
@@ -1,109 +0,0 @@
-<!--$Id: db_rename.so,v 10.7 2000/10/25 15:24:44 dda Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DB-&gt;rename</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DB-&gt;rename</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DB-&gt;rename(DB *db, const char *file,
- const char *database, const char *newname, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The DB-&gt;rename interface renames the database specified by the
-<b>file</b> and <b>database</b> arguments to <b>newname</b>. If no
-<b>database</b> is specified, the physical file represented by
-<b>file</b> is renamed, incidentally renaming all databases that it
-contained.
-<p>If a physical file is being renamed and logging is currently enabled in
-the database environment, no database in the file may be open when the
-DB-&gt;rename function is called. Otherwise, no reference count of database
-use is maintained by Berkeley DB. Applications should not rename databases that
-are currently in use. In particular, some architectures do not permit
-renaming files with open handles. On these architectures, attempts to
-rename databases that are currently in use will fail.
-<p>The <b>flags</b> parameter is currently unused, and must be set to 0.
-<p>Once DB-&gt;rename has been called, regardless of its return, the
-DB handle may not be accessed again.
-<p>The DB-&gt;rename function returns a non-zero error value on failure and 0 on success.
-<h1>Environment Variables</h1>
-<p><dl compact>
-<p><dt>DB_HOME<dd>If the <b>dbenv</b> argument to <a href="../api_c/db_create.html">db_create</a> was initialized using
-<a href="../api_c/env_open.html">DBENV-&gt;open</a> the environment variable <b>DB_HOME</b> may be used
-as the path of the database environment home. Specifically, DB-&gt;rename
-is affected by the configuration value DB_DATA_DIR.
-</dl>
-<h1>Errors</h1>
-<p>The DB-&gt;rename function may fail and return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>A database in the file is currently open.
-</dl>
-<p>The DB-&gt;rename function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the DB-&gt;rename function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/db_create.html">db_create</a>,
-<a href="../api_c/db_close.html">DB-&gt;close</a>,
-<a href="../api_c/db_cursor.html">DB-&gt;cursor</a>,
-<a href="../api_c/db_del.html">DB-&gt;del</a>,
-<a href="../api_c/db_err.html">DB-&gt;err</a>,
-<a href="../api_c/db_fd.html">DB-&gt;fd</a>,
-<a href="../api_c/db_get.html">DB-&gt;get</a>,
-<a href="../api_c/db_get_byteswapped.html">DB-&gt;get_byteswapped</a>,
-<a href="../api_c/db_get_type.html">DB-&gt;get_type</a>,
-<a href="../api_c/db_join.html">DB-&gt;join</a>,
-<a href="../api_c/db_key_range.html">DB-&gt;key_range</a>,
-<a href="../api_c/db_open.html">DB-&gt;open</a>,
-<a href="../api_c/db_put.html">DB-&gt;put</a>,
-<a href="../api_c/db_remove.html">DB-&gt;remove</a>,
-<a href="../api_c/db_set_bt_compare.html">DB-&gt;set_bt_compare</a>,
-<a href="../api_c/db_set_bt_minkey.html">DB-&gt;set_bt_minkey</a>,
-<a href="../api_c/db_set_bt_prefix.html">DB-&gt;set_bt_prefix</a>,
-<a href="../api_c/db_set_cachesize.html">DB-&gt;set_cachesize</a>,
-<a href="../api_c/db_set_dup_compare.html">DB-&gt;set_dup_compare</a>,
-<a href="../api_c/db_set_errcall.html">DB-&gt;set_errcall</a>,
-<a href="../api_c/db_set_errfile.html">DB-&gt;set_errfile</a>,
-<a href="../api_c/db_set_errpfx.html">DB-&gt;set_errpfx</a>,
-<a href="../api_c/db_set_flags.html">DB-&gt;set_flags</a>,
-<a href="../api_c/db_set_h_ffactor.html">DB-&gt;set_h_ffactor</a>,
-<a href="../api_c/db_set_h_hash.html">DB-&gt;set_h_hash</a>,
-<a href="../api_c/db_set_h_nelem.html">DB-&gt;set_h_nelem</a>,
-<a href="../api_c/db_set_lorder.html">DB-&gt;set_lorder</a>,
-<a href="../api_c/db_set_malloc.html">DB-&gt;set_malloc</a>,
-<a href="../api_c/db_set_pagesize.html">DB-&gt;set_pagesize</a>,
-<a href="../api_c/db_set_paniccall.html">DB-&gt;set_paniccall</a>,
-<a href="../api_c/db_set_q_extentsize.html">DB-&gt;set_q_extentsize</a>,
-<a href="../api_c/db_set_realloc.html">DB-&gt;set_realloc</a>,
-<a href="../api_c/db_set_re_delim.html">DB-&gt;set_re_delim</a>,
-<a href="../api_c/db_set_re_len.html">DB-&gt;set_re_len</a>,
-<a href="../api_c/db_set_re_pad.html">DB-&gt;set_re_pad</a>,
-<a href="../api_c/db_set_re_source.html">DB-&gt;set_re_source</a>,
-<a href="../api_c/db_stat.html">DB-&gt;stat</a>,
-<a href="../api_c/db_sync.html">DB-&gt;sync</a>,
-<a href="../api_c/db_upgrade.html">DB-&gt;upgrade</a>
-and
-<a href="../api_c/db_verify.html">DB-&gt;verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/db_set_append_recno.html b/bdb/docs/api_c/db_set_append_recno.html
deleted file mode 100644
index 4b90190ffbd..00000000000
--- a/bdb/docs/api_c/db_set_append_recno.html
+++ /dev/null
@@ -1,66 +0,0 @@
-<!--$Id: db_set_append_recno.so,v 1.3 2000/07/18 16:19:44 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DB-&gt;set_append_recno</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DB-&gt;set_append_recno</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DB-&gt;set_append_recno(DB *,
- int (*db_append_recno_fcn)(DB *dbp, DBT *data, db_recno_t recno));
-</pre></h3>
-<h1>Description</h1>
-<p>When using the <a href="../api_c/db_put.html#DB_APPEND">DB_APPEND</a> option of the <a href="../api_c/db_put.html">DB-&gt;put</a> method,
-it may be useful to modify the stored data based on the generated key.
-If a callback function is specified using the
-DB-&gt;set_append_recno function, it will be called after the record number
-has been selected but before the data has been stored.
-The callback function must return 0 on success and <b>errno</b> or
-a value outside of the Berkeley DB error name space on failure.
-<p>The called function must take three arguments: a reference to the
-enclosing database handle, the data <a href="../api_c/dbt.html">DBT</a> to be stored and the
-selected record number. The called function may then modify the data
-<a href="../api_c/dbt.html">DBT</a>.
-<p>The DB-&gt;set_append_recno interface may only be used to configure Berkeley DB before
-the <a href="../api_c/db_open.html">DB-&gt;open</a> interface is called.
-<p>The DB-&gt;set_append_recno function returns a non-zero error value on failure and 0 on success.
-<h1>See Also</h1>
-<a href="../api_c/env_close.html">DBENV-&gt;close</a>,
-<a href="../api_c/env_create.html">db_env_create</a>,
-<a href="../api_c/env_open.html">DBENV-&gt;open</a>,
-<a href="../api_c/env_remove.html">DBENV-&gt;remove</a>,
-<a href="../api_c/db_err.html">DBENV-&gt;err</a>,
-<a href="../api_c/env_strerror.html">db_strerror</a>,
-<a href="../api_c/env_version.html">db_version</a>,
-<a href="../api_c/env_set_cachesize.html">DBENV-&gt;set_cachesize</a>,
-<a href="../api_c/env_set_errcall.html">DBENV-&gt;set_errcall</a>,
-<a href="../api_c/env_set_errfile.html">DBENV-&gt;set_errfile</a>,
-<a href="../api_c/env_set_errpfx.html">DBENV-&gt;set_errpfx</a>,
-<a href="../api_c/env_set_flags.html">DBENV-&gt;set_flags</a>,
-<a href="../api_c/env_set_mutexlocks.html">DBENV-&gt;set_mutexlocks</a>,
-<a href="../api_c/env_set_paniccall.html">DBENV-&gt;set_paniccall</a>,
-and
-<a href="../api_c/env_set_verbose.html">DBENV-&gt;set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/db_set_bt_compare.html b/bdb/docs/api_c/db_set_bt_compare.html
deleted file mode 100644
index bf38ee51d94..00000000000
--- a/bdb/docs/api_c/db_set_bt_compare.html
+++ /dev/null
@@ -1,105 +0,0 @@
-<!--$Id: db_set_bt_compare.so,v 10.24 2000/10/26 15:20:40 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DB-&gt;set_bt_compare</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DB-&gt;set_bt_compare</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DB-&gt;set_bt_compare(DB *db,
- int (*bt_compare_fcn)(DB *, const DBT *, const DBT *));
-</pre></h3>
-<h1>Description</h1>
-<p>Set the Btree key comparison function. The comparison function is
-called when it is necessary to compare a key specified by the
-application with a key currently stored in the tree. The first argument
-to the comparison function is the <a href="../api_c/dbt.html">DBT</a> representing the
-application supplied key, the second is the current tree's key.
-<p>The comparison function must return an integer value less than, equal
-to, or greater than zero if the first key argument is considered to be
-respectively less than, equal to, or greater than the second key
-argument. In addition, the comparison function must cause the keys in
-the database to be <i>well-ordered</i>. The comparison function
-must correctly handle any key values used by the application (possibly
-including zero-length keys). In addition, when Btree key prefix
-comparison is being performed (see <a href="../api_c/db_set_bt_prefix.html">DB-&gt;set_bt_prefix</a> for more
-information), the comparison routine may be passed a prefix of any
-database key. The <b>data</b> and <b>size</b> fields of the
-<a href="../api_c/dbt.html">DBT</a> are the only fields that may be used for the purposes of
-this comparison.
-<p>If no comparison function is specified, the keys are compared lexically,
-with shorter keys collating before longer keys. The same comparison
-method must be used each time a particular Btree is opened.
-<p>The DB-&gt;set_bt_compare interface may only be used to configure Berkeley DB before
-the <a href="../api_c/db_open.html">DB-&gt;open</a> interface is called.
-<p>The DB-&gt;set_bt_compare function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_c/db_open.html">DB-&gt;open</a> was called.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/db_create.html">db_create</a>,
-<a href="../api_c/db_close.html">DB-&gt;close</a>,
-<a href="../api_c/db_cursor.html">DB-&gt;cursor</a>,
-<a href="../api_c/db_del.html">DB-&gt;del</a>,
-<a href="../api_c/db_err.html">DB-&gt;err</a>,
-<a href="../api_c/db_fd.html">DB-&gt;fd</a>,
-<a href="../api_c/db_get.html">DB-&gt;get</a>,
-<a href="../api_c/db_get_byteswapped.html">DB-&gt;get_byteswapped</a>,
-<a href="../api_c/db_get_type.html">DB-&gt;get_type</a>,
-<a href="../api_c/db_join.html">DB-&gt;join</a>,
-<a href="../api_c/db_key_range.html">DB-&gt;key_range</a>,
-<a href="../api_c/db_open.html">DB-&gt;open</a>,
-<a href="../api_c/db_put.html">DB-&gt;put</a>,
-<a href="../api_c/db_remove.html">DB-&gt;remove</a>,
-<a href="../api_c/db_set_bt_compare.html">DB-&gt;set_bt_compare</a>,
-<a href="../api_c/db_set_bt_minkey.html">DB-&gt;set_bt_minkey</a>,
-<a href="../api_c/db_set_bt_prefix.html">DB-&gt;set_bt_prefix</a>,
-<a href="../api_c/db_set_cachesize.html">DB-&gt;set_cachesize</a>,
-<a href="../api_c/db_set_dup_compare.html">DB-&gt;set_dup_compare</a>,
-<a href="../api_c/db_set_errcall.html">DB-&gt;set_errcall</a>,
-<a href="../api_c/db_set_errfile.html">DB-&gt;set_errfile</a>,
-<a href="../api_c/db_set_errpfx.html">DB-&gt;set_errpfx</a>,
-<a href="../api_c/db_set_flags.html">DB-&gt;set_flags</a>,
-<a href="../api_c/db_set_h_ffactor.html">DB-&gt;set_h_ffactor</a>,
-<a href="../api_c/db_set_h_hash.html">DB-&gt;set_h_hash</a>,
-<a href="../api_c/db_set_h_nelem.html">DB-&gt;set_h_nelem</a>,
-<a href="../api_c/db_set_lorder.html">DB-&gt;set_lorder</a>,
-<a href="../api_c/db_set_malloc.html">DB-&gt;set_malloc</a>,
-<a href="../api_c/db_set_pagesize.html">DB-&gt;set_pagesize</a>,
-<a href="../api_c/db_set_paniccall.html">DB-&gt;set_paniccall</a>,
-<a href="../api_c/db_set_q_extentsize.html">DB-&gt;set_q_extentsize</a>,
-<a href="../api_c/db_set_realloc.html">DB-&gt;set_realloc</a>,
-<a href="../api_c/db_set_re_delim.html">DB-&gt;set_re_delim</a>,
-<a href="../api_c/db_set_re_len.html">DB-&gt;set_re_len</a>,
-<a href="../api_c/db_set_re_pad.html">DB-&gt;set_re_pad</a>,
-<a href="../api_c/db_set_re_source.html">DB-&gt;set_re_source</a>,
-<a href="../api_c/db_stat.html">DB-&gt;stat</a>,
-<a href="../api_c/db_sync.html">DB-&gt;sync</a>,
-<a href="../api_c/db_upgrade.html">DB-&gt;upgrade</a>
-and
-<a href="../api_c/db_verify.html">DB-&gt;verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/db_set_bt_minkey.html b/bdb/docs/api_c/db_set_bt_minkey.html
deleted file mode 100644
index c36f3637ba5..00000000000
--- a/bdb/docs/api_c/db_set_bt_minkey.html
+++ /dev/null
@@ -1,92 +0,0 @@
-<!--$Id: db_set_bt_minkey.so,v 10.14 2000/05/01 21:57:43 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DB-&gt;set_bt_minkey</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DB-&gt;set_bt_minkey</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DB-&gt;set_bt_minkey(DB *db, u_int32_t bt_minkey);
-</pre></h3>
-<h1>Description</h1>
-<p>Set the minimum number of keys that will be stored on any single
-Btree page.
-<p>This value is used to determine which keys will be stored on overflow
-pages, i.e. if a key or data item is larger than the underlying database
-page size divided by the <b>bt_minkey</b> value, it will be stored on
-overflow pages instead of within the page itself. The <b>bt_minkey</b>
-value specified must be at least 2; if <b>bt_minkey</b> is not explicitly
-set, a value of 2 is used.
-<p>The DB-&gt;set_bt_minkey interface may only be used to configure Berkeley DB before
-the <a href="../api_c/db_open.html">DB-&gt;open</a> interface is called.
-<p>The DB-&gt;set_bt_minkey function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_c/db_open.html">DB-&gt;open</a> was called.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/db_create.html">db_create</a>,
-<a href="../api_c/db_close.html">DB-&gt;close</a>,
-<a href="../api_c/db_cursor.html">DB-&gt;cursor</a>,
-<a href="../api_c/db_del.html">DB-&gt;del</a>,
-<a href="../api_c/db_err.html">DB-&gt;err</a>,
-<a href="../api_c/db_fd.html">DB-&gt;fd</a>,
-<a href="../api_c/db_get.html">DB-&gt;get</a>,
-<a href="../api_c/db_get_byteswapped.html">DB-&gt;get_byteswapped</a>,
-<a href="../api_c/db_get_type.html">DB-&gt;get_type</a>,
-<a href="../api_c/db_join.html">DB-&gt;join</a>,
-<a href="../api_c/db_key_range.html">DB-&gt;key_range</a>,
-<a href="../api_c/db_open.html">DB-&gt;open</a>,
-<a href="../api_c/db_put.html">DB-&gt;put</a>,
-<a href="../api_c/db_remove.html">DB-&gt;remove</a>,
-<a href="../api_c/db_set_bt_compare.html">DB-&gt;set_bt_compare</a>,
-<a href="../api_c/db_set_bt_minkey.html">DB-&gt;set_bt_minkey</a>,
-<a href="../api_c/db_set_bt_prefix.html">DB-&gt;set_bt_prefix</a>,
-<a href="../api_c/db_set_cachesize.html">DB-&gt;set_cachesize</a>,
-<a href="../api_c/db_set_dup_compare.html">DB-&gt;set_dup_compare</a>,
-<a href="../api_c/db_set_errcall.html">DB-&gt;set_errcall</a>,
-<a href="../api_c/db_set_errfile.html">DB-&gt;set_errfile</a>,
-<a href="../api_c/db_set_errpfx.html">DB-&gt;set_errpfx</a>,
-<a href="../api_c/db_set_flags.html">DB-&gt;set_flags</a>,
-<a href="../api_c/db_set_h_ffactor.html">DB-&gt;set_h_ffactor</a>,
-<a href="../api_c/db_set_h_hash.html">DB-&gt;set_h_hash</a>,
-<a href="../api_c/db_set_h_nelem.html">DB-&gt;set_h_nelem</a>,
-<a href="../api_c/db_set_lorder.html">DB-&gt;set_lorder</a>,
-<a href="../api_c/db_set_malloc.html">DB-&gt;set_malloc</a>,
-<a href="../api_c/db_set_pagesize.html">DB-&gt;set_pagesize</a>,
-<a href="../api_c/db_set_paniccall.html">DB-&gt;set_paniccall</a>,
-<a href="../api_c/db_set_q_extentsize.html">DB-&gt;set_q_extentsize</a>,
-<a href="../api_c/db_set_realloc.html">DB-&gt;set_realloc</a>,
-<a href="../api_c/db_set_re_delim.html">DB-&gt;set_re_delim</a>,
-<a href="../api_c/db_set_re_len.html">DB-&gt;set_re_len</a>,
-<a href="../api_c/db_set_re_pad.html">DB-&gt;set_re_pad</a>,
-<a href="../api_c/db_set_re_source.html">DB-&gt;set_re_source</a>,
-<a href="../api_c/db_stat.html">DB-&gt;stat</a>,
-<a href="../api_c/db_sync.html">DB-&gt;sync</a>,
-<a href="../api_c/db_upgrade.html">DB-&gt;upgrade</a>
-and
-<a href="../api_c/db_verify.html">DB-&gt;verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/db_set_bt_prefix.html b/bdb/docs/api_c/db_set_bt_prefix.html
deleted file mode 100644
index 88bf3157f97..00000000000
--- a/bdb/docs/api_c/db_set_bt_prefix.html
+++ /dev/null
@@ -1,106 +0,0 @@
-<!--$Id: db_set_bt_prefix.so,v 10.25 2000/09/08 21:35:26 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DB-&gt;set_bt_prefix</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DB-&gt;set_bt_prefix</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DB-&gt;set_bt_prefix(DB *db,
- size_t (*bt_prefix_fcn)(DB *, const DBT *, const DBT *));
-</pre></h3>
-<h1>Description</h1>
-<p>Set the Btree prefix function. The prefix function must return the
-number of bytes of the second key argument that would be required by
-the Btree key comparison function to determine the second key argument's
-ordering relationship with respect to the first key argument. If the
-two keys are equal, the key length should be returned. The prefix
-function must correctly handle any key values used by the application
-(possibly including zero-length keys). The <b>data</b> and
-<b>size</b> fields of the <a href="../api_c/dbt.html">DBT</a> are the only fields that may be
-used for the purposes of this determination.
-<p>The prefix function is used to determine the amount by which keys stored
-on the Btree internal pages can be safely truncated without losing their
-uniqueness. See the <a href="../ref/am_conf/bt_prefix.html">Btree
-prefix comparison</a> section of the Reference Guide for more details about
-how this works. The usefulness of this is data dependent, but in some
-data sets can produce significantly reduced tree sizes and search times.
-<p>If no prefix function or key comparison function is specified by the
-application, a default lexical comparison function is used as the prefix
-function. If no prefix function is specified and a key comparison
-function is specified, no prefix function is used. It is an error to
-specify a prefix function without also specifying a key comparison
-function.
-<p>The DB-&gt;set_bt_prefix interface may only be used to configure Berkeley DB before
-the <a href="../api_c/db_open.html">DB-&gt;open</a> interface is called.
-<p>The DB-&gt;set_bt_prefix function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_c/db_open.html">DB-&gt;open</a> was called.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/db_create.html">db_create</a>,
-<a href="../api_c/db_close.html">DB-&gt;close</a>,
-<a href="../api_c/db_cursor.html">DB-&gt;cursor</a>,
-<a href="../api_c/db_del.html">DB-&gt;del</a>,
-<a href="../api_c/db_err.html">DB-&gt;err</a>,
-<a href="../api_c/db_fd.html">DB-&gt;fd</a>,
-<a href="../api_c/db_get.html">DB-&gt;get</a>,
-<a href="../api_c/db_get_byteswapped.html">DB-&gt;get_byteswapped</a>,
-<a href="../api_c/db_get_type.html">DB-&gt;get_type</a>,
-<a href="../api_c/db_join.html">DB-&gt;join</a>,
-<a href="../api_c/db_key_range.html">DB-&gt;key_range</a>,
-<a href="../api_c/db_open.html">DB-&gt;open</a>,
-<a href="../api_c/db_put.html">DB-&gt;put</a>,
-<a href="../api_c/db_remove.html">DB-&gt;remove</a>,
-<a href="../api_c/db_set_bt_compare.html">DB-&gt;set_bt_compare</a>,
-<a href="../api_c/db_set_bt_minkey.html">DB-&gt;set_bt_minkey</a>,
-<a href="../api_c/db_set_bt_prefix.html">DB-&gt;set_bt_prefix</a>,
-<a href="../api_c/db_set_cachesize.html">DB-&gt;set_cachesize</a>,
-<a href="../api_c/db_set_dup_compare.html">DB-&gt;set_dup_compare</a>,
-<a href="../api_c/db_set_errcall.html">DB-&gt;set_errcall</a>,
-<a href="../api_c/db_set_errfile.html">DB-&gt;set_errfile</a>,
-<a href="../api_c/db_set_errpfx.html">DB-&gt;set_errpfx</a>,
-<a href="../api_c/db_set_flags.html">DB-&gt;set_flags</a>,
-<a href="../api_c/db_set_h_ffactor.html">DB-&gt;set_h_ffactor</a>,
-<a href="../api_c/db_set_h_hash.html">DB-&gt;set_h_hash</a>,
-<a href="../api_c/db_set_h_nelem.html">DB-&gt;set_h_nelem</a>,
-<a href="../api_c/db_set_lorder.html">DB-&gt;set_lorder</a>,
-<a href="../api_c/db_set_malloc.html">DB-&gt;set_malloc</a>,
-<a href="../api_c/db_set_pagesize.html">DB-&gt;set_pagesize</a>,
-<a href="../api_c/db_set_paniccall.html">DB-&gt;set_paniccall</a>,
-<a href="../api_c/db_set_q_extentsize.html">DB-&gt;set_q_extentsize</a>,
-<a href="../api_c/db_set_realloc.html">DB-&gt;set_realloc</a>,
-<a href="../api_c/db_set_re_delim.html">DB-&gt;set_re_delim</a>,
-<a href="../api_c/db_set_re_len.html">DB-&gt;set_re_len</a>,
-<a href="../api_c/db_set_re_pad.html">DB-&gt;set_re_pad</a>,
-<a href="../api_c/db_set_re_source.html">DB-&gt;set_re_source</a>,
-<a href="../api_c/db_stat.html">DB-&gt;stat</a>,
-<a href="../api_c/db_sync.html">DB-&gt;sync</a>,
-<a href="../api_c/db_upgrade.html">DB-&gt;upgrade</a>
-and
-<a href="../api_c/db_verify.html">DB-&gt;verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/db_set_cachesize.html b/bdb/docs/api_c/db_set_cachesize.html
deleted file mode 100644
index fd7176cbf7d..00000000000
--- a/bdb/docs/api_c/db_set_cachesize.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<!--$Id: db_set_cachesize.so,v 10.17 2000/05/01 21:57:43 bostic Exp $-->
-<!--$Id: m4.cachesize,v 10.7 2000/02/11 18:54:45 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DB-&gt;set_cachesize</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DB-&gt;set_cachesize</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DB-&gt;set_cachesize(DB *db,
- u_int32_t gbytes, u_int32_t bytes, int ncache);
-</pre></h3>
-<h1>Description</h1>
-<p>Set the size of the database's shared memory buffer pool, i.e., the cache,
-to <b>gbytes</b> gigabytes plus <b>bytes</b>. The cache should be the
-size of the normal working data set of the application, with some small
-amount of additional memory for unusual situations. (Note, the working
-set is not the same as the number of simultaneously referenced pages, and
-should be quite a bit larger!)
-<p>The default cache size is 256KB, and may not be specified as less than
-20KB. Any cache size less than 500MB is automatically increased by 25%
-to account for buffer pool overhead, cache sizes larger than 500MB are
-used as specified. For information on tuning the Berkeley DB cache size, see
-<a href="../ref/am_conf/cachesize.html">Selecting a cache size</a>.
-<p>It is possible to specify caches to Berkeley DB that are large enough so that
-they cannot be allocated contiguously on some architectures, e.g., some
-releases of Solaris limit the amount of memory that may be allocated
-contiguously by a process. If <b>ncache</b> is 0 or 1, the cache will
-be allocated contiguously in memory. If it is greater than 1, the cache
-will be broken up into <b>ncache</b> equally sized separate pieces of
-memory.
-<p>As databases opened within Berkeley DB environments use the cache specified to
-the environment, it is an error to attempt to set a cache in a database
-created within an environment.
-<p>The DB-&gt;set_cachesize interface may only be used to configure Berkeley DB before
-the <a href="../api_c/db_open.html">DB-&gt;open</a> interface is called.
-<p>The DB-&gt;set_cachesize function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>The specified cache size was impossibly small.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/db_create.html">db_create</a>,
-<a href="../api_c/db_close.html">DB-&gt;close</a>,
-<a href="../api_c/db_cursor.html">DB-&gt;cursor</a>,
-<a href="../api_c/db_del.html">DB-&gt;del</a>,
-<a href="../api_c/db_err.html">DB-&gt;err</a>,
-<a href="../api_c/db_fd.html">DB-&gt;fd</a>,
-<a href="../api_c/db_get.html">DB-&gt;get</a>,
-<a href="../api_c/db_get_byteswapped.html">DB-&gt;get_byteswapped</a>,
-<a href="../api_c/db_get_type.html">DB-&gt;get_type</a>,
-<a href="../api_c/db_join.html">DB-&gt;join</a>,
-<a href="../api_c/db_key_range.html">DB-&gt;key_range</a>,
-<a href="../api_c/db_open.html">DB-&gt;open</a>,
-<a href="../api_c/db_put.html">DB-&gt;put</a>,
-<a href="../api_c/db_remove.html">DB-&gt;remove</a>,
-<a href="../api_c/db_set_bt_compare.html">DB-&gt;set_bt_compare</a>,
-<a href="../api_c/db_set_bt_minkey.html">DB-&gt;set_bt_minkey</a>,
-<a href="../api_c/db_set_bt_prefix.html">DB-&gt;set_bt_prefix</a>,
-<a href="../api_c/db_set_cachesize.html">DB-&gt;set_cachesize</a>,
-<a href="../api_c/db_set_dup_compare.html">DB-&gt;set_dup_compare</a>,
-<a href="../api_c/db_set_errcall.html">DB-&gt;set_errcall</a>,
-<a href="../api_c/db_set_errfile.html">DB-&gt;set_errfile</a>,
-<a href="../api_c/db_set_errpfx.html">DB-&gt;set_errpfx</a>,
-<a href="../api_c/db_set_flags.html">DB-&gt;set_flags</a>,
-<a href="../api_c/db_set_h_ffactor.html">DB-&gt;set_h_ffactor</a>,
-<a href="../api_c/db_set_h_hash.html">DB-&gt;set_h_hash</a>,
-<a href="../api_c/db_set_h_nelem.html">DB-&gt;set_h_nelem</a>,
-<a href="../api_c/db_set_lorder.html">DB-&gt;set_lorder</a>,
-<a href="../api_c/db_set_malloc.html">DB-&gt;set_malloc</a>,
-<a href="../api_c/db_set_pagesize.html">DB-&gt;set_pagesize</a>,
-<a href="../api_c/db_set_paniccall.html">DB-&gt;set_paniccall</a>,
-<a href="../api_c/db_set_q_extentsize.html">DB-&gt;set_q_extentsize</a>,
-<a href="../api_c/db_set_realloc.html">DB-&gt;set_realloc</a>,
-<a href="../api_c/db_set_re_delim.html">DB-&gt;set_re_delim</a>,
-<a href="../api_c/db_set_re_len.html">DB-&gt;set_re_len</a>,
-<a href="../api_c/db_set_re_pad.html">DB-&gt;set_re_pad</a>,
-<a href="../api_c/db_set_re_source.html">DB-&gt;set_re_source</a>,
-<a href="../api_c/db_stat.html">DB-&gt;stat</a>,
-<a href="../api_c/db_sync.html">DB-&gt;sync</a>,
-<a href="../api_c/db_upgrade.html">DB-&gt;upgrade</a>
-and
-<a href="../api_c/db_verify.html">DB-&gt;verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/db_set_dup_compare.html b/bdb/docs/api_c/db_set_dup_compare.html
deleted file mode 100644
index 2ac6ed9dec2..00000000000
--- a/bdb/docs/api_c/db_set_dup_compare.html
+++ /dev/null
@@ -1,102 +0,0 @@
-<!--$Id: db_set_dup_compare.so,v 10.21 2000/10/26 15:20:40 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DB-&gt;set_dup_compare</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DB-&gt;set_dup_compare</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DB-&gt;set_dup_compare(DB *db,
- int (*dup_compare_fcn)(DB *, const DBT *, const DBT *));
-</pre></h3>
-<h1>Description</h1>
-<p>Set the duplicate data item comparison function. The comparison function
-is called when it is necessary to compare a data item specified by the
-application with a data item currently stored in the tree. The first
-argument to the comparison function is the <a href="../api_c/dbt.html">DBT</a> representing the
-application's data item, the second is the current tree's data item.
-<p>The comparison function must return an integer value less than, equal
-to, or greater than zero if the first data item argument is considered
-to be respectively less than, equal to, or greater than the second data
-item argument. In addition, the comparison function must cause the data
-items in the set to be <i>well-ordered</i>. The comparison function
-must correctly handle any data item values used by the application
-(possibly including zero-length data items). The <b>data</b> and
-<b>size</b> fields of the <a href="../api_c/dbt.html">DBT</a> are the only fields that may be
-used for the purposes of this comparison.
-<p>If no comparison function is specified, the data items are compared
-lexically, with shorter data items collating before longer data items.
-The same duplicate data item comparison method must be used each time
-a particular Btree is opened.
-<p>The DB-&gt;set_dup_compare interface may only be used to configure Berkeley DB before
-the <a href="../api_c/db_open.html">DB-&gt;open</a> interface is called.
-<p>The DB-&gt;set_dup_compare function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/db_create.html">db_create</a>,
-<a href="../api_c/db_close.html">DB-&gt;close</a>,
-<a href="../api_c/db_cursor.html">DB-&gt;cursor</a>,
-<a href="../api_c/db_del.html">DB-&gt;del</a>,
-<a href="../api_c/db_err.html">DB-&gt;err</a>,
-<a href="../api_c/db_fd.html">DB-&gt;fd</a>,
-<a href="../api_c/db_get.html">DB-&gt;get</a>,
-<a href="../api_c/db_get_byteswapped.html">DB-&gt;get_byteswapped</a>,
-<a href="../api_c/db_get_type.html">DB-&gt;get_type</a>,
-<a href="../api_c/db_join.html">DB-&gt;join</a>,
-<a href="../api_c/db_key_range.html">DB-&gt;key_range</a>,
-<a href="../api_c/db_open.html">DB-&gt;open</a>,
-<a href="../api_c/db_put.html">DB-&gt;put</a>,
-<a href="../api_c/db_remove.html">DB-&gt;remove</a>,
-<a href="../api_c/db_set_bt_compare.html">DB-&gt;set_bt_compare</a>,
-<a href="../api_c/db_set_bt_minkey.html">DB-&gt;set_bt_minkey</a>,
-<a href="../api_c/db_set_bt_prefix.html">DB-&gt;set_bt_prefix</a>,
-<a href="../api_c/db_set_cachesize.html">DB-&gt;set_cachesize</a>,
-<a href="../api_c/db_set_dup_compare.html">DB-&gt;set_dup_compare</a>,
-<a href="../api_c/db_set_errcall.html">DB-&gt;set_errcall</a>,
-<a href="../api_c/db_set_errfile.html">DB-&gt;set_errfile</a>,
-<a href="../api_c/db_set_errpfx.html">DB-&gt;set_errpfx</a>,
-<a href="../api_c/db_set_flags.html">DB-&gt;set_flags</a>,
-<a href="../api_c/db_set_h_ffactor.html">DB-&gt;set_h_ffactor</a>,
-<a href="../api_c/db_set_h_hash.html">DB-&gt;set_h_hash</a>,
-<a href="../api_c/db_set_h_nelem.html">DB-&gt;set_h_nelem</a>,
-<a href="../api_c/db_set_lorder.html">DB-&gt;set_lorder</a>,
-<a href="../api_c/db_set_malloc.html">DB-&gt;set_malloc</a>,
-<a href="../api_c/db_set_pagesize.html">DB-&gt;set_pagesize</a>,
-<a href="../api_c/db_set_paniccall.html">DB-&gt;set_paniccall</a>,
-<a href="../api_c/db_set_q_extentsize.html">DB-&gt;set_q_extentsize</a>,
-<a href="../api_c/db_set_realloc.html">DB-&gt;set_realloc</a>,
-<a href="../api_c/db_set_re_delim.html">DB-&gt;set_re_delim</a>,
-<a href="../api_c/db_set_re_len.html">DB-&gt;set_re_len</a>,
-<a href="../api_c/db_set_re_pad.html">DB-&gt;set_re_pad</a>,
-<a href="../api_c/db_set_re_source.html">DB-&gt;set_re_source</a>,
-<a href="../api_c/db_stat.html">DB-&gt;stat</a>,
-<a href="../api_c/db_sync.html">DB-&gt;sync</a>,
-<a href="../api_c/db_upgrade.html">DB-&gt;upgrade</a>
-and
-<a href="../api_c/db_verify.html">DB-&gt;verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/db_set_errcall.html b/bdb/docs/api_c/db_set_errcall.html
deleted file mode 100644
index 97d8d9a3aca..00000000000
--- a/bdb/docs/api_c/db_set_errcall.html
+++ /dev/null
@@ -1,76 +0,0 @@
-<!--$Id: db_set_errcall.so,v 10.7 1999/12/20 08:52:28 bostic Exp $-->
-<!--$Id: m4.errset,v 10.8 2000/02/19 20:57:57 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DB-&gt;set_errcall</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DB-&gt;set_errcall</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-void
-DB-&gt;set_errcall(DB *,
- void (*db_errcall_fcn)(const char *errpfx, char *msg));
-</pre></h3>
-<h1>Description</h1>
-When an error occurs in the Berkeley DB library, a Berkeley DB error or an error
-return value is returned by the function. In some cases, however,
-the <b>errno</b> value may be insufficient to completely describe
-the cause of the error especially during initial application debugging.
-<p>The DB-&gt;set_errcall function is used to enhance the mechanism for reporting error
-messages to the application. In some cases, when an error occurs, Berkeley DB
-will call <b>db_errcall_fcn</b> with additional error information. The
-function must be declared with two arguments; the first will be the prefix
-string (as previously set by <a href="../api_c/db_set_errpfx.html">DB-&gt;set_errpfx</a> or
-<a href="../api_c/env_set_errpfx.html">DBENV-&gt;set_errpfx</a>), the second will be the error message string.
-It is up to the <b>db_errcall_fcn</b> function to display the error
-message in an appropriate manner.
-<p>Alternatively, you can use the <a href="../api_c/db_set_errfile.html">DB-&gt;set_errfile</a> or
-<a href="../api_c/env_set_errfile.html">DBENV-&gt;set_errfile</a> functions to display the additional information
-via a C library FILE *.
-<p>This error logging enhancement does not slow performance or significantly
-increase application size, and may be run during normal operation as well
-as during application debugging.
-<p>For DB handles opened inside of Berkeley DB environments, calling the
-DB-&gt;set_errcall function affects the entire environment and is equivalent to calling
-the <a href="../api_c/env_set_errcall.html">DBENV-&gt;set_errcall</a> function.
-<p>The DB-&gt;set_errcall interface may be used to configure Berkeley DB at any time
-during the life of the application.
-<h1>See Also</h1>
-<a href="../api_c/env_close.html">DBENV-&gt;close</a>,
-<a href="../api_c/env_create.html">db_env_create</a>,
-<a href="../api_c/env_open.html">DBENV-&gt;open</a>,
-<a href="../api_c/env_remove.html">DBENV-&gt;remove</a>,
-<a href="../api_c/db_err.html">DBENV-&gt;err</a>,
-<a href="../api_c/env_strerror.html">db_strerror</a>,
-<a href="../api_c/env_version.html">db_version</a>,
-<a href="../api_c/env_set_cachesize.html">DBENV-&gt;set_cachesize</a>,
-<a href="../api_c/env_set_errcall.html">DBENV-&gt;set_errcall</a>,
-<a href="../api_c/env_set_errfile.html">DBENV-&gt;set_errfile</a>,
-<a href="../api_c/env_set_errpfx.html">DBENV-&gt;set_errpfx</a>,
-<a href="../api_c/env_set_flags.html">DBENV-&gt;set_flags</a>,
-<a href="../api_c/env_set_mutexlocks.html">DBENV-&gt;set_mutexlocks</a>,
-<a href="../api_c/env_set_paniccall.html">DBENV-&gt;set_paniccall</a>,
-and
-<a href="../api_c/env_set_verbose.html">DBENV-&gt;set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/db_set_errfile.html b/bdb/docs/api_c/db_set_errfile.html
deleted file mode 100644
index 5d160ed5cf2..00000000000
--- a/bdb/docs/api_c/db_set_errfile.html
+++ /dev/null
@@ -1,73 +0,0 @@
-<!--$Id: db_set_errfile.so,v 10.7 1999/12/20 08:52:28 bostic Exp $-->
-<!--$Id: m4.errset,v 10.8 2000/02/19 20:57:57 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DB-&gt;set_errfile</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DB-&gt;set_errfile</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-void
-DB-&gt;set_errfile(DB *db, FILE *errfile);
-</pre></h3>
-<h1>Description</h1>
-When an error occurs in the Berkeley DB library, a Berkeley DB error or an error
-return value is returned by the function. In some cases, however,
-the <b>errno</b> value may be insufficient to completely describe
-the cause of the error especially during initial application debugging.
-<p>The DB-&gt;set_errfile function is used to enhance the mechanism for reporting error
-messages to the application by setting a C library FILE * to be used for
-displaying additional Berkeley DB error messages. In some cases, when an error
-occurs, Berkeley DB will output an additional error message to the specified
-file reference.
-<p>The error message will consist of the prefix string and a colon
-("<b>:</b>") (if a prefix string was previously specified using
-<a href="../api_c/db_set_errpfx.html">DB-&gt;set_errpfx</a> or <a href="../api_c/env_set_errpfx.html">DBENV-&gt;set_errpfx</a>), an error string, and
-a trailing &lt;newline&gt; character.
-<p>This error logging enhancement does not slow performance or significantly
-increase application size, and may be run during normal operation as well
-as during application debugging.
-<p>For DB handles opened inside of Berkeley DB environments, calling the
-DB-&gt;set_errfile function affects the entire environment and is equivalent to calling
-the <a href="../api_c/env_set_errfile.html">DBENV-&gt;set_errfile</a> function.
-<p>The DB-&gt;set_errfile interface may be used to configure Berkeley DB at any time
-during the life of the application.
-<h1>See Also</h1>
-<a href="../api_c/env_close.html">DBENV-&gt;close</a>,
-<a href="../api_c/env_create.html">db_env_create</a>,
-<a href="../api_c/env_open.html">DBENV-&gt;open</a>,
-<a href="../api_c/env_remove.html">DBENV-&gt;remove</a>,
-<a href="../api_c/db_err.html">DBENV-&gt;err</a>,
-<a href="../api_c/env_strerror.html">db_strerror</a>,
-<a href="../api_c/env_version.html">db_version</a>,
-<a href="../api_c/env_set_cachesize.html">DBENV-&gt;set_cachesize</a>,
-<a href="../api_c/env_set_errcall.html">DBENV-&gt;set_errcall</a>,
-<a href="../api_c/env_set_errfile.html">DBENV-&gt;set_errfile</a>,
-<a href="../api_c/env_set_errpfx.html">DBENV-&gt;set_errpfx</a>,
-<a href="../api_c/env_set_flags.html">DBENV-&gt;set_flags</a>,
-<a href="../api_c/env_set_mutexlocks.html">DBENV-&gt;set_mutexlocks</a>,
-<a href="../api_c/env_set_paniccall.html">DBENV-&gt;set_paniccall</a>,
-and
-<a href="../api_c/env_set_verbose.html">DBENV-&gt;set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/db_set_errpfx.html b/bdb/docs/api_c/db_set_errpfx.html
deleted file mode 100644
index baf8f61fef7..00000000000
--- a/bdb/docs/api_c/db_set_errpfx.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!--$Id: db_set_errpfx.so,v 10.6 1999/12/20 08:52:28 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DB-&gt;set_errpfx</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DB-&gt;set_errpfx</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-void
-DB-&gt;set_errpfx(DB *db, const char *errpfx);
-</pre></h3>
-<h1>Description</h1>
-<p>Set the prefix string that appears before error messages issued by Berkeley DB.
-<p>The DB-&gt;set_errpfx function does not copy the memory referenced by the
-<b>errpfx</b> argument, rather, it maintains a reference to it. This
-allows applications to modify the error message prefix at any time,
-without repeatedly calling DB-&gt;set_errpfx, but means that the
-memory must be maintained until the handle is closed.
-<p>For DB handles opened inside of Berkeley DB environments, calling the
-DB-&gt;set_errpfx function affects the entire environment and is equivalent to calling
-the <a href="../api_c/env_set_errpfx.html">DBENV-&gt;set_errpfx</a> function.
-<p>The DB-&gt;set_errpfx interface may be used to configure Berkeley DB at any time
-during the life of the application.
-<h1>See Also</h1>
-<a href="../api_c/env_close.html">DBENV-&gt;close</a>,
-<a href="../api_c/env_create.html">db_env_create</a>,
-<a href="../api_c/env_open.html">DBENV-&gt;open</a>,
-<a href="../api_c/env_remove.html">DBENV-&gt;remove</a>,
-<a href="../api_c/db_err.html">DBENV-&gt;err</a>,
-<a href="../api_c/env_strerror.html">db_strerror</a>,
-<a href="../api_c/env_version.html">db_version</a>,
-<a href="../api_c/env_set_cachesize.html">DBENV-&gt;set_cachesize</a>,
-<a href="../api_c/env_set_errcall.html">DBENV-&gt;set_errcall</a>,
-<a href="../api_c/env_set_errfile.html">DBENV-&gt;set_errfile</a>,
-<a href="../api_c/env_set_errpfx.html">DBENV-&gt;set_errpfx</a>,
-<a href="../api_c/env_set_flags.html">DBENV-&gt;set_flags</a>,
-<a href="../api_c/env_set_mutexlocks.html">DBENV-&gt;set_mutexlocks</a>,
-<a href="../api_c/env_set_paniccall.html">DBENV-&gt;set_paniccall</a>,
-and
-<a href="../api_c/env_set_verbose.html">DBENV-&gt;set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/db_set_feedback.html b/bdb/docs/api_c/db_set_feedback.html
deleted file mode 100644
index 213060ee765..00000000000
--- a/bdb/docs/api_c/db_set_feedback.html
+++ /dev/null
@@ -1,95 +0,0 @@
-<!--$Id: db_set_feedback.so,v 10.16 2000/07/09 19:11:54 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DB-&gt;set_feedback</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DB-&gt;set_feedback</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DB-&gt;set_feedback(DB *,
- void (*db_feedback_fcn)(DB *dbp, int opcode, int pct));
-</pre></h3>
-<h1>Description</h1>
-<p>Some operations performed by the Berkeley DB library can take non-trivial
-amounts of time. The DB-&gt;set_feedback function can be used by
-applications to monitor progress within these operations.
-<p>When an operation is likely to take a long time, Berkeley DB will call the
-specified callback function. This function must be declared with
-three arguments: the first will be a reference to the enclosing database
-handle, the second a flag value, and the third the percent of the
-operation that has been completed, specified as an integer value between
-0 and 100. It is up to the callback function to display this
-information in an appropriate manner.
-<p>The <b>opcode</b> argument may take on any of the following values:
-<p><dl compact>
-<p><dt><a name="DB_UPGRADE">DB_UPGRADE</a><dd>The underlying database is being upgraded.
-<p><dt><a name="DB_VERIFY">DB_VERIFY</a><dd>The underlying database is being verified.
-</dl>
-<p>The DB-&gt;set_feedback interface may be used to configure Berkeley DB at any time
-during the life of the application.
-<p>The DB-&gt;set_feedback function returns a non-zero error value on failure and 0 on success.
-<h1>See Also</h1>
-<a href="../api_c/db_create.html">db_create</a>,
-<a href="../api_c/db_close.html">DB-&gt;close</a>,
-<a href="../api_c/db_cursor.html">DB-&gt;cursor</a>,
-<a href="../api_c/db_del.html">DB-&gt;del</a>,
-<a href="../api_c/db_err.html">DB-&gt;err</a>,
-<a href="../api_c/db_fd.html">DB-&gt;fd</a>,
-<a href="../api_c/db_get.html">DB-&gt;get</a>,
-<a href="../api_c/db_get_byteswapped.html">DB-&gt;get_byteswapped</a>,
-<a href="../api_c/db_get_type.html">DB-&gt;get_type</a>,
-<a href="../api_c/db_join.html">DB-&gt;join</a>,
-<a href="../api_c/db_key_range.html">DB-&gt;key_range</a>,
-<a href="../api_c/db_open.html">DB-&gt;open</a>,
-<a href="../api_c/db_put.html">DB-&gt;put</a>,
-<a href="../api_c/db_remove.html">DB-&gt;remove</a>,
-<a href="../api_c/db_set_bt_compare.html">DB-&gt;set_bt_compare</a>,
-<a href="../api_c/db_set_bt_minkey.html">DB-&gt;set_bt_minkey</a>,
-<a href="../api_c/db_set_bt_prefix.html">DB-&gt;set_bt_prefix</a>,
-<a href="../api_c/db_set_cachesize.html">DB-&gt;set_cachesize</a>,
-<a href="../api_c/db_set_dup_compare.html">DB-&gt;set_dup_compare</a>,
-<a href="../api_c/db_set_errcall.html">DB-&gt;set_errcall</a>,
-<a href="../api_c/db_set_errfile.html">DB-&gt;set_errfile</a>,
-<a href="../api_c/db_set_errpfx.html">DB-&gt;set_errpfx</a>,
-<a href="../api_c/db_set_flags.html">DB-&gt;set_flags</a>,
-<a href="../api_c/db_set_h_ffactor.html">DB-&gt;set_h_ffactor</a>,
-<a href="../api_c/db_set_h_hash.html">DB-&gt;set_h_hash</a>,
-<a href="../api_c/db_set_h_nelem.html">DB-&gt;set_h_nelem</a>,
-<a href="../api_c/db_set_lorder.html">DB-&gt;set_lorder</a>,
-<a href="../api_c/db_set_malloc.html">DB-&gt;set_malloc</a>,
-<a href="../api_c/db_set_pagesize.html">DB-&gt;set_pagesize</a>,
-<a href="../api_c/db_set_paniccall.html">DB-&gt;set_paniccall</a>,
-<a href="../api_c/db_set_q_extentsize.html">DB-&gt;set_q_extentsize</a>,
-<a href="../api_c/db_set_realloc.html">DB-&gt;set_realloc</a>,
-<a href="../api_c/db_set_re_delim.html">DB-&gt;set_re_delim</a>,
-<a href="../api_c/db_set_re_len.html">DB-&gt;set_re_len</a>,
-<a href="../api_c/db_set_re_pad.html">DB-&gt;set_re_pad</a>,
-<a href="../api_c/db_set_re_source.html">DB-&gt;set_re_source</a>,
-<a href="../api_c/db_stat.html">DB-&gt;stat</a>,
-<a href="../api_c/db_sync.html">DB-&gt;sync</a>,
-<a href="../api_c/db_upgrade.html">DB-&gt;upgrade</a>
-and
-<a href="../api_c/db_verify.html">DB-&gt;verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/db_set_flags.html b/bdb/docs/api_c/db_set_flags.html
deleted file mode 100644
index f1823381776..00000000000
--- a/bdb/docs/api_c/db_set_flags.html
+++ /dev/null
@@ -1,181 +0,0 @@
-<!--$Id: db_set_flags.so,v 10.26 2000/03/17 01:53:58 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DB-&gt;set_flags</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DB-&gt;set_flags</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DB-&gt;set_flags(DB *db, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>Calling DB-&gt;set_flags is additive, there is no way to clear flags.
-<p>The <b>flags</b> value must be set to 0 or by bitwise inclusively <b>OR</b>'ing together one or more
-of the following values.
-<h3>Btree</h3>
-<p>The following flags may be specified for the Btree access method:
-<p><dl compact>
-<p><dt><a name="DB_DUP">DB_DUP</a><dd>Permit duplicate data items in the tree, i.e. insertion when the key of
-the key/data pair being inserted already exists in the tree will be
-successful. The ordering of duplicates in the tree is determined by the
-order of insertion, unless the ordering is otherwise specified by use of
-a cursor operation. It is an error to specify both DB_DUP and
-DB_RECNUM.
-<p><dt><a name="DB_DUPSORT">DB_DUPSORT</a><dd>Permit duplicate data items in the tree, i.e. insertion when the key of
-the key/data pair being inserted already exists in the tree will be
-successful. The ordering of duplicates in the tree is determined by the
-duplicate comparison function.
-If the application does not specify a comparison function using the
-<a href="../api_c/db_set_dup_compare.html">DB-&gt;set_dup_compare</a> function, a default, lexical comparison will be
-used.
-It is an error to specify both DB_DUPSORT and DB_RECNUM.
-<p><dt><a name="DB_RECNUM">DB_RECNUM</a><dd>Support retrieval from the Btree using record numbers. For more
-information, see the DB_GET_RECNO flag to the <a href="../api_c/db_get.html">DB-&gt;get</a> and
-<a href="../api_c/dbc_get.html">DBcursor-&gt;c_get</a> methods.
-<p>Logical record numbers in Btree databases are mutable in the face of
-record insertion or deletion. See the DB_RENUMBER flag in the Recno
-access method information for further discussion.
-<p>Maintaining record counts within a Btree introduces a serious point of
-contention, namely the page locations where the record counts are stored.
-In addition, the entire tree must be locked during both insertions and
-deletions, effectively single-threading the tree for those operations.
-Specifying DB_RECNUM can result in serious performance degradation for
-some applications and data sets.
-<p>It is an error to specify both DB_DUP and DB_RECNUM.
-<p><dt><a name="DB_REVSPLITOFF">DB_REVSPLITOFF</a><dd>Turn off reverse splitting in the Btree. As pages are emptied in a
-database, the Berkeley DB Btree implementation attempts to coalesce empty pages
-into higher-level pages in order to keep the tree as small as possible
-and minimize tree search time. This can hurt performance in applications
-with cyclical data demands, that is, applications where the database grows
-and shrinks repeatedly. For example, because Berkeley DB does page-level
-locking, the maximum level of concurrency in a database of 2 pages is far
-smaller than that in a database of 100 pages, and so a database that has
-shrunk to a minimal size can cause severe deadlocking when a new cycle of
-data insertion begins.
-</dl>
-<h3>Hash</h3>
-<p>The following flags may be specified for the Hash access method:
-<p><dl compact>
-<p><dt><a name="DB_DUP">DB_DUP</a><dd>Permit duplicate data items in the tree, i.e. insertion when the key of
-the key/data pair being inserted already exists in the tree will be
-successful. The ordering of duplicates in the tree is determined by the
-order of insertion, unless the ordering is otherwise specified by use of
-a cursor operation. It is an error to specify both DB_DUP and
-DB_RECNUM.
-<p><dt><a name="DB_DUPSORT">DB_DUPSORT</a><dd>Permit duplicate data items in the tree, i.e. insertion when the key of
-the key/data pair being inserted already exists in the tree will be
-successful. The ordering of duplicates in the tree is determined by the
-duplicate comparison function.
-If the application does not specify a comparison function using the
-<a href="../api_c/db_set_dup_compare.html">DB-&gt;set_dup_compare</a> function, a default, lexical comparison will be
-used.
-It is an error to specify both DB_DUPSORT and DB_RECNUM.
-</dl>
-<h3>Queue</h3>
-<p>There are no additional flags that may be specified for the Queue access
-method.
-<h3>Recno</h3>
-<p>The following flags may be specified for the Recno access method:
-<p><dl compact>
-<p><dt><a name="DB_RENUMBER">DB_RENUMBER</a><dd>Specifying the DB_RENUMBER flag causes the logical record numbers to be
-mutable, and change as records are added to and deleted from the database.
-For example, the deletion of record number 4 causes records numbered 5
-and greater to be renumbered downward by 1. If a cursor was positioned
-to record number 4 before the deletion, it will reference the new record
-number 4, if any such record exists, after the deletion. If a cursor was
-positioned after record number 4 before the deletion, it will be shifted
-downward 1 logical record, continuing to reference the same record as it
-did before.
-<p>Using the <a href="../api_c/db_put.html">DB-&gt;put</a> or <a href="../api_c/dbc_put.html">DBcursor-&gt;c_put</a> interfaces to create new
-records will cause the creation of multiple records if the record number
-is more than one greater than the largest record currently in the
-database. For example, creating record 28, when record 25 was previously
-the last record in the database, will create records 26 and 27 as well as
-28. Attempts to retrieve records that were created in this manner will
-result in an error return of <a href="../ref/program/errorret.html#DB_KEYEMPTY">DB_KEYEMPTY</a>.
-<p>If a created record is not at the end of the database, all records
-following the new record will be automatically renumbered upward by 1.
-For example, the creation of a new record numbered 8 causes records
-numbered 8 and greater to be renumbered upward by 1. If a cursor was
-positioned to record number 8 or greater before the insertion, it will be
-shifted upward 1 logical record, continuing to reference the same record
-as it did before.
-<p>For these reasons, concurrent access to a Recno database with the
-DB_RENUMBER flag specified may be largely meaningless, although
-it is supported.
-<p><dt><a name="DB_SNAPSHOT">DB_SNAPSHOT</a><dd>This flag specifies that any specified <b>re_source</b> file be read in
-its entirety when <a href="../api_c/db_open.html">DB-&gt;open</a> is called. If this flag is not
-specified, the <b>re_source</b> file may be read lazily.
-</dl>
-<p>The DB-&gt;set_flags interface may only be used to configure Berkeley DB before
-the <a href="../api_c/db_open.html">DB-&gt;open</a> interface is called.
-<p>The DB-&gt;set_flags function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/db_create.html">db_create</a>,
-<a href="../api_c/db_close.html">DB-&gt;close</a>,
-<a href="../api_c/db_cursor.html">DB-&gt;cursor</a>,
-<a href="../api_c/db_del.html">DB-&gt;del</a>,
-<a href="../api_c/db_err.html">DB-&gt;err</a>,
-<a href="../api_c/db_fd.html">DB-&gt;fd</a>,
-<a href="../api_c/db_get.html">DB-&gt;get</a>,
-<a href="../api_c/db_get_byteswapped.html">DB-&gt;get_byteswapped</a>,
-<a href="../api_c/db_get_type.html">DB-&gt;get_type</a>,
-<a href="../api_c/db_join.html">DB-&gt;join</a>,
-<a href="../api_c/db_key_range.html">DB-&gt;key_range</a>,
-<a href="../api_c/db_open.html">DB-&gt;open</a>,
-<a href="../api_c/db_put.html">DB-&gt;put</a>,
-<a href="../api_c/db_remove.html">DB-&gt;remove</a>,
-<a href="../api_c/db_set_bt_compare.html">DB-&gt;set_bt_compare</a>,
-<a href="../api_c/db_set_bt_minkey.html">DB-&gt;set_bt_minkey</a>,
-<a href="../api_c/db_set_bt_prefix.html">DB-&gt;set_bt_prefix</a>,
-<a href="../api_c/db_set_cachesize.html">DB-&gt;set_cachesize</a>,
-<a href="../api_c/db_set_dup_compare.html">DB-&gt;set_dup_compare</a>,
-<a href="../api_c/db_set_errcall.html">DB-&gt;set_errcall</a>,
-<a href="../api_c/db_set_errfile.html">DB-&gt;set_errfile</a>,
-<a href="../api_c/db_set_errpfx.html">DB-&gt;set_errpfx</a>,
-<a href="../api_c/db_set_flags.html">DB-&gt;set_flags</a>,
-<a href="../api_c/db_set_h_ffactor.html">DB-&gt;set_h_ffactor</a>,
-<a href="../api_c/db_set_h_hash.html">DB-&gt;set_h_hash</a>,
-<a href="../api_c/db_set_h_nelem.html">DB-&gt;set_h_nelem</a>,
-<a href="../api_c/db_set_lorder.html">DB-&gt;set_lorder</a>,
-<a href="../api_c/db_set_malloc.html">DB-&gt;set_malloc</a>,
-<a href="../api_c/db_set_pagesize.html">DB-&gt;set_pagesize</a>,
-<a href="../api_c/db_set_paniccall.html">DB-&gt;set_paniccall</a>,
-<a href="../api_c/db_set_q_extentsize.html">DB-&gt;set_q_extentsize</a>,
-<a href="../api_c/db_set_realloc.html">DB-&gt;set_realloc</a>,
-<a href="../api_c/db_set_re_delim.html">DB-&gt;set_re_delim</a>,
-<a href="../api_c/db_set_re_len.html">DB-&gt;set_re_len</a>,
-<a href="../api_c/db_set_re_pad.html">DB-&gt;set_re_pad</a>,
-<a href="../api_c/db_set_re_source.html">DB-&gt;set_re_source</a>,
-<a href="../api_c/db_stat.html">DB-&gt;stat</a>,
-<a href="../api_c/db_sync.html">DB-&gt;sync</a>,
-<a href="../api_c/db_upgrade.html">DB-&gt;upgrade</a>
-and
-<a href="../api_c/db_verify.html">DB-&gt;verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/db_set_h_ffactor.html b/bdb/docs/api_c/db_set_h_ffactor.html
deleted file mode 100644
index c3bbb607ea5..00000000000
--- a/bdb/docs/api_c/db_set_h_ffactor.html
+++ /dev/null
@@ -1,93 +0,0 @@
-<!--$Id: db_set_h_ffactor.so,v 10.15 2000/05/01 21:57:43 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DB-&gt;set_h_ffactor</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DB-&gt;set_h_ffactor</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DB-&gt;set_h_ffactor(DB *db, u_int32_t h_ffactor);
-</pre></h3>
-<h1>Description</h1>
-<p>Set the desired density within the hash table.
-<p>The density is an approximation of the number of keys allowed to
-accumulate in any one bucket, determining when the hash table grows or
-shrinks. If you know the average sizes of the keys and data in your
-dataset, setting the fill factor can enhance performance. A reasonable
-rule computing fill factor is to set it to:
-<p><blockquote><pre>(pagesize - 32) / (average_key_size + average_data_size + 8)</pre></blockquote>
-<p>If no value is specified, the fill factor will be selected dynamically as
-pages are filled.
-<p>The DB-&gt;set_h_ffactor interface may only be used to configure Berkeley DB before
-the <a href="../api_c/db_open.html">DB-&gt;open</a> interface is called.
-<p>The DB-&gt;set_h_ffactor function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_c/db_open.html">DB-&gt;open</a> was called.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/db_create.html">db_create</a>,
-<a href="../api_c/db_close.html">DB-&gt;close</a>,
-<a href="../api_c/db_cursor.html">DB-&gt;cursor</a>,
-<a href="../api_c/db_del.html">DB-&gt;del</a>,
-<a href="../api_c/db_err.html">DB-&gt;err</a>,
-<a href="../api_c/db_fd.html">DB-&gt;fd</a>,
-<a href="../api_c/db_get.html">DB-&gt;get</a>,
-<a href="../api_c/db_get_byteswapped.html">DB-&gt;get_byteswapped</a>,
-<a href="../api_c/db_get_type.html">DB-&gt;get_type</a>,
-<a href="../api_c/db_join.html">DB-&gt;join</a>,
-<a href="../api_c/db_key_range.html">DB-&gt;key_range</a>,
-<a href="../api_c/db_open.html">DB-&gt;open</a>,
-<a href="../api_c/db_put.html">DB-&gt;put</a>,
-<a href="../api_c/db_remove.html">DB-&gt;remove</a>,
-<a href="../api_c/db_set_bt_compare.html">DB-&gt;set_bt_compare</a>,
-<a href="../api_c/db_set_bt_minkey.html">DB-&gt;set_bt_minkey</a>,
-<a href="../api_c/db_set_bt_prefix.html">DB-&gt;set_bt_prefix</a>,
-<a href="../api_c/db_set_cachesize.html">DB-&gt;set_cachesize</a>,
-<a href="../api_c/db_set_dup_compare.html">DB-&gt;set_dup_compare</a>,
-<a href="../api_c/db_set_errcall.html">DB-&gt;set_errcall</a>,
-<a href="../api_c/db_set_errfile.html">DB-&gt;set_errfile</a>,
-<a href="../api_c/db_set_errpfx.html">DB-&gt;set_errpfx</a>,
-<a href="../api_c/db_set_flags.html">DB-&gt;set_flags</a>,
-<a href="../api_c/db_set_h_ffactor.html">DB-&gt;set_h_ffactor</a>,
-<a href="../api_c/db_set_h_hash.html">DB-&gt;set_h_hash</a>,
-<a href="../api_c/db_set_h_nelem.html">DB-&gt;set_h_nelem</a>,
-<a href="../api_c/db_set_lorder.html">DB-&gt;set_lorder</a>,
-<a href="../api_c/db_set_malloc.html">DB-&gt;set_malloc</a>,
-<a href="../api_c/db_set_pagesize.html">DB-&gt;set_pagesize</a>,
-<a href="../api_c/db_set_paniccall.html">DB-&gt;set_paniccall</a>,
-<a href="../api_c/db_set_q_extentsize.html">DB-&gt;set_q_extentsize</a>,
-<a href="../api_c/db_set_realloc.html">DB-&gt;set_realloc</a>,
-<a href="../api_c/db_set_re_delim.html">DB-&gt;set_re_delim</a>,
-<a href="../api_c/db_set_re_len.html">DB-&gt;set_re_len</a>,
-<a href="../api_c/db_set_re_pad.html">DB-&gt;set_re_pad</a>,
-<a href="../api_c/db_set_re_source.html">DB-&gt;set_re_source</a>,
-<a href="../api_c/db_stat.html">DB-&gt;stat</a>,
-<a href="../api_c/db_sync.html">DB-&gt;sync</a>,
-<a href="../api_c/db_upgrade.html">DB-&gt;upgrade</a>
-and
-<a href="../api_c/db_verify.html">DB-&gt;verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/db_set_h_hash.html b/bdb/docs/api_c/db_set_h_hash.html
deleted file mode 100644
index cae03fa72b3..00000000000
--- a/bdb/docs/api_c/db_set_h_hash.html
+++ /dev/null
@@ -1,97 +0,0 @@
-<!--$Id: db_set_h_hash.so,v 10.18 2000/07/04 18:28:27 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DB-&gt;set_h_hash</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DB-&gt;set_h_hash</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DB-&gt;set_h_hash(DB *db,
- u_int32_t (*h_hash_fcn)(DB *, const void *bytes, u_int32_t length));
-</pre></h3>
-<h1>Description</h1>
-<p>Set a user defined hash method; if no hash method is specified, a default
-hash method is used. Since no hash method performs equally well on all
-possible data, the user may find that the built-in hash method performs
-poorly with a particular data set. User specified hash functions must
-take a pointer to a byte string and a length as arguments and return a
-value of type
-<b>u_int32_t</b>.
-The hash function must handle any key values used by the application
-(possibly including zero-length keys).
-<p>If a hash method is specified, <a href="../api_c/db_open.html">DB-&gt;open</a> will attempt to determine
-if the hash method specified is the same as the one with which the database
-was created, and will fail if it detects that it is not.
-<p>The DB-&gt;set_h_hash interface may only be used to configure Berkeley DB before
-the <a href="../api_c/db_open.html">DB-&gt;open</a> interface is called.
-<p>The DB-&gt;set_h_hash function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_c/db_open.html">DB-&gt;open</a> was called.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/db_create.html">db_create</a>,
-<a href="../api_c/db_close.html">DB-&gt;close</a>,
-<a href="../api_c/db_cursor.html">DB-&gt;cursor</a>,
-<a href="../api_c/db_del.html">DB-&gt;del</a>,
-<a href="../api_c/db_err.html">DB-&gt;err</a>,
-<a href="../api_c/db_fd.html">DB-&gt;fd</a>,
-<a href="../api_c/db_get.html">DB-&gt;get</a>,
-<a href="../api_c/db_get_byteswapped.html">DB-&gt;get_byteswapped</a>,
-<a href="../api_c/db_get_type.html">DB-&gt;get_type</a>,
-<a href="../api_c/db_join.html">DB-&gt;join</a>,
-<a href="../api_c/db_key_range.html">DB-&gt;key_range</a>,
-<a href="../api_c/db_open.html">DB-&gt;open</a>,
-<a href="../api_c/db_put.html">DB-&gt;put</a>,
-<a href="../api_c/db_remove.html">DB-&gt;remove</a>,
-<a href="../api_c/db_set_bt_compare.html">DB-&gt;set_bt_compare</a>,
-<a href="../api_c/db_set_bt_minkey.html">DB-&gt;set_bt_minkey</a>,
-<a href="../api_c/db_set_bt_prefix.html">DB-&gt;set_bt_prefix</a>,
-<a href="../api_c/db_set_cachesize.html">DB-&gt;set_cachesize</a>,
-<a href="../api_c/db_set_dup_compare.html">DB-&gt;set_dup_compare</a>,
-<a href="../api_c/db_set_errcall.html">DB-&gt;set_errcall</a>,
-<a href="../api_c/db_set_errfile.html">DB-&gt;set_errfile</a>,
-<a href="../api_c/db_set_errpfx.html">DB-&gt;set_errpfx</a>,
-<a href="../api_c/db_set_flags.html">DB-&gt;set_flags</a>,
-<a href="../api_c/db_set_h_ffactor.html">DB-&gt;set_h_ffactor</a>,
-<a href="../api_c/db_set_h_hash.html">DB-&gt;set_h_hash</a>,
-<a href="../api_c/db_set_h_nelem.html">DB-&gt;set_h_nelem</a>,
-<a href="../api_c/db_set_lorder.html">DB-&gt;set_lorder</a>,
-<a href="../api_c/db_set_malloc.html">DB-&gt;set_malloc</a>,
-<a href="../api_c/db_set_pagesize.html">DB-&gt;set_pagesize</a>,
-<a href="../api_c/db_set_paniccall.html">DB-&gt;set_paniccall</a>,
-<a href="../api_c/db_set_q_extentsize.html">DB-&gt;set_q_extentsize</a>,
-<a href="../api_c/db_set_realloc.html">DB-&gt;set_realloc</a>,
-<a href="../api_c/db_set_re_delim.html">DB-&gt;set_re_delim</a>,
-<a href="../api_c/db_set_re_len.html">DB-&gt;set_re_len</a>,
-<a href="../api_c/db_set_re_pad.html">DB-&gt;set_re_pad</a>,
-<a href="../api_c/db_set_re_source.html">DB-&gt;set_re_source</a>,
-<a href="../api_c/db_stat.html">DB-&gt;stat</a>,
-<a href="../api_c/db_sync.html">DB-&gt;sync</a>,
-<a href="../api_c/db_upgrade.html">DB-&gt;upgrade</a>
-and
-<a href="../api_c/db_verify.html">DB-&gt;verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/db_set_h_nelem.html b/bdb/docs/api_c/db_set_h_nelem.html
deleted file mode 100644
index d052afff7dc..00000000000
--- a/bdb/docs/api_c/db_set_h_nelem.html
+++ /dev/null
@@ -1,88 +0,0 @@
-<!--$Id: db_set_h_nelem.so,v 10.15 2000/05/01 21:57:43 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DB-&gt;set_h_nelem</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DB-&gt;set_h_nelem</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DB-&gt;set_h_nelem(DB *db, u_int32_t h_nelem);
-</pre></h3>
-<h1>Description</h1>
-<p>Set an estimate of the final size of the hash table.
-<p>If not set or set too low, hash tables will still expand gracefully
-as keys are entered, although a slight performance degradation may be
-noticed.
-<p>The DB-&gt;set_h_nelem interface may only be used to configure Berkeley DB before
-the <a href="../api_c/db_open.html">DB-&gt;open</a> interface is called.
-<p>The DB-&gt;set_h_nelem function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_c/db_open.html">DB-&gt;open</a> was called.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/db_create.html">db_create</a>,
-<a href="../api_c/db_close.html">DB-&gt;close</a>,
-<a href="../api_c/db_cursor.html">DB-&gt;cursor</a>,
-<a href="../api_c/db_del.html">DB-&gt;del</a>,
-<a href="../api_c/db_err.html">DB-&gt;err</a>,
-<a href="../api_c/db_fd.html">DB-&gt;fd</a>,
-<a href="../api_c/db_get.html">DB-&gt;get</a>,
-<a href="../api_c/db_get_byteswapped.html">DB-&gt;get_byteswapped</a>,
-<a href="../api_c/db_get_type.html">DB-&gt;get_type</a>,
-<a href="../api_c/db_join.html">DB-&gt;join</a>,
-<a href="../api_c/db_key_range.html">DB-&gt;key_range</a>,
-<a href="../api_c/db_open.html">DB-&gt;open</a>,
-<a href="../api_c/db_put.html">DB-&gt;put</a>,
-<a href="../api_c/db_remove.html">DB-&gt;remove</a>,
-<a href="../api_c/db_set_bt_compare.html">DB-&gt;set_bt_compare</a>,
-<a href="../api_c/db_set_bt_minkey.html">DB-&gt;set_bt_minkey</a>,
-<a href="../api_c/db_set_bt_prefix.html">DB-&gt;set_bt_prefix</a>,
-<a href="../api_c/db_set_cachesize.html">DB-&gt;set_cachesize</a>,
-<a href="../api_c/db_set_dup_compare.html">DB-&gt;set_dup_compare</a>,
-<a href="../api_c/db_set_errcall.html">DB-&gt;set_errcall</a>,
-<a href="../api_c/db_set_errfile.html">DB-&gt;set_errfile</a>,
-<a href="../api_c/db_set_errpfx.html">DB-&gt;set_errpfx</a>,
-<a href="../api_c/db_set_flags.html">DB-&gt;set_flags</a>,
-<a href="../api_c/db_set_h_ffactor.html">DB-&gt;set_h_ffactor</a>,
-<a href="../api_c/db_set_h_hash.html">DB-&gt;set_h_hash</a>,
-<a href="../api_c/db_set_h_nelem.html">DB-&gt;set_h_nelem</a>,
-<a href="../api_c/db_set_lorder.html">DB-&gt;set_lorder</a>,
-<a href="../api_c/db_set_malloc.html">DB-&gt;set_malloc</a>,
-<a href="../api_c/db_set_pagesize.html">DB-&gt;set_pagesize</a>,
-<a href="../api_c/db_set_paniccall.html">DB-&gt;set_paniccall</a>,
-<a href="../api_c/db_set_q_extentsize.html">DB-&gt;set_q_extentsize</a>,
-<a href="../api_c/db_set_realloc.html">DB-&gt;set_realloc</a>,
-<a href="../api_c/db_set_re_delim.html">DB-&gt;set_re_delim</a>,
-<a href="../api_c/db_set_re_len.html">DB-&gt;set_re_len</a>,
-<a href="../api_c/db_set_re_pad.html">DB-&gt;set_re_pad</a>,
-<a href="../api_c/db_set_re_source.html">DB-&gt;set_re_source</a>,
-<a href="../api_c/db_stat.html">DB-&gt;stat</a>,
-<a href="../api_c/db_sync.html">DB-&gt;sync</a>,
-<a href="../api_c/db_upgrade.html">DB-&gt;upgrade</a>
-and
-<a href="../api_c/db_verify.html">DB-&gt;verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/db_set_lorder.html b/bdb/docs/api_c/db_set_lorder.html
deleted file mode 100644
index a9a3c923037..00000000000
--- a/bdb/docs/api_c/db_set_lorder.html
+++ /dev/null
@@ -1,94 +0,0 @@
-<!--$Id: db_set_lorder.so,v 10.15 2000/05/01 21:57:43 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DB-&gt;set_lorder</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DB-&gt;set_lorder</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DB-&gt;set_lorder(DB *db, int lorder);
-</pre></h3>
-<h1>Description</h1>
-<p>Set the byte order for integers in the stored database metadata. The
-number should represent the order as an integer, for example, big endian
-order is the number 4,321, and little endian order is the number 1,234.
-If <b>lorder</b> is not explicitly set, the host order of the machine
-where the Berkeley DB library was compiled is used.
-<p>The value of <b>lorder</b> is ignored except when databases are being
-created. If a database already exists, the byte order it uses is
-determined when the database is opened.
-<p><b>The access methods provide no guarantees about the byte ordering of the
-application data stored in the database, and applications are responsible
-for maintaining any necessary ordering.</b>
-<p>The DB-&gt;set_lorder interface may only be used to configure Berkeley DB before
-the <a href="../api_c/db_open.html">DB-&gt;open</a> interface is called.
-<p>The DB-&gt;set_lorder function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/db_create.html">db_create</a>,
-<a href="../api_c/db_close.html">DB-&gt;close</a>,
-<a href="../api_c/db_cursor.html">DB-&gt;cursor</a>,
-<a href="../api_c/db_del.html">DB-&gt;del</a>,
-<a href="../api_c/db_err.html">DB-&gt;err</a>,
-<a href="../api_c/db_fd.html">DB-&gt;fd</a>,
-<a href="../api_c/db_get.html">DB-&gt;get</a>,
-<a href="../api_c/db_get_byteswapped.html">DB-&gt;get_byteswapped</a>,
-<a href="../api_c/db_get_type.html">DB-&gt;get_type</a>,
-<a href="../api_c/db_join.html">DB-&gt;join</a>,
-<a href="../api_c/db_key_range.html">DB-&gt;key_range</a>,
-<a href="../api_c/db_open.html">DB-&gt;open</a>,
-<a href="../api_c/db_put.html">DB-&gt;put</a>,
-<a href="../api_c/db_remove.html">DB-&gt;remove</a>,
-<a href="../api_c/db_set_bt_compare.html">DB-&gt;set_bt_compare</a>,
-<a href="../api_c/db_set_bt_minkey.html">DB-&gt;set_bt_minkey</a>,
-<a href="../api_c/db_set_bt_prefix.html">DB-&gt;set_bt_prefix</a>,
-<a href="../api_c/db_set_cachesize.html">DB-&gt;set_cachesize</a>,
-<a href="../api_c/db_set_dup_compare.html">DB-&gt;set_dup_compare</a>,
-<a href="../api_c/db_set_errcall.html">DB-&gt;set_errcall</a>,
-<a href="../api_c/db_set_errfile.html">DB-&gt;set_errfile</a>,
-<a href="../api_c/db_set_errpfx.html">DB-&gt;set_errpfx</a>,
-<a href="../api_c/db_set_flags.html">DB-&gt;set_flags</a>,
-<a href="../api_c/db_set_h_ffactor.html">DB-&gt;set_h_ffactor</a>,
-<a href="../api_c/db_set_h_hash.html">DB-&gt;set_h_hash</a>,
-<a href="../api_c/db_set_h_nelem.html">DB-&gt;set_h_nelem</a>,
-<a href="../api_c/db_set_lorder.html">DB-&gt;set_lorder</a>,
-<a href="../api_c/db_set_malloc.html">DB-&gt;set_malloc</a>,
-<a href="../api_c/db_set_pagesize.html">DB-&gt;set_pagesize</a>,
-<a href="../api_c/db_set_paniccall.html">DB-&gt;set_paniccall</a>,
-<a href="../api_c/db_set_q_extentsize.html">DB-&gt;set_q_extentsize</a>,
-<a href="../api_c/db_set_realloc.html">DB-&gt;set_realloc</a>,
-<a href="../api_c/db_set_re_delim.html">DB-&gt;set_re_delim</a>,
-<a href="../api_c/db_set_re_len.html">DB-&gt;set_re_len</a>,
-<a href="../api_c/db_set_re_pad.html">DB-&gt;set_re_pad</a>,
-<a href="../api_c/db_set_re_source.html">DB-&gt;set_re_source</a>,
-<a href="../api_c/db_stat.html">DB-&gt;stat</a>,
-<a href="../api_c/db_sync.html">DB-&gt;sync</a>,
-<a href="../api_c/db_upgrade.html">DB-&gt;upgrade</a>
-and
-<a href="../api_c/db_verify.html">DB-&gt;verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/db_set_malloc.html b/bdb/docs/api_c/db_set_malloc.html
deleted file mode 100644
index 2d13196a3ad..00000000000
--- a/bdb/docs/api_c/db_set_malloc.html
+++ /dev/null
@@ -1,98 +0,0 @@
-<!--$Id: db_set_malloc.so,v 10.18 2000/05/25 13:47:07 dda Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DB-&gt;set_malloc</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DB-&gt;set_malloc</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DB-&gt;set_malloc(DB *db, void *(*db_malloc)(size_t size));
-</pre></h3>
-<h1>Description</h1>
-<p>Set the allocation function used by the DB methods to allocate
-memory in which to return key/data items to the application.
-<p>The <a href="../api_c/dbt.html#DB_DBT_MALLOC">DB_DBT_MALLOC</a> flag, when specified in the <a href="../api_c/dbt.html">DBT</a> object,
-will cause the DB methods to allocate and re-allocate memory which
-then becomes the responsibility of the calling application. See <a href="../api_c/dbt.html">DBT</a>
-for more information.
-<p>On systems where there may be multiple library versions of malloc (notably
-Windows NT), specifying the <a href="../api_c/dbt.html#DB_DBT_MALLOC">DB_DBT_MALLOC</a> flag will fail because
-the DB library will allocate memory from a different heap than
-the application will use to free it. To avoid this problem, the
-DB-&gt;set_malloc function can be used to pass Berkeley DB a reference to the
-application's allocation routine, in which case it will be used to
-allocate the memory returned when the <a href="../api_c/dbt.html#DB_DBT_MALLOC">DB_DBT_MALLOC</a> flag is set.
-<p>The function specified must match the calling conventions of the
-ANSI C X3.159-1989 (ANSI C) library routine of the same name.
-<p>The DB-&gt;set_malloc interface may only be used to configure Berkeley DB before
-the <a href="../api_c/db_open.html">DB-&gt;open</a> interface is called.
-<p>The DB-&gt;set_malloc function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/db_create.html">db_create</a>,
-<a href="../api_c/db_close.html">DB-&gt;close</a>,
-<a href="../api_c/db_cursor.html">DB-&gt;cursor</a>,
-<a href="../api_c/db_del.html">DB-&gt;del</a>,
-<a href="../api_c/db_err.html">DB-&gt;err</a>,
-<a href="../api_c/db_fd.html">DB-&gt;fd</a>,
-<a href="../api_c/db_get.html">DB-&gt;get</a>,
-<a href="../api_c/db_get_byteswapped.html">DB-&gt;get_byteswapped</a>,
-<a href="../api_c/db_get_type.html">DB-&gt;get_type</a>,
-<a href="../api_c/db_join.html">DB-&gt;join</a>,
-<a href="../api_c/db_key_range.html">DB-&gt;key_range</a>,
-<a href="../api_c/db_open.html">DB-&gt;open</a>,
-<a href="../api_c/db_put.html">DB-&gt;put</a>,
-<a href="../api_c/db_remove.html">DB-&gt;remove</a>,
-<a href="../api_c/db_set_bt_compare.html">DB-&gt;set_bt_compare</a>,
-<a href="../api_c/db_set_bt_minkey.html">DB-&gt;set_bt_minkey</a>,
-<a href="../api_c/db_set_bt_prefix.html">DB-&gt;set_bt_prefix</a>,
-<a href="../api_c/db_set_cachesize.html">DB-&gt;set_cachesize</a>,
-<a href="../api_c/db_set_dup_compare.html">DB-&gt;set_dup_compare</a>,
-<a href="../api_c/db_set_errcall.html">DB-&gt;set_errcall</a>,
-<a href="../api_c/db_set_errfile.html">DB-&gt;set_errfile</a>,
-<a href="../api_c/db_set_errpfx.html">DB-&gt;set_errpfx</a>,
-<a href="../api_c/db_set_flags.html">DB-&gt;set_flags</a>,
-<a href="../api_c/db_set_h_ffactor.html">DB-&gt;set_h_ffactor</a>,
-<a href="../api_c/db_set_h_hash.html">DB-&gt;set_h_hash</a>,
-<a href="../api_c/db_set_h_nelem.html">DB-&gt;set_h_nelem</a>,
-<a href="../api_c/db_set_lorder.html">DB-&gt;set_lorder</a>,
-<a href="../api_c/db_set_malloc.html">DB-&gt;set_malloc</a>,
-<a href="../api_c/db_set_pagesize.html">DB-&gt;set_pagesize</a>,
-<a href="../api_c/db_set_paniccall.html">DB-&gt;set_paniccall</a>,
-<a href="../api_c/db_set_q_extentsize.html">DB-&gt;set_q_extentsize</a>,
-<a href="../api_c/db_set_realloc.html">DB-&gt;set_realloc</a>,
-<a href="../api_c/db_set_re_delim.html">DB-&gt;set_re_delim</a>,
-<a href="../api_c/db_set_re_len.html">DB-&gt;set_re_len</a>,
-<a href="../api_c/db_set_re_pad.html">DB-&gt;set_re_pad</a>,
-<a href="../api_c/db_set_re_source.html">DB-&gt;set_re_source</a>,
-<a href="../api_c/db_stat.html">DB-&gt;stat</a>,
-<a href="../api_c/db_sync.html">DB-&gt;sync</a>,
-<a href="../api_c/db_upgrade.html">DB-&gt;upgrade</a>
-and
-<a href="../api_c/db_verify.html">DB-&gt;verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/db_set_pagesize.html b/bdb/docs/api_c/db_set_pagesize.html
deleted file mode 100644
index 7fa4af53dbc..00000000000
--- a/bdb/docs/api_c/db_set_pagesize.html
+++ /dev/null
@@ -1,90 +0,0 @@
-<!--$Id: db_set_pagesize.so,v 10.16 2000/05/01 21:57:43 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DB-&gt;set_pagesize</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DB-&gt;set_pagesize</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DB-&gt;set_pagesize(DB *db, u_int32_t pagesize);
-</pre></h3>
-<h1>Description</h1>
-<p>Set the size of the pages used to hold items in the database, in bytes.
-The minimum page size is 512 bytes and the maximum page size is 64K bytes.
-If the page size is not explicitly set, one is selected based on the
-underlying filesystem I/O block size. The automatically selected size
-has a lower limit of 512 bytes and an upper limit of 16K bytes.
-<p>For information on tuning the Berkeley DB page size, see
-<a href="../ref/am_conf/pagesize.html">Selecting a page size</a>.
-<p>The DB-&gt;set_pagesize interface may only be used to configure Berkeley DB before
-the <a href="../api_c/db_open.html">DB-&gt;open</a> interface is called.
-<p>The DB-&gt;set_pagesize function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/db_create.html">db_create</a>,
-<a href="../api_c/db_close.html">DB-&gt;close</a>,
-<a href="../api_c/db_cursor.html">DB-&gt;cursor</a>,
-<a href="../api_c/db_del.html">DB-&gt;del</a>,
-<a href="../api_c/db_err.html">DB-&gt;err</a>,
-<a href="../api_c/db_fd.html">DB-&gt;fd</a>,
-<a href="../api_c/db_get.html">DB-&gt;get</a>,
-<a href="../api_c/db_get_byteswapped.html">DB-&gt;get_byteswapped</a>,
-<a href="../api_c/db_get_type.html">DB-&gt;get_type</a>,
-<a href="../api_c/db_join.html">DB-&gt;join</a>,
-<a href="../api_c/db_key_range.html">DB-&gt;key_range</a>,
-<a href="../api_c/db_open.html">DB-&gt;open</a>,
-<a href="../api_c/db_put.html">DB-&gt;put</a>,
-<a href="../api_c/db_remove.html">DB-&gt;remove</a>,
-<a href="../api_c/db_set_bt_compare.html">DB-&gt;set_bt_compare</a>,
-<a href="../api_c/db_set_bt_minkey.html">DB-&gt;set_bt_minkey</a>,
-<a href="../api_c/db_set_bt_prefix.html">DB-&gt;set_bt_prefix</a>,
-<a href="../api_c/db_set_cachesize.html">DB-&gt;set_cachesize</a>,
-<a href="../api_c/db_set_dup_compare.html">DB-&gt;set_dup_compare</a>,
-<a href="../api_c/db_set_errcall.html">DB-&gt;set_errcall</a>,
-<a href="../api_c/db_set_errfile.html">DB-&gt;set_errfile</a>,
-<a href="../api_c/db_set_errpfx.html">DB-&gt;set_errpfx</a>,
-<a href="../api_c/db_set_flags.html">DB-&gt;set_flags</a>,
-<a href="../api_c/db_set_h_ffactor.html">DB-&gt;set_h_ffactor</a>,
-<a href="../api_c/db_set_h_hash.html">DB-&gt;set_h_hash</a>,
-<a href="../api_c/db_set_h_nelem.html">DB-&gt;set_h_nelem</a>,
-<a href="../api_c/db_set_lorder.html">DB-&gt;set_lorder</a>,
-<a href="../api_c/db_set_malloc.html">DB-&gt;set_malloc</a>,
-<a href="../api_c/db_set_pagesize.html">DB-&gt;set_pagesize</a>,
-<a href="../api_c/db_set_paniccall.html">DB-&gt;set_paniccall</a>,
-<a href="../api_c/db_set_q_extentsize.html">DB-&gt;set_q_extentsize</a>,
-<a href="../api_c/db_set_realloc.html">DB-&gt;set_realloc</a>,
-<a href="../api_c/db_set_re_delim.html">DB-&gt;set_re_delim</a>,
-<a href="../api_c/db_set_re_len.html">DB-&gt;set_re_len</a>,
-<a href="../api_c/db_set_re_pad.html">DB-&gt;set_re_pad</a>,
-<a href="../api_c/db_set_re_source.html">DB-&gt;set_re_source</a>,
-<a href="../api_c/db_stat.html">DB-&gt;stat</a>,
-<a href="../api_c/db_sync.html">DB-&gt;sync</a>,
-<a href="../api_c/db_upgrade.html">DB-&gt;upgrade</a>
-and
-<a href="../api_c/db_verify.html">DB-&gt;verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/db_set_paniccall.html b/bdb/docs/api_c/db_set_paniccall.html
deleted file mode 100644
index 506272c9630..00000000000
--- a/bdb/docs/api_c/db_set_paniccall.html
+++ /dev/null
@@ -1,70 +0,0 @@
-<!--$Id: db_set_paniccall.so,v 10.11 2000/07/09 19:12:16 bostic Exp $-->
-<!--$Id: m4.errset,v 10.8 2000/02/19 20:57:57 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DB-&gt;set_paniccall</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DB-&gt;set_paniccall</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DB-&gt;set_paniccall(DB *db,
- void (*paniccall)(DB_ENV *, int errval));
-</pre></h3>
-<h1>Description</h1>
-<p>Errors can occur in the Berkeley DB library where the only solution is to shut
-down the application and run recovery. (For example, if Berkeley DB is unable
-to write log records to disk because there is insufficient disk space.)
-In these cases, the value <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> is returned by Berkeley DB.
-<p>In these cases, it is also often simpler to shut down the application when
-such errors occur rather than attempting to gracefully return up the stack.
-The DB-&gt;set_paniccall function is used to specify a function to be called when
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> is about to be returned from a Berkeley DB method. When
-called, the <b>dbenv</b> argument will be a reference to the current
-environment, and the <b>errval</b> argument is the error value that would
-have been returned to the calling function.
-<p>For DB handles opened inside of Berkeley DB environments, calling the
-DB-&gt;set_paniccall function affects the entire environment and is equivalent to calling
-the <a href="../api_c/env_set_paniccall.html">DBENV-&gt;set_paniccall</a> function.
-<p>The DB-&gt;set_paniccall interface may be used to configure Berkeley DB at any time
-during the life of the application.
-<p>The DB-&gt;set_paniccall function returns a non-zero error value on failure and 0 on success.
-<h1>See Also</h1>
-<a href="../api_c/env_close.html">DBENV-&gt;close</a>,
-<a href="../api_c/env_create.html">db_env_create</a>,
-<a href="../api_c/env_open.html">DBENV-&gt;open</a>,
-<a href="../api_c/env_remove.html">DBENV-&gt;remove</a>,
-<a href="../api_c/db_err.html">DBENV-&gt;err</a>,
-<a href="../api_c/env_strerror.html">db_strerror</a>,
-<a href="../api_c/env_version.html">db_version</a>,
-<a href="../api_c/env_set_cachesize.html">DBENV-&gt;set_cachesize</a>,
-<a href="../api_c/env_set_errcall.html">DBENV-&gt;set_errcall</a>,
-<a href="../api_c/env_set_errfile.html">DBENV-&gt;set_errfile</a>,
-<a href="../api_c/env_set_errpfx.html">DBENV-&gt;set_errpfx</a>,
-<a href="../api_c/env_set_flags.html">DBENV-&gt;set_flags</a>,
-<a href="../api_c/env_set_mutexlocks.html">DBENV-&gt;set_mutexlocks</a>,
-<a href="../api_c/env_set_paniccall.html">DBENV-&gt;set_paniccall</a>,
-and
-<a href="../api_c/env_set_verbose.html">DBENV-&gt;set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/db_set_q_extentsize.html b/bdb/docs/api_c/db_set_q_extentsize.html
deleted file mode 100644
index 7ab89bdba5d..00000000000
--- a/bdb/docs/api_c/db_set_q_extentsize.html
+++ /dev/null
@@ -1,90 +0,0 @@
-<!--$Id: db_set_q_extentsize.so,v 1.3 2000/11/21 19:25:45 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DB-&gt;set_q_extentsize</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DB-&gt;set_q_extentsize</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DB-&gt;set_q_extentsize(DB *db, u_int32_t extentsize);
-</pre></h3>
-<h1>Description</h1>
-<p>Set the size of the extents used to hold pages in a Queue database,
-specified as a number of pages. Each extent is created as a separate
-physical file. If no extent size is set, the default behavior is to
-create only a single underlying database file.
-<p>For information on tuning the extent size, see
-<a href="../ref/am_conf/extentsize.html">Selecting a extent size</a>.
-<p>The DB-&gt;set_q_extentsize interface may only be used to configure Berkeley DB before
-the <a href="../api_c/db_open.html">DB-&gt;open</a> interface is called.
-<p>The DB-&gt;set_q_extentsize function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_c/db_open.html">DB-&gt;open</a> was called.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/db_create.html">db_create</a>,
-<a href="../api_c/db_close.html">DB-&gt;close</a>,
-<a href="../api_c/db_cursor.html">DB-&gt;cursor</a>,
-<a href="../api_c/db_del.html">DB-&gt;del</a>,
-<a href="../api_c/db_err.html">DB-&gt;err</a>,
-<a href="../api_c/db_fd.html">DB-&gt;fd</a>,
-<a href="../api_c/db_get.html">DB-&gt;get</a>,
-<a href="../api_c/db_get_byteswapped.html">DB-&gt;get_byteswapped</a>,
-<a href="../api_c/db_get_type.html">DB-&gt;get_type</a>,
-<a href="../api_c/db_join.html">DB-&gt;join</a>,
-<a href="../api_c/db_key_range.html">DB-&gt;key_range</a>,
-<a href="../api_c/db_open.html">DB-&gt;open</a>,
-<a href="../api_c/db_put.html">DB-&gt;put</a>,
-<a href="../api_c/db_remove.html">DB-&gt;remove</a>,
-<a href="../api_c/db_set_bt_compare.html">DB-&gt;set_bt_compare</a>,
-<a href="../api_c/db_set_bt_minkey.html">DB-&gt;set_bt_minkey</a>,
-<a href="../api_c/db_set_bt_prefix.html">DB-&gt;set_bt_prefix</a>,
-<a href="../api_c/db_set_cachesize.html">DB-&gt;set_cachesize</a>,
-<a href="../api_c/db_set_dup_compare.html">DB-&gt;set_dup_compare</a>,
-<a href="../api_c/db_set_errcall.html">DB-&gt;set_errcall</a>,
-<a href="../api_c/db_set_errfile.html">DB-&gt;set_errfile</a>,
-<a href="../api_c/db_set_errpfx.html">DB-&gt;set_errpfx</a>,
-<a href="../api_c/db_set_flags.html">DB-&gt;set_flags</a>,
-<a href="../api_c/db_set_h_ffactor.html">DB-&gt;set_h_ffactor</a>,
-<a href="../api_c/db_set_h_hash.html">DB-&gt;set_h_hash</a>,
-<a href="../api_c/db_set_h_nelem.html">DB-&gt;set_h_nelem</a>,
-<a href="../api_c/db_set_lorder.html">DB-&gt;set_lorder</a>,
-<a href="../api_c/db_set_malloc.html">DB-&gt;set_malloc</a>,
-<a href="../api_c/db_set_pagesize.html">DB-&gt;set_pagesize</a>,
-<a href="../api_c/db_set_paniccall.html">DB-&gt;set_paniccall</a>,
-<a href="../api_c/db_set_q_extentsize.html">DB-&gt;set_q_extentsize</a>,
-<a href="../api_c/db_set_realloc.html">DB-&gt;set_realloc</a>,
-<a href="../api_c/db_set_re_delim.html">DB-&gt;set_re_delim</a>,
-<a href="../api_c/db_set_re_len.html">DB-&gt;set_re_len</a>,
-<a href="../api_c/db_set_re_pad.html">DB-&gt;set_re_pad</a>,
-<a href="../api_c/db_set_re_source.html">DB-&gt;set_re_source</a>,
-<a href="../api_c/db_stat.html">DB-&gt;stat</a>,
-<a href="../api_c/db_sync.html">DB-&gt;sync</a>,
-<a href="../api_c/db_upgrade.html">DB-&gt;upgrade</a>
-and
-<a href="../api_c/db_verify.html">DB-&gt;verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/db_set_re_delim.html b/bdb/docs/api_c/db_set_re_delim.html
deleted file mode 100644
index 6101130a5e5..00000000000
--- a/bdb/docs/api_c/db_set_re_delim.html
+++ /dev/null
@@ -1,90 +0,0 @@
-<!--$Id: db_set_re_delim.so,v 10.17 2000/05/01 21:57:43 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DB-&gt;set_re_delim</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DB-&gt;set_re_delim</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DB-&gt;set_re_delim(DB *db, int re_delim);
-</pre></h3>
-<h1>Description</h1>
-<p>Set the delimiting byte used to mark the end of a record in the backing
-source file for the Recno access method.
-<p>This byte is used for variable length records, if the <b>re_source</b>
-file is specified. If the <b>re_source</b> file is specified and no
-delimiting byte was specified, &lt;newline&gt; characters (i.e.
-ASCII 0x0a) are interpreted as end-of-record markers.
-<p>The DB-&gt;set_re_delim interface may only be used to configure Berkeley DB before
-the <a href="../api_c/db_open.html">DB-&gt;open</a> interface is called.
-<p>The DB-&gt;set_re_delim function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_c/db_open.html">DB-&gt;open</a> was called.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/db_create.html">db_create</a>,
-<a href="../api_c/db_close.html">DB-&gt;close</a>,
-<a href="../api_c/db_cursor.html">DB-&gt;cursor</a>,
-<a href="../api_c/db_del.html">DB-&gt;del</a>,
-<a href="../api_c/db_err.html">DB-&gt;err</a>,
-<a href="../api_c/db_fd.html">DB-&gt;fd</a>,
-<a href="../api_c/db_get.html">DB-&gt;get</a>,
-<a href="../api_c/db_get_byteswapped.html">DB-&gt;get_byteswapped</a>,
-<a href="../api_c/db_get_type.html">DB-&gt;get_type</a>,
-<a href="../api_c/db_join.html">DB-&gt;join</a>,
-<a href="../api_c/db_key_range.html">DB-&gt;key_range</a>,
-<a href="../api_c/db_open.html">DB-&gt;open</a>,
-<a href="../api_c/db_put.html">DB-&gt;put</a>,
-<a href="../api_c/db_remove.html">DB-&gt;remove</a>,
-<a href="../api_c/db_set_bt_compare.html">DB-&gt;set_bt_compare</a>,
-<a href="../api_c/db_set_bt_minkey.html">DB-&gt;set_bt_minkey</a>,
-<a href="../api_c/db_set_bt_prefix.html">DB-&gt;set_bt_prefix</a>,
-<a href="../api_c/db_set_cachesize.html">DB-&gt;set_cachesize</a>,
-<a href="../api_c/db_set_dup_compare.html">DB-&gt;set_dup_compare</a>,
-<a href="../api_c/db_set_errcall.html">DB-&gt;set_errcall</a>,
-<a href="../api_c/db_set_errfile.html">DB-&gt;set_errfile</a>,
-<a href="../api_c/db_set_errpfx.html">DB-&gt;set_errpfx</a>,
-<a href="../api_c/db_set_flags.html">DB-&gt;set_flags</a>,
-<a href="../api_c/db_set_h_ffactor.html">DB-&gt;set_h_ffactor</a>,
-<a href="../api_c/db_set_h_hash.html">DB-&gt;set_h_hash</a>,
-<a href="../api_c/db_set_h_nelem.html">DB-&gt;set_h_nelem</a>,
-<a href="../api_c/db_set_lorder.html">DB-&gt;set_lorder</a>,
-<a href="../api_c/db_set_malloc.html">DB-&gt;set_malloc</a>,
-<a href="../api_c/db_set_pagesize.html">DB-&gt;set_pagesize</a>,
-<a href="../api_c/db_set_paniccall.html">DB-&gt;set_paniccall</a>,
-<a href="../api_c/db_set_q_extentsize.html">DB-&gt;set_q_extentsize</a>,
-<a href="../api_c/db_set_realloc.html">DB-&gt;set_realloc</a>,
-<a href="../api_c/db_set_re_delim.html">DB-&gt;set_re_delim</a>,
-<a href="../api_c/db_set_re_len.html">DB-&gt;set_re_len</a>,
-<a href="../api_c/db_set_re_pad.html">DB-&gt;set_re_pad</a>,
-<a href="../api_c/db_set_re_source.html">DB-&gt;set_re_source</a>,
-<a href="../api_c/db_stat.html">DB-&gt;stat</a>,
-<a href="../api_c/db_sync.html">DB-&gt;sync</a>,
-<a href="../api_c/db_upgrade.html">DB-&gt;upgrade</a>
-and
-<a href="../api_c/db_verify.html">DB-&gt;verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/db_set_re_len.html b/bdb/docs/api_c/db_set_re_len.html
deleted file mode 100644
index 67b67ddfc0a..00000000000
--- a/bdb/docs/api_c/db_set_re_len.html
+++ /dev/null
@@ -1,94 +0,0 @@
-<!--$Id: db_set_re_len.so,v 10.17 2000/05/01 21:57:43 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DB-&gt;set_re_len</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DB-&gt;set_re_len</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DB-&gt;set_re_len(DB *db, u_int32_t re_len);
-</pre></h3>
-<h1>Description</h1>
-<p>For the Queue access method, specify that the records are of length
-<b>re_len</b>.
-<p>For the Recno access method, specify that the records are fixed-length,
-not byte delimited, and are of length <b>re_len</b>.
-<p>Any records added to the database that are less than <b>re_len</b> bytes
-long are automatically padded (see <a href="../api_c/db_set_re_pad.html">DB-&gt;set_re_pad</a> for more
-information).
-<p>Any attempt to insert records into the database that are greater than
-<b>re_len</b> bytes long will cause the call to fail immediately and
-return an error.
-<p>The DB-&gt;set_re_len interface may only be used to configure Berkeley DB before
-the <a href="../api_c/db_open.html">DB-&gt;open</a> interface is called.
-<p>The DB-&gt;set_re_len function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_c/db_open.html">DB-&gt;open</a> was called.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/db_create.html">db_create</a>,
-<a href="../api_c/db_close.html">DB-&gt;close</a>,
-<a href="../api_c/db_cursor.html">DB-&gt;cursor</a>,
-<a href="../api_c/db_del.html">DB-&gt;del</a>,
-<a href="../api_c/db_err.html">DB-&gt;err</a>,
-<a href="../api_c/db_fd.html">DB-&gt;fd</a>,
-<a href="../api_c/db_get.html">DB-&gt;get</a>,
-<a href="../api_c/db_get_byteswapped.html">DB-&gt;get_byteswapped</a>,
-<a href="../api_c/db_get_type.html">DB-&gt;get_type</a>,
-<a href="../api_c/db_join.html">DB-&gt;join</a>,
-<a href="../api_c/db_key_range.html">DB-&gt;key_range</a>,
-<a href="../api_c/db_open.html">DB-&gt;open</a>,
-<a href="../api_c/db_put.html">DB-&gt;put</a>,
-<a href="../api_c/db_remove.html">DB-&gt;remove</a>,
-<a href="../api_c/db_set_bt_compare.html">DB-&gt;set_bt_compare</a>,
-<a href="../api_c/db_set_bt_minkey.html">DB-&gt;set_bt_minkey</a>,
-<a href="../api_c/db_set_bt_prefix.html">DB-&gt;set_bt_prefix</a>,
-<a href="../api_c/db_set_cachesize.html">DB-&gt;set_cachesize</a>,
-<a href="../api_c/db_set_dup_compare.html">DB-&gt;set_dup_compare</a>,
-<a href="../api_c/db_set_errcall.html">DB-&gt;set_errcall</a>,
-<a href="../api_c/db_set_errfile.html">DB-&gt;set_errfile</a>,
-<a href="../api_c/db_set_errpfx.html">DB-&gt;set_errpfx</a>,
-<a href="../api_c/db_set_flags.html">DB-&gt;set_flags</a>,
-<a href="../api_c/db_set_h_ffactor.html">DB-&gt;set_h_ffactor</a>,
-<a href="../api_c/db_set_h_hash.html">DB-&gt;set_h_hash</a>,
-<a href="../api_c/db_set_h_nelem.html">DB-&gt;set_h_nelem</a>,
-<a href="../api_c/db_set_lorder.html">DB-&gt;set_lorder</a>,
-<a href="../api_c/db_set_malloc.html">DB-&gt;set_malloc</a>,
-<a href="../api_c/db_set_pagesize.html">DB-&gt;set_pagesize</a>,
-<a href="../api_c/db_set_paniccall.html">DB-&gt;set_paniccall</a>,
-<a href="../api_c/db_set_q_extentsize.html">DB-&gt;set_q_extentsize</a>,
-<a href="../api_c/db_set_realloc.html">DB-&gt;set_realloc</a>,
-<a href="../api_c/db_set_re_delim.html">DB-&gt;set_re_delim</a>,
-<a href="../api_c/db_set_re_len.html">DB-&gt;set_re_len</a>,
-<a href="../api_c/db_set_re_pad.html">DB-&gt;set_re_pad</a>,
-<a href="../api_c/db_set_re_source.html">DB-&gt;set_re_source</a>,
-<a href="../api_c/db_stat.html">DB-&gt;stat</a>,
-<a href="../api_c/db_sync.html">DB-&gt;sync</a>,
-<a href="../api_c/db_upgrade.html">DB-&gt;upgrade</a>
-and
-<a href="../api_c/db_verify.html">DB-&gt;verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/db_set_re_pad.html b/bdb/docs/api_c/db_set_re_pad.html
deleted file mode 100644
index 43a6f947f5d..00000000000
--- a/bdb/docs/api_c/db_set_re_pad.html
+++ /dev/null
@@ -1,88 +0,0 @@
-<!--$Id: db_set_re_pad.so,v 10.16 2000/05/01 21:57:43 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DB-&gt;set_re_pad</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DB-&gt;set_re_pad</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DB-&gt;set_re_pad(DB *db, int re_pad);
-</pre></h3>
-<h1>Description</h1>
-<p>Set the padding character for short, fixed-length records for the Queue
-and Recno access methods.
-<p>If no pad character is specified, &lt;space&gt; characters (i.e.,
-ASCII 0x20) are used for padding.
-<p>The DB-&gt;set_re_pad interface may only be used to configure Berkeley DB before
-the <a href="../api_c/db_open.html">DB-&gt;open</a> interface is called.
-<p>The DB-&gt;set_re_pad function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_c/db_open.html">DB-&gt;open</a> was called.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/db_create.html">db_create</a>,
-<a href="../api_c/db_close.html">DB-&gt;close</a>,
-<a href="../api_c/db_cursor.html">DB-&gt;cursor</a>,
-<a href="../api_c/db_del.html">DB-&gt;del</a>,
-<a href="../api_c/db_err.html">DB-&gt;err</a>,
-<a href="../api_c/db_fd.html">DB-&gt;fd</a>,
-<a href="../api_c/db_get.html">DB-&gt;get</a>,
-<a href="../api_c/db_get_byteswapped.html">DB-&gt;get_byteswapped</a>,
-<a href="../api_c/db_get_type.html">DB-&gt;get_type</a>,
-<a href="../api_c/db_join.html">DB-&gt;join</a>,
-<a href="../api_c/db_key_range.html">DB-&gt;key_range</a>,
-<a href="../api_c/db_open.html">DB-&gt;open</a>,
-<a href="../api_c/db_put.html">DB-&gt;put</a>,
-<a href="../api_c/db_remove.html">DB-&gt;remove</a>,
-<a href="../api_c/db_set_bt_compare.html">DB-&gt;set_bt_compare</a>,
-<a href="../api_c/db_set_bt_minkey.html">DB-&gt;set_bt_minkey</a>,
-<a href="../api_c/db_set_bt_prefix.html">DB-&gt;set_bt_prefix</a>,
-<a href="../api_c/db_set_cachesize.html">DB-&gt;set_cachesize</a>,
-<a href="../api_c/db_set_dup_compare.html">DB-&gt;set_dup_compare</a>,
-<a href="../api_c/db_set_errcall.html">DB-&gt;set_errcall</a>,
-<a href="../api_c/db_set_errfile.html">DB-&gt;set_errfile</a>,
-<a href="../api_c/db_set_errpfx.html">DB-&gt;set_errpfx</a>,
-<a href="../api_c/db_set_flags.html">DB-&gt;set_flags</a>,
-<a href="../api_c/db_set_h_ffactor.html">DB-&gt;set_h_ffactor</a>,
-<a href="../api_c/db_set_h_hash.html">DB-&gt;set_h_hash</a>,
-<a href="../api_c/db_set_h_nelem.html">DB-&gt;set_h_nelem</a>,
-<a href="../api_c/db_set_lorder.html">DB-&gt;set_lorder</a>,
-<a href="../api_c/db_set_malloc.html">DB-&gt;set_malloc</a>,
-<a href="../api_c/db_set_pagesize.html">DB-&gt;set_pagesize</a>,
-<a href="../api_c/db_set_paniccall.html">DB-&gt;set_paniccall</a>,
-<a href="../api_c/db_set_q_extentsize.html">DB-&gt;set_q_extentsize</a>,
-<a href="../api_c/db_set_realloc.html">DB-&gt;set_realloc</a>,
-<a href="../api_c/db_set_re_delim.html">DB-&gt;set_re_delim</a>,
-<a href="../api_c/db_set_re_len.html">DB-&gt;set_re_len</a>,
-<a href="../api_c/db_set_re_pad.html">DB-&gt;set_re_pad</a>,
-<a href="../api_c/db_set_re_source.html">DB-&gt;set_re_source</a>,
-<a href="../api_c/db_stat.html">DB-&gt;stat</a>,
-<a href="../api_c/db_sync.html">DB-&gt;sync</a>,
-<a href="../api_c/db_upgrade.html">DB-&gt;upgrade</a>
-and
-<a href="../api_c/db_verify.html">DB-&gt;verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/db_set_re_source.html b/bdb/docs/api_c/db_set_re_source.html
deleted file mode 100644
index 1a57cfea339..00000000000
--- a/bdb/docs/api_c/db_set_re_source.html
+++ /dev/null
@@ -1,130 +0,0 @@
-<!--$Id: db_set_re_source.so,v 10.17 2000/05/01 21:57:43 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DB-&gt;set_re_source</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DB-&gt;set_re_source</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DB-&gt;set_re_source(DB *db, char *re_source);
-</pre></h3>
-<h1>Description</h1>
-<p>Set the underlying source file for the Recno access method. The purpose
-of the <b>re_source</b> value is to provide fast access and modification
-to databases that are normally stored as flat text files.
-<p>If the <b>re_source</b> field is set, it specifies an underlying flat
-text database file that is read to initialize a transient record number
-index. In the case of variable length records, the records are separated
-as specified by <a href="../api_c/db_set_re_delim.html">DB-&gt;set_re_delim</a>. For example, standard UNIX
-byte stream files can be interpreted as a sequence of variable length
-records separated by &lt;newline&gt; characters.
-<p>In addition, when cached data would normally be written back to the
-underlying database file (e.g., the <a href="../api_c/db_close.html">DB-&gt;close</a> or <a href="../api_c/db_sync.html">DB-&gt;sync</a>
-methods are called), the in-memory copy of the database will be written
-back to the <b>re_source</b> file.
-<p>By default, the backing source file is read lazily, i.e., records are not
-read from the file until they are requested by the application.
-<b>If multiple processes (not threads) are accessing a Recno database
-concurrently and either inserting or deleting records, the backing source
-file must be read in its entirety before more than a single process
-accesses the database, and only that process should specify the backing
-source file as part of the <a href="../api_c/db_open.html">DB-&gt;open</a> call. See the <a href="../api_c/db_set_flags.html#DB_SNAPSHOT">DB_SNAPSHOT</a>
-flag for more information.</b>
-<p><b>Reading and writing the backing source file specified by <b>re_source</b>
-cannot be transactionally protected because it involves filesystem
-operations that are not part of the Db transaction methodology.</b>
-For this reason, if a temporary database is used to hold the records,
-i.e., a NULL was specified as the <b>file</b> argument to <a href="../api_c/db_open.html">DB-&gt;open</a>,
-it is possible to lose the contents of the <b>re_source</b> file, e.g.,
-if the system crashes at the right instant.
-If a file is used to hold the database, i.e., a file name was specified
-as the <b>file</b> argument to <a href="../api_c/db_open.html">DB-&gt;open</a>, normal database
-recovery on that file can be used to prevent information loss,
-although it is still possible that the contents of <b>re_source</b>
-will be lost if the system crashes.
-<p>The <b>re_source</b> file must already exist (but may be zero-length) when
-<a href="../api_c/db_open.html">DB-&gt;open</a> is called.
-<p>It is not an error to specify a read-only <b>re_source</b> file when
-creating a database, nor is it an error to modify the resulting database.
-However, any attempt to write the changes to the backing source file using
-either the <a href="../api_c/db_sync.html">DB-&gt;sync</a> or <a href="../api_c/db_close.html">DB-&gt;close</a> functions will fail, of course.
-Specify the <a href="../api_c/db_close.html#DB_NOSYNC">DB_NOSYNC</a> flag to the <a href="../api_c/db_close.html">DB-&gt;close</a> function to stop it
-from attempting to write the changes to the backing file, instead, they
-will be silently discarded.
-<p>For all of the above reasons, the <b>re_source</b> field is generally
-used to specify databases that are read-only for DB applications,
-and that are either generated on the fly by software tools, or modified
-using a different mechanism, e.g., a text editor.
-<p>The DB-&gt;set_re_source interface may only be used to configure Berkeley DB before
-the <a href="../api_c/db_open.html">DB-&gt;open</a> interface is called.
-<p>The DB-&gt;set_re_source function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_c/db_open.html">DB-&gt;open</a> was called.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/db_create.html">db_create</a>,
-<a href="../api_c/db_close.html">DB-&gt;close</a>,
-<a href="../api_c/db_cursor.html">DB-&gt;cursor</a>,
-<a href="../api_c/db_del.html">DB-&gt;del</a>,
-<a href="../api_c/db_err.html">DB-&gt;err</a>,
-<a href="../api_c/db_fd.html">DB-&gt;fd</a>,
-<a href="../api_c/db_get.html">DB-&gt;get</a>,
-<a href="../api_c/db_get_byteswapped.html">DB-&gt;get_byteswapped</a>,
-<a href="../api_c/db_get_type.html">DB-&gt;get_type</a>,
-<a href="../api_c/db_join.html">DB-&gt;join</a>,
-<a href="../api_c/db_key_range.html">DB-&gt;key_range</a>,
-<a href="../api_c/db_open.html">DB-&gt;open</a>,
-<a href="../api_c/db_put.html">DB-&gt;put</a>,
-<a href="../api_c/db_remove.html">DB-&gt;remove</a>,
-<a href="../api_c/db_set_bt_compare.html">DB-&gt;set_bt_compare</a>,
-<a href="../api_c/db_set_bt_minkey.html">DB-&gt;set_bt_minkey</a>,
-<a href="../api_c/db_set_bt_prefix.html">DB-&gt;set_bt_prefix</a>,
-<a href="../api_c/db_set_cachesize.html">DB-&gt;set_cachesize</a>,
-<a href="../api_c/db_set_dup_compare.html">DB-&gt;set_dup_compare</a>,
-<a href="../api_c/db_set_errcall.html">DB-&gt;set_errcall</a>,
-<a href="../api_c/db_set_errfile.html">DB-&gt;set_errfile</a>,
-<a href="../api_c/db_set_errpfx.html">DB-&gt;set_errpfx</a>,
-<a href="../api_c/db_set_flags.html">DB-&gt;set_flags</a>,
-<a href="../api_c/db_set_h_ffactor.html">DB-&gt;set_h_ffactor</a>,
-<a href="../api_c/db_set_h_hash.html">DB-&gt;set_h_hash</a>,
-<a href="../api_c/db_set_h_nelem.html">DB-&gt;set_h_nelem</a>,
-<a href="../api_c/db_set_lorder.html">DB-&gt;set_lorder</a>,
-<a href="../api_c/db_set_malloc.html">DB-&gt;set_malloc</a>,
-<a href="../api_c/db_set_pagesize.html">DB-&gt;set_pagesize</a>,
-<a href="../api_c/db_set_paniccall.html">DB-&gt;set_paniccall</a>,
-<a href="../api_c/db_set_q_extentsize.html">DB-&gt;set_q_extentsize</a>,
-<a href="../api_c/db_set_realloc.html">DB-&gt;set_realloc</a>,
-<a href="../api_c/db_set_re_delim.html">DB-&gt;set_re_delim</a>,
-<a href="../api_c/db_set_re_len.html">DB-&gt;set_re_len</a>,
-<a href="../api_c/db_set_re_pad.html">DB-&gt;set_re_pad</a>,
-<a href="../api_c/db_set_re_source.html">DB-&gt;set_re_source</a>,
-<a href="../api_c/db_stat.html">DB-&gt;stat</a>,
-<a href="../api_c/db_sync.html">DB-&gt;sync</a>,
-<a href="../api_c/db_upgrade.html">DB-&gt;upgrade</a>
-and
-<a href="../api_c/db_verify.html">DB-&gt;verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/db_set_realloc.html b/bdb/docs/api_c/db_set_realloc.html
deleted file mode 100644
index b3d8a05f771..00000000000
--- a/bdb/docs/api_c/db_set_realloc.html
+++ /dev/null
@@ -1,99 +0,0 @@
-<!--$Id: db_set_realloc.so,v 10.8 2000/05/25 13:47:07 dda Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DB-&gt;set_realloc</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DB-&gt;set_realloc</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DB-&gt;set_realloc(DB *db,
- void *(*db_realloc_fcn)(void *ptr, size_t size));
-</pre></h3>
-<h1>Description</h1>
-<p>Set the realloc function used by the DB methods to allocate memory
-in which to return key/data items to the application.
-<p>The <a href="../api_c/dbt.html#DB_DBT_REALLOC">DB_DBT_REALLOC</a> flag, when specified in the <a href="../api_c/dbt.html">DBT</a> object,
-will cause the DB methods to allocate and re-allocate memory which
-then becomes the responsibility of the calling application. See <a href="../api_c/dbt.html">DBT</a>
-for more information.
-<p>On systems where there may be multiple library versions of realloc (notably
-Windows NT), specifying the <a href="../api_c/dbt.html#DB_DBT_REALLOC">DB_DBT_REALLOC</a> flag will fail because
-the DB library will allocate memory from a different heap than
-the application will use to free it. To avoid this problem, the
-DB-&gt;set_realloc function can be used to pass Berkeley DB a reference to the
-application's allocation routine, in which case it will be used to
-allocate the memory returned when the <a href="../api_c/dbt.html#DB_DBT_REALLOC">DB_DBT_REALLOC</a> flag is set.
-<p>The function specified must match the calling conventions of the
-ANSI C X3.159-1989 (ANSI C) library routine of the same name.
-<p>The DB-&gt;set_realloc interface may only be used to configure Berkeley DB before
-the <a href="../api_c/db_open.html">DB-&gt;open</a> interface is called.
-<p>The DB-&gt;set_realloc function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/db_create.html">db_create</a>,
-<a href="../api_c/db_close.html">DB-&gt;close</a>,
-<a href="../api_c/db_cursor.html">DB-&gt;cursor</a>,
-<a href="../api_c/db_del.html">DB-&gt;del</a>,
-<a href="../api_c/db_err.html">DB-&gt;err</a>,
-<a href="../api_c/db_fd.html">DB-&gt;fd</a>,
-<a href="../api_c/db_get.html">DB-&gt;get</a>,
-<a href="../api_c/db_get_byteswapped.html">DB-&gt;get_byteswapped</a>,
-<a href="../api_c/db_get_type.html">DB-&gt;get_type</a>,
-<a href="../api_c/db_join.html">DB-&gt;join</a>,
-<a href="../api_c/db_key_range.html">DB-&gt;key_range</a>,
-<a href="../api_c/db_open.html">DB-&gt;open</a>,
-<a href="../api_c/db_put.html">DB-&gt;put</a>,
-<a href="../api_c/db_remove.html">DB-&gt;remove</a>,
-<a href="../api_c/db_set_bt_compare.html">DB-&gt;set_bt_compare</a>,
-<a href="../api_c/db_set_bt_minkey.html">DB-&gt;set_bt_minkey</a>,
-<a href="../api_c/db_set_bt_prefix.html">DB-&gt;set_bt_prefix</a>,
-<a href="../api_c/db_set_cachesize.html">DB-&gt;set_cachesize</a>,
-<a href="../api_c/db_set_dup_compare.html">DB-&gt;set_dup_compare</a>,
-<a href="../api_c/db_set_errcall.html">DB-&gt;set_errcall</a>,
-<a href="../api_c/db_set_errfile.html">DB-&gt;set_errfile</a>,
-<a href="../api_c/db_set_errpfx.html">DB-&gt;set_errpfx</a>,
-<a href="../api_c/db_set_flags.html">DB-&gt;set_flags</a>,
-<a href="../api_c/db_set_h_ffactor.html">DB-&gt;set_h_ffactor</a>,
-<a href="../api_c/db_set_h_hash.html">DB-&gt;set_h_hash</a>,
-<a href="../api_c/db_set_h_nelem.html">DB-&gt;set_h_nelem</a>,
-<a href="../api_c/db_set_lorder.html">DB-&gt;set_lorder</a>,
-<a href="../api_c/db_set_malloc.html">DB-&gt;set_malloc</a>,
-<a href="../api_c/db_set_pagesize.html">DB-&gt;set_pagesize</a>,
-<a href="../api_c/db_set_paniccall.html">DB-&gt;set_paniccall</a>,
-<a href="../api_c/db_set_q_extentsize.html">DB-&gt;set_q_extentsize</a>,
-<a href="../api_c/db_set_realloc.html">DB-&gt;set_realloc</a>,
-<a href="../api_c/db_set_re_delim.html">DB-&gt;set_re_delim</a>,
-<a href="../api_c/db_set_re_len.html">DB-&gt;set_re_len</a>,
-<a href="../api_c/db_set_re_pad.html">DB-&gt;set_re_pad</a>,
-<a href="../api_c/db_set_re_source.html">DB-&gt;set_re_source</a>,
-<a href="../api_c/db_stat.html">DB-&gt;stat</a>,
-<a href="../api_c/db_sync.html">DB-&gt;sync</a>,
-<a href="../api_c/db_upgrade.html">DB-&gt;upgrade</a>
-and
-<a href="../api_c/db_verify.html">DB-&gt;verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/db_stat.html b/bdb/docs/api_c/db_stat.html
deleted file mode 100644
index 92412d76d78..00000000000
--- a/bdb/docs/api_c/db_stat.html
+++ /dev/null
@@ -1,195 +0,0 @@
-<!--$Id: db_stat.so,v 10.37 2000/10/03 21:55:45 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DB-&gt;stat</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DB-&gt;stat</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DB-&gt;stat(DB *db,
- void *sp, void *(*db_malloc)(size_t), u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The DB-&gt;stat function creates a statistical structure and
-copies a pointer to it into user-specified memory locations.
-Specifically, if <b>sp</b> is non-NULL, a pointer to the statistics
-for the database are copied into the memory location it references.
-<p>Statistical structures are created in allocated memory. If <b>db_malloc</b> is non-NULL, it
-is called to allocate the memory, otherwise, the library function
-<b>malloc</b>(3) is used. The function <b>db_malloc</b> must match
-the calling conventions of the <b>malloc</b>(3) library routine.
-Regardless, the caller is responsible for deallocating the returned
-memory. To deallocate returned memory, free the returned memory
-reference, references inside the returned memory do not need to be
-individually freed.
-<p>The <b>flags</b> parameter must be set to 0 or the following value:
-<p><dl compact>
-<p><dt><a name="DB_CACHED_COUNTS">DB_CACHED_COUNTS</a><dd>Return a cached count of the keys and records in a database. This flag
-makes it possible for applications to request an possibly approximate key
-and record count without incurring the performance penalty of traversing
-the entire database. The statistics information described for the access
-method <b>XX_nkeys</b> and <b>XX_ndata</b> fields below is filled in,
-but no other information is collected. If the cached information has
-never been set, the fields will be returned set to 0.
-<p><dt><a name="DB_RECORDCOUNT">DB_RECORDCOUNT</a><dd>Return a count of the records in a Btree or Recno Access Method database.
-This flag makes it possible for applications to request a record count
-without incurring the performance penalty of traversing the entire
-database. The statistics information described for the <b>bt_nkeys</b>
-field below is filled in, but no other information is collected.
-<p>This option is only available for Recno databases, or Btree databases
-where the underlying database was created with the <a href="../api_c/db_set_flags.html#DB_RECNUM">DB_RECNUM</a>
-flag.
-</dl>
-<p>The DB-&gt;stat function may access all of the pages in the database,
-incurring a severe performance penalty as well as possibly flushing the
-underlying buffer pool.
-<p>In the presence of multiple threads or processes accessing an active
-database, the information returned by DB-&gt;stat may be out-of-date.
-<p>If the database was not opened readonly and the DB_CACHED_COUNTS
-flag was not specified, the cached key and record numbers will be updated
-after the statistical information has been gathered.
-<p>The DB-&gt;stat function cannot be transaction protected. For this reason,
-it should be called in a thread of control that has no open cursors or
-active transactions.
-<p>The DB-&gt;stat function returns a non-zero error value on failure and 0 on success.
-<h3>Hash Statistics</h3>
-<p>In the case of a Hash database,
-the statistics are stored in a structure of type DB_HASH_STAT. The
-following fields will be filled in:
-<p><dl compact>
-<p><dt>u_int32_t hash_magic;<dd>Magic number that identifies the file as a Hash file.
-<dt>u_int32_t hash_version;<dd>The version of the Hash database.
-<dt>u_int32_t hash_nkeys;<dd>The number of unique keys in the database.
-<dt>u_int32_t hash_ndata;<dd>The number of key/data pairs in the database.]
-<dt>u_int32_t hash_pagesize;<dd>The underlying Hash database page (and bucket) size.
-<dt>u_int32_t hash_nelem;<dd>The estimated size of the hash table specified at database creation time.
-<dt>u_int32_t hash_ffactor;<dd>The desired fill factor (number of items per bucket) specified at database
-creation time.
-<dt>u_int32_t hash_buckets;<dd>The number of hash buckets.
-<dt>u_int32_t hash_free;<dd>The number of pages on the free list.
-<dt>u_int32_t hash_bfree;<dd>The number of bytes free on bucket pages.
-<dt>u_int32_t hash_bigpages;<dd>The number of big key/data pages.
-<dt>u_int32_t hash_big_bfree;<dd>The number of bytes free on big item pages.
-<dt>u_int32_t hash_overflows;<dd>The number of overflow pages (overflow pages are pages that contain items
-that did not fit in the main bucket page).
-<dt>u_int32_t hash_ovfl_free;<dd>The number of bytes free on overflow pages.
-<dt>u_int32_t hash_dup;<dd>The number of duplicate pages.
-<dt>u_int32_t hash_dup_free;<dd>The number of bytes free on duplicate pages.
-</dl>
-<h3>Btree and Recno Statistics</h3>
-<p>In the case of a Btree or Recno database,
-the statistics are stored in a structure of type DB_BTREE_STAT. The
-following fields will be filled in:
-<p><dl compact>
-<p><dt>u_int32_t bt_magic;<dd>Magic number that identifies the file as a Btree database.
-<dt>u_int32_t bt_version;<dd>The version of the Btree database.
-<dt>u_int32_t bt_nkeys;<dd>For the Btree Access Method, the number of unique keys in the database.
-<p>For the Recno Access Method, the number of records in the database.
-<dt>u_int32_t bt_ndata;<dd>For the Btree Access Method, the number of key/data pairs in the database.
-<p>For the Recno Access Method, the number of records in the database. If
-the database has been configured to not re-number records during
-deletion, the number of records will only reflect undeleted records.
-<dt>u_int32_t bt_pagesize;<dd>Underlying database page size.
-<dt>u_int32_t bt_minkey;<dd>The minimum keys per page.
-<dt>u_int32_t bt_re_len;<dd>The length of fixed-length records.
-<dt>u_int32_t bt_re_pad;<dd>The padding byte value for fixed-length records.
-<dt>u_int32_t bt_levels;<dd>Number of levels in the database.
-<dt>u_int32_t bt_int_pg;<dd>Number of database internal pages.
-<dt>u_int32_t bt_leaf_pg;<dd>Number of database leaf pages.
-<dt>u_int32_t bt_dup_pg;<dd>Number of database duplicate pages.
-<dt>u_int32_t bt_over_pg;<dd>Number of database overflow pages.
-<dt>u_int32_t bt_free;<dd>Number of pages on the free list.
-<dt>u_int32_t bt_int_pgfree;<dd>Number of bytes free in database internal pages.
-<dt>u_int32_t bt_leaf_pgfree;<dd>Number of bytes free in database leaf pages.
-<dt>u_int32_t bt_dup_pgfree;<dd>Number of bytes free in database duplicate pages.
-<dt>u_int32_t bt_over_pgfree;<dd>Number of bytes free in database overflow pages.
-</dl>
-<h3>Queue Statistics</h3>
-<p>In the case of a Queue database,
-the statistics are stored in a structure of type DB_QUEUE_STAT. The
-following fields will be filled in:
-<p><dl compact>
-<p><dt>u_int32_t qs_magic;<dd>Magic number that identifies the file as a Queue file.
-<dt>u_int32_t qs_version;<dd>The version of the Queue file type.
-<dt>u_int32_t qs_nkeys;<dd>The number of records in the database.
-<dt>u_int32_t qs_ndata;<dd>The number of records in the database.
-<dt>u_int32_t qs_pagesize;<dd>Underlying database page size.
-<dt>u_int32_t qs_pages;<dd>Number of pages in the database.
-<dt>u_int32_t qs_re_len;<dd>The length of the records.
-<dt>u_int32_t qs_re_pad;<dd>The padding byte value for the records.
-<dt>u_int32_t qs_pgfree;<dd>Number of bytes free in database pages.
-<dt>u_int32_t qs_start;<dd>Start offset.
-<dt>u_int32_t qs_first_recno;<dd>First undeleted record in the database.
-<dt>u_int32_t qs_cur_recno;<dd>Last allocated record number in the database.
-</dl>
-<p>The DB-&gt;stat function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p>The DB-&gt;stat function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the DB-&gt;stat function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/db_create.html">db_create</a>,
-<a href="../api_c/db_close.html">DB-&gt;close</a>,
-<a href="../api_c/db_cursor.html">DB-&gt;cursor</a>,
-<a href="../api_c/db_del.html">DB-&gt;del</a>,
-<a href="../api_c/db_err.html">DB-&gt;err</a>,
-<a href="../api_c/db_fd.html">DB-&gt;fd</a>,
-<a href="../api_c/db_get.html">DB-&gt;get</a>,
-<a href="../api_c/db_get_byteswapped.html">DB-&gt;get_byteswapped</a>,
-<a href="../api_c/db_get_type.html">DB-&gt;get_type</a>,
-<a href="../api_c/db_join.html">DB-&gt;join</a>,
-<a href="../api_c/db_key_range.html">DB-&gt;key_range</a>,
-<a href="../api_c/db_open.html">DB-&gt;open</a>,
-<a href="../api_c/db_put.html">DB-&gt;put</a>,
-<a href="../api_c/db_remove.html">DB-&gt;remove</a>,
-<a href="../api_c/db_set_bt_compare.html">DB-&gt;set_bt_compare</a>,
-<a href="../api_c/db_set_bt_minkey.html">DB-&gt;set_bt_minkey</a>,
-<a href="../api_c/db_set_bt_prefix.html">DB-&gt;set_bt_prefix</a>,
-<a href="../api_c/db_set_cachesize.html">DB-&gt;set_cachesize</a>,
-<a href="../api_c/db_set_dup_compare.html">DB-&gt;set_dup_compare</a>,
-<a href="../api_c/db_set_errcall.html">DB-&gt;set_errcall</a>,
-<a href="../api_c/db_set_errfile.html">DB-&gt;set_errfile</a>,
-<a href="../api_c/db_set_errpfx.html">DB-&gt;set_errpfx</a>,
-<a href="../api_c/db_set_flags.html">DB-&gt;set_flags</a>,
-<a href="../api_c/db_set_h_ffactor.html">DB-&gt;set_h_ffactor</a>,
-<a href="../api_c/db_set_h_hash.html">DB-&gt;set_h_hash</a>,
-<a href="../api_c/db_set_h_nelem.html">DB-&gt;set_h_nelem</a>,
-<a href="../api_c/db_set_lorder.html">DB-&gt;set_lorder</a>,
-<a href="../api_c/db_set_malloc.html">DB-&gt;set_malloc</a>,
-<a href="../api_c/db_set_pagesize.html">DB-&gt;set_pagesize</a>,
-<a href="../api_c/db_set_paniccall.html">DB-&gt;set_paniccall</a>,
-<a href="../api_c/db_set_q_extentsize.html">DB-&gt;set_q_extentsize</a>,
-<a href="../api_c/db_set_realloc.html">DB-&gt;set_realloc</a>,
-<a href="../api_c/db_set_re_delim.html">DB-&gt;set_re_delim</a>,
-<a href="../api_c/db_set_re_len.html">DB-&gt;set_re_len</a>,
-<a href="../api_c/db_set_re_pad.html">DB-&gt;set_re_pad</a>,
-<a href="../api_c/db_set_re_source.html">DB-&gt;set_re_source</a>,
-<a href="../api_c/db_stat.html">DB-&gt;stat</a>,
-<a href="../api_c/db_sync.html">DB-&gt;sync</a>,
-<a href="../api_c/db_upgrade.html">DB-&gt;upgrade</a>
-and
-<a href="../api_c/db_verify.html">DB-&gt;verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/db_sync.html b/bdb/docs/api_c/db_sync.html
deleted file mode 100644
index 6af624a88f3..00000000000
--- a/bdb/docs/api_c/db_sync.html
+++ /dev/null
@@ -1,98 +0,0 @@
-<!--$Id: db_sync.so,v 10.20 2000/09/08 15:20:28 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DB-&gt;sync</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DB-&gt;sync</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DB-&gt;sync(DB *db, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The DB-&gt;sync function flushes any cached information to disk.
-<p>If the database is in memory only, the DB-&gt;sync function has no effect and
-will always succeed.
-<p>The <b>flags</b> parameter is currently unused, and must be set to 0.
-<p>See <a href="../api_c/db_close.html">DB-&gt;close</a> for a discussion of Berkeley DB and cached data.
-<p>The DB-&gt;sync function returns a non-zero error value on failure, 0 on success, and returns <a href="../api_c/memp_fsync.html#DB_INCOMPLETE">DB_INCOMPLETE</a> if the underlying database still has
-dirty pages in the cache. (The only reason to return
-<a href="../api_c/memp_fsync.html#DB_INCOMPLETE">DB_INCOMPLETE</a> is if another thread of control was writing pages
-in the underlying database file at the same time as the
-DB-&gt;sync function was being called. For this reason, a return of
-<a href="../api_c/memp_fsync.html#DB_INCOMPLETE">DB_INCOMPLETE</a> can normally be ignored, or, in cases where it is
-a possible return value, there may be no reason to call
-DB-&gt;sync.)
-<h1>Errors</h1>
-<p>The DB-&gt;sync function may fail and return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<p>The DB-&gt;sync function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the DB-&gt;sync function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/db_create.html">db_create</a>,
-<a href="../api_c/db_close.html">DB-&gt;close</a>,
-<a href="../api_c/db_cursor.html">DB-&gt;cursor</a>,
-<a href="../api_c/db_del.html">DB-&gt;del</a>,
-<a href="../api_c/db_err.html">DB-&gt;err</a>,
-<a href="../api_c/db_fd.html">DB-&gt;fd</a>,
-<a href="../api_c/db_get.html">DB-&gt;get</a>,
-<a href="../api_c/db_get_byteswapped.html">DB-&gt;get_byteswapped</a>,
-<a href="../api_c/db_get_type.html">DB-&gt;get_type</a>,
-<a href="../api_c/db_join.html">DB-&gt;join</a>,
-<a href="../api_c/db_key_range.html">DB-&gt;key_range</a>,
-<a href="../api_c/db_open.html">DB-&gt;open</a>,
-<a href="../api_c/db_put.html">DB-&gt;put</a>,
-<a href="../api_c/db_remove.html">DB-&gt;remove</a>,
-<a href="../api_c/db_set_bt_compare.html">DB-&gt;set_bt_compare</a>,
-<a href="../api_c/db_set_bt_minkey.html">DB-&gt;set_bt_minkey</a>,
-<a href="../api_c/db_set_bt_prefix.html">DB-&gt;set_bt_prefix</a>,
-<a href="../api_c/db_set_cachesize.html">DB-&gt;set_cachesize</a>,
-<a href="../api_c/db_set_dup_compare.html">DB-&gt;set_dup_compare</a>,
-<a href="../api_c/db_set_errcall.html">DB-&gt;set_errcall</a>,
-<a href="../api_c/db_set_errfile.html">DB-&gt;set_errfile</a>,
-<a href="../api_c/db_set_errpfx.html">DB-&gt;set_errpfx</a>,
-<a href="../api_c/db_set_flags.html">DB-&gt;set_flags</a>,
-<a href="../api_c/db_set_h_ffactor.html">DB-&gt;set_h_ffactor</a>,
-<a href="../api_c/db_set_h_hash.html">DB-&gt;set_h_hash</a>,
-<a href="../api_c/db_set_h_nelem.html">DB-&gt;set_h_nelem</a>,
-<a href="../api_c/db_set_lorder.html">DB-&gt;set_lorder</a>,
-<a href="../api_c/db_set_malloc.html">DB-&gt;set_malloc</a>,
-<a href="../api_c/db_set_pagesize.html">DB-&gt;set_pagesize</a>,
-<a href="../api_c/db_set_paniccall.html">DB-&gt;set_paniccall</a>,
-<a href="../api_c/db_set_q_extentsize.html">DB-&gt;set_q_extentsize</a>,
-<a href="../api_c/db_set_realloc.html">DB-&gt;set_realloc</a>,
-<a href="../api_c/db_set_re_delim.html">DB-&gt;set_re_delim</a>,
-<a href="../api_c/db_set_re_len.html">DB-&gt;set_re_len</a>,
-<a href="../api_c/db_set_re_pad.html">DB-&gt;set_re_pad</a>,
-<a href="../api_c/db_set_re_source.html">DB-&gt;set_re_source</a>,
-<a href="../api_c/db_stat.html">DB-&gt;stat</a>,
-<a href="../api_c/db_sync.html">DB-&gt;sync</a>,
-<a href="../api_c/db_upgrade.html">DB-&gt;upgrade</a>
-and
-<a href="../api_c/db_verify.html">DB-&gt;verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/db_upgrade.html b/bdb/docs/api_c/db_upgrade.html
deleted file mode 100644
index e31b4d447af..00000000000
--- a/bdb/docs/api_c/db_upgrade.html
+++ /dev/null
@@ -1,135 +0,0 @@
-<!--$Id: db_upgrade.so,v 10.18 2000/05/01 15:58:04 krinsky Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DB-&gt;upgrade</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DB-&gt;upgrade</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DB-&gt;upgrade(DB *db, const char *file, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The DB-&gt;upgrade function upgrades all of the databases included in the
-file <b>file</b>, if necessary. If no upgrade is necessary,
-DB-&gt;upgrade always returns success.
-<p><b>Database upgrades are done in place and are destructive, e.g., if pages
-need to be allocated and no disk space is available, the database may be
-left corrupted. Backups should be made before databases are upgraded.
-See <a href="../ref/am/upgrade.html">Upgrading databases</a> for more
-information.</b>
-<p>Unlike all other database operations, DB-&gt;upgrade may only be done
-on a system with the same byte-order as the database.
-<p>The <b>flags</b> parameter must be set to 0 or one of the following
-values:
-<p><dl compact>
-<p><dt><a name="DB_DUPSORT">DB_DUPSORT</a><dd><b>This flag is only meaningful when upgrading databases from
-releases before the Berkeley DB 3.1 release.</b>
-<p>As part of the upgrade from the Berkeley DB 3.0 release to the 3.1 release, the
-on-disk format of duplicate data items changed. To correctly upgrade the
-format requires applications specify if duplicate data items in the
-database are sorted or not. Specifying the DB_DUPSORT flag
-informs DB-&gt;upgrade that the duplicates are sorted, otherwise they
-are assumed to be unsorted. Incorrectly specifying the value of this flag
-may lead to database corruption.
-<p>Further, because the DB-&gt;upgrade function upgrades a physical file
-(including all of the databases it contains), it is not possible to use
-DB-&gt;upgrade to upgrade files where some of the databases it
-includes have sorted duplicate data items and some of the databases it
-includes have unsorted duplicate data items. If the file does not have
-more than a single database, or the databases do not support duplicate
-data items, or all of the databases that support duplicate data items
-support the same style of duplicates (either sorted or unsorted),
-DB-&gt;upgrade will work correctly as long as the DB_DUPSORT
-flag is correctly specified. Otherwise, the file cannot be upgraded using
-DB-&gt;upgrade, and must be upgraded manually by dumping and
-re-loading the databases.
-</dl>
-<p>The DB-&gt;upgrade function returns a non-zero error value on failure and 0 on success.
-<p>The DB-&gt;upgrade function is the underlying function used by the <a href="../utility/db_upgrade.html">db_upgrade</a> utility.
-See the <a href="../utility/db_upgrade.html">db_upgrade</a> utility source code for an example of using DB-&gt;upgrade
-in a IEEE/ANSI Std 1003.1 (POSIX) environment.
-<h1>Environment Variables</h1>
-<p><dl compact>
-<p><dt>DB_HOME<dd>If the <b>dbenv</b> argument to <a href="../api_c/db_create.html">db_create</a> was initialized using
-<a href="../api_c/env_open.html">DBENV-&gt;open</a> the environment variable <b>DB_HOME</b> may be used
-as the path of the database environment home. Specifically, DB-&gt;upgrade
-is affected by the configuration value DB_DATA_DIR.
-</dl>
-<h1>Errors</h1>
-<p>The DB-&gt;upgrade function may fail and return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>The database is not in the same byte-order as the system.
-</dl>
-<p><dl compact>
-<p><dt><a name="DB_OLD_VERSION">DB_OLD_VERSION</a><dd>The database cannot be upgraded by this version of the Berkeley DB software.
-</dl>
-<p>The DB-&gt;upgrade function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the DB-&gt;upgrade function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/db_create.html">db_create</a>,
-<a href="../api_c/db_close.html">DB-&gt;close</a>,
-<a href="../api_c/db_cursor.html">DB-&gt;cursor</a>,
-<a href="../api_c/db_del.html">DB-&gt;del</a>,
-<a href="../api_c/db_err.html">DB-&gt;err</a>,
-<a href="../api_c/db_fd.html">DB-&gt;fd</a>,
-<a href="../api_c/db_get.html">DB-&gt;get</a>,
-<a href="../api_c/db_get_byteswapped.html">DB-&gt;get_byteswapped</a>,
-<a href="../api_c/db_get_type.html">DB-&gt;get_type</a>,
-<a href="../api_c/db_join.html">DB-&gt;join</a>,
-<a href="../api_c/db_key_range.html">DB-&gt;key_range</a>,
-<a href="../api_c/db_open.html">DB-&gt;open</a>,
-<a href="../api_c/db_put.html">DB-&gt;put</a>,
-<a href="../api_c/db_remove.html">DB-&gt;remove</a>,
-<a href="../api_c/db_set_bt_compare.html">DB-&gt;set_bt_compare</a>,
-<a href="../api_c/db_set_bt_minkey.html">DB-&gt;set_bt_minkey</a>,
-<a href="../api_c/db_set_bt_prefix.html">DB-&gt;set_bt_prefix</a>,
-<a href="../api_c/db_set_cachesize.html">DB-&gt;set_cachesize</a>,
-<a href="../api_c/db_set_dup_compare.html">DB-&gt;set_dup_compare</a>,
-<a href="../api_c/db_set_errcall.html">DB-&gt;set_errcall</a>,
-<a href="../api_c/db_set_errfile.html">DB-&gt;set_errfile</a>,
-<a href="../api_c/db_set_errpfx.html">DB-&gt;set_errpfx</a>,
-<a href="../api_c/db_set_flags.html">DB-&gt;set_flags</a>,
-<a href="../api_c/db_set_h_ffactor.html">DB-&gt;set_h_ffactor</a>,
-<a href="../api_c/db_set_h_hash.html">DB-&gt;set_h_hash</a>,
-<a href="../api_c/db_set_h_nelem.html">DB-&gt;set_h_nelem</a>,
-<a href="../api_c/db_set_lorder.html">DB-&gt;set_lorder</a>,
-<a href="../api_c/db_set_malloc.html">DB-&gt;set_malloc</a>,
-<a href="../api_c/db_set_pagesize.html">DB-&gt;set_pagesize</a>,
-<a href="../api_c/db_set_paniccall.html">DB-&gt;set_paniccall</a>,
-<a href="../api_c/db_set_q_extentsize.html">DB-&gt;set_q_extentsize</a>,
-<a href="../api_c/db_set_realloc.html">DB-&gt;set_realloc</a>,
-<a href="../api_c/db_set_re_delim.html">DB-&gt;set_re_delim</a>,
-<a href="../api_c/db_set_re_len.html">DB-&gt;set_re_len</a>,
-<a href="../api_c/db_set_re_pad.html">DB-&gt;set_re_pad</a>,
-<a href="../api_c/db_set_re_source.html">DB-&gt;set_re_source</a>,
-<a href="../api_c/db_stat.html">DB-&gt;stat</a>,
-<a href="../api_c/db_sync.html">DB-&gt;sync</a>,
-<a href="../api_c/db_upgrade.html">DB-&gt;upgrade</a>
-and
-<a href="../api_c/db_verify.html">DB-&gt;verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/db_verify.html b/bdb/docs/api_c/db_verify.html
deleted file mode 100644
index d011d90ab8d..00000000000
--- a/bdb/docs/api_c/db_verify.html
+++ /dev/null
@@ -1,150 +0,0 @@
-<!--$Id: db_verify.so,v 10.3 2000/04/11 15:13:51 dda Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DB-&gt;verify</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DB-&gt;verify</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DB-&gt;verify(DB *db, const char *file,
- const char *database, FILE *outfile, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The DB-&gt;verify function verifies the integrity of all databases in the
-file specified by the file argument, and optionally outputs the databases'
-key/data pairs to a file stream.
-<p>The <b>flags</b> parameter must be set to 0 or one of the following
-values:
-<p><dl compact>
-<p><dt><a name="DB_SALVAGE">DB_SALVAGE</a><dd>Write the key/data pairs from all databases in the file to the file stream
-named in
-the <b>outfile</b> argument. The output format is the same as that
-specified for the <a href="../utility/db_dump.html">db_dump</a> utility and can be used as input for
-the <a href="../utility/db_load.html">db_load</a> utility.
-<p>Because the key/data pairs are output in page order as opposed to the sort
-order used by <a href="../utility/db_dump.html">db_dump</a>, using DB-&gt;verify to dump key/data
-pairs normally produces less than optimal loads for Btree databases.
-</dl>
-<p>In addition, the following flags may be set by bitwise inclusively <b>OR</b>'ing them into the
-<b>flags</b> parameter:
-<p><dl compact>
-<p><dt><a name="DB_AGGRESSIVE">DB_AGGRESSIVE</a><dd>Output <b>all</b> the key/data pairs in the file that can be found.
-By default, DB-&gt;verify does not assume corruption. For example,
-if a key/data pair on a page is marked as deleted, it is not then written
-to the output file. When DB_AGGRESSIVE is specified, corruption
-is assumed, and any key/data pair that can be found is written. In this
-case, key/data pairs that are corrupted or have been deleted may appear
-in the output (even if the file being salvaged is in no way corrupt), and
-the output will almost certainly require editing before being loaded into
-a database.
-<p><dt><a name="DB_NOORDERCHK">DB_NOORDERCHK</a><dd>Skip the database checks for btree and duplicate sort order and for
-hashing.
-<p>The DB-&gt;verify function normally verifies that btree keys and duplicate
-items are correctly sorted and hash keys are correctly hashed. If the
-file being verified contains multiple databases using differing sorting
-or hashing algorithms, some of them must necessarily fail database
-verification as only one sort order or hash function can be specified
-before DB-&gt;verify is called. To verify files with multiple
-databases having differing sorting orders or hashing functions, first
-perform verification of the file as a whole by using the
-DB_NOORDERCHK flag, and then individually verify the sort order
-and hashing function for each database in the file using the
-DB_ORDERCHKONLY flag.
-<p><dt><a name="DB_ORDERCHKONLY">DB_ORDERCHKONLY</a><dd>Perform the database checks for btree and duplicate sort order and for
-hashing, skipped by DB_NOORDERCHK.
-<p>When this flag is specified, a <b>database</b> argument should also be
-specified, indicating the database in the physical file which is to be
-checked. This flag is only safe to use on databases that have already
-successfully been verified using DB-&gt;verify with the
-DB_NOORDERCHK flag set.
-</dl>
-<p>The database argument must be set to NULL except when the
-DB_ORDERCHKONLY flag is set.
-<p>The DB-&gt;verify function returns a non-zero error value on failure, 0 on success, and <a href="../ref/program/errorret.html#DB_VERIFY_BAD">DB_VERIFY_BAD</a> if a database is corrupted. When the
-DB_SALVAGE flag is specified, the <a href="../ref/program/errorret.html#DB_VERIFY_BAD">DB_VERIFY_BAD</a> return
-means that all key/data pairs in the file may not have been successfully
-output.
-<p>The DB-&gt;verify function is the underlying function used by the <a href="../utility/db_verify.html">db_verify</a> utility.
-See the <a href="../utility/db_verify.html">db_verify</a> utility source code for an example of using DB-&gt;verify
-in a IEEE/ANSI Std 1003.1 (POSIX) environment.
-<h1>Environment Variables</h1>
-<p><dl compact>
-<p><dt>DB_HOME<dd>If the <b>dbenv</b> argument to <a href="../api_c/db_create.html">db_create</a> was initialized using
-<a href="../api_c/env_open.html">DBENV-&gt;open</a> the environment variable <b>DB_HOME</b> may be used
-as the path of the database environment home. Specifically, DB-&gt;verify
-is affected by the configuration value DB_DATA_DIR.
-</dl>
-<h1>Errors</h1>
-<p>The DB-&gt;verify function may fail and return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<p>The DB-&gt;verify function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the DB-&gt;verify function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/db_create.html">db_create</a>,
-<a href="../api_c/db_close.html">DB-&gt;close</a>,
-<a href="../api_c/db_cursor.html">DB-&gt;cursor</a>,
-<a href="../api_c/db_del.html">DB-&gt;del</a>,
-<a href="../api_c/db_err.html">DB-&gt;err</a>,
-<a href="../api_c/db_fd.html">DB-&gt;fd</a>,
-<a href="../api_c/db_get.html">DB-&gt;get</a>,
-<a href="../api_c/db_get_byteswapped.html">DB-&gt;get_byteswapped</a>,
-<a href="../api_c/db_get_type.html">DB-&gt;get_type</a>,
-<a href="../api_c/db_join.html">DB-&gt;join</a>,
-<a href="../api_c/db_key_range.html">DB-&gt;key_range</a>,
-<a href="../api_c/db_open.html">DB-&gt;open</a>,
-<a href="../api_c/db_put.html">DB-&gt;put</a>,
-<a href="../api_c/db_remove.html">DB-&gt;remove</a>,
-<a href="../api_c/db_set_bt_compare.html">DB-&gt;set_bt_compare</a>,
-<a href="../api_c/db_set_bt_minkey.html">DB-&gt;set_bt_minkey</a>,
-<a href="../api_c/db_set_bt_prefix.html">DB-&gt;set_bt_prefix</a>,
-<a href="../api_c/db_set_cachesize.html">DB-&gt;set_cachesize</a>,
-<a href="../api_c/db_set_dup_compare.html">DB-&gt;set_dup_compare</a>,
-<a href="../api_c/db_set_errcall.html">DB-&gt;set_errcall</a>,
-<a href="../api_c/db_set_errfile.html">DB-&gt;set_errfile</a>,
-<a href="../api_c/db_set_errpfx.html">DB-&gt;set_errpfx</a>,
-<a href="../api_c/db_set_flags.html">DB-&gt;set_flags</a>,
-<a href="../api_c/db_set_h_ffactor.html">DB-&gt;set_h_ffactor</a>,
-<a href="../api_c/db_set_h_hash.html">DB-&gt;set_h_hash</a>,
-<a href="../api_c/db_set_h_nelem.html">DB-&gt;set_h_nelem</a>,
-<a href="../api_c/db_set_lorder.html">DB-&gt;set_lorder</a>,
-<a href="../api_c/db_set_malloc.html">DB-&gt;set_malloc</a>,
-<a href="../api_c/db_set_pagesize.html">DB-&gt;set_pagesize</a>,
-<a href="../api_c/db_set_paniccall.html">DB-&gt;set_paniccall</a>,
-<a href="../api_c/db_set_q_extentsize.html">DB-&gt;set_q_extentsize</a>,
-<a href="../api_c/db_set_realloc.html">DB-&gt;set_realloc</a>,
-<a href="../api_c/db_set_re_delim.html">DB-&gt;set_re_delim</a>,
-<a href="../api_c/db_set_re_len.html">DB-&gt;set_re_len</a>,
-<a href="../api_c/db_set_re_pad.html">DB-&gt;set_re_pad</a>,
-<a href="../api_c/db_set_re_source.html">DB-&gt;set_re_source</a>,
-<a href="../api_c/db_stat.html">DB-&gt;stat</a>,
-<a href="../api_c/db_sync.html">DB-&gt;sync</a>,
-<a href="../api_c/db_upgrade.html">DB-&gt;upgrade</a>
-and
-<a href="../api_c/db_verify.html">DB-&gt;verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/dbc_close.html b/bdb/docs/api_c/dbc_close.html
deleted file mode 100644
index 20eb28d953d..00000000000
--- a/bdb/docs/api_c/dbc_close.html
+++ /dev/null
@@ -1,64 +0,0 @@
-<!--$Id: dbc_close.so,v 10.20 2000/03/01 21:41:29 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DBcursor-&gt;c_close</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DBcursor-&gt;c_close</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DBcursor-&gt;c_close(DBC *cursor);
-</pre></h3>
-<h1>Description</h1>
-<p>The DBcursor-&gt;c_close function discards the cursor.
-<p>It is possible for the DBcursor-&gt;c_close function to return
-<a href="../ref/program/errorret.html#DB_LOCK_DEADLOCK">DB_LOCK_DEADLOCK</a>, signaling that any enclosing transaction should
-be aborted. If the application is already intending to abort the
-transaction, this error should be ignored, and the application should
-proceed.
-<p>Once DBcursor-&gt;c_close has been called, regardless of its return, the
-cursor handle may not be used again.
-<p>The DBcursor-&gt;c_close function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p>The DBcursor-&gt;c_close function may fail and return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>DB_LOCK_DEADLOCK<dd>The operation was selected to resolve a deadlock.
-</dl>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>The cursor was previously closed.
-</dl>
-<p>The DBcursor-&gt;c_close function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the DBcursor-&gt;c_close function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/dbc_close.html">DBcursor-&gt;c_close</a>,
-<a href="../api_c/dbc_count.html">DBcursor-&gt;c_count</a>,
-<a href="../api_c/dbc_del.html">DBcursor-&gt;c_del</a>,
-<a href="../api_c/dbc_dup.html">DBcursor-&gt;c_dup</a>,
-<a href="../api_c/dbc_get.html">DBcursor-&gt;c_get</a>
-and
-<a href="../api_c/dbc_put.html">DBcursor-&gt;c_put</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/dbc_count.html b/bdb/docs/api_c/dbc_count.html
deleted file mode 100644
index 434a0ce8cbb..00000000000
--- a/bdb/docs/api_c/dbc_count.html
+++ /dev/null
@@ -1,55 +0,0 @@
-<!--$Id: dbc_count.so,v 10.4 2000/03/01 21:41:29 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DBcursor-&gt;c_count</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DBcursor-&gt;c_count</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DBC-&gt;c_count(DBC *cursor, db_recno_t *countp, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The DBcursor-&gt;c_count function returns a count of the number of duplicate data
-items for the key referenced by the
-cursor into the memory location referenced by <b>countp</b>.
-If the underlying database does not support duplicate data items the call
-will still succeed and a count of 1 will be returned.
-<p>The <b>flags</b> parameter is currently unused, and must be set to 0.
-<p>If the <b>cursor</b> argument is not yet initialized, the DBcursor-&gt;c_count function will return EINVAL.
-<p>Otherwise, the DBcursor-&gt;c_count function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p>The DBcursor-&gt;c_count function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the DBcursor-&gt;c_count function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/dbc_close.html">DBcursor-&gt;c_close</a>,
-<a href="../api_c/dbc_count.html">DBcursor-&gt;c_count</a>,
-<a href="../api_c/dbc_del.html">DBcursor-&gt;c_del</a>,
-<a href="../api_c/dbc_dup.html">DBcursor-&gt;c_dup</a>,
-<a href="../api_c/dbc_get.html">DBcursor-&gt;c_get</a>
-and
-<a href="../api_c/dbc_put.html">DBcursor-&gt;c_put</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/dbc_del.html b/bdb/docs/api_c/dbc_del.html
deleted file mode 100644
index 110d97471c8..00000000000
--- a/bdb/docs/api_c/dbc_del.html
+++ /dev/null
@@ -1,68 +0,0 @@
-<!--$Id: dbc_del.so,v 10.23 2000/05/22 20:51:46 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DBcursor-&gt;c_del</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DBcursor-&gt;c_del</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DBcursor-&gt;c_del(DBC *cursor, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The DBcursor-&gt;c_del function deletes the key/data pair currently referenced by
-the cursor.
-<p>The <b>flags</b> parameter is currently unused, and must be set to 0.
-<p>The cursor position is unchanged after a delete, and subsequent calls to
-cursor functions expecting the cursor to reference an existing key will
-fail.
-<p>If the element has already been deleted, DBcursor-&gt;c_del will return
-<a href="../ref/program/errorret.html#DB_KEYEMPTY">DB_KEYEMPTY</a>.
-<p>If the cursor is not yet initialized, the DBcursor-&gt;c_del function will return EINVAL.
-<p>Otherwise, the DBcursor-&gt;c_del function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p>The DBcursor-&gt;c_del function may fail and return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>DB_LOCK_DEADLOCK<dd>The operation was selected to resolve a deadlock.
-</dl>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<p><dl compact>
-<p><dt>EPERM <dd>Write attempted on read-only cursor when the <a href="../api_c/env_open.html#DB_INIT_CDB">DB_INIT_CDB</a> flag was
-specified to <a href="../api_c/env_open.html">DBENV-&gt;open</a>.
-</dl>
-<p>The DBcursor-&gt;c_del function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the DBcursor-&gt;c_del function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/dbc_close.html">DBcursor-&gt;c_close</a>,
-<a href="../api_c/dbc_count.html">DBcursor-&gt;c_count</a>,
-<a href="../api_c/dbc_del.html">DBcursor-&gt;c_del</a>,
-<a href="../api_c/dbc_dup.html">DBcursor-&gt;c_dup</a>,
-<a href="../api_c/dbc_get.html">DBcursor-&gt;c_get</a>
-and
-<a href="../api_c/dbc_put.html">DBcursor-&gt;c_put</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/dbc_dup.html b/bdb/docs/api_c/dbc_dup.html
deleted file mode 100644
index 42e3531ca04..00000000000
--- a/bdb/docs/api_c/dbc_dup.html
+++ /dev/null
@@ -1,72 +0,0 @@
-<!--$Id: dbc_dup.so,v 10.8 2000/03/17 01:53:58 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DBcursor-&gt;c_dup</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DBcursor-&gt;c_dup</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DBC-&gt;c_dup(DBC *cursor, DBC **cursorp, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The DBcursor-&gt;c_dup function creates a new cursor that uses the same transaction
-and locker ID as the original cursor. This is useful when an application
-is using locking and requires two or more cursors in the same thread of
-control.
-<p>The <b>flags</b> value must be set to 0 or by bitwise inclusively <b>OR</b>'ing together one or more
-of the following values.
-<p><dl compact>
-<p><dt><a name="DB_POSITION">DB_POSITION</a><dd>The newly created cursor is initialized to reference the same position
-in the database as the original cursor and hold the same locks. If the
-DB_POSITION flag is not specified, then the created cursor is
-uninitialized and will behave like a cursor newly created using
-<a href="../api_c/db_cursor.html">DB-&gt;cursor</a>.
-</dl>
-<p>When using the Berkeley DB Concurrent Data Store product, there can be only one active write cursor
-at a time. For this reason, attempting to duplicate a cursor for which
-the <a href="../api_c/db_cursor.html#DB_WRITECURSOR">DB_WRITECURSOR</a> flag was specified during creation will return
-an error.
-<p>If the <b>cursor</b> argument is not yet initialized, the DBcursor-&gt;c_dup function will return EINVAL.
-<p>Otherwise, the DBcursor-&gt;c_dup function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p>The DBcursor-&gt;c_dup function may fail and return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>The <b>cursor</b> argument was created using the
-<a href="../api_c/db_cursor.html#DB_WRITECURSOR">DB_WRITECURSOR</a> flag in the Berkeley DB Concurrent Data Store product.
-</dl>
-<p>The DBcursor-&gt;c_dup function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the DBcursor-&gt;c_dup function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/dbc_close.html">DBcursor-&gt;c_close</a>,
-<a href="../api_c/dbc_count.html">DBcursor-&gt;c_count</a>,
-<a href="../api_c/dbc_del.html">DBcursor-&gt;c_del</a>,
-<a href="../api_c/dbc_dup.html">DBcursor-&gt;c_dup</a>,
-<a href="../api_c/dbc_get.html">DBcursor-&gt;c_get</a>
-and
-<a href="../api_c/dbc_put.html">DBcursor-&gt;c_put</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/dbc_get.html b/bdb/docs/api_c/dbc_get.html
deleted file mode 100644
index 014661f33e7..00000000000
--- a/bdb/docs/api_c/dbc_get.html
+++ /dev/null
@@ -1,167 +0,0 @@
-<!--$Id: dbc_get.so,v 10.46 2001/01/19 17:29:46 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DBcursor-&gt;c_get</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DBcursor-&gt;c_get</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DBcursor-&gt;c_get(DBC *cursor,
- DBT *key, DBT *data, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The DBcursor-&gt;c_get function retrieves key/data pairs from the database. The
-address and length of the key
-are returned in the object referenced by <b>key</b> (except for the case
-of the DB_SET flag where the <b>key</b> object is unchanged),
-and the address and length of
-the data are returned in the object referenced by <b>data</b>.
-<p>Modifications to the database during a sequential scan will be reflected
-in the scan, i.e. records inserted behind a cursor will not be returned
-while records inserted in front of a cursor will be returned.
-<p>In Queue and Recno databases, missing entries (i.e., entries that were
-never explicitly created or that were created and then deleted), will be
-skipped during a sequential scan.
-<p>If multiple threads or processes insert items into the same database file
-without using locking, the results are undefined.
-For more detail,
-see <a href="../ref/am/stability.html">Cursor stability</a>.
-<p>The <b>flags</b> parameter must be set to one of the following values:
-<p><dl compact>
-<p><dt><a name="DB_CURRENT">DB_CURRENT</a><dd>Return the key/data pair currently referenced by the cursor.
-<p>If the cursor key/data pair was deleted, DBcursor-&gt;c_get will return
-<a href="../ref/program/errorret.html#DB_KEYEMPTY">DB_KEYEMPTY</a>.
-<p>If the cursor is not yet initialized, the DBcursor-&gt;c_get function will return EINVAL.
-<p><dt><a name="DB_FIRST">DB_FIRST</a>, <a name="DB_LAST">DB_LAST</a><dd>The cursor is set to reference the first (last) key/data pair of the
-database, and that pair is returned. In the presence of duplicate key
-values, the first (last) data item in the set of duplicates is returned.
-<p>If the database is a Queue or Recno database, DBcursor-&gt;c_get using the
-DB_FIRST (DB_LAST) flags will ignore any keys that exist
-but were never explicitly created by the application or were created and
-later deleted.
-<p>If the database is empty, DBcursor-&gt;c_get will return <a href="../ref/program/errorret.html#DB_NOTFOUND">DB_NOTFOUND</a>.
-<p><dt><a name="DB_GET_BOTH">DB_GET_BOTH</a><dd>The DB_GET_BOTH flag is identical to the DB_SET flag,
-except that both the key and the data arguments must be matched by the
-key and data item in the database.
-<p><dt><a name="DB_GET_RECNO">DB_GET_RECNO</a><dd>Return the record number associated with the cursor. The record number
-will be returned in <b>data</b> as described in <a href="../api_c/dbt.html">DBT</a>. The
-<b>key</b> parameter is ignored.
-<p>For DB_GET_RECNO to be specified, the underlying database must be
-of type Btree and it must have been created with the <a href="../api_c/db_set_flags.html#DB_RECNUM">DB_RECNUM</a>
-flag.
-<p><dt><a name="DB_JOIN_ITEM">DB_JOIN_ITEM</a><dd>Do not use the data value found in all of the cursors as a lookup key for
-the primary database, but simply return it in the key parameter instead.
-The data parameter is left unchanged.
-<p>For DB_JOIN_ITEM to be specified, the underlying cursor must have
-been returned from the <a href="../api_c/db_join.html">DB-&gt;join</a> function.
-<p><dt><a name="DB_NEXT">DB_NEXT</a>, <a name="DB_PREV">DB_PREV</a><dd>If the cursor is not yet initialized, DB_NEXT (DB_PREV)
-is identical to DB_FIRST (DB_LAST). Otherwise, the cursor
-is moved to the next (previous) key/data pair of the database, and that
-pair is returned. In the presence of duplicate key values, the value of
-the key may not change.
-<p>If the database is a Queue or Recno database, DBcursor-&gt;c_get using the
-DB_NEXT (DB_PREV) flag will skip any keys that exist but
-were never explicitly created by the application or were created and later
-deleted.
-<p>If the cursor is already on the last (first) record in the database,
-DBcursor-&gt;c_get will return <a href="../ref/program/errorret.html#DB_NOTFOUND">DB_NOTFOUND</a>.
-<p><dt><a name="DB_NEXT_DUP">DB_NEXT_DUP</a><dd>If the next key/data pair of the database is a duplicate record for the
-current key/data pair, the cursor is moved to the next key/data pair of
-the database, and that pair is returned. Otherwise, DBcursor-&gt;c_get will
-return <a href="../ref/program/errorret.html#DB_NOTFOUND">DB_NOTFOUND</a>.
-<p>If the cursor is not yet initialized, the DBcursor-&gt;c_get function will return EINVAL.
-<p><dt><a name="DB_NEXT_NODUP">DB_NEXT_NODUP</a>, <a name="DB_PREV_NODUP">DB_PREV_NODUP</a><dd>If the cursor is not yet initialized, DB_NEXT_NODUP
-(DB_PREV_NODUP) is identical to DB_FIRST
-(DB_LAST). Otherwise, the cursor is moved to the next (previous)
-non-duplicate key/data pair of the database, and that pair is returned.
-<p>If the database is a Queue or Recno database, DBcursor-&gt;c_get using the
-DB_NEXT_NODUP (DB_PREV_NODUP) flags will ignore any keys
-that exist but were never explicitly created by the application or were
-created and later deleted.
-<p>If no non-duplicate key/data pairs occur after (before) the cursor
-position in the database, DBcursor-&gt;c_get will return <a href="../ref/program/errorret.html#DB_NOTFOUND">DB_NOTFOUND</a>.
-<p><dt><a name="DB_SET">DB_SET</a><dd>Move the cursor to the specified key/data pair of the database, and
-return the datum associated with the given key.
-<p>In the presence of duplicate key values, DBcursor-&gt;c_get will return the
-first data item for the given key.
-<p>If the database is a Queue or Recno database and the requested key exists,
-but was never explicitly created by the application or was later deleted,
-DBcursor-&gt;c_get will return <a href="../ref/program/errorret.html#DB_KEYEMPTY">DB_KEYEMPTY</a>.
-<p>If no matching keys are found, DBcursor-&gt;c_get will return
-<a href="../ref/program/errorret.html#DB_NOTFOUND">DB_NOTFOUND</a>.
-<p><dt><a name="DB_SET_RANGE">DB_SET_RANGE</a><dd>The DB_SET_RANGE flag is identical to the DB_SET flag,
-except that the key is returned as well as the data item, and, in the case
-of the Btree access method, the returned key/data pair is the smallest
-key greater than or equal to the specified key (as determined by the
-comparison function), permitting partial key matches and range
-searches.
-<p><dt><a name="DB_SET_RECNO">DB_SET_RECNO</a><dd>Move the cursor to the specific numbered record of the database, and
-return the associated key/data pair. The <b>data</b> field of the
-specified <b>key</b>
-must be a pointer to a memory location from which a <a href="../api_c/dbt.html#db_recno_t">db_recno_t</a>
-may be read, as described in <a href="../api_c/dbt.html">DBT</a>. This memory location will be
-read to determine the record to be retrieved.
-<p>For DB_SET_RECNO to be specified, the underlying database must be
-of type Btree and it must have been created with the <a href="../api_c/db_set_flags.html#DB_RECNUM">DB_RECNUM</a>
-flag.
-</dl>
-<p>In addition, the following flag may be set by bitwise inclusively <b>OR</b>'ing it into the
-<b>flags</b> parameter:
-<p><dl compact>
-<p><dt><a name="DB_RMW">DB_RMW</a><dd>Acquire write locks instead of read locks when doing the retrieval.
-Setting this flag may decrease the likelihood of deadlock during a
-read-modify-write cycle by immediately acquiring the write lock during
-the read part of the cycle so that another thread of control acquiring
-a read lock for the same item, in its own read-modify-write cycle, will
-not result in deadlock.
-</dl>
-<p>Otherwise, the DBcursor-&gt;c_get function returns a non-zero error value on failure and 0 on success.
-<p>If DBcursor-&gt;c_get fails for any reason, the state of the cursor will be
-unchanged.
-<h1>Errors</h1>
-<p>The DBcursor-&gt;c_get function may fail and return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>DB_LOCK_DEADLOCK<dd>The operation was selected to resolve a deadlock.
-</dl>
-<p><dl compact>
-<p><dt>ENOMEM<dd>There was insufficient memory to return the requested item.
-</dl>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>The specified cursor was not currently initialized.
-</dl>
-<p>The DBcursor-&gt;c_get function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the DBcursor-&gt;c_get function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/dbc_close.html">DBcursor-&gt;c_close</a>,
-<a href="../api_c/dbc_count.html">DBcursor-&gt;c_count</a>,
-<a href="../api_c/dbc_del.html">DBcursor-&gt;c_del</a>,
-<a href="../api_c/dbc_dup.html">DBcursor-&gt;c_dup</a>,
-<a href="../api_c/dbc_get.html">DBcursor-&gt;c_get</a>
-and
-<a href="../api_c/dbc_put.html">DBcursor-&gt;c_put</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/dbc_put.html b/bdb/docs/api_c/dbc_put.html
deleted file mode 100644
index 9a8a0e8950a..00000000000
--- a/bdb/docs/api_c/dbc_put.html
+++ /dev/null
@@ -1,154 +0,0 @@
-<!--$Id: dbc_put.so,v 10.33 2000/12/04 17:02:01 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DBcursor-&gt;c_put</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DBcursor-&gt;c_put</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DBcursor-&gt;c_put(DBC *, DBT *key, DBT *data, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The DBcursor-&gt;c_put function stores key/data pairs into the database.
-<p>The <b>flags</b> parameter must be set to one of the following values:
-<p><dl compact>
-<p><dt><a name="DB_AFTER">DB_AFTER</a><dd>In the case of the Btree and Hash access methods, insert the data
-element as a duplicate element of the key referenced by the cursor.
-The new element appears immediately after the current cursor position.
-It is an error to specify DB_AFTER if the underlying Btree or
-Hash database does not support duplicate data items. The <b>key</b>
-parameter is ignored.
-<p>In the case of the Recno access method, it is an error to specify
-DB_AFTER if the underlying Recno database was not created with
-the <a href="../api_c/db_set_flags.html#DB_RENUMBER">DB_RENUMBER</a> flag. If the <a href="../api_c/db_set_flags.html#DB_RENUMBER">DB_RENUMBER</a> flag was
-specified, a new key is created, all records after the inserted item
-are automatically renumbered, and the key of the new record is returned
-in the structure referenced by the parameter <b>key</b>. The initial
-value of the <b>key</b> parameter is ignored. See <a href="../api_c/db_open.html">DB-&gt;open</a>
-for more information.
-<p>The DB_AFTER flag may not be specified to the Queue access method.
-<p>If the current cursor record has already been deleted and the underlying
-access method is Hash, DBcursor-&gt;c_put will return <a href="../ref/program/errorret.html#DB_NOTFOUND">DB_NOTFOUND</a>.
-If the underlying access method is Btree or Recno, the operation will
-succeed.
-<p>If the cursor is not yet initialized or a duplicate sort function has been
-specified, the DBcursor-&gt;c_put function will return EINVAL.
-<p><dt><a name="DB_BEFORE">DB_BEFORE</a><dd>In the case of the Btree and Hash access methods, insert the data element
-as a duplicate element of the key referenced by the cursor. The new
-element appears immediately before the current cursor position. It is
-an error to specify DB_BEFORE if the underlying Btree or Hash
-database does not support duplicate data items. The <b>key</b>
-parameter is ignored.
-<p>In the case of the Recno access method, it is an error to specify
-DB_BEFORE if the underlying Recno database was not created with
-the <a href="../api_c/db_set_flags.html#DB_RENUMBER">DB_RENUMBER</a> flag. If the <a href="../api_c/db_set_flags.html#DB_RENUMBER">DB_RENUMBER</a> flag was
-specified, a new key is created, the current record and all records
-after it are automatically renumbered, and the key of the new record is
-returned in the structure referenced by the parameter <b>key</b>. The
-initial value of the <b>key</b> parameter is ignored. See
-<a href="../api_c/db_open.html">DB-&gt;open</a> for more information.
-<p>The DB_BEFORE flag may not be specified to the Queue access method.
-<p>If the current cursor record has already been deleted and the underlying
-access method is Hash, DBcursor-&gt;c_put will return <a href="../ref/program/errorret.html#DB_NOTFOUND">DB_NOTFOUND</a>.
-If the underlying access method is Btree or Recno, the operation will
-succeed.
-<p>If the cursor is not yet initialized or a duplicate sort function has been
-specified, DBcursor-&gt;c_put will return EINVAL.
-<p><dt><a name="DB_CURRENT">DB_CURRENT</a><dd>Overwrite the data of the key/data pair referenced by the cursor with the
-specified data item. The <b>key</b> parameter is ignored.
-<p>If a duplicate sort function has been specified and the data item of the
-current referenced key/data pair does not compare equally to the <b>data</b>
-parameter, DBcursor-&gt;c_put will return EINVAL.
-<p>If the current cursor record has already been deleted and the underlying
-access method is Hash, DBcursor-&gt;c_put will return <a href="../ref/program/errorret.html#DB_NOTFOUND">DB_NOTFOUND</a>.
-If the underlying access method is Btree, Queue or Recno, the operation
-will succeed.
-<p>If the cursor is not yet initialized, DBcursor-&gt;c_put will return EINVAL.
-<p><dt><a name="DB_KEYFIRST">DB_KEYFIRST</a><dd>In the case of the Btree and Hash access methods, insert the specified
-key/data pair into the database.
-<p>If the underlying database supports duplicate data items, and if the
-key already exists in the database and a duplicate sort function has
-been specified, the inserted data item is added in its sorted location.
-If the key already exists in the database and no duplicate sort function
-has been specified, the inserted data item is added as the first of the
-data items for that key.
-<p>The DB_KEYFIRST flag may not be specified to the Queue or Recno
-access methods.
-<p><dt><a name="DB_KEYLAST">DB_KEYLAST</a><dd>In the case of the Btree and Hash access methods, insert the specified
-key/data pair into the database.
-<p>If the underlying database supports duplicate data items, and if the
-key already exists in the database and a duplicate sort function has
-been specified, the inserted data item is added in its sorted location.
-If the key already exists in the database, and no duplicate sort
-function has been specified, the inserted data item is added as the last
-of the data items for that key.
-<p>The DB_KEYLAST flag may not be specified to the Queue or Recno
-access methods.
-<p><dt><a name="DB_NODUPDATA">DB_NODUPDATA</a><dd>In the case of the Btree and Hash access methods, insert the specified
-key/data pair into the database unless it already exists in the database.
-If the key/data pair already appears in the database, <a href="../api_c/dbc_put.html#DB_KEYEXIST">DB_KEYEXIST</a>
-is returned. The DB_NODUPDATA flag may only be specified if
-the underlying database has been configured to support sorted duplicate
-data items.
-<p>The DB_NODUPDATA flag may not be specified to the Queue or Recno
-access methods.
-</dl>
-<p>Otherwise, the DBcursor-&gt;c_put function returns a non-zero error value on failure and 0 on success.
-<p>If DBcursor-&gt;c_put fails for any reason, the state of the cursor will be
-unchanged. If DBcursor-&gt;c_put succeeds and an item is inserted into the
-database, the cursor is always positioned to reference the newly inserted
-item.
-<h1>Errors</h1>
-<p>The DBcursor-&gt;c_put function may fail and return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>DB_LOCK_DEADLOCK<dd>The operation was selected to resolve a deadlock.
-</dl>
-<p><dl compact>
-<p><dt>EACCES<dd>An attempt was made to modify a read-only database.
-</dl>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>The DB_BEFORE or DB_AFTER flags were specified, and the
-underlying access method is Queue.
-<p>An attempt was made to add a record to a fixed-length database that was too
-large to fit.
-</dl>
-<p><dl compact>
-<p><dt>EPERM <dd>Write attempted on read-only cursor when the <a href="../api_c/env_open.html#DB_INIT_CDB">DB_INIT_CDB</a> flag was
-specified to <a href="../api_c/env_open.html">DBENV-&gt;open</a>.
-</dl>
-<p>The DBcursor-&gt;c_put function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the DBcursor-&gt;c_put function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/dbc_close.html">DBcursor-&gt;c_close</a>,
-<a href="../api_c/dbc_count.html">DBcursor-&gt;c_count</a>,
-<a href="../api_c/dbc_del.html">DBcursor-&gt;c_del</a>,
-<a href="../api_c/dbc_dup.html">DBcursor-&gt;c_dup</a>,
-<a href="../api_c/dbc_get.html">DBcursor-&gt;c_get</a>
-and
-<a href="../api_c/dbc_put.html">DBcursor-&gt;c_put</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/dbm.html b/bdb/docs/api_c/dbm.html
deleted file mode 100644
index 783d59e6271..00000000000
--- a/bdb/docs/api_c/dbm.html
+++ /dev/null
@@ -1,220 +0,0 @@
-<!--$Id: dbm.so,v 10.18 2000/03/01 21:41:29 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: dbm/ndbm</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>dbm/ndbm</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#define DB_DBM_HSEARCH 1
-#include &lt;db.h&gt;
-<p>
-typedef struct {
- char *dptr;
- int dsize;
-} datum;
-<hr size=1 noshade>
-<h3>Dbm Functions</h3>
-int
-dbminit(char *file);
-<p>
-int
-dbmclose();
-<p>
-datum
-fetch(datum key);
-<p>
-int
-store(datum key, datum content);
-<p>
-int
-delete(datum key);
-<p>
-datum
-firstkey(void);
-<p>
-datum
-nextkey(datum key);
-<hr size=1 noshade>
-<h3>Ndbm Functions</h3>
-DBM *
-dbm_open(char *file, int flags, int mode);
-<p>
-void
-dbm_close(DBM *db);
-<p>
-datum
-dbm_fetch(DBM *db, datum key);
-<p>
-int
-dbm_store(DBM *db, datum key, datum content, int flags);
-<p>
-int
-dbm_delete(DBM *db, datum key);
-<p>
-datum
-dbm_firstkey(DBM *db);
-<p>
-datum
-dbm_nextkey(DBM *db);
-<p>
-int
-dbm_error(DBM *db);
-<p>
-int
-dbm_clearerr(DBM *db);
-</pre></h3>
-<h1>Description</h1>
-<p>The dbm interfaces to the Berkeley DB library are intended to provide
-high-performance implementations and source code compatibility for
-applications written to historic interfaces. They are not recommended
-for any other purpose. The historic dbm database format
-<b>is not supported</b>, and databases previously built using the real
-dbm libraries cannot be read by the Berkeley DB functions.
-<p>To compile dbm applications, replace the application's
-<b>#include</b> of the dbm or ndbm include file (e.g.,
-<b>#include &lt;dbm.h&gt;</b> or <b>#include &lt;ndbm.h&gt;</b>)
-with the following two lines:
-<p><blockquote><pre>#define DB_DBM_HSEARCH 1
-#include &lt;db.h&gt;</pre></blockquote>
-<p>and recompile. If the application attempts to load against a dbm library
-(e.g., <b>-ldbm</b>), remove the library from the load line.
-<p><b>Key</b> and <b>content</b> arguments are objects described by the
-<b>datum</b> typedef. A <b>datum</b> specifies a string of
-<b>dsize</b> bytes pointed to by <b>dptr</b>. Arbitrary binary data,
-as well as normal text strings, is allowed.
-<h3>Dbm Functions</h3>
-<p>Before a database can be accessed, it must be opened by dbminit.
-This will open and/or create the database <b>file</b>.db. If created,
-the database file is created read/write by owner only (as described in
-<b>chmod</b>(2) and modified by the process' umask value at the time
-of creation (see <b>umask</b>(2)). The group ownership of created
-files is based on the system and directory defaults, and is not further
-specified by Berkeley DB.
-<p>A database may be closed, and any held resources released, by calling
-dbmclose.
-<p>Once open, the data stored under a key is accessed by fetch and
-data is placed under a key by store. A key (and its associated
-contents) is deleted by delete. A linear pass through all keys
-in a database may be made, in an (apparently) random order, by use of
-firstkey and nextkey. The firstkey function will return
-the first key in the database. The nextkey function will return the next
-key in the database.
-<p>The following code will traverse the data base:
-<p><blockquote><pre>for (key = firstkey();
- key.dptr != NULL; key = nextkey(key)) {
- ...
-}</pre></blockquote>
-<h3>Ndbm Functions</h3>
-<p>Before a database can be accessed, it must be opened by dbm_open.
-This will open and/or create the database file <b>file.db</b> depending
-on the flags parameter (see <b>open</b>(2)). If created, the database
-file is created with mode <b>mode</b> (as described in <b>chmod</b>(2)) and modified by the process' umask value at the time of creation (see
-<b>umask</b>(2)). The group ownership of created files is based on
-the system and directory defaults, and is not further specified by
-Berkeley DB.
-<p>Once open, the data stored under a key is accessed by dbm_fetch
-and data is placed under a key by dbm_store. The <b>flags</b>
-field can be either <b>DBM_INSERT</b> or <b>DBM_REPLACE</b>.
-<b>DBM_INSERT</b> will only insert new entries into the database and will
-not change an existing entry with the same key. <b>DBM_REPLACE</b> will
-replace an existing entry if it has the same key. A key (and its
-associated contents) is deleted by dbm_delete. A linear pass
-through all keys in a database may be made, in an (apparently) random
-order, by use of dbm_firstkey and dbm_nextkey. The
-dbm_firstkey function will return the first key in the database. The
-dbm_nextkey function will return the next key in the database.
-<p>The following code will traverse the data base:
-<p><blockquote><pre>for (key = dbm_firstkey(db);
- key.dptr != NULL; key = dbm_nextkey(db)) {
- ...
-}</pre></blockquote>
-<h3>Compatibility Notes</h3>
-<p>The historic dbm library created two underlying database files,
-traditionally named <b>file.dir</b> and <b>file.pag</b>. The Berkeley DB
-library creates a single database file named <b>file.db</b>.
-Applications that are aware of the underlying database file names may
-require additional source code modifications.
-<p>The historic dbminit interface required that the underlying
-<b>.dir</b> and <b>.pag</b> files already exist (empty databases were
-created by first manually creating zero-length <b>.dir</b> and
-<b>.pag</b> files). Applications that expect to create databases using
-this method may require additional source code modifications.
-<p>The historic dbm_dirfno and dbm_pagfno macros are
-supported, but will return identical file descriptors as there is only a
-single underlying file used by the Berkeley DB hashing access method.
-Applications using both file descriptors for locking may require
-additional source code modifications.
-<p>If applications using the dbm interface exits without first
-closing the database, it may lose updates because the Berkeley DB library
-buffers writes to underlying databases. Such applications will require
-additional source code modifications to work correctly with the Berkeley DB
-library.
-<h3>Dbm Diagnostics</h3>
-<p>The dbminit function returns -1 on failure, setting <b>errno</b>,
-and 0 on success.
-<p>The fetch function sets the <b>dptr</b> field of the returned
-<b>datum</b> to NULL on failure, setting <b>errno</b>,
-and returns a non-NULL <b>dptr</b> on success.
-<p>The store function returns -1 on failure, setting <b>errno</b>,
-and 0 on success.
-<p>The delete function returns -1 on failure, setting <b>errno</b>,
-and 0 on success.
-<p>The firstkey function sets the <b>dptr</b> field of the returned
-<b>datum</b> to NULL on failure, setting <b>errno</b>,
-and returns a non-NULL <b>dptr</b> on success.
-<p>The nextkey function sets the <b>dptr</b> field of the returned
-<b>datum</b> to NULL on failure, setting <b>errno</b>,
-and returns a non-NULL <b>dptr</b> on success.
-<h1>Errors</h1>
-<p>The dbminit, fetch, store, delete, firstkey and nextkey functions may fail
-and return a non-zero error for errors specified for other Berkeley DB and C
-library or system functions.
-<h3>Ndbm Diagnostics</h3>
-<p>The dbm_close function returns non-zero when an error has occurred reading or
-writing the database.
-<p>The dbm_close function resets the error condition on the named database.
-<p>The dbm_open function returns NULL on failure, setting <b>errno</b>,
-and 0 on success.
-<p>The dbm_fetch function sets the <b>dptr</b> field of the returned
-<b>datum</b> to NULL on failure, setting <b>errno</b>,
-and returns a non-NULL <b>dptr</b> on success.
-<p>The dbm_store function returns -1 on failure, setting <b>errno</b>,
-0 on success, and 1 if DBM_INSERT was set and the specified key already
-existed in the database.
-<p>The dbm_delete function returns -1 on failure, setting <b>errno</b>,
-and 0 on success.
-<p>The dbm_firstkey function sets the <b>dptr</b> field of the returned
-<b>datum</b> to NULL on failure, setting <b>errno</b>,
-and returns a non-NULL <b>dptr</b> on success.
-<p>The dbm_nextkey function sets the <b>dptr</b> field of the returned
-<b>datum</b> to NULL on failure, setting <b>errno</b>,
-and returns a non-NULL <b>dptr</b> on success.
-<p>The dbm_close function returns -1 on failure, setting <b>errno</b>,
-and 0 on success.
-<p>The dbm_close function returns -1 on failure, setting <b>errno</b>,
-and 0 on success.
-<h1>Errors</h1>
-<p>The dbm_open, dbm_close, dbm_fetch, dbm_store, dbm_delete, dbm_firstkey
-and dbm_nextkey functions may fail and return a non-zero error for errors
-specified for other Berkeley DB and C library or system functions.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/dbt.html b/bdb/docs/api_c/dbt.html
deleted file mode 100644
index a0c3e76db8d..00000000000
--- a/bdb/docs/api_c/dbt.html
+++ /dev/null
@@ -1,158 +0,0 @@
-<!--$Id: dbt.so,v 10.37 2000/12/18 21:05:12 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DBT</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<tt>
- <a name="2"><!--meow--></a>
-<h3>Key/Data Pairs</h3>
-<p>Storage and retrieval for the Berkeley DB access methods are based on key/data
-pairs. Both key and data items are represented by the DBT data structure.
-(The name DBT is a mnemonic for <i>data base thang</i>, and was used
-because no one could think of a reasonable name that wasn't already in
-use somewhere else.) Key and data byte strings may reference strings of
-zero length up to strings of essentially unlimited length. See
-<a href="../ref/program/dbsizes.html">Database limits</a> for more
-information.
-<p><blockquote><pre>typedef struct {
- void *data;
- u_int32_t size;
- u_int32_t ulen;
- u_int32_t dlen;
- u_int32_t doff;
- u_int32_t flags;
-} DBT;</pre></blockquote>
-<p>In order to ensure compatibility with future releases of Berkeley DB, all fields
-of the DBT structure that are not explicitly set should be initialized to
-0 before the first time the structure is used. Do this by declaring the
-structure external or static, or by calling the C library routine
-<b>bzero</b>(3) or <b>memset</b>(3).
-<p>By default, the <b>flags</b> structure element is expected to be 0. In
-this default case, when the application is providing Berkeley DB a key or data
-item to store into the database, Berkeley DB expects the <b>data</b> structure
-element to point to a byte string of <b>size</b> bytes. When returning
-a key/data item to the application, Berkeley DB will store into the <b>data</b>
-structure element a pointer to a byte string of <b>size</b> bytes, and
-the memory referenced by the pointer will be allocated and managed by Berkeley DB.
-<p>The elements of the DBT structure are defined as follows:
-<p><dl compact>
-<p><dt>void *<a name="data">data</a>;<dd>A pointer to a byte string.
-<p><dt>u_int32_t <a name="size">size</a>;<dd>The length of <b>data</b>, in bytes.
-<p><dt>u_int32_t <a name="ulen">ulen</a>;<dd>The size of the user's buffer (referenced by <b>data</b>), in bytes.
-This location is not written by the Berkeley DB functions.
-<p>Note that applications can determine the length of a record by setting
-the <b>ulen</b> field to 0 and checking the return value in the
-<b>size</b> field. See the DB_DBT_USERMEM flag for more information.
-<p><dt>u_int32_t <a name="dlen">dlen</a>;<dd>The length of the partial record being read or written by the application,
-in bytes. See the DB_DBT_PARTIAL flag for more information.
-<p><dt>u_int32_t <a name="doff">doff</a>;<dd>The offset of the partial record being read or written by the application,
-in bytes. See the DB_DBT_PARTIAL flag for more information.
-<p><dt>u_int32_t flags;<dd>
-<p>The <b>flags</b> value must be set to 0 or by bitwise inclusively <b>OR</b>'ing together one or more
-of the following values.
-<p><dl compact>
-<p><dt><a name="DB_DBT_MALLOC">DB_DBT_MALLOC</a><dd>When this flag is set Berkeley DB will allocate memory for the returned key
-or data item (using <b>malloc</b>(3), or the user-specified malloc
-function) and return a pointer to it in the <b>data</b> field of the
-key or data DBT structure. As any allocated memory becomes the
-responsibility of the calling application, the caller must be able to
-determine if memory was allocated.
-<p>It is an error to specify more than one of DB_DBT_MALLOC,
-DB_DBT_REALLOC and DB_DBT_USERMEM.
-<p><dt><a name="DB_DBT_REALLOC">DB_DBT_REALLOC</a><dd>When this flag is set Berkeley DB will allocate memory for the returned key
-or data item (using <b>realloc</b>(3), or the user-specified realloc
-function) and return a pointer to it in the <b>data</b> field of the
-key or data DBT structure. As any allocated memory becomes the
-responsibility of the calling application, the caller must be able to
-determine if memory was allocated.
-<p>The difference between DB_DBT_MALLOC and DB_DBT_REALLOC
-is that the latter will call <b>realloc</b>(3) instead of
-<b>malloc</b>(3), so the allocated memory will be grown as necessary
-instead of the application doing repeated free/malloc calls.
-<p>It is an error to specify more than one of DB_DBT_MALLOC,
-DB_DBT_REALLOC and DB_DBT_USERMEM.
-<p><dt><a name="DB_DBT_USERMEM">DB_DBT_USERMEM</a><dd>The <b>data</b> field of the key or data structure must reference
-memory that is at least <b>ulen</b> bytes in length. If the length of
-the requested item is less than or equal to that number of bytes, the
-item is copied into the memory referenced by the <b>data</b> field.
-Otherwise, the <b>size</b> field is set to the length needed for the
-requested item, and the error ENOMEM is returned.
-<p>It is an error to specify more than one of DB_DBT_MALLOC,
-DB_DBT_REALLOC and DB_DBT_USERMEM.
-<p><dt><a name="DB_DBT_PARTIAL">DB_DBT_PARTIAL</a><dd>Do partial retrieval or storage of an item. If the calling application
-is doing a get, the <b>dlen</b> bytes starting <b>doff</b> bytes from
-the beginning of the retrieved data record are returned as if they
-comprised the entire record. If any or all of the specified bytes do
-not exist in the record, the get is successful and the existing bytes
-or nul bytes are returned.
-<p>For example, if the data portion of a retrieved record was 100 bytes,
-and a partial retrieval was done using a DBT having a <b>dlen</b>
-field of 20 and a <b>doff</b> field of 85, the get call would succeed,
-the <b>data</b> field would reference the last 15 bytes of the record,
-and the <b>size</b> field would be set to 15.
-<p>If the calling application is doing a put, the <b>dlen</b> bytes
-starting <b>doff</b> bytes from the beginning of the specified key's
-data record are replaced by the data specified by the <b>data</b>
-and <b>size</b> structure elements.
-If <b>dlen</b> is smaller than <b>size</b>, the record will grow,
-and if <b>dlen</b> is larger than <b>size</b>, the record will shrink.
-If the specified bytes do not exist, the record will be extended using
-nul bytes as necessary, and the put call will succeed.
-<p>It is an error to attempt a partial put using the <a href="../api_c/db_put.html">DB-&gt;put</a> function
-in a database that supports duplicate records.
-Partial puts in databases supporting duplicate records must be done
-using a <a href="../api_c/dbc_put.html">DBcursor-&gt;c_put</a> function.
-<p>It is an error to attempt a partial put with differing <b>dlen</b> and
-<b>size</b> values in Queue or Recno databases with fixed-length records.
-<p>For example, if the data portion of a retrieved record was 100 bytes,
-and a partial put was done using a DBT having a <b>dlen</b> field of 20,
-a <b>doff</b> field of 85, and a <b>size</b> field of 30, the resulting
-record would be 115 bytes in length, where the last 30 bytes would be
-those specified by the put call.
-</dl>
-</dl>
- <a name="3"><!--meow--></a> <a name="4"><!--meow--></a>
-<h3>Retrieved key/data permanence</h3>
-<p>When using the non-cursor Berkeley DB calls to retrieve key/data items (e.g.,
-<a href="../api_c/db_get.html">DB-&gt;get</a>), the memory referenced by the pointer stored into the
-Dbt is only valid until the next call to Berkeley DB using the Db
-handle returned by <a href="../api_c/db_open.html">DB-&gt;open</a>. (This includes <b>any</b> use of
-the returned Db handle, including by another thread of control
-within the process. For this reason, when multiple threads are using the
-returned Db handle concurrently, one of the DB_DBT_MALLOC,
-DB_DBT_REALLOC or DB_DBT_USERMEM flags must be specified
-with any non-cursor Dbt used for key or data retrieval.)
-<p>When using the cursor Berkeley DB calls to retrieve key/data items (e.g.,
-<a href="../api_c/dbc_get.html">DBcursor-&gt;c_get</a>), the memory referenced by the pointer into the
-Dbt is only valid until the next call to Berkeley DB using the
-DBC handle returned by <a href="../api_c/db_cursor.html">DB-&gt;cursor</a>.
- <a name="5"><!--meow--></a>
-<h3>Data alignment</h3>
-<p>The Berkeley DB access methods provide no guarantees about key/data byte string
-alignment, and applications are responsible for arranging any necessary
-alignment. The DB_DBT_MALLOC, DB_DBT_REALLOC and
-DB_DBT_USERMEM flags may be used to store returned items in memory
-of arbitrary alignment.
- <a name="6"><!--meow--></a>
-<h3>Logical Record Numbers</h3>
-<p>In all cases for the Queue and Recno access methods, and when calling the
-<a href="../api_c/db_get.html">DB-&gt;get</a> and <a href="../api_c/dbc_get.html">DBcursor-&gt;c_get</a> functions with the
-<a href="../api_c/db_get.html#DB_SET_RECNO">DB_SET_RECNO</a> flag specified, the <b>data</b> field of the key
-must be a pointer to a memory location of type <b>db_recno_t</b>, as
-typedef'd in the #include &lt;db.h&gt; include file. This type is a 32-bit
-unsigned type, (which limits the number of logical records in a Queue or
-Recno database, and the maximum logical record which may be directly
-retrieved from a Btree database, to 4,294,967,296). The <b>size</b>
-field of the key should be the size of that type, i.e., in the C
-programming language, <b>sizeof(db_recno_t)</b>.
-<p>Logical record numbers are 1-based, not 0-based, i.e., the first record
-in the database is record number 1.
-</tt>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/env_close.html b/bdb/docs/api_c/env_close.html
deleted file mode 100644
index fdb11e2e18c..00000000000
--- a/bdb/docs/api_c/env_close.html
+++ /dev/null
@@ -1,84 +0,0 @@
-<!--$Id: env_close.so,v 10.21 2000/03/01 21:41:29 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DBENV-&gt;close</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DBENV-&gt;close</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DBENV-&gt;close(DB_ENV *dbenv, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The DBENV-&gt;close function closes the Berkeley DB environment, freeing any
-allocated resources and closing any underlying subsystems.
-<p>Calling DBENV-&gt;close does not imply closing any databases that were
-opened in the environment.
-<p>The <b>flags</b> parameter is currently unused, and must be set to 0.
-<p>Where the environment was initialized with the <a href="../api_c/env_open.html#DB_INIT_LOCK">DB_INIT_LOCK</a> flag,
-calling DBENV-&gt;close does not release any locks still held by the
-closing process, providing functionality for long-lived locks.
-Processes that wish to have all their locks
-released can do so by issuing the appropriate <a href="../api_c/lock_vec.html">lock_vec</a> call.
-<p>Where the environment was initialized with the <a href="../api_c/env_open.html#DB_INIT_MPOOL">DB_INIT_MPOOL</a>
-flag, calling DBENV-&gt;close implies calls to <a href="../api_c/memp_fclose.html">memp_fclose</a> for
-any remaining open files in the memory pool that were returned to this
-process by calls to <a href="../api_c/memp_fopen.html">memp_fopen</a>. It does not imply a call to
-<a href="../api_c/memp_fsync.html">memp_fsync</a> for those files.
-<p>Where the environment was initialized with the <a href="../api_c/env_open.html#DB_INIT_TXN">DB_INIT_TXN</a> flag,
-calling DBENV-&gt;close aborts any uncommitted transactions.
-(Applications are should not depend on this behavior. If the process' has
-already closed a database handle which is necessary to abort an
-uncommitted transaction, the Berkeley DB environment must then require that
-recovery be run before further operations are done, since once a
-transaction exists that cannot be committed or aborted, no future
-checkpoint can ever succeed.)
-<p>In multi-threaded applications, only a single thread may call
-DBENV-&gt;close.
-<p>Once DBENV-&gt;close has been called, regardless of its return,
-the Berkeley DB environment handle may not be accessed again.
-<p>The DBENV-&gt;close function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p>The DBENV-&gt;close function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the DBENV-&gt;close function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/env_close.html">DBENV-&gt;close</a>,
-<a href="../api_c/env_create.html">db_env_create</a>,
-<a href="../api_c/env_open.html">DBENV-&gt;open</a>,
-<a href="../api_c/env_remove.html">DBENV-&gt;remove</a>,
-<a href="../api_c/db_err.html">DBENV-&gt;err</a>,
-<a href="../api_c/env_strerror.html">db_strerror</a>,
-<a href="../api_c/env_version.html">db_version</a>,
-<a href="../api_c/env_set_cachesize.html">DBENV-&gt;set_cachesize</a>,
-<a href="../api_c/env_set_errcall.html">DBENV-&gt;set_errcall</a>,
-<a href="../api_c/env_set_errfile.html">DBENV-&gt;set_errfile</a>,
-<a href="../api_c/env_set_errpfx.html">DBENV-&gt;set_errpfx</a>,
-<a href="../api_c/env_set_flags.html">DBENV-&gt;set_flags</a>,
-<a href="../api_c/env_set_mutexlocks.html">DBENV-&gt;set_mutexlocks</a>,
-<a href="../api_c/env_set_paniccall.html">DBENV-&gt;set_paniccall</a>,
-and
-<a href="../api_c/env_set_verbose.html">DBENV-&gt;set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/env_create.html b/bdb/docs/api_c/env_create.html
deleted file mode 100644
index 26ffb204ef2..00000000000
--- a/bdb/docs/api_c/env_create.html
+++ /dev/null
@@ -1,74 +0,0 @@
-<!--$Id: env_create.so,v 10.12 2000/10/25 18:51:08 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db_env_create</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>db_env_create</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-db_env_create(DB_ENV **dbenvp, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The db_env_create function creates a DB_ENV structure which is
-the handle for a Berkeley DB environment. A pointer to this structure is
-returned in the memory referenced by <b>dbenvp</b>.
-<p>The <b>flags</b> parameter must be set to 0 or the following value:
-<p><dl compact>
-<p><dt><a name="DB_CLIENT">DB_CLIENT</a><dd>Create a client environment to connect to a server.
-<p>The DB_CLIENT flag indicates to the system that this environment
-is remote on a server. The use of this flag causes the environment
-methods to use functions that call a server instead of local functions.
-Prior to making any environment or database method calls, the application
-must call the <a href="../api_c/env_set_server.html">DBENV-&gt;set_server</a> function to establish the
-connection to the server.
-</dl>
-<p>The DB_ENV handle contains a special field, "app_private", which
-is declared as type "void *". This field is provided for the use of
-the application program. It is initialized to NULL and is not further
-used by Berkeley DB in any way.
-<p>The db_env_create function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p>The db_env_create function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the db_env_create function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/env_close.html">DBENV-&gt;close</a>,
-<a href="../api_c/env_create.html">db_env_create</a>,
-<a href="../api_c/env_open.html">DBENV-&gt;open</a>,
-<a href="../api_c/env_remove.html">DBENV-&gt;remove</a>,
-<a href="../api_c/db_err.html">DBENV-&gt;err</a>,
-<a href="../api_c/env_strerror.html">db_strerror</a>,
-<a href="../api_c/env_version.html">db_version</a>,
-<a href="../api_c/env_set_cachesize.html">DBENV-&gt;set_cachesize</a>,
-<a href="../api_c/env_set_errcall.html">DBENV-&gt;set_errcall</a>,
-<a href="../api_c/env_set_errfile.html">DBENV-&gt;set_errfile</a>,
-<a href="../api_c/env_set_errpfx.html">DBENV-&gt;set_errpfx</a>,
-<a href="../api_c/env_set_flags.html">DBENV-&gt;set_flags</a>,
-<a href="../api_c/env_set_mutexlocks.html">DBENV-&gt;set_mutexlocks</a>,
-<a href="../api_c/env_set_paniccall.html">DBENV-&gt;set_paniccall</a>,
-and
-<a href="../api_c/env_set_verbose.html">DBENV-&gt;set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/env_open.html b/bdb/docs/api_c/env_open.html
deleted file mode 100644
index 677f40c1591..00000000000
--- a/bdb/docs/api_c/env_open.html
+++ /dev/null
@@ -1,205 +0,0 @@
-<!--$Id: env_open.so,v 10.61 2000/12/01 15:50:31 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DBENV-&gt;open</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DBENV-&gt;open</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DBENV-&gt;open(DB_ENV *, char *db_home, u_int32_t flags, int mode);
-</pre></h3>
-<h1>Description</h1>
-<p>The DBENV-&gt;open function is the interface for opening the Berkeley DB
-environment. It provides a structure for creating a consistent
-environment for processes using one or more of the features of Berkeley DB.
-<p>The <b>db_home</b> argument to DBENV-&gt;open (and file name
-resolution in general) is described in
-<a href="../ref/env/naming.html">Berkeley DB File Naming</a>.
-<p>The <b>flags</b> argument specifies the subsystems that are initialized
-and how the application's environment affects Berkeley DB file naming, among
-other things.
-<p>The <b>flags</b> value must be set to 0 or by bitwise inclusively <b>OR</b>'ing together one or more
-of the following values.
-<p>As there are a large number of flags that can be specified, they have been
-grouped together by functionality. The first group of flags indicate
-which of the Berkeley DB subsystems should be initialized:
-<p><dl compact>
-<p><dt><a name="DB_JOINENV">DB_JOINENV</a><dd>Join an existing environment. This option allows applications to
-join an existing environment without knowing which Berkeley DB subsystems
-the environment supports.
-<p><dt><a name="DB_INIT_CDB">DB_INIT_CDB</a><dd>Initialize locking for the <a href="../ref/cam/intro.html">Berkeley DB Concurrent Data Store</a>
-product. In this mode, Berkeley DB provides multiple reader/single writer
-access. The only other subsystem that should be specified with the
-DB_INIT_CDB flag is DB_INIT_MPOOL.
-<p>Access method calls are largely unchanged when using this flag, although
-any cursors through which update operations (e.g., <a href="../api_c/dbc_put.html">DBcursor-&gt;c_put</a>,
-<a href="../api_c/dbc_del.html">DBcursor-&gt;c_del</a>) will be made must have the <a href="../api_c/db_cursor.html#DB_WRITECURSOR">DB_WRITECURSOR</a> value
-set in the flags parameter to the cursor call that creates the cursor.
-See <a href="../api_c/db_cursor.html">DB-&gt;cursor</a> for more information.
-<p><dt><a name="DB_INIT_LOCK">DB_INIT_LOCK</a><dd>Initialize the locking subsystem. This subsystem should be used when
-multiple processes or threads are going to be reading and writing a Berkeley DB
-database, so that they do not interfere with each other. If all threads
-are accessing the database(s) read-only, then locking is unnecessary.
-When the DB_INIT_LOCK flag is specified, it is usually necessary to run
-the deadlock detector, as well. See <a href="../utility/db_deadlock.html">db_deadlock</a> and
-<a href="../api_c/lock_detect.html">lock_detect</a> for more information.
-<p><dt><a name="DB_INIT_LOG">DB_INIT_LOG</a><dd>Initialize the logging subsystem. This subsystem is used when recovery
-from application or system failure is necessary.
-<p>The log is stored in one or more files in the environment directory.
-Each file is named using the format <i>log.NNNNNNNNNN</i>, where
-<i>NNNNNNNNNN</i> is the sequence number of the file within the log.
-For further information, see
-<a href="../ref/log/limits.html">Log File Limits</a>.
-<p>If the log region is being created and log files are already present, the
-log files are reviewed and subsequent log writes are appended
-to the end of the log, rather than overwriting current log entries.
-<p><dt><a name="DB_INIT_MPOOL">DB_INIT_MPOOL</a><dd>Initialize the shared memory buffer pool subsystem. This subsystem is
-used whenever the application is using any Berkeley DB access method.
-<p><dt><a name="DB_INIT_TXN">DB_INIT_TXN</a><dd>Initialize the transaction subsystem. This subsystem is used when
-recovery and atomicity of multiple operations and recovery are important.
-The DB_INIT_TXN flag implies the DB_INIT_LOG flag.
-</dl>
-<p>The second group of flags govern what recovery, if any, is performed when
-the environment is initialized:
-<p><dl compact>
-<p><dt><a name="DB_RECOVER">DB_RECOVER</a><dd>Run normal recovery on this environment before opening it for normal use.
-If this flag is set, the DB_CREATE flag must also be set since the regions
-will be removed and recreated.
-<p><dt><a name="DB_RECOVER_FATAL">DB_RECOVER_FATAL</a><dd>Run catastrophic recovery on this environment before opening it for normal
-use. If this flag is set, the DB_CREATE flag must also be set since the
-regions will be removed and recreated.
-</dl>
-<p>A standard part of the recovery process is to remove the existing Berkeley DB
-environment and create a new one in which to perform recovery. If the
-thread of control performing recovery does not specify the correct region
-initialization information (e.g., the correct memory pool cache size),
-the result can be an application running in an environment with incorrect
-cache and other subsystem sizes. For this reason, the thread of control
-performing recovery should either specify correct configuration
-information before calling the DBENV-&gt;open function, or it should remove
-the environment after recovery is completed, leaving creation of the
-correctly sized environment to a subsequent call to DBENV-&gt;open.
-<p>All Berkeley DB recovery processing must be single-threaded, that is, only a
-single thread of control may perform recovery or access a Berkeley DB
-environment while recovery is being performed. As it is not an error to
-specify DB_RECOVER for an environment for which no recovery is
-required, it is reasonable programming practice for the thread of control
-responsible for performing recovery and creating the environment to always
-specify the DB_RECOVER flag during startup.
-<p>The DBENV-&gt;open function returns successfully if DB_RECOVER
-or DB_RECOVER_FATAL is specified and no log files exist, so it is
-necessary to ensure all necessary log files are present before running
-recovery. For further information, consult <a href="../utility/db_archive.html">db_archive</a> and
-<a href="../utility/db_recover.html">db_recover</a>.
-<p>The third group of flags govern file naming extensions in the environment:
-<p><dl compact>
-<!--$Id: m4.env_flags,v 10.9 2000/06/29 22:54:10 bostic Exp $-->
-<p><dt><a name="DB_USE_ENVIRON">DB_USE_ENVIRON</a><dd>The Berkeley DB process' environment may be permitted to specify information to
-be used when naming files; see <a href="../ref/env/naming.html">Berkeley DB
-File Naming</a>. As permitting users to specify which files are used can
-create security problems, environment information will be used in file
-naming for all users only if the DB_USE_ENVIRON flag is set.
-<p><dt><a name="DB_USE_ENVIRON_ROOT">DB_USE_ENVIRON_ROOT</a><dd>The Berkeley DB process' environment may be permitted to specify information to
-be used when naming files; see <a href="../ref/env/naming.html">Berkeley DB
-File Naming</a>. As permitting users to specify which files are used can
-create security problems, if the DB_USE_ENVIRON_ROOT flag is set,
-environment information will be used for file naming only for users with
-appropriate permissions (e.g., on UNIX systems, users with a user-ID of 0).
-</dl>
-<p>Finally, there are a few additional, unrelated flags:
-<p><dl compact>
-<p><dt><a name="DB_CREATE">DB_CREATE</a><dd>Cause Berkeley DB subsystems to create any underlying files, as necessary.
-<p><dt><a name="DB_LOCKDOWN">DB_LOCKDOWN</a><dd>Lock shared Berkeley DB environment files and memory mapped databases into memory.
-<p><dt><a name="DB_PRIVATE">DB_PRIVATE</a><dd>Specify that the environment will only be accessed by a single process
-(although that process may be multi-threaded). This flag has two effects
-on the Berkeley DB environment. First, all underlying data structures are
-allocated from per-process memory instead of from shared memory that is
-potentially accessible to more than a single process. Second, mutexes
-are only configured to work between threads.
-<p>This flag should not be specified if more than a single process is
-accessing the environment, as it is likely to cause database corruption
-and unpredictable behavior, e.g., if both a server application and the
-Berkeley DB utility <a href="../utility/db_stat.html">db_stat</a> will access the environment, the
-DB_PRIVATE flag should not be specified.
-<p><dt><a name="DB_SYSTEM_MEM">DB_SYSTEM_MEM</a><dd>Allocate memory from system shared memory instead of from memory backed
-by the filesystem. See <a href="../ref/env/region.html">Shared Memory
-Regions</a> for more information.
-<p><dt><a name="DB_THREAD">DB_THREAD</a><dd>Cause the DB_ENV handle returned by DBENV-&gt;open to be
-<i>free-threaded</i>, that is, useable by multiple threads within a
-single address space.
-</dl>
-<p>On UNIX systems, or in IEEE/ANSI Std 1003.1 (POSIX) environments, all files created by Berkeley DB
-are created with mode <b>mode</b> (as described in <b>chmod</b>(2)) and
-modified by the process' umask value at the time of creation (see
-<b>umask</b>(2)). The group ownership of created files is based on
-the system and directory defaults, and is not further specified by Berkeley DB.
-If <b>mode</b> is 0, files are created readable and writeable by both
-owner and group. On Windows systems, the mode argument is ignored.
-<p>The DBENV-&gt;open function returns a non-zero error value on failure and 0 on success.
-<h1>Environment Variables</h1>
-<p><dl compact>
-<p><dt>DB_HOME<dd>The environment variable <b>DB_HOME</b> may be used as the path of
-the database home as described in
-<a href="../ref/env/naming.html">Berkeley DB File Naming</a>.
-</dl>
-<h1>Errors</h1>
-<p>The DBENV-&gt;open function may fail and return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EAGAIN<dd>The shared memory region was locked and (repeatedly) unavailable.
-</dl>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>
-The DB_THREAD flag was specified and spinlocks are not
-implemented for this architecture.
-<p>The DB_HOME or TMPDIR environment variables were set but empty.
-<p>An incorrectly formatted <b>NAME VALUE</b> entry or line was found.
-</dl>
-<p><dl compact>
-<p><dt>ENOSPC<dd>HP-UX only: a previously created Berkeley DB environment for this process still
-exists.
-</dl>
-<p>The DBENV-&gt;open function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the DBENV-&gt;open function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/env_close.html">DBENV-&gt;close</a>,
-<a href="../api_c/env_create.html">db_env_create</a>,
-<a href="../api_c/env_open.html">DBENV-&gt;open</a>,
-<a href="../api_c/env_remove.html">DBENV-&gt;remove</a>,
-<a href="../api_c/db_err.html">DBENV-&gt;err</a>,
-<a href="../api_c/env_strerror.html">db_strerror</a>,
-<a href="../api_c/env_version.html">db_version</a>,
-<a href="../api_c/env_set_cachesize.html">DBENV-&gt;set_cachesize</a>,
-<a href="../api_c/env_set_errcall.html">DBENV-&gt;set_errcall</a>,
-<a href="../api_c/env_set_errfile.html">DBENV-&gt;set_errfile</a>,
-<a href="../api_c/env_set_errpfx.html">DBENV-&gt;set_errpfx</a>,
-<a href="../api_c/env_set_flags.html">DBENV-&gt;set_flags</a>,
-<a href="../api_c/env_set_mutexlocks.html">DBENV-&gt;set_mutexlocks</a>,
-<a href="../api_c/env_set_paniccall.html">DBENV-&gt;set_paniccall</a>,
-and
-<a href="../api_c/env_set_verbose.html">DBENV-&gt;set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/env_remove.html b/bdb/docs/api_c/env_remove.html
deleted file mode 100644
index 2d7279d79ab..00000000000
--- a/bdb/docs/api_c/env_remove.html
+++ /dev/null
@@ -1,125 +0,0 @@
-<!--$Id: env_remove.so,v 10.24 2000/12/06 14:40:11 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DBENV-&gt;remove</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DBENV-&gt;remove</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DBENV-&gt;remove(DB_ENV *, char *db_home, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The DBENV-&gt;remove function destroys a Berkeley DB environment, if it is not
-currently in use. The environment regions, including any backing files,
-are removed. Any log or database files and the environment directory are
-not removed.
-<p>The <b>db_home</b> argument to DBENV-&gt;remove is described in
-<a href="../ref/env/naming.html">Berkeley DB File Naming</a>.
-<p>If there are processes that have called <a href="../api_c/env_open.html">DBENV-&gt;open</a> without
-calling <a href="../api_c/env_close.html">DBENV-&gt;close</a> (i.e., there are processes currently using
-the environment), DBENV-&gt;remove will fail without further action,
-unless the <a href="../api_c/env_remove.html#DB_FORCE">DB_FORCE</a> flag is set, in which case
-DBENV-&gt;remove will attempt to remove the environment regardless
-of any processes still using it.
-<p>The result of attempting to forcibly destroy the environment when it is
-in use is unspecified. Processes using an environment often maintain open
-file descriptors for shared regions within it. On UNIX systems, the
-environment removal will usually succeed and processes that have already
-joined the region will continue to run in that region without change,
-however processes attempting to join the environment will either fail or
-create new regions. On other systems (e.g., Windows/NT), where the
-<b>unlink</b>(2) system call will fail if any process has an open
-file descriptor for the file, the region removal will fail.
-<p>Calling DBENV-&gt;remove should not be necessary for most applications,
-as the Berkeley DB environment is cleaned up as part of normal database recovery
-procedures, however, applications may wish to call DBENV-&gt;remove
-as part of application shutdown to free up system resources.
-Specifically, when the <a href="../api_c/env_open.html#DB_SYSTEM_MEM">DB_SYSTEM_MEM</a> flag was specified to
-<a href="../api_c/env_open.html">DBENV-&gt;open</a>, it may be useful to call DBENV-&gt;remove in order
-to release system shared memory segments that have been allocated.
-<p>In the case of catastrophic or system failure, database recovery must be
-performed (see <a href="../utility/db_recover.html">db_recover</a>), or the <a href="../api_c/env_open.html#DB_RECOVER">DB_RECOVER</a> and
-<a href="../api_c/env_open.html#DB_RECOVER_FATAL">DB_RECOVER_FATAL</a> flags to <a href="../api_c/env_open.html">DBENV-&gt;open</a> must be specified
-when the environment is re-opened. Alternatively, if recovery is not
-required because no database state is maintained across failures, and
-the <a href="../api_c/env_open.html#DB_SYSTEM_MEM">DB_SYSTEM_MEM</a> flag was not specified when the environment
-was created, it is possible to clean up an environment by removing all
-of the files in the environment directory that begin with the string
-prefix "__db", as no backing files are created in any other directory.
-<p>The <b>flags</b> value must be set to 0 or by bitwise inclusively <b>OR</b>'ing together one or more
-of the following values.
-<p><dl compact>
-<p><dt><a name="DB_FORCE">DB_FORCE</a><dd>If the <a href="../api_c/env_remove.html#DB_FORCE">DB_FORCE</a> flag is set, the environment is removed regardless
-of any processes that may still using it, and, no locks are acquired
-during this process. (Generally, the <a href="../api_c/env_remove.html#DB_FORCE">DB_FORCE</a> flag is only
-specified when applications were unable to shut down cleanly, and there
-is a risk that an application may have died holding a Berkeley DB lock.)
-<!--$Id: m4.env_flags,v 10.9 2000/06/29 22:54:10 bostic Exp $-->
-<p><dt><a name="DB_USE_ENVIRON">DB_USE_ENVIRON</a><dd>The Berkeley DB process' environment may be permitted to specify information to
-be used when naming files; see <a href="../ref/env/naming.html">Berkeley DB
-File Naming</a>. As permitting users to specify which files are used can
-create security problems, environment information will be used in file
-naming for all users only if the DB_USE_ENVIRON flag is set.
-<p><dt><a name="DB_USE_ENVIRON_ROOT">DB_USE_ENVIRON_ROOT</a><dd>The Berkeley DB process' environment may be permitted to specify information to
-be used when naming files; see <a href="../ref/env/naming.html">Berkeley DB
-File Naming</a>. As permitting users to specify which files are used can
-create security problems, if the DB_USE_ENVIRON_ROOT flag is set,
-environment information will be used for file naming only for users with
-appropriate permissions (e.g., on UNIX systems, users with a user-ID of 0).
-</dl>
-<p>In multi-threaded applications, only a single thread may call
-DBENV-&gt;remove.
-<p>A DB_ENV handle which has already been used to open an
-environment should not be used to call the DBENV-&gt;remove function, a new
-DB_ENV handle should be created for that purpose.
-<p>Once DBENV-&gt;remove has been called, regardless of its return,
-the Berkeley DB environment handle may not be accessed again.
-<p>The DBENV-&gt;remove function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EBUSY<dd>The shared memory region was in use and the force flag was not set.
-</dl>
-<p>The DBENV-&gt;remove function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the DBENV-&gt;remove function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/env_close.html">DBENV-&gt;close</a>,
-<a href="../api_c/env_create.html">db_env_create</a>,
-<a href="../api_c/env_open.html">DBENV-&gt;open</a>,
-<a href="../api_c/env_remove.html">DBENV-&gt;remove</a>,
-<a href="../api_c/db_err.html">DBENV-&gt;err</a>,
-<a href="../api_c/env_strerror.html">db_strerror</a>,
-<a href="../api_c/env_version.html">db_version</a>,
-<a href="../api_c/env_set_cachesize.html">DBENV-&gt;set_cachesize</a>,
-<a href="../api_c/env_set_errcall.html">DBENV-&gt;set_errcall</a>,
-<a href="../api_c/env_set_errfile.html">DBENV-&gt;set_errfile</a>,
-<a href="../api_c/env_set_errpfx.html">DBENV-&gt;set_errpfx</a>,
-<a href="../api_c/env_set_flags.html">DBENV-&gt;set_flags</a>,
-<a href="../api_c/env_set_mutexlocks.html">DBENV-&gt;set_mutexlocks</a>,
-<a href="../api_c/env_set_paniccall.html">DBENV-&gt;set_paniccall</a>,
-and
-<a href="../api_c/env_set_verbose.html">DBENV-&gt;set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/env_set_cachesize.html b/bdb/docs/api_c/env_set_cachesize.html
deleted file mode 100644
index ba7980bb77a..00000000000
--- a/bdb/docs/api_c/env_set_cachesize.html
+++ /dev/null
@@ -1,87 +0,0 @@
-<!--$Id: env_set_cachesize.so,v 10.19 2000/05/20 16:29:11 bostic Exp $-->
-<!--$Id: m4.cachesize,v 10.7 2000/02/11 18:54:45 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DBENV-&gt;set_cachesize</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DBENV-&gt;set_cachesize</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DBENV-&gt;set_cachesize(DB_ENV *dbenv,
- u_int32_t gbytes, u_int32_t bytes, int ncache);
-</pre></h3>
-<h1>Description</h1>
-<p>Set the size of the database's shared memory buffer pool, i.e., the cache,
-to <b>gbytes</b> gigabytes plus <b>bytes</b>. The cache should be the
-size of the normal working data set of the application, with some small
-amount of additional memory for unusual situations. (Note, the working
-set is not the same as the number of simultaneously referenced pages, and
-should be quite a bit larger!)
-<p>The default cache size is 256KB, and may not be specified as less than
-20KB. Any cache size less than 500MB is automatically increased by 25%
-to account for buffer pool overhead, cache sizes larger than 500MB are
-used as specified. For information on tuning the Berkeley DB cache size, see
-<a href="../ref/am_conf/cachesize.html">Selecting a cache size</a>.
-<p>It is possible to specify caches to Berkeley DB that are large enough so that
-they cannot be allocated contiguously on some architectures, e.g., some
-releases of Solaris limit the amount of memory that may be allocated
-contiguously by a process. If <b>ncache</b> is 0 or 1, the cache will
-be allocated contiguously in memory. If it is greater than 1, the cache
-will be broken up into <b>ncache</b> equally sized separate pieces of
-memory.
-<p>The DBENV-&gt;set_cachesize interface may only be used to configure Berkeley DB before
-the <a href="../api_c/env_open.html">DBENV-&gt;open</a> interface is called.
-<p>The DBENV-&gt;set_cachesize function returns a non-zero error value on failure and 0 on success.
-<p>The database environment's cache size may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_cachesize", one or more whitespace characters,
-and the three arguments specified to this interface, separated by whitespace
-characters, for example, "set_cachesize 1 500 2". Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_c/env_open.html">DBENV-&gt;open</a> was called.
-<p>The specified cache size was impossibly small.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/env_close.html">DBENV-&gt;close</a>,
-<a href="../api_c/env_create.html">db_env_create</a>,
-<a href="../api_c/env_open.html">DBENV-&gt;open</a>,
-<a href="../api_c/env_remove.html">DBENV-&gt;remove</a>,
-<a href="../api_c/db_err.html">DBENV-&gt;err</a>,
-<a href="../api_c/env_strerror.html">db_strerror</a>,
-<a href="../api_c/env_version.html">db_version</a>,
-<a href="../api_c/env_set_cachesize.html">DBENV-&gt;set_cachesize</a>,
-<a href="../api_c/env_set_errcall.html">DBENV-&gt;set_errcall</a>,
-<a href="../api_c/env_set_errfile.html">DBENV-&gt;set_errfile</a>,
-<a href="../api_c/env_set_errpfx.html">DBENV-&gt;set_errpfx</a>,
-<a href="../api_c/env_set_flags.html">DBENV-&gt;set_flags</a>,
-<a href="../api_c/env_set_mutexlocks.html">DBENV-&gt;set_mutexlocks</a>,
-<a href="../api_c/env_set_paniccall.html">DBENV-&gt;set_paniccall</a>,
-and
-<a href="../api_c/env_set_verbose.html">DBENV-&gt;set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/env_set_data_dir.html b/bdb/docs/api_c/env_set_data_dir.html
deleted file mode 100644
index 68db6dc4725..00000000000
--- a/bdb/docs/api_c/env_set_data_dir.html
+++ /dev/null
@@ -1,77 +0,0 @@
-<!--$Id: env_set_data_dir.so,v 10.3 2000/05/20 16:29:11 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DBENV-&gt;set_data_dir</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DBENV-&gt;set_data_dir</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DBENV-&gt;set_data_dir(DB_ENV *dbenv, const char *dir);
-</pre></h3>
-<h1>Description</h1>
-<p>Set the path of a directory to be used as the location of the access
-method database files. Paths specified to the <a href="../api_c/db_open.html">DB-&gt;open</a> function
-will be searched relative to this path. Paths set using this interface
-are additive, and specifying more than one will result in each specified
-directory being searched for database files. If any directories are
-specified, created database files will always be created in the first path
-specified.
-<p>If no database directories are specified, database files can only exist
-in the environment home directory. See <a href="../ref/env/naming.html">Berkeley DB File Naming</a> for more information.
-<p>For the greatest degree of recoverability from system or application
-failure, database files and log files should be located on separate
-physical devices.
-<p>The DBENV-&gt;set_data_dir interface may only be used to configure Berkeley DB before
-the <a href="../api_c/env_open.html">DBENV-&gt;open</a> interface is called.
-<p>The DBENV-&gt;set_data_dir function returns a non-zero error value on failure and 0 on success.
-<p>The database environment's data directory may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_data_dir", one or more whitespace characters,
-and the directory name. Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_c/env_open.html">DBENV-&gt;open</a> was called.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/env_close.html">DBENV-&gt;close</a>,
-<a href="../api_c/env_create.html">db_env_create</a>,
-<a href="../api_c/env_open.html">DBENV-&gt;open</a>,
-<a href="../api_c/env_remove.html">DBENV-&gt;remove</a>,
-<a href="../api_c/db_err.html">DBENV-&gt;err</a>,
-<a href="../api_c/env_strerror.html">db_strerror</a>,
-<a href="../api_c/env_version.html">db_version</a>,
-<a href="../api_c/env_set_cachesize.html">DBENV-&gt;set_cachesize</a>,
-<a href="../api_c/env_set_errcall.html">DBENV-&gt;set_errcall</a>,
-<a href="../api_c/env_set_errfile.html">DBENV-&gt;set_errfile</a>,
-<a href="../api_c/env_set_errpfx.html">DBENV-&gt;set_errpfx</a>,
-<a href="../api_c/env_set_flags.html">DBENV-&gt;set_flags</a>,
-<a href="../api_c/env_set_mutexlocks.html">DBENV-&gt;set_mutexlocks</a>,
-<a href="../api_c/env_set_paniccall.html">DBENV-&gt;set_paniccall</a>,
-and
-<a href="../api_c/env_set_verbose.html">DBENV-&gt;set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/env_set_errcall.html b/bdb/docs/api_c/env_set_errcall.html
deleted file mode 100644
index 660943070ed..00000000000
--- a/bdb/docs/api_c/env_set_errcall.html
+++ /dev/null
@@ -1,73 +0,0 @@
-<!--$Id: env_set_errcall.so,v 10.16 1999/12/20 08:52:29 bostic Exp $-->
-<!--$Id: m4.errset,v 10.8 2000/02/19 20:57:57 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DBENV-&gt;set_errcall</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DBENV-&gt;set_errcall</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-void
-DBENV-&gt;set_errcall(DB_ENV *dbenv,
- void (*db_errcall_fcn)(const char *errpfx, char *msg));
-</pre></h3>
-<h1>Description</h1>
-When an error occurs in the Berkeley DB library, a Berkeley DB error or an error
-return value is returned by the function. In some cases, however,
-the <b>errno</b> value may be insufficient to completely describe
-the cause of the error especially during initial application debugging.
-<p>The DBENV-&gt;set_errcall function is used to enhance the mechanism for reporting error
-messages to the application. In some cases, when an error occurs, Berkeley DB
-will call <b>db_errcall_fcn</b> with additional error information. The
-function must be declared with two arguments; the first will be the prefix
-string (as previously set by <a href="../api_c/db_set_errpfx.html">DB-&gt;set_errpfx</a> or
-<a href="../api_c/env_set_errpfx.html">DBENV-&gt;set_errpfx</a>), the second will be the error message string.
-It is up to the <b>db_errcall_fcn</b> function to display the error
-message in an appropriate manner.
-<p>Alternatively, you can use the <a href="../api_c/db_set_errfile.html">DB-&gt;set_errfile</a> or
-<a href="../api_c/env_set_errfile.html">DBENV-&gt;set_errfile</a> functions to display the additional information
-via a C library FILE *.
-<p>This error logging enhancement does not slow performance or significantly
-increase application size, and may be run during normal operation as well
-as during application debugging.
-<p>The DBENV-&gt;set_errcall interface may be used to configure Berkeley DB at any time
-during the life of the application.
-<h1>See Also</h1>
-<a href="../api_c/env_close.html">DBENV-&gt;close</a>,
-<a href="../api_c/env_create.html">db_env_create</a>,
-<a href="../api_c/env_open.html">DBENV-&gt;open</a>,
-<a href="../api_c/env_remove.html">DBENV-&gt;remove</a>,
-<a href="../api_c/db_err.html">DBENV-&gt;err</a>,
-<a href="../api_c/env_strerror.html">db_strerror</a>,
-<a href="../api_c/env_version.html">db_version</a>,
-<a href="../api_c/env_set_cachesize.html">DBENV-&gt;set_cachesize</a>,
-<a href="../api_c/env_set_errcall.html">DBENV-&gt;set_errcall</a>,
-<a href="../api_c/env_set_errfile.html">DBENV-&gt;set_errfile</a>,
-<a href="../api_c/env_set_errpfx.html">DBENV-&gt;set_errpfx</a>,
-<a href="../api_c/env_set_flags.html">DBENV-&gt;set_flags</a>,
-<a href="../api_c/env_set_mutexlocks.html">DBENV-&gt;set_mutexlocks</a>,
-<a href="../api_c/env_set_paniccall.html">DBENV-&gt;set_paniccall</a>,
-and
-<a href="../api_c/env_set_verbose.html">DBENV-&gt;set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/env_set_errfile.html b/bdb/docs/api_c/env_set_errfile.html
deleted file mode 100644
index ba1dd75f2cc..00000000000
--- a/bdb/docs/api_c/env_set_errfile.html
+++ /dev/null
@@ -1,70 +0,0 @@
-<!--$Id: env_set_errfile.so,v 10.17 1999/12/20 08:52:29 bostic Exp $-->
-<!--$Id: m4.errset,v 10.8 2000/02/19 20:57:57 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DBENV-&gt;set_errfile</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DBENV-&gt;set_errfile</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-void
-DBENV-&gt;set_errfile(DB_ENV *dbenv, FILE *errfile);
-</pre></h3>
-<h1>Description</h1>
-When an error occurs in the Berkeley DB library, a Berkeley DB error or an error
-return value is returned by the function. In some cases, however,
-the <b>errno</b> value may be insufficient to completely describe
-the cause of the error especially during initial application debugging.
-<p>The DBENV-&gt;set_errfile function is used to enhance the mechanism for reporting error
-messages to the application by setting a C library FILE * to be used for
-displaying additional Berkeley DB error messages. In some cases, when an error
-occurs, Berkeley DB will output an additional error message to the specified
-file reference.
-<p>The error message will consist of the prefix string and a colon
-("<b>:</b>") (if a prefix string was previously specified using
-<a href="../api_c/db_set_errpfx.html">DB-&gt;set_errpfx</a> or <a href="../api_c/env_set_errpfx.html">DBENV-&gt;set_errpfx</a>), an error string, and
-a trailing &lt;newline&gt; character.
-<p>This error logging enhancement does not slow performance or significantly
-increase application size, and may be run during normal operation as well
-as during application debugging.
-<p>The DBENV-&gt;set_errfile interface may be used to configure Berkeley DB at any time
-during the life of the application.
-<h1>See Also</h1>
-<a href="../api_c/env_close.html">DBENV-&gt;close</a>,
-<a href="../api_c/env_create.html">db_env_create</a>,
-<a href="../api_c/env_open.html">DBENV-&gt;open</a>,
-<a href="../api_c/env_remove.html">DBENV-&gt;remove</a>,
-<a href="../api_c/db_err.html">DBENV-&gt;err</a>,
-<a href="../api_c/env_strerror.html">db_strerror</a>,
-<a href="../api_c/env_version.html">db_version</a>,
-<a href="../api_c/env_set_cachesize.html">DBENV-&gt;set_cachesize</a>,
-<a href="../api_c/env_set_errcall.html">DBENV-&gt;set_errcall</a>,
-<a href="../api_c/env_set_errfile.html">DBENV-&gt;set_errfile</a>,
-<a href="../api_c/env_set_errpfx.html">DBENV-&gt;set_errpfx</a>,
-<a href="../api_c/env_set_flags.html">DBENV-&gt;set_flags</a>,
-<a href="../api_c/env_set_mutexlocks.html">DBENV-&gt;set_mutexlocks</a>,
-<a href="../api_c/env_set_paniccall.html">DBENV-&gt;set_paniccall</a>,
-and
-<a href="../api_c/env_set_verbose.html">DBENV-&gt;set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/env_set_errpfx.html b/bdb/docs/api_c/env_set_errpfx.html
deleted file mode 100644
index be803070cce..00000000000
--- a/bdb/docs/api_c/env_set_errpfx.html
+++ /dev/null
@@ -1,59 +0,0 @@
-<!--$Id: env_set_errpfx.so,v 10.12 1999/12/20 08:52:29 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DBENV-&gt;set_errpfx</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DBENV-&gt;set_errpfx</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-void
-DBENV-&gt;set_errpfx(DB_ENV *dbenv, const char *errpfx);
-</pre></h3>
-<h1>Description</h1>
-<p>Set the prefix string that appears before error messages issued by Berkeley DB.
-<p>The DBENV-&gt;set_errpfx function does not copy the memory referenced by the
-<b>errpfx</b> argument, rather, it maintains a reference to it. This
-allows applications to modify the error message prefix at any time,
-without repeatedly calling DBENV-&gt;set_errpfx, but means that the
-memory must be maintained until the handle is closed.
-<p>The DBENV-&gt;set_errpfx interface may be used to configure Berkeley DB at any time
-during the life of the application.
-<h1>See Also</h1>
-<a href="../api_c/env_close.html">DBENV-&gt;close</a>,
-<a href="../api_c/env_create.html">db_env_create</a>,
-<a href="../api_c/env_open.html">DBENV-&gt;open</a>,
-<a href="../api_c/env_remove.html">DBENV-&gt;remove</a>,
-<a href="../api_c/db_err.html">DBENV-&gt;err</a>,
-<a href="../api_c/env_strerror.html">db_strerror</a>,
-<a href="../api_c/env_version.html">db_version</a>,
-<a href="../api_c/env_set_cachesize.html">DBENV-&gt;set_cachesize</a>,
-<a href="../api_c/env_set_errcall.html">DBENV-&gt;set_errcall</a>,
-<a href="../api_c/env_set_errfile.html">DBENV-&gt;set_errfile</a>,
-<a href="../api_c/env_set_errpfx.html">DBENV-&gt;set_errpfx</a>,
-<a href="../api_c/env_set_flags.html">DBENV-&gt;set_flags</a>,
-<a href="../api_c/env_set_mutexlocks.html">DBENV-&gt;set_mutexlocks</a>,
-<a href="../api_c/env_set_paniccall.html">DBENV-&gt;set_paniccall</a>,
-and
-<a href="../api_c/env_set_verbose.html">DBENV-&gt;set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/env_set_feedback.html b/bdb/docs/api_c/env_set_feedback.html
deleted file mode 100644
index 743f7772ff9..00000000000
--- a/bdb/docs/api_c/env_set_feedback.html
+++ /dev/null
@@ -1,69 +0,0 @@
-<!--$Id: env_set_feedback.so,v 10.19 2000/07/09 19:12:39 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DBENV-&gt;set_feedback</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DBENV-&gt;set_feedback</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DBENV-&gt;set_feedback(DB_ENV *,
- void (*db_feedback_fcn)(DB_ENV *, int opcode, int pct));
-</pre></h3>
-<h1>Description</h1>
-<p>Some operations performed by the Berkeley DB library can take non-trivial
-amounts of time. The DBENV-&gt;set_feedback function can be used by
-applications to monitor progress within these operations.
-<p>When an operation is likely to take a long time, Berkeley DB will call the
-specified callback function. This function must be declared with
-three arguments: the first will be a reference to the enclosing
-environment, the second a flag value, and the third the percent of the
-operation that has been completed, specified as an integer value between
-0 and 100. It is up to the callback function to display this
-information in an appropriate manner.
-<p>The <b>opcode</b> argument may take on any of the following values:
-<p><dl compact>
-<p><dt><a name="DB_RECOVER">DB_RECOVER</a><dd>The environment is being recovered.
-</dl>
-<p>The DBENV-&gt;set_feedback interface may be used to configure Berkeley DB at any time
-during the life of the application.
-<p>The DBENV-&gt;set_feedback function returns a non-zero error value on failure and 0 on success.
-<h1>See Also</h1>
-<a href="../api_c/env_close.html">DBENV-&gt;close</a>,
-<a href="../api_c/env_create.html">db_env_create</a>,
-<a href="../api_c/env_open.html">DBENV-&gt;open</a>,
-<a href="../api_c/env_remove.html">DBENV-&gt;remove</a>,
-<a href="../api_c/db_err.html">DBENV-&gt;err</a>,
-<a href="../api_c/env_strerror.html">db_strerror</a>,
-<a href="../api_c/env_version.html">db_version</a>,
-<a href="../api_c/env_set_cachesize.html">DBENV-&gt;set_cachesize</a>,
-<a href="../api_c/env_set_errcall.html">DBENV-&gt;set_errcall</a>,
-<a href="../api_c/env_set_errfile.html">DBENV-&gt;set_errfile</a>,
-<a href="../api_c/env_set_errpfx.html">DBENV-&gt;set_errpfx</a>,
-<a href="../api_c/env_set_flags.html">DBENV-&gt;set_flags</a>,
-<a href="../api_c/env_set_mutexlocks.html">DBENV-&gt;set_mutexlocks</a>,
-<a href="../api_c/env_set_paniccall.html">DBENV-&gt;set_paniccall</a>,
-and
-<a href="../api_c/env_set_verbose.html">DBENV-&gt;set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/env_set_flags.html b/bdb/docs/api_c/env_set_flags.html
deleted file mode 100644
index 6dfc0950819..00000000000
--- a/bdb/docs/api_c/env_set_flags.html
+++ /dev/null
@@ -1,84 +0,0 @@
-<!--$Id-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DBENV-&gt;set_flags</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DBENV-&gt;set_flags</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DBENV-&gt;set_flags(DB_ENV *dbenv, u_int32_t flags, int onoff);
-</pre></h3>
-<h1>Description</h1>
-<p>The <b>flags</b> value must be set to 0 or by bitwise inclusively <b>OR</b>'ing together one or more
-of the following values.
-If <b>onoff</b> is zero, the specified flags are cleared, otherwise they
-are set.
-<p><dl compact>
-<p><dt><a name="DB_CDB_ALLDB">DB_CDB_ALLDB</a><dd>For Berkeley DB Concurrent Data Store applications, perform locking on an environment-wide basis
-rather than per-database. This flag may only be used to configure Berkeley DB
-before the <a href="../api_c/env_open.html">DBENV-&gt;open</a> interface is called.
-<p><dt><a name="DB_NOMMAP">DB_NOMMAP</a><dd>Copy read-only database files in this environment into the local cache
-instead of potentially mapping them into process memory (see the
-description of the <a href="../api_c/env_set_mp_mmapsize.html">DBENV-&gt;set_mp_mmapsize</a> function for further information).
-<p><dt><a name="DB_TXN_NOSYNC">DB_TXN_NOSYNC</a><dd>Do not synchronously flush the log on transaction commit or prepare.
-This means that transactions exhibit the ACI (atomicity, consistency and
-isolation) properties, but not D (durability), i.e., database integrity
-will be maintained but it is possible that some number of the most
-recently committed transactions may be undone during recovery instead of
-being redone.
-<p>The number of transactions that are potentially at risk is governed by
-how often the log is checkpointed (see <a href="../utility/db_checkpoint.html">db_checkpoint</a> for more
-information) and how many log updates can fit on a single log page.
-</dl>
-<p>The DBENV-&gt;set_flags function returns a non-zero error value on failure and 0 on success.
-<p>The database environment's flag values may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_flags", one or more whitespace characters,
-and the interface flag argument as a string, for example, "set_flags
-DB_TXN_NOSYNC". Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/env_close.html">DBENV-&gt;close</a>,
-<a href="../api_c/env_create.html">db_env_create</a>,
-<a href="../api_c/env_open.html">DBENV-&gt;open</a>,
-<a href="../api_c/env_remove.html">DBENV-&gt;remove</a>,
-<a href="../api_c/db_err.html">DBENV-&gt;err</a>,
-<a href="../api_c/env_strerror.html">db_strerror</a>,
-<a href="../api_c/env_version.html">db_version</a>,
-<a href="../api_c/env_set_cachesize.html">DBENV-&gt;set_cachesize</a>,
-<a href="../api_c/env_set_errcall.html">DBENV-&gt;set_errcall</a>,
-<a href="../api_c/env_set_errfile.html">DBENV-&gt;set_errfile</a>,
-<a href="../api_c/env_set_errpfx.html">DBENV-&gt;set_errpfx</a>,
-<a href="../api_c/env_set_flags.html">DBENV-&gt;set_flags</a>,
-<a href="../api_c/env_set_mutexlocks.html">DBENV-&gt;set_mutexlocks</a>,
-<a href="../api_c/env_set_paniccall.html">DBENV-&gt;set_paniccall</a>,
-and
-<a href="../api_c/env_set_verbose.html">DBENV-&gt;set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/env_set_lg_bsize.html b/bdb/docs/api_c/env_set_lg_bsize.html
deleted file mode 100644
index 85e6dc12118..00000000000
--- a/bdb/docs/api_c/env_set_lg_bsize.html
+++ /dev/null
@@ -1,68 +0,0 @@
-<!--$Id: env_set_lg_bsize.so,v 10.10 2000/05/20 16:29:11 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DBENV-&gt;set_lg_bsize</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DBENV-&gt;set_lg_bsize</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DBENV-&gt;set_lg_bsize(DB_ENV *dbenv, u_int32_t lg_bsize);
-</pre></h3>
-<h1>Description</h1>
-<p>Set the size of the in-memory log buffer, in bytes. By default, or if
-the value is set to 0, a size of 32K is used.
-<p>Log information is stored in-memory until the storage space fills up
-or transaction commit forces the information to be flushed to stable
-storage. In the presence of long-running transactions or transactions
-producing large amounts of data, larger buffer sizes can increase
-throughput.
-<p>The DBENV-&gt;set_lg_bsize interface may only be used to configure Berkeley DB before
-the <a href="../api_c/env_open.html">DBENV-&gt;open</a> interface is called.
-<p>The DBENV-&gt;set_lg_bsize function returns a non-zero error value on failure and 0 on success.
-<p>The database environment's log buffer size may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_lg_bsize", one or more whitespace characters,
-and the size in bytes. Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_c/env_open.html">DBENV-&gt;open</a> was called.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/env_set_lg_bsize.html">DBENV-&gt;set_lg_bsize</a>,
-<a href="../api_c/env_set_lg_max.html">DBENV-&gt;set_lg_max</a>,
-<a href="../api_c/log_archive.html">log_archive</a>,
-<a href="../api_c/log_compare.html">log_compare</a>,
-<a href="../api_c/log_file.html">log_file</a>,
-<a href="../api_c/log_flush.html">log_flush</a>,
-<a href="../api_c/log_get.html">log_get</a>,
-<a href="../api_c/log_put.html">log_put</a>,
-<a href="../api_c/log_register.html">log_register</a>,
-<a href="../api_c/log_stat.html">log_stat</a>
-and
-<a href="../api_c/log_unregister.html">log_unregister</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/env_set_lg_dir.html b/bdb/docs/api_c/env_set_lg_dir.html
deleted file mode 100644
index a8d5c861421..00000000000
--- a/bdb/docs/api_c/env_set_lg_dir.html
+++ /dev/null
@@ -1,73 +0,0 @@
-<!--$Id: env_set_lg_dir.so,v 10.3 2000/05/20 16:29:11 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DBENV-&gt;set_lg_dir</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DBENV-&gt;set_lg_dir</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DBENV-&gt;set_lg_dir(DB_ENV *dbenv, const char *dir);
-</pre></h3>
-<h1>Description</h1>
-<p>The path of a directory to be used as the location of logging files.
-Log files created by the Log Manager subsystem will be created in this
-directory.
-<p>If no logging directory is specified, log files are created in the
-environment home directory. See <a href="../ref/env/naming.html">Berkeley DB File Naming</a> for more information.
-<p>For the greatest degree of recoverability from system or application
-failure, database files and log files should be located on separate
-physical devices.
-<p>The DBENV-&gt;set_lg_dir interface may only be used to configure Berkeley DB before
-the <a href="../api_c/env_open.html">DBENV-&gt;open</a> interface is called.
-<p>The DBENV-&gt;set_lg_dir function returns a non-zero error value on failure and 0 on success.
-<p>The database environment's logging directory may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_lg_dir", one or more whitespace characters,
-and the directory name. Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_c/env_open.html">DBENV-&gt;open</a> was called.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/env_close.html">DBENV-&gt;close</a>,
-<a href="../api_c/env_create.html">db_env_create</a>,
-<a href="../api_c/env_open.html">DBENV-&gt;open</a>,
-<a href="../api_c/env_remove.html">DBENV-&gt;remove</a>,
-<a href="../api_c/db_err.html">DBENV-&gt;err</a>,
-<a href="../api_c/env_strerror.html">db_strerror</a>,
-<a href="../api_c/env_version.html">db_version</a>,
-<a href="../api_c/env_set_cachesize.html">DBENV-&gt;set_cachesize</a>,
-<a href="../api_c/env_set_errcall.html">DBENV-&gt;set_errcall</a>,
-<a href="../api_c/env_set_errfile.html">DBENV-&gt;set_errfile</a>,
-<a href="../api_c/env_set_errpfx.html">DBENV-&gt;set_errpfx</a>,
-<a href="../api_c/env_set_flags.html">DBENV-&gt;set_flags</a>,
-<a href="../api_c/env_set_mutexlocks.html">DBENV-&gt;set_mutexlocks</a>,
-<a href="../api_c/env_set_paniccall.html">DBENV-&gt;set_paniccall</a>,
-and
-<a href="../api_c/env_set_verbose.html">DBENV-&gt;set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/env_set_lg_max.html b/bdb/docs/api_c/env_set_lg_max.html
deleted file mode 100644
index 4625db4346b..00000000000
--- a/bdb/docs/api_c/env_set_lg_max.html
+++ /dev/null
@@ -1,68 +0,0 @@
-<!--$Id: env_set_lg_max.so,v 10.20 2000/05/20 16:29:12 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DBENV-&gt;set_lg_max</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DBENV-&gt;set_lg_max</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DBENV-&gt;set_lg_max(DB_ENV *dbenv, u_int32_t lg_max);
-</pre></h3>
-<h1>Description</h1>
-<p>Set the maximum size of a single file in the log, in bytes. Because
-<a href="../api_c/db_lsn.html">DB_LSN</a> file offsets are unsigned 4-byte values, the set value may
-not be larger than the maximum unsigned 4-byte value. By default, or if
-the value is set to 0, a size of 10MB is used.
-<p>See <a href="../ref/log/limits.html">Log File Limits</a>
-for more information.
-<p>The DBENV-&gt;set_lg_max interface may only be used to configure Berkeley DB before
-the <a href="../api_c/env_open.html">DBENV-&gt;open</a> interface is called.
-<p>The DBENV-&gt;set_lg_max function returns a non-zero error value on failure and 0 on success.
-<p>The database environment's log file size may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_lg_max", one or more whitespace characters,
-and the size in bytes. Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_c/env_open.html">DBENV-&gt;open</a> was called.
-<p>The specified log file size was too large.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/env_set_lg_bsize.html">DBENV-&gt;set_lg_bsize</a>,
-<a href="../api_c/env_set_lg_max.html">DBENV-&gt;set_lg_max</a>,
-<a href="../api_c/log_archive.html">log_archive</a>,
-<a href="../api_c/log_compare.html">log_compare</a>,
-<a href="../api_c/log_file.html">log_file</a>,
-<a href="../api_c/log_flush.html">log_flush</a>,
-<a href="../api_c/log_get.html">log_get</a>,
-<a href="../api_c/log_put.html">log_put</a>,
-<a href="../api_c/log_register.html">log_register</a>,
-<a href="../api_c/log_stat.html">log_stat</a>
-and
-<a href="../api_c/log_unregister.html">log_unregister</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/env_set_lk_conflicts.html b/bdb/docs/api_c/env_set_lk_conflicts.html
deleted file mode 100644
index 689464736ef..00000000000
--- a/bdb/docs/api_c/env_set_lk_conflicts.html
+++ /dev/null
@@ -1,69 +0,0 @@
-<!--$Id: env_set_lk_conflicts.so,v 10.22 2000/12/08 20:43:15 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DBENV-&gt;set_lk_conflicts</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DBENV-&gt;set_lk_conflicts</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DBENV-&gt;set_lk_conflicts(DB_ENV *dbenv,
- u_int8_t *conflicts, int nmodes);
-</pre></h3>
-<h1>Description</h1>
-<p>Set the locking conflicts matrix.
-The <b>conflicts</b> argument
-is an <b>nmodes</b> by <b>nmodes</b> array.
-A non-0 value for the array element:
-<p><blockquote><pre>conflicts[requested_mode][held_mode]</pre></blockquote>
-<p>indicates that requested_mode and held_mode conflict. The
-<i>not-granted</i> mode must be represented by 0.
-<p>If no <b>conflicts</b> value is specified, the conflicts array
-<b>db_rw_conflicts</b> is used; see <a href="../ref/lock/stdmode.html">Standard Lock Modes</a> for a description of that array.
-<p>The DBENV-&gt;set_lk_conflicts interface may only be used to configure Berkeley DB before
-the <a href="../api_c/env_open.html">DBENV-&gt;open</a> interface is called.
-<p>The DBENV-&gt;set_lk_conflicts function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_c/env_open.html">DBENV-&gt;open</a> was called.
-</dl>
-<p><dl compact>
-<p><dt>ENOMEM<dd>No memory was available to copy the conflicts array.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/env_set_lk_conflicts.html">DBENV-&gt;set_lk_conflicts</a>,
-<a href="../api_c/env_set_lk_detect.html">DBENV-&gt;set_lk_detect</a>,
-<a href="../api_c/env_set_lk_max_locks.html">DBENV-&gt;set_lk_max_locks</a>,
-<a href="../api_c/env_set_lk_max_lockers.html">DBENV-&gt;set_lk_max_lockers</a>,
-<a href="../api_c/env_set_lk_max_objects.html">DBENV-&gt;set_lk_max_objects</a>,
-<a href="../api_c/env_set_lk_max.html">DBENV-&gt;set_lk_max</a>,
-<a href="../api_c/lock_detect.html">lock_detect</a>,
-<a href="../api_c/lock_get.html">lock_get</a>,
-<a href="../api_c/lock_id.html">lock_id</a>,
-<a href="../api_c/lock_put.html">lock_put</a>,
-<a href="../api_c/lock_stat.html">lock_stat</a>
-and
-<a href="../api_c/lock_vec.html">lock_vec</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/env_set_lk_detect.html b/bdb/docs/api_c/env_set_lk_detect.html
deleted file mode 100644
index 460651a0dab..00000000000
--- a/bdb/docs/api_c/env_set_lk_detect.html
+++ /dev/null
@@ -1,72 +0,0 @@
-<!--$Id: env_set_lk_detect.so,v 10.19 2000/12/08 20:43:15 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DBENV-&gt;set_lk_detect</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DBENV-&gt;set_lk_detect</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DBENV-&gt;set_lk_detect(DB_ENV *dbenv, u_int32_t detect);
-</pre></h3>
-<h1>Description</h1>
-<p>Set if the deadlock detector is to be run whenever a lock conflict occurs,
-and specify which transaction should be aborted in the case of a deadlock.
-The specified value must be one of the following list:
-<p><dl compact>
-<p><dt><a name="DB_LOCK_DEFAULT">DB_LOCK_DEFAULT</a><dd>Use the default policy as specified by <a href="../utility/db_deadlock.html">db_deadlock</a>.
-<dt><a name="DB_LOCK_OLDEST">DB_LOCK_OLDEST</a><dd>Abort the oldest transaction.
-<dt><a name="DB_LOCK_RANDOM">DB_LOCK_RANDOM</a><dd>Abort a random transaction involved in the deadlock.
-<dt><a name="DB_LOCK_YOUNGEST">DB_LOCK_YOUNGEST</a><dd>Abort the youngest transaction.
-</dl>
-<p>The DBENV-&gt;set_lk_detect interface may only be used to configure Berkeley DB before
-the <a href="../api_c/env_open.html">DBENV-&gt;open</a> interface is called.
-<p>The DBENV-&gt;set_lk_detect function returns a non-zero error value on failure and 0 on success.
-<p>The database environment's deadlock detector configuration may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_lk_detect", one or more whitespace characters,
-and the interface <b>detect</b> argument as a string, for example,
-"set_lk_detect DB_LOCK_OLDEST". Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_c/env_open.html">DBENV-&gt;open</a> was called.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/env_set_lk_conflicts.html">DBENV-&gt;set_lk_conflicts</a>,
-<a href="../api_c/env_set_lk_detect.html">DBENV-&gt;set_lk_detect</a>,
-<a href="../api_c/env_set_lk_max_locks.html">DBENV-&gt;set_lk_max_locks</a>,
-<a href="../api_c/env_set_lk_max_lockers.html">DBENV-&gt;set_lk_max_lockers</a>,
-<a href="../api_c/env_set_lk_max_objects.html">DBENV-&gt;set_lk_max_objects</a>,
-<a href="../api_c/env_set_lk_max.html">DBENV-&gt;set_lk_max</a>,
-<a href="../api_c/lock_detect.html">lock_detect</a>,
-<a href="../api_c/lock_get.html">lock_get</a>,
-<a href="../api_c/lock_id.html">lock_id</a>,
-<a href="../api_c/lock_put.html">lock_put</a>,
-<a href="../api_c/lock_stat.html">lock_stat</a>
-and
-<a href="../api_c/lock_vec.html">lock_vec</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/env_set_lk_max.html b/bdb/docs/api_c/env_set_lk_max.html
deleted file mode 100644
index 1e9832b59d9..00000000000
--- a/bdb/docs/api_c/env_set_lk_max.html
+++ /dev/null
@@ -1,72 +0,0 @@
-<!--$Id: env_set_lk_max.so,v 10.21 2000/12/21 19:11:27 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DBENV-&gt;set_lk_max</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DBENV-&gt;set_lk_max</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DBENV-&gt;set_lk_max(DB_ENV *dbenv, u_int32_t max);
-</pre></h3>
-<h1>Description</h1>
-<p><b>The DBENV-&gt;set_lk_max function interface has been deprecated in favor of
-the <a href="../api_c/env_set_lk_max_locks.html">DBENV-&gt;set_lk_max_locks</a>, <a href="../api_c/env_set_lk_max_lockers.html">DBENV-&gt;set_lk_max_lockers</a>,
-and <a href="../api_c/env_set_lk_max_objects.html">DBENV-&gt;set_lk_max_objects</a> functions. Please update your applications.</b>
-<p>Set each of the maximum number of locks, lockers and lock objects
-supported by the Berkeley DB lock subsystem to <b>max</b>. This value is
-used by <a href="../api_c/env_open.html">DBENV-&gt;open</a> to estimate how much space to allocate for
-various lock-table data structures. For specific information on
-configuring the size of the lock subsystem, see
-<a href="../ref/lock/max.html">Configuring locking: sizing the
-system</a>.
-<p>The DBENV-&gt;set_lk_max interface may only be used to configure Berkeley DB before
-the <a href="../api_c/env_open.html">DBENV-&gt;open</a> interface is called.
-<p>The DBENV-&gt;set_lk_max function returns a non-zero error value on failure and 0 on success.
-<p>The database environment's maximum number of locks may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_lk_max", one or more whitespace characters,
-and the number of locks. Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_c/env_open.html">DBENV-&gt;open</a> was called.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/env_set_lk_conflicts.html">DBENV-&gt;set_lk_conflicts</a>,
-<a href="../api_c/env_set_lk_detect.html">DBENV-&gt;set_lk_detect</a>,
-<a href="../api_c/env_set_lk_max_locks.html">DBENV-&gt;set_lk_max_locks</a>,
-<a href="../api_c/env_set_lk_max_lockers.html">DBENV-&gt;set_lk_max_lockers</a>,
-<a href="../api_c/env_set_lk_max_objects.html">DBENV-&gt;set_lk_max_objects</a>,
-<a href="../api_c/env_set_lk_max.html">DBENV-&gt;set_lk_max</a>,
-<a href="../api_c/lock_detect.html">lock_detect</a>,
-<a href="../api_c/lock_get.html">lock_get</a>,
-<a href="../api_c/lock_id.html">lock_id</a>,
-<a href="../api_c/lock_put.html">lock_put</a>,
-<a href="../api_c/lock_stat.html">lock_stat</a>
-and
-<a href="../api_c/lock_vec.html">lock_vec</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/env_set_lk_max_lockers.html b/bdb/docs/api_c/env_set_lk_max_lockers.html
deleted file mode 100644
index e41a943fd56..00000000000
--- a/bdb/docs/api_c/env_set_lk_max_lockers.html
+++ /dev/null
@@ -1,68 +0,0 @@
-<!--$Id: env_set_lk_max_lockers.so,v 1.2 2000/12/08 22:03:00 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DBENV-&gt;set_lk_max_lockers</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DBENV-&gt;set_lk_max_lockers</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DBENV-&gt;set_lk_max_lockers(DB_ENV *dbenv, u_int32_t max);
-</pre></h3>
-<h1>Description</h1>
-<p>Set the maximum number of simultaneous locking entities supported by
-the Berkeley DB lock subsystem. This value is used by <a href="../api_c/env_open.html">DBENV-&gt;open</a> to
-estimate how much space to allocate for various lock-table data
-structures. For specific information on configuring the size of the
-lock subsystem, see
-<a href="../ref/lock/max.html">Configuring locking: sizing the system</a>.
-<p>The DBENV-&gt;set_lk_max_lockers interface may only be used to configure Berkeley DB before
-the <a href="../api_c/env_open.html">DBENV-&gt;open</a> interface is called.
-<p>The DBENV-&gt;set_lk_max_lockers function returns a non-zero error value on failure and 0 on success.
-<p>The database environment's maximum number of lockers may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_lk_max_lockers", one or more whitespace characters,
-and the number of lockers. Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_c/env_open.html">DBENV-&gt;open</a> was called.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/env_set_lk_conflicts.html">DBENV-&gt;set_lk_conflicts</a>,
-<a href="../api_c/env_set_lk_detect.html">DBENV-&gt;set_lk_detect</a>,
-<a href="../api_c/env_set_lk_max_locks.html">DBENV-&gt;set_lk_max_locks</a>,
-<a href="../api_c/env_set_lk_max_lockers.html">DBENV-&gt;set_lk_max_lockers</a>,
-<a href="../api_c/env_set_lk_max_objects.html">DBENV-&gt;set_lk_max_objects</a>,
-<a href="../api_c/env_set_lk_max.html">DBENV-&gt;set_lk_max</a>,
-<a href="../api_c/lock_detect.html">lock_detect</a>,
-<a href="../api_c/lock_get.html">lock_get</a>,
-<a href="../api_c/lock_id.html">lock_id</a>,
-<a href="../api_c/lock_put.html">lock_put</a>,
-<a href="../api_c/lock_stat.html">lock_stat</a>
-and
-<a href="../api_c/lock_vec.html">lock_vec</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/env_set_lk_max_locks.html b/bdb/docs/api_c/env_set_lk_max_locks.html
deleted file mode 100644
index a908b288f97..00000000000
--- a/bdb/docs/api_c/env_set_lk_max_locks.html
+++ /dev/null
@@ -1,67 +0,0 @@
-<!--$Id: env_set_lk_max_locks.so,v 10.1 2000/12/21 19:11:27 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DBENV-&gt;set_lk_max_locks</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DBENV-&gt;set_lk_max_locks</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DBENV-&gt;set_lk_max_locks(DB_ENV *dbenv, u_int32_t max);
-</pre></h3>
-<h1>Description</h1>
-<p>Set the maximum number of locks supported by the Berkeley DB lock subsystem.
-This value is used by <a href="../api_c/env_open.html">DBENV-&gt;open</a> to estimate how much space to
-allocate for various lock-table data structures. For specific
-information on configuring the size of the lock subsystem, see
-<a href="../ref/lock/max.html">Configuring locking: sizing the system</a>.
-<p>The DBENV-&gt;set_lk_max_locks interface may only be used to configure Berkeley DB before
-the <a href="../api_c/env_open.html">DBENV-&gt;open</a> interface is called.
-<p>The DBENV-&gt;set_lk_max_locks function returns a non-zero error value on failure and 0 on success.
-<p>The database environment's maximum number of locks may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_lk_max_locks", one or more whitespace characters,
-and the number of locks. Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_c/env_open.html">DBENV-&gt;open</a> was called.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/env_set_lk_conflicts.html">DBENV-&gt;set_lk_conflicts</a>,
-<a href="../api_c/env_set_lk_detect.html">DBENV-&gt;set_lk_detect</a>,
-<a href="../api_c/env_set_lk_max_locks.html">DBENV-&gt;set_lk_max_locks</a>,
-<a href="../api_c/env_set_lk_max_lockers.html">DBENV-&gt;set_lk_max_lockers</a>,
-<a href="../api_c/env_set_lk_max_objects.html">DBENV-&gt;set_lk_max_objects</a>,
-<a href="../api_c/env_set_lk_max.html">DBENV-&gt;set_lk_max</a>,
-<a href="../api_c/lock_detect.html">lock_detect</a>,
-<a href="../api_c/lock_get.html">lock_get</a>,
-<a href="../api_c/lock_id.html">lock_id</a>,
-<a href="../api_c/lock_put.html">lock_put</a>,
-<a href="../api_c/lock_stat.html">lock_stat</a>
-and
-<a href="../api_c/lock_vec.html">lock_vec</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/env_set_lk_max_objects.html b/bdb/docs/api_c/env_set_lk_max_objects.html
deleted file mode 100644
index 8fba15876cf..00000000000
--- a/bdb/docs/api_c/env_set_lk_max_objects.html
+++ /dev/null
@@ -1,68 +0,0 @@
-<!--$Id: env_set_lk_max_objects.so,v 1.2 2000/12/08 22:03:00 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DBENV-&gt;set_lk_max_objects</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DBENV-&gt;set_lk_max_objects</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DBENV-&gt;set_lk_max_objects(DB_ENV *dbenv, u_int32_t max);
-</pre></h3>
-<h1>Description</h1>
-<p>Set the maximum number of simultaneously locked objects supported by
-the Berkeley DB lock subsystem. This value is used by <a href="../api_c/env_open.html">DBENV-&gt;open</a> to
-estimate how much space to allocate for various lock-table data
-structures. For specific information on configuring the size of the
-lock subsystem, see
-<a href="../ref/lock/max.html">Configuring locking: sizing the system</a>.
-<p>The DBENV-&gt;set_lk_max_objects interface may only be used to configure Berkeley DB before
-the <a href="../api_c/env_open.html">DBENV-&gt;open</a> interface is called.
-<p>The DBENV-&gt;set_lk_max_objects function returns a non-zero error value on failure and 0 on success.
-<p>The database environment's maximum number of objects may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_lk_max_objects", one or more whitespace characters,
-and the number of objects. Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_c/env_open.html">DBENV-&gt;open</a> was called.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/env_set_lk_conflicts.html">DBENV-&gt;set_lk_conflicts</a>,
-<a href="../api_c/env_set_lk_detect.html">DBENV-&gt;set_lk_detect</a>,
-<a href="../api_c/env_set_lk_max_locks.html">DBENV-&gt;set_lk_max_locks</a>,
-<a href="../api_c/env_set_lk_max_lockers.html">DBENV-&gt;set_lk_max_lockers</a>,
-<a href="../api_c/env_set_lk_max_objects.html">DBENV-&gt;set_lk_max_objects</a>,
-<a href="../api_c/env_set_lk_max.html">DBENV-&gt;set_lk_max</a>,
-<a href="../api_c/lock_detect.html">lock_detect</a>,
-<a href="../api_c/lock_get.html">lock_get</a>,
-<a href="../api_c/lock_id.html">lock_id</a>,
-<a href="../api_c/lock_put.html">lock_put</a>,
-<a href="../api_c/lock_stat.html">lock_stat</a>
-and
-<a href="../api_c/lock_vec.html">lock_vec</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/env_set_mp_mmapsize.html b/bdb/docs/api_c/env_set_mp_mmapsize.html
deleted file mode 100644
index 3f87a140a15..00000000000
--- a/bdb/docs/api_c/env_set_mp_mmapsize.html
+++ /dev/null
@@ -1,71 +0,0 @@
-<!--$Id: env_set_mp_mmapsize.so,v 10.18 2000/05/20 16:29:12 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DBENV-&gt;set_mp_mmapsize</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DBENV-&gt;set_mp_mmapsize</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DBENV-&gt;set_mp_mmapsize(DB_ENV *dbenv, size_t mp_mmapsize);
-</pre></h3>
-<h1>Description</h1>
-<p>Files that are opened read-only in the pool (and that satisfy a few other
-criteria) are, by default, mapped into the process address space instead
-of being copied into the local cache. This can result in better-than-usual
-performance, as available virtual memory is normally much larger than the
-local cache, and page faults are faster than page copying on many systems.
-However, in the presence of limited virtual memory it can cause resource
-starvation, and in the presence of large databases, it can result in immense
-process sizes.
-<p>Set the maximum file size, in bytes, for a file to be mapped into the
-process address space. If no value is specified, it defaults to 10MB.
-<p>The DBENV-&gt;set_mp_mmapsize interface may only be used to configure Berkeley DB before
-the <a href="../api_c/env_open.html">DBENV-&gt;open</a> interface is called.
-<p>The DBENV-&gt;set_mp_mmapsize function returns a non-zero error value on failure and 0 on success.
-<p>The database environment's maximum mapped file size may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_mp_mmapsize", one or more whitespace characters,
-and the size in bytes. Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_c/env_open.html">DBENV-&gt;open</a> was called.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/env_set_mp_mmapsize.html">DBENV-&gt;set_mp_mmapsize</a>,
-<a href="../api_c/memp_fclose.html">memp_fclose</a>,
-<a href="../api_c/memp_fget.html">memp_fget</a>,
-<a href="../api_c/memp_fopen.html">memp_fopen</a>,
-<a href="../api_c/memp_fput.html">memp_fput</a>,
-<a href="../api_c/memp_fset.html">memp_fset</a>,
-<a href="../api_c/memp_fsync.html">memp_fsync</a>,
-<a href="../api_c/memp_register.html">memp_register</a>,
-<a href="../api_c/memp_stat.html">memp_stat</a>,
-<a href="../api_c/memp_sync.html">memp_sync</a>
-and
-<a href="../api_c/memp_trickle.html">memp_trickle</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/env_set_mutexlocks.html b/bdb/docs/api_c/env_set_mutexlocks.html
deleted file mode 100644
index a5fa2aa34c6..00000000000
--- a/bdb/docs/api_c/env_set_mutexlocks.html
+++ /dev/null
@@ -1,59 +0,0 @@
-<!--$Id: env_set_mutexlocks.so,v 10.9 2000/11/17 19:56:52 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DBENV-&gt;set_mutexlocks</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DBENV-&gt;set_mutexlocks</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DBENV-&gt;set_mutexlocks(DB_ENV *dbenv, int do_lock);
-</pre></h3>
-<h1>Description</h1>
-<p>Toggle mutex locks. Setting <b>do_lock</b> to a zero value causes
-Berkeley DB to grant all requested mutual exclusion mutexes without regard
-for their availability.
-<p>This functionality should never be used for any other purpose than
-debugging.
-<p>The DBENV-&gt;set_mutexlocks interface may be used to configure Berkeley DB at any time
-during the life of the application.
-<p>The DBENV-&gt;set_mutexlocks function returns a non-zero error value on failure and 0 on success.
-<h1>See Also</h1>
-<a href="../api_c/env_close.html">DBENV-&gt;close</a>,
-<a href="../api_c/env_create.html">db_env_create</a>,
-<a href="../api_c/env_open.html">DBENV-&gt;open</a>,
-<a href="../api_c/env_remove.html">DBENV-&gt;remove</a>,
-<a href="../api_c/db_err.html">DBENV-&gt;err</a>,
-<a href="../api_c/env_strerror.html">db_strerror</a>,
-<a href="../api_c/env_version.html">db_version</a>,
-<a href="../api_c/env_set_cachesize.html">DBENV-&gt;set_cachesize</a>,
-<a href="../api_c/env_set_errcall.html">DBENV-&gt;set_errcall</a>,
-<a href="../api_c/env_set_errfile.html">DBENV-&gt;set_errfile</a>,
-<a href="../api_c/env_set_errpfx.html">DBENV-&gt;set_errpfx</a>,
-<a href="../api_c/env_set_flags.html">DBENV-&gt;set_flags</a>,
-<a href="../api_c/env_set_mutexlocks.html">DBENV-&gt;set_mutexlocks</a>,
-<a href="../api_c/env_set_paniccall.html">DBENV-&gt;set_paniccall</a>,
-and
-<a href="../api_c/env_set_verbose.html">DBENV-&gt;set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/env_set_pageyield.html b/bdb/docs/api_c/env_set_pageyield.html
deleted file mode 100644
index 95372408525..00000000000
--- a/bdb/docs/api_c/env_set_pageyield.html
+++ /dev/null
@@ -1,68 +0,0 @@
-<!--$Id: env_set_pageyield.so,v 10.6 2000/05/31 15:10:00 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db_env_set_pageyield</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>db_env_set_pageyield</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-db_env_set_pageyield(int pageyield);
-</pre></h3>
-<h1>Description</h1>
-<p>Yield the processor whenever requesting a page from the cache. Setting
-<b>pageyield</b> to a non-zero value causes Berkeley DB to yield the processor
-any time a thread requests a page from the cache.
-<p>The db_env_set_pageyield interface affects the entire application, not a single
-database or database environment.
-<p>While the db_env_set_pageyield interface may be used to configure Berkeley DB at any time
-during the life of the application, it should normally be called before
-making any calls to the <a href="../api_c/env_create.html">db_env_create</a> or <a href="../api_c/db_create.html">db_create</a> functions.
-<p>This functionality should never be used for any other purpose than stress
-testing.
-<p>The db_env_set_pageyield interface may be used to configure Berkeley DB at any time
-during the life of the application.
-<p>The db_env_set_pageyield function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/env_close.html">DBENV-&gt;close</a>,
-<a href="../api_c/env_create.html">db_env_create</a>,
-<a href="../api_c/env_open.html">DBENV-&gt;open</a>,
-<a href="../api_c/env_remove.html">DBENV-&gt;remove</a>,
-<a href="../api_c/db_err.html">DBENV-&gt;err</a>,
-<a href="../api_c/env_strerror.html">db_strerror</a>,
-<a href="../api_c/env_version.html">db_version</a>,
-<a href="../api_c/env_set_cachesize.html">DBENV-&gt;set_cachesize</a>,
-<a href="../api_c/env_set_errcall.html">DBENV-&gt;set_errcall</a>,
-<a href="../api_c/env_set_errfile.html">DBENV-&gt;set_errfile</a>,
-<a href="../api_c/env_set_errpfx.html">DBENV-&gt;set_errpfx</a>,
-<a href="../api_c/env_set_flags.html">DBENV-&gt;set_flags</a>,
-<a href="../api_c/env_set_mutexlocks.html">DBENV-&gt;set_mutexlocks</a>,
-<a href="../api_c/env_set_paniccall.html">DBENV-&gt;set_paniccall</a>,
-and
-<a href="../api_c/env_set_verbose.html">DBENV-&gt;set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/env_set_paniccall.html b/bdb/docs/api_c/env_set_paniccall.html
deleted file mode 100644
index a9d58a80b83..00000000000
--- a/bdb/docs/api_c/env_set_paniccall.html
+++ /dev/null
@@ -1,67 +0,0 @@
-<!--$Id: env_set_paniccall.so,v 10.14 2000/07/09 19:12:56 bostic Exp $-->
-<!--$Id: m4.errset,v 10.8 2000/02/19 20:57:57 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DBENV-&gt;set_paniccall</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DBENV-&gt;set_paniccall</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DBENV-&gt;set_paniccall(DB_ENV *dbenv,
- void (*paniccall)(DB_ENV *, int errval));
-</pre></h3>
-<h1>Description</h1>
-<p>Errors can occur in the Berkeley DB library where the only solution is to shut
-down the application and run recovery. (For example, if Berkeley DB is unable
-to write log records to disk because there is insufficient disk space.)
-In these cases, the value <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> is returned by Berkeley DB.
-<p>In these cases, it is also often simpler to shut down the application when
-such errors occur rather than attempting to gracefully return up the stack.
-The DBENV-&gt;set_paniccall function is used to specify a function to be called when
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> is about to be returned from a Berkeley DB method. When
-called, the <b>dbenv</b> argument will be a reference to the current
-environment, and the <b>errval</b> argument is the error value that would
-have been returned to the calling function.
-<p>The DBENV-&gt;set_paniccall interface may be used to configure Berkeley DB at any time
-during the life of the application.
-<p>The DBENV-&gt;set_paniccall function returns a non-zero error value on failure and 0 on success.
-<h1>See Also</h1>
-<a href="../api_c/env_close.html">DBENV-&gt;close</a>,
-<a href="../api_c/env_create.html">db_env_create</a>,
-<a href="../api_c/env_open.html">DBENV-&gt;open</a>,
-<a href="../api_c/env_remove.html">DBENV-&gt;remove</a>,
-<a href="../api_c/db_err.html">DBENV-&gt;err</a>,
-<a href="../api_c/env_strerror.html">db_strerror</a>,
-<a href="../api_c/env_version.html">db_version</a>,
-<a href="../api_c/env_set_cachesize.html">DBENV-&gt;set_cachesize</a>,
-<a href="../api_c/env_set_errcall.html">DBENV-&gt;set_errcall</a>,
-<a href="../api_c/env_set_errfile.html">DBENV-&gt;set_errfile</a>,
-<a href="../api_c/env_set_errpfx.html">DBENV-&gt;set_errpfx</a>,
-<a href="../api_c/env_set_flags.html">DBENV-&gt;set_flags</a>,
-<a href="../api_c/env_set_mutexlocks.html">DBENV-&gt;set_mutexlocks</a>,
-<a href="../api_c/env_set_paniccall.html">DBENV-&gt;set_paniccall</a>,
-and
-<a href="../api_c/env_set_verbose.html">DBENV-&gt;set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/env_set_panicstate.html b/bdb/docs/api_c/env_set_panicstate.html
deleted file mode 100644
index 6168ad9af7e..00000000000
--- a/bdb/docs/api_c/env_set_panicstate.html
+++ /dev/null
@@ -1,64 +0,0 @@
-<!--$Id: env_set_panicstate.so,v 10.2 2001/01/17 15:32:34 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db_env_set_panicstate</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>db_env_set_panicstate</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-db_env_set_panicstate(int panic);
-</pre></h3>
-<h1>Description</h1>
-<p>Toggle the Berkeley DB panic state. Setting <b>panic</b> to a non-zero value
-causes Berkeley DB to refuse attempts to call Berkeley DB functions with the
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> error return.
-<p>The db_env_set_panicstate interface affects the entire application, not a single
-database or database environment.
-<p>While the db_env_set_panicstate interface may be used to configure Berkeley DB at any time
-during the life of the application, it should normally be called before
-making any calls to the <a href="../api_c/env_create.html">db_env_create</a> or <a href="../api_c/db_create.html">db_create</a> functions.
-<p>The db_env_set_panicstate function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/env_close.html">DBENV-&gt;close</a>,
-<a href="../api_c/env_create.html">db_env_create</a>,
-<a href="../api_c/env_open.html">DBENV-&gt;open</a>,
-<a href="../api_c/env_remove.html">DBENV-&gt;remove</a>,
-<a href="../api_c/db_err.html">DBENV-&gt;err</a>,
-<a href="../api_c/env_strerror.html">db_strerror</a>,
-<a href="../api_c/env_version.html">db_version</a>,
-<a href="../api_c/env_set_cachesize.html">DBENV-&gt;set_cachesize</a>,
-<a href="../api_c/env_set_errcall.html">DBENV-&gt;set_errcall</a>,
-<a href="../api_c/env_set_errfile.html">DBENV-&gt;set_errfile</a>,
-<a href="../api_c/env_set_errpfx.html">DBENV-&gt;set_errpfx</a>,
-<a href="../api_c/env_set_flags.html">DBENV-&gt;set_flags</a>,
-<a href="../api_c/env_set_mutexlocks.html">DBENV-&gt;set_mutexlocks</a>,
-<a href="../api_c/env_set_paniccall.html">DBENV-&gt;set_paniccall</a>,
-and
-<a href="../api_c/env_set_verbose.html">DBENV-&gt;set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/env_set_rec_init.html b/bdb/docs/api_c/env_set_rec_init.html
deleted file mode 100644
index 056ec9b717c..00000000000
--- a/bdb/docs/api_c/env_set_rec_init.html
+++ /dev/null
@@ -1,71 +0,0 @@
-<!--$Id: env_set_rec_init.so,v 10.9 2000/05/01 21:57:44 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DBENV-&gt;set_recovery_init</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DBENV-&gt;set_recovery_init</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DBENV-&gt;set_recovery_init(DB_ENV *,
- int (*db_recovery_init_fcn)(DB_ENV *));
-</pre></h3>
-<h1>Description</h1>
-<p>Applications installing application-specific recovery functions need
-to be called before Berkeley DB performs recovery so they may add their recovery
-functions to Berkeley DB's.
-<p>The DBENV-&gt;set_recovery_init function supports this functionality. The
-<b>db_recovery_init_fcn</b> function must be declared with one
-argument, a reference to the enclosing Berkeley DB environment. This
-function will be called after the <a href="../api_c/env_open.html">DBENV-&gt;open</a> has been called,
-but before recovery is started.
-<p>If the <b>db_recovery_init_fcn</b> function returns a non-zero value,
-no recovery will be performed and <a href="../api_c/env_open.html">DBENV-&gt;open</a> will return the same
-value to its caller.
-<p>The DBENV-&gt;set_recovery_init interface may only be used to configure Berkeley DB before
-the <a href="../api_c/env_open.html">DBENV-&gt;open</a> interface is called.
-<p>The DBENV-&gt;set_recovery_init function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_c/env_open.html">DBENV-&gt;open</a> was called.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/env_close.html">DBENV-&gt;close</a>,
-<a href="../api_c/env_create.html">db_env_create</a>,
-<a href="../api_c/env_open.html">DBENV-&gt;open</a>,
-<a href="../api_c/env_remove.html">DBENV-&gt;remove</a>,
-<a href="../api_c/db_err.html">DBENV-&gt;err</a>,
-<a href="../api_c/env_strerror.html">db_strerror</a>,
-<a href="../api_c/env_version.html">db_version</a>,
-<a href="../api_c/env_set_cachesize.html">DBENV-&gt;set_cachesize</a>,
-<a href="../api_c/env_set_errcall.html">DBENV-&gt;set_errcall</a>,
-<a href="../api_c/env_set_errfile.html">DBENV-&gt;set_errfile</a>,
-<a href="../api_c/env_set_errpfx.html">DBENV-&gt;set_errpfx</a>,
-<a href="../api_c/env_set_flags.html">DBENV-&gt;set_flags</a>,
-<a href="../api_c/env_set_mutexlocks.html">DBENV-&gt;set_mutexlocks</a>,
-<a href="../api_c/env_set_paniccall.html">DBENV-&gt;set_paniccall</a>,
-and
-<a href="../api_c/env_set_verbose.html">DBENV-&gt;set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/env_set_region_init.html b/bdb/docs/api_c/env_set_region_init.html
deleted file mode 100644
index 3c83680ada9..00000000000
--- a/bdb/docs/api_c/env_set_region_init.html
+++ /dev/null
@@ -1,77 +0,0 @@
-<!--$Id: env_set_region_init.so,v 10.10 2000/05/31 15:10:00 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db_env_set_region_init</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>db_env_set_region_init</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-db_env_set_region_init(int region_init);
-</pre></h3>
-<h1>Description</h1>
-<p>Page-fault shared regions into memory when initially creating or joining
-a Berkeley DB environment. In some applications, the expense of page-faulting
-the shared memory regions can affect performance, e.g., when the
-page-fault occurs while holding a lock, other lock requests can convoy
-and overall throughput may decrease. Setting <b>region_init</b> to a
-non-zero value specifies that shared regions be read or written, as
-appropriate, when the region is joined by the application. This forces
-the underlying virtual memory and file systems to instantiate both the
-necessary memory and the necessary disk space. This can also avoid
-out-of-disk space failures later on.
-<p>The db_env_set_region_init interface affects the entire application, not a single
-database or database environment.
-<p>While the db_env_set_region_init interface may be used to configure Berkeley DB at any time
-during the life of the application, it should normally be called before
-making any calls to the <a href="../api_c/env_create.html">db_env_create</a> or <a href="../api_c/db_create.html">db_create</a> functions.
-<p>The db_env_set_region_init function returns a non-zero error value on failure and 0 on success.
-<p>The database environment's initial behavior with respect to shared memory regions may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_region_init", one or more whitespace characters,
-and the string "1". Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/env_close.html">DBENV-&gt;close</a>,
-<a href="../api_c/env_create.html">db_env_create</a>,
-<a href="../api_c/env_open.html">DBENV-&gt;open</a>,
-<a href="../api_c/env_remove.html">DBENV-&gt;remove</a>,
-<a href="../api_c/db_err.html">DBENV-&gt;err</a>,
-<a href="../api_c/env_strerror.html">db_strerror</a>,
-<a href="../api_c/env_version.html">db_version</a>,
-<a href="../api_c/env_set_cachesize.html">DBENV-&gt;set_cachesize</a>,
-<a href="../api_c/env_set_errcall.html">DBENV-&gt;set_errcall</a>,
-<a href="../api_c/env_set_errfile.html">DBENV-&gt;set_errfile</a>,
-<a href="../api_c/env_set_errpfx.html">DBENV-&gt;set_errpfx</a>,
-<a href="../api_c/env_set_flags.html">DBENV-&gt;set_flags</a>,
-<a href="../api_c/env_set_mutexlocks.html">DBENV-&gt;set_mutexlocks</a>,
-<a href="../api_c/env_set_paniccall.html">DBENV-&gt;set_paniccall</a>,
-and
-<a href="../api_c/env_set_verbose.html">DBENV-&gt;set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/env_set_server.html b/bdb/docs/api_c/env_set_server.html
deleted file mode 100644
index 586887bfc96..00000000000
--- a/bdb/docs/api_c/env_set_server.html
+++ /dev/null
@@ -1,77 +0,0 @@
-<!--"@(#)env_set_server.so 10.13 (Sleepycat) 8/25/99"-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DBENV-&gt;set_server</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DBENV-&gt;set_server</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DBENV-&gt;set_server(DB_ENV *dbenv, char *host,
- long cl_timeout, long sv_timeout, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>Connects to the DB server on the indicated hostname and sets up a channel
-for communication.
-<p>The <b>cl_timeout</b> argument specifies the number of seconds the client
-should wait for results to come back from the server. Once the timeout
-has expired on any communication with the server, DB_NOSERVER will
-be returned. If this value is zero, a default timeout is used.
-<p>The <b>sv_timeout</b> argument specifies the number of seconds the server
-should allow a client connection to remain idle before assuming that
-client is gone. Once that timeout has been reached, the server releases
-all resources associated with that client connection. Subsequent attempts
-by that client to communicate with the server result in
-DB_NOSERVER_ID indicating that an invalid identifier has been
-given to the server. This value can be considered a hint to the server.
-The server may alter this value based on its own policies or allowed
-values. If this value is zero, a default timeout is used.
-<p>The <b>flags</b> parameter is currently unused, and must be set to 0.
-<p>When the DBENV-&gt;set_server function has been called, any subsequent calls
-to Berkeley DB library interfaces may return either <a name="DB_NOSERVER">DB_NOSERVER</a> or
-<a name="DB_NOSERVER_ID">DB_NOSERVER_ID</a>.
-<p>The DBENV-&gt;set_server function returns a non-zero error value on failure and 0 on success.
-<h3>Errors</h3>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>dbenv_set_server
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/env_close.html">DBENV-&gt;close</a>,
-<a href="../api_c/env_create.html">db_env_create</a>,
-<a href="../api_c/env_open.html">DBENV-&gt;open</a>,
-<a href="../api_c/env_remove.html">DBENV-&gt;remove</a>,
-<a href="../api_c/db_err.html">DBENV-&gt;err</a>,
-<a href="../api_c/env_strerror.html">db_strerror</a>,
-<a href="../api_c/env_version.html">db_version</a>,
-<a href="../api_c/env_set_cachesize.html">DBENV-&gt;set_cachesize</a>,
-<a href="../api_c/env_set_errcall.html">DBENV-&gt;set_errcall</a>,
-<a href="../api_c/env_set_errfile.html">DBENV-&gt;set_errfile</a>,
-<a href="../api_c/env_set_errpfx.html">DBENV-&gt;set_errpfx</a>,
-<a href="../api_c/env_set_flags.html">DBENV-&gt;set_flags</a>,
-<a href="../api_c/env_set_mutexlocks.html">DBENV-&gt;set_mutexlocks</a>,
-<a href="../api_c/env_set_paniccall.html">DBENV-&gt;set_paniccall</a>,
-and
-<a href="../api_c/env_set_verbose.html">DBENV-&gt;set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/env_set_shm_key.html b/bdb/docs/api_c/env_set_shm_key.html
deleted file mode 100644
index 8de32ed842a..00000000000
--- a/bdb/docs/api_c/env_set_shm_key.html
+++ /dev/null
@@ -1,87 +0,0 @@
-<!--$Id: env_set_shm_key.so,v 10.5 2000/08/09 15:45:52 sue Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DBENV-&gt;set_shm_key</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DBENV-&gt;set_shm_key</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DBENV-&gt;set_shm_key(DB_ENV *dbenv, long shm_key);
-</pre></h3>
-<h1>Description</h1>
-<p>Specify a base segment ID for Berkeley DB environment shared memory regions
-created in system memory on VxWorks or systems supporting X/Open-style
-shared memory interfaces, e.g., UNIX systems supporting
-<b>shmget</b>(2) and related System V IPC interfaces.
-<p>This base segment ID will be used when Berkeley DB shared memory regions are
-first created. It will be incremented a small integer value each time
-a new shared memory region is created, that is, if the base ID is 35,
-the first shared memory region created will have a segment ID of 35 and
-the next one a segment ID between 36 and 40 or so. A Berkeley DB environment
-always creates a master shared memory region, plus an additional shared
-memory region for each of the subsystems supported by the environment
-(locking, logging, memory pool and transaction), plus an additional
-shared memory region for each additional memory pool cache that is
-supported. Already existing regions with the same segment IDs will be
-removed. See <a href="../ref/env/region.html">Shared Memory Regions</a>
-for more information.
-<p>The intent behind this interface is two-fold: without it, applications
-have no way to ensure that two Berkeley DB applications don't attempt to use
-the same segment IDs when creating different Berkeley DB environments. In
-addition, by using the same segment IDs each time the environment is
-created, previously created segments will be removed, and the set of
-segments on the system will not grow without bound.
-<p>The DBENV-&gt;set_shm_key interface may only be used to configure Berkeley DB before
-the <a href="../api_c/env_open.html">DBENV-&gt;open</a> interface is called.
-<p>The DBENV-&gt;set_shm_key function returns a non-zero error value on failure and 0 on success.
-<p>The database environment's base segment ID may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_shm_key", one or more whitespace characters,
-and the ID. Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_c/env_open.html">DBENV-&gt;open</a> was called.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/env_close.html">DBENV-&gt;close</a>,
-<a href="../api_c/env_create.html">db_env_create</a>,
-<a href="../api_c/env_open.html">DBENV-&gt;open</a>,
-<a href="../api_c/env_remove.html">DBENV-&gt;remove</a>,
-<a href="../api_c/db_err.html">DBENV-&gt;err</a>,
-<a href="../api_c/env_strerror.html">db_strerror</a>,
-<a href="../api_c/env_version.html">db_version</a>,
-<a href="../api_c/env_set_cachesize.html">DBENV-&gt;set_cachesize</a>,
-<a href="../api_c/env_set_errcall.html">DBENV-&gt;set_errcall</a>,
-<a href="../api_c/env_set_errfile.html">DBENV-&gt;set_errfile</a>,
-<a href="../api_c/env_set_errpfx.html">DBENV-&gt;set_errpfx</a>,
-<a href="../api_c/env_set_flags.html">DBENV-&gt;set_flags</a>,
-<a href="../api_c/env_set_mutexlocks.html">DBENV-&gt;set_mutexlocks</a>,
-<a href="../api_c/env_set_paniccall.html">DBENV-&gt;set_paniccall</a>,
-and
-<a href="../api_c/env_set_verbose.html">DBENV-&gt;set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/env_set_tas_spins.html b/bdb/docs/api_c/env_set_tas_spins.html
deleted file mode 100644
index 633dcda077e..00000000000
--- a/bdb/docs/api_c/env_set_tas_spins.html
+++ /dev/null
@@ -1,70 +0,0 @@
-<!--$Id: env_set_tas_spins.so,v 10.9 2000/05/31 15:10:00 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db_env_set_tas_spins</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>db_env_set_tas_spins</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-db_env_set_tas_spins(u_int32_t tas_spins);
-</pre></h3>
-<h1>Description</h1>
-<p>Specify that test-and-set mutexes should spin <b>tas_spins</b> times
-without blocking. The value defaults to 1 on uniprocessor systems and
-to 50 times the number of processors on multiprocessor systems.
-<p>The db_env_set_tas_spins interface affects the entire application, not a single
-database or database environment.
-<p>While the db_env_set_tas_spins interface may be used to configure Berkeley DB at any time
-during the life of the application, it should normally be called before
-making any calls to the <a href="../api_c/env_create.html">db_env_create</a> or <a href="../api_c/db_create.html">db_create</a> functions.
-<p>The db_env_set_tas_spins function returns a non-zero error value on failure and 0 on success.
-<p>The database environment's test-and-set spin count may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_tas_spins", one or more whitespace characters,
-and the number of spins. Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/env_close.html">DBENV-&gt;close</a>,
-<a href="../api_c/env_create.html">db_env_create</a>,
-<a href="../api_c/env_open.html">DBENV-&gt;open</a>,
-<a href="../api_c/env_remove.html">DBENV-&gt;remove</a>,
-<a href="../api_c/db_err.html">DBENV-&gt;err</a>,
-<a href="../api_c/env_strerror.html">db_strerror</a>,
-<a href="../api_c/env_version.html">db_version</a>,
-<a href="../api_c/env_set_cachesize.html">DBENV-&gt;set_cachesize</a>,
-<a href="../api_c/env_set_errcall.html">DBENV-&gt;set_errcall</a>,
-<a href="../api_c/env_set_errfile.html">DBENV-&gt;set_errfile</a>,
-<a href="../api_c/env_set_errpfx.html">DBENV-&gt;set_errpfx</a>,
-<a href="../api_c/env_set_flags.html">DBENV-&gt;set_flags</a>,
-<a href="../api_c/env_set_mutexlocks.html">DBENV-&gt;set_mutexlocks</a>,
-<a href="../api_c/env_set_paniccall.html">DBENV-&gt;set_paniccall</a>,
-and
-<a href="../api_c/env_set_verbose.html">DBENV-&gt;set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/env_set_tmp_dir.html b/bdb/docs/api_c/env_set_tmp_dir.html
deleted file mode 100644
index 05f3bed5da0..00000000000
--- a/bdb/docs/api_c/env_set_tmp_dir.html
+++ /dev/null
@@ -1,89 +0,0 @@
-<!--$Id: env_set_tmp_dir.so,v 10.3 2000/05/20 16:29:12 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DBENV-&gt;set_tmp_dir</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DBENV-&gt;set_tmp_dir</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DBENV-&gt;set_tmp_dir(DB_ENV *dbenv, const char *dir);
-</pre></h3>
-<h1>Description</h1>
-<p>The path of a directory to be used as the location of temporary files.
-The files created to back in-memory access method databases will be
-created relative to this path. These temporary files can be quite large,
-depending on the size of the database.
-<p>If no directories are specified, the following alternatives are checked
-in the specified order. The first existing directory path is used for
-all temporary files.
-<p><ol>
-<p><li>The value of the environment variable <b>TMPDIR</b>.
-<li>The value of the environment variable <b>TEMP</b>.
-<li>The value of the environment variable <b>TMP</b>.
-<li>The value of the environment variable <b>TempFolder</b>.
-<li>The value returned by the GetTempPath interface.
-<li>The directory <b>/var/tmp</b>.
-<li>The directory <b>/usr/tmp</b>.
-<li>The directory <b>/temp</b>.
-<li>The directory <b>/tmp</b>.
-<li>The directory <b>C:/temp</b>.
-<li>The directory <b>C:/tmp</b>.
-</ol>
-<p>Note: environment variables are only checked if one of the
-<a href="../api_c/env_open.html#DB_USE_ENVIRON">DB_USE_ENVIRON</a> or <a href="../api_c/env_open.html#DB_USE_ENVIRON_ROOT">DB_USE_ENVIRON_ROOT</a> flags were
-specified.
-<p>Note: the GetTempPath interface is only checked on Win/32 platforms.
-<p>The DBENV-&gt;set_tmp_dir interface may only be used to configure Berkeley DB before
-the <a href="../api_c/env_open.html">DBENV-&gt;open</a> interface is called.
-<p>The DBENV-&gt;set_tmp_dir function returns a non-zero error value on failure and 0 on success.
-<p>The database environment's temporary file directory may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_tmp_dir", one or more whitespace characters,
-and the directory name. Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_c/env_open.html">DBENV-&gt;open</a> was called.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/env_close.html">DBENV-&gt;close</a>,
-<a href="../api_c/env_create.html">db_env_create</a>,
-<a href="../api_c/env_open.html">DBENV-&gt;open</a>,
-<a href="../api_c/env_remove.html">DBENV-&gt;remove</a>,
-<a href="../api_c/db_err.html">DBENV-&gt;err</a>,
-<a href="../api_c/env_strerror.html">db_strerror</a>,
-<a href="../api_c/env_version.html">db_version</a>,
-<a href="../api_c/env_set_cachesize.html">DBENV-&gt;set_cachesize</a>,
-<a href="../api_c/env_set_errcall.html">DBENV-&gt;set_errcall</a>,
-<a href="../api_c/env_set_errfile.html">DBENV-&gt;set_errfile</a>,
-<a href="../api_c/env_set_errpfx.html">DBENV-&gt;set_errpfx</a>,
-<a href="../api_c/env_set_flags.html">DBENV-&gt;set_flags</a>,
-<a href="../api_c/env_set_mutexlocks.html">DBENV-&gt;set_mutexlocks</a>,
-<a href="../api_c/env_set_paniccall.html">DBENV-&gt;set_paniccall</a>,
-and
-<a href="../api_c/env_set_verbose.html">DBENV-&gt;set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/env_set_tx_max.html b/bdb/docs/api_c/env_set_tx_max.html
deleted file mode 100644
index 82328955237..00000000000
--- a/bdb/docs/api_c/env_set_tx_max.html
+++ /dev/null
@@ -1,67 +0,0 @@
-<!--$Id: env_set_tx_max.so,v 10.21 2000/05/20 16:29:12 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DBENV-&gt;set_tx_max</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DBENV-&gt;set_tx_max</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DBENV-&gt;set_tx_max(DB_ENV *dbenv, u_int32_t tx_max);
-</pre></h3>
-<h1>Description</h1>
-<p>Set the maximum number of active transactions that are supported by the
-environment. This value bounds the size of backing shared memory regions.
-Note that child transactions must be counted as active until their
-ultimate parent commits or aborts.
-<p>When there are more than the specified number of concurrent transactions,
-calls to <a href="../api_c/txn_begin.html">txn_begin</a> will fail (until some active transactions
-complete). If no value is specified, a default value of 20 is used.
-<p>The DBENV-&gt;set_tx_max interface may only be used to configure Berkeley DB before
-the <a href="../api_c/env_open.html">DBENV-&gt;open</a> interface is called.
-<p>The DBENV-&gt;set_tx_max function returns a non-zero error value on failure and 0 on success.
-<p>The database environment's maximum number of active transactions may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_tx_max", one or more whitespace characters,
-and the number of transactions. Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_c/env_open.html">DBENV-&gt;open</a> was called.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/env_set_tx_max.html">DBENV-&gt;set_tx_max</a>,
-<a href="../api_c/env_set_tx_recover.html">DBENV-&gt;set_tx_recover</a>,
-<a href="../api_c/env_set_tx_timestamp.html">DBENV-&gt;set_tx_timestamp</a>,
-<a href="../api_c/txn_abort.html">txn_abort</a>,
-<a href="../api_c/txn_begin.html">txn_begin</a>,
-<a href="../api_c/txn_checkpoint.html">txn_checkpoint</a>,
-<a href="../api_c/txn_commit.html">txn_commit</a>,
-<a href="../api_c/txn_id.html">txn_id</a>,
-<a href="../api_c/txn_prepare.html">txn_prepare</a>
-and
-<a href="../api_c/txn_stat.html">txn_stat</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/env_set_tx_recover.html b/bdb/docs/api_c/env_set_tx_recover.html
deleted file mode 100644
index 9295537b5f5..00000000000
--- a/bdb/docs/api_c/env_set_tx_recover.html
+++ /dev/null
@@ -1,75 +0,0 @@
-<!--$Id: env_set_tx_recover.so,v 10.26 2000/07/09 19:13:19 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DBENV-&gt;set_tx_recover</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DBENV-&gt;set_tx_recover</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DBENV-&gt;set_tx_recover(DB_ENV *dbenv,
- int (*tx_recover)(DB_ENV *dbenv,
- DBT *log_rec, DB_LSN *lsn, db_recops op));
-</pre></h3>
-<h1>Description</h1>
-<p>Set the application's function to be called during transaction abort
-and recovery. This function must return 0 on success and either
-<b>errno</b> or a value outside of the Berkeley DB error name space on
-failure. It takes four arguments:
-<p><dl compact>
-<p><dt>dbenv <dd>A Berkeley DB environment.
-<p><dt>log_rec<dd>A log record.
-<p><dt>lsn<dd>A log sequence number.
-<p><dt>op<dd>One of the following values:
-<p><dl compact>
-<p><dt><a name="DB_TXN_BACKWARD_ROLL">DB_TXN_BACKWARD_ROLL</a><dd>The log is being read backward to determine which transactions have been
-committed and to abort those operations that were not, undo the operation
-described by the log record.
-<p><dt><a name="DB_TXN_FORWARD_ROLL">DB_TXN_FORWARD_ROLL</a><dd>The log is being played forward, redo the operation described by the log
-record.
-<p><dt><a name="DB_TXN_ABORT">DB_TXN_ABORT</a><dd>The log is being read backwards during a transaction abort, undo the
-operation described by the log record.
-</dl>
-</dl>
-<p>The DBENV-&gt;set_tx_recover interface may only be used to configure Berkeley DB before
-the <a href="../api_c/env_open.html">DBENV-&gt;open</a> interface is called.
-<p>The DBENV-&gt;set_tx_recover function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_c/env_open.html">DBENV-&gt;open</a> was called.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/env_set_tx_max.html">DBENV-&gt;set_tx_max</a>,
-<a href="../api_c/env_set_tx_recover.html">DBENV-&gt;set_tx_recover</a>,
-<a href="../api_c/env_set_tx_timestamp.html">DBENV-&gt;set_tx_timestamp</a>,
-<a href="../api_c/txn_abort.html">txn_abort</a>,
-<a href="../api_c/txn_begin.html">txn_begin</a>,
-<a href="../api_c/txn_checkpoint.html">txn_checkpoint</a>,
-<a href="../api_c/txn_commit.html">txn_commit</a>,
-<a href="../api_c/txn_id.html">txn_id</a>,
-<a href="../api_c/txn_prepare.html">txn_prepare</a>
-and
-<a href="../api_c/txn_stat.html">txn_stat</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/env_set_tx_timestamp.html b/bdb/docs/api_c/env_set_tx_timestamp.html
deleted file mode 100644
index 68cd0d15723..00000000000
--- a/bdb/docs/api_c/env_set_tx_timestamp.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<!--$Id: env_set_tx_timestamp.so,v 10.6 2000/12/21 18:33:42 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DBENV-&gt;set_tx_timestamp</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DBENV-&gt;set_tx_timestamp</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DBENV-&gt;set_tx_timestamp(DB_ENV *dbenv, time_t *timestamp);
-</pre></h3>
-<h1>Description</h1>
-<p>Recover to the time specified by <b>timestamp</b> rather than to the most
-current possible date.
-The <b>timestamp</b> argument should be the number of seconds since 0
-hours, 0 minutes, 0 seconds, January 1, 1970, Coordinated Universal Time,
-i.e., the Epoch.
-<p>Once a database environment has been upgraded to a new version of Berkeley DB
-involving a log format change (see <a href="../ref/upgrade/process.html">Upgrading Berkeley DB installations</a>, it is no longer possible to recover
-to a specific time before that upgrade.
-<p>The DBENV-&gt;set_tx_timestamp interface may only be used to configure Berkeley DB before
-the <a href="../api_c/env_open.html">DBENV-&gt;open</a> interface is called.
-<p>The DBENV-&gt;set_tx_timestamp function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>It is not possible to recover to the specified time using the
-log files currently present in the environment.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/env_set_tx_max.html">DBENV-&gt;set_tx_max</a>,
-<a href="../api_c/env_set_tx_recover.html">DBENV-&gt;set_tx_recover</a>,
-<a href="../api_c/env_set_tx_timestamp.html">DBENV-&gt;set_tx_timestamp</a>,
-<a href="../api_c/txn_abort.html">txn_abort</a>,
-<a href="../api_c/txn_begin.html">txn_begin</a>,
-<a href="../api_c/txn_checkpoint.html">txn_checkpoint</a>,
-<a href="../api_c/txn_commit.html">txn_commit</a>,
-<a href="../api_c/txn_id.html">txn_id</a>,
-<a href="../api_c/txn_prepare.html">txn_prepare</a>
-and
-<a href="../api_c/txn_stat.html">txn_stat</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/env_set_verbose.html b/bdb/docs/api_c/env_set_verbose.html
deleted file mode 100644
index 605fd577cca..00000000000
--- a/bdb/docs/api_c/env_set_verbose.html
+++ /dev/null
@@ -1,78 +0,0 @@
-<!--$Id: env_set_verbose.so,v 10.23 2000/05/20 16:29:12 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DBENV-&gt;set_verbose</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DBENV-&gt;set_verbose</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-DBENV-&gt;set_verbose(DB_ENV *dbenv, u_int32_t which, int onoff);
-</pre></h3>
-<h1>Description</h1>
-<p>The DBENV-&gt;set_verbose function turns additional informational and
-debugging messages in the Berkeley DB message output on and off. If
-<b>onoff</b> is set to
-non-zero,
-the additional messages are output.
-<p>The <b>which</b> parameter must be set to one of the following values:
-<p><dl compact>
-<p><dt><a name="DB_VERB_CHKPOINT">DB_VERB_CHKPOINT</a><dd>Display checkpoint location information when searching the log for
-checkpoints.
-<p><dt><a name="DB_VERB_DEADLOCK">DB_VERB_DEADLOCK</a><dd>Display additional information when doing deadlock detection.
-<p><dt><a name="DB_VERB_RECOVERY">DB_VERB_RECOVERY</a><dd>Display additional information when performing recovery.
-<p><dt><a name="DB_VERB_WAITSFOR">DB_VERB_WAITSFOR</a><dd>Display the waits-for table when doing deadlock detection.
-</dl>
-<p>The DBENV-&gt;set_verbose interface may be used to configure Berkeley DB at any time
-during the life of the application.
-<p>The DBENV-&gt;set_verbose function returns a non-zero error value on failure and 0 on success.
-<p>The database environment's verbosity may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_verbose", one or more whitespace characters,
-and the interface <b>which</b> argument as a string, for example,
-"set_verbose DB_VERB_CHKPOINT". Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/env_close.html">DBENV-&gt;close</a>,
-<a href="../api_c/env_create.html">db_env_create</a>,
-<a href="../api_c/env_open.html">DBENV-&gt;open</a>,
-<a href="../api_c/env_remove.html">DBENV-&gt;remove</a>,
-<a href="../api_c/db_err.html">DBENV-&gt;err</a>,
-<a href="../api_c/env_strerror.html">db_strerror</a>,
-<a href="../api_c/env_version.html">db_version</a>,
-<a href="../api_c/env_set_cachesize.html">DBENV-&gt;set_cachesize</a>,
-<a href="../api_c/env_set_errcall.html">DBENV-&gt;set_errcall</a>,
-<a href="../api_c/env_set_errfile.html">DBENV-&gt;set_errfile</a>,
-<a href="../api_c/env_set_errpfx.html">DBENV-&gt;set_errpfx</a>,
-<a href="../api_c/env_set_flags.html">DBENV-&gt;set_flags</a>,
-<a href="../api_c/env_set_mutexlocks.html">DBENV-&gt;set_mutexlocks</a>,
-<a href="../api_c/env_set_paniccall.html">DBENV-&gt;set_paniccall</a>,
-and
-<a href="../api_c/env_set_verbose.html">DBENV-&gt;set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/env_strerror.html b/bdb/docs/api_c/env_strerror.html
deleted file mode 100644
index e6bd190a2ea..00000000000
--- a/bdb/docs/api_c/env_strerror.html
+++ /dev/null
@@ -1,60 +0,0 @@
-<!--$Id: env_strerror.so,v 8.4 2000/07/30 17:59:25 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db_strerror</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>db_strerror</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-char *
-db_strerror(int error);
-</pre></h3>
-<h1>Description</h1>
-<p>The db_strerror function returns an error message string corresponding
-to the error number <b>error</b>. This interface is a superset of the
-ANSI C X3.159-1989 (ANSI C) <b>strerror</b>(3) interface. If the error number
-<b>error</b> is greater than or equal to 0, then the string returned by
-the system interface <b>strerror</b>(3) is returned. If the error
-number is less than 0, an error string appropriate to the corresponding
-Berkeley DB library error is returned. See
-<a href="../ref/program/errorret.html">Error returns to applications</a>
-for more information.
-<h1>See Also</h1>
-<a href="../api_c/env_close.html">DBENV-&gt;close</a>,
-<a href="../api_c/env_create.html">db_env_create</a>,
-<a href="../api_c/env_open.html">DBENV-&gt;open</a>,
-<a href="../api_c/env_remove.html">DBENV-&gt;remove</a>,
-<a href="../api_c/db_err.html">DBENV-&gt;err</a>,
-<a href="../api_c/env_strerror.html">db_strerror</a>,
-<a href="../api_c/env_version.html">db_version</a>,
-<a href="../api_c/env_set_cachesize.html">DBENV-&gt;set_cachesize</a>,
-<a href="../api_c/env_set_errcall.html">DBENV-&gt;set_errcall</a>,
-<a href="../api_c/env_set_errfile.html">DBENV-&gt;set_errfile</a>,
-<a href="../api_c/env_set_errpfx.html">DBENV-&gt;set_errpfx</a>,
-<a href="../api_c/env_set_flags.html">DBENV-&gt;set_flags</a>,
-<a href="../api_c/env_set_mutexlocks.html">DBENV-&gt;set_mutexlocks</a>,
-<a href="../api_c/env_set_paniccall.html">DBENV-&gt;set_paniccall</a>,
-and
-<a href="../api_c/env_set_verbose.html">DBENV-&gt;set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/env_version.html b/bdb/docs/api_c/env_version.html
deleted file mode 100644
index fa7704aaea2..00000000000
--- a/bdb/docs/api_c/env_version.html
+++ /dev/null
@@ -1,57 +0,0 @@
-<!--$Id: env_version.so,v 10.13 1999/12/20 08:52:30 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db_version</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>db_version</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-char *
-db_version(int *major, int *minor, int *patch);
-</pre></h3>
-<h1>Description</h1>
-<p>The db_version function returns a pointer to a string containing Berkeley DB
-version information. If <b>major</b> is non-NULL, the major version
-of the Berkeley DB release is stored in the memory it references. If
-<b>minor</b> is non-NULL, the minor version of the Berkeley DB release is
-stored in the memory it references. If <b>patch</b> is non-NULL, the
-patch version of the Berkeley DB release is stored in the memory it references.
-<h1>See Also</h1>
-<a href="../api_c/env_close.html">DBENV-&gt;close</a>,
-<a href="../api_c/env_create.html">db_env_create</a>,
-<a href="../api_c/env_open.html">DBENV-&gt;open</a>,
-<a href="../api_c/env_remove.html">DBENV-&gt;remove</a>,
-<a href="../api_c/db_err.html">DBENV-&gt;err</a>,
-<a href="../api_c/env_strerror.html">db_strerror</a>,
-<a href="../api_c/env_version.html">db_version</a>,
-<a href="../api_c/env_set_cachesize.html">DBENV-&gt;set_cachesize</a>,
-<a href="../api_c/env_set_errcall.html">DBENV-&gt;set_errcall</a>,
-<a href="../api_c/env_set_errfile.html">DBENV-&gt;set_errfile</a>,
-<a href="../api_c/env_set_errpfx.html">DBENV-&gt;set_errpfx</a>,
-<a href="../api_c/env_set_flags.html">DBENV-&gt;set_flags</a>,
-<a href="../api_c/env_set_mutexlocks.html">DBENV-&gt;set_mutexlocks</a>,
-<a href="../api_c/env_set_paniccall.html">DBENV-&gt;set_paniccall</a>,
-and
-<a href="../api_c/env_set_verbose.html">DBENV-&gt;set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/hsearch.html b/bdb/docs/api_c/hsearch.html
deleted file mode 100644
index 0d6d6ce51ed..00000000000
--- a/bdb/docs/api_c/hsearch.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<!--$Id: hsearch.so,v 10.18 2000/09/21 20:40:54 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: hsearch</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>hsearch</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#define DB_DBM_HSEARCH 1
-#include &lt;db.h&gt;
-<p>
-typedef enum {
- FIND, ENTER
-} ACTION;
-<p>
-typedef struct entry {
- char *key;
- void *data;
-} ENTRY;
-<p>
-ENTRY *
-hsearch(ENTRY item, ACTION action);
-<p>
-int
-hcreate(size_t nelem);
-<p>
-void
-hdestroy(void);
-</pre></h3>
-<h1>Description</h1>
-<p>The hsearch interface to the Berkeley DB library is intended to
-provide a high-performance implementation and source code compatibility
-for applications written to the historic hsearch interface.
-It is not recommended for any other purpose.
-<p>To compile hsearch applications, replace the application's
-<b>#include</b> of the hsearch include
-file (e.g., <b>#include &lt;search.h&gt;</b>)
-with the following two lines:
-<p><blockquote><pre>
-#define DB_DBM_HSEARCH 1
-#include &lt;db.h&gt;</pre></blockquote>
-<p>and recompile.
-<p>The hcreate function creates an in-memory database. The
-<b>nelem</b> argument is an estimation of the maximum number of key/data
-pairs that will be stored in the database.
-<p>The <b>hdestroy</b> function discards the database.
-<p>Database elements are structures of type <b>ENTRY</b>, which contain at
-least two fields: <b>key</b> and <b>data</b>. The field <b>key</b> is
-declared to be of type <b>char *</b> and is the key used for storage
-and retrieval. The field <b>data</b> is declared to be of type
-<b>void *</b> and is its associated data.
-<p>The hsearch function retrieves key/data pairs from, and stores
-key/data pairs into the database.
-<p>The <b>action</b> argument must be set to one of two values:
-<p><dl compact>
-<p><dt>ENTER<dd>If the key does not already appear in the database,
-insert the key/data pair into the database.
-If the key already appears in the database,
-return a reference to an <b>ENTRY</b>
-structure referencing the existing key and its associated data element.
-<p><dt>FIND<dd>Retrieve the specified key/data pair from the database.
-</dl>
-<h3>Compatibility Notes</h3>
-<p>Historically, hsearch required applications to maintain the keys
-and data in the application's memory for as long as the <b>hsearch</b>
-database existed. As Berkeley DB handles key and data management internally,
-there is no requirement that applications maintain local copies of key
-and data items, although the only effect of doing so should be the
-allocation of additional memory.
-<h3>Hsearch Diagnostics</h3>
-<p>The <b>hcreate</b> function returns 0 on failure, setting <b>errno</b>
-and non-zero on success.
-<p>The <b>hsearch</b> function returns a pointer to an ENTRY structure on
-success, and NULL, setting <b>errno</b>, if the <b>action</b>
-specified was FIND and the item did not appear in the database.
-<h1>Errors</h1>
-<p>The hcreate function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the hcreate function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<p>The hsearch function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the hsearch function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<p>In addition, the <b>hsearch</b> function will fail, setting <b>errno</b>
-to 0, if the <b>action</b> specified was FIND and the item did not appear in
-the database.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/lock_detect.html b/bdb/docs/api_c/lock_detect.html
deleted file mode 100644
index 7b95e98e9d0..00000000000
--- a/bdb/docs/api_c/lock_detect.html
+++ /dev/null
@@ -1,73 +0,0 @@
-<!--$Id: lock_detect.so,v 10.26 2000/03/17 01:53:59 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: lock_detect</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>lock_detect</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-lock_detect(DB_ENV *env,
- u_int32_t flags, u_int32_t atype, int *aborted);
-</pre></h3>
-<h1>Description</h1>
-<p>The lock_detect function runs one iteration of the deadlock detector.
-The deadlock detector traverses the lock table, and for each deadlock
-it finds, marks one of the participating transactions for abort.
-<p>The <b>flags</b> value must be set to 0 or by bitwise inclusively <b>OR</b>'ing together one or more
-of the following values.
-<p><dl compact>
-<p><dt><a name="DB_LOCK_CONFLICT">DB_LOCK_CONFLICT</a><dd>Only run the deadlock detector if a lock conflict has occurred since
-the last time that the deadlock detector was run.
-</dl>
-<p>The <b>atype</b> parameter specifies which transaction to abort in the
-case of deadlock. It must be set to one of possible arguments listed for
-the <a href="../api_c/env_set_lk_detect.html">DBENV-&gt;set_lk_detect</a> interface.
-<p>If the <b>aborted</b> parameter is non-NULL, the memory location it
-references will be set to the number of transactions aborted by the
-lock_detect function.
-<p>The lock_detect function is the underlying function used by the <a href="../utility/db_deadlock.html">db_deadlock</a> utility.
-See the <a href="../utility/db_deadlock.html">db_deadlock</a> utility source code for an example of using lock_detect
-in a IEEE/ANSI Std 1003.1 (POSIX) environment.
-<p>The lock_detect function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p>The lock_detect function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the lock_detect function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/env_set_lk_conflicts.html">DBENV-&gt;set_lk_conflicts</a>,
-<a href="../api_c/env_set_lk_detect.html">DBENV-&gt;set_lk_detect</a>,
-<a href="../api_c/env_set_lk_max_locks.html">DBENV-&gt;set_lk_max_locks</a>,
-<a href="../api_c/env_set_lk_max_lockers.html">DBENV-&gt;set_lk_max_lockers</a>,
-<a href="../api_c/env_set_lk_max_objects.html">DBENV-&gt;set_lk_max_objects</a>,
-<a href="../api_c/env_set_lk_max.html">DBENV-&gt;set_lk_max</a>,
-<a href="../api_c/lock_detect.html">lock_detect</a>,
-<a href="../api_c/lock_get.html">lock_get</a>,
-<a href="../api_c/lock_id.html">lock_id</a>,
-<a href="../api_c/lock_put.html">lock_put</a>,
-<a href="../api_c/lock_stat.html">lock_stat</a>
-and
-<a href="../api_c/lock_vec.html">lock_vec</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/lock_get.html b/bdb/docs/api_c/lock_get.html
deleted file mode 100644
index 8d68ba54cb9..00000000000
--- a/bdb/docs/api_c/lock_get.html
+++ /dev/null
@@ -1,91 +0,0 @@
-<!--$Id: lock_get.so,v 10.28 2000/04/24 16:33:54 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: lock_get</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>lock_get</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-lock_get(DB_ENV *env, u_int32_t locker,
- u_int32_t flags, const DBT *obj,
- const db_lockmode_t lock_mode, DB_LOCK *lock);
-</pre></h3>
-<h1>Description</h1>
-<p>The lock_get function acquires a lock from the lock table, returning
-information about it in
-the <b>lock</b> argument.
-<p>The <b>locker</b> argument specified to lock_get is an unsigned
-32-bit integer quantity. It represents the entity requesting or releasing
-the lock.
-<p>The <b>flags</b> value must be set to 0 or the following value:
-<p><dl compact>
-<p><dt><a name="DB_LOCK_NOWAIT">DB_LOCK_NOWAIT</a><dd>If a lock cannot be granted because the requested lock conflicts with an
-existing lock, return immediately instead of waiting for the lock to
-become available.
-</dl>
-<p>The <b>obj</b> argument is an untyped byte string that specifies the
-object to be locked or released.
-<p>The <b>mode</b> argument is an index into the environment's lock conflict
-array. See <a href="../api_c/env_set_lk_conflicts.html">DBENV-&gt;set_lk_conflicts</a> and
-<a href="../ref/lock/stdmode.html">Standard Lock Modes</a>
-for a description of that array.
-<p>The lock_get function may
-return
-one of the following values:
-<p><dl compact>
-<p><dt><a name="DB_LOCK_NOTGRANTED">DB_LOCK_NOTGRANTED</a><dd>A lock was requested that could not be immediately granted and the
-<b>flags</b> parameter was set to DB_LOCK_NOWAIT.
-</dl>
-<p>Otherwise, the lock_get function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p>The lock_get function may fail and return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>DB_LOCK_DEADLOCK<dd>The operation was selected to resolve a deadlock.
-</dl>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<p><dl compact>
-<p><dt>ENOMEM<dd>The maximum number of locks has been reached.
-</dl>
-<p>The lock_get function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the lock_get function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/env_set_lk_conflicts.html">DBENV-&gt;set_lk_conflicts</a>,
-<a href="../api_c/env_set_lk_detect.html">DBENV-&gt;set_lk_detect</a>,
-<a href="../api_c/env_set_lk_max_locks.html">DBENV-&gt;set_lk_max_locks</a>,
-<a href="../api_c/env_set_lk_max_lockers.html">DBENV-&gt;set_lk_max_lockers</a>,
-<a href="../api_c/env_set_lk_max_objects.html">DBENV-&gt;set_lk_max_objects</a>,
-<a href="../api_c/env_set_lk_max.html">DBENV-&gt;set_lk_max</a>,
-<a href="../api_c/lock_detect.html">lock_detect</a>,
-<a href="../api_c/lock_get.html">lock_get</a>,
-<a href="../api_c/lock_id.html">lock_id</a>,
-<a href="../api_c/lock_put.html">lock_put</a>,
-<a href="../api_c/lock_stat.html">lock_stat</a>
-and
-<a href="../api_c/lock_vec.html">lock_vec</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/lock_id.html b/bdb/docs/api_c/lock_id.html
deleted file mode 100644
index bd720cdb00e..00000000000
--- a/bdb/docs/api_c/lock_id.html
+++ /dev/null
@@ -1,57 +0,0 @@
-<!--$Id: lock_id.so,v 10.19 2000/03/01 21:41:29 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: lock_id</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>lock_id</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-lock_id(DB_ENV *env, u_int32_t *idp);
-</pre></h3>
-<h1>Description</h1>
-<p>The lock_id function
-copies a locker ID, which is guaranteed to be unique in the specified lock
-table, into the memory location referenced by <b>idp</b>.
-<p>The lock_id function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p>The lock_id function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the lock_id function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/env_set_lk_conflicts.html">DBENV-&gt;set_lk_conflicts</a>,
-<a href="../api_c/env_set_lk_detect.html">DBENV-&gt;set_lk_detect</a>,
-<a href="../api_c/env_set_lk_max_locks.html">DBENV-&gt;set_lk_max_locks</a>,
-<a href="../api_c/env_set_lk_max_lockers.html">DBENV-&gt;set_lk_max_lockers</a>,
-<a href="../api_c/env_set_lk_max_objects.html">DBENV-&gt;set_lk_max_objects</a>,
-<a href="../api_c/env_set_lk_max.html">DBENV-&gt;set_lk_max</a>,
-<a href="../api_c/lock_detect.html">lock_detect</a>,
-<a href="../api_c/lock_get.html">lock_get</a>,
-<a href="../api_c/lock_id.html">lock_id</a>,
-<a href="../api_c/lock_put.html">lock_put</a>,
-<a href="../api_c/lock_stat.html">lock_stat</a>
-and
-<a href="../api_c/lock_vec.html">lock_vec</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/lock_put.html b/bdb/docs/api_c/lock_put.html
deleted file mode 100644
index 777f4bdd09b..00000000000
--- a/bdb/docs/api_c/lock_put.html
+++ /dev/null
@@ -1,59 +0,0 @@
-<!--$Id: lock_put.so,v 10.21 2000/03/01 21:41:29 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: lock_put</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>lock_put</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-lock_put(DB_ENV *env, DB_LOCK *lock);
-</pre></h3>
-<h1>Description</h1>
-<p>The lock_put function releases <b>lock</b> from the lock table.
-<p>The lock_put function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p>The lock_put function may fail and return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<p>The lock_put function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the lock_put function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/env_set_lk_conflicts.html">DBENV-&gt;set_lk_conflicts</a>,
-<a href="../api_c/env_set_lk_detect.html">DBENV-&gt;set_lk_detect</a>,
-<a href="../api_c/env_set_lk_max_locks.html">DBENV-&gt;set_lk_max_locks</a>,
-<a href="../api_c/env_set_lk_max_lockers.html">DBENV-&gt;set_lk_max_lockers</a>,
-<a href="../api_c/env_set_lk_max_objects.html">DBENV-&gt;set_lk_max_objects</a>,
-<a href="../api_c/env_set_lk_max.html">DBENV-&gt;set_lk_max</a>,
-<a href="../api_c/lock_detect.html">lock_detect</a>,
-<a href="../api_c/lock_get.html">lock_get</a>,
-<a href="../api_c/lock_id.html">lock_id</a>,
-<a href="../api_c/lock_put.html">lock_put</a>,
-<a href="../api_c/lock_stat.html">lock_stat</a>
-and
-<a href="../api_c/lock_vec.html">lock_vec</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/lock_stat.html b/bdb/docs/api_c/lock_stat.html
deleted file mode 100644
index c86024de7f9..00000000000
--- a/bdb/docs/api_c/lock_stat.html
+++ /dev/null
@@ -1,92 +0,0 @@
-<!--$Id: lock_stat.so,v 10.30 2000/12/08 20:43:15 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: lock_stat</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>lock_stat</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-lock_stat(DB_ENV *env,
- DB_LOCK_STAT **statp, void *(*db_malloc)(size_t));
-</pre></h3>
-<h1>Description</h1>
-<p>The lock_stat function
-creates a statistical structure and copies a pointer to it into a
-user-specified memory location.
-<p>Statistical structures are created in allocated memory. If <b>db_malloc</b> is non-NULL, it
-is called to allocate the memory, otherwise, the library function
-<b>malloc</b>(3) is used. The function <b>db_malloc</b> must match
-the calling conventions of the <b>malloc</b>(3) library routine.
-Regardless, the caller is responsible for deallocating the returned
-memory. To deallocate returned memory, free the returned memory
-reference, references inside the returned memory do not need to be
-individually freed.
-<p>The lock region statistics are stored in a structure of type
-DB_LOCK_STAT. The following DB_LOCK_STAT fields will be filled in:
-<p><dl compact>
-<dt>u_int32_t st_lastid;<dd>The last allocated lock ID.
-<dt>u_int32_t st_nmodes;<dd>The number of lock modes.
-<dt>u_int32_t st_maxlocks;<dd>The maximum number of locks possible.
-<dt>u_int32_t st_maxlockers;<dd>The maximum number of lockers possible.
-<dt>u_int32_t st_maxobjects;<dd>The maximum number of objects possible.
-<dt>u_int32_t st_nlocks;<dd>The number of current locks.
-<dt>u_int32_t st_maxnlocks;<dd>The maximum number of locks at any one time.
-<dt>u_int32_t st_nlockers;<dd>The number of current lockers.
-<dt>u_int32_t st_maxnlockers;<dd>The maximum number of lockers at any one time.
-<dt>u_int32_t st_nobjects;<dd>The number of current objects.
-<dt>u_int32_t st_maxnobjects;<dd>The maximum number of objects at any one time.
-<dt>u_int32_t st_nrequests;<dd>The total number of locks requested.
-<dt>u_int32_t st_nreleases;<dd>The total number of locks released.
-<dt>u_int32_t st_nnowaits;<dd>The total number of lock requests that failed because
-<a href="../api_c/lock_vec.html#DB_LOCK_NOWAIT">DB_LOCK_NOWAIT</a> was set.
-<dt>u_int32_t st_nconflicts;<dd>The total number of locks not immediately available due to conflicts.
-<dt>u_int32_t st_ndeadlocks;<dd>The number of deadlocks detected.
-<dt>u_int32_t st_regsize;<dd>The size of the region.
-<dt>u_int32_t st_region_wait;<dd>The number of times that a thread of control was forced to wait before
-obtaining the region lock.
-<dt>u_int32_t st_region_nowait;<dd>The number of times that a thread of control was able to obtain
-the region lock without waiting.
-</dl>
-<p>The lock_stat function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p>The lock_stat function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the lock_stat function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/env_set_lk_conflicts.html">DBENV-&gt;set_lk_conflicts</a>,
-<a href="../api_c/env_set_lk_detect.html">DBENV-&gt;set_lk_detect</a>,
-<a href="../api_c/env_set_lk_max_locks.html">DBENV-&gt;set_lk_max_locks</a>,
-<a href="../api_c/env_set_lk_max_lockers.html">DBENV-&gt;set_lk_max_lockers</a>,
-<a href="../api_c/env_set_lk_max_objects.html">DBENV-&gt;set_lk_max_objects</a>,
-<a href="../api_c/env_set_lk_max.html">DBENV-&gt;set_lk_max</a>,
-<a href="../api_c/lock_detect.html">lock_detect</a>,
-<a href="../api_c/lock_get.html">lock_get</a>,
-<a href="../api_c/lock_id.html">lock_id</a>,
-<a href="../api_c/lock_put.html">lock_put</a>,
-<a href="../api_c/lock_stat.html">lock_stat</a>
-and
-<a href="../api_c/lock_vec.html">lock_vec</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/lock_vec.html b/bdb/docs/api_c/lock_vec.html
deleted file mode 100644
index 56d3fa96a98..00000000000
--- a/bdb/docs/api_c/lock_vec.html
+++ /dev/null
@@ -1,123 +0,0 @@
-<!--$Id: lock_vec.so,v 10.31 2000/12/04 18:05:39 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: lock_vec</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>lock_vec</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-lock_vec(DB_ENV *env, u_int32_t locker, u_int32_t flags,
- DB_LOCKREQ list[], int nlist, DB_LOCKREQ **elistp);
-</pre></h3>
-<h1>Description</h1>
-<p>The lock_vec function atomically obtains and releases one or more locks
-from the lock table. The lock_vec function is intended to support
-acquisition or trading of multiple locks under one lock table semaphore,
-as is needed for lock coupling or in multigranularity locking for lock
-escalation.
-<p>The <b>locker</b> argument specified to lock_vec is an unsigned
-32-bit integer quantity. It represents the entity requesting or releasing
-the lock.
-<p>The <b>flags</b> value must be set to 0 or the following value:
-<p><dl compact>
-<p><dt><a name="DB_LOCK_NOWAIT">DB_LOCK_NOWAIT</a><dd>If a lock cannot be immediately granted because the requested lock
-conflicts with an existing lock, return instead of waiting for the lock
-to become available.
-</dl>
-<p>The <b>list</b> array provided to lock_vec is typedef'd as
-DB_LOCKREQ. A DB_LOCKREQ structure has at least the following fields,
-which must be initialized before calling lock_vec:
-<p><dl compact>
-<p><dt>lockop_t <a name="op">op</a>;<dd>The operation to be performed, which must be set to one of the
-following values:
-<p><dl compact>
-<p><dt><a name="DB_LOCK_GET">DB_LOCK_GET</a><dd>Get a lock, as defined by the values of <b>locker</b>, <b>obj</b>,
-and <b>mode</b>. Upon return from lock_vec, if the
-<b>lock</b> field is non-NULL, a reference to the acquired lock is
-stored there. (This reference is invalidated by any call to
-lock_vec or <a href="../api_c/lock_put.html">lock_put</a> that releases the lock.)
-<p><dt><a name="DB_LOCK_PUT">DB_LOCK_PUT</a><dd>The lock referenced by the contents of the <b>lock</b> field is released.
-<p><dt><a name="DB_LOCK_PUT_ALL">DB_LOCK_PUT_ALL</a><dd>All locks held by the <b>locker</b> are released. (Any locks acquired
-as a part of the current call to lock_vec that appear after the
-DB_LOCK_PUT_ALL entry are not considered for this
-operation).
-<p><dt><a name="DB_LOCK_PUT_OBJ">DB_LOCK_PUT_OBJ</a><dd>All locks held on the object <b>obj</b> are released. The <b>mode</b>
-and <b>locker</b> parameters are ignored. Note that any locks acquired
-as a part of the current call to lock_vec that occur before the
-DB_LOCK_PUT_OBJ will also be released; those acquired afterwards
-will not be released.
-</dl>
-<p><dt>const DBT <a name="obj">obj</a>;<dd>An untyped byte string that specifies the object to be locked or released.
-<p><dt>const lockmode_t <a name="mode">mode</a>;<dd>The lock mode, used as an index into the environment's lock conflict array.
-See <a href="../api_c/env_set_lk_conflicts.html">DBENV-&gt;set_lk_conflicts</a> and <a href="../ref/lock/stdmode.html">Standard Lock Modes</a> for a description of that array.
-<p><dt>DB_LOCK <a name="lock">lock</a>;<dd>A lock reference.
-</dl>
-<p>The <b>nlist</b> argument specifies the number of elements in the
-<b>list</b> array.
-<p>If any of the requested locks cannot be acquired, or any of the locks to
-be released cannot be released, the operations before the failing
-operation are guaranteed to have completed successfully, and
-lock_vec returns a non-zero value. In addition, if <b>elistp</b>
-is not NULL, it is set to point to the DB_LOCKREQ entry that was being
-processed when the error occurred.
-<p>The lock_vec function may
-return
-one of the following values:
-<p><dl compact>
-<p><dt><a name="DB_LOCK_NOTGRANTED">DB_LOCK_NOTGRANTED</a><dd>A lock was requested that could not be immediately granted and the
-<b>flag</b> parameter was set to DB_LOCK_NOWAIT. In this case, if
-non-NULL, <b>elistp</b> identifies the request that was not granted.
-</dl>
-<p>Otherwise, the lock_vec function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p>The lock_vec function may fail and return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>DB_LOCK_DEADLOCK<dd>The operation was selected to resolve a deadlock.
-</dl>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<p><dl compact>
-<p><dt>ENOMEM<dd>The maximum number of locks has been reached.
-</dl>
-<p>The lock_vec function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the lock_vec function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/env_set_lk_conflicts.html">DBENV-&gt;set_lk_conflicts</a>,
-<a href="../api_c/env_set_lk_detect.html">DBENV-&gt;set_lk_detect</a>,
-<a href="../api_c/env_set_lk_max_locks.html">DBENV-&gt;set_lk_max_locks</a>,
-<a href="../api_c/env_set_lk_max_lockers.html">DBENV-&gt;set_lk_max_lockers</a>,
-<a href="../api_c/env_set_lk_max_objects.html">DBENV-&gt;set_lk_max_objects</a>,
-<a href="../api_c/env_set_lk_max.html">DBENV-&gt;set_lk_max</a>,
-<a href="../api_c/lock_detect.html">lock_detect</a>,
-<a href="../api_c/lock_get.html">lock_get</a>,
-<a href="../api_c/lock_id.html">lock_id</a>,
-<a href="../api_c/lock_put.html">lock_put</a>,
-<a href="../api_c/lock_stat.html">lock_stat</a>
-and
-<a href="../api_c/lock_vec.html">lock_vec</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/log_archive.html b/bdb/docs/api_c/log_archive.html
deleted file mode 100644
index 6c9aea26b8d..00000000000
--- a/bdb/docs/api_c/log_archive.html
+++ /dev/null
@@ -1,102 +0,0 @@
-<!--$Id: log_archive.so,v 10.26 2000/05/25 13:47:07 dda Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: log_archive</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>log_archive</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-log_archive(DB_ENV *env, char *(*listp)[],
- u_int32_t flags, void *(*db_malloc)(size_t));
-</pre></h3>
-<h1>Description</h1>
-<p>The log_archive function
-creates a NULL-terminated array of log or database file names and copies
-a pointer to them into the user-specified memory location <b>listp</b>.
-<p>By default, log_archive returns the names of all of the log files
-that are no longer in use (e.g., no longer involved in active transactions),
-and that may safely be archived for catastrophic recovery and then removed
-from the system. If there were no file names to return, the memory location
-referenced by <b>listp</b> will be set to NULL.
-<p>Arrays of log file names are created in allocated memory. If <b>db_malloc</b> is non-NULL, it
-is called to allocate the memory, otherwise, the library function
-<b>malloc</b>(3) is used. The function <b>db_malloc</b> must match
-the calling conventions of the <b>malloc</b>(3) library routine.
-Regardless, the caller is responsible for deallocating the returned
-memory. To deallocate returned memory, free the returned memory
-reference, references inside the returned memory do not need to be
-individually freed.
-<p>The <b>flags</b> value must be set to 0 or by bitwise inclusively <b>OR</b>'ing together one or more
-of the following values.
-<p><dl compact>
-<p><dt><a name="DB_ARCH_ABS">DB_ARCH_ABS</a><dd>All pathnames are returned as absolute pathnames,
-instead of relative to the database home directory.
-<p><dt><a name="DB_ARCH_DATA">DB_ARCH_DATA</a><dd>Return the database files that need to be archived in order to recover
-the database from catastrophic failure. If any of the database files
-have not been accessed during the lifetime of the current log files,
-log_archive will not include them in this list. It is also
-possible that some of the files referenced in the log have since been
-deleted from the system.
-<p><dt><a name="DB_ARCH_LOG">DB_ARCH_LOG</a><dd>Return all the log file names regardless of whether or not they are in
-use.
-</dl>
-<p>The DB_ARCH_DATA and DB_ARCH_LOG flags are mutually
-exclusive.
-<p>See the <a href="../utility/db_archive.html">db_archive</a> manual page for more information on database
-archival procedures.
-<p>The log_archive function is the underlying function used by the <a href="../utility/db_archive.html">db_archive</a> utility.
-See the <a href="../utility/db_archive.html">db_archive</a> utility source code for an example of using log_archive
-in a IEEE/ANSI Std 1003.1 (POSIX) environment.
-<p>The log_archive function returns a non-zero error value on failure and 0 on success.
-<h1>Bugs</h1>
-<p>In a threaded application (i.e., one where the environment was created
-with the DB_THREAD flag specified), calling log_archive with the
-DB_ARCH_DATA flag will fail, returning EINVAL. To work around this
-problem, re-open the log explicitly without specifying DB_THREAD. This
-restriction is expected to be removed in a future version of Berkeley DB.
-<h1>Errors</h1>
-<p>The log_archive function may fail and return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>The log was corrupted.
-</dl>
-<p>The log_archive function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the log_archive function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/env_set_lg_bsize.html">DBENV-&gt;set_lg_bsize</a>,
-<a href="../api_c/env_set_lg_max.html">DBENV-&gt;set_lg_max</a>,
-<a href="../api_c/log_archive.html">log_archive</a>,
-<a href="../api_c/log_compare.html">log_compare</a>,
-<a href="../api_c/log_file.html">log_file</a>,
-<a href="../api_c/log_flush.html">log_flush</a>,
-<a href="../api_c/log_get.html">log_get</a>,
-<a href="../api_c/log_put.html">log_put</a>,
-<a href="../api_c/log_register.html">log_register</a>,
-<a href="../api_c/log_stat.html">log_stat</a>
-and
-<a href="../api_c/log_unregister.html">log_unregister</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/log_compare.html b/bdb/docs/api_c/log_compare.html
deleted file mode 100644
index c6e7743beb1..00000000000
--- a/bdb/docs/api_c/log_compare.html
+++ /dev/null
@@ -1,51 +0,0 @@
-<!--$Id: log_compare.so,v 10.12 1999/12/20 08:52:30 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: log_compare</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>log_compare</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-log_compare(const DB_LSN *lsn0, const DB_LSN *lsn1);
-</pre></h3>
-<h1>Description</h1>
-<p>The log_compare function allows the caller to compare two
-DB_LSN structures,
-returning 0 if they are equal, 1 if <b>lsn0</b> is greater than
-<b>lsn1</b>, and -1 if <b>lsn0</b> is less than <b>lsn1</b>.
-<h1>See Also</h1>
-<a href="../api_c/env_set_lg_bsize.html">DBENV-&gt;set_lg_bsize</a>,
-<a href="../api_c/env_set_lg_max.html">DBENV-&gt;set_lg_max</a>,
-<a href="../api_c/log_archive.html">log_archive</a>,
-<a href="../api_c/log_compare.html">log_compare</a>,
-<a href="../api_c/log_file.html">log_file</a>,
-<a href="../api_c/log_flush.html">log_flush</a>,
-<a href="../api_c/log_get.html">log_get</a>,
-<a href="../api_c/log_put.html">log_put</a>,
-<a href="../api_c/log_register.html">log_register</a>,
-<a href="../api_c/log_stat.html">log_stat</a>
-and
-<a href="../api_c/log_unregister.html">log_unregister</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/log_file.html b/bdb/docs/api_c/log_file.html
deleted file mode 100644
index 434380cccb0..00000000000
--- a/bdb/docs/api_c/log_file.html
+++ /dev/null
@@ -1,76 +0,0 @@
-<!--$Id: log_file.so,v 10.18 2000/03/01 21:41:29 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: log_file</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>log_file</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-log_file(DB_ENV *env,
- const DB_LSN *lsn, char *namep, size_t len);
-</pre></h3>
-<h1>Description</h1>
-<p>The log_file function maps
-DB_LSN structures
-to file names,
-copying the name of the file containing the record named by <b>lsn</b>
-into the memory location referenced by <b>namep</b>.
-<p>The <b>len</b> argument is the length of the <b>namep</b> buffer in bytes.
-If <b>namep</b> is too short to hold the file name, log_file will
-return ENOMEM.
-(Log file names are normally quite short, on the order of 10 characters.)
-<p>This mapping of
-DB_LSN structures
-to files is needed for database administration. For example, a
-transaction manager typically records the earliest
-DB_LSN
-needed for restart, and the database administrator may want to archive
-log files to tape when they contain only
-DB_LSN
-entries before the earliest one needed for restart.
-<p>The log_file function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p>The log_file function may fail and return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>ENOMEM<dd>The supplied buffer was too small to hold the log file name.
-</dl>
-<p>The log_file function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the log_file function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/env_set_lg_bsize.html">DBENV-&gt;set_lg_bsize</a>,
-<a href="../api_c/env_set_lg_max.html">DBENV-&gt;set_lg_max</a>,
-<a href="../api_c/log_archive.html">log_archive</a>,
-<a href="../api_c/log_compare.html">log_compare</a>,
-<a href="../api_c/log_file.html">log_file</a>,
-<a href="../api_c/log_flush.html">log_flush</a>,
-<a href="../api_c/log_get.html">log_get</a>,
-<a href="../api_c/log_put.html">log_put</a>,
-<a href="../api_c/log_register.html">log_register</a>,
-<a href="../api_c/log_stat.html">log_stat</a>
-and
-<a href="../api_c/log_unregister.html">log_unregister</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/log_flush.html b/bdb/docs/api_c/log_flush.html
deleted file mode 100644
index 1315fc10670..00000000000
--- a/bdb/docs/api_c/log_flush.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!--$Id: log_flush.so,v 10.18 2000/03/01 21:41:30 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: log_flush</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>log_flush</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-log_flush(DB_ENV *env, const DB_LSN *lsn);
-</pre></h3>
-<h1>Description</h1>
-<p>The log_flush function guarantees that all log records whose
-DB_LSN values
-are less than or equal to the <b>lsn</b> argument have been
-written to disk. If <b>lsn</b> is NULL, all records in the
-log are flushed.
-<p>The log_flush function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p>The log_flush function may fail and return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<p>The log_flush function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the log_flush function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/env_set_lg_bsize.html">DBENV-&gt;set_lg_bsize</a>,
-<a href="../api_c/env_set_lg_max.html">DBENV-&gt;set_lg_max</a>,
-<a href="../api_c/log_archive.html">log_archive</a>,
-<a href="../api_c/log_compare.html">log_compare</a>,
-<a href="../api_c/log_file.html">log_file</a>,
-<a href="../api_c/log_flush.html">log_flush</a>,
-<a href="../api_c/log_get.html">log_get</a>,
-<a href="../api_c/log_put.html">log_put</a>,
-<a href="../api_c/log_register.html">log_register</a>,
-<a href="../api_c/log_stat.html">log_stat</a>
-and
-<a href="../api_c/log_unregister.html">log_unregister</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/log_get.html b/bdb/docs/api_c/log_get.html
deleted file mode 100644
index 05761e1ea30..00000000000
--- a/bdb/docs/api_c/log_get.html
+++ /dev/null
@@ -1,114 +0,0 @@
-<!--$Id: log_get.so,v 10.22 2000/03/17 01:53:59 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: log_get</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>log_get</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-log_get(DB_ENV *env, DB_LSN *lsn, DBT *data, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The log_get function implements a cursor inside of the log,
-retrieving records from the log according to the <b>lsn</b> and
-<b>flags</b> arguments.
-<p>The data field of the <b>data</b> structure is set to the record
-retrieved and the size field indicates the number of bytes in the record.
-See <a href="../api_c/dbt.html">DBT</a> for a description of other fields in the <b>data</b>
-structure. When multiple threads are using the returned log handle
-concurrently, one of the <a href="../api_c/dbt.html#DB_DBT_MALLOC">DB_DBT_MALLOC</a>, <a href="../api_c/dbt.html#DB_DBT_REALLOC">DB_DBT_REALLOC</a> or
-<a href="../api_c/dbt.html#DB_DBT_USERMEM">DB_DBT_USERMEM</a> flags must be specified for any <a href="../api_c/dbt.html">DBT</a> used
-for data retrieval.
-<p>The <b>flags</b> argument must be set to exactly one of the following values:
-<p><dl compact>
-<p><dt><a name="DB_CHECKPOINT">DB_CHECKPOINT</a><dd>The last record written with the DB_CHECKPOINT flag specified to the
-<a href="../api_c/log_put.html">log_put</a> function is returned in the <b>data</b> argument. The
-<b>lsn</b> argument is overwritten with the <a href="../api_c/db_lsn.html">DB_LSN</a> of the record
-returned. If no record has been previously written with the DB_CHECKPOINT
-flag specified, the first record in the log is returned.
-<p>If the log is empty, the log_get function will return <a href="../ref/program/errorret.html#DB_NOTFOUND">DB_NOTFOUND</a>.
-<p><dt><a name="DB_FIRST">DB_FIRST</a><dd>The first record from any of the log files found in the log directory
-is returned in the <b>data</b> argument.
-The <b>lsn</b> argument is overwritten with the <a href="../api_c/db_lsn.html">DB_LSN</a> of the
-record returned.
-<p>If the log is empty, the log_get function will return <a href="../ref/program/errorret.html#DB_NOTFOUND">DB_NOTFOUND</a>.
-<p><dt><a name="DB_LAST">DB_LAST</a><dd>The last record in the log is returned in the <b>data</b> argument.
-The <b>lsn</b> argument is overwritten with the <a href="../api_c/db_lsn.html">DB_LSN</a> of the
-record returned.
-<p>If the log is empty, the log_get function will return <a href="../ref/program/errorret.html#DB_NOTFOUND">DB_NOTFOUND</a>.
-<p><dt><a name="DB_NEXT">DB_NEXT</a><dd>The current log position is advanced to the next record in the log and that
-record is returned in the <b>data</b> argument.
-The <b>lsn</b> argument is overwritten with the <a href="../api_c/db_lsn.html">DB_LSN</a> of the
-record returned.
-<p>If the pointer has not been initialized via DB_FIRST, DB_LAST, DB_SET,
-DB_NEXT, or DB_PREV, log_get will return the first record in the log.
-If the last log record has already been returned or the log is empty, the
-log_get function will return <a href="../ref/program/errorret.html#DB_NOTFOUND">DB_NOTFOUND</a>.
-<p>If the log was opened with the DB_THREAD flag set, calls to
-log_get with the DB_NEXT flag set will return EINVAL.
-<p><dt><a name="DB_PREV">DB_PREV</a><dd>The current log position is moved to the previous record in the log and that
-record is returned in the <b>data</b> argument.
-The <b>lsn</b> argument is overwritten with the <a href="../api_c/db_lsn.html">DB_LSN</a> of the
-record returned.
-<p>If the pointer has not been initialized via DB_FIRST, DB_LAST, DB_SET,
-DB_NEXT, or DB_PREV,
-log_get will return the last record in the log.
-If the first log record has already been returned or the log is empty, the
-log_get function will return <a href="../ref/program/errorret.html#DB_NOTFOUND">DB_NOTFOUND</a>.
-<p>If the log was opened with the DB_THREAD flag set, calls to
-log_get with the DB_PREV flag set will return EINVAL.
-<p><dt><a name="DB_CURRENT">DB_CURRENT</a><dd>Return the log record currently referenced by the log.
-<p>If the log pointer has not been initialized via DB_FIRST, DB_LAST, DB_SET,
-DB_NEXT, or DB_PREV, or if the log was opened with the DB_THREAD flag set,
-log_get will return EINVAL.
-<p><dt><a name="DB_SET">DB_SET</a><dd>Retrieve the record specified by the <b>lsn</b> argument. If the
-specified <a href="../api_c/db_lsn.html">DB_LSN</a> is invalid (e.g., does not appear in the log)
-log_get will return EINVAL.
-</dl>
-<p>Otherwise, the log_get function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p>The log_get function may fail and return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>The DB_FIRST flag was specified and no log files were found.
-</dl>
-<p>The log_get function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the log_get function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/env_set_lg_bsize.html">DBENV-&gt;set_lg_bsize</a>,
-<a href="../api_c/env_set_lg_max.html">DBENV-&gt;set_lg_max</a>,
-<a href="../api_c/log_archive.html">log_archive</a>,
-<a href="../api_c/log_compare.html">log_compare</a>,
-<a href="../api_c/log_file.html">log_file</a>,
-<a href="../api_c/log_flush.html">log_flush</a>,
-<a href="../api_c/log_get.html">log_get</a>,
-<a href="../api_c/log_put.html">log_put</a>,
-<a href="../api_c/log_register.html">log_register</a>,
-<a href="../api_c/log_stat.html">log_stat</a>
-and
-<a href="../api_c/log_unregister.html">log_unregister</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/log_put.html b/bdb/docs/api_c/log_put.html
deleted file mode 100644
index 9455296986e..00000000000
--- a/bdb/docs/api_c/log_put.html
+++ /dev/null
@@ -1,81 +0,0 @@
-<!--$Id: log_put.so,v 10.21 2000/03/17 01:53:59 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: log_put</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>log_put</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-log_put(DB_ENV *env,
- DB_LSN *lsn, const DBT *data, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The log_put function appends records to the log. The <a href="../api_c/db_lsn.html">DB_LSN</a> of
-the put record is returned in the <b>lsn</b> argument. The <b>flags</b>
-argument may be set to one of the following values:
-<p><dl compact>
-<p><dt><a name="DB_CHECKPOINT">DB_CHECKPOINT</a><dd>The log should write a checkpoint record, recording any information
-necessary to make the log structures recoverable after a crash.
-<p><dt><a name="DB_CURLSN">DB_CURLSN</a><dd>The <a href="../api_c/db_lsn.html">DB_LSN</a> of the next record to be put is returned in the
-<b>lsn</b> argument.
-<p><dt><a name="DB_FLUSH">DB_FLUSH</a><dd>The log is forced to disk after this record is written, guaranteeing
-that all records with <a href="../api_c/db_lsn.html">DB_LSN</a> values less than or equal to the
-one being put are on disk before this function returns (this function
-is most often used for a transaction commit, see <a href="../api_c/txn_commit.html">txn_commit</a> for
-more information).
-<p>The caller is responsible for providing any necessary structure to
-<b>data</b>. (For example, in a write-ahead logging protocol, the
-application must understand what part of <b>data</b> is an operation
-code, what part is redo information, and what part is undo information.
-In addition, most transaction managers will store in <b>data</b> the
-<a href="../api_c/db_lsn.html">DB_LSN</a> of the previous log record for the same transaction, to
-support chaining back through the transaction's log records during
-undo.)
-</dl>
-<p>The log_put function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p>The <a href="../api_c/log_flush.html">log_flush</a> function may fail and return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>The record to be logged is larger than the maximum log record.
-</dl>
-<p>The log_put function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the log_put function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/env_set_lg_bsize.html">DBENV-&gt;set_lg_bsize</a>,
-<a href="../api_c/env_set_lg_max.html">DBENV-&gt;set_lg_max</a>,
-<a href="../api_c/log_archive.html">log_archive</a>,
-<a href="../api_c/log_compare.html">log_compare</a>,
-<a href="../api_c/log_file.html">log_file</a>,
-<a href="../api_c/log_flush.html">log_flush</a>,
-<a href="../api_c/log_get.html">log_get</a>,
-<a href="../api_c/log_put.html">log_put</a>,
-<a href="../api_c/log_register.html">log_register</a>,
-<a href="../api_c/log_stat.html">log_stat</a>
-and
-<a href="../api_c/log_unregister.html">log_unregister</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/log_register.html b/bdb/docs/api_c/log_register.html
deleted file mode 100644
index e993feabed2..00000000000
--- a/bdb/docs/api_c/log_register.html
+++ /dev/null
@@ -1,64 +0,0 @@
-<!--$Id: log_register.so,v 10.27 2000/05/09 14:46:45 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: log_register</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>log_register</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-log_register(DB_ENV *env, DB *dbp, const char *name);
-</pre></h3>
-<h1>Description</h1>
-<p>The log_register function registers a file name with the specified Berkeley DB
-environment's log manager. The log manager records all file name mappings
-at each checkpoint so that a recovery process can identify the file to
-which a record in the log refers.
-<p>The <b>dbp</b> argument should be a reference to the DB structure being
-registered. The <b>name</b> argument should be a file name appropriate
-for opening the file in the environment, during recovery.
-<p>The log_register function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p>The log_register function may fail and return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<p>The log_register function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the log_register function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/env_set_lg_bsize.html">DBENV-&gt;set_lg_bsize</a>,
-<a href="../api_c/env_set_lg_max.html">DBENV-&gt;set_lg_max</a>,
-<a href="../api_c/log_archive.html">log_archive</a>,
-<a href="../api_c/log_compare.html">log_compare</a>,
-<a href="../api_c/log_file.html">log_file</a>,
-<a href="../api_c/log_flush.html">log_flush</a>,
-<a href="../api_c/log_get.html">log_get</a>,
-<a href="../api_c/log_put.html">log_put</a>,
-<a href="../api_c/log_register.html">log_register</a>,
-<a href="../api_c/log_stat.html">log_stat</a>
-and
-<a href="../api_c/log_unregister.html">log_unregister</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/log_stat.html b/bdb/docs/api_c/log_stat.html
deleted file mode 100644
index 819c603d318..00000000000
--- a/bdb/docs/api_c/log_stat.html
+++ /dev/null
@@ -1,90 +0,0 @@
-<!--$Id: log_stat.so,v 10.23 2000/05/25 13:47:08 dda Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: log_stat</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>log_stat</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-log_stat(DB_ENV *env,
- DB_LOG_STAT **spp, void *(*db_malloc)(size_t));
-</pre></h3>
-<h1>Description</h1>
-<p>The log_stat function
-creates a statistical structure and copies a pointer to it into a
-user-specified memory location.
-<p>Statistical structures are created in allocated memory. If <b>db_malloc</b> is non-NULL, it
-is called to allocate the memory, otherwise, the library function
-<b>malloc</b>(3) is used. The function <b>db_malloc</b> must match
-the calling conventions of the <b>malloc</b>(3) library routine.
-Regardless, the caller is responsible for deallocating the returned
-memory. To deallocate returned memory, free the returned memory
-reference, references inside the returned memory do not need to be
-individually freed.
-<p>The log region statistics are stored in a structure of type DB_LOG_STAT.
-The following DB_LOG_STAT fields will be filled in:
-<p><dl compact>
-<dt>u_int32_t st_magic;<dd>The magic number that identifies a file as a log file.
-<dt>u_int32_t st_version;<dd>The version of the log file type.
-<dt>u_int32_t st_regsize;<dd>The size of the region.
-<dt>int st_mode;<dd>The mode of any created log files.
-<dt>u_int32_t st_lg_bsize;<dd>The in-memory log record cache size.
-<dt>u_int32_t st_lg_max;<dd>The maximum size of any individual file comprising the log.
-<dt>u_int32_t st_w_mbytes;<dd>The number of megabytes written to this log.
-<dt>u_int32_t st_w_bytes;<dd>The number of bytes over and above <b>st_w_mbytes</b> written to this log.
-<dt>u_int32_t st_wc_mbytes;<dd>The number of megabytes written to this log since the last checkpoint.
-<dt>u_int32_t st_wc_bytes;<dd>The number of bytes over and above <b>st_wc_mbytes</b> written to this log
-since the last checkpoint.
-<dt>u_int32_t st_wcount;<dd>The number of times the log has been written to disk.
-<dt>u_int32_t st_wcount_fill;<dd>The number of times the log has been written to disk because the
-in-memory log record cache filled up.
-<dt>u_int32_t st_scount;<dd>The number of times the log has been flushed to disk.
-<dt>u_int32_t st_cur_file;<dd>The current log file number.
-<dt>u_int32_t st_cur_offset;<dd>The byte offset in the current log file.
-<dt>u_int32_t st_region_wait;<dd>The number of times that a thread of control was forced to wait before
-obtaining the region lock.
-<dt>u_int32_t st_region_nowait;<dd>The number of times that a thread of control was able to obtain
-the region lock without waiting.
-</dl>
-<p>The log_stat function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p>The log_stat function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the log_stat function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/env_set_lg_bsize.html">DBENV-&gt;set_lg_bsize</a>,
-<a href="../api_c/env_set_lg_max.html">DBENV-&gt;set_lg_max</a>,
-<a href="../api_c/log_archive.html">log_archive</a>,
-<a href="../api_c/log_compare.html">log_compare</a>,
-<a href="../api_c/log_file.html">log_file</a>,
-<a href="../api_c/log_flush.html">log_flush</a>,
-<a href="../api_c/log_get.html">log_get</a>,
-<a href="../api_c/log_put.html">log_put</a>,
-<a href="../api_c/log_register.html">log_register</a>,
-<a href="../api_c/log_stat.html">log_stat</a>
-and
-<a href="../api_c/log_unregister.html">log_unregister</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/log_unregister.html b/bdb/docs/api_c/log_unregister.html
deleted file mode 100644
index cfc1e6f2e5d..00000000000
--- a/bdb/docs/api_c/log_unregister.html
+++ /dev/null
@@ -1,59 +0,0 @@
-<!--$Id: log_unregister.so,v 10.21 2000/05/03 22:39:10 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: log_unregister</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>log_unregister</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-log_unregister(DB_ENV *env, DB *dbp);
-</pre></h3>
-<h1>Description</h1>
-<p>The log_unregister function function unregisters the file represented by
-the <b>dbp</b> parameter from the Berkeley DB environment's log manager.
-<p>The log_unregister function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p>The log_unregister function may fail and return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<p>The log_unregister function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the log_unregister function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/env_set_lg_bsize.html">DBENV-&gt;set_lg_bsize</a>,
-<a href="../api_c/env_set_lg_max.html">DBENV-&gt;set_lg_max</a>,
-<a href="../api_c/log_archive.html">log_archive</a>,
-<a href="../api_c/log_compare.html">log_compare</a>,
-<a href="../api_c/log_file.html">log_file</a>,
-<a href="../api_c/log_flush.html">log_flush</a>,
-<a href="../api_c/log_get.html">log_get</a>,
-<a href="../api_c/log_put.html">log_put</a>,
-<a href="../api_c/log_register.html">log_register</a>,
-<a href="../api_c/log_stat.html">log_stat</a>
-and
-<a href="../api_c/log_unregister.html">log_unregister</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/memp_fclose.html b/bdb/docs/api_c/memp_fclose.html
deleted file mode 100644
index ae8ce3c5647..00000000000
--- a/bdb/docs/api_c/memp_fclose.html
+++ /dev/null
@@ -1,61 +0,0 @@
-<!--$Id: memp_fclose.so,v 10.20 2000/06/13 13:55:49 sue Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: memp_fclose</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>memp_fclose</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-memp_fclose(DB_MPOOLFILE *mpf);
-</pre></h3>
-<h1>Description</h1>
-<p>The memp_fclose function closes the source file indicated by the
-DB_MPOOLFILE structure. Calling memp_fclose does not imply
-a call to <a href="../api_c/memp_fsync.html">memp_fsync</a>, i.e. no pages are written to the source
-file as as a result of calling memp_fclose.
-<p>In addition, if the <b>file</b> argument to <a href="../api_c/memp_fopen.html">memp_fopen</a> was NULL,
-any underlying files created for this DB_MPOOLFILE will be removed.
-<p>Once memp_fclose has been called, regardless of its return, the
-DB_MPOOLFILE handle may not be accessed again.
-<p>The memp_fclose function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p>The memp_fclose function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the memp_fclose function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/env_set_mp_mmapsize.html">DBENV-&gt;set_mp_mmapsize</a>,
-<a href="../api_c/memp_fclose.html">memp_fclose</a>,
-<a href="../api_c/memp_fget.html">memp_fget</a>,
-<a href="../api_c/memp_fopen.html">memp_fopen</a>,
-<a href="../api_c/memp_fput.html">memp_fput</a>,
-<a href="../api_c/memp_fset.html">memp_fset</a>,
-<a href="../api_c/memp_fsync.html">memp_fsync</a>,
-<a href="../api_c/memp_register.html">memp_register</a>,
-<a href="../api_c/memp_stat.html">memp_stat</a>,
-<a href="../api_c/memp_sync.html">memp_sync</a>
-and
-<a href="../api_c/memp_trickle.html">memp_trickle</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/memp_fget.html b/bdb/docs/api_c/memp_fget.html
deleted file mode 100644
index 84b39e53ee1..00000000000
--- a/bdb/docs/api_c/memp_fget.html
+++ /dev/null
@@ -1,98 +0,0 @@
-<!--$Id: memp_fget.so,v 10.23 2000/12/04 18:05:39 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: memp_fget</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>memp_fget</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-memp_fget(DB_MPOOLFILE *mpf,
- db_pgno_t *pgnoaddr, u_int32_t flags, void **pagep);
-</pre></h3>
-<h1>Description</h1>
-<p>The memp_fget function copies a pointer to the page with the page
-number specified by <b>pgnoaddr</b>, from the source file in the
-DB_MPOOLFILE, into the memory location referenced by <b>pagep</b>.
-If the page does not exist or cannot be retrieved, memp_fget will
-fail.
-<p><b>Page numbers begin at 0, i.e., the first page in the file is page number
-0, not page number 1.</b>
-<p>The returned page is <b>size_t</b> type aligned.
-<p>The <b>flags</b> value must be set to 0 or by bitwise inclusively <b>OR</b>'ing together one or more
-of the following values.
-<p><dl compact>
-<p><dt><a name="DB_MPOOL_CREATE">DB_MPOOL_CREATE</a><dd>If the specified page does not exist, create it. In this case, the
-<a href="memp_register.html#pgin">pgin</a> function, if specified, is
-called.
-<p><dt><a name="DB_MPOOL_LAST">DB_MPOOL_LAST</a><dd>Return the last page of the source file and copy its page number
-to the location referenced by <b>pgnoaddr</b>.
-<p><dt><a name="DB_MPOOL_NEW">DB_MPOOL_NEW</a><dd>Create a new page in the file and copy its page number to the location
-referenced by <b>pgnoaddr</b>. In this case, the
-<a href="memp_register.html#pgin">pgin</a> function, if specified, is
-<b>not</b> called.
-</dl>
-<p>The DB_MPOOL_CREATE, DB_MPOOL_LAST and
-DB_MPOOL_NEW flags are mutually exclusive.
-<p>Created pages have all their bytes set to 0, unless otherwise specified
-when the file was opened.
-<p>All pages returned by memp_fget will be retained (i.e.
-<i>pinned</i>), in the pool until a subsequent call to
-<a href="../api_c/memp_fput.html">memp_fput</a>.
-<p>The memp_fget function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p>The memp_fget function may fail and return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EAGAIN<dd>The page reference count has overflowed. (This should never happen unless
-there's a bug in the application.)
-</dl>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>The DB_MPOOL_NEW flag was set and the source file was not opened for writing.
-<p>More than one of DB_MPOOL_CREATE, DB_MPOOL_LAST and DB_MPOOL_NEW was set.
-</dl>
-<p><dl compact>
-<p><dt>EIO<dd>The requested page does not exist and DB_MPOOL_CREATE was not set.
-</dl>
-<p><dl compact>
-<p><dt>ENOMEM<dd>The cache is full and no more pages will fit in the pool.
-</dl>
-<p>The memp_fget function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the memp_fget function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/env_set_mp_mmapsize.html">DBENV-&gt;set_mp_mmapsize</a>,
-<a href="../api_c/memp_fclose.html">memp_fclose</a>,
-<a href="../api_c/memp_fget.html">memp_fget</a>,
-<a href="../api_c/memp_fopen.html">memp_fopen</a>,
-<a href="../api_c/memp_fput.html">memp_fput</a>,
-<a href="../api_c/memp_fset.html">memp_fset</a>,
-<a href="../api_c/memp_fsync.html">memp_fsync</a>,
-<a href="../api_c/memp_register.html">memp_register</a>,
-<a href="../api_c/memp_stat.html">memp_stat</a>,
-<a href="../api_c/memp_sync.html">memp_sync</a>
-and
-<a href="../api_c/memp_trickle.html">memp_trickle</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/memp_fopen.html b/bdb/docs/api_c/memp_fopen.html
deleted file mode 100644
index ea0250246cb..00000000000
--- a/bdb/docs/api_c/memp_fopen.html
+++ /dev/null
@@ -1,157 +0,0 @@
-<!--$Id: memp_fopen.so,v 10.28 2000/12/18 21:05:12 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: memp_fopen</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>memp_fopen</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-memp_fopen(DB_ENV *env, char *file, u_int32_t flags,
- int mode, size_t pagesize, DB_MPOOL_FINFO *finfop,
- DB_MPOOLFILE **mpf);
-</pre></h3>
-<h1>Description</h1>
-<p>The memp_fopen function opens a file in the pool specified by the
-DB_ENV <b>env</b>, copying the DB_MPOOLFILE pointer
-representing it into the memory location referenced by <b>mpf</b>.
-<p>The <b>file</b> argument is the name of the file to be opened.
-If <b>file</b> is NULL, a private file is created that cannot be
-shared with any other process (although it may be shared with
-other threads).
-<p>The <b>flags</b> and <b>mode</b> arguments specify how files will be opened
-and/or created if they do not already exist.
-<p>The <b>flags</b> value must be set to 0 or by bitwise inclusively <b>OR</b>'ing together one or more
-of the following values.
-<p><dl compact>
-<p><dt><a name="DB_CREATE">DB_CREATE</a><dd>Create any underlying files, as necessary. If the files do not already
-exist and the DB_CREATE flag is not specified, the call will fail.
-<p><dt><a name="DB_NOMMAP">DB_NOMMAP</a><dd>Always copy this file into the local cache instead of potentially mapping
-it into process memory (see the description of the
-<a href="../api_c/env_set_mp_mmapsize.html">DBENV-&gt;set_mp_mmapsize</a> function for further information).
-<p><dt><a name="DB_RDONLY">DB_RDONLY</a><dd>Open any underlying files for reading only. Any attempt to write the file
-using the pool functions will fail, regardless of the actual permissions
-of the file.
-</dl>
-<p>On UNIX systems, or in IEEE/ANSI Std 1003.1 (POSIX) environments, all files created by function memp_fopen
-are created with mode <b>mode</b> (as described in <b>chmod</b>(2)) and
-modified by the process' umask value at the time of creation (see
-<b>umask</b>(2)). The group ownership of created files is based on
-the system and directory defaults, and is not further specified by Berkeley DB.
-If <b>mode</b> is 0, files are created readable and writeable by both
-owner and group. On Windows systems, the mode argument is ignored.
-<p>The <b>pagesize</b> argument is the size, in bytes, of the unit of transfer
-between the application and the pool, although it is not necessarily the
-unit of transfer between the pool and the source file.
-<p>Files opened in the pool may be further configured based on the
-<b>finfop</b> argument to memp_fopen (which is a pointer to a
-structure of type DB_MPOOL_FINFO). No references to the <b>finfop</b>
-structure are maintained by Berkeley DB, so it may be discarded when the
-memp_fopen function returns. In order to ensure compatibility
-with future releases of Berkeley DB, all fields of the DB_MPOOL_FINFO structure
-that are not explicitly set should be initialized to 0 before the first
-time the structure is used. Do this by declaring the structure external
-or static, or by calling the C library routine <b>bzero</b>(3) or
-<b>memset</b>(3).
-<p>The fields of the DB_MPOOL_FINFO structure used by memp_fopen are
-described below. If <b>finfop</b> is NULL or any of its fields are
-set to their default value, defaults appropriate for the system are used.
-<p><dl compact>
-<p><dt>int <a name="ftype">ftype</a>;<dd>The <b>ftype</b> field should be the same as a <b>ftype</b> argument
-previously specified to the <a href="../api_c/memp_register.html">memp_register</a> function, unless no
-input or output processing of the file's pages are necessary, in which
-case it should be 0. (See the description of the <a href="../api_c/memp_register.html">memp_register</a>
-function for more information.)
-<p><dt>DBT *<a name="pgcookie">pgcookie</a>;<dd>The <b>pgcookie</b> field contains the byte string that is passed to the
-<b>pgin</b> and <b>pgout</b> functions for this file, if any. If no
-<b>pgin</b> or <b>pgout</b> functions are specified, the
-<b>pgcookie</b> field should be NULL. (See the description of the
-<a href="../api_c/memp_register.html">memp_register</a> function for more information.)
-<p><dt>u_int8_t *<a name="fileid">fileid</a>;<dd>The <b>fileid</b> field is a unique identifier for the file. If the
-<b>fileid</b> field is non-NULL, it must reference a DB_FILE_ID_LEN
-length array of bytes that will be used to uniquely identify the file.
-<p>The mpool functions must be able to uniquely identify files in order that
-multiple processes wanting to share a file will correctly identify it in
-the pool.
-<p>On most UNIX/POSIX systems, the <b>fileid</b> field will not need to be
-set and the mpool functions will simply use the file's device and inode
-numbers for this purpose. On Windows systems, the mpool functions use
-the values returned by GetFileInformationByHandle() by default -- these
-values are known to be constant between processes and over reboot in the
-case of NTFS (where they are the NTFS MFT indexes).
-<p>On other filesystems, (e.g., FAT or NFS) these default values are not
-necessarily unique between processes or across system reboots.
-<b>Applications wanting to maintain a shared memory buffer pool
-between processes or across system reboots, where the pool contains pages
-from files stored on such filesystems, must specify a unique file
-identifier to the memp_fopen call and each process opening or
-registering the file must provide the same unique identifier.</b>
-<p>This should not be necessary for most applications. Specifically, it is
-not necessary if the memory pool is not shared between processes and is
-re-instantiated after each system reboot, or the application is using the
-Berkeley DB access methods instead of calling the pool functions explicitly, or
-the files in the memory pool are stored on filesystems where the default
-values as described above are invariant between process and across system
-reboots.
-<p><dt>int32_t <a name="lsn_offset">lsn_offset</a>;<dd>The <b>lsn_offset</b> field is the zero-based byte offset in the page of
-the page's log sequence number (LSN), or -1 if no LSN offset is specified.
-(See the description of the <a href="../api_c/memp_sync.html">memp_sync</a> function for more
-information.)
-<p><dt>u_int32_t <a name="clear_len">clear_len</a>;<dd>The <b>clear_len</b> field is the number of initial bytes in a page
-that should be set to zero when the page is created as a result of the
-DB_MPOOL_CREATE or DB_MPOOL_NEW flags being specified to <a href="../api_c/memp_fget.html">memp_fget</a>.
-If <b>finfop</b> is NULL or <b>clear_len</b> is 0, the entire page is
-cleared.
-</dl>
-<p>The memp_fopen function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p>The memp_fopen function may fail and return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>The file has already been entered into the pool, and the <b>pagesize</b>
-value is not the same as when the file was entered into the pool, or the
-length of the file is not zero or a multiple of the <b>pagesize</b>.
-<p>The DB_RDONLY flag was specified for an in-memory pool.
-</dl>
-<p><dl compact>
-<p><dt>ENOMEM<dd>The maximum number of open files has been reached.
-</dl>
-<p>The memp_fopen function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the memp_fopen function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/env_set_mp_mmapsize.html">DBENV-&gt;set_mp_mmapsize</a>,
-<a href="../api_c/memp_fclose.html">memp_fclose</a>,
-<a href="../api_c/memp_fget.html">memp_fget</a>,
-<a href="../api_c/memp_fopen.html">memp_fopen</a>,
-<a href="../api_c/memp_fput.html">memp_fput</a>,
-<a href="../api_c/memp_fset.html">memp_fset</a>,
-<a href="../api_c/memp_fsync.html">memp_fsync</a>,
-<a href="../api_c/memp_register.html">memp_register</a>,
-<a href="../api_c/memp_stat.html">memp_stat</a>,
-<a href="../api_c/memp_sync.html">memp_sync</a>
-and
-<a href="../api_c/memp_trickle.html">memp_trickle</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/memp_fput.html b/bdb/docs/api_c/memp_fput.html
deleted file mode 100644
index ce382b4d034..00000000000
--- a/bdb/docs/api_c/memp_fput.html
+++ /dev/null
@@ -1,79 +0,0 @@
-<!--$Id: memp_fput.so,v 10.18 2000/03/01 21:41:30 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: memp_fput</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>memp_fput</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-memp_fput(DB_MPOOLFILE *mpf, void *pgaddr, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The memp_fput function indicates that the page referenced by
-<b>pgaddr</b> can be evicted from the pool. The <b>pgaddr</b>
-argument must be an address previously returned by <a href="../api_c/memp_fget.html">memp_fget</a>.
-<p>The <b>flags</b> value must be set to 0 or by bitwise inclusively <b>OR</b>'ing together one or more
-of the following values.
-<p><dl compact>
-<p><dt><a name="DB_MPOOL_CLEAN">DB_MPOOL_CLEAN</a><dd>Clear any previously set modification information (i.e., don't bother
-writing the page back to the source file).
-<p><dt><a name="DB_MPOOL_DIRTY">DB_MPOOL_DIRTY</a><dd>The page has been modified and must be written to the source file
-before being evicted from the pool.
-<p><dt><a name="DB_MPOOL_DISCARD">DB_MPOOL_DISCARD</a><dd>The page is unlikely to be useful in the near future,
-and should be discarded before other pages in the pool.
-</dl>
-<p>The DB_MPOOL_CLEAN and DB_MPOOL_DIRTY flags are
-mutually exclusive.
-<p>The memp_fput function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p>The memp_fput function may fail and return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EACCES<dd>The DB_MPOOL_DIRTY flag was set and the source file was not opened for
-writing.
-</dl>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>The <b>pgaddr</b> parameter does not reference a page returned by
-<a href="../api_c/memp_fget.html">memp_fget</a>.
-<p>More than one of DB_MPOOL_CLEAN and DB_MPOOL_DIRTY flags was set.
-</dl>
-<p>The memp_fput function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the memp_fput function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/env_set_mp_mmapsize.html">DBENV-&gt;set_mp_mmapsize</a>,
-<a href="../api_c/memp_fclose.html">memp_fclose</a>,
-<a href="../api_c/memp_fget.html">memp_fget</a>,
-<a href="../api_c/memp_fopen.html">memp_fopen</a>,
-<a href="../api_c/memp_fput.html">memp_fput</a>,
-<a href="../api_c/memp_fset.html">memp_fset</a>,
-<a href="../api_c/memp_fsync.html">memp_fsync</a>,
-<a href="../api_c/memp_register.html">memp_register</a>,
-<a href="../api_c/memp_stat.html">memp_stat</a>,
-<a href="../api_c/memp_sync.html">memp_sync</a>
-and
-<a href="../api_c/memp_trickle.html">memp_trickle</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/memp_fset.html b/bdb/docs/api_c/memp_fset.html
deleted file mode 100644
index 73acd322c4e..00000000000
--- a/bdb/docs/api_c/memp_fset.html
+++ /dev/null
@@ -1,72 +0,0 @@
-<!--$Id: memp_fset.so,v 10.18 2000/03/01 21:41:30 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: memp_fset</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>memp_fset</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-memp_fset(DB_MPOOLFILE *mpf, void *pgaddr, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The memp_fset function sets the flags associated with the page referenced
-by <b>pgaddr</b> without unpinning it from the pool. The <b>pgaddr</b>
-argument must be an address previously returned by <a href="../api_c/memp_fget.html">memp_fget</a>.
-<p>The <b>flags</b> value must be set to 0 or by bitwise inclusively <b>OR</b>'ing together one or more
-of the following values.
-<p><dl compact>
-<p><dt><a name="DB_MPOOL_CLEAN">DB_MPOOL_CLEAN</a><dd>Clear any previously set modification information (i.e., don't bother
-writing the page back to the source file).
-<p><dt><a name="DB_MPOOL_DIRTY">DB_MPOOL_DIRTY</a><dd>The page has been modified and must be written to the source file
-before being evicted from the pool.
-<p><dt><a name="DB_MPOOL_DISCARD">DB_MPOOL_DISCARD</a><dd>The page is unlikely to be useful in the near future,
-and should be discarded before other pages in the pool.
-</dl>
-<p>The DB_MPOOL_CLEAN and DB_MPOOL_DIRTY flags are
-mutually exclusive.
-<p>The memp_fset function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p>The memp_fset function may fail and return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<p>The memp_fset function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the memp_fset function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/env_set_mp_mmapsize.html">DBENV-&gt;set_mp_mmapsize</a>,
-<a href="../api_c/memp_fclose.html">memp_fclose</a>,
-<a href="../api_c/memp_fget.html">memp_fget</a>,
-<a href="../api_c/memp_fopen.html">memp_fopen</a>,
-<a href="../api_c/memp_fput.html">memp_fput</a>,
-<a href="../api_c/memp_fset.html">memp_fset</a>,
-<a href="../api_c/memp_fsync.html">memp_fsync</a>,
-<a href="../api_c/memp_register.html">memp_register</a>,
-<a href="../api_c/memp_stat.html">memp_stat</a>,
-<a href="../api_c/memp_sync.html">memp_sync</a>
-and
-<a href="../api_c/memp_trickle.html">memp_trickle</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/memp_fsync.html b/bdb/docs/api_c/memp_fsync.html
deleted file mode 100644
index ad429ccf390..00000000000
--- a/bdb/docs/api_c/memp_fsync.html
+++ /dev/null
@@ -1,59 +0,0 @@
-<!--$Id: memp_fsync.so,v 10.22 2000/09/08 15:20:28 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: memp_fsync</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>memp_fsync</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-memp_fsync(DB_MPOOLFILE *mpf);
-</pre></h3>
-<h1>Description</h1>
-<p>The memp_fsync function writes all pages associated with the
-DB_MPOOLFILE, that were marked as modified using <a href="../api_c/memp_fput.html">memp_fput</a>
-or <a href="../api_c/memp_fset.html">memp_fset</a>, back to the source file. If any of the modified
-pages are also <i>pinned</i> (i.e., currently referenced by this or
-another process) memp_fsync will ignore them.
-<p>The memp_fsync function returns a non-zero error value on failure, 0 on success, and returns <a href="../api_c/memp_fsync.html#DB_INCOMPLETE">DB_INCOMPLETE</a> if there were pages which were
-modified but which memp_fsync was unable to write immediately.
-<h1>Errors</h1>
-<p>The memp_fsync function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the memp_fsync function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/env_set_mp_mmapsize.html">DBENV-&gt;set_mp_mmapsize</a>,
-<a href="../api_c/memp_fclose.html">memp_fclose</a>,
-<a href="../api_c/memp_fget.html">memp_fget</a>,
-<a href="../api_c/memp_fopen.html">memp_fopen</a>,
-<a href="../api_c/memp_fput.html">memp_fput</a>,
-<a href="../api_c/memp_fset.html">memp_fset</a>,
-<a href="../api_c/memp_fsync.html">memp_fsync</a>,
-<a href="../api_c/memp_register.html">memp_register</a>,
-<a href="../api_c/memp_stat.html">memp_stat</a>,
-<a href="../api_c/memp_sync.html">memp_sync</a>
-and
-<a href="../api_c/memp_trickle.html">memp_trickle</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/memp_register.html b/bdb/docs/api_c/memp_register.html
deleted file mode 100644
index 7c50a89ed2b..00000000000
--- a/bdb/docs/api_c/memp_register.html
+++ /dev/null
@@ -1,93 +0,0 @@
-<!--$Id: memp_register.so,v 10.23 2000/05/25 13:47:08 dda Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: memp_register</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>memp_register</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-memp_register(DB_ENV *env, int ftype,
- int (*pgin_fcn)(DB_ENV *, db_pgno_t pgno, void *pgaddr, DBT *pgcookie),
- int (*pgout_fcn)(DB_ENV *, db_pgno_t pgno, void *pgaddr, DBT *pgcookie));
-</pre></h3>
-<h1>Description</h1>
-<p>The memp_register function registers page-in and page-out
-functions for files of type <b>ftype</b> in the specified pool.
-<p>If the <b>pgin_fcn</b> function is non-NULL, it is called each time
-a page is read into the memory pool from a file of type <b>ftype</b>, or
-a page is created for a file of type <b>ftype</b> (see the
-DB_MPOOL_CREATE flag for the <a href="../api_c/memp_fget.html">memp_fget</a> function).
-<p>If the <b>pgout_fcn</b> function is non-NULL, it is called each time
-a page is written to a file of type <b>ftype</b>.
-<p>Both the <b>pgin_fcn</b> and <b>pgout_fcn</b> functions are called with
-a reference to the current environment, the page number, a pointer to the
-page being read or written, and any argument <b>pgcookie</b> that was
-specified to the <a href="../api_c/memp_fopen.html">memp_fopen</a> function when the file was opened.
-The <b>pgin_fcn</b> and <b>pgout_fcn</b> functions should return 0 on
-success, and an applicable non-zero <b>errno</b> value on failure, in
-which case the shared memory pool interface routine (and, by extension,
-any Berkeley DB library function) calling it will also fail, returning that
-<b>errno</b> value.
-<p>The purpose of the memp_register function is to support processing
-when pages are entered into, or flushed from, the pool. A file type must
-be specified to make it possible for unrelated threads or processes, that
-are sharing a pool, to evict each other's pages from the pool.
-Applications should call memp_register, during initialization,
-for each type of file requiring input or output processing that will be
-sharing the underlying pool. (No registry is necessary for the standard
-Berkeley DB access method types, as <a href="../api_c/db_open.html">DB-&gt;open</a> registers them
-separately.)
-<p>If a thread or process does not call memp_register for a file
-type, it is impossible for it to evict pages for any file requiring input
-or output processing from the pool. For this reason,
-memp_register should always be called by each application sharing
-a pool for each type of file included in the pool, regardless of whether
-or not the application itself uses files of that type.
-<p>There are no standard values for <b>ftype</b>, <b>pgin_fcn</b>,
-<b>pgout_fcn</b> and <b>pgcookie</b>, except that the <b>ftype</b>
-value for a file must be a non-zero positive number, as negative numbers
-are reserved for internal use by the Berkeley DB library. For this reason,
-applications sharing a pool must coordinate their values amongst
-themselves.
-<p>The memp_register function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p>The memp_register function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the memp_register function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/env_set_mp_mmapsize.html">DBENV-&gt;set_mp_mmapsize</a>,
-<a href="../api_c/memp_fclose.html">memp_fclose</a>,
-<a href="../api_c/memp_fget.html">memp_fget</a>,
-<a href="../api_c/memp_fopen.html">memp_fopen</a>,
-<a href="../api_c/memp_fput.html">memp_fput</a>,
-<a href="../api_c/memp_fset.html">memp_fset</a>,
-<a href="../api_c/memp_fsync.html">memp_fsync</a>,
-<a href="../api_c/memp_register.html">memp_register</a>,
-<a href="../api_c/memp_stat.html">memp_stat</a>,
-<a href="../api_c/memp_sync.html">memp_sync</a>
-and
-<a href="../api_c/memp_trickle.html">memp_trickle</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/memp_stat.html b/bdb/docs/api_c/memp_stat.html
deleted file mode 100644
index 8e9d136a90b..00000000000
--- a/bdb/docs/api_c/memp_stat.html
+++ /dev/null
@@ -1,118 +0,0 @@
-<!--$Id: memp_stat.so,v 10.28 2000/05/25 13:47:08 dda Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: memp_stat</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>memp_stat</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-memp_stat(DB_ENV *env, DB_MPOOL_STAT **gsp,
- DB_MPOOL_FSTAT *(*fsp)[], void *(*db_malloc)(size_t));
-</pre></h3>
-<h1>Description</h1>
-<p>The memp_stat function method creates statistical structures and copies
-pointers to them into user-specified memory locations. The statistics
-include the number of files participating in the pool, the active pages
-in the pool, and information as to how effective the cache has been.
-<p>Statistical structures are created in allocated memory. If <b>db_malloc</b> is non-NULL, it
-is called to allocate the memory, otherwise, the library function
-<b>malloc</b>(3) is used. The function <b>db_malloc</b> must match
-the calling conventions of the <b>malloc</b>(3) library routine.
-Regardless, the caller is responsible for deallocating the returned
-memory. To deallocate returned memory, free the returned memory
-reference, references inside the returned memory do not need to be
-individually freed.
-<p>If <b>gsp</b> is non-NULL, the global statistics for the memory pool
-<b>mp</b> are copied into the memory location it references. The
-global statistics are stored in a structure of type DB_MPOOL_STAT.
-<p>The following DB_MPOOL_STAT fields will be filled in:
-<p><dl compact>
-<dt>size_t st_gbytes;<dd>Gigabytes of cache (total cache size is st_gbytes + st_bytes)
-<dt>size_t st_bytes;<dd>Bytes of cache (total cache size is st_gbytes + st_bytes)
-<dt>u_int32_t st_ncache;<dd>Number of caches.
-<dt>u_int32_t st_regsize;<dd>Individual cache size.
-<dt>u_int32_t st_cache_hit;<dd>Requested pages found in the cache.
-<dt>u_int32_t st_cache_miss;<dd>Requested pages not found in the cache.
-<dt>u_int32_t st_map;<dd>Requested pages mapped into the process' address space (there is no
-available information as to whether or not this request caused disk I/O,
-although examining the application page fault rate may be helpful).
-<dt>u_int32_t st_page_create;<dd>Pages created in the cache.
-<dt>u_int32_t st_page_in;<dd>Pages read into the cache.
-<dt>u_int32_t st_page_out;<dd>Pages written from the cache to the backing file.
-<dt>u_int32_t st_ro_evict;<dd>Clean pages forced from the cache.
-<dt>u_int32_t st_rw_evict;<dd>Dirty pages forced from the cache.
-<dt>u_int32_t st_hash_buckets;<dd>Number of hash buckets in buffer hash table.
-<dt>u_int32_t st_hash_searches;<dd>Total number of buffer hash table lookups.
-<dt>u_int32_t st_hash_longest;<dd>The longest chain ever encountered in buffer hash table lookups.
-<dt>u_int32_t st_hash_examined;<dd>Total number of hash elements traversed during hash table lookups.
-<dt>u_int32_t st_page_clean;<dd>Clean pages currently in the cache.
-<dt>u_int32_t st_page_dirty;<dd>Dirty pages currently in the cache.
-<dt>u_int32_t st_page_trickle;<dd>Dirty pages written using the <a href="../api_c/memp_trickle.html">memp_trickle</a> interface.
-<dt>u_int32_t st_region_wait;<dd>The number of times that a thread of control was forced to wait before
-obtaining the region lock.
-<dt>u_int32_t st_region_nowait;<dd>The number of times that a thread of control was able to obtain
-the region lock without waiting.
-</dl>
-<p>If <b>fsp</b> is non-NULL, a pointer to a NULL-terminated variable
-length array of statistics for individual files, in the memory pool <b>mp</b>,
-is copied into the memory location it references. If no individual files
-currently exist in the memory pool, <b>fsp</b> will be set to NULL.
-<p>The per-file statistics are stored in structures of type DB_MPOOL_FSTAT.
-The following DB_MPOOL_FSTAT fields will be filled in for each file in
-the pool, i.e., each element of the array:
-<p><dl compact>
-<dt>char *file_name;<dd>The name of the file.
-<dt>size_t st_pagesize;<dd>Page size in bytes.
-<dt>u_int32_t st_cache_hit;<dd>Requested pages found in the cache.
-<dt>u_int32_t st_cache_miss;<dd>Requested pages not found in the cache.
-<dt>u_int32_t st_map;<dd>Requested pages mapped into the process' address space.
-<dt>u_int32_t st_page_create;<dd>Pages created in the cache.
-<dt>u_int32_t st_page_in;<dd>Pages read into the cache.
-<dt>u_int32_t st_page_out;<dd>Pages written from the cache to the backing file.
-</dl>
-<p>The memp_stat function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p>The memp_stat function may fail and return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<p>The memp_stat function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the memp_stat function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/env_set_mp_mmapsize.html">DBENV-&gt;set_mp_mmapsize</a>,
-<a href="../api_c/memp_fclose.html">memp_fclose</a>,
-<a href="../api_c/memp_fget.html">memp_fget</a>,
-<a href="../api_c/memp_fopen.html">memp_fopen</a>,
-<a href="../api_c/memp_fput.html">memp_fput</a>,
-<a href="../api_c/memp_fset.html">memp_fset</a>,
-<a href="../api_c/memp_fsync.html">memp_fsync</a>,
-<a href="../api_c/memp_register.html">memp_register</a>,
-<a href="../api_c/memp_stat.html">memp_stat</a>,
-<a href="../api_c/memp_sync.html">memp_sync</a>
-and
-<a href="../api_c/memp_trickle.html">memp_trickle</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/memp_sync.html b/bdb/docs/api_c/memp_sync.html
deleted file mode 100644
index fc693d47eff..00000000000
--- a/bdb/docs/api_c/memp_sync.html
+++ /dev/null
@@ -1,83 +0,0 @@
-<!--$Id: memp_sync.so,v 10.25 2000/09/08 15:20:28 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: memp_sync</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>memp_sync</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-memp_sync(DB_ENV *env, DB_LSN *lsn);
-</pre></h3>
-<h1>Description</h1>
-<p>The memp_sync function ensures that any modified pages in the pool with
-log sequence numbers less than the <b>lsn</b> argument are written to
-disk. If <b>lsn</b> is NULL all modified pages in the pool are
-flushed.
-<p>The primary purpose of the memp_sync function is to enable a
-transaction manager to ensure, as part of a checkpoint, that all pages
-modified by a certain time have been written to disk. Pages in the pool
-that cannot be written back to disk immediately (e.g., that are currently
-pinned) are written to disk as soon as it is possible to do so. The
-expected behavior of the Berkeley DB or other transaction subsystem is to call
-the memp_sync function and then, if the return indicates that some
-pages could not be written immediately, to wait briefly and retry again
-with the same log sequence number until the memp_sync function
-returns that all pages have been written.
-<p>To support the memp_sync functionality, it is necessary that the
-pool functions know the location of the log sequence number on the page
-for each file type. This location should be specified when the file is
-opened using the <a href="../api_c/memp_fopen.html">memp_fopen</a> function. It is not required that
-the log sequence number be aligned on the page in any way.
-<p>The memp_sync function returns a non-zero error value on failure, 0 on success, and returns <a href="../api_c/memp_fsync.html#DB_INCOMPLETE">DB_INCOMPLETE</a> if there were pages which need to be
-written but which memp_sync was unable to write immediately.
-In addition, if memp_sync returns success, the value of
-<b>lsn</b> will be overwritten with the largest log sequence number
-from any page which was written by memp_sync to satisfy this
-request.
-<h1>Errors</h1>
-<p>The memp_sync function may fail and return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>The memp_sync function was called without logging having been
-initialized in the environment.
-</dl>
-<p>The memp_sync function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the memp_sync function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/env_set_mp_mmapsize.html">DBENV-&gt;set_mp_mmapsize</a>,
-<a href="../api_c/memp_fclose.html">memp_fclose</a>,
-<a href="../api_c/memp_fget.html">memp_fget</a>,
-<a href="../api_c/memp_fopen.html">memp_fopen</a>,
-<a href="../api_c/memp_fput.html">memp_fput</a>,
-<a href="../api_c/memp_fset.html">memp_fset</a>,
-<a href="../api_c/memp_fsync.html">memp_fsync</a>,
-<a href="../api_c/memp_register.html">memp_register</a>,
-<a href="../api_c/memp_stat.html">memp_stat</a>,
-<a href="../api_c/memp_sync.html">memp_sync</a>
-and
-<a href="../api_c/memp_trickle.html">memp_trickle</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/memp_trickle.html b/bdb/docs/api_c/memp_trickle.html
deleted file mode 100644
index d7cfd723020..00000000000
--- a/bdb/docs/api_c/memp_trickle.html
+++ /dev/null
@@ -1,66 +0,0 @@
-<!--$Id: memp_trickle.so,v 10.21 2000/03/01 21:41:30 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: memp_trickle</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>memp_trickle</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-memp_trickle(DB_ENV *env, int pct, int *nwrotep);
-</pre></h3>
-<h1>Description</h1>
-<p>The memp_trickle function ensures that at least <b>pct</b> percent of
-the pages in the shared memory pool are clean by writing dirty pages to
-their backing files.
-If the <b>nwrotep</b> argument is non-NULL, the number of pages that
-were written to reach the correct percentage is returned in the memory
-location it references.
-<p>The purpose of the memp_trickle function is to enable a memory
-pool manager to ensure that a page is always available for reading in new
-information without having to wait for a write.
-<p>The memp_trickle function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p>The memp_trickle function may fail and return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<p>The memp_trickle function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the memp_trickle function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/env_set_mp_mmapsize.html">DBENV-&gt;set_mp_mmapsize</a>,
-<a href="../api_c/memp_fclose.html">memp_fclose</a>,
-<a href="../api_c/memp_fget.html">memp_fget</a>,
-<a href="../api_c/memp_fopen.html">memp_fopen</a>,
-<a href="../api_c/memp_fput.html">memp_fput</a>,
-<a href="../api_c/memp_fset.html">memp_fset</a>,
-<a href="../api_c/memp_fsync.html">memp_fsync</a>,
-<a href="../api_c/memp_register.html">memp_register</a>,
-<a href="../api_c/memp_stat.html">memp_stat</a>,
-<a href="../api_c/memp_sync.html">memp_sync</a>
-and
-<a href="../api_c/memp_trickle.html">memp_trickle</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/pindex.src b/bdb/docs/api_c/pindex.src
deleted file mode 100644
index 1818c50a6d1..00000000000
--- a/bdb/docs/api_c/pindex.src
+++ /dev/null
@@ -1,301 +0,0 @@
-__APIREL__/api_c/db_create.html#2 @db_create
-__APIREL__/api_c/db_create.html#DB_XA_CREATE db_create@DB_XA_CREATE
-__APIREL__/api_c/db_err.html#2 @DBENV-__GT__err
-__APIREL__/api_c/db_lsn.html#2 @DB_LSN
-__APIREL__/api_c/db_set_errfile.html#2 @DB-__GT__set_errfile
-__APIREL__/api_c/db_set_malloc.html#2 @DB-__GT__set_malloc
-__APIREL__/api_c/db_set_paniccall.html#2 @DB-__GT__set_paniccall
-__APIREL__/api_c/db_set_realloc.html#2 @DB-__GT__set_realloc
-__APIREL__/api_c/dbm.html#2 @dbm/ndbm
-__APIREL__/api_c/dbt.html#2 @key/data pairs
-__APIREL__/api_c/dbt.html#data DBT@data
-__APIREL__/api_c/dbt.html#size DBT@size
-__APIREL__/api_c/dbt.html#ulen DBT@ulen
-__APIREL__/api_c/dbt.html#dlen DBT@dlen
-__APIREL__/api_c/dbt.html#doff DBT@doff
-__APIREL__/api_c/dbt.html#DB_DBT_MALLOC DBT@DB_DBT_MALLOC
-__APIREL__/api_c/dbt.html#DB_DBT_REALLOC DBT@DB_DBT_REALLOC
-__APIREL__/api_c/dbt.html#DB_DBT_USERMEM DBT@DB_DBT_USERMEM
-__APIREL__/api_c/dbt.html#DB_DBT_PARTIAL DBT@DB_DBT_PARTIAL
-__APIREL__/api_c/dbt.html#3 retrieved key/data @permanence
-__APIREL__/api_c/dbt.html#4 retrieved @key/data permanence
-__APIREL__/api_c/dbt.html#5 data @alignment
-__APIREL__/api_c/dbt.html#6 logical @record number format
-__APIREL__/api_c/env_create.html#2 @db_env_create
-__APIREL__/api_c/env_create.html#DB_CLIENT db_env_create@DB_CLIENT
-__APIREL__/api_c/env_set_errfile.html#2 @DBENV-__GT__set_errfile
-__APIREL__/api_c/env_set_paniccall.html#2 @DBENV-__GT__set_paniccall
-__APIREL__/api_c/hsearch.html#2 @hsearch
-__APIREL__/api_c/set_func_close.html#2 @db_env_set_func_close
-__APIREL__/api_c/set_func_dirfree.html#2 @db_env_set_func_dirfree
-__APIREL__/api_c/set_func_dirlist.html#2 @db_env_set_func_dirlist
-__APIREL__/api_c/set_func_exists.html#2 @db_env_set_func_exists
-__APIREL__/api_c/set_func_free.html#2 @db_env_set_func_free
-__APIREL__/api_c/set_func_fsync.html#2 @db_env_set_func_fsync
-__APIREL__/api_c/set_func_ioinfo.html#2 @db_env_set_func_ioinfo
-__APIREL__/api_c/set_func_malloc.html#2 @db_env_set_func_malloc
-__APIREL__/api_c/set_func_map.html#2 @db_env_set_func_map
-__APIREL__/api_c/set_func_open.html#2 @db_env_set_func_open
-__APIREL__/api_c/set_func_read.html#2 @db_env_set_func_read
-__APIREL__/api_c/set_func_realloc.html#2 @db_env_set_func_realloc
-__APIREL__/api_c/set_func_rename.html#2 @db_env_set_func_rename
-__APIREL__/api_c/set_func_seek.html#2 @db_env_set_func_seek
-__APIREL__/api_c/set_func_sleep.html#2 @db_env_set_func_sleep
-__APIREL__/api_c/set_func_unlink.html#2 @db_env_set_func_unlink
-__APIREL__/api_c/set_func_unmap.html#2 @db_env_set_func_unmap
-__APIREL__/api_c/set_func_write.html#2 @db_env_set_func_write
-__APIREL__/api_c/set_func_yield.html#2 @db_env_set_func_yield
-__APIREL__/api_c/db_close.html#2 @DB-__GT__close
-__APIREL__/api_c/db_close.html#DB_NOSYNC DB-__GT__close@DB_NOSYNC
-__APIREL__/api_c/db_close.html#3 DB-__GT__close @DB_INCOMPLETE
-__APIREL__/api_c/db_cursor.html#2 @DB-__GT__cursor
-__APIREL__/api_c/db_cursor.html#DB_WRITECURSOR DB-__GT__cursor@DB_WRITECURSOR
-__APIREL__/api_c/db_del.html#2 @DB-__GT__del
-__APIREL__/api_c/db_fd.html#2 @DB-__GT__fd
-__APIREL__/api_c/db_get.html#2 @DB-__GT__get
-__APIREL__/api_c/db_get.html#DB_CONSUME DB-__GT__get@DB_CONSUME
-__APIREL__/api_c/db_get.html#DB_CONSUME_WAIT DB-__GT__get@DB_CONSUME_WAIT
-__APIREL__/api_c/db_get.html#DB_GET_BOTH DB-__GT__get@DB_GET_BOTH
-__APIREL__/api_c/db_get.html#DB_SET_RECNO DB-__GT__get@DB_SET_RECNO
-__APIREL__/api_c/db_get.html#DB_RMW DB-__GT__get@DB_RMW
-__APIREL__/api_c/db_get_byteswapped.html#2 @DB-__GT__get_byteswapped
-__APIREL__/api_c/db_get_type.html#2 @DB-__GT__get_type
-__APIREL__/api_c/db_join.html#2 @DB-__GT__join
-__APIREL__/api_c/db_join.html#DB_JOIN_NOSORT DB-__GT__join@DB_JOIN_NOSORT
-__APIREL__/api_c/db_join.html#DB_JOIN_ITEM DB-__GT__join@DB_JOIN_ITEM
-__APIREL__/api_c/db_join.html#DB_RMW DB-__GT__join@DB_RMW
-__APIREL__/api_c/db_key_range.html#2 @DB-__GT__key_range
-__APIREL__/api_c/db_open.html#2 @DB-__GT__open
-__APIREL__/api_c/db_open.html#DB_CREATE DB-__GT__open@DB_CREATE
-__APIREL__/api_c/db_open.html#DB_EXCL DB-__GT__open@DB_EXCL
-__APIREL__/api_c/db_open.html#DB_NOMMAP DB-__GT__open@DB_NOMMAP
-__APIREL__/api_c/db_open.html#DB_RDONLY DB-__GT__open@DB_RDONLY
-__APIREL__/api_c/db_open.html#DB_THREAD DB-__GT__open@DB_THREAD
-__APIREL__/api_c/db_open.html#DB_TRUNCATE DB-__GT__open@DB_TRUNCATE
-__APIREL__/api_c/db_open.html#DB_OLD_VERSION DB-__GT__open@DB_OLD_VERSION
-__APIREL__/api_c/db_put.html#2 @DB-__GT__put
-__APIREL__/api_c/db_put.html#DB_APPEND DB-__GT__put@DB_APPEND
-__APIREL__/api_c/db_put.html#DB_NODUPDATA DB-__GT__put@DB_NODUPDATA
-__APIREL__/api_c/db_put.html#DB_NOOVERWRITE DB-__GT__put@DB_NOOVERWRITE
-__APIREL__/api_c/db_remove.html#2 @DB-__GT__remove
-__APIREL__/api_c/db_rename.html#2 @DB-__GT__rename
-__APIREL__/api_c/db_set_append_recno.html#2 @DB-__GT__set_append_recno
-__APIREL__/api_c/db_set_bt_compare.html#2 @DB-__GT__set_bt_compare
-__APIREL__/api_c/db_set_bt_minkey.html#2 @DB-__GT__set_bt_minkey
-__APIREL__/api_c/db_set_bt_prefix.html#2 @DB-__GT__set_bt_prefix
-__APIREL__/api_c/db_set_cachesize.html#2 @DB-__GT__set_cachesize
-__APIREL__/api_c/db_set_dup_compare.html#2 @DB-__GT__set_dup_compare
-__APIREL__/api_c/db_set_errcall.html#2 @DB-__GT__set_errcall
-__APIREL__/api_c/db_set_errpfx.html#2 @DB-__GT__set_errpfx
-__APIREL__/api_c/db_set_feedback.html#2 @DB-__GT__set_feedback
-__APIREL__/api_c/db_set_feedback.html#DB_UPGRADE DB-__GT__set_feedback@DB_UPGRADE
-__APIREL__/api_c/db_set_feedback.html#DB_VERIFY DB-__GT__set_feedback@DB_VERIFY
-__APIREL__/api_c/db_set_flags.html#2 @DB-__GT__set_flags
-__APIREL__/api_c/db_set_flags.html#DB_DUP DB-__GT__set_flags@DB_DUP
-__APIREL__/api_c/db_set_flags.html#DB_DUPSORT DB-__GT__set_flags@DB_DUPSORT
-__APIREL__/api_c/db_set_flags.html#DB_RECNUM DB-__GT__set_flags@DB_RECNUM
-__APIREL__/api_c/db_set_flags.html#DB_REVSPLITOFF DB-__GT__set_flags@DB_REVSPLITOFF
-__APIREL__/api_c/db_set_flags.html#DB_DUP DB-__GT__set_flags@DB_DUP
-__APIREL__/api_c/db_set_flags.html#DB_DUPSORT DB-__GT__set_flags@DB_DUPSORT
-__APIREL__/api_c/db_set_flags.html#DB_RENUMBER DB-__GT__set_flags@DB_RENUMBER
-__APIREL__/api_c/db_set_flags.html#DB_SNAPSHOT DB-__GT__set_flags@DB_SNAPSHOT
-__APIREL__/api_c/db_set_h_ffactor.html#2 @DB-__GT__set_h_ffactor
-__APIREL__/api_c/db_set_h_hash.html#2 @DB-__GT__set_h_hash
-__APIREL__/api_c/db_set_h_nelem.html#2 @DB-__GT__set_h_nelem
-__APIREL__/api_c/db_set_lorder.html#2 @DB-__GT__set_lorder
-__APIREL__/api_c/db_set_pagesize.html#2 @DB-__GT__set_pagesize
-__APIREL__/api_c/db_set_q_extentsize.html#2 @DB-__GT__set_q_extentsize
-__APIREL__/api_c/db_set_re_delim.html#2 @DB-__GT__set_re_delim
-__APIREL__/api_c/db_set_re_len.html#2 @DB-__GT__set_re_len
-__APIREL__/api_c/db_set_re_pad.html#2 @DB-__GT__set_re_pad
-__APIREL__/api_c/db_set_re_source.html#2 @DB-__GT__set_re_source
-__APIREL__/api_c/db_stat.html#2 @DB-__GT__stat
-__APIREL__/api_c/db_stat.html#DB_CACHED_COUNTS DB-__GT__stat@DB_CACHED_COUNTS
-__APIREL__/api_c/db_stat.html#DB_RECORDCOUNT DB-__GT__stat@DB_RECORDCOUNT
-__APIREL__/api_c/db_sync.html#2 @DB-__GT__sync
-__APIREL__/api_c/db_upgrade.html#2 @DB-__GT__upgrade
-__APIREL__/api_c/db_upgrade.html#DB_DUPSORT DB-__GT__upgrade@DB_DUPSORT
-__APIREL__/api_c/db_upgrade.html#DB_OLD_VERSION DB-__GT__upgrade@DB_OLD_VERSION
-__APIREL__/api_c/db_verify.html#2 @DB-__GT__verify
-__APIREL__/api_c/db_verify.html#DB_SALVAGE DB-__GT__verify@DB_SALVAGE
-__APIREL__/api_c/db_verify.html#DB_AGGRESSIVE DB-__GT__verify@DB_AGGRESSIVE
-__APIREL__/api_c/db_verify.html#DB_NOORDERCHK DB-__GT__verify@DB_NOORDERCHK
-__APIREL__/api_c/db_verify.html#DB_ORDERCHKONLY DB-__GT__verify@DB_ORDERCHKONLY
-__APIREL__/api_c/dbc_close.html#2 @DBcursor-__GT__c_close
-__APIREL__/api_c/dbc_count.html#2 @DBcursor-__GT__c_count
-__APIREL__/api_c/dbc_del.html#2 @DBcursor-__GT__c_del
-__APIREL__/api_c/dbc_dup.html#2 @DBcursor-__GT__c_dup
-__APIREL__/api_c/dbc_dup.html#DB_POSITION DBcursor-__GT__c_dup@DB_POSITION
-__APIREL__/api_c/dbc_get.html#2 @DBcursor-__GT__c_get
-__APIREL__/api_c/dbc_get.html#DB_CURRENT DBcursor-__GT__c_get@DB_CURRENT
-__APIREL__/api_c/dbc_get.html#DB_FIRST DBcursor-__GT__c_get@DB_FIRST
-__APIREL__/api_c/dbc_get.html#DB_LAST DBcursor-__GT__c_get@DB_LAST
-__APIREL__/api_c/dbc_get.html#DB_GET_BOTH DBcursor-__GT__c_get@DB_GET_BOTH
-__APIREL__/api_c/dbc_get.html#DB_GET_RECNO DBcursor-__GT__c_get@DB_GET_RECNO
-__APIREL__/api_c/dbc_get.html#DB_JOIN_ITEM DBcursor-__GT__c_get@DB_JOIN_ITEM
-__APIREL__/api_c/dbc_get.html#DB_NEXT DBcursor-__GT__c_get@DB_NEXT
-__APIREL__/api_c/dbc_get.html#DB_PREV DBcursor-__GT__c_get@DB_PREV
-__APIREL__/api_c/dbc_get.html#DB_NEXT_DUP DBcursor-__GT__c_get@DB_NEXT_DUP
-__APIREL__/api_c/dbc_get.html#DB_NEXT_NODUP DBcursor-__GT__c_get@DB_NEXT_NODUP
-__APIREL__/api_c/dbc_get.html#DB_PREV_NODUP DBcursor-__GT__c_get@DB_PREV_NODUP
-__APIREL__/api_c/dbc_get.html#DB_SET DBcursor-__GT__c_get@DB_SET
-__APIREL__/api_c/dbc_get.html#DB_SET_RANGE DBcursor-__GT__c_get@DB_SET_RANGE
-__APIREL__/api_c/dbc_get.html#DB_SET_RECNO DBcursor-__GT__c_get@DB_SET_RECNO
-__APIREL__/api_c/dbc_get.html#DB_RMW DBcursor-__GT__c_get@DB_RMW
-__APIREL__/api_c/dbc_put.html#2 @DBcursor-__GT__c_put
-__APIREL__/api_c/dbc_put.html#DB_AFTER DBcursor-__GT__c_put@DB_AFTER
-__APIREL__/api_c/dbc_put.html#DB_BEFORE DBcursor-__GT__c_put@DB_BEFORE
-__APIREL__/api_c/dbc_put.html#DB_CURRENT DBcursor-__GT__c_put@DB_CURRENT
-__APIREL__/api_c/dbc_put.html#DB_KEYFIRST DBcursor-__GT__c_put@DB_KEYFIRST
-__APIREL__/api_c/dbc_put.html#DB_KEYLAST DBcursor-__GT__c_put@DB_KEYLAST
-__APIREL__/api_c/dbc_put.html#DB_NODUPDATA DBcursor-__GT__c_put@DB_NODUPDATA
-__APIREL__/api_c/env_close.html#2 @DBENV-__GT__close
-__APIREL__/api_c/env_open.html#2 @DBENV-__GT__open
-__APIREL__/api_c/env_open.html#DB_JOINENV DBENV-__GT__open@DB_JOINENV
-__APIREL__/api_c/env_open.html#DB_INIT_CDB DBENV-__GT__open@DB_INIT_CDB
-__APIREL__/api_c/env_open.html#DB_INIT_LOCK DBENV-__GT__open@DB_INIT_LOCK
-__APIREL__/api_c/env_open.html#DB_INIT_LOG DBENV-__GT__open@DB_INIT_LOG
-__APIREL__/api_c/env_open.html#DB_INIT_MPOOL DBENV-__GT__open@DB_INIT_MPOOL
-__APIREL__/api_c/env_open.html#DB_INIT_TXN DBENV-__GT__open@DB_INIT_TXN
-__APIREL__/api_c/env_open.html#DB_RECOVER DBENV-__GT__open@DB_RECOVER
-__APIREL__/api_c/env_open.html#DB_RECOVER_FATAL DBENV-__GT__open@DB_RECOVER_FATAL
-__APIREL__/api_c/env_open.html#DB_USE_ENVIRON DBENV-__GT__open@DB_USE_ENVIRON
-__APIREL__/api_c/env_open.html#DB_USE_ENVIRON_ROOT DBENV-__GT__open@DB_USE_ENVIRON_ROOT
-__APIREL__/api_c/env_open.html#DB_CREATE DBENV-__GT__open@DB_CREATE
-__APIREL__/api_c/env_open.html#DB_LOCKDOWN DBENV-__GT__open@DB_LOCKDOWN
-__APIREL__/api_c/env_open.html#DB_PRIVATE DBENV-__GT__open@DB_PRIVATE
-__APIREL__/api_c/env_open.html#DB_SYSTEM_MEM DBENV-__GT__open@DB_SYSTEM_MEM
-__APIREL__/api_c/env_open.html#DB_THREAD DBENV-__GT__open@DB_THREAD
-__APIREL__/api_c/env_remove.html#2 @DBENV-__GT__remove
-__APIREL__/api_c/env_remove.html#DB_FORCE DBENV-__GT__remove@DB_FORCE
-__APIREL__/api_c/env_remove.html#DB_USE_ENVIRON DBENV-__GT__remove@DB_USE_ENVIRON
-__APIREL__/api_c/env_remove.html#DB_USE_ENVIRON_ROOT DBENV-__GT__remove@DB_USE_ENVIRON_ROOT
-__APIREL__/api_c/env_set_cachesize.html#2 @DBENV-__GT__set_cachesize
-__APIREL__/api_c/env_set_data_dir.html#2 @DBENV-__GT__set_data_dir
-__APIREL__/api_c/env_set_errcall.html#2 @DBENV-__GT__set_errcall
-__APIREL__/api_c/env_set_errpfx.html#2 @DBENV-__GT__set_errpfx
-__APIREL__/api_c/env_set_feedback.html#2 @DBENV-__GT__set_feedback
-__APIREL__/api_c/env_set_feedback.html#DB_RECOVER DBENV-__GT__set_feedback@DB_RECOVER
-__APIREL__/api_c/env_set_flags.html#2 @DBENV-__GT__set_flags
-__APIREL__/api_c/env_set_flags.html#DB_CDB_ALLDB DBENV-__GT__set_flags@DB_CDB_ALLDB
-__APIREL__/api_c/env_set_flags.html#DB_NOMMAP DBENV-__GT__set_flags@DB_NOMMAP
-__APIREL__/api_c/env_set_flags.html#DB_TXN_NOSYNC DBENV-__GT__set_flags@DB_TXN_NOSYNC
-__APIREL__/api_c/env_set_lg_bsize.html#2 @DBENV-__GT__set_lg_bsize
-__APIREL__/api_c/env_set_lg_dir.html#2 @DBENV-__GT__set_lg_dir
-__APIREL__/api_c/env_set_lg_max.html#2 @DBENV-__GT__set_lg_max
-__APIREL__/api_c/env_set_lk_conflicts.html#2 @DBENV-__GT__set_lk_conflicts
-__APIREL__/api_c/env_set_lk_detect.html#2 @DBENV-__GT__set_lk_detect
-__APIREL__/api_c/env_set_lk_detect.html#DB_LOCK_DEFAULT DBENV-__GT__set_lk_detect@DB_LOCK_DEFAULT
-__APIREL__/api_c/env_set_lk_detect.html#DB_LOCK_OLDEST DBENV-__GT__set_lk_detect@DB_LOCK_OLDEST
-__APIREL__/api_c/env_set_lk_detect.html#DB_LOCK_RANDOM DBENV-__GT__set_lk_detect@DB_LOCK_RANDOM
-__APIREL__/api_c/env_set_lk_detect.html#DB_LOCK_YOUNGEST DBENV-__GT__set_lk_detect@DB_LOCK_YOUNGEST
-__APIREL__/api_c/env_set_lk_max.html#2 @DBENV-__GT__set_lk_max
-__APIREL__/api_c/env_set_lk_max_locks.html#2 @DBENV-__GT__set_lk_max_locks
-__APIREL__/api_c/env_set_lk_max_lockers.html#2 @DBENV-__GT__set_lk_max_lockers
-__APIREL__/api_c/env_set_lk_max_objects.html#2 @DBENV-__GT__set_lk_max_objects
-__APIREL__/api_c/env_set_mp_mmapsize.html#2 @DBENV-__GT__set_mp_mmapsize
-__APIREL__/api_c/env_set_mutexlocks.html#2 @DBENV-__GT__set_mutexlocks
-__APIREL__/api_c/env_set_pageyield.html#2 @db_env_set_pageyield
-__APIREL__/api_c/env_set_panicstate.html#2 @db_env_set_panicstate
-__APIREL__/api_c/env_set_rec_init.html#2 @DBENV-__GT__set_recovery_init
-__APIREL__/api_c/env_set_region_init.html#2 @db_env_set_region_init
-__APIREL__/api_c/env_set_server.html#2 @DBENV-__GT__set_server
-__APIREL__/api_c/env_set_server.html#DB_NOSERVER DBENV-__GT__set_server@DB_NOSERVER
-__APIREL__/api_c/env_set_server.html#DB_NOSERVER_ID DBENV-__GT__set_server@DB_NOSERVER_ID
-__APIREL__/api_c/env_set_shm_key.html#2 @DBENV-__GT__set_shm_key
-__APIREL__/api_c/env_set_tas_spins.html#2 @db_env_set_tas_spins
-__APIREL__/api_c/env_set_tmp_dir.html#2 @DBENV-__GT__set_tmp_dir
-__APIREL__/api_c/env_set_tx_max.html#2 @DBENV-__GT__set_tx_max
-__APIREL__/api_c/env_set_tx_recover.html#2 @DBENV-__GT__set_tx_recover
-__APIREL__/api_c/env_set_tx_recover.html#DB_TXN_BACKWARD_ROLL DBENV-__GT__set_tx_recover@DB_TXN_BACKWARD_ROLL
-__APIREL__/api_c/env_set_tx_recover.html#DB_TXN_FORWARD_ROLL DBENV-__GT__set_tx_recover@DB_TXN_FORWARD_ROLL
-__APIREL__/api_c/env_set_tx_recover.html#DB_TXN_ABORT DBENV-__GT__set_tx_recover@DB_TXN_ABORT
-__APIREL__/api_c/env_set_tx_timestamp.html#2 @DBENV-__GT__set_tx_timestamp
-__APIREL__/api_c/env_set_verbose.html#2 @DBENV-__GT__set_verbose
-__APIREL__/api_c/env_set_verbose.html#DB_VERB_CHKPOINT DBENV-__GT__set_verbose@DB_VERB_CHKPOINT
-__APIREL__/api_c/env_set_verbose.html#DB_VERB_DEADLOCK DBENV-__GT__set_verbose@DB_VERB_DEADLOCK
-__APIREL__/api_c/env_set_verbose.html#DB_VERB_RECOVERY DBENV-__GT__set_verbose@DB_VERB_RECOVERY
-__APIREL__/api_c/env_set_verbose.html#DB_VERB_WAITSFOR DBENV-__GT__set_verbose@DB_VERB_WAITSFOR
-__APIREL__/api_c/env_strerror.html#2 @db_strerror
-__APIREL__/api_c/env_version.html#2 @db_version
-__APIREL__/api_c/lock_detect.html#2 @lock_detect
-__APIREL__/api_c/lock_detect.html#DB_LOCK_CONFLICT lock_detect@DB_LOCK_CONFLICT
-__APIREL__/api_c/lock_get.html#2 @lock_get
-__APIREL__/api_c/lock_get.html#DB_LOCK_NOWAIT lock_get@DB_LOCK_NOWAIT
-__APIREL__/api_c/lock_get.html#DB_LOCK_NOTGRANTED lock_get@DB_LOCK_NOTGRANTED
-__APIREL__/api_c/lock_id.html#2 @lock_id
-__APIREL__/api_c/lock_put.html#2 @lock_put
-__APIREL__/api_c/lock_stat.html#2 @lock_stat
-__APIREL__/api_c/lock_vec.html#2 @lock_vec
-__APIREL__/api_c/lock_vec.html#DB_LOCK_NOWAIT lock_vec@DB_LOCK_NOWAIT
-__APIREL__/api_c/lock_vec.html#op lock_vec@op
-__APIREL__/api_c/lock_vec.html#DB_LOCK_GET lock_vec@DB_LOCK_GET
-__APIREL__/api_c/lock_vec.html#DB_LOCK_PUT lock_vec@DB_LOCK_PUT
-__APIREL__/api_c/lock_vec.html#DB_LOCK_PUT_ALL lock_vec@DB_LOCK_PUT_ALL
-__APIREL__/api_c/lock_vec.html#DB_LOCK_PUT_OBJ lock_vec@DB_LOCK_PUT_OBJ
-__APIREL__/api_c/lock_vec.html#obj lock_vec@obj
-__APIREL__/api_c/lock_vec.html#mode lock_vec@mode
-__APIREL__/api_c/lock_vec.html#lock lock_vec@lock
-__APIREL__/api_c/lock_vec.html#DB_LOCK_NOTGRANTED lock_vec@DB_LOCK_NOTGRANTED
-__APIREL__/api_c/log_archive.html#2 @log_archive
-__APIREL__/api_c/log_archive.html#DB_ARCH_ABS log_archive@DB_ARCH_ABS
-__APIREL__/api_c/log_archive.html#DB_ARCH_DATA log_archive@DB_ARCH_DATA
-__APIREL__/api_c/log_archive.html#DB_ARCH_LOG log_archive@DB_ARCH_LOG
-__APIREL__/api_c/log_compare.html#2 @log_compare
-__APIREL__/api_c/log_file.html#2 @log_file
-__APIREL__/api_c/log_flush.html#2 @log_flush
-__APIREL__/api_c/log_get.html#2 @log_get
-__APIREL__/api_c/log_get.html#DB_CHECKPOINT log_get@DB_CHECKPOINT
-__APIREL__/api_c/log_get.html#DB_FIRST log_get@DB_FIRST
-__APIREL__/api_c/log_get.html#DB_LAST log_get@DB_LAST
-__APIREL__/api_c/log_get.html#DB_NEXT log_get@DB_NEXT
-__APIREL__/api_c/log_get.html#DB_PREV log_get@DB_PREV
-__APIREL__/api_c/log_get.html#DB_CURRENT log_get@DB_CURRENT
-__APIREL__/api_c/log_get.html#DB_SET log_get@DB_SET
-__APIREL__/api_c/log_put.html#2 @log_put
-__APIREL__/api_c/log_put.html#DB_CHECKPOINT log_put@DB_CHECKPOINT
-__APIREL__/api_c/log_put.html#DB_CURLSN log_put@DB_CURLSN
-__APIREL__/api_c/log_put.html#DB_FLUSH log_put@DB_FLUSH
-__APIREL__/api_c/log_register.html#2 @log_register
-__APIREL__/api_c/log_stat.html#2 @log_stat
-__APIREL__/api_c/log_unregister.html#2 @log_unregister
-__APIREL__/api_c/memp_fclose.html#2 @memp_fclose
-__APIREL__/api_c/memp_fget.html#2 @memp_fget
-__APIREL__/api_c/memp_fget.html#DB_MPOOL_CREATE memp_fget@DB_MPOOL_CREATE
-__APIREL__/api_c/memp_fget.html#DB_MPOOL_LAST memp_fget@DB_MPOOL_LAST
-__APIREL__/api_c/memp_fget.html#DB_MPOOL_NEW memp_fget@DB_MPOOL_NEW
-__APIREL__/api_c/memp_fopen.html#2 @memp_fopen
-__APIREL__/api_c/memp_fopen.html#DB_CREATE memp_fopen@DB_CREATE
-__APIREL__/api_c/memp_fopen.html#DB_NOMMAP memp_fopen@DB_NOMMAP
-__APIREL__/api_c/memp_fopen.html#DB_RDONLY memp_fopen@DB_RDONLY
-__APIREL__/api_c/memp_fopen.html#ftype memp_fopen@ftype
-__APIREL__/api_c/memp_fopen.html#pgcookie memp_fopen@pgcookie
-__APIREL__/api_c/memp_fopen.html#fileid memp_fopen@fileid
-__APIREL__/api_c/memp_fopen.html#lsn_offset memp_fopen@lsn_offset
-__APIREL__/api_c/memp_fopen.html#clear_len memp_fopen@clear_len
-__APIREL__/api_c/memp_fput.html#2 @memp_fput
-__APIREL__/api_c/memp_fput.html#DB_MPOOL_CLEAN memp_fput@DB_MPOOL_CLEAN
-__APIREL__/api_c/memp_fput.html#DB_MPOOL_DIRTY memp_fput@DB_MPOOL_DIRTY
-__APIREL__/api_c/memp_fput.html#DB_MPOOL_DISCARD memp_fput@DB_MPOOL_DISCARD
-__APIREL__/api_c/memp_fset.html#2 @memp_fset
-__APIREL__/api_c/memp_fset.html#DB_MPOOL_CLEAN memp_fset@DB_MPOOL_CLEAN
-__APIREL__/api_c/memp_fset.html#DB_MPOOL_DIRTY memp_fset@DB_MPOOL_DIRTY
-__APIREL__/api_c/memp_fset.html#DB_MPOOL_DISCARD memp_fset@DB_MPOOL_DISCARD
-__APIREL__/api_c/memp_fsync.html#2 @memp_fsync
-__APIREL__/api_c/memp_register.html#2 @memp_register
-__APIREL__/api_c/memp_stat.html#2 @memp_stat
-__APIREL__/api_c/memp_sync.html#2 @memp_sync
-__APIREL__/api_c/memp_trickle.html#2 @memp_trickle
-__APIREL__/api_c/txn_abort.html#2 @txn_abort
-__APIREL__/api_c/txn_begin.html#2 @txn_begin
-__APIREL__/api_c/txn_begin.html#DB_TXN_NOSYNC txn_begin@DB_TXN_NOSYNC
-__APIREL__/api_c/txn_begin.html#DB_TXN_NOWAIT txn_begin@DB_TXN_NOWAIT
-__APIREL__/api_c/txn_begin.html#DB_TXN_SYNC txn_begin@DB_TXN_SYNC
-__APIREL__/api_c/txn_checkpoint.html#2 @txn_checkpoint
-__APIREL__/api_c/txn_checkpoint.html#DB_FORCE txn_checkpoint@DB_FORCE
-__APIREL__/api_c/txn_commit.html#2 @txn_commit
-__APIREL__/api_c/txn_commit.html#DB_TXN_NOSYNC txn_commit@DB_TXN_NOSYNC
-__APIREL__/api_c/txn_commit.html#DB_TXN_SYNC txn_commit@DB_TXN_SYNC
-__APIREL__/api_c/txn_id.html#2 @txn_id
-__APIREL__/api_c/txn_prepare.html#2 @txn_prepare
-__APIREL__/api_c/txn_stat.html#2 @txn_stat
diff --git a/bdb/docs/api_c/set_func_close.html b/bdb/docs/api_c/set_func_close.html
deleted file mode 100644
index 0d4af0aef66..00000000000
--- a/bdb/docs/api_c/set_func_close.html
+++ /dev/null
@@ -1,66 +0,0 @@
-<!--$Id: set_func_close.so,v 10.6 2000/05/31 15:10:00 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db_env_set_func_close</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>db_env_set_func_close</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-db_env_set_func_close(int (*func_close)(int fd));
-</pre></h3>
-<h1>Description</h1>
-<p>Replace Berkeley DB calls to the IEEE/ANSI Std 1003.1 (POSIX) <b>close</b> function
-with <b>func_close</b>, which must conform to the standard interface.
-<p>The db_env_set_func_close interface affects the entire application, not a single
-database or database environment.
-<p>While the db_env_set_func_close interface may be used to configure Berkeley DB at any time
-during the life of the application, it should normally be called before
-making any calls to the <a href="../api_c/env_create.html">db_env_create</a> or <a href="../api_c/db_create.html">db_create</a> functions.
-<p>The db_env_set_func_close function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/set_func_close.html">db_env_set_func_close</a>,
-<a href="../api_c/set_func_dirfree.html">db_env_set_func_dirfree</a>,
-<a href="../api_c/set_func_dirlist.html">db_env_set_func_dirlist</a>,
-<a href="../api_c/set_func_exists.html">db_env_set_func_exists</a>,
-<a href="../api_c/set_func_free.html">db_env_set_func_free</a>,
-<a href="../api_c/set_func_fsync.html">db_env_set_func_fsync</a>,
-<a href="../api_c/set_func_ioinfo.html">db_env_set_func_ioinfo</a>,
-<a href="../api_c/set_func_malloc.html">db_env_set_func_malloc</a>,
-<a href="../api_c/set_func_map.html">db_env_set_func_map</a>,
-<a href="../api_c/set_func_open.html">db_env_set_func_open</a>,
-<a href="../api_c/set_func_read.html">db_env_set_func_read</a>,
-<a href="../api_c/set_func_realloc.html">db_env_set_func_realloc</a>,
-<a href="../api_c/set_func_seek.html">db_env_set_func_seek</a>,
-<a href="../api_c/set_func_sleep.html">db_env_set_func_sleep</a>,
-<a href="../api_c/set_func_unlink.html">db_env_set_func_unlink</a>,
-<a href="../api_c/set_func_unmap.html">db_env_set_func_unmap</a>,
-<a href="../api_c/set_func_write.html">db_env_set_func_write</a>
-and
-<a href="../api_c/set_func_yield.html">db_env_set_func_yield</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/set_func_dirfree.html b/bdb/docs/api_c/set_func_dirfree.html
deleted file mode 100644
index 249f69cc676..00000000000
--- a/bdb/docs/api_c/set_func_dirfree.html
+++ /dev/null
@@ -1,75 +0,0 @@
-<!--$Id: set_func_dirfree.so,v 10.6 2000/05/31 15:10:00 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db_env_set_func_dirfree</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>db_env_set_func_dirfree</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-db_env_set_func_dirfree(void (*func_dirfree)(char **namesp, int cnt));
-</pre></h3>
-<h1>Description</h1>
-<p>The Berkeley DB library requires the ability to return any memory allocated as part
-of the routine which reads through a directory and creates a list of files
-that that the directory contains (see <a href="../api_c/set_func_dirlist.html">db_env_set_func_dirlist</a>).
-The <b>func_dirfree</b> argument must conform to the following interface:
-<p><blockquote><pre>int dirfree(char **namesp, int cnt);</pre></blockquote>
-<p>The <b>namesp</b> and <b>cnt</b> arguments are the same values as were
-returned by the <a href="../api_c/set_func_dirlist.html">db_env_set_func_dirlist</a> function.
-<p>The <b>func_dirfree</b> function must return the value of <b>errno</b> on
-failure and 0 on success.
-<p>The db_env_set_func_dirfree interface affects the entire application, not a single
-database or database environment.
-<p>While the db_env_set_func_dirfree interface may be used to configure Berkeley DB at any time
-during the life of the application, it should normally be called before
-making any calls to the <a href="../api_c/env_create.html">db_env_create</a> or <a href="../api_c/db_create.html">db_create</a> functions.
-<p>The db_env_set_func_dirfree interface may only be used to configure Berkeley DB before
-the <a href="../api_c/env_open.html">DBENV-&gt;open</a> interface is called.
-<p>The db_env_set_func_dirfree function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/set_func_close.html">db_env_set_func_close</a>,
-<a href="../api_c/set_func_dirfree.html">db_env_set_func_dirfree</a>,
-<a href="../api_c/set_func_dirlist.html">db_env_set_func_dirlist</a>,
-<a href="../api_c/set_func_exists.html">db_env_set_func_exists</a>,
-<a href="../api_c/set_func_free.html">db_env_set_func_free</a>,
-<a href="../api_c/set_func_fsync.html">db_env_set_func_fsync</a>,
-<a href="../api_c/set_func_ioinfo.html">db_env_set_func_ioinfo</a>,
-<a href="../api_c/set_func_malloc.html">db_env_set_func_malloc</a>,
-<a href="../api_c/set_func_map.html">db_env_set_func_map</a>,
-<a href="../api_c/set_func_open.html">db_env_set_func_open</a>,
-<a href="../api_c/set_func_read.html">db_env_set_func_read</a>,
-<a href="../api_c/set_func_realloc.html">db_env_set_func_realloc</a>,
-<a href="../api_c/set_func_seek.html">db_env_set_func_seek</a>,
-<a href="../api_c/set_func_sleep.html">db_env_set_func_sleep</a>,
-<a href="../api_c/set_func_unlink.html">db_env_set_func_unlink</a>,
-<a href="../api_c/set_func_unmap.html">db_env_set_func_unmap</a>,
-<a href="../api_c/set_func_write.html">db_env_set_func_write</a>
-and
-<a href="../api_c/set_func_yield.html">db_env_set_func_yield</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/set_func_dirlist.html b/bdb/docs/api_c/set_func_dirlist.html
deleted file mode 100644
index 5025912e5d9..00000000000
--- a/bdb/docs/api_c/set_func_dirlist.html
+++ /dev/null
@@ -1,78 +0,0 @@
-<!--$Id: set_func_dirlist.so,v 10.6 2000/05/31 15:10:00 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db_env_set_func_dirlist</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>db_env_set_func_dirlist</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-db_env_set_func_dirlist(
- int (*func_dirlist)(const char *dir, char ***namesp, int *cntp));
-</pre></h3>
-<h1>Description</h1>
-<p>The Berkeley DB library requires the ability to read through a directory and
-create a list of files that that the directory contains. The
-<b>func_dirlist</b> argument must conform to the following interface:
-<p><blockquote><pre>int dirlist(const char *dir, char ***namesp, int *cntp);</pre></blockquote>
-<p>The <b>dir</b> argument is the name of the directory to be searched.
-The function must return a pointer to an array of nul-terminated file
-names in the memory location referenced by the argument <b>namesp</b>,
-and a count of the number of elements in the array in the memory location
-referenced by <b>cntp</b>.
-<p>The <b>func_dirlist</b> function must return the value of <b>errno</b> on
-failure and 0 on success.
-<p>The db_env_set_func_dirlist interface affects the entire application, not a single
-database or database environment.
-<p>While the db_env_set_func_dirlist interface may be used to configure Berkeley DB at any time
-during the life of the application, it should normally be called before
-making any calls to the <a href="../api_c/env_create.html">db_env_create</a> or <a href="../api_c/db_create.html">db_create</a> functions.
-<p>The db_env_set_func_dirlist interface may only be used to configure Berkeley DB before
-the <a href="../api_c/env_open.html">DBENV-&gt;open</a> interface is called.
-<p>The db_env_set_func_dirlist function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/set_func_close.html">db_env_set_func_close</a>,
-<a href="../api_c/set_func_dirfree.html">db_env_set_func_dirfree</a>,
-<a href="../api_c/set_func_dirlist.html">db_env_set_func_dirlist</a>,
-<a href="../api_c/set_func_exists.html">db_env_set_func_exists</a>,
-<a href="../api_c/set_func_free.html">db_env_set_func_free</a>,
-<a href="../api_c/set_func_fsync.html">db_env_set_func_fsync</a>,
-<a href="../api_c/set_func_ioinfo.html">db_env_set_func_ioinfo</a>,
-<a href="../api_c/set_func_malloc.html">db_env_set_func_malloc</a>,
-<a href="../api_c/set_func_map.html">db_env_set_func_map</a>,
-<a href="../api_c/set_func_open.html">db_env_set_func_open</a>,
-<a href="../api_c/set_func_read.html">db_env_set_func_read</a>,
-<a href="../api_c/set_func_realloc.html">db_env_set_func_realloc</a>,
-<a href="../api_c/set_func_seek.html">db_env_set_func_seek</a>,
-<a href="../api_c/set_func_sleep.html">db_env_set_func_sleep</a>,
-<a href="../api_c/set_func_unlink.html">db_env_set_func_unlink</a>,
-<a href="../api_c/set_func_unmap.html">db_env_set_func_unmap</a>,
-<a href="../api_c/set_func_write.html">db_env_set_func_write</a>
-and
-<a href="../api_c/set_func_yield.html">db_env_set_func_yield</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/set_func_exists.html b/bdb/docs/api_c/set_func_exists.html
deleted file mode 100644
index 0b38b1e2203..00000000000
--- a/bdb/docs/api_c/set_func_exists.html
+++ /dev/null
@@ -1,75 +0,0 @@
-<!--$Id: set_func_exists.so,v 10.6 2000/05/31 15:10:00 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db_env_set_func_exists</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>db_env_set_func_exists</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-db_env_set_func_exists(int (*func_exists)(const char *path, int *isdirp));
-</pre></h3>
-<h1>Description</h1>
-<p>The Berkeley DB library requires the ability to determine if a file exists, and
-optionally, if it is a file of type directory. The <b>func</b> argument
-must conform to the following interface:
-<p><blockquote><pre>int exists(const char *path, int *isdirp);</pre></blockquote>
-<p>The <b>path</b> argument is the pathname of the file to be checked.
-<p>If the <b>isdirp</b> argument is non-NULL, it must be set to non-0 if
-<b>path</b> is a directory, and 0 if <b>path</b> is not a directory.
-<p>The <b>func_exists</b> function must return the value of <b>errno</b> on
-failure and 0 on success.
-<p>The db_env_set_func_exists interface affects the entire application, not a single
-database or database environment.
-<p>While the db_env_set_func_exists interface may be used to configure Berkeley DB at any time
-during the life of the application, it should normally be called before
-making any calls to the <a href="../api_c/env_create.html">db_env_create</a> or <a href="../api_c/db_create.html">db_create</a> functions.
-<p>The db_env_set_func_exists interface may only be used to configure Berkeley DB before
-the <a href="../api_c/env_open.html">DBENV-&gt;open</a> interface is called.
-<p>The db_env_set_func_exists function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/set_func_close.html">db_env_set_func_close</a>,
-<a href="../api_c/set_func_dirfree.html">db_env_set_func_dirfree</a>,
-<a href="../api_c/set_func_dirlist.html">db_env_set_func_dirlist</a>,
-<a href="../api_c/set_func_exists.html">db_env_set_func_exists</a>,
-<a href="../api_c/set_func_free.html">db_env_set_func_free</a>,
-<a href="../api_c/set_func_fsync.html">db_env_set_func_fsync</a>,
-<a href="../api_c/set_func_ioinfo.html">db_env_set_func_ioinfo</a>,
-<a href="../api_c/set_func_malloc.html">db_env_set_func_malloc</a>,
-<a href="../api_c/set_func_map.html">db_env_set_func_map</a>,
-<a href="../api_c/set_func_open.html">db_env_set_func_open</a>,
-<a href="../api_c/set_func_read.html">db_env_set_func_read</a>,
-<a href="../api_c/set_func_realloc.html">db_env_set_func_realloc</a>,
-<a href="../api_c/set_func_seek.html">db_env_set_func_seek</a>,
-<a href="../api_c/set_func_sleep.html">db_env_set_func_sleep</a>,
-<a href="../api_c/set_func_unlink.html">db_env_set_func_unlink</a>,
-<a href="../api_c/set_func_unmap.html">db_env_set_func_unmap</a>,
-<a href="../api_c/set_func_write.html">db_env_set_func_write</a>
-and
-<a href="../api_c/set_func_yield.html">db_env_set_func_yield</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/set_func_free.html b/bdb/docs/api_c/set_func_free.html
deleted file mode 100644
index 8b7b1afa60c..00000000000
--- a/bdb/docs/api_c/set_func_free.html
+++ /dev/null
@@ -1,67 +0,0 @@
-<!--$Id: set_func_free.so,v 10.6 2000/05/31 15:10:00 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db_env_set_func_free</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>db_env_set_func_free</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-db_env_set_func_free(void (*func_free)(void *ptr));
-</pre></h3>
-<h1>Description</h1>
-<p>Replace Berkeley DB calls to the ANSI C X3.159-1989 (ANSI C) standard
-<b>free</b> function with <b>func_free</b>, which must conform to
-the standard interface.
-<p>The db_env_set_func_free interface affects the entire application, not a single
-database or database environment.
-<p>While the db_env_set_func_free interface may be used to configure Berkeley DB at any time
-during the life of the application, it should normally be called before
-making any calls to the <a href="../api_c/env_create.html">db_env_create</a> or <a href="../api_c/db_create.html">db_create</a> functions.
-<p>The db_env_set_func_free function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/set_func_close.html">db_env_set_func_close</a>,
-<a href="../api_c/set_func_dirfree.html">db_env_set_func_dirfree</a>,
-<a href="../api_c/set_func_dirlist.html">db_env_set_func_dirlist</a>,
-<a href="../api_c/set_func_exists.html">db_env_set_func_exists</a>,
-<a href="../api_c/set_func_free.html">db_env_set_func_free</a>,
-<a href="../api_c/set_func_fsync.html">db_env_set_func_fsync</a>,
-<a href="../api_c/set_func_ioinfo.html">db_env_set_func_ioinfo</a>,
-<a href="../api_c/set_func_malloc.html">db_env_set_func_malloc</a>,
-<a href="../api_c/set_func_map.html">db_env_set_func_map</a>,
-<a href="../api_c/set_func_open.html">db_env_set_func_open</a>,
-<a href="../api_c/set_func_read.html">db_env_set_func_read</a>,
-<a href="../api_c/set_func_realloc.html">db_env_set_func_realloc</a>,
-<a href="../api_c/set_func_seek.html">db_env_set_func_seek</a>,
-<a href="../api_c/set_func_sleep.html">db_env_set_func_sleep</a>,
-<a href="../api_c/set_func_unlink.html">db_env_set_func_unlink</a>,
-<a href="../api_c/set_func_unmap.html">db_env_set_func_unmap</a>,
-<a href="../api_c/set_func_write.html">db_env_set_func_write</a>
-and
-<a href="../api_c/set_func_yield.html">db_env_set_func_yield</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/set_func_fsync.html b/bdb/docs/api_c/set_func_fsync.html
deleted file mode 100644
index f73956108b2..00000000000
--- a/bdb/docs/api_c/set_func_fsync.html
+++ /dev/null
@@ -1,66 +0,0 @@
-<!--$Id: set_func_fsync.so,v 10.6 2000/05/31 15:10:00 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db_env_set_func_fsync</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>db_env_set_func_fsync</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-db_env_set_func_fsync(int (*func_fsync)(int fd));
-</pre></h3>
-<h1>Description</h1>
-<p>Replace Berkeley DB calls to the IEEE/ANSI Std 1003.1 (POSIX) <b>fsync</b> function
-with <b>func_fsync</b>, which must conform to the standard interface.
-<p>The db_env_set_func_fsync interface affects the entire application, not a single
-database or database environment.
-<p>While the db_env_set_func_fsync interface may be used to configure Berkeley DB at any time
-during the life of the application, it should normally be called before
-making any calls to the <a href="../api_c/env_create.html">db_env_create</a> or <a href="../api_c/db_create.html">db_create</a> functions.
-<p>The db_env_set_func_fsync function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/set_func_close.html">db_env_set_func_close</a>,
-<a href="../api_c/set_func_dirfree.html">db_env_set_func_dirfree</a>,
-<a href="../api_c/set_func_dirlist.html">db_env_set_func_dirlist</a>,
-<a href="../api_c/set_func_exists.html">db_env_set_func_exists</a>,
-<a href="../api_c/set_func_free.html">db_env_set_func_free</a>,
-<a href="../api_c/set_func_fsync.html">db_env_set_func_fsync</a>,
-<a href="../api_c/set_func_ioinfo.html">db_env_set_func_ioinfo</a>,
-<a href="../api_c/set_func_malloc.html">db_env_set_func_malloc</a>,
-<a href="../api_c/set_func_map.html">db_env_set_func_map</a>,
-<a href="../api_c/set_func_open.html">db_env_set_func_open</a>,
-<a href="../api_c/set_func_read.html">db_env_set_func_read</a>,
-<a href="../api_c/set_func_realloc.html">db_env_set_func_realloc</a>,
-<a href="../api_c/set_func_seek.html">db_env_set_func_seek</a>,
-<a href="../api_c/set_func_sleep.html">db_env_set_func_sleep</a>,
-<a href="../api_c/set_func_unlink.html">db_env_set_func_unlink</a>,
-<a href="../api_c/set_func_unmap.html">db_env_set_func_unmap</a>,
-<a href="../api_c/set_func_write.html">db_env_set_func_write</a>
-and
-<a href="../api_c/set_func_yield.html">db_env_set_func_yield</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/set_func_ioinfo.html b/bdb/docs/api_c/set_func_ioinfo.html
deleted file mode 100644
index 3a0143e57ea..00000000000
--- a/bdb/docs/api_c/set_func_ioinfo.html
+++ /dev/null
@@ -1,83 +0,0 @@
-<!--$Id: set_func_ioinfo.so,v 10.6 2000/05/31 15:10:00 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db_env_set_func_ioinfo</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>db_env_set_func_ioinfo</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-db_env_set_func_ioinfo(int (*func_ioinfo)(const char *path,
- int fd, u_int32_t *mbytesp, u_int32_t *bytesp, u_int32_t *iosizep));
-</pre></h3>
-<h1>Description</h1>
-<p>The Berkeley DB library requires the ability to determine the size and I/O
-characteristics of a file. The <b>func_ioinfo</b> argument must conform
-to the following interface:
-<p><blockquote><pre>int ioinfo(const char *path, int fd,
-u_int32_t *mbytesp, u_int32_t *bytesp, u_int32_t *iosizep);</pre></blockquote>
-<p>The <b>path</b> argument is the pathname of the file to be checked, and the
-<b>fd</b> argument is an open file descriptor on the file.
-<p>If the <b>mbytesp</b> and <b>bytesp</b> arguments are non-NULL, the
-<b>ioinfo</b> function must return in them the size of the file: the
-number of megabytes in the file into the memory location referenced by
-the <b>mbytesp</b> argument, and the number of bytes over and above that
-number of megabytes into the memory location referenced by the
-<b>bytesp</b> argument.
-<p>In addition, if the <b>iosizep</b> argument is non-NULL, the <b>ioinfo</b>
-function must return the optimum granularity for I/O operations to the file
-in the memory location referenced by it.
-<p>The <b>func_ioinfo</b> function must return the value of <b>errno</b> on
-failure and 0 on success.
-<p>The db_env_set_func_ioinfo interface affects the entire application, not a single
-database or database environment.
-<p>While the db_env_set_func_ioinfo interface may be used to configure Berkeley DB at any time
-during the life of the application, it should normally be called before
-making any calls to the <a href="../api_c/env_create.html">db_env_create</a> or <a href="../api_c/db_create.html">db_create</a> functions.
-<p>The db_env_set_func_ioinfo function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/set_func_close.html">db_env_set_func_close</a>,
-<a href="../api_c/set_func_dirfree.html">db_env_set_func_dirfree</a>,
-<a href="../api_c/set_func_dirlist.html">db_env_set_func_dirlist</a>,
-<a href="../api_c/set_func_exists.html">db_env_set_func_exists</a>,
-<a href="../api_c/set_func_free.html">db_env_set_func_free</a>,
-<a href="../api_c/set_func_fsync.html">db_env_set_func_fsync</a>,
-<a href="../api_c/set_func_ioinfo.html">db_env_set_func_ioinfo</a>,
-<a href="../api_c/set_func_malloc.html">db_env_set_func_malloc</a>,
-<a href="../api_c/set_func_map.html">db_env_set_func_map</a>,
-<a href="../api_c/set_func_open.html">db_env_set_func_open</a>,
-<a href="../api_c/set_func_read.html">db_env_set_func_read</a>,
-<a href="../api_c/set_func_realloc.html">db_env_set_func_realloc</a>,
-<a href="../api_c/set_func_seek.html">db_env_set_func_seek</a>,
-<a href="../api_c/set_func_sleep.html">db_env_set_func_sleep</a>,
-<a href="../api_c/set_func_unlink.html">db_env_set_func_unlink</a>,
-<a href="../api_c/set_func_unmap.html">db_env_set_func_unmap</a>,
-<a href="../api_c/set_func_write.html">db_env_set_func_write</a>
-and
-<a href="../api_c/set_func_yield.html">db_env_set_func_yield</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/set_func_malloc.html b/bdb/docs/api_c/set_func_malloc.html
deleted file mode 100644
index a4be5bfb04e..00000000000
--- a/bdb/docs/api_c/set_func_malloc.html
+++ /dev/null
@@ -1,67 +0,0 @@
-<!--$Id: set_func_malloc.so,v 10.6 2000/05/31 15:10:01 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db_env_set_func_malloc</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>db_env_set_func_malloc</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-db_env_set_func_malloc(void *(*func_malloc)(size_t size));
-</pre></h3>
-<h1>Description</h1>
-<p>Replace Berkeley DB calls to the ANSI C X3.159-1989 (ANSI C) standard
-<b>malloc</b> function with <b>func_malloc</b>, which must conform to
-the standard interface.
-<p>The db_env_set_func_malloc interface affects the entire application, not a single
-database or database environment.
-<p>While the db_env_set_func_malloc interface may be used to configure Berkeley DB at any time
-during the life of the application, it should normally be called before
-making any calls to the <a href="../api_c/env_create.html">db_env_create</a> or <a href="../api_c/db_create.html">db_create</a> functions.
-<p>The db_env_set_func_malloc function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/set_func_close.html">db_env_set_func_close</a>,
-<a href="../api_c/set_func_dirfree.html">db_env_set_func_dirfree</a>,
-<a href="../api_c/set_func_dirlist.html">db_env_set_func_dirlist</a>,
-<a href="../api_c/set_func_exists.html">db_env_set_func_exists</a>,
-<a href="../api_c/set_func_free.html">db_env_set_func_free</a>,
-<a href="../api_c/set_func_fsync.html">db_env_set_func_fsync</a>,
-<a href="../api_c/set_func_ioinfo.html">db_env_set_func_ioinfo</a>,
-<a href="../api_c/set_func_malloc.html">db_env_set_func_malloc</a>,
-<a href="../api_c/set_func_map.html">db_env_set_func_map</a>,
-<a href="../api_c/set_func_open.html">db_env_set_func_open</a>,
-<a href="../api_c/set_func_read.html">db_env_set_func_read</a>,
-<a href="../api_c/set_func_realloc.html">db_env_set_func_realloc</a>,
-<a href="../api_c/set_func_seek.html">db_env_set_func_seek</a>,
-<a href="../api_c/set_func_sleep.html">db_env_set_func_sleep</a>,
-<a href="../api_c/set_func_unlink.html">db_env_set_func_unlink</a>,
-<a href="../api_c/set_func_unmap.html">db_env_set_func_unmap</a>,
-<a href="../api_c/set_func_write.html">db_env_set_func_write</a>
-and
-<a href="../api_c/set_func_yield.html">db_env_set_func_yield</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/set_func_map.html b/bdb/docs/api_c/set_func_map.html
deleted file mode 100644
index e14e9c4aad7..00000000000
--- a/bdb/docs/api_c/set_func_map.html
+++ /dev/null
@@ -1,86 +0,0 @@
-<!--$Id: set_func_map.so,v 10.8 2000/05/31 15:10:01 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db_env_set_func_map</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>db_env_set_func_map</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-db_env_set_func_map(int (*func_map)(char *path,
- size_t len, int is_region, int is_rdonly, void **addr));
-</pre></h3>
-<h1>Description</h1>
-<p>The Berkeley DB library requires the ability to map a file into memory and to
-create shared memory regions (which may or may not be backed by files).
-The <b>func_map</b> argument must conform to the following interface:
-<p><blockquote><pre>int map(char *path, size_t len,
-int is_region, int is_rdonly, void **addr);</pre></blockquote>
-<p>The <b>path</b> argument is the name of a file.
-<p>The <b>is_region</b> argument will be zero if the intention is to map a
-file into shared memory. In this case, the <b>map</b> function must map
-the first <b>len</b> bytes of the file into memory and return a pointer
-to the mapped location in the memory location referenced by the argument
-<b>addr</b>. The <b>is_rdonly</b> argument will be non-zero if the file
-is considered read-only by the caller.
-<p>The <b>is_region</b> argument will be non-zero if the memory is intended
-to be used as a shared memory region for synchronization between Berkeley DB
-threads/processes. In this case, the returned memory may be of any kind
-(e.g., anonymous), but must be able to support semaphores. In this case,
-the <b>path</b> argument may be ignored (although future <b>map</b>
-calls using the same <b>path</b> must return the same memory), and the
-<b>is_rdonly</b> argument will always be zero.
-<p>The <b>func_map</b> function must return the value of <b>errno</b> on
-failure and 0 on success.
-<p>The db_env_set_func_map interface affects the entire application, not a single
-database or database environment.
-<p>While the db_env_set_func_map interface may be used to configure Berkeley DB at any time
-during the life of the application, it should normally be called before
-making any calls to the <a href="../api_c/env_create.html">db_env_create</a> or <a href="../api_c/db_create.html">db_create</a> functions.
-<p>The db_env_set_func_map function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/set_func_close.html">db_env_set_func_close</a>,
-<a href="../api_c/set_func_dirfree.html">db_env_set_func_dirfree</a>,
-<a href="../api_c/set_func_dirlist.html">db_env_set_func_dirlist</a>,
-<a href="../api_c/set_func_exists.html">db_env_set_func_exists</a>,
-<a href="../api_c/set_func_free.html">db_env_set_func_free</a>,
-<a href="../api_c/set_func_fsync.html">db_env_set_func_fsync</a>,
-<a href="../api_c/set_func_ioinfo.html">db_env_set_func_ioinfo</a>,
-<a href="../api_c/set_func_malloc.html">db_env_set_func_malloc</a>,
-<a href="../api_c/set_func_map.html">db_env_set_func_map</a>,
-<a href="../api_c/set_func_open.html">db_env_set_func_open</a>,
-<a href="../api_c/set_func_read.html">db_env_set_func_read</a>,
-<a href="../api_c/set_func_realloc.html">db_env_set_func_realloc</a>,
-<a href="../api_c/set_func_seek.html">db_env_set_func_seek</a>,
-<a href="../api_c/set_func_sleep.html">db_env_set_func_sleep</a>,
-<a href="../api_c/set_func_unlink.html">db_env_set_func_unlink</a>,
-<a href="../api_c/set_func_unmap.html">db_env_set_func_unmap</a>,
-<a href="../api_c/set_func_write.html">db_env_set_func_write</a>
-and
-<a href="../api_c/set_func_yield.html">db_env_set_func_yield</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/set_func_open.html b/bdb/docs/api_c/set_func_open.html
deleted file mode 100644
index ff72d9882ed..00000000000
--- a/bdb/docs/api_c/set_func_open.html
+++ /dev/null
@@ -1,66 +0,0 @@
-<!--$Id: set_func_open.so,v 10.6 2000/05/31 15:10:01 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db_env_set_func_open</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>db_env_set_func_open</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-db_env_set_func_open(int (*func_open)(const char *path, int flags, int mode));
-</pre></h3>
-<h1>Description</h1>
-<p>Replace Berkeley DB calls to the IEEE/ANSI Std 1003.1 (POSIX) <b>open</b> function
-with <b>func_open</b>, which must conform to the standard interface.
-<p>The db_env_set_func_open interface affects the entire application, not a single
-database or database environment.
-<p>While the db_env_set_func_open interface may be used to configure Berkeley DB at any time
-during the life of the application, it should normally be called before
-making any calls to the <a href="../api_c/env_create.html">db_env_create</a> or <a href="../api_c/db_create.html">db_create</a> functions.
-<p>The db_env_set_func_open function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/set_func_close.html">db_env_set_func_close</a>,
-<a href="../api_c/set_func_dirfree.html">db_env_set_func_dirfree</a>,
-<a href="../api_c/set_func_dirlist.html">db_env_set_func_dirlist</a>,
-<a href="../api_c/set_func_exists.html">db_env_set_func_exists</a>,
-<a href="../api_c/set_func_free.html">db_env_set_func_free</a>,
-<a href="../api_c/set_func_fsync.html">db_env_set_func_fsync</a>,
-<a href="../api_c/set_func_ioinfo.html">db_env_set_func_ioinfo</a>,
-<a href="../api_c/set_func_malloc.html">db_env_set_func_malloc</a>,
-<a href="../api_c/set_func_map.html">db_env_set_func_map</a>,
-<a href="../api_c/set_func_open.html">db_env_set_func_open</a>,
-<a href="../api_c/set_func_read.html">db_env_set_func_read</a>,
-<a href="../api_c/set_func_realloc.html">db_env_set_func_realloc</a>,
-<a href="../api_c/set_func_seek.html">db_env_set_func_seek</a>,
-<a href="../api_c/set_func_sleep.html">db_env_set_func_sleep</a>,
-<a href="../api_c/set_func_unlink.html">db_env_set_func_unlink</a>,
-<a href="../api_c/set_func_unmap.html">db_env_set_func_unmap</a>,
-<a href="../api_c/set_func_write.html">db_env_set_func_write</a>
-and
-<a href="../api_c/set_func_yield.html">db_env_set_func_yield</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/set_func_read.html b/bdb/docs/api_c/set_func_read.html
deleted file mode 100644
index b3ee9308118..00000000000
--- a/bdb/docs/api_c/set_func_read.html
+++ /dev/null
@@ -1,66 +0,0 @@
-<!--$Id: set_func_read.so,v 10.6 2000/05/31 15:10:01 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db_env_set_func_read</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>db_env_set_func_read</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-db_env_set_func_read(ssize_t (*func_read)(int fd, void *buf, size_t nbytes));
-</pre></h3>
-<h1>Description</h1>
-<p>Replace Berkeley DB calls to the IEEE/ANSI Std 1003.1 (POSIX) <b>read</b> function
-with <b>func_read</b>, which must conform to the standard interface.
-<p>The db_env_set_func_read interface affects the entire application, not a single
-database or database environment.
-<p>While the db_env_set_func_read interface may be used to configure Berkeley DB at any time
-during the life of the application, it should normally be called before
-making any calls to the <a href="../api_c/env_create.html">db_env_create</a> or <a href="../api_c/db_create.html">db_create</a> functions.
-<p>The db_env_set_func_read function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/set_func_close.html">db_env_set_func_close</a>,
-<a href="../api_c/set_func_dirfree.html">db_env_set_func_dirfree</a>,
-<a href="../api_c/set_func_dirlist.html">db_env_set_func_dirlist</a>,
-<a href="../api_c/set_func_exists.html">db_env_set_func_exists</a>,
-<a href="../api_c/set_func_free.html">db_env_set_func_free</a>,
-<a href="../api_c/set_func_fsync.html">db_env_set_func_fsync</a>,
-<a href="../api_c/set_func_ioinfo.html">db_env_set_func_ioinfo</a>,
-<a href="../api_c/set_func_malloc.html">db_env_set_func_malloc</a>,
-<a href="../api_c/set_func_map.html">db_env_set_func_map</a>,
-<a href="../api_c/set_func_open.html">db_env_set_func_open</a>,
-<a href="../api_c/set_func_read.html">db_env_set_func_read</a>,
-<a href="../api_c/set_func_realloc.html">db_env_set_func_realloc</a>,
-<a href="../api_c/set_func_seek.html">db_env_set_func_seek</a>,
-<a href="../api_c/set_func_sleep.html">db_env_set_func_sleep</a>,
-<a href="../api_c/set_func_unlink.html">db_env_set_func_unlink</a>,
-<a href="../api_c/set_func_unmap.html">db_env_set_func_unmap</a>,
-<a href="../api_c/set_func_write.html">db_env_set_func_write</a>
-and
-<a href="../api_c/set_func_yield.html">db_env_set_func_yield</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/set_func_realloc.html b/bdb/docs/api_c/set_func_realloc.html
deleted file mode 100644
index 91e5835bcca..00000000000
--- a/bdb/docs/api_c/set_func_realloc.html
+++ /dev/null
@@ -1,67 +0,0 @@
-<!--$Id: set_func_realloc.so,v 10.6 2000/05/31 15:10:01 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db_env_set_func_realloc</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>db_env_set_func_realloc</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-db_env_set_func_realloc(void *(*func_realloc)(void *ptr, size_t size));
-</pre></h3>
-<h1>Description</h1>
-<p>Replace Berkeley DB calls to the ANSI C X3.159-1989 (ANSI C) standard
-<b>realloc</b> function with <b>func_realloc</b>, which must conform to
-the standard interface.
-<p>The db_env_set_func_realloc interface affects the entire application, not a single
-database or database environment.
-<p>While the db_env_set_func_realloc interface may be used to configure Berkeley DB at any time
-during the life of the application, it should normally be called before
-making any calls to the <a href="../api_c/env_create.html">db_env_create</a> or <a href="../api_c/db_create.html">db_create</a> functions.
-<p>The db_env_set_func_realloc function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/set_func_close.html">db_env_set_func_close</a>,
-<a href="../api_c/set_func_dirfree.html">db_env_set_func_dirfree</a>,
-<a href="../api_c/set_func_dirlist.html">db_env_set_func_dirlist</a>,
-<a href="../api_c/set_func_exists.html">db_env_set_func_exists</a>,
-<a href="../api_c/set_func_free.html">db_env_set_func_free</a>,
-<a href="../api_c/set_func_fsync.html">db_env_set_func_fsync</a>,
-<a href="../api_c/set_func_ioinfo.html">db_env_set_func_ioinfo</a>,
-<a href="../api_c/set_func_malloc.html">db_env_set_func_malloc</a>,
-<a href="../api_c/set_func_map.html">db_env_set_func_map</a>,
-<a href="../api_c/set_func_open.html">db_env_set_func_open</a>,
-<a href="../api_c/set_func_read.html">db_env_set_func_read</a>,
-<a href="../api_c/set_func_realloc.html">db_env_set_func_realloc</a>,
-<a href="../api_c/set_func_seek.html">db_env_set_func_seek</a>,
-<a href="../api_c/set_func_sleep.html">db_env_set_func_sleep</a>,
-<a href="../api_c/set_func_unlink.html">db_env_set_func_unlink</a>,
-<a href="../api_c/set_func_unmap.html">db_env_set_func_unmap</a>,
-<a href="../api_c/set_func_write.html">db_env_set_func_write</a>
-and
-<a href="../api_c/set_func_yield.html">db_env_set_func_yield</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/set_func_rename.html b/bdb/docs/api_c/set_func_rename.html
deleted file mode 100644
index bb588672359..00000000000
--- a/bdb/docs/api_c/set_func_rename.html
+++ /dev/null
@@ -1,66 +0,0 @@
-<!--$Id: set_func_rename.so,v 10.6 2000/05/31 15:10:01 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db_env_set_func_rename</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>db_env_set_func_rename</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-db_env_set_func_rename(int (*func_rename)(int fd));
-</pre></h3>
-<h1>Description</h1>
-<p>Replace Berkeley DB calls to the IEEE/ANSI Std 1003.1 (POSIX) <b>close</b> function
-with <b>func_close</b>, which must conform to the standard interface.
-<p>The db_env_set_func_rename interface affects the entire application, not a single
-database or database environment.
-<p>While the db_env_set_func_rename interface may be used to configure Berkeley DB at any time
-during the life of the application, it should normally be called before
-making any calls to the <a href="../api_c/env_create.html">db_env_create</a> or <a href="../api_c/db_create.html">db_create</a> functions.
-<p>The db_env_set_func_rename function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/set_func_close.html">db_env_set_func_close</a>,
-<a href="../api_c/set_func_dirfree.html">db_env_set_func_dirfree</a>,
-<a href="../api_c/set_func_dirlist.html">db_env_set_func_dirlist</a>,
-<a href="../api_c/set_func_exists.html">db_env_set_func_exists</a>,
-<a href="../api_c/set_func_free.html">db_env_set_func_free</a>,
-<a href="../api_c/set_func_fsync.html">db_env_set_func_fsync</a>,
-<a href="../api_c/set_func_ioinfo.html">db_env_set_func_ioinfo</a>,
-<a href="../api_c/set_func_malloc.html">db_env_set_func_malloc</a>,
-<a href="../api_c/set_func_map.html">db_env_set_func_map</a>,
-<a href="../api_c/set_func_open.html">db_env_set_func_open</a>,
-<a href="../api_c/set_func_read.html">db_env_set_func_read</a>,
-<a href="../api_c/set_func_realloc.html">db_env_set_func_realloc</a>,
-<a href="../api_c/set_func_seek.html">db_env_set_func_seek</a>,
-<a href="../api_c/set_func_sleep.html">db_env_set_func_sleep</a>,
-<a href="../api_c/set_func_unlink.html">db_env_set_func_unlink</a>,
-<a href="../api_c/set_func_unmap.html">db_env_set_func_unmap</a>,
-<a href="../api_c/set_func_write.html">db_env_set_func_write</a>
-and
-<a href="../api_c/set_func_yield.html">db_env_set_func_yield</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/set_func_seek.html b/bdb/docs/api_c/set_func_seek.html
deleted file mode 100644
index dd27384f672..00000000000
--- a/bdb/docs/api_c/set_func_seek.html
+++ /dev/null
@@ -1,81 +0,0 @@
-<!--$Id: set_func_seek.so,v 10.7 2000/05/31 15:10:01 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db_env_set_func_seek</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>db_env_set_func_seek</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-db_env_set_func_seek(int (*func_seek)(int fd, size_t pgsize,
- db_pgno_t pageno, u_int32_t relative, int rewind, int whence));
-</pre></h3>
-<h1>Description</h1>
-<p>The Berkeley DB library requires the ability to specify that a subsequent read
-from or write to a file will occur at a specific location in that file.
-The <b>func_seek</b> argument must conform to the following interface:
-<p><blockquote><pre>int seek(int fd, size_t pgsize, db_pgno_t pageno,
-u_int32_t relative, int rewind, int whence);</pre></blockquote>
-<p>The <b>fd</b> argument is an open file descriptor on the file.
-<p>The <b>seek</b> function must cause a subsequent read from or write to
-the file to occur at a byte offset specified by the calculation:
-<p><blockquote><pre>(pgsize * pageno) + relative</pre></blockquote>
-<p>If <b>rewind</b> is non-zero, the byte offset is treated as a backwards
-seek, not a forwards one.
-<p>The <b>whence</b> argument specifies where in the file the byte offset
-is relative to, as described by the IEEE/ANSI Std 1003.1 (POSIX) <b>lseek</b> system
-call.
-<p>The <b>func_seek</b> function must return the value of <b>errno</b> on
-failure and 0 on success.
-<p>The db_env_set_func_seek interface affects the entire application, not a single
-database or database environment.
-<p>While the db_env_set_func_seek interface may be used to configure Berkeley DB at any time
-during the life of the application, it should normally be called before
-making any calls to the <a href="../api_c/env_create.html">db_env_create</a> or <a href="../api_c/db_create.html">db_create</a> functions.
-<p>The db_env_set_func_seek function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/set_func_close.html">db_env_set_func_close</a>,
-<a href="../api_c/set_func_dirfree.html">db_env_set_func_dirfree</a>,
-<a href="../api_c/set_func_dirlist.html">db_env_set_func_dirlist</a>,
-<a href="../api_c/set_func_exists.html">db_env_set_func_exists</a>,
-<a href="../api_c/set_func_free.html">db_env_set_func_free</a>,
-<a href="../api_c/set_func_fsync.html">db_env_set_func_fsync</a>,
-<a href="../api_c/set_func_ioinfo.html">db_env_set_func_ioinfo</a>,
-<a href="../api_c/set_func_malloc.html">db_env_set_func_malloc</a>,
-<a href="../api_c/set_func_map.html">db_env_set_func_map</a>,
-<a href="../api_c/set_func_open.html">db_env_set_func_open</a>,
-<a href="../api_c/set_func_read.html">db_env_set_func_read</a>,
-<a href="../api_c/set_func_realloc.html">db_env_set_func_realloc</a>,
-<a href="../api_c/set_func_seek.html">db_env_set_func_seek</a>,
-<a href="../api_c/set_func_sleep.html">db_env_set_func_sleep</a>,
-<a href="../api_c/set_func_unlink.html">db_env_set_func_unlink</a>,
-<a href="../api_c/set_func_unmap.html">db_env_set_func_unmap</a>,
-<a href="../api_c/set_func_write.html">db_env_set_func_write</a>
-and
-<a href="../api_c/set_func_yield.html">db_env_set_func_yield</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/set_func_sleep.html b/bdb/docs/api_c/set_func_sleep.html
deleted file mode 100644
index dd454b1a725..00000000000
--- a/bdb/docs/api_c/set_func_sleep.html
+++ /dev/null
@@ -1,76 +0,0 @@
-<!--$Id: set_func_sleep.so,v 10.7 2000/05/31 15:10:01 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db_env_set_func_sleep</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>db_env_set_func_sleep</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-db_env_set_func_sleep(int (*func_sleep)(u_long seconds, u_long microseconds));
-</pre></h3>
-<h1>Description</h1>
-<p>The Berkeley DB library requires the ability to cause a process to suspend itself
-for a period of time, relinquishing control of the processor to any other
-waiting thread of control. The <b>func_sleep</b> argument must conform
-to the following interface:
-<p><blockquote><pre>int sleep(u_long seconds, u_long microseconds);</pre></blockquote>
-<p>The <b>seconds</b> and <b>microseconds</b> arguments specify the amount
-of time to wait until the suspending thread of control should run again.
-<p>The <b>seconds</b> and <b>microseconds</b> arguments may not be
-normalized when the <b>sleep</b> function is called, i.e., the
-<b>microseconds</b> argument may be greater than 1000000.
-<p>The <b>func_sleep</b> function must return the value of <b>errno</b> on
-failure and 0 on success.
-<p>The db_env_set_func_sleep interface affects the entire application, not a single
-database or database environment.
-<p>While the db_env_set_func_sleep interface may be used to configure Berkeley DB at any time
-during the life of the application, it should normally be called before
-making any calls to the <a href="../api_c/env_create.html">db_env_create</a> or <a href="../api_c/db_create.html">db_create</a> functions.
-<p>The db_env_set_func_sleep function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/set_func_close.html">db_env_set_func_close</a>,
-<a href="../api_c/set_func_dirfree.html">db_env_set_func_dirfree</a>,
-<a href="../api_c/set_func_dirlist.html">db_env_set_func_dirlist</a>,
-<a href="../api_c/set_func_exists.html">db_env_set_func_exists</a>,
-<a href="../api_c/set_func_free.html">db_env_set_func_free</a>,
-<a href="../api_c/set_func_fsync.html">db_env_set_func_fsync</a>,
-<a href="../api_c/set_func_ioinfo.html">db_env_set_func_ioinfo</a>,
-<a href="../api_c/set_func_malloc.html">db_env_set_func_malloc</a>,
-<a href="../api_c/set_func_map.html">db_env_set_func_map</a>,
-<a href="../api_c/set_func_open.html">db_env_set_func_open</a>,
-<a href="../api_c/set_func_read.html">db_env_set_func_read</a>,
-<a href="../api_c/set_func_realloc.html">db_env_set_func_realloc</a>,
-<a href="../api_c/set_func_seek.html">db_env_set_func_seek</a>,
-<a href="../api_c/set_func_sleep.html">db_env_set_func_sleep</a>,
-<a href="../api_c/set_func_unlink.html">db_env_set_func_unlink</a>,
-<a href="../api_c/set_func_unmap.html">db_env_set_func_unmap</a>,
-<a href="../api_c/set_func_write.html">db_env_set_func_write</a>
-and
-<a href="../api_c/set_func_yield.html">db_env_set_func_yield</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/set_func_unlink.html b/bdb/docs/api_c/set_func_unlink.html
deleted file mode 100644
index 1e5e8e3cba9..00000000000
--- a/bdb/docs/api_c/set_func_unlink.html
+++ /dev/null
@@ -1,66 +0,0 @@
-<!--$Id: set_func_unlink.so,v 10.6 2000/05/31 15:10:01 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db_env_set_func_unlink</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>db_env_set_func_unlink</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-db_env_set_func_unlink(int (*func_unlink)(const char *path));
-</pre></h3>
-<h1>Description</h1>
-<p>Replace Berkeley DB calls to the IEEE/ANSI Std 1003.1 (POSIX) <b>unlink</b> function
-with <b>func_unlink</b>, which must conform to the standard interface.
-<p>The db_env_set_func_unlink interface affects the entire application, not a single
-database or database environment.
-<p>While the db_env_set_func_unlink interface may be used to configure Berkeley DB at any time
-during the life of the application, it should normally be called before
-making any calls to the <a href="../api_c/env_create.html">db_env_create</a> or <a href="../api_c/db_create.html">db_create</a> functions.
-<p>The db_env_set_func_unlink function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/set_func_close.html">db_env_set_func_close</a>,
-<a href="../api_c/set_func_dirfree.html">db_env_set_func_dirfree</a>,
-<a href="../api_c/set_func_dirlist.html">db_env_set_func_dirlist</a>,
-<a href="../api_c/set_func_exists.html">db_env_set_func_exists</a>,
-<a href="../api_c/set_func_free.html">db_env_set_func_free</a>,
-<a href="../api_c/set_func_fsync.html">db_env_set_func_fsync</a>,
-<a href="../api_c/set_func_ioinfo.html">db_env_set_func_ioinfo</a>,
-<a href="../api_c/set_func_malloc.html">db_env_set_func_malloc</a>,
-<a href="../api_c/set_func_map.html">db_env_set_func_map</a>,
-<a href="../api_c/set_func_open.html">db_env_set_func_open</a>,
-<a href="../api_c/set_func_read.html">db_env_set_func_read</a>,
-<a href="../api_c/set_func_realloc.html">db_env_set_func_realloc</a>,
-<a href="../api_c/set_func_seek.html">db_env_set_func_seek</a>,
-<a href="../api_c/set_func_sleep.html">db_env_set_func_sleep</a>,
-<a href="../api_c/set_func_unlink.html">db_env_set_func_unlink</a>,
-<a href="../api_c/set_func_unmap.html">db_env_set_func_unmap</a>,
-<a href="../api_c/set_func_write.html">db_env_set_func_write</a>
-and
-<a href="../api_c/set_func_yield.html">db_env_set_func_yield</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/set_func_unmap.html b/bdb/docs/api_c/set_func_unmap.html
deleted file mode 100644
index 07635b48a80..00000000000
--- a/bdb/docs/api_c/set_func_unmap.html
+++ /dev/null
@@ -1,75 +0,0 @@
-<!--$Id: set_func_unmap.so,v 10.8 2000/05/31 15:10:01 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db_env_set_func_unmap</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>db_env_set_func_unmap</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-db_env_set_func_unmap(int (*func_unmap)(void *addr, size_t len));
-</pre></h3>
-<h1>Description</h1>
-<p>The Berkeley DB library requires the ability to unmap a file or shared memory
-region from memory. The <b>func_unmap</b> argument must conform to the
-following interface:
-<p><blockquote><pre>int unmap(void *addr, size_t len);</pre></blockquote>
-<p>The <b>addr</b> argument is the argument returned by the
-<a href="../api_c/set_func_map.html">db_env_set_func_map</a> function when the file or region was mapped
-into memory, and the <b>len</b> argument is the same as the <b>len</b>
-argument specified to the <a href="../api_c/set_func_map.html">db_env_set_func_map</a> function when the
-file or region was mapped into memory.
-<p>The <b>func_unmap</b> function must return the value of <b>errno</b> on
-failure and 0 on success.
-<p>The db_env_set_func_unmap interface affects the entire application, not a single
-database or database environment.
-<p>While the db_env_set_func_unmap interface may be used to configure Berkeley DB at any time
-during the life of the application, it should normally be called before
-making any calls to the <a href="../api_c/env_create.html">db_env_create</a> or <a href="../api_c/db_create.html">db_create</a> functions.
-<p>The db_env_set_func_unmap function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/set_func_close.html">db_env_set_func_close</a>,
-<a href="../api_c/set_func_dirfree.html">db_env_set_func_dirfree</a>,
-<a href="../api_c/set_func_dirlist.html">db_env_set_func_dirlist</a>,
-<a href="../api_c/set_func_exists.html">db_env_set_func_exists</a>,
-<a href="../api_c/set_func_free.html">db_env_set_func_free</a>,
-<a href="../api_c/set_func_fsync.html">db_env_set_func_fsync</a>,
-<a href="../api_c/set_func_ioinfo.html">db_env_set_func_ioinfo</a>,
-<a href="../api_c/set_func_malloc.html">db_env_set_func_malloc</a>,
-<a href="../api_c/set_func_map.html">db_env_set_func_map</a>,
-<a href="../api_c/set_func_open.html">db_env_set_func_open</a>,
-<a href="../api_c/set_func_read.html">db_env_set_func_read</a>,
-<a href="../api_c/set_func_realloc.html">db_env_set_func_realloc</a>,
-<a href="../api_c/set_func_seek.html">db_env_set_func_seek</a>,
-<a href="../api_c/set_func_sleep.html">db_env_set_func_sleep</a>,
-<a href="../api_c/set_func_unlink.html">db_env_set_func_unlink</a>,
-<a href="../api_c/set_func_unmap.html">db_env_set_func_unmap</a>,
-<a href="../api_c/set_func_write.html">db_env_set_func_write</a>
-and
-<a href="../api_c/set_func_yield.html">db_env_set_func_yield</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/set_func_write.html b/bdb/docs/api_c/set_func_write.html
deleted file mode 100644
index 7b52b5078ba..00000000000
--- a/bdb/docs/api_c/set_func_write.html
+++ /dev/null
@@ -1,67 +0,0 @@
-<!--$Id: set_func_write.so,v 10.6 2000/05/31 15:10:01 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db_env_set_func_write</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>db_env_set_func_write</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-db_env_set_func_write(
- ssize_t (*func_write)(int fd, const void *buffer, size_t nbytes));
-</pre></h3>
-<h1>Description</h1>
-<p>Replace Berkeley DB calls to the IEEE/ANSI Std 1003.1 (POSIX) <b>write</b> function
-with <b>func_write</b>, which must conform to the standard interface.
-<p>The db_env_set_func_write interface affects the entire application, not a single
-database or database environment.
-<p>While the db_env_set_func_write interface may be used to configure Berkeley DB at any time
-during the life of the application, it should normally be called before
-making any calls to the <a href="../api_c/env_create.html">db_env_create</a> or <a href="../api_c/db_create.html">db_create</a> functions.
-<p>The db_env_set_func_write function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/set_func_close.html">db_env_set_func_close</a>,
-<a href="../api_c/set_func_dirfree.html">db_env_set_func_dirfree</a>,
-<a href="../api_c/set_func_dirlist.html">db_env_set_func_dirlist</a>,
-<a href="../api_c/set_func_exists.html">db_env_set_func_exists</a>,
-<a href="../api_c/set_func_free.html">db_env_set_func_free</a>,
-<a href="../api_c/set_func_fsync.html">db_env_set_func_fsync</a>,
-<a href="../api_c/set_func_ioinfo.html">db_env_set_func_ioinfo</a>,
-<a href="../api_c/set_func_malloc.html">db_env_set_func_malloc</a>,
-<a href="../api_c/set_func_map.html">db_env_set_func_map</a>,
-<a href="../api_c/set_func_open.html">db_env_set_func_open</a>,
-<a href="../api_c/set_func_read.html">db_env_set_func_read</a>,
-<a href="../api_c/set_func_realloc.html">db_env_set_func_realloc</a>,
-<a href="../api_c/set_func_seek.html">db_env_set_func_seek</a>,
-<a href="../api_c/set_func_sleep.html">db_env_set_func_sleep</a>,
-<a href="../api_c/set_func_unlink.html">db_env_set_func_unlink</a>,
-<a href="../api_c/set_func_unmap.html">db_env_set_func_unmap</a>,
-<a href="../api_c/set_func_write.html">db_env_set_func_write</a>
-and
-<a href="../api_c/set_func_yield.html">db_env_set_func_yield</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/set_func_yield.html b/bdb/docs/api_c/set_func_yield.html
deleted file mode 100644
index 23915aea68b..00000000000
--- a/bdb/docs/api_c/set_func_yield.html
+++ /dev/null
@@ -1,84 +0,0 @@
-<!--$Id: set_func_yield.so,v 10.8 2000/05/31 15:10:01 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db_env_set_func_yield</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>db_env_set_func_yield</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-db_env_set_func_yield(int (*func_yield)(void));
-</pre></h3>
-<h1>Description</h1>
-<p>The Berkeley DB library requires the ability to yield the processor from the current
-thread of control to any other waiting threads of control.
-The <b>func_yield</b> argument must conform to the following interface:
-<p><blockquote><pre>int yield(void);</pre></blockquote>
-<p>The <b>func_yield</b> function must be able to cause the rescheduling
-all participants in the current Berkeley DB environment, whether threaded or
-not. It may be incorrect to supply a thread <b>yield</b> function if
-more than a single process is operating in the Berkeley DB environment. This
-is because many thread-yield functions will not allow other processes to
-run, and the contested lock may be held by another process, not by another
-thread.
-<p>If no <b>func_yield</b> function is specified, or if the <b>yield</b>
-function returns an error, the function specified by the
-<a href="../api_c/set_func_sleep.html">db_env_set_func_sleep</a> entry will be used instead or subsequently,
-i.e., if no <b>yield</b> function is specified, or it is possible for
-the <b>yield</b> function to fail, the <b>sleep</b> function
-<b>must</b> cause the processor to reschedule any waiting threads of
-control for execution.
-<p>The <b>func_yield</b> function must return the value of <b>errno</b> on
-failure and 0 on success.
-<p>The db_env_set_func_yield interface affects the entire application, not a single
-database or database environment.
-<p>While the db_env_set_func_yield interface may be used to configure Berkeley DB at any time
-during the life of the application, it should normally be called before
-making any calls to the <a href="../api_c/env_create.html">db_env_create</a> or <a href="../api_c/db_create.html">db_create</a> functions.
-<p>The db_env_set_func_yield function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h1>See Also</h1>
-<a href="../api_c/set_func_close.html">db_env_set_func_close</a>,
-<a href="../api_c/set_func_dirfree.html">db_env_set_func_dirfree</a>,
-<a href="../api_c/set_func_dirlist.html">db_env_set_func_dirlist</a>,
-<a href="../api_c/set_func_exists.html">db_env_set_func_exists</a>,
-<a href="../api_c/set_func_free.html">db_env_set_func_free</a>,
-<a href="../api_c/set_func_fsync.html">db_env_set_func_fsync</a>,
-<a href="../api_c/set_func_ioinfo.html">db_env_set_func_ioinfo</a>,
-<a href="../api_c/set_func_malloc.html">db_env_set_func_malloc</a>,
-<a href="../api_c/set_func_map.html">db_env_set_func_map</a>,
-<a href="../api_c/set_func_open.html">db_env_set_func_open</a>,
-<a href="../api_c/set_func_read.html">db_env_set_func_read</a>,
-<a href="../api_c/set_func_realloc.html">db_env_set_func_realloc</a>,
-<a href="../api_c/set_func_seek.html">db_env_set_func_seek</a>,
-<a href="../api_c/set_func_sleep.html">db_env_set_func_sleep</a>,
-<a href="../api_c/set_func_unlink.html">db_env_set_func_unlink</a>,
-<a href="../api_c/set_func_unmap.html">db_env_set_func_unmap</a>,
-<a href="../api_c/set_func_write.html">db_env_set_func_write</a>
-and
-<a href="../api_c/set_func_yield.html">db_env_set_func_yield</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/txn_abort.html b/bdb/docs/api_c/txn_abort.html
deleted file mode 100644
index 00056023aba..00000000000
--- a/bdb/docs/api_c/txn_abort.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<!--$Id: txn_abort.so,v 10.25 2000/12/31 19:26:21 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: txn_abort</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>txn_abort</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-txn_abort(DB_TXN *tid);
-</pre></h3>
-<h1>Description</h1>
-<p>The txn_abort function causes an abnormal termination of the
-transaction. The log is played backwards and any necessary recovery
-operations are initiated through the <b>recover</b> function specified
-to <a href="../api_c/env_open.html">DBENV-&gt;open</a>. After the log processing is completed, all locks
-held by the transaction are released. As is the case for
-<a href="../api_c/txn_commit.html">txn_commit</a>, applications that require strict two-phase locking
-should not explicitly release any locks.
-<p>In the case of nested transactions, aborting a parent transaction causes
-all children (unresolved or not) of the parent transaction to be aborted.
-<p>Once the txn_abort function returns, the DB_TXN handle may not
-be accessed again.
-<p>The txn_abort function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p>The txn_abort function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the txn_abort function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/env_set_tx_max.html">DBENV-&gt;set_tx_max</a>,
-<a href="../api_c/env_set_tx_recover.html">DBENV-&gt;set_tx_recover</a>,
-<a href="../api_c/env_set_tx_timestamp.html">DBENV-&gt;set_tx_timestamp</a>,
-<a href="../api_c/txn_abort.html">txn_abort</a>,
-<a href="../api_c/txn_begin.html">txn_begin</a>,
-<a href="../api_c/txn_checkpoint.html">txn_checkpoint</a>,
-<a href="../api_c/txn_commit.html">txn_commit</a>,
-<a href="../api_c/txn_id.html">txn_id</a>,
-<a href="../api_c/txn_prepare.html">txn_prepare</a>
-and
-<a href="../api_c/txn_stat.html">txn_stat</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/txn_begin.html b/bdb/docs/api_c/txn_begin.html
deleted file mode 100644
index 0241d5c1fdb..00000000000
--- a/bdb/docs/api_c/txn_begin.html
+++ /dev/null
@@ -1,93 +0,0 @@
-<!--$Id: txn_begin.so,v 10.37 2001/01/11 17:47:12 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: txn_begin</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>txn_begin</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-txn_begin(DB_ENV *env,
- DB_TXN *parent, DB_TXN **tid, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The txn_begin method creates a new transaction in the environment
-and copies a pointer to a DB_TXN that uniquely identifies it into
-the memory referenced by <b>tid</b>.
-<p>If the <b>parent</b> argument is non-NULL, the new transaction will
-be a nested transaction, with the transaction indicated by
-<b>parent</b> as its parent. Transactions may be
-nested to any level.
-<p>The <b>flags</b> parameter must be set to 0 or one of the following
-values:
-<p><dl compact>
-<p><dt><a name="DB_TXN_NOSYNC">DB_TXN_NOSYNC</a><dd>Do not synchronously flush the log when this transaction commits or
-prepares. This means the transaction will exhibit the ACI (atomicity,
-consistency and isolation) properties, but not D (durability), i.e.,
-database integrity will be maintained but it is possible that this
-transaction may be undone during recovery instead of being redone.
-<p>This behavior may be set for an entire Berkeley DB environment as part of the
-<a href="../api_c/env_set_flags.html">DBENV-&gt;set_flags</a> interface.
-<p><dt><a name="DB_TXN_NOWAIT">DB_TXN_NOWAIT</a><dd>If a lock is unavailable for any Berkeley DB operation performed in the context
-of this transaction, return immediately instead of blocking on the lock.
-The error return in the case will be <a href="../ref/program/errorret.html#DB_LOCK_NOTGRANTED">DB_LOCK_NOTGRANTED</a>.
-<p><dt><a name="DB_TXN_SYNC">DB_TXN_SYNC</a><dd>Synchronously flush the log when this transaction commits or prepares.
-This means the transaction will exhibit all of the ACID (atomicity,
-consistency and isolation and durability) properties.
-<p>This behavior is the default for Berkeley DB environments unless the
-<a href="../api_c/env_open.html#DB_TXN_NOSYNC">DB_TXN_NOSYNC</a> flag was specified to the <a href="../api_c/env_set_flags.html">DBENV-&gt;set_flags</a>
-interface.
-</dl>
-<p><b>Note: An transaction may not span threads,
-i.e., each transaction must begin and end in the same thread, and each
-transaction may only be used by a single thread.</b>
-<p><b>Note: cursors may not span transactions, i.e., each cursor must be opened
-and closed within a single transaction.</b>
-<p><b>Note: a parent transaction may not issue any Berkeley DB operations, except for
-txn_begin, <a href="../api_c/txn_abort.html">txn_abort</a> and <a href="../api_c/txn_commit.html">txn_commit</a>, while it has
-active child transactions (child transactions that have not yet been
-committed or aborted).</b>
-<p>The txn_begin function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p>The txn_begin function may fail and return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>ENOMEM<dd>The maximum number of concurrent transactions has been reached.
-</dl>
-<p>The txn_begin function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the txn_begin function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/env_set_tx_max.html">DBENV-&gt;set_tx_max</a>,
-<a href="../api_c/env_set_tx_recover.html">DBENV-&gt;set_tx_recover</a>,
-<a href="../api_c/env_set_tx_timestamp.html">DBENV-&gt;set_tx_timestamp</a>,
-<a href="../api_c/txn_abort.html">txn_abort</a>,
-<a href="../api_c/txn_begin.html">txn_begin</a>,
-<a href="../api_c/txn_checkpoint.html">txn_checkpoint</a>,
-<a href="../api_c/txn_commit.html">txn_commit</a>,
-<a href="../api_c/txn_id.html">txn_id</a>,
-<a href="../api_c/txn_prepare.html">txn_prepare</a>
-and
-<a href="../api_c/txn_stat.html">txn_stat</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/txn_checkpoint.html b/bdb/docs/api_c/txn_checkpoint.html
deleted file mode 100644
index 140edee57d7..00000000000
--- a/bdb/docs/api_c/txn_checkpoint.html
+++ /dev/null
@@ -1,75 +0,0 @@
-<!--$Id: txn_checkpoint.so,v 10.25 2000/09/08 15:20:28 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: txn_checkpoint</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>txn_checkpoint</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-txn_checkpoint(const DB_ENV *env,
- u_int32_t kbyte, u_int32_t min, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The txn_checkpoint function flushes the underlying memory pool,
-writes a checkpoint record to the log and then flushes the log.
-<p>If either <b>kbyte</b> or <b>min</b> is non-zero, the checkpoint is only
-done if there has been activity since the last checkpoint and either
-more than <b>min</b> minutes have passed since the last checkpoint,
-or if more than <b>kbyte</b> kilobytes of log data have been written since
-the last checkpoint.
-<p>The <b>flags</b> parameter must be set to 0 or one of the following
-values:
-<p><dl compact>
-<p><dt><a name="DB_FORCE">DB_FORCE</a><dd>Force a checkpoint record even if there has been no activity since the
-last checkpoint.
-</dl>
-<p>The txn_checkpoint function returns a non-zero error value on failure, 0 on success, and returns <a href="../api_c/memp_fsync.html#DB_INCOMPLETE">DB_INCOMPLETE</a> if there were pages that needed to be
-written to complete the checkpoint but that <a href="../api_c/memp_sync.html">memp_sync</a> was unable
-to write immediately.
-<p>The txn_checkpoint function is the underlying function used by the <a href="../utility/db_checkpoint.html">db_checkpoint</a> utility.
-See the <a href="../utility/db_checkpoint.html">db_checkpoint</a> utility source code for an example of using txn_checkpoint
-in a IEEE/ANSI Std 1003.1 (POSIX) environment.
-<h1>Errors</h1>
-<p>The txn_checkpoint function may fail and return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<p>The txn_checkpoint function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the txn_checkpoint function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/env_set_tx_max.html">DBENV-&gt;set_tx_max</a>,
-<a href="../api_c/env_set_tx_recover.html">DBENV-&gt;set_tx_recover</a>,
-<a href="../api_c/env_set_tx_timestamp.html">DBENV-&gt;set_tx_timestamp</a>,
-<a href="../api_c/txn_abort.html">txn_abort</a>,
-<a href="../api_c/txn_begin.html">txn_begin</a>,
-<a href="../api_c/txn_checkpoint.html">txn_checkpoint</a>,
-<a href="../api_c/txn_commit.html">txn_commit</a>,
-<a href="../api_c/txn_id.html">txn_id</a>,
-<a href="../api_c/txn_prepare.html">txn_prepare</a>
-and
-<a href="../api_c/txn_stat.html">txn_stat</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/txn_commit.html b/bdb/docs/api_c/txn_commit.html
deleted file mode 100644
index 7fca3d08d7b..00000000000
--- a/bdb/docs/api_c/txn_commit.html
+++ /dev/null
@@ -1,83 +0,0 @@
-<!--$Id: txn_commit.so,v 10.27 2000/12/31 19:26:21 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: txn_commit</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>txn_commit</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-txn_commit(DB_TXN *tid, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The txn_commit function ends the transaction. In the case of nested
-transactions, if the transaction is a parent transaction, committing
-the parent transaction causes all unresolved children of the parent to
-be committed.
-<p>In the case of nested transactions, if the transaction is a child
-transaction, its locks are not released, but are acquired by its parent.
-While the commit of the child transaction will succeed, the actual
-resolution of the child transaction is postponed until the parent
-transaction is committed or aborted, i.e., if its parent transaction
-commits, it will be committed, and if its parent transaction aborts, it
-will be aborted.
-<p>The <b>flags</b> parameter must be set to 0 or one of the following
-values:
-<p><dl compact>
-<p><dt><a name="DB_TXN_NOSYNC">DB_TXN_NOSYNC</a><dd>Do not synchronously flush the log. This means the transaction will
-exhibit the ACI (atomicity, consistency and isolation) properties, but
-not D (durability), i.e., database integrity will be maintained but it is
-possible that this transaction may be undone during recovery instead of
-being redone.
-<p>This behavior may be set for an entire Berkeley DB environment as part of the
-<a href="../api_c/env_set_flags.html">DBENV-&gt;set_flags</a> interface.
-<p><dt><a name="DB_TXN_SYNC">DB_TXN_SYNC</a><dd>Synchronously flush the log. This means the transaction will exhibit
-all of the ACID (atomicity, consistency and isolation and durability)
-properties.
-<p>This behavior is the default for Berkeley DB environments unless the
-<a href="../api_c/env_open.html#DB_TXN_NOSYNC">DB_TXN_NOSYNC</a> flag was specified to the <a href="../api_c/env_set_flags.html">DBENV-&gt;set_flags</a>
-or <a href="../api_c/txn_begin.html">txn_begin</a> interfaces.
-</dl>
-<p>Once the txn_commit function returns, the DB_TXN handle may not
-be accessed again. If txn_commit encounters an error, the
-transaction and all child transactions of the transaction are aborted.
-<p>The txn_commit function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p>The txn_commit function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the txn_commit function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/env_set_tx_max.html">DBENV-&gt;set_tx_max</a>,
-<a href="../api_c/env_set_tx_recover.html">DBENV-&gt;set_tx_recover</a>,
-<a href="../api_c/env_set_tx_timestamp.html">DBENV-&gt;set_tx_timestamp</a>,
-<a href="../api_c/txn_abort.html">txn_abort</a>,
-<a href="../api_c/txn_begin.html">txn_begin</a>,
-<a href="../api_c/txn_checkpoint.html">txn_checkpoint</a>,
-<a href="../api_c/txn_commit.html">txn_commit</a>,
-<a href="../api_c/txn_id.html">txn_id</a>,
-<a href="../api_c/txn_prepare.html">txn_prepare</a>
-and
-<a href="../api_c/txn_stat.html">txn_stat</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/txn_id.html b/bdb/docs/api_c/txn_id.html
deleted file mode 100644
index bcda4bcdfff..00000000000
--- a/bdb/docs/api_c/txn_id.html
+++ /dev/null
@@ -1,50 +0,0 @@
-<!--$Id: txn_id.so,v 10.12 1999/12/20 08:52:32 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: txn_id</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>txn_id</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-u_int32_t
-txn_id(DB_TXN *tid);
-</pre></h3>
-<h1>Description</h1>
-<p>The txn_id function returns the unique transaction id associated with the
-specified transaction. Locking calls made on behalf of this transaction
-should use the value returned from txn_id as the locker parameter
-to the <a href="../api_c/lock_get.html">lock_get</a> or <a href="../api_c/lock_vec.html">lock_vec</a> calls.
-<h1>See Also</h1>
-<a href="../api_c/env_set_tx_max.html">DBENV-&gt;set_tx_max</a>,
-<a href="../api_c/env_set_tx_recover.html">DBENV-&gt;set_tx_recover</a>,
-<a href="../api_c/env_set_tx_timestamp.html">DBENV-&gt;set_tx_timestamp</a>,
-<a href="../api_c/txn_abort.html">txn_abort</a>,
-<a href="../api_c/txn_begin.html">txn_begin</a>,
-<a href="../api_c/txn_checkpoint.html">txn_checkpoint</a>,
-<a href="../api_c/txn_commit.html">txn_commit</a>,
-<a href="../api_c/txn_id.html">txn_id</a>,
-<a href="../api_c/txn_prepare.html">txn_prepare</a>
-and
-<a href="../api_c/txn_stat.html">txn_stat</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/txn_prepare.html b/bdb/docs/api_c/txn_prepare.html
deleted file mode 100644
index 549a6f074a0..00000000000
--- a/bdb/docs/api_c/txn_prepare.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<!--$Id: txn_prepare.so,v 10.17 2000/12/31 19:26:21 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: txn_prepare</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>txn_prepare</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-txn_prepare(DB_TXN *tid);
-</pre></h3>
-<h1>Description</h1>
-<p>The txn_prepare function initiates the beginning of a two-phase commit.
-<p>In a distributed transaction environment, Berkeley DB can be used as a local
-transaction manager. In this case, the distributed transaction manager
-must send <i>prepare</i> messages to each local manager. The local
-manager must then issue a txn_prepare and await its successful
-return before responding to the distributed transaction manager. Only
-after the distributed transaction manager receives successful responses
-from all of its <i>prepare</i> messages should it issue any
-<i>commit</i> messages.
-<p>In the case of nested transactions, preparing a parent transaction
-causes all unresolved children of the parent transaction to be prepared.
-<p>The txn_prepare function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p>The txn_prepare function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the txn_prepare function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/env_set_tx_max.html">DBENV-&gt;set_tx_max</a>,
-<a href="../api_c/env_set_tx_recover.html">DBENV-&gt;set_tx_recover</a>,
-<a href="../api_c/env_set_tx_timestamp.html">DBENV-&gt;set_tx_timestamp</a>,
-<a href="../api_c/txn_abort.html">txn_abort</a>,
-<a href="../api_c/txn_begin.html">txn_begin</a>,
-<a href="../api_c/txn_checkpoint.html">txn_checkpoint</a>,
-<a href="../api_c/txn_commit.html">txn_commit</a>,
-<a href="../api_c/txn_id.html">txn_id</a>,
-<a href="../api_c/txn_prepare.html">txn_prepare</a>
-and
-<a href="../api_c/txn_stat.html">txn_stat</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_c/txn_stat.html b/bdb/docs/api_c/txn_stat.html
deleted file mode 100644
index 769283f93c2..00000000000
--- a/bdb/docs/api_c/txn_stat.html
+++ /dev/null
@@ -1,94 +0,0 @@
-<!--$Id: txn_stat.so,v 10.27 2000/05/25 13:47:08 dda Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: txn_stat</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>txn_stat</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db.h&gt;
-<p>
-int
-txn_stat(DB_ENV *env,
- DB_TXN_STAT **statp, void *(*db_malloc)(size_t));
-</pre></h3>
-<h1>Description</h1>
-<p>The txn_stat function
-creates a statistical structure and copies a pointer to it into a
-user-specified memory location.
-<p>Statistical structures are created in allocated memory. If <b>db_malloc</b> is non-NULL, it
-is called to allocate the memory, otherwise, the library function
-<b>malloc</b>(3) is used. The function <b>db_malloc</b> must match
-the calling conventions of the <b>malloc</b>(3) library routine.
-Regardless, the caller is responsible for deallocating the returned
-memory. To deallocate returned memory, free the returned memory
-reference, references inside the returned memory do not need to be
-individually freed.
-<p>The transaction region statistics are stored in a structure of type
-DB_TXN_STAT. The following DB_TXN_STAT fields will be filled in:
-<p><dl compact>
-<dt><a href="../api_c/db_lsn.html">DB_LSN</a> st_last_ckp;<dd>The LSN of the last checkpoint.
-<dt><a href="../api_c/db_lsn.html">DB_LSN</a> st_pending_ckp;<dd>The LSN of any checkpoint that is currently in progress. If
-<b>st_pending_ckp</b> is the same as <b>st_last_ckp</b> there
-is no checkpoint in progress.
-<dt>time_t st_time_ckp;<dd>The time the last completed checkpoint finished (as the number of seconds
-since the Epoch, returned by the IEEE/ANSI Std 1003.1 (POSIX) <b>time</b> interface).
-<dt>u_int32_t st_last_txnid;<dd>The last transaction ID allocated.
-<dt>u_int32_t st_maxtxns;<dd>The maximum number of active transactions possible.
-<dt>u_int32_t st_nactive;<dd>The number of transactions that are currently active.
-<dt>u_int32_t st_maxnactive;<dd>The maximum number of active transactions at any one time.
-<dt>u_int32_t st_nbegins;<dd>The number of transactions that have begun.
-<dt>u_int32_t st_naborts;<dd>The number of transactions that have aborted.
-<dt>u_int32_t st_ncommits;<dd>The number of transactions that have committed.
-<dt>u_int32_t st_regsize;<dd>The size of the region.
-<dt>u_int32_t st_region_wait;<dd>The number of times that a thread of control was forced to wait before
-obtaining the region lock.
-<dt>u_int32_t st_region_nowait;<dd>The number of times that a thread of control was able to obtain
-the region lock without waiting.
-<dt>DB_TXN_ACTIVE * st_txnarray;<dd>A pointer to an array of <b>st_nactive</b> DB_TXN_ACTIVE structures,
-describing the currently active transactions. The following fields of
-the DB_TXN_ACTIVE structure will be filled in:
-<p><dl compact>
-<p><dt>u_int32_t txnid;<dd>The transaction ID as returned by <a href="../api_c/txn_begin.html">txn_begin</a>.
-<dt>u_int32_t parentid;<dd>The transaction ID of the parent transaction (or 0, if no parent).
-<dt><a href="../api_c/db_lsn.html">DB_LSN</a> lsn;<dd>The log sequence number of the transaction-begin record.
-</dl>
-</dl>
-<p>The txn_stat function returns a non-zero error value on failure and 0 on success.
-<h1>Errors</h1>
-<p>The txn_stat function may fail and return a non-zero error for errors specified for other Berkeley DB and C library or system functions.
-If a catastrophic error has occurred, the txn_stat function may fail and return
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h1>See Also</h1>
-<a href="../api_c/env_set_tx_max.html">DBENV-&gt;set_tx_max</a>,
-<a href="../api_c/env_set_tx_recover.html">DBENV-&gt;set_tx_recover</a>,
-<a href="../api_c/env_set_tx_timestamp.html">DBENV-&gt;set_tx_timestamp</a>,
-<a href="../api_c/txn_abort.html">txn_abort</a>,
-<a href="../api_c/txn_begin.html">txn_begin</a>,
-<a href="../api_c/txn_checkpoint.html">txn_checkpoint</a>,
-<a href="../api_c/txn_commit.html">txn_commit</a>,
-<a href="../api_c/txn_id.html">txn_id</a>,
-<a href="../api_c/txn_prepare.html">txn_prepare</a>
-and
-<a href="../api_c/txn_stat.html">txn_stat</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/cxx_index.html b/bdb/docs/api_cxx/cxx_index.html
deleted file mode 100644
index 1ba43a0f227..00000000000
--- a/bdb/docs/api_cxx/cxx_index.html
+++ /dev/null
@@ -1,148 +0,0 @@
-<!--$Id: cxx_index.so,v 10.65 2000/12/21 19:11:27 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: C++ Interface by Class</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<h1 align=center>C++ Interface by Class</h1>
-<p><table border=1 align=center>
-<tr><th>Class</th><th>Method</th><th>Description</th></tr>
-<tr><td><a href="../api_cxx/dbenv_class.html">DbEnv</a></td><td><br></td><td>Berkeley DB Environment Class</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/env_close.html">DbEnv::close</a></td><td>Close an environment</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/db_err.html">DbEnv::err</a></td><td>Error message with error string</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/db_err.html">DbEnv::errx</a></td><td>Error message</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/env_open.html">DbEnv::open</a></td><td>Open an environment</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/env_remove.html">DbEnv::remove</a></td><td>Remove an environment</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/env_set_cachesize.html">DbEnv::set_cachesize</a></td><td>Set the environment cache size</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/env_set_data_dir.html">DbEnv::set_data_dir</a></td><td>Set the environment data directory</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/env_set_errcall.html">DbEnv::set_errcall</a></td><td>Set error message callback</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/env_set_errfile.html">DbEnv::set_errfile</a></td><td>Set error message FILE *</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/env_set_error_stream.html">DbEnv::set_error_stream</a></td><td>Set error message output stream</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/env_set_errpfx.html">DbEnv::set_errpfx</a></td><td>Set error message prefix</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/env_set_feedback.html">DbEnv::set_feedback</a></td><td>Set feedback callback</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/env_set_flags.html">DbEnv::set_flags</a></td><td>Environment configuration</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/env_set_lg_bsize.html">DbEnv::set_lg_bsize</a></td><td>Set log buffer size</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/env_set_lg_dir.html">DbEnv::set_lg_dir</a></td><td>Set the environment logging directory</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/env_set_lg_max.html">DbEnv::set_lg_max</a></td><td>Set log file size</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/env_set_lk_conflicts.html">DbEnv::set_lk_conflicts</a></td><td>Set lock conflicts matrix</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/env_set_lk_detect.html">DbEnv::set_lk_detect</a></td><td>Set automatic deadlock detection</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/env_set_lk_max.html">DbEnv::set_lk_max</a></td><td>Set maximum number of locks (<b>Deprecated</b>)</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/env_set_lk_max_locks.html">DbEnv::set_lk_max_locks</a></td><td>Set maximum number of locks</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/env_set_lk_max_lockers.html">DbEnv::set_lk_max_lockers</a></td><td>Set maximum number of lockers</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/env_set_lk_max_objects.html">DbEnv::set_lk_max_objects</a></td><td>Set maximum number of lock objects</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/env_set_mp_mmapsize.html">DbEnv::set_mp_mmapsize</a></td><td>Set maximum mapped-in database file size</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/env_set_mutexlocks.html">DbEnv::set_mutexlocks</a></td><td>Turn off mutual exclusion locking</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/env_set_pageyield.html">DbEnv::set_pageyield</a></td><td>Yield the processor on each page access</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/env_set_paniccall.html">DbEnv::set_paniccall</a></td><td>Set panic callback</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/env_set_panicstate.html">DbEnv::set_panicstate</a></td><td>Reset panic state</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/env_set_rec_init.html">DbEnv::set_recovery_init</a></td><td>Set recovery initialization callback</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/env_set_region_init.html">DbEnv::set_region_init</a></td><td>Fault in shared regions on initial access</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/env_set_server.html">DbEnv::set_server</a></td><td>Establish server connection</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/env_set_shm_key.html">DbEnv::set_shm_key</a></td><td>Set system memory shared segment ID</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/env_set_tas_spins.html">DbEnv::set_tas_spins</a></td><td>Set the number of test-and-set spins</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/env_set_tmp_dir.html">DbEnv::set_tmp_dir</a></td><td>Set the environment temporary file directory</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/env_set_tx_max.html">DbEnv::set_tx_max</a></td><td>Set maximum number of transactions</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/env_set_tx_recover.html">DbEnv::set_tx_recover</a></td><td>Set transaction abort recover function</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/env_set_tx_timestamp.html">DbEnv::set_tx_timestamp</a></td><td>Set recovery timestamp</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/env_set_verbose.html">DbEnv::set_verbose</a></td><td>Set verbose messages</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/env_strerror.html">DbEnv::strerror</a></td><td>Error strings</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/lock_detect.html">DbEnv::lock_detect</a></td><td>Perform deadlock detection</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/lock_get.html">DbEnv::lock_get</a></td><td>Acquire a lock</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/lock_id.html">DbEnv::lock_id</a></td><td>Acquire a locker ID</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/lock_stat.html">DbEnv::lock_stat</a></td><td>Return lock subsystem statistics</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/lock_vec.html">DbEnv::lock_vec</a></td><td>Acquire/release locks</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/log_archive.html">DbEnv::log_archive</a></td><td>List log and database files</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/log_compare.html">DbEnv::log_compare</a></td><td>Compare two Log Sequence Numbers</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/log_file.html">DbEnv::log_file</a></td><td>Map Log Sequence Numbers to log files</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/log_flush.html">DbEnv::log_flush</a></td><td>Flush log records</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/log_get.html">DbEnv::log_get</a></td><td>Get a log record</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/log_put.html">DbEnv::log_put</a></td><td>Write a log record</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/log_register.html">DbEnv::log_register</a></td><td>Register a file name with the log manager</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/log_stat.html">DbEnv::log_stat</a></td><td>Return log subsystem statistics</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/log_unregister.html">DbEnv::log_unregister</a></td><td>Unregister a file name with the log manager</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/memp_register.html">DbEnv::memp_register</a></td><td>Register input/output functions for a file in a buffer pool.</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/memp_stat.html">DbEnv::memp_stat</a></td><td>Return buffer pool statistics</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/memp_sync.html">DbEnv::memp_sync</a></td><td>Flush pages from a buffer pool</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/memp_trickle.html">DbEnv::memp_trickle</a></td><td>Trickle flush pages from a buffer pool</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/txn_begin.html">DbEnv::txn_begin</a></td><td>Begin a transaction</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/txn_checkpoint.html">DbEnv::txn_checkpoint</a></td><td>Checkpoint the transaction subsystem</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/txn_stat.html">DbEnv::txn_stat</a></td><td>Return transaction subsystem statistics</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/env_version.html">DbEnv::version</a></td><td>Return version information</td></tr>
-<tr><td><a href="../api_cxx/db_class.html">Db</a></td><td><br></td><td>Berkeley DB Access Method Class</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/db_close.html">Db::close</a></td><td>Close a database</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/db_cursor.html">Db::cursor</a></td><td>Open a cursor into a database</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/db_del.html">Db::del</a></td><td>Delete items from a database</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/db_err.html">Db::err</a></td><td>Error message with error string</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/db_err.html">Db::errx</a></td><td>Error message</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/db_fd.html">Db::fd</a></td><td>Return a file descriptor from a database</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/db_get.html">Db::get</a></td><td>Get items from a database</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/db_get_byteswapped.html">Db::get_byteswapped</a></td><td>Return if the underlying database is in host order</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/db_get_type.html">Db::get_type</a></td><td>Return the database type</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/db_join.html">Db::join</a></td><td>Perform a database join on cursors</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/db_key_range.html">Db::key_range</a></td><td>Return estimate of key location</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/db_open.html">Db::open</a></td><td>Open a database</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/db_put.html">Db::put</a></td><td>Store items into a database</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/db_remove.html">Db::remove</a></td><td>Remove a database</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/db_rename.html">Db::rename</a></td><td>Rename a database</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/db_set_append_recno.html">Db::set_append_recno</a></td><td>Set record append callback</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/db_set_bt_compare.html">Db::set_bt_compare</a></td><td>Set a Btree comparison function</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/db_set_bt_minkey.html">Db::set_bt_minkey</a></td><td>Set the minimum number of keys per Btree page</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/db_set_bt_prefix.html">Db::set_bt_prefix</a></td><td>Set a Btree prefix comparison function</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/db_set_cachesize.html">Db::set_cachesize</a></td><td>Set the database cache size</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/db_set_dup_compare.html">Db::set_dup_compare</a></td><td>Set a duplicate comparison function</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/db_set_errcall.html">Db::set_errcall</a></td><td>Set error message callback</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/db_set_errfile.html">Db::set_errfile</a></td><td>Set error message FILE *</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/db_set_errpfx.html">Db::set_errpfx</a></td><td>Set error message prefix</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/db_set_feedback.html">Db::set_feedback</a></td><td>Set feedback callback</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/db_set_flags.html">Db::set_flags</a></td><td>General database configuration</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/db_set_h_ffactor.html">Db::set_h_ffactor</a></td><td>Set the Hash table density</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/db_set_h_hash.html">Db::set_h_hash</a></td><td>Set a hashing function</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/db_set_h_nelem.html">Db::set_h_nelem</a></td><td>Set the Hash table size</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/db_set_lorder.html">Db::set_lorder</a></td><td>Set the database byte order</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/db_set_malloc.html">Db::set_malloc</a></td><td>Set a local space allocation function</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/db_set_pagesize.html">Db::set_pagesize</a></td><td>Set the underlying database page size</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/db_set_paniccall.html">Db::set_paniccall</a></td><td>Set panic callback</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/db_set_q_extentsize.html">Db::set_q_extentsize</a></td><td>Set Queue database extent size</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/db_set_re_delim.html">Db::set_re_delim</a></td><td>Set the variable-length record delimiter</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/db_set_re_len.html">Db::set_re_len</a></td><td>Set the fixed-length record length</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/db_set_re_pad.html">Db::set_re_pad</a></td><td>Set the fixed-length record pad byte</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/db_set_re_source.html">Db::set_re_source</a></td><td>Set the backing Recno text file</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/db_set_realloc.html">Db::set_realloc</a></td><td>Set a local space allocation function</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/db_stat.html">Db::stat</a></td><td>Return database statistics</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/db_sync.html">Db::sync</a></td><td>Flush a database to stable storage</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/db_upgrade.html">Db::upgrade</a></td><td>Upgrade a database</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/db_verify.html">Db::verify</a></td><td>Verify/upgrade a database</td></tr>
-<tr><td><a href="../api_cxx/dbc_class.html">Dbc</a></td><td><br></td><td>Berkeley DB Cursor Class</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/dbc_close.html">Dbc::close</a></td><td>Close a cursor</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/dbc_count.html">Dbc::count</a></td><td>Return count of duplicates</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/dbc_del.html">Dbc::del</a></td><td>Delete by cursor</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/dbc_dup.html">Dbc::dup</a></td><td>Duplicate a cursor</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/dbc_get.html">Dbc::get</a></td><td>Retrieve by cursor</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/dbc_put.html">Dbc::put</a></td><td>Store by cursor</td></tr>
-<tr><td><a href="../api_cxx/dbt_class.html">Dbt</a></td><td><br></td><td>Key/Data Encoding Class</td></tr>
-<tr><td><a href="../api_cxx/lock_class.html">DbLock</a></td><td><br></td><td>Lock Class</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/lock_put.html">DbLock::put</a></td><td>Release a lock</td></tr>
-<tr><td><a href="../api_cxx/lsn_class.html">DbLsn</a></td><td><br></td><td>Log Sequence Number Class</td></tr>
-<tr><td><a href="../api_cxx/mempfile_class.html">DbMpoolFile</a></td><td><br></td><td>Memory Pool File Class</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/memp_fclose.html">DbMpoolFile::close</a></td><td>Close a file in a buffer pool</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/memp_fget.html">DbMpoolFile::get</a></td><td>Get page from a file in a buffer pool</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/memp_fopen.html">DbMpoolFile::open</a></td><td>Open a file in a buffer pool</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/memp_fput.html">DbMpoolFile::put</a></td><td>Return a page to a buffer pool</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/memp_fset.html">DbMpoolFile::set</a></td><td>Modify meta information for buffer pool page</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/memp_fsync.html">DbMpoolFile::sync</a></td><td>Flush pages from a file in a buffer pool</td></tr>
-<tr><td><a href="../api_cxx/txn_class.html">DbTxn</a></td><td><br></td><td>Transaction Class</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/txn_abort.html">DbTxn::abort</a></td><td>Abort a transaction</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/txn_commit.html">DbTxn::commit</a></td><td>Commit a transaction</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/txn_id.html">DbTxn::id</a></td><td>Return a transaction ID</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/txn_prepare.html">DbTxn::prepare</a></td><td>Prepare a transaction for commit</td></tr>
-<tr><td><a href="../api_cxx/except_class.html">DbException</a></td><td><br></td><td>Exception Class for Berkeley DB Activity</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/get_errno.html">DbException::get_errno</a></td><td>Get the error value</td></tr>
-<tr><td><br></td><td><a href="../api_cxx/what.html">DbException::what</a></td><td>Get the error string</td></tr>
-</table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/cxx_pindex.html b/bdb/docs/api_cxx/cxx_pindex.html
deleted file mode 100644
index d460fcf65c4..00000000000
--- a/bdb/docs/api_cxx/cxx_pindex.html
+++ /dev/null
@@ -1,516 +0,0 @@
-<html>
-<head>
-<title>Berkeley DB: C++ Interface Index</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<h1 align=center>C++ Interface Index</h1>
-<center>
-<table cellspacing=0 cellpadding=0>
-<tr><td align=right> configuring Berkeley DB </td><td><a href="../ref/build_unix/conf.html#5">1.85</a> API compatibility</td></tr>
-<tr><td align=right> building a utility to dump Berkeley DB </td><td><a href="../ref/build_unix/conf.html#7">1.85</a> databases</td></tr>
-<tr><td align=right> Upgrading to release </td><td><a href="../ref/upgrade.2.0/intro.html#2">2.0</a></td></tr>
-<tr><td align=right> Upgrading to release </td><td><a href="../ref/upgrade.3.0/intro.html#2">3.0</a></td></tr>
-<tr><td align=right> Upgrading to release </td><td><a href="../ref/upgrade.3.1/intro.html#2">3.1</a></td></tr>
-<tr><td align=right> Upgrading to release </td><td><a href="../ref/upgrade.3.2/intro.html#2">3.2</a></td></tr>
-<tr><td align=right> selecting an </td><td><a href="../ref/am_conf/select.html#2">access</a> method</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am_conf/intro.html#2">access</a> methods</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/aix.html#2">AIX</a></td></tr>
-<tr><td align=right> data </td><td><a href="../api_cxx/dbt_class.html#6">alignment</a></td></tr>
-<tr><td align=right> programmatic </td><td><a href="../ref/arch/apis.html#2">APIs</a></td></tr>
-<tr><td align=right> utility to </td><td><a href="../utility/db_archive.html#3">archive</a> log files</td></tr>
-<tr><td align=right> </td><td><a href="../utility/berkeley_db_svc.html#2">berkeley_db_svc</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/intro.html#2">building</a> for UNIX</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/notes.html#2">building</a> for UNIX FAQ</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_vxworks/intro.html#2">building</a> for VxWorks</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_vxworks/faq.html#2">building</a> for VxWorks FAQ</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_win/intro.html#2">building</a> for Win32</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_win/faq.html#2">building</a> for Windows FAQ</td></tr>
-<tr><td align=right> selecting a </td><td><a href="../ref/am_conf/byteorder.html#2">byte</a> order</td></tr>
-<tr><td align=right> </td><td><a href="../ref/program/byteorder.html#2">byte</a> ordering</td></tr>
-<tr><td align=right> configuring the </td><td><a href="../ref/build_unix/conf.html#6">C++</a> API</td></tr>
-<tr><td align=right> flushing the database </td><td><a href="../ref/am/sync.html#2">cache</a></td></tr>
-<tr><td align=right> selecting a </td><td><a href="../ref/am_conf/cachesize.html#2">cache</a> size</td></tr>
-<tr><td align=right> </td><td><a href="../ref/transapp/archival.html#3">catastrophic</a> recovery</td></tr>
-<tr><td align=right>Patches, Updates and </td><td><a href="http://www.sleepycat.com/update/index.html">Change</a> logs</td></tr>
-<tr><td align=right> utility to take </td><td><a href="../utility/db_checkpoint.html#3">checkpoints</a></td></tr>
-<tr><td align=right>DbMpoolFile::open</td><td><a href="../api_cxx/memp_fopen.html#clear_len">clear_len</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/curclose.html#2">closing</a> a cursor</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/close.html#2">closing</a> a database</td></tr>
-<tr><td align=right> specifying a Btree </td><td><a href="../ref/am_conf/bt_compare.html#2">comparison</a> function</td></tr>
-<tr><td align=right> changing </td><td><a href="../ref/build_unix/flags.html#2">compile</a> or load options</td></tr>
-<tr><td align=right> </td><td><a href="../ref/cam/intro.html#2">Concurrent</a> Data Store</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/conf.html#2">configuring</a> Berkeley DB for UNIX systems</td></tr>
-<tr><td align=right> recovering </td><td><a href="../ref/am/verify.html#4">corrupted</a> databases</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/count.html#2">counting</a> data items for a key</td></tr>
-<tr><td align=right> closing a </td><td><a href="../ref/am/curclose.html#3">cursor</a></td></tr>
-<tr><td align=right> deleting records with a </td><td><a href="../ref/am/curdel.html#3">cursor</a></td></tr>
-<tr><td align=right> duplicating a </td><td><a href="../ref/am/curdup.html#3">cursor</a></td></tr>
-<tr><td align=right> retrieving records with a </td><td><a href="../ref/am/curget.html#3">cursor</a></td></tr>
-<tr><td align=right> storing records with a </td><td><a href="../ref/am/curput.html#3">cursor</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/stability.html#2">cursor</a> stability</td></tr>
-<tr><td align=right> database </td><td><a href="../ref/am/cursor.html#2">cursors</a></td></tr>
-<tr><td align=right>Dbt</td><td><a href="../api_cxx/dbt_class.html#data">data</a></td></tr>
-<tr><td align=right> utility to upgrade </td><td><a href="../utility/db_upgrade.html#3">database</a> files</td></tr>
-<tr><td align=right> utility to verify </td><td><a href="../utility/db_verify.html#3">database</a> files</td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/db_class.html#2">Db</a></td></tr>
-<tr><td align=right>Dbc::put</td><td><a href="../api_cxx/dbc_put.html#DB_AFTER">DB_AFTER</a></td></tr>
-<tr><td align=right>Db::verify</td><td><a href="../api_cxx/db_verify.html#DB_AGGRESSIVE">DB_AGGRESSIVE</a></td></tr>
-<tr><td align=right>Db::put</td><td><a href="../api_cxx/db_put.html#DB_APPEND">DB_APPEND</a></td></tr>
-<tr><td align=right>DbEnv::log_archive</td><td><a href="../api_cxx/log_archive.html#DB_ARCH_ABS">DB_ARCH_ABS</a></td></tr>
-<tr><td align=right>DbEnv::log_archive</td><td><a href="../api_cxx/log_archive.html#DB_ARCH_DATA">DB_ARCH_DATA</a></td></tr>
-<tr><td align=right> </td><td><a href="../utility/db_archive.html#2">db_archive</a></td></tr>
-<tr><td align=right>DbEnv::log_archive</td><td><a href="../api_cxx/log_archive.html#DB_ARCH_LOG">DB_ARCH_LOG</a></td></tr>
-<tr><td align=right>Dbc::put</td><td><a href="../api_cxx/dbc_put.html#DB_BEFORE">DB_BEFORE</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/dbc_class.html#2">Dbc</a></td></tr>
-<tr><td align=right>Db::stat</td><td><a href="../api_cxx/db_stat.html#DB_CACHED_COUNTS">DB_CACHED_COUNTS</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/dbc_close.html#2">Dbc::close</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/dbc_count.html#2">Dbc::count</a></td></tr>
-<tr><td align=right>DbEnv::set_flags</td><td><a href="../api_cxx/env_set_flags.html#DB_CDB_ALLDB">DB_CDB_ALLDB</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/dbc_del.html#2">Dbc::del</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/dbc_dup.html#2">Dbc::dup</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/dbc_get.html#2">Dbc::get</a></td></tr>
-<tr><td align=right>DbEnv::log_get</td><td><a href="../api_cxx/log_get.html#DB_CHECKPOINT">DB_CHECKPOINT</a></td></tr>
-<tr><td align=right>DbEnv::log_put</td><td><a href="../api_cxx/log_put.html#DB_CHECKPOINT">DB_CHECKPOINT</a></td></tr>
-<tr><td align=right> </td><td><a href="../utility/db_checkpoint.html#2">db_checkpoint</a></td></tr>
-<tr><td align=right>DbEnv</td><td><a href="../api_cxx/dbenv_class.html#DB_CLIENT">DB_CLIENT</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/db_close.html#2">Db::close</a></td></tr>
-<tr><td align=right>File naming</td><td><a href="../ref/env/naming.html#DB_CONFIG">DB_CONFIG</a></td></tr>
-<tr><td align=right>Db::get</td><td><a href="../api_cxx/db_get.html#DB_CONSUME">DB_CONSUME</a></td></tr>
-<tr><td align=right>Db::get</td><td><a href="../api_cxx/db_get.html#DB_CONSUME_WAIT">DB_CONSUME_WAIT</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/dbc_put.html#2">Dbc::put</a></td></tr>
-<tr><td align=right>Db::open</td><td><a href="../api_cxx/db_open.html#DB_CREATE">DB_CREATE</a></td></tr>
-<tr><td align=right>DbEnv::open</td><td><a href="../api_cxx/env_open.html#DB_CREATE">DB_CREATE</a></td></tr>
-<tr><td align=right>DbMpoolFile::open</td><td><a href="../api_cxx/memp_fopen.html#DB_CREATE">DB_CREATE</a></td></tr>
-<tr><td align=right>DbEnv::log_put</td><td><a href="../api_cxx/log_put.html#DB_CURLSN">DB_CURLSN</a></td></tr>
-<tr><td align=right>Dbc::get</td><td><a href="../api_cxx/dbc_get.html#DB_CURRENT">DB_CURRENT</a></td></tr>
-<tr><td align=right>Dbc::put</td><td><a href="../api_cxx/dbc_put.html#DB_CURRENT">DB_CURRENT</a></td></tr>
-<tr><td align=right>DbEnv::log_get</td><td><a href="../api_cxx/log_get.html#DB_CURRENT">DB_CURRENT</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/db_cursor.html#2">Db::cursor</a></td></tr>
-<tr><td align=right>Db</td><td><a href="../api_cxx/db_class.html#DB_CXX_NO_EXCEPTIONS">DB_CXX_NO_EXCEPTIONS</a></td></tr>
-<tr><td align=right>DbEnv</td><td><a href="../api_cxx/dbenv_class.html#DB_CXX_NO_EXCEPTIONS">DB_CXX_NO_EXCEPTIONS</a></td></tr>
-<tr><td align=right>Dbt</td><td><a href="../api_cxx/dbt_class.html#DB_DBT_MALLOC">DB_DBT_MALLOC</a></td></tr>
-<tr><td align=right>Dbt</td><td><a href="../api_cxx/dbt_class.html#DB_DBT_PARTIAL">DB_DBT_PARTIAL</a></td></tr>
-<tr><td align=right>Dbt</td><td><a href="../api_cxx/dbt_class.html#DB_DBT_REALLOC">DB_DBT_REALLOC</a></td></tr>
-<tr><td align=right>Dbt</td><td><a href="../api_cxx/dbt_class.html#DB_DBT_USERMEM">DB_DBT_USERMEM</a></td></tr>
-<tr><td align=right> </td><td><a href="../utility/db_deadlock.html#2">db_deadlock</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/db_del.html#2">Db::del</a></td></tr>
-<tr><td align=right> </td><td><a href="../utility/db_dump.html#2">db_dump</a></td></tr>
-<tr><td align=right>Db::set_flags</td><td><a href="../api_cxx/db_set_flags.html#DB_DUP">DB_DUP</a></td></tr>
-<tr><td align=right>Db::set_flags</td><td><a href="../api_cxx/db_set_flags.html#DB_DUPSORT">DB_DUPSORT</a></td></tr>
-<tr><td align=right>Db::upgrade</td><td><a href="../api_cxx/db_upgrade.html#DB_DUPSORT">DB_DUPSORT</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/dbenv_class.html#2">DbEnv</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/env_close.html#2">DbEnv::close</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/db_err.html#2">DbEnv::err</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/lock_detect.html#2">DbEnv::lock_detect</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/lock_get.html#2">DbEnv::lock_get</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/lock_id.html#2">DbEnv::lock_id</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/lock_stat.html#2">DbEnv::lock_stat</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/lock_vec.html#2">DbEnv::lock_vec</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/log_archive.html#2">DbEnv::log_archive</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/log_compare.html#2">DbEnv::log_compare</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/log_file.html#2">DbEnv::log_file</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/log_flush.html#2">DbEnv::log_flush</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/log_get.html#2">DbEnv::log_get</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/log_put.html#2">DbEnv::log_put</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/log_register.html#2">DbEnv::log_register</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/log_stat.html#2">DbEnv::log_stat</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/log_unregister.html#2">DbEnv::log_unregister</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/memp_register.html#2">DbEnv::memp_register</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/memp_stat.html#2">DbEnv::memp_stat</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/memp_sync.html#2">DbEnv::memp_sync</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/memp_trickle.html#2">DbEnv::memp_trickle</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/env_open.html#2">DbEnv::open</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/env_remove.html#2">DbEnv::remove</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/env_set_cachesize.html#2">DbEnv::set_cachesize</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/env_set_data_dir.html#2">DbEnv::set_data_dir</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/env_set_errcall.html#2">DbEnv::set_errcall</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/env_set_errfile.html#2">DbEnv::set_errfile</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/env_set_error_stream.html#2">DbEnv::set_error_stream</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/env_set_errpfx.html#2">DbEnv::set_errpfx</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/env_set_feedback.html#2">DbEnv::set_feedback</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/env_set_flags.html#2">DbEnv::set_flags</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/env_set_lg_bsize.html#2">DbEnv::set_lg_bsize</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/env_set_lg_dir.html#2">DbEnv::set_lg_dir</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/env_set_lg_max.html#2">DbEnv::set_lg_max</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/env_set_lk_conflicts.html#2">DbEnv::set_lk_conflicts</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/env_set_lk_detect.html#2">DbEnv::set_lk_detect</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/env_set_lk_max.html#2">DbEnv::set_lk_max</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/env_set_lk_max_lockers.html#2">DbEnv::set_lk_max_lockers</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/env_set_lk_max_locks.html#2">DbEnv::set_lk_max_locks</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/env_set_lk_max_objects.html#2">DbEnv::set_lk_max_objects</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/env_set_mp_mmapsize.html#2">DbEnv::set_mp_mmapsize</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/env_set_mutexlocks.html#2">DbEnv::set_mutexlocks</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/env_set_pageyield.html#2">DbEnv::set_pageyield</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/env_set_paniccall.html#2">DbEnv::set_paniccall</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/env_set_panicstate.html#2">DbEnv::set_panicstate</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/env_set_rec_init.html#2">DbEnv::set_recovery_init</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/env_set_region_init.html#2">DbEnv::set_region_init</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/env_set_server.html#2">DbEnv::set_server</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/env_set_shm_key.html#2">DbEnv::set_shm_key</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/env_set_tas_spins.html#2">DbEnv::set_tas_spins</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/env_set_tmp_dir.html#2">DbEnv::set_tmp_dir</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/env_set_tx_max.html#2">DbEnv::set_tx_max</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/env_set_tx_recover.html#2">DbEnv::set_tx_recover</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/env_set_tx_timestamp.html#2">DbEnv::set_tx_timestamp</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/env_set_verbose.html#2">DbEnv::set_verbose</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/env_strerror.html#2">DbEnv::strerror</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/txn_begin.html#2">DbEnv::txn_begin</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/txn_checkpoint.html#2">DbEnv::txn_checkpoint</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/txn_stat.html#2">DbEnv::txn_stat</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/env_version.html#2">DbEnv::version</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/except_class.html#2">DbException</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/get_errno.html#2">DbException::get_errno</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/what.html#2">DbException::what</a></td></tr>
-<tr><td align=right>Db::open</td><td><a href="../api_cxx/db_open.html#DB_EXCL">DB_EXCL</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/db_fd.html#2">Db::fd</a></td></tr>
-<tr><td align=right>Dbc::get</td><td><a href="../api_cxx/dbc_get.html#DB_FIRST">DB_FIRST</a></td></tr>
-<tr><td align=right>DbEnv::log_get</td><td><a href="../api_cxx/log_get.html#DB_FIRST">DB_FIRST</a></td></tr>
-<tr><td align=right>DbEnv::log_put</td><td><a href="../api_cxx/log_put.html#DB_FLUSH">DB_FLUSH</a></td></tr>
-<tr><td align=right>DbEnv::remove</td><td><a href="../api_cxx/env_remove.html#DB_FORCE">DB_FORCE</a></td></tr>
-<tr><td align=right>DbEnv::txn_checkpoint</td><td><a href="../api_cxx/txn_checkpoint.html#DB_FORCE">DB_FORCE</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/db_get.html#2">Db::get</a></td></tr>
-<tr><td align=right>Db::get</td><td><a href="../api_cxx/db_get.html#DB_GET_BOTH">DB_GET_BOTH</a></td></tr>
-<tr><td align=right>Dbc::get</td><td><a href="../api_cxx/dbc_get.html#DB_GET_BOTH">DB_GET_BOTH</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/db_get_byteswapped.html#2">Db::get_byteswapped</a></td></tr>
-<tr><td align=right>Dbc::get</td><td><a href="../api_cxx/dbc_get.html#DB_GET_RECNO">DB_GET_RECNO</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/db_get_type.html#2">Db::get_type</a></td></tr>
-<tr><td align=right>File naming</td><td><a href="../ref/env/naming.html#DB_HOME">DB_HOME</a></td></tr>
-<tr><td align=right>File naming</td><td><a href="../ref/env/naming.html#db_home">db_home</a></td></tr>
-<tr><td align=right> Db::close </td><td><a href="../api_cxx/db_close.html#3">DB_INCOMPLETE</a></td></tr>
-<tr><td align=right>DbEnv::open</td><td><a href="../api_cxx/env_open.html#DB_INIT_CDB">DB_INIT_CDB</a></td></tr>
-<tr><td align=right>DbEnv::open</td><td><a href="../api_cxx/env_open.html#DB_INIT_LOCK">DB_INIT_LOCK</a></td></tr>
-<tr><td align=right>DbEnv::open</td><td><a href="../api_cxx/env_open.html#DB_INIT_LOG">DB_INIT_LOG</a></td></tr>
-<tr><td align=right>DbEnv::open</td><td><a href="../api_cxx/env_open.html#DB_INIT_MPOOL">DB_INIT_MPOOL</a></td></tr>
-<tr><td align=right>DbEnv::open</td><td><a href="../api_cxx/env_open.html#DB_INIT_TXN">DB_INIT_TXN</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/db_join.html#2">Db::join</a></td></tr>
-<tr><td align=right>DbEnv::open</td><td><a href="../api_cxx/env_open.html#DB_JOINENV">DB_JOINENV</a></td></tr>
-<tr><td align=right>Db::join</td><td><a href="../api_cxx/db_join.html#DB_JOIN_ITEM">DB_JOIN_ITEM</a></td></tr>
-<tr><td align=right>Dbc::get</td><td><a href="../api_cxx/dbc_get.html#DB_JOIN_ITEM">DB_JOIN_ITEM</a></td></tr>
-<tr><td align=right>Db::join</td><td><a href="../api_cxx/db_join.html#DB_JOIN_NOSORT">DB_JOIN_NOSORT</a></td></tr>
-<tr><td align=right>Error returns to applications</td><td><a href="../ref/program/errorret.html#DB_KEYEMPTY">DB_KEYEMPTY</a></td></tr>
-<tr><td align=right>Dbc::put</td><td><a href="../api_cxx/dbc_put.html#DB_KEYFIRST">DB_KEYFIRST</a></td></tr>
-<tr><td align=right>Dbc::put</td><td><a href="../api_cxx/dbc_put.html#DB_KEYLAST">DB_KEYLAST</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/db_key_range.html#2">Db::key_range</a></td></tr>
-<tr><td align=right>Dbc::get</td><td><a href="../api_cxx/dbc_get.html#DB_LAST">DB_LAST</a></td></tr>
-<tr><td align=right>DbEnv::log_get</td><td><a href="../api_cxx/log_get.html#DB_LAST">DB_LAST</a></td></tr>
-<tr><td align=right> </td><td><a href="../utility/db_load.html#2">db_load</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/lock_class.html#2">DbLock</a></td></tr>
-<tr><td align=right>DbEnv::lock_detect</td><td><a href="../api_cxx/lock_detect.html#DB_LOCK_CONFLICT">DB_LOCK_CONFLICT</a></td></tr>
-<tr><td align=right>Error returns to applications</td><td><a href="../ref/program/errorret.html#DB_LOCK_DEADLOCK">DB_LOCK_DEADLOCK</a></td></tr>
-<tr><td align=right>DbEnv::set_lk_detect</td><td><a href="../api_cxx/env_set_lk_detect.html#DB_LOCK_DEFAULT">DB_LOCK_DEFAULT</a></td></tr>
-<tr><td align=right>DbEnv::open</td><td><a href="../api_cxx/env_open.html#DB_LOCKDOWN">DB_LOCKDOWN</a></td></tr>
-<tr><td align=right>DbEnv::lock_vec</td><td><a href="../api_cxx/lock_vec.html#DB_LOCK_GET">DB_LOCK_GET</a></td></tr>
-<tr><td align=right>DbEnv::lock_get</td><td><a href="../api_cxx/lock_get.html#DB_LOCK_NOTGRANTED">DB_LOCK_NOTGRANTED</a></td></tr>
-<tr><td align=right>DbEnv::lock_vec</td><td><a href="../api_cxx/lock_vec.html#DB_LOCK_NOTGRANTED">DB_LOCK_NOTGRANTED</a></td></tr>
-<tr><td align=right>Error returns to applications</td><td><a href="../ref/program/errorret.html#DB_LOCK_NOTGRANTED">DB_LOCK_NOTGRANTED</a></td></tr>
-<tr><td align=right>DbEnv::lock_get</td><td><a href="../api_cxx/lock_get.html#DB_LOCK_NOWAIT">DB_LOCK_NOWAIT</a></td></tr>
-<tr><td align=right>DbEnv::lock_vec</td><td><a href="../api_cxx/lock_vec.html#DB_LOCK_NOWAIT">DB_LOCK_NOWAIT</a></td></tr>
-<tr><td align=right>DbEnv::set_lk_detect</td><td><a href="../api_cxx/env_set_lk_detect.html#DB_LOCK_OLDEST">DB_LOCK_OLDEST</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/lock_put.html#2">DbLock::put</a></td></tr>
-<tr><td align=right>DbEnv::lock_vec</td><td><a href="../api_cxx/lock_vec.html#DB_LOCK_PUT">DB_LOCK_PUT</a></td></tr>
-<tr><td align=right>DbEnv::lock_vec</td><td><a href="../api_cxx/lock_vec.html#DB_LOCK_PUT_ALL">DB_LOCK_PUT_ALL</a></td></tr>
-<tr><td align=right>DbEnv::lock_vec</td><td><a href="../api_cxx/lock_vec.html#DB_LOCK_PUT_OBJ">DB_LOCK_PUT_OBJ</a></td></tr>
-<tr><td align=right>DbEnv::set_lk_detect</td><td><a href="../api_cxx/env_set_lk_detect.html#DB_LOCK_RANDOM">DB_LOCK_RANDOM</a></td></tr>
-<tr><td align=right>DbEnv::set_lk_detect</td><td><a href="../api_cxx/env_set_lk_detect.html#DB_LOCK_YOUNGEST">DB_LOCK_YOUNGEST</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/lsn_class.html#2">DbLsn</a></td></tr>
-<tr><td align=right>DbMpoolFile::put</td><td><a href="../api_cxx/memp_fput.html#DB_MPOOL_CLEAN">DB_MPOOL_CLEAN</a></td></tr>
-<tr><td align=right>DbMpoolFile::set</td><td><a href="../api_cxx/memp_fset.html#DB_MPOOL_CLEAN">DB_MPOOL_CLEAN</a></td></tr>
-<tr><td align=right>DbMpoolFile::get</td><td><a href="../api_cxx/memp_fget.html#DB_MPOOL_CREATE">DB_MPOOL_CREATE</a></td></tr>
-<tr><td align=right>DbMpoolFile::put</td><td><a href="../api_cxx/memp_fput.html#DB_MPOOL_DIRTY">DB_MPOOL_DIRTY</a></td></tr>
-<tr><td align=right>DbMpoolFile::set</td><td><a href="../api_cxx/memp_fset.html#DB_MPOOL_DIRTY">DB_MPOOL_DIRTY</a></td></tr>
-<tr><td align=right>DbMpoolFile::put</td><td><a href="../api_cxx/memp_fput.html#DB_MPOOL_DISCARD">DB_MPOOL_DISCARD</a></td></tr>
-<tr><td align=right>DbMpoolFile::set</td><td><a href="../api_cxx/memp_fset.html#DB_MPOOL_DISCARD">DB_MPOOL_DISCARD</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/mempfile_class.html#2">DbMpoolFile</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/memp_fclose.html#2">DbMpoolFile::close</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/memp_fget.html#2">DbMpoolFile::get</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/memp_fopen.html#2">DbMpoolFile::open</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/memp_fput.html#2">DbMpoolFile::put</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/memp_fset.html#2">DbMpoolFile::set</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/memp_fsync.html#2">DbMpoolFile::sync</a></td></tr>
-<tr><td align=right>DbMpoolFile::get</td><td><a href="../api_cxx/memp_fget.html#DB_MPOOL_LAST">DB_MPOOL_LAST</a></td></tr>
-<tr><td align=right>DbMpoolFile::get</td><td><a href="../api_cxx/memp_fget.html#DB_MPOOL_NEW">DB_MPOOL_NEW</a></td></tr>
-<tr><td align=right>Dbc::get</td><td><a href="../api_cxx/dbc_get.html#DB_NEXT">DB_NEXT</a></td></tr>
-<tr><td align=right>DbEnv::log_get</td><td><a href="../api_cxx/log_get.html#DB_NEXT">DB_NEXT</a></td></tr>
-<tr><td align=right>Dbc::get</td><td><a href="../api_cxx/dbc_get.html#DB_NEXT_DUP">DB_NEXT_DUP</a></td></tr>
-<tr><td align=right>Dbc::get</td><td><a href="../api_cxx/dbc_get.html#DB_NEXT_NODUP">DB_NEXT_NODUP</a></td></tr>
-<tr><td align=right>Db::put</td><td><a href="../api_cxx/db_put.html#DB_NODUPDATA">DB_NODUPDATA</a></td></tr>
-<tr><td align=right>Dbc::put</td><td><a href="../api_cxx/dbc_put.html#DB_NODUPDATA">DB_NODUPDATA</a></td></tr>
-<tr><td align=right>Db::open</td><td><a href="../api_cxx/db_open.html#DB_NOMMAP">DB_NOMMAP</a></td></tr>
-<tr><td align=right>DbEnv::set_flags</td><td><a href="../api_cxx/env_set_flags.html#DB_NOMMAP">DB_NOMMAP</a></td></tr>
-<tr><td align=right>DbMpoolFile::open</td><td><a href="../api_cxx/memp_fopen.html#DB_NOMMAP">DB_NOMMAP</a></td></tr>
-<tr><td align=right>Db::verify</td><td><a href="../api_cxx/db_verify.html#DB_NOORDERCHK">DB_NOORDERCHK</a></td></tr>
-<tr><td align=right>Db::put</td><td><a href="../api_cxx/db_put.html#DB_NOOVERWRITE">DB_NOOVERWRITE</a></td></tr>
-<tr><td align=right>DbEnv::set_server</td><td><a href="../api_cxx/env_set_server.html#DB_NOSERVER">DB_NOSERVER</a></td></tr>
-<tr><td align=right>DbEnv::set_server</td><td><a href="../api_cxx/env_set_server.html#DB_NOSERVER_ID">DB_NOSERVER_ID</a></td></tr>
-<tr><td align=right>Db::close</td><td><a href="../api_cxx/db_close.html#DB_NOSYNC">DB_NOSYNC</a></td></tr>
-<tr><td align=right>Error returns to applications</td><td><a href="../ref/program/errorret.html#DB_NOTFOUND">DB_NOTFOUND</a></td></tr>
-<tr><td align=right>Db::open</td><td><a href="../api_cxx/db_open.html#DB_OLD_VERSION">DB_OLD_VERSION</a></td></tr>
-<tr><td align=right>Db::upgrade</td><td><a href="../api_cxx/db_upgrade.html#DB_OLD_VERSION">DB_OLD_VERSION</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/db_open.html#2">Db::open</a></td></tr>
-<tr><td align=right>Db::verify</td><td><a href="../api_cxx/db_verify.html#DB_ORDERCHKONLY">DB_ORDERCHKONLY</a></td></tr>
-<tr><td align=right>Dbc::dup</td><td><a href="../api_cxx/dbc_dup.html#DB_POSITION">DB_POSITION</a></td></tr>
-<tr><td align=right>Dbc::get</td><td><a href="../api_cxx/dbc_get.html#DB_PREV">DB_PREV</a></td></tr>
-<tr><td align=right>DbEnv::log_get</td><td><a href="../api_cxx/log_get.html#DB_PREV">DB_PREV</a></td></tr>
-<tr><td align=right>Dbc::get</td><td><a href="../api_cxx/dbc_get.html#DB_PREV_NODUP">DB_PREV_NODUP</a></td></tr>
-<tr><td align=right> </td><td><a href="../utility/db_printlog.html#2">db_printlog</a></td></tr>
-<tr><td align=right>DbEnv::open</td><td><a href="../api_cxx/env_open.html#DB_PRIVATE">DB_PRIVATE</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/db_put.html#2">Db::put</a></td></tr>
-<tr><td align=right>Db::open</td><td><a href="../api_cxx/db_open.html#DB_RDONLY">DB_RDONLY</a></td></tr>
-<tr><td align=right>DbMpoolFile::open</td><td><a href="../api_cxx/memp_fopen.html#DB_RDONLY">DB_RDONLY</a></td></tr>
-<tr><td align=right>Db::set_flags</td><td><a href="../api_cxx/db_set_flags.html#DB_RECNUM">DB_RECNUM</a></td></tr>
-<tr><td align=right>Db::stat</td><td><a href="../api_cxx/db_stat.html#DB_RECORDCOUNT">DB_RECORDCOUNT</a></td></tr>
-<tr><td align=right>DbEnv::open</td><td><a href="../api_cxx/env_open.html#DB_RECOVER">DB_RECOVER</a></td></tr>
-<tr><td align=right>DbEnv::set_feedback</td><td><a href="../api_cxx/env_set_feedback.html#DB_RECOVER">DB_RECOVER</a></td></tr>
-<tr><td align=right> </td><td><a href="../utility/db_recover.html#2">db_recover</a></td></tr>
-<tr><td align=right>DbEnv::open</td><td><a href="../api_cxx/env_open.html#DB_RECOVER_FATAL">DB_RECOVER_FATAL</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/db_remove.html#2">Db::remove</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/db_rename.html#2">Db::rename</a></td></tr>
-<tr><td align=right>Db::set_flags</td><td><a href="../api_cxx/db_set_flags.html#DB_RENUMBER">DB_RENUMBER</a></td></tr>
-<tr><td align=right>Db::set_flags</td><td><a href="../api_cxx/db_set_flags.html#DB_REVSPLITOFF">DB_REVSPLITOFF</a></td></tr>
-<tr><td align=right>Db::get</td><td><a href="../api_cxx/db_get.html#DB_RMW">DB_RMW</a></td></tr>
-<tr><td align=right>Db::join</td><td><a href="../api_cxx/db_join.html#DB_RMW">DB_RMW</a></td></tr>
-<tr><td align=right>Dbc::get</td><td><a href="../api_cxx/dbc_get.html#DB_RMW">DB_RMW</a></td></tr>
-<tr><td align=right>Error returns to applications</td><td><a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a></td></tr>
-<tr><td align=right>Db::verify</td><td><a href="../api_cxx/db_verify.html#DB_SALVAGE">DB_SALVAGE</a></td></tr>
-<tr><td align=right>Dbc::get</td><td><a href="../api_cxx/dbc_get.html#DB_SET">DB_SET</a></td></tr>
-<tr><td align=right>DbEnv::log_get</td><td><a href="../api_cxx/log_get.html#DB_SET">DB_SET</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/db_set_append_recno.html#2">Db::set_append_recno</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/db_set_bt_compare.html#2">Db::set_bt_compare</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/db_set_bt_minkey.html#2">Db::set_bt_minkey</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/db_set_bt_prefix.html#2">Db::set_bt_prefix</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/db_set_cachesize.html#2">Db::set_cachesize</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/db_set_dup_compare.html#2">Db::set_dup_compare</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/db_set_errcall.html#2">Db::set_errcall</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/db_set_errfile.html#2">Db::set_errfile</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/db_set_errpfx.html#2">Db::set_errpfx</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/db_set_feedback.html#2">Db::set_feedback</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/db_set_flags.html#2">Db::set_flags</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/db_set_h_ffactor.html#2">Db::set_h_ffactor</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/db_set_h_hash.html#2">Db::set_h_hash</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/db_set_h_nelem.html#2">Db::set_h_nelem</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/db_set_lorder.html#2">Db::set_lorder</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/db_set_malloc.html#2">Db::set_malloc</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/db_set_pagesize.html#2">Db::set_pagesize</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/db_set_paniccall.html#2">Db::set_paniccall</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/db_set_q_extentsize.html#2">Db::set_q_extentsize</a></td></tr>
-<tr><td align=right>Dbc::get</td><td><a href="../api_cxx/dbc_get.html#DB_SET_RANGE">DB_SET_RANGE</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/db_set_realloc.html#2">Db::set_realloc</a></td></tr>
-<tr><td align=right>Db::get</td><td><a href="../api_cxx/db_get.html#DB_SET_RECNO">DB_SET_RECNO</a></td></tr>
-<tr><td align=right>Dbc::get</td><td><a href="../api_cxx/dbc_get.html#DB_SET_RECNO">DB_SET_RECNO</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/db_set_re_delim.html#2">Db::set_re_delim</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/db_set_re_len.html#2">Db::set_re_len</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/db_set_re_pad.html#2">Db::set_re_pad</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/db_set_re_source.html#2">Db::set_re_source</a></td></tr>
-<tr><td align=right>Db::set_flags</td><td><a href="../api_cxx/db_set_flags.html#DB_SNAPSHOT">DB_SNAPSHOT</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/db_stat.html#2">Db::stat</a></td></tr>
-<tr><td align=right> </td><td><a href="../utility/db_stat.html#2">db_stat</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/db_sync.html#2">Db::sync</a></td></tr>
-<tr><td align=right>DbEnv::open</td><td><a href="../api_cxx/env_open.html#DB_SYSTEM_MEM">DB_SYSTEM_MEM</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/dbt_class.html#2">Dbt</a></td></tr>
-<tr><td align=right>Db::open</td><td><a href="../api_cxx/db_open.html#DB_THREAD">DB_THREAD</a></td></tr>
-<tr><td align=right>DbEnv::open</td><td><a href="../api_cxx/env_open.html#DB_THREAD">DB_THREAD</a></td></tr>
-<tr><td align=right>Db::open</td><td><a href="../api_cxx/db_open.html#DB_TRUNCATE">DB_TRUNCATE</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/txn_class.html#2">DbTxn</a></td></tr>
-<tr><td align=right>DbEnv::set_tx_recover</td><td><a href="../api_cxx/env_set_tx_recover.html#DB_TXN_ABORT">DB_TXN_ABORT</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/txn_abort.html#2">DbTxn::abort</a></td></tr>
-<tr><td align=right>DbEnv::set_tx_recover</td><td><a href="../api_cxx/env_set_tx_recover.html#DB_TXN_BACKWARD_ROLL">DB_TXN_BACKWARD_ROLL</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/txn_commit.html#2">DbTxn::commit</a></td></tr>
-<tr><td align=right>DbEnv::set_tx_recover</td><td><a href="../api_cxx/env_set_tx_recover.html#DB_TXN_FORWARD_ROLL">DB_TXN_FORWARD_ROLL</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/txn_id.html#2">DbTxn::id</a></td></tr>
-<tr><td align=right>DbEnv::set_flags</td><td><a href="../api_cxx/env_set_flags.html#DB_TXN_NOSYNC">DB_TXN_NOSYNC</a></td></tr>
-<tr><td align=right>DbEnv::txn_begin</td><td><a href="../api_cxx/txn_begin.html#DB_TXN_NOSYNC">DB_TXN_NOSYNC</a></td></tr>
-<tr><td align=right>DbTxn::commit</td><td><a href="../api_cxx/txn_commit.html#DB_TXN_NOSYNC">DB_TXN_NOSYNC</a></td></tr>
-<tr><td align=right>DbEnv::txn_begin</td><td><a href="../api_cxx/txn_begin.html#DB_TXN_NOWAIT">DB_TXN_NOWAIT</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/txn_prepare.html#2">DbTxn::prepare</a></td></tr>
-<tr><td align=right>DbEnv::txn_begin</td><td><a href="../api_cxx/txn_begin.html#DB_TXN_SYNC">DB_TXN_SYNC</a></td></tr>
-<tr><td align=right>DbTxn::commit</td><td><a href="../api_cxx/txn_commit.html#DB_TXN_SYNC">DB_TXN_SYNC</a></td></tr>
-<tr><td align=right>Db::set_feedback</td><td><a href="../api_cxx/db_set_feedback.html#DB_UPGRADE">DB_UPGRADE</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/db_upgrade.html#2">Db::upgrade</a></td></tr>
-<tr><td align=right> </td><td><a href="../utility/db_upgrade.html#2">db_upgrade</a></td></tr>
-<tr><td align=right>DbEnv::open</td><td><a href="../api_cxx/env_open.html#DB_USE_ENVIRON">DB_USE_ENVIRON</a></td></tr>
-<tr><td align=right>DbEnv::remove</td><td><a href="../api_cxx/env_remove.html#DB_USE_ENVIRON">DB_USE_ENVIRON</a></td></tr>
-<tr><td align=right>DbEnv::open</td><td><a href="../api_cxx/env_open.html#DB_USE_ENVIRON_ROOT">DB_USE_ENVIRON_ROOT</a></td></tr>
-<tr><td align=right>DbEnv::remove</td><td><a href="../api_cxx/env_remove.html#DB_USE_ENVIRON_ROOT">DB_USE_ENVIRON_ROOT</a></td></tr>
-<tr><td align=right>DbEnv::set_verbose</td><td><a href="../api_cxx/env_set_verbose.html#DB_VERB_CHKPOINT">DB_VERB_CHKPOINT</a></td></tr>
-<tr><td align=right>DbEnv::set_verbose</td><td><a href="../api_cxx/env_set_verbose.html#DB_VERB_DEADLOCK">DB_VERB_DEADLOCK</a></td></tr>
-<tr><td align=right>DbEnv::set_verbose</td><td><a href="../api_cxx/env_set_verbose.html#DB_VERB_RECOVERY">DB_VERB_RECOVERY</a></td></tr>
-<tr><td align=right>DbEnv::set_verbose</td><td><a href="../api_cxx/env_set_verbose.html#DB_VERB_WAITSFOR">DB_VERB_WAITSFOR</a></td></tr>
-<tr><td align=right>Db::set_feedback</td><td><a href="../api_cxx/db_set_feedback.html#DB_VERIFY">DB_VERIFY</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/db_verify.html#2">Db::verify</a></td></tr>
-<tr><td align=right> </td><td><a href="../utility/db_verify.html#2">db_verify</a></td></tr>
-<tr><td align=right>Db::cursor</td><td><a href="../api_cxx/db_cursor.html#DB_WRITECURSOR">DB_WRITECURSOR</a></td></tr>
-<tr><td align=right>Db</td><td><a href="../api_cxx/db_class.html#DB_XA_CREATE">DB_XA_CREATE</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/lock/dead.html#2">deadlocks</a></td></tr>
-<tr><td align=right> utility to detect </td><td><a href="../utility/db_deadlock.html#3">deadlocks</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/debug/common.html#2">debugging</a> applications</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/delete.html#2">deleting</a> records</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/curdel.html#2">deleting</a> records with a cursor</td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--disable-bigfile">--disable-bigfile</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/program/diskspace.html#2">disk</a> space requirements</td></tr>
-<tr><td align=right> utility to </td><td><a href="../utility/db_dump.html#3">dump</a> databases as text files</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am_conf/dup.html#2">duplicate</a> data items</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/curdup.html#2">duplicating</a> a cursor</td></tr>
-<tr><td align=right> configuring </td><td><a href="../ref/build_unix/conf.html#9">dynamic</a> shared libraries</td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-compat185">--enable-compat185</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-cxx">--enable-cxx</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-debug">--enable-debug</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-debug_rop">--enable-debug_rop</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-debug_wop">--enable-debug_wop</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-diagnostic">--enable-diagnostic</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-dump185">--enable-dump185</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-dynamic">--enable-dynamic</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-java">--enable-java</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-posixmutexes">--enable-posixmutexes</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-rpc">--enable-rpc</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-shared">--enable-shared</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-tcl">--enable-tcl</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-test">--enable-test</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-uimutexes">--enable-uimutexes</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-umrw">--enable-umrw</a></td></tr>
-<tr><td align=right> byte </td><td><a href="../ref/program/byteorder.html#3">endian</a></td></tr>
-<tr><td align=right> database </td><td><a href="../ref/env/create.html#2">environment</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/program/environ.html#2">environment</a> variables</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/error.html#2">error</a> handling</td></tr>
-<tr><td align=right> </td><td><a href="../ref/program/errorret.html#3">error</a> name space</td></tr>
-<tr><td align=right> </td><td><a href="../ref/program/errorret.html#2">error</a> returns</td></tr>
-<tr><td align=right> </td><td><a href="../ref/install/file.html#2">/etc/magic</a></td></tr>
-<tr><td align=right> selecting a Queue </td><td><a href="../ref/am_conf/extentsize.html#2">extent</a> size</td></tr>
-<tr><td align=right> Java </td><td><a href="../ref/java/faq.html#2">FAQ</a></td></tr>
-<tr><td align=right> Tcl </td><td><a href="../ref/tcl/faq.html#2">FAQ</a></td></tr>
-<tr><td align=right> configuring without large </td><td><a href="../ref/build_unix/conf.html#4">file</a> support</td></tr>
-<tr><td align=right> </td><td><a href="../ref/install/file.html#3">file</a> utility</td></tr>
-<tr><td align=right>DbMpoolFile::open</td><td><a href="../api_cxx/memp_fopen.html#fileid">fileid</a></td></tr>
-<tr><td align=right> recovery and </td><td><a href="../ref/transapp/filesys.html#2">filesystem</a> operations</td></tr>
-<tr><td align=right> remote </td><td><a href="../ref/env/remote.html#2">filesystems</a></td></tr>
-<tr><td align=right> page </td><td><a href="../ref/am_conf/h_ffactor.html#2">fill</a> factor</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/freebsd.html#2">FreeBSD</a></td></tr>
-<tr><td align=right> Berkeley DB </td><td><a href="../ref/program/scope.html#3">free-threaded</a> handles</td></tr>
-<tr><td align=right>DbMpoolFile::open</td><td><a href="../api_cxx/memp_fopen.html#ftype">ftype</a></td></tr>
-<tr><td align=right> specifying a database </td><td><a href="../ref/am_conf/h_hash.html#2">hash</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/am_conf/h_nelem.html#2">hash</a> table size</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/hpux.html#2">HP-UX</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/install.html#2">installing</a> Berkeley DB for UNIX systems</td></tr>
-<tr><td align=right> </td><td><a href="../ref/program/compatible.html#2">interface</a> compatibility</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/irix.html#2">IRIX</a></td></tr>
-<tr><td align=right> configuring the </td><td><a href="../ref/build_unix/conf.html#10">Java</a> API</td></tr>
-<tr><td align=right> </td><td><a href="../ref/java/compat.html#2">Java</a> compatibility</td></tr>
-<tr><td align=right> </td><td><a href="../ref/java/conf.html#2">Java</a> configuration</td></tr>
-<tr><td align=right> </td><td><a href="../ref/java/faq.html#3">Java</a> FAQ</td></tr>
-<tr><td align=right> logical </td><td><a href="../ref/am/join.html#2">join</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_cxx/dbt_class.html#3">key/data</a> pairs</td></tr>
-<tr><td align=right> retrieved </td><td><a href="../api_cxx/dbt_class.html#5">key/data</a> permanence</td></tr>
-<tr><td align=right> database </td><td><a href="../ref/program/dbsizes.html#2">limits</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/linux.html#2">Linux</a></td></tr>
-<tr><td align=right> changing compile or </td><td><a href="../ref/build_unix/flags.html#3">load</a> options</td></tr>
-<tr><td align=right> utility to </td><td><a href="../utility/db_load.html#3">load</a> text files into databases</td></tr>
-<tr><td align=right>DbEnv::lock_vec</td><td><a href="../api_cxx/lock_vec.html#lock">lock</a></td></tr>
-<tr><td align=right> standard </td><td><a href="../ref/lock/stdmode.html#2">lock</a> modes</td></tr>
-<tr><td align=right> page-level </td><td><a href="../ref/lock/page.html#2">locking</a></td></tr>
-<tr><td align=right> two-phase </td><td><a href="../ref/lock/twopl.html#2">locking</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/lock/nondb.html#2">locking</a> and non-Berkeley DB applications</td></tr>
-<tr><td align=right> </td><td><a href="../ref/lock/config.html#2">locking</a> configuration</td></tr>
-<tr><td align=right> </td><td><a href="../ref/lock/am_conv.html#2">locking</a> conventions</td></tr>
-<tr><td align=right> Berkeley DB Concurrent Data Store </td><td><a href="../ref/lock/cam_conv.html#2">locking</a> conventions</td></tr>
-<tr><td align=right> </td><td><a href="../ref/lock/intro.html#2">locking</a> introduction</td></tr>
-<tr><td align=right> sizing the </td><td><a href="../ref/lock/max.html#2">locking</a> subsystem</td></tr>
-<tr><td align=right> </td><td><a href="../ref/lock/notxn.html#2">locking</a> without transactions</td></tr>
-<tr><td align=right> </td><td><a href="../ref/log/limits.html#2">log</a> file limits</td></tr>
-<tr><td align=right> </td><td><a href="../ref/transapp/logfile.html#2">log</a> file removal</td></tr>
-<tr><td align=right> utility to display </td><td><a href="../utility/db_printlog.html#3">log</a> files as text</td></tr>
-<tr><td align=right> </td><td><a href="../ref/log/config.html#2">logging</a> configuration</td></tr>
-<tr><td align=right> </td><td><a href="../ref/log/intro.html#2">logging</a> introduction</td></tr>
-<tr><td align=right>DbMpoolFile::open</td><td><a href="../api_cxx/memp_fopen.html#lsn_offset">lsn_offset</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/mp/config.html#2">memory</a> pool configuration</td></tr>
-<tr><td align=right>DbEnv::lock_vec</td><td><a href="../api_cxx/lock_vec.html#mode">mode</a></td></tr>
-<tr><td align=right> Berkeley DB library </td><td><a href="../ref/program/namespace.html#2">name</a> spaces</td></tr>
-<tr><td align=right> file </td><td><a href="../ref/env/naming.html#2">naming</a></td></tr>
-<tr><td align=right> retrieving Btree records by </td><td><a href="../ref/am_conf/bt_recnum.html#2">number</a></td></tr>
-<tr><td align=right>DbEnv::lock_vec</td><td><a href="../api_cxx/lock_vec.html#obj">obj</a></td></tr>
-<tr><td align=right>DbEnv::lock_vec</td><td><a href="../api_cxx/lock_vec.html#op">op</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/open.html#2">opening</a> a database</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/osf1.html#2">OSF/1</a></td></tr>
-<tr><td align=right> selecting a </td><td><a href="../ref/am_conf/pagesize.html#2">page</a> size</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/partial.html#2">partial</a> record storage and retrieval</td></tr>
-<tr><td align=right></td><td><a href="http://www.sleepycat.com/update/index.html">Patches,</a> Updates and Change logs</td></tr>
-<tr><td align=right> </td><td><a href="../ref/perl/intro.html#2">Perl</a></td></tr>
-<tr><td align=right> retrieved key/data </td><td><a href="../api_cxx/dbt_class.html#4">permanence</a></td></tr>
-<tr><td align=right>DbMpoolFile::open</td><td><a href="../api_cxx/memp_fopen.html#pgcookie">pgcookie</a></td></tr>
-<tr><td align=right> Sleepycat Software's Berkeley DB </td><td><a href="../ref/intro/products.html#2">products</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/qnx.html#2">QNX</a></td></tr>
-<tr><td align=right> logical </td><td><a href="../api_cxx/dbt_class.html#7">record</a> number format</td></tr>
-<tr><td align=right> logical </td><td><a href="../ref/am_conf/logrec.html#2">record</a> numbers</td></tr>
-<tr><td align=right> managing </td><td><a href="../ref/am_conf/recno.html#2">record-based</a> databases</td></tr>
-<tr><td align=right> logically renumbering </td><td><a href="../ref/am_conf/renumber.html#2">records</a></td></tr>
-<tr><td align=right> utility to </td><td><a href="../utility/db_recover.html#3">recover</a> database environments</td></tr>
-<tr><td align=right> Berkeley DB </td><td><a href="../ref/transapp/reclimit.html#2">recoverability</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/get.html#2">retrieving</a> records</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/curget.html#2">retrieving</a> records with a cursor</td></tr>
-<tr><td align=right> </td><td><a href="../ref/rpc/client.html#2">RPC</a> client</td></tr>
-<tr><td align=right> configuring a </td><td><a href="../ref/build_unix/conf.html#11">RPC</a> client/server</td></tr>
-<tr><td align=right> utility to support </td><td><a href="../utility/berkeley_db_svc.html#3">RPC</a> client/server</td></tr>
-<tr><td align=right> </td><td><a href="../ref/rpc/server.html#2">RPC</a> server</td></tr>
-<tr><td align=right> database </td><td><a href="../ref/am/verify.html#3">salvage</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/sco.html#2">SCO</a></td></tr>
-<tr><td align=right> Berkeley DB handle </td><td><a href="../ref/program/scope.html#2">scope</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/env/security.html#2">security</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/sendmail/intro.html#2">Sendmail</a></td></tr>
-<tr><td align=right> configuring </td><td><a href="../ref/build_unix/conf.html#8">shared</a> libraries</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/shlib.html#2">shared</a> libraries</td></tr>
-<tr><td align=right> application </td><td><a href="../ref/program/appsignals.html#2">signal</a> handling</td></tr>
-<tr><td align=right></td><td><a href="http://www.sleepycat.com/">Sleepycat</a> Software</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/solaris.html#2">Solaris</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/distrib/layout.html#2">source</a> code layout</td></tr>
-<tr><td align=right> cursor </td><td><a href="../ref/am/stability.html#3">stability</a></td></tr>
-<tr><td align=right> database </td><td><a href="../ref/am/stat.html#2">statistics</a></td></tr>
-<tr><td align=right> utility to display database and environment </td><td><a href="../utility/db_stat.html#3">statistics</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/put.html#2">storing</a> records</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/curput.html#2">storing</a> records with a cursor</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/sunos.html#2">SunOS</a></td></tr>
-<tr><td align=right> loading Berkeley DB with </td><td><a href="../ref/tcl/intro.html#2">Tcl</a></td></tr>
-<tr><td align=right> using Berkeley DB with </td><td><a href="../ref/tcl/using.html#2">Tcl</a></td></tr>
-<tr><td align=right> configuring the </td><td><a href="../ref/build_unix/conf.html#12">Tcl</a> API</td></tr>
-<tr><td align=right> </td><td><a href="../ref/tcl/program.html#2">Tcl</a> API programming notes</td></tr>
-<tr><td align=right> </td><td><a href="../ref/tcl/faq.html#3">Tcl</a> FAQ</td></tr>
-<tr><td align=right> configuring the </td><td><a href="../ref/build_unix/conf.html#13">test</a> suite</td></tr>
-<tr><td align=right> running the </td><td><a href="../ref/test/run.html#2">test</a> suite</td></tr>
-<tr><td align=right> running the </td><td><a href="../ref/build_unix/test.html#2">test</a> suite under UNIX</td></tr>
-<tr><td align=right> running the </td><td><a href="../ref/build_win/test.html#2">test</a> suite under Windows</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am_conf/re_source.html#2">text</a> backing files</td></tr>
-<tr><td align=right> loading </td><td><a href="../ref/dumpload/text.html#2">text</a> into databases</td></tr>
-<tr><td align=right> dumping/loading </td><td><a href="../ref/dumpload/utility.html#2">text</a> to/from databases</td></tr>
-<tr><td align=right> building </td><td><a href="../ref/program/mt.html#2">threaded</a> applications</td></tr>
-<tr><td align=right> </td><td><a href="../ref/txn/config.html#2">transaction</a> configuration</td></tr>
-<tr><td align=right> </td><td><a href="../ref/txn/limits.html#2">transaction</a> limits</td></tr>
-<tr><td align=right> administering </td><td><a href="../ref/transapp/admin.html#2">transaction</a> protected applications</td></tr>
-<tr><td align=right> archival in </td><td><a href="../ref/transapp/archival.html#2">transaction</a> protected applications</td></tr>
-<tr><td align=right> checkpoints in </td><td><a href="../ref/transapp/checkpoint.html#2">transaction</a> protected applications</td></tr>
-<tr><td align=right> deadlock detection in </td><td><a href="../ref/transapp/deadlock.html#2">transaction</a> protected applications</td></tr>
-<tr><td align=right> recovery in </td><td><a href="../ref/transapp/recovery.html#2">transaction</a> protected applications</td></tr>
-<tr><td align=right> </td><td><a href="../ref/transapp/throughput.html#2">transaction</a> throughput</td></tr>
-<tr><td align=right> </td><td><a href="../ref/transapp/intro.html#2">Transactional</a> Data Store</td></tr>
-<tr><td align=right> Berkeley DB and </td><td><a href="../ref/txn/intro.html#2">transactions</a></td></tr>
-<tr><td align=right> nested </td><td><a href="../ref/txn/nested.html#2">transactions</a></td></tr>
-<tr><td align=right> configuring Berkeley DB with the </td><td><a href="../ref/xa/config.html#2">Tuxedo</a> System</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/ultrix.html#2">Ultrix</a></td></tr>
-<tr><td align=right> building for </td><td><a href="../ref/build_unix/notes.html#3">UNIX</a> FAQ</td></tr>
-<tr><td align=right> configuring Berkeley DB for </td><td><a href="../ref/build_unix/conf.html#3">UNIX</a> systems</td></tr>
-<tr><td align=right>Patches, </td><td><a href="http://www.sleepycat.com/update/index.html">Updates</a> and Change logs</td></tr>
-<tr><td align=right> utility to </td><td><a href="../utility/db_upgrade.html#4">upgrade</a> database files</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/upgrade.html#2">upgrading</a> databases</td></tr>
-<tr><td align=right> </td><td><a href="../ref/arch/utilities.html#2">utilities</a></td></tr>
-<tr><td align=right> database </td><td><a href="../ref/am/verify.html#2">verification</a></td></tr>
-<tr><td align=right> utility to </td><td><a href="../utility/db_verify.html#4">verify</a> database files</td></tr>
-<tr><td align=right> building for </td><td><a href="../ref/build_vxworks/faq.html#3">VxWorks</a> FAQ</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_vxworks/notes.html#2">VxWorks</a> notes</td></tr>
-<tr><td align=right> running the test suite under </td><td><a href="../ref/build_win/test.html#3">Windows</a></td></tr>
-<tr><td align=right> building for </td><td><a href="../ref/build_win/faq.html#3">Windows</a> FAQ</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_win/notes.html#2">Windows</a> notes</td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--with-tcl=DIR">--with-tcl=DIR</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/xa/intro.html#2">XA</a> Resource Manager</td></tr>
-</table>
-</center>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/db_class.html b/bdb/docs/api_cxx/db_class.html
deleted file mode 100644
index 75296aeee61..00000000000
--- a/bdb/docs/api_cxx/db_class.html
+++ /dev/null
@@ -1,109 +0,0 @@
-<!--$Id: db_class.so,v 10.23 2000/03/17 01:54:00 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-class Db {
-public:
- Db(DbEnv *dbenv, u_int32_t flags);
- ~Db();
- ...
-};
-</pre></h3>
-<h1>Description</h1>
-<p>This manual page describes the specific details of the Db class,
-which is the center of access method activity.
-<p>If no <b>dbenv</b> value is specified, the database is standalone, i.e.,
-it is not part of any Berkeley DB environment.
-<p>If a <b>dbenv</b> value is specified, the database is created within the
-specified Berkeley DB environment. The database access methods automatically
-make calls to the other subsystems in Berkeley DB based on the enclosing
-environment. For example, if the environment has been configured to use
-locking, then the access methods will automatically acquire the correct
-locks when reading and writing pages of the database.
-<p>The <b>flags</b> value must be set to 0 or by bitwise inclusively <b>OR</b>'ing together one or more
-of the following values.
-<p><dl compact>
-<p><dt><a name="DB_CXX_NO_EXCEPTIONS">DB_CXX_NO_EXCEPTIONS</a><dd>The Berkeley DB C++ API supports two different error behaviors. By default,
-whenever an error occurs an exception is thrown that encapsulates the
-error information. This generally allows for cleaner logic for
-transaction processing, as a try block can surround a single transaction.
-However, if DB_CXX_NO_EXCEPTIONS is specified, exceptions are not
-thrown, instead each individual function returns an error code.
-<p>If <b>dbenv</b> is not null, this flag is ignored and the error behavior
-of the specified environment is used instead.
-<p><dt><a name="DB_XA_CREATE">DB_XA_CREATE</a><dd>Instead of creating a standalone database, create a database intended to
-be accessed via applications running under a X/Open conformant Transaction
-Manager. The database will be opened in the environment specified by the
-OPENINFO parameter of the GROUPS section of the ubbconfig file. See the
-<a href="../ref/xa/intro.html">XA Resource Manager</a> chapter in the
-Reference Guide for more information.
-</dl>
-<h3>Class</h3>
-<a href="../api_cxx/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_cxx/db_close.html">Db::close</a>,
-<a href="../api_cxx/db_cursor.html">Db::cursor</a>,
-<a href="../api_cxx/db_del.html">Db::del</a>,
-<a href="../api_cxx/db_err.html">Db::err</a>,
-<a href="../api_cxx/db_fd.html">Db::fd</a>,
-<a href="../api_cxx/db_get.html">Db::get</a>,
-<a href="../api_cxx/db_get_byteswapped.html">Db::get_byteswapped</a>,
-<a href="../api_cxx/db_get_type.html">Db::get_type</a>,
-<a href="../api_cxx/db_join.html">Db::join</a>,
-<a href="../api_cxx/db_key_range.html">Db::key_range</a>,
-<a href="../api_cxx/db_open.html">Db::open</a>,
-<a href="../api_cxx/db_put.html">Db::put</a>,
-<a href="../api_cxx/db_remove.html">Db::remove</a>,
-<a href="../api_cxx/db_set_bt_compare.html">Db::set_bt_compare</a>,
-<a href="../api_cxx/db_set_bt_minkey.html">Db::set_bt_minkey</a>,
-<a href="../api_cxx/db_set_bt_prefix.html">Db::set_bt_prefix</a>,
-<a href="../api_cxx/db_set_cachesize.html">Db::set_cachesize</a>,
-<a href="../api_cxx/db_set_dup_compare.html">Db::set_dup_compare</a>,
-<a href="../api_cxx/db_set_errcall.html">Db::set_errcall</a>,
-<a href="../api_cxx/db_set_errfile.html">Db::set_errfile</a>,
-<a href="../api_cxx/db_set_errpfx.html">Db::set_errpfx</a>,
-<a href="../api_cxx/db_set_flags.html">Db::set_flags</a>,
-<a href="../api_cxx/db_set_h_ffactor.html">Db::set_h_ffactor</a>,
-<a href="../api_cxx/db_set_h_hash.html">Db::set_h_hash</a>,
-<a href="../api_cxx/db_set_h_nelem.html">Db::set_h_nelem</a>,
-<a href="../api_cxx/db_set_lorder.html">Db::set_lorder</a>,
-<a href="../api_cxx/db_set_malloc.html">Db::set_malloc</a>,
-<a href="../api_cxx/db_set_pagesize.html">Db::set_pagesize</a>,
-<a href="../api_cxx/db_set_paniccall.html">Db::set_paniccall</a>,
-<a href="../api_cxx/db_set_q_extentsize.html">Db::set_q_extentsize</a>,
-<a href="../api_cxx/db_set_realloc.html">Db::set_realloc</a>,
-<a href="../api_cxx/db_set_re_delim.html">Db::set_re_delim</a>,
-<a href="../api_cxx/db_set_re_len.html">Db::set_re_len</a>,
-<a href="../api_cxx/db_set_re_pad.html">Db::set_re_pad</a>,
-<a href="../api_cxx/db_set_re_source.html">Db::set_re_source</a>,
-<a href="../api_cxx/db_stat.html">Db::stat</a>,
-<a href="../api_cxx/db_sync.html">Db::sync</a>,
-<a href="../api_cxx/db_upgrade.html">Db::upgrade</a>
-and
-<a href="../api_cxx/db_verify.html">Db::verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/db_close.html b/bdb/docs/api_cxx/db_close.html
deleted file mode 100644
index fdde15bdb67..00000000000
--- a/bdb/docs/api_cxx/db_close.html
+++ /dev/null
@@ -1,123 +0,0 @@
-<!--$Id: db_close.so,v 10.27 2000/09/08 15:20:28 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db::close</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db::close</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-Db::close(u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The Db::close method flushes any cached database information to disk,
-closes any open cursors, frees any allocated resources, and closes any
-underlying files. Since key/data pairs are cached in memory, failing to
-sync the file with the Db::close or <a href="../api_cxx/db_sync.html">Db::sync</a> method may result
-in inconsistent or lost information.
-<p>The <b>flags</b> parameter must be set to 0 or the following value:
-<p><dl compact>
-<p><dt><a name="DB_NOSYNC">DB_NOSYNC</a><dd>Do not flush cached information to disk.
-<p>The <a href="../api_cxx/db_close.html#DB_NOSYNC">DB_NOSYNC</a> flag is a dangerous option. It should only be set
-if the application is doing logging (with transactions) so that the
-database is recoverable after a system or application crash, or if the
-database is always generated from scratch after any system or application
-crash.
-<p><b>It is important to understand that flushing cached information to disk
-only minimizes the window of opportunity for corrupted data.</b>
-While unlikely, it is possible for database corruption to happen if a
-system or application crash occurs while writing data to the database.
-To ensure that database corruption never occurs, applications must either:
-use transactions and logging with automatic recovery, use logging and
-application-specific recovery, or edit a copy of the database,
-and, once all applications using the database have successfully called
-Db::close, atomically replace the original database with the
-updated copy.
-</dl>
-<p>When multiple threads are using the Berkeley DB handle concurrently, only a single
-thread may call the Db::close method.
-<p>Once Db::close has been called, regardless of its return, the
-<a href="../api_cxx/db_class.html">Db</a> handle may not be accessed again.
- <a name="3"><!--meow--></a>
-<p>The Db::close method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, 0 on success, and returns <a href="../api_c/memp_fsync.html#DB_INCOMPLETE">DB_INCOMPLETE</a> if the underlying database still has
-dirty pages in the cache. (The only reason to return
-<a href="../api_c/memp_fsync.html#DB_INCOMPLETE">DB_INCOMPLETE</a> is if another thread of control was writing pages
-in the underlying database file at the same time as the
-Db::close method was called. For this reason, a return of
-<a href="../api_c/memp_fsync.html#DB_INCOMPLETE">DB_INCOMPLETE</a> can normally be ignored, or, in cases where it is
-a possible return value, the <a href="../api_cxx/db_close.html#DB_NOSYNC">DB_NOSYNC</a> option should probably
-have been specified.)
-<p>The Db::close method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p>The Db::close method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the Db::close method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Class</h3>
-<a href="../api_cxx/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_cxx/db_close.html">Db::close</a>,
-<a href="../api_cxx/db_cursor.html">Db::cursor</a>,
-<a href="../api_cxx/db_del.html">Db::del</a>,
-<a href="../api_cxx/db_err.html">Db::err</a>,
-<a href="../api_cxx/db_fd.html">Db::fd</a>,
-<a href="../api_cxx/db_get.html">Db::get</a>,
-<a href="../api_cxx/db_get_byteswapped.html">Db::get_byteswapped</a>,
-<a href="../api_cxx/db_get_type.html">Db::get_type</a>,
-<a href="../api_cxx/db_join.html">Db::join</a>,
-<a href="../api_cxx/db_key_range.html">Db::key_range</a>,
-<a href="../api_cxx/db_open.html">Db::open</a>,
-<a href="../api_cxx/db_put.html">Db::put</a>,
-<a href="../api_cxx/db_remove.html">Db::remove</a>,
-<a href="../api_cxx/db_set_bt_compare.html">Db::set_bt_compare</a>,
-<a href="../api_cxx/db_set_bt_minkey.html">Db::set_bt_minkey</a>,
-<a href="../api_cxx/db_set_bt_prefix.html">Db::set_bt_prefix</a>,
-<a href="../api_cxx/db_set_cachesize.html">Db::set_cachesize</a>,
-<a href="../api_cxx/db_set_dup_compare.html">Db::set_dup_compare</a>,
-<a href="../api_cxx/db_set_errcall.html">Db::set_errcall</a>,
-<a href="../api_cxx/db_set_errfile.html">Db::set_errfile</a>,
-<a href="../api_cxx/db_set_errpfx.html">Db::set_errpfx</a>,
-<a href="../api_cxx/db_set_flags.html">Db::set_flags</a>,
-<a href="../api_cxx/db_set_h_ffactor.html">Db::set_h_ffactor</a>,
-<a href="../api_cxx/db_set_h_hash.html">Db::set_h_hash</a>,
-<a href="../api_cxx/db_set_h_nelem.html">Db::set_h_nelem</a>,
-<a href="../api_cxx/db_set_lorder.html">Db::set_lorder</a>,
-<a href="../api_cxx/db_set_malloc.html">Db::set_malloc</a>,
-<a href="../api_cxx/db_set_pagesize.html">Db::set_pagesize</a>,
-<a href="../api_cxx/db_set_paniccall.html">Db::set_paniccall</a>,
-<a href="../api_cxx/db_set_q_extentsize.html">Db::set_q_extentsize</a>,
-<a href="../api_cxx/db_set_realloc.html">Db::set_realloc</a>,
-<a href="../api_cxx/db_set_re_delim.html">Db::set_re_delim</a>,
-<a href="../api_cxx/db_set_re_len.html">Db::set_re_len</a>,
-<a href="../api_cxx/db_set_re_pad.html">Db::set_re_pad</a>,
-<a href="../api_cxx/db_set_re_source.html">Db::set_re_source</a>,
-<a href="../api_cxx/db_stat.html">Db::stat</a>,
-<a href="../api_cxx/db_sync.html">Db::sync</a>,
-<a href="../api_cxx/db_upgrade.html">Db::upgrade</a>
-and
-<a href="../api_cxx/db_verify.html">Db::verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/db_cursor.html b/bdb/docs/api_cxx/db_cursor.html
deleted file mode 100644
index b6954b9f329..00000000000
--- a/bdb/docs/api_cxx/db_cursor.html
+++ /dev/null
@@ -1,105 +0,0 @@
-<!--$Id: db_cursor.so,v 10.25 2000/07/11 19:11:25 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db::cursor</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db::cursor</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-Db::cursor(DbTxn *txnid, Dbc **cursorp, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The Db::cursor method
-creates a cursor and copies a pointer to it into the memory referenced
-by <b>cursorp</b>.
-<p>If the file is being accessed under transaction protection, the
-<b>txnid</b> parameter is a transaction ID returned from
-<a href="../api_cxx/txn_begin.html">DbEnv::txn_begin</a>, otherwise, NULL.
-<p>If transaction protection is enabled, cursors must be opened and closed
-within the context of a transaction, and the <b>txnid</b> parameter
-specifies the transaction context in which the cursor may be used.
-<p>The <b>flags</b> value must be set to 0 or by bitwise inclusively <b>OR</b>'ing together one or more
-of the following values.
-<p><dl compact>
-<p><dt><a name="DB_WRITECURSOR">DB_WRITECURSOR</a><dd>Specify that the cursor will be used to update the database. This
-flag should <b>only</b> be set when the <a href="../api_cxx/env_open.html#DB_INIT_CDB">DB_INIT_CDB</a> flag
-was specified to <a href="../api_cxx/env_open.html">DbEnv::open</a>.
-</dl>
-<p>The Db::cursor method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p>The Db::cursor method may fail and throw an exception or return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<p>The Db::cursor method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the Db::cursor method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Class</h3>
-<a href="../api_cxx/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_cxx/db_close.html">Db::close</a>,
-<a href="../api_cxx/db_cursor.html">Db::cursor</a>,
-<a href="../api_cxx/db_del.html">Db::del</a>,
-<a href="../api_cxx/db_err.html">Db::err</a>,
-<a href="../api_cxx/db_fd.html">Db::fd</a>,
-<a href="../api_cxx/db_get.html">Db::get</a>,
-<a href="../api_cxx/db_get_byteswapped.html">Db::get_byteswapped</a>,
-<a href="../api_cxx/db_get_type.html">Db::get_type</a>,
-<a href="../api_cxx/db_join.html">Db::join</a>,
-<a href="../api_cxx/db_key_range.html">Db::key_range</a>,
-<a href="../api_cxx/db_open.html">Db::open</a>,
-<a href="../api_cxx/db_put.html">Db::put</a>,
-<a href="../api_cxx/db_remove.html">Db::remove</a>,
-<a href="../api_cxx/db_set_bt_compare.html">Db::set_bt_compare</a>,
-<a href="../api_cxx/db_set_bt_minkey.html">Db::set_bt_minkey</a>,
-<a href="../api_cxx/db_set_bt_prefix.html">Db::set_bt_prefix</a>,
-<a href="../api_cxx/db_set_cachesize.html">Db::set_cachesize</a>,
-<a href="../api_cxx/db_set_dup_compare.html">Db::set_dup_compare</a>,
-<a href="../api_cxx/db_set_errcall.html">Db::set_errcall</a>,
-<a href="../api_cxx/db_set_errfile.html">Db::set_errfile</a>,
-<a href="../api_cxx/db_set_errpfx.html">Db::set_errpfx</a>,
-<a href="../api_cxx/db_set_flags.html">Db::set_flags</a>,
-<a href="../api_cxx/db_set_h_ffactor.html">Db::set_h_ffactor</a>,
-<a href="../api_cxx/db_set_h_hash.html">Db::set_h_hash</a>,
-<a href="../api_cxx/db_set_h_nelem.html">Db::set_h_nelem</a>,
-<a href="../api_cxx/db_set_lorder.html">Db::set_lorder</a>,
-<a href="../api_cxx/db_set_malloc.html">Db::set_malloc</a>,
-<a href="../api_cxx/db_set_pagesize.html">Db::set_pagesize</a>,
-<a href="../api_cxx/db_set_paniccall.html">Db::set_paniccall</a>,
-<a href="../api_cxx/db_set_q_extentsize.html">Db::set_q_extentsize</a>,
-<a href="../api_cxx/db_set_realloc.html">Db::set_realloc</a>,
-<a href="../api_cxx/db_set_re_delim.html">Db::set_re_delim</a>,
-<a href="../api_cxx/db_set_re_len.html">Db::set_re_len</a>,
-<a href="../api_cxx/db_set_re_pad.html">Db::set_re_pad</a>,
-<a href="../api_cxx/db_set_re_source.html">Db::set_re_source</a>,
-<a href="../api_cxx/db_stat.html">Db::stat</a>,
-<a href="../api_cxx/db_sync.html">Db::sync</a>,
-<a href="../api_cxx/db_upgrade.html">Db::upgrade</a>
-and
-<a href="../api_cxx/db_verify.html">Db::verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/db_del.html b/bdb/docs/api_cxx/db_del.html
deleted file mode 100644
index ec30c6ad01c..00000000000
--- a/bdb/docs/api_cxx/db_del.html
+++ /dev/null
@@ -1,104 +0,0 @@
-<!--$Id: db_del.so,v 10.23 2000/09/05 19:35:10 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db::del</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db::del</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-Db::del(DbTxn *txnid, Dbt *key, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The Db::del method removes key/data pairs from the database. The
-key/data pair associated with the specified <b>key</b> is discarded from
-the database. In the presence of duplicate key values, all records
-associated with the designated key will be discarded.
-<p>If the file is being accessed under transaction protection, the
-<b>txnid</b> parameter is a transaction ID returned from
-<a href="../api_cxx/txn_begin.html">DbEnv::txn_begin</a>, otherwise, NULL.
-<p>The <b>flags</b> parameter is currently unused, and must be set to 0.
-<p>The Db::del method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, 0 on success, and <a href="../ref/program/errorret.html#DB_NOTFOUND">DB_NOTFOUND</a> if the specified <b>key</b> did not exist in
-the file.
-<h1>Errors</h1>
-<p>The Db::del method may fail and throw an exception or return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>DB_LOCK_DEADLOCK<dd>The operation was selected to resolve a deadlock.
-</dl>
-<p><dl compact>
-<p><dt>EACCES<dd>An attempt was made to modify a read-only database.
-</dl>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<p>The Db::del method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the Db::del method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Class</h3>
-<a href="../api_cxx/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_cxx/db_close.html">Db::close</a>,
-<a href="../api_cxx/db_cursor.html">Db::cursor</a>,
-<a href="../api_cxx/db_del.html">Db::del</a>,
-<a href="../api_cxx/db_err.html">Db::err</a>,
-<a href="../api_cxx/db_fd.html">Db::fd</a>,
-<a href="../api_cxx/db_get.html">Db::get</a>,
-<a href="../api_cxx/db_get_byteswapped.html">Db::get_byteswapped</a>,
-<a href="../api_cxx/db_get_type.html">Db::get_type</a>,
-<a href="../api_cxx/db_join.html">Db::join</a>,
-<a href="../api_cxx/db_key_range.html">Db::key_range</a>,
-<a href="../api_cxx/db_open.html">Db::open</a>,
-<a href="../api_cxx/db_put.html">Db::put</a>,
-<a href="../api_cxx/db_remove.html">Db::remove</a>,
-<a href="../api_cxx/db_set_bt_compare.html">Db::set_bt_compare</a>,
-<a href="../api_cxx/db_set_bt_minkey.html">Db::set_bt_minkey</a>,
-<a href="../api_cxx/db_set_bt_prefix.html">Db::set_bt_prefix</a>,
-<a href="../api_cxx/db_set_cachesize.html">Db::set_cachesize</a>,
-<a href="../api_cxx/db_set_dup_compare.html">Db::set_dup_compare</a>,
-<a href="../api_cxx/db_set_errcall.html">Db::set_errcall</a>,
-<a href="../api_cxx/db_set_errfile.html">Db::set_errfile</a>,
-<a href="../api_cxx/db_set_errpfx.html">Db::set_errpfx</a>,
-<a href="../api_cxx/db_set_flags.html">Db::set_flags</a>,
-<a href="../api_cxx/db_set_h_ffactor.html">Db::set_h_ffactor</a>,
-<a href="../api_cxx/db_set_h_hash.html">Db::set_h_hash</a>,
-<a href="../api_cxx/db_set_h_nelem.html">Db::set_h_nelem</a>,
-<a href="../api_cxx/db_set_lorder.html">Db::set_lorder</a>,
-<a href="../api_cxx/db_set_malloc.html">Db::set_malloc</a>,
-<a href="../api_cxx/db_set_pagesize.html">Db::set_pagesize</a>,
-<a href="../api_cxx/db_set_paniccall.html">Db::set_paniccall</a>,
-<a href="../api_cxx/db_set_q_extentsize.html">Db::set_q_extentsize</a>,
-<a href="../api_cxx/db_set_realloc.html">Db::set_realloc</a>,
-<a href="../api_cxx/db_set_re_delim.html">Db::set_re_delim</a>,
-<a href="../api_cxx/db_set_re_len.html">Db::set_re_len</a>,
-<a href="../api_cxx/db_set_re_pad.html">Db::set_re_pad</a>,
-<a href="../api_cxx/db_set_re_source.html">Db::set_re_source</a>,
-<a href="../api_cxx/db_stat.html">Db::stat</a>,
-<a href="../api_cxx/db_sync.html">Db::sync</a>,
-<a href="../api_cxx/db_upgrade.html">Db::upgrade</a>
-and
-<a href="../api_cxx/db_verify.html">Db::verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/db_err.html b/bdb/docs/api_cxx/db_err.html
deleted file mode 100644
index fa0bccc3926..00000000000
--- a/bdb/docs/api_cxx/db_err.html
+++ /dev/null
@@ -1,94 +0,0 @@
-<!--$Id: db_err.so,v 10.11 1999/12/20 08:52:27 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::err</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::err</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-DbEnv::err(int error, const char *fmt, ...);
-<p>
-DbEnv::errx(const char *fmt, ...);
-<p>
-Db::err(int error, const char *fmt, ...);
-<p>
-Db::errx(const char *fmt, ...);
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv::err, DbEnv::errx, Db::err and
-Db::errx methods provide error messaging functionality for
-applications written using the Berkeley DB library.
-<p>The DbEnv::err method constructs an error message consisting of the
-following elements:
-<p><blockquote><p><dl compact>
-<p><dt>An optional prefix string<dd>If no error callback method has been set using the
-<a href="../api_cxx/env_set_errcall.html">DbEnv::set_errcall</a> method, any prefix string specified using the
-<a href="../api_cxx/env_set_errpfx.html">DbEnv::set_errpfx</a> method, followed by two separating characters: a colon
-and a &lt;space&gt; character.
-<p><dt>An optional printf-style message<dd>The supplied message <b>fmt</b>, if non-NULL, where the ANSI C X3.159-1989 (ANSI C)
-printf function specifies how subsequent arguments are converted for
-output.
-<p><dt>A separator<dd>Two separating characters: a colon and a &lt;space&gt; character.
-<p><dt>A standard error string<dd>The standard system or Berkeley DB library error string associated with the
-<b>error</b> value, as returned by the <a href="../api_cxx/env_strerror.html">DbEnv::strerror</a> method.
-</dl>
-</blockquote>
-<p>This constructed error message is then handled as follows:
-<p><blockquote>
-<p>If an error callback method has been set (see <a href="../api_cxx/db_set_errcall.html">Db::set_errcall</a>
-and <a href="../api_cxx/env_set_errcall.html">DbEnv::set_errcall</a>), that method is called with two
-arguments: any prefix string specified (see <a href="../api_cxx/db_set_errpfx.html">Db::set_errpfx</a> and
-<a href="../api_cxx/env_set_errpfx.html">DbEnv::set_errpfx</a>), and the error message.
-<p>If a C library FILE * has been set (see <a href="../api_cxx/db_set_errfile.html">Db::set_errfile</a> and
-<a href="../api_cxx/env_set_errfile.html">DbEnv::set_errfile</a>), the error message is written to that output
-stream.
-<p>If a C++ ostream has been set
-(see <a href="../api_cxx/env_set_error_stream.html">DbEnv::set_error_stream</a>), the error message is written to that
-stream.
-<p>If none of these output options has been configured, the error message
-is written to stderr, the standard error output stream.</blockquote>
-<p>The DbEnv::errx and Db::errx methods perform identically to the
-DbEnv::err and Db::err methods except that they do not append
-the final separator characters and standard error string to the error
-message.
-<h3>Class</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_close.html">DbEnv::close</a>,
-<a href="../api_cxx/env_open.html">DbEnv::open</a>,
-<a href="../api_cxx/env_remove.html">DbEnv::remove</a>,
-<a href="../api_cxx/db_err.html">DbEnv::err</a>,
-<a href="../api_cxx/env_strerror.html">DbEnv::strerror</a>,
-<a href="../api_cxx/env_version.html">DbEnv::version</a>,
-<a href="../api_cxx/env_set_cachesize.html">DbEnv::set_cachesize</a>,
-<a href="../api_cxx/env_set_errcall.html">DbEnv::set_errcall</a>,
-<a href="../api_cxx/env_set_errfile.html">DbEnv::set_errfile</a>,
-<a href="../api_cxx/env_set_error_stream.html">DbEnv::set_error_stream</a>,
-<a href="../api_cxx/env_set_errpfx.html">DbEnv::set_errpfx</a>,
-<a href="../api_cxx/env_set_flags.html">DbEnv::set_flags</a>,
-<a href="../api_cxx/env_set_mutexlocks.html">DbEnv::set_mutexlocks</a>,
-<a href="../api_cxx/env_set_paniccall.html">DbEnv::set_paniccall</a>,
-and
-<a href="../api_cxx/env_set_verbose.html">DbEnv::set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/db_fd.html b/bdb/docs/api_cxx/db_fd.html
deleted file mode 100644
index 1cb98fb6bc7..00000000000
--- a/bdb/docs/api_cxx/db_fd.html
+++ /dev/null
@@ -1,95 +0,0 @@
-<!--$Id: db_fd.so,v 10.21 2000/03/01 21:41:28 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db::fd</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db::fd</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-Db::fd(int *fdp);
-</pre></h3>
-<h1>Description</h1>
-<p>The Db::fd method
-copies a file descriptor representative of the underlying database into
-the memory referenced by <b>fdp</b>. A file descriptor referencing the
-same file will be returned to all processes that call <a href="../api_cxx/db_open.html">Db::open</a> with
-the same <b>file</b> argument. This file descriptor may be safely used
-as an argument to the <b>fcntl</b>(2) and <b>flock</b>(2) locking
-functions. The file descriptor is not necessarily associated with any of
-the underlying files actually used by the access method.
-<p>The Db::fd method only supports a coarse-grained form of locking.
-Applications should use the lock manager where possible.
-<p>The Db::fd method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p>The Db::fd method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the Db::fd method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Class</h3>
-<a href="../api_cxx/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_cxx/db_close.html">Db::close</a>,
-<a href="../api_cxx/db_cursor.html">Db::cursor</a>,
-<a href="../api_cxx/db_del.html">Db::del</a>,
-<a href="../api_cxx/db_err.html">Db::err</a>,
-<a href="../api_cxx/db_fd.html">Db::fd</a>,
-<a href="../api_cxx/db_get.html">Db::get</a>,
-<a href="../api_cxx/db_get_byteswapped.html">Db::get_byteswapped</a>,
-<a href="../api_cxx/db_get_type.html">Db::get_type</a>,
-<a href="../api_cxx/db_join.html">Db::join</a>,
-<a href="../api_cxx/db_key_range.html">Db::key_range</a>,
-<a href="../api_cxx/db_open.html">Db::open</a>,
-<a href="../api_cxx/db_put.html">Db::put</a>,
-<a href="../api_cxx/db_remove.html">Db::remove</a>,
-<a href="../api_cxx/db_set_bt_compare.html">Db::set_bt_compare</a>,
-<a href="../api_cxx/db_set_bt_minkey.html">Db::set_bt_minkey</a>,
-<a href="../api_cxx/db_set_bt_prefix.html">Db::set_bt_prefix</a>,
-<a href="../api_cxx/db_set_cachesize.html">Db::set_cachesize</a>,
-<a href="../api_cxx/db_set_dup_compare.html">Db::set_dup_compare</a>,
-<a href="../api_cxx/db_set_errcall.html">Db::set_errcall</a>,
-<a href="../api_cxx/db_set_errfile.html">Db::set_errfile</a>,
-<a href="../api_cxx/db_set_errpfx.html">Db::set_errpfx</a>,
-<a href="../api_cxx/db_set_flags.html">Db::set_flags</a>,
-<a href="../api_cxx/db_set_h_ffactor.html">Db::set_h_ffactor</a>,
-<a href="../api_cxx/db_set_h_hash.html">Db::set_h_hash</a>,
-<a href="../api_cxx/db_set_h_nelem.html">Db::set_h_nelem</a>,
-<a href="../api_cxx/db_set_lorder.html">Db::set_lorder</a>,
-<a href="../api_cxx/db_set_malloc.html">Db::set_malloc</a>,
-<a href="../api_cxx/db_set_pagesize.html">Db::set_pagesize</a>,
-<a href="../api_cxx/db_set_paniccall.html">Db::set_paniccall</a>,
-<a href="../api_cxx/db_set_q_extentsize.html">Db::set_q_extentsize</a>,
-<a href="../api_cxx/db_set_realloc.html">Db::set_realloc</a>,
-<a href="../api_cxx/db_set_re_delim.html">Db::set_re_delim</a>,
-<a href="../api_cxx/db_set_re_len.html">Db::set_re_len</a>,
-<a href="../api_cxx/db_set_re_pad.html">Db::set_re_pad</a>,
-<a href="../api_cxx/db_set_re_source.html">Db::set_re_source</a>,
-<a href="../api_cxx/db_stat.html">Db::stat</a>,
-<a href="../api_cxx/db_sync.html">Db::sync</a>,
-<a href="../api_cxx/db_upgrade.html">Db::upgrade</a>
-and
-<a href="../api_cxx/db_verify.html">Db::verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/db_get.html b/bdb/docs/api_cxx/db_get.html
deleted file mode 100644
index 0cee5526b50..00000000000
--- a/bdb/docs/api_cxx/db_get.html
+++ /dev/null
@@ -1,158 +0,0 @@
-<!--$Id: db_get.so,v 10.31 2000/11/28 20:12:30 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db::get</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db::get</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-Db::get(DbTxn *txnid, Dbt *key, Dbt *data, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The Db::get method retrieves key/data pairs from the database. The
-address
-and length of the data associated with the specified <b>key</b> are
-returned in the structure referenced by <b>data</b>.
-<p>In the presence of duplicate key values, Db::get will return the
-first data item for the designated key. Duplicates are sorted by insert
-order except where this order has been overridden by cursor operations.
-<b>Retrieval of duplicates requires the use of cursor operations.</b>
-See <a href="../api_cxx/dbc_get.html">Dbc::get</a> for details.
-<p>If the file is being accessed under transaction protection, the
-<b>txnid</b> parameter is a transaction ID returned from
-<a href="../api_cxx/txn_begin.html">DbEnv::txn_begin</a>, otherwise, NULL.
-<p>The <b>flags</b> parameter must be set to 0 or one of the following
-values:
-<p><dl compact>
-<p><dt><a name="DB_CONSUME">DB_CONSUME</a><dd>Return the record number and data from the available record closest to
-the head of the queue and delete the record. The cursor will be
-positioned on the deleted record. The record number will be returned
-in <b>key</b> as described in <a href="../api_cxx/dbt_class.html">Dbt</a>. The data will be returned
-in the <b>data</b> parameter. A record is available if it is not
-deleted and is not currently locked. The underlying database must be
-of type Queue for DB_CONSUME to be specified.
-<p><dt><a name="DB_CONSUME_WAIT">DB_CONSUME_WAIT</a><dd>The DB_CONSUME_WAIT flag is the same as the DB_CONSUME
-flag except that if the Queue database is empty, the thread of control
-will wait until there is data in the queue before returning. The
-underlying database must be of type Queue for DB_CONSUME_WAIT
-to be specified.
-<p><dt><a name="DB_GET_BOTH">DB_GET_BOTH</a><dd>Retrieve the key/data pair only if both the key and data match the
-arguments.
-<p><dt><a name="DB_SET_RECNO">DB_SET_RECNO</a><dd>Retrieve the specified numbered key/data pair from a database.
-Upon return, both the <b>key</b> and <b>data</b> items will have been
-filled in, not just the data item as is done for all other uses of the
-Db::get method.
-<p>The <b>data</b> field of the specified <b>key</b>
-must be a pointer to a logical record number (i.e., a <b>db_recno_t</b>).
-This record number determines the record to be retrieved.
-<p>For DB_SET_RECNO to be specified, the underlying database must be
-of type Btree and it must have been created with the DB_RECNUM flag.
-</dl>
-<p>In addition, the following flag may be set by bitwise inclusively <b>OR</b>'ing it into the
-<b>flags</b> parameter:
-<p><dl compact>
-<p><dt><a name="DB_RMW">DB_RMW</a><dd>Acquire write locks instead of read locks when doing the retrieval.
-Setting this flag may decrease the likelihood of deadlock during a
-read-modify-write cycle by immediately acquiring the write lock during
-the read part of the cycle so that another thread of control acquiring
-a read lock for the same item, in its own read-modify-write cycle, will
-not result in deadlock.
-<p>As the Db::get interface will not hold locks across
-Berkeley DB interface calls in non-transactional environments, the
-<a href="../api_cxx/dbc_get.html#DB_RMW">DB_RMW</a> flag to the Db::get call is only meaningful in
-the presence of transactions.
-</dl>
-<p>If the database is a Queue or Recno database and the requested key exists,
-but was never explicitly created by the application or was later deleted,
-the Db::get method returns <a href="../ref/program/errorret.html#DB_KEYEMPTY">DB_KEYEMPTY</a>.
-<p>Otherwise, if the requested key is not in the database, the
-Db::get function returns <a href="../ref/program/errorret.html#DB_NOTFOUND">DB_NOTFOUND</a>.
-<p>Otherwise, the Db::get method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p>The Db::get method may fail and throw an exception or return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>DB_LOCK_DEADLOCK<dd>The operation was selected to resolve a deadlock.
-</dl>
-<p><dl compact>
-<p><dt>ENOMEM<dd>There was insufficient memory to return the requested item.
-</dl>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>A record number of 0 was specified.
-<p>The <a href="../api_cxx/env_open.html#DB_THREAD">DB_THREAD</a> flag was specified to the
-<a href="../api_cxx/db_open.html">Db::open</a> method and none of the <a href="../api_cxx/dbt_class.html#DB_DBT_MALLOC">DB_DBT_MALLOC</a>,
-<a href="../api_cxx/dbt_class.html#DB_DBT_REALLOC">DB_DBT_REALLOC</a> or <a href="../api_cxx/dbt_class.html#DB_DBT_USERMEM">DB_DBT_USERMEM</a> flags were set in the
-<a href="../api_cxx/dbt_class.html">Dbt</a>.
-</dl>
-<p>The Db::get method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the Db::get method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Class</h3>
-<a href="../api_cxx/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_cxx/db_close.html">Db::close</a>,
-<a href="../api_cxx/db_cursor.html">Db::cursor</a>,
-<a href="../api_cxx/db_del.html">Db::del</a>,
-<a href="../api_cxx/db_err.html">Db::err</a>,
-<a href="../api_cxx/db_fd.html">Db::fd</a>,
-<a href="../api_cxx/db_get.html">Db::get</a>,
-<a href="../api_cxx/db_get_byteswapped.html">Db::get_byteswapped</a>,
-<a href="../api_cxx/db_get_type.html">Db::get_type</a>,
-<a href="../api_cxx/db_join.html">Db::join</a>,
-<a href="../api_cxx/db_key_range.html">Db::key_range</a>,
-<a href="../api_cxx/db_open.html">Db::open</a>,
-<a href="../api_cxx/db_put.html">Db::put</a>,
-<a href="../api_cxx/db_remove.html">Db::remove</a>,
-<a href="../api_cxx/db_set_bt_compare.html">Db::set_bt_compare</a>,
-<a href="../api_cxx/db_set_bt_minkey.html">Db::set_bt_minkey</a>,
-<a href="../api_cxx/db_set_bt_prefix.html">Db::set_bt_prefix</a>,
-<a href="../api_cxx/db_set_cachesize.html">Db::set_cachesize</a>,
-<a href="../api_cxx/db_set_dup_compare.html">Db::set_dup_compare</a>,
-<a href="../api_cxx/db_set_errcall.html">Db::set_errcall</a>,
-<a href="../api_cxx/db_set_errfile.html">Db::set_errfile</a>,
-<a href="../api_cxx/db_set_errpfx.html">Db::set_errpfx</a>,
-<a href="../api_cxx/db_set_flags.html">Db::set_flags</a>,
-<a href="../api_cxx/db_set_h_ffactor.html">Db::set_h_ffactor</a>,
-<a href="../api_cxx/db_set_h_hash.html">Db::set_h_hash</a>,
-<a href="../api_cxx/db_set_h_nelem.html">Db::set_h_nelem</a>,
-<a href="../api_cxx/db_set_lorder.html">Db::set_lorder</a>,
-<a href="../api_cxx/db_set_malloc.html">Db::set_malloc</a>,
-<a href="../api_cxx/db_set_pagesize.html">Db::set_pagesize</a>,
-<a href="../api_cxx/db_set_paniccall.html">Db::set_paniccall</a>,
-<a href="../api_cxx/db_set_q_extentsize.html">Db::set_q_extentsize</a>,
-<a href="../api_cxx/db_set_realloc.html">Db::set_realloc</a>,
-<a href="../api_cxx/db_set_re_delim.html">Db::set_re_delim</a>,
-<a href="../api_cxx/db_set_re_len.html">Db::set_re_len</a>,
-<a href="../api_cxx/db_set_re_pad.html">Db::set_re_pad</a>,
-<a href="../api_cxx/db_set_re_source.html">Db::set_re_source</a>,
-<a href="../api_cxx/db_stat.html">Db::stat</a>,
-<a href="../api_cxx/db_sync.html">Db::sync</a>,
-<a href="../api_cxx/db_upgrade.html">Db::upgrade</a>
-and
-<a href="../api_cxx/db_verify.html">Db::verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/db_get_byteswapped.html b/bdb/docs/api_cxx/db_get_byteswapped.html
deleted file mode 100644
index 5c661fa5776..00000000000
--- a/bdb/docs/api_cxx/db_get_byteswapped.html
+++ /dev/null
@@ -1,85 +0,0 @@
-<!--$Id: db_get_byteswapped.so,v 10.7 1999/12/20 08:52:27 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db::get_byteswapped</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db::get_byteswapped</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-Db::get_byteswapped(void) const;
-</pre></h3>
-<h1>Description</h1>
-<p>The Db::get_byteswapped method returns
-0
-if the underlying database files were created on an architecture
-of the same byte order as the current one, and
-1
-if they were not (i.e., big-endian on a little-endian machine or
-vice-versa). This field may be used to determine if application
-data needs to be adjusted for this architecture or not.
-<h3>Class</h3>
-<a href="../api_cxx/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_cxx/db_close.html">Db::close</a>,
-<a href="../api_cxx/db_cursor.html">Db::cursor</a>,
-<a href="../api_cxx/db_del.html">Db::del</a>,
-<a href="../api_cxx/db_err.html">Db::err</a>,
-<a href="../api_cxx/db_fd.html">Db::fd</a>,
-<a href="../api_cxx/db_get.html">Db::get</a>,
-<a href="../api_cxx/db_get_byteswapped.html">Db::get_byteswapped</a>,
-<a href="../api_cxx/db_get_type.html">Db::get_type</a>,
-<a href="../api_cxx/db_join.html">Db::join</a>,
-<a href="../api_cxx/db_key_range.html">Db::key_range</a>,
-<a href="../api_cxx/db_open.html">Db::open</a>,
-<a href="../api_cxx/db_put.html">Db::put</a>,
-<a href="../api_cxx/db_remove.html">Db::remove</a>,
-<a href="../api_cxx/db_set_bt_compare.html">Db::set_bt_compare</a>,
-<a href="../api_cxx/db_set_bt_minkey.html">Db::set_bt_minkey</a>,
-<a href="../api_cxx/db_set_bt_prefix.html">Db::set_bt_prefix</a>,
-<a href="../api_cxx/db_set_cachesize.html">Db::set_cachesize</a>,
-<a href="../api_cxx/db_set_dup_compare.html">Db::set_dup_compare</a>,
-<a href="../api_cxx/db_set_errcall.html">Db::set_errcall</a>,
-<a href="../api_cxx/db_set_errfile.html">Db::set_errfile</a>,
-<a href="../api_cxx/db_set_errpfx.html">Db::set_errpfx</a>,
-<a href="../api_cxx/db_set_flags.html">Db::set_flags</a>,
-<a href="../api_cxx/db_set_h_ffactor.html">Db::set_h_ffactor</a>,
-<a href="../api_cxx/db_set_h_hash.html">Db::set_h_hash</a>,
-<a href="../api_cxx/db_set_h_nelem.html">Db::set_h_nelem</a>,
-<a href="../api_cxx/db_set_lorder.html">Db::set_lorder</a>,
-<a href="../api_cxx/db_set_malloc.html">Db::set_malloc</a>,
-<a href="../api_cxx/db_set_pagesize.html">Db::set_pagesize</a>,
-<a href="../api_cxx/db_set_paniccall.html">Db::set_paniccall</a>,
-<a href="../api_cxx/db_set_q_extentsize.html">Db::set_q_extentsize</a>,
-<a href="../api_cxx/db_set_realloc.html">Db::set_realloc</a>,
-<a href="../api_cxx/db_set_re_delim.html">Db::set_re_delim</a>,
-<a href="../api_cxx/db_set_re_len.html">Db::set_re_len</a>,
-<a href="../api_cxx/db_set_re_pad.html">Db::set_re_pad</a>,
-<a href="../api_cxx/db_set_re_source.html">Db::set_re_source</a>,
-<a href="../api_cxx/db_stat.html">Db::stat</a>,
-<a href="../api_cxx/db_sync.html">Db::sync</a>,
-<a href="../api_cxx/db_upgrade.html">Db::upgrade</a>
-and
-<a href="../api_cxx/db_verify.html">Db::verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/db_get_type.html b/bdb/docs/api_cxx/db_get_type.html
deleted file mode 100644
index 755032390fc..00000000000
--- a/bdb/docs/api_cxx/db_get_type.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<!--$Id: db_get_type.so,v 10.10 1999/12/20 08:52:27 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db::get_type</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db::get_type</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-DBTYPE
-Db::get_type(void) const;
-</pre></h3>
-<h1>Description</h1>
-<p>The Db::get_type method returns the type of the underlying access method
-(and file format). It returns one of DB_BTREE,
-DB_HASH or DB_RECNO. This value may be used to
-determine the type of the database after a return from <a href="../api_cxx/db_open.html">Db::open</a>
-with the <b>type</b> argument set to DB_UNKNOWN.
-<h3>Class</h3>
-<a href="../api_cxx/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_cxx/db_close.html">Db::close</a>,
-<a href="../api_cxx/db_cursor.html">Db::cursor</a>,
-<a href="../api_cxx/db_del.html">Db::del</a>,
-<a href="../api_cxx/db_err.html">Db::err</a>,
-<a href="../api_cxx/db_fd.html">Db::fd</a>,
-<a href="../api_cxx/db_get.html">Db::get</a>,
-<a href="../api_cxx/db_get_byteswapped.html">Db::get_byteswapped</a>,
-<a href="../api_cxx/db_get_type.html">Db::get_type</a>,
-<a href="../api_cxx/db_join.html">Db::join</a>,
-<a href="../api_cxx/db_key_range.html">Db::key_range</a>,
-<a href="../api_cxx/db_open.html">Db::open</a>,
-<a href="../api_cxx/db_put.html">Db::put</a>,
-<a href="../api_cxx/db_remove.html">Db::remove</a>,
-<a href="../api_cxx/db_set_bt_compare.html">Db::set_bt_compare</a>,
-<a href="../api_cxx/db_set_bt_minkey.html">Db::set_bt_minkey</a>,
-<a href="../api_cxx/db_set_bt_prefix.html">Db::set_bt_prefix</a>,
-<a href="../api_cxx/db_set_cachesize.html">Db::set_cachesize</a>,
-<a href="../api_cxx/db_set_dup_compare.html">Db::set_dup_compare</a>,
-<a href="../api_cxx/db_set_errcall.html">Db::set_errcall</a>,
-<a href="../api_cxx/db_set_errfile.html">Db::set_errfile</a>,
-<a href="../api_cxx/db_set_errpfx.html">Db::set_errpfx</a>,
-<a href="../api_cxx/db_set_flags.html">Db::set_flags</a>,
-<a href="../api_cxx/db_set_h_ffactor.html">Db::set_h_ffactor</a>,
-<a href="../api_cxx/db_set_h_hash.html">Db::set_h_hash</a>,
-<a href="../api_cxx/db_set_h_nelem.html">Db::set_h_nelem</a>,
-<a href="../api_cxx/db_set_lorder.html">Db::set_lorder</a>,
-<a href="../api_cxx/db_set_malloc.html">Db::set_malloc</a>,
-<a href="../api_cxx/db_set_pagesize.html">Db::set_pagesize</a>,
-<a href="../api_cxx/db_set_paniccall.html">Db::set_paniccall</a>,
-<a href="../api_cxx/db_set_q_extentsize.html">Db::set_q_extentsize</a>,
-<a href="../api_cxx/db_set_realloc.html">Db::set_realloc</a>,
-<a href="../api_cxx/db_set_re_delim.html">Db::set_re_delim</a>,
-<a href="../api_cxx/db_set_re_len.html">Db::set_re_len</a>,
-<a href="../api_cxx/db_set_re_pad.html">Db::set_re_pad</a>,
-<a href="../api_cxx/db_set_re_source.html">Db::set_re_source</a>,
-<a href="../api_cxx/db_stat.html">Db::stat</a>,
-<a href="../api_cxx/db_sync.html">Db::sync</a>,
-<a href="../api_cxx/db_upgrade.html">Db::upgrade</a>
-and
-<a href="../api_cxx/db_verify.html">Db::verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/db_join.html b/bdb/docs/api_cxx/db_join.html
deleted file mode 100644
index 6767aaf769e..00000000000
--- a/bdb/docs/api_cxx/db_join.html
+++ /dev/null
@@ -1,153 +0,0 @@
-<!--$Id: db_join.so,v 10.30 2000/12/20 15:34:50 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db::join</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db::join</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-Db::join(Dbc **curslist, Dbc **dbcp, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The Db::join method creates a specialized cursor for use in performing
-joins on secondary indexes. For information on how to organize your data
-to use this functionality, see <a href="../ref/am/join.html">Logical
-join</a>.
-<p>The <b>primary</b> argument contains the <a href="../api_cxx/db_class.html">Db</a> handle of the primary
-database, which is keyed by the data values found in entries in the
-<b>curslist</b>.
-<p>The <b>curslist</b> argument contains a NULL terminated array of cursors.
-Each cursor must have been initialized to reference the key on which the
-underlying database should be joined. Typically, this initialization is done
-by a <a href="../api_cxx/dbc_get.html">Dbc::get</a> call with the <a href="../api_cxx/dbc_get.html#DB_SET">DB_SET</a> flag specified. Once the
-cursors have been passed as part of a <b>curslist</b>, they should not
-be accessed or modified until the newly created join cursor has been closed,
-or else inconsistent results may be returned.
-<p>Joined values are retrieved by doing a sequential iteration over the first
-cursor in the <b>curslist</b> argument, and a nested iteration over each
-secondary cursor in the order they are specified in the <b>curslist</b>
-argument. This requires database traversals to search for the current
-datum in all the cursors after the first. For this reason, the best join
-performance normally results from sorting the cursors from the one that
-references the least number of data items to the one that references the
-most. By default, Db::join does this sort on behalf of its caller.
-<p>The <b>flags</b> parameter must be set to 0 or the following value:
-<p><dl compact>
-<p><dt><a name="DB_JOIN_NOSORT">DB_JOIN_NOSORT</a><dd>Do not sort the cursors based on the number of data items they reference.
-If the data are structured such that cursors with many data items also
-share many common elements, higher performance will result from listing
-those cursors before cursors with fewer data items, that is, a sort order
-other than the default. The DB_JOIN_NOSORT flag permits
-applications to perform join optimization prior to calling Db::join.
-</dl>
-<p>A newly created cursor is returned in the memory location referenced by
-<b>dbcp</b> and has the standard cursor functions:
-<p><dl compact>
-<p><dt><a href="../api_cxx/dbc_get.html">Dbc::get</a><dd>Iterates over the values associated with the keys to which each item in
-<b>curslist</b> has been initialized. Any data value which appears in
-all items specified by the <b>curslist</b> argument is then used as a
-key into the <b>primary</b>, and the key/data pair found in the
-<b>primary</b> is returned.
-<p>The <b>flags</b> parameter must be set to 0 or the following value:
-<p><dl compact>
-<p><dt><a name="DB_JOIN_ITEM">DB_JOIN_ITEM</a><dd>Do not use the data value found in all of the cursors as a lookup
-key for the <b>primary</b>, but simply return it in the key parameter
-instead. The data parameter is left unchanged.
-</dl>
-<p>In addition, the following flag may be set by bitwise inclusively <b>OR</b>'ing it into the
-<b>flags</b> parameter:
-<p><dl compact>
-<p><dt><a name="DB_RMW">DB_RMW</a><dd>Acquire write locks instead of read locks when doing the retrieval.
-Setting this flag may decrease the likelihood of deadlock during a
-read-modify-write cycle by immediately acquiring the write lock during
-the read part of the cycle so that another thread of control acquiring
-a read lock for the same item, in its own read-modify-write cycle, will
-not result in deadlock.
-</dl>
-<p><dt><a href="../api_cxx/dbc_put.html">Dbc::put</a><dd>Returns EINVAL.
-<p><dt><a href="../api_cxx/dbc_del.html">Dbc::del</a><dd>Returns EINVAL.
-<p><dt><a href="../api_cxx/dbc_close.html">Dbc::close</a><dd>Close the returned cursor and release all resources. (Closing the cursors
-in <b>curslist</b> is the responsibility of the caller.)
-</dl>
-<p>For the returned join cursor to be used in a transaction protected manner,
-the cursors listed in <b>curslist</b> must have been created within the
-context of the same transaction.
-<p>The Db::join method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p>The Db::join method may fail and throw an exception or return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>The <a href="../api_cxx/dbc_put.html">Dbc::put</a> or <a href="../api_cxx/dbc_del.html">Dbc::del</a> functions were called.
-</dl>
-<p>The Db::join method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the Db::join method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Class</h3>
-<a href="../api_cxx/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_cxx/db_close.html">Db::close</a>,
-<a href="../api_cxx/db_cursor.html">Db::cursor</a>,
-<a href="../api_cxx/db_del.html">Db::del</a>,
-<a href="../api_cxx/db_err.html">Db::err</a>,
-<a href="../api_cxx/db_fd.html">Db::fd</a>,
-<a href="../api_cxx/db_get.html">Db::get</a>,
-<a href="../api_cxx/db_get_byteswapped.html">Db::get_byteswapped</a>,
-<a href="../api_cxx/db_get_type.html">Db::get_type</a>,
-<a href="../api_cxx/db_join.html">Db::join</a>,
-<a href="../api_cxx/db_key_range.html">Db::key_range</a>,
-<a href="../api_cxx/db_open.html">Db::open</a>,
-<a href="../api_cxx/db_put.html">Db::put</a>,
-<a href="../api_cxx/db_remove.html">Db::remove</a>,
-<a href="../api_cxx/db_set_bt_compare.html">Db::set_bt_compare</a>,
-<a href="../api_cxx/db_set_bt_minkey.html">Db::set_bt_minkey</a>,
-<a href="../api_cxx/db_set_bt_prefix.html">Db::set_bt_prefix</a>,
-<a href="../api_cxx/db_set_cachesize.html">Db::set_cachesize</a>,
-<a href="../api_cxx/db_set_dup_compare.html">Db::set_dup_compare</a>,
-<a href="../api_cxx/db_set_errcall.html">Db::set_errcall</a>,
-<a href="../api_cxx/db_set_errfile.html">Db::set_errfile</a>,
-<a href="../api_cxx/db_set_errpfx.html">Db::set_errpfx</a>,
-<a href="../api_cxx/db_set_flags.html">Db::set_flags</a>,
-<a href="../api_cxx/db_set_h_ffactor.html">Db::set_h_ffactor</a>,
-<a href="../api_cxx/db_set_h_hash.html">Db::set_h_hash</a>,
-<a href="../api_cxx/db_set_h_nelem.html">Db::set_h_nelem</a>,
-<a href="../api_cxx/db_set_lorder.html">Db::set_lorder</a>,
-<a href="../api_cxx/db_set_malloc.html">Db::set_malloc</a>,
-<a href="../api_cxx/db_set_pagesize.html">Db::set_pagesize</a>,
-<a href="../api_cxx/db_set_paniccall.html">Db::set_paniccall</a>,
-<a href="../api_cxx/db_set_q_extentsize.html">Db::set_q_extentsize</a>,
-<a href="../api_cxx/db_set_realloc.html">Db::set_realloc</a>,
-<a href="../api_cxx/db_set_re_delim.html">Db::set_re_delim</a>,
-<a href="../api_cxx/db_set_re_len.html">Db::set_re_len</a>,
-<a href="../api_cxx/db_set_re_pad.html">Db::set_re_pad</a>,
-<a href="../api_cxx/db_set_re_source.html">Db::set_re_source</a>,
-<a href="../api_cxx/db_stat.html">Db::stat</a>,
-<a href="../api_cxx/db_sync.html">Db::sync</a>,
-<a href="../api_cxx/db_upgrade.html">Db::upgrade</a>
-and
-<a href="../api_cxx/db_verify.html">Db::verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/db_key_range.html b/bdb/docs/api_cxx/db_key_range.html
deleted file mode 100644
index 980dc119ae6..00000000000
--- a/bdb/docs/api_cxx/db_key_range.html
+++ /dev/null
@@ -1,109 +0,0 @@
-<!--$Id: db_key_range.so,v 10.5 2000/05/01 21:57:43 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db::key_range</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db::key_range</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-Db::key_range(DbTxn *txnid
- Dbt *key, DB_KEY_RANGE *key_range, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The Db::key_range method returns an estimate of the proportion of keys
-that are less than, equal to and greater than the specified key. The
-underlying database must be of type Btree.
-<p>The information is returned in the <b>key_range</b> argument, which
-contains three elements of type double, <b>less</b>, <b>equal</b> and
-<b>greater</b>. Values are in the range of 0 to 1, e.g., if the field
-<b>less</b> is 0.05, that indicates that 5% of the keys in the database
-are less than the key argument. The value for <b>equal</b> will be zero
-if there is no matching key and non-zero otherwise.
-<p>If the file is being accessed under transaction protection, the
-<b>txnid</b> parameter is a transaction ID returned from
-<a href="../api_cxx/txn_begin.html">DbEnv::txn_begin</a>, otherwise, NULL.
-The Db::key_range method does not retain the locks it acquires for the
-life of the transaction, so estimates may not be repeatable.
-<p>The <b>flags</b> parameter is currently unused, and must be set to 0.
-<p>The Db::key_range method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p>The Db::key_range method may fail and throw an exception or return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>DB_LOCK_DEADLOCK<dd>The operation was selected to resolve a deadlock.
-</dl>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>The underlying database was not of type Btree.
-</dl>
-<p>The Db::key_range method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the Db::key_range method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Class</h3>
-<a href="../api_cxx/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_cxx/db_close.html">Db::close</a>,
-<a href="../api_cxx/db_cursor.html">Db::cursor</a>,
-<a href="../api_cxx/db_del.html">Db::del</a>,
-<a href="../api_cxx/db_err.html">Db::err</a>,
-<a href="../api_cxx/db_fd.html">Db::fd</a>,
-<a href="../api_cxx/db_get.html">Db::get</a>,
-<a href="../api_cxx/db_get_byteswapped.html">Db::get_byteswapped</a>,
-<a href="../api_cxx/db_get_type.html">Db::get_type</a>,
-<a href="../api_cxx/db_join.html">Db::join</a>,
-<a href="../api_cxx/db_key_range.html">Db::key_range</a>,
-<a href="../api_cxx/db_open.html">Db::open</a>,
-<a href="../api_cxx/db_put.html">Db::put</a>,
-<a href="../api_cxx/db_remove.html">Db::remove</a>,
-<a href="../api_cxx/db_set_bt_compare.html">Db::set_bt_compare</a>,
-<a href="../api_cxx/db_set_bt_minkey.html">Db::set_bt_minkey</a>,
-<a href="../api_cxx/db_set_bt_prefix.html">Db::set_bt_prefix</a>,
-<a href="../api_cxx/db_set_cachesize.html">Db::set_cachesize</a>,
-<a href="../api_cxx/db_set_dup_compare.html">Db::set_dup_compare</a>,
-<a href="../api_cxx/db_set_errcall.html">Db::set_errcall</a>,
-<a href="../api_cxx/db_set_errfile.html">Db::set_errfile</a>,
-<a href="../api_cxx/db_set_errpfx.html">Db::set_errpfx</a>,
-<a href="../api_cxx/db_set_flags.html">Db::set_flags</a>,
-<a href="../api_cxx/db_set_h_ffactor.html">Db::set_h_ffactor</a>,
-<a href="../api_cxx/db_set_h_hash.html">Db::set_h_hash</a>,
-<a href="../api_cxx/db_set_h_nelem.html">Db::set_h_nelem</a>,
-<a href="../api_cxx/db_set_lorder.html">Db::set_lorder</a>,
-<a href="../api_cxx/db_set_malloc.html">Db::set_malloc</a>,
-<a href="../api_cxx/db_set_pagesize.html">Db::set_pagesize</a>,
-<a href="../api_cxx/db_set_paniccall.html">Db::set_paniccall</a>,
-<a href="../api_cxx/db_set_q_extentsize.html">Db::set_q_extentsize</a>,
-<a href="../api_cxx/db_set_realloc.html">Db::set_realloc</a>,
-<a href="../api_cxx/db_set_re_delim.html">Db::set_re_delim</a>,
-<a href="../api_cxx/db_set_re_len.html">Db::set_re_len</a>,
-<a href="../api_cxx/db_set_re_pad.html">Db::set_re_pad</a>,
-<a href="../api_cxx/db_set_re_source.html">Db::set_re_source</a>,
-<a href="../api_cxx/db_stat.html">Db::stat</a>,
-<a href="../api_cxx/db_sync.html">Db::sync</a>,
-<a href="../api_cxx/db_upgrade.html">Db::upgrade</a>
-and
-<a href="../api_cxx/db_verify.html">Db::verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/db_open.html b/bdb/docs/api_cxx/db_open.html
deleted file mode 100644
index 4c8cb75f452..00000000000
--- a/bdb/docs/api_cxx/db_open.html
+++ /dev/null
@@ -1,185 +0,0 @@
-<!--$Id: db_open.so,v 10.61 2000/10/25 15:24:44 dda Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db::open</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db::open</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-Db::open(const char *file,
- const char *database, DBTYPE type, u_int32_t flags, int mode);
-</pre></h3>
-<h1>Description</h1>
-<p>The currently supported Berkeley DB file formats (or <i>access methods</i>)
-are Btree, Hash, Queue and Recno. The Btree format is a representation
-of a sorted, balanced tree structure. The Hash format is an extensible,
-dynamic hashing scheme. The Queue format supports fast access to
-fixed-length records accessed by sequentially or logical record number.
-The Recno format supports fixed- or variable-length records, accessed
-sequentially or by logical record number, and optionally retrieved from
-a flat text file.
-<p>Storage and retrieval for the Berkeley DB access methods are based on key/data
-pairs, see <a href="../api_cxx/dbt_class.html">Dbt</a> for more information.
-<p>The Db::open interface opens the database represented by the
-<b>file</b> and <b>database</b> arguments for both reading and writing.
-The <b>file</b> argument is used as the name of a physical file on disk
-that will be used to back the database. The <b>database</b> argument is
-optional and allows applications to have multiple logical databases in a
-single physical file. While no <b>database</b> argument needs to be
-specified, it is an error to attempt to open a second database in a
-<b>file</b> that was not initially created using a <b>database</b> name.
-In-memory databases never intended to be preserved on disk may
-be created by setting both the <b>file</b> and <b>database</b> arguments
-to NULL. Note that in-memory databases can only ever be shared by
-sharing the single database handle that created them, in circumstances
-where doing so is safe.
-<p>The <b>type</b> argument is of type DBTYPE
-and must be set to one of DB_BTREE, DB_HASH,
-DB_QUEUE, DB_RECNO or DB_UNKNOWN, except
-that databases of type DB_QUEUE are restricted to one per
-<b>file</b>. If <b>type</b> is DB_UNKNOWN, the database must
-already exist and Db::open will automatically determine its type.
-The <a href="../api_cxx/db_get_type.html">Db::get_type</a> method may be used to determine the underlying type of
-databases opened using DB_UNKNOWN.
-<p>The <b>flags</b> and <b>mode</b> arguments specify how files will be opened
-and/or created if they do not already exist.
-<p>The <b>flags</b> value must be set to 0 or by bitwise inclusively <b>OR</b>'ing together one or more
-of the following values.
-<p><dl compact>
-<p><dt><a name="DB_CREATE">DB_CREATE</a><dd>Create any underlying files, as necessary. If the files do not already
-exist and the DB_CREATE flag is not specified, the call will fail.
-<p><dt><a name="DB_EXCL">DB_EXCL</a><dd>Return an error if the file already exists. Underlying filesystem
-primitives are used to implement this flag. For this reason it is only
-applicable to the physical file and cannot be used to test if a database
-in a file already exists.
-<p>The DB_EXCL flag is only meaningful when specified with the
-DB_CREATE flag.
-<p><dt><a name="DB_NOMMAP">DB_NOMMAP</a><dd>Do not map this database into process memory (see the description of the
-<a href="../api_cxx/env_set_mp_mmapsize.html">DbEnv::set_mp_mmapsize</a> method for further information).
-<p><dt><a name="DB_RDONLY">DB_RDONLY</a><dd>Open the database for reading only. Any attempt to modify items in the
-database will fail regardless of the actual permissions of any underlying
-files.
-<p><dt><a name="DB_THREAD">DB_THREAD</a><dd>Cause the <a href="../api_cxx/db_class.html">Db</a> handle returned by Db::open to be
-<i>free-threaded</i>, that is, useable by multiple threads within a
-single address space.
-<p><dt><a name="DB_TRUNCATE">DB_TRUNCATE</a><dd>Physically truncate the underlying file, discarding all previous databases
-it might have held. Underlying filesystem primitives are used to
-implement this flag. For this reason it is only applicable to the
-physical file and cannot be used to discard databases within a file.
-<p>The DB_TRUNCATE flag cannot be transaction protected, and it is
-an error to specify it in a transaction protected environment.
-</dl>
-<p>On UNIX systems, or in IEEE/ANSI Std 1003.1 (POSIX) environments, all files created by the access methods
-are created with mode <b>mode</b> (as described in <b>chmod</b>(2)) and
-modified by the process' umask value at the time of creation (see
-<b>umask</b>(2)). The group ownership of created files is based on
-the system and directory defaults, and is not further specified by Berkeley DB.
-If <b>mode</b> is 0, files are created readable and writeable by both
-owner and group. On Windows systems, the mode argument is ignored.
-<p>Calling Db::open is a reasonably expensive operation, and
-maintaining a set of open databases will normally be preferable to
-repeatedly open and closing the database for each new query.
-<p>The Db::open method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Environment Variables</h1>
-<p><dl compact>
-<p><dt>DB_HOME<dd>If the <b>dbenv</b> argument to <a href="../api_c/db_create.html">db_create</a> was initialized using
-<a href="../api_cxx/env_open.html">DbEnv::open</a> the environment variable <b>DB_HOME</b> may be used
-as the path of the database environment home. Specifically, Db::open
-is affected by the configuration value DB_DATA_DIR.
-</dl>
-<p><dl compact>
-<p><dt>TMPDIR<dd>If the <b>file</b> and <b>dbenv</b> arguments to Db::open are
-NULL, the environment variable <b>TMPDIR</b> may be used as a
-directory in which to create a temporary backing file.
-</dl>
-<h1>Errors</h1>
-<p>The Db::open method may fail and throw an exception or return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt><a name="DB_OLD_VERSION">DB_OLD_VERSION</a><dd>The database cannot be opened without being first upgraded.
-<p><dt>EEXIST<dd>DB_CREATE and DB_EXCL were specified and the file exists.
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified (e.g., unknown database
-type, page size, hash function, pad byte, byte order) or a flag value
-or parameter that is incompatible with the specified database.
-<p>
-The <a href="../api_cxx/env_open.html#DB_THREAD">DB_THREAD</a> flag was specified and spinlocks are not
-implemented for this architecture.
-<p>The <a href="../api_cxx/env_open.html#DB_THREAD">DB_THREAD</a> flag was specified to Db::open, but was not
-specified to the <a href="../api_cxx/env_open.html">DbEnv::open</a> call for the environment in which the
-<a href="../api_cxx/db_class.html">Db</a> handle was created.
-<p>A <b>re_source</b> file was specified with either the <a href="../api_cxx/env_open.html#DB_THREAD">DB_THREAD</a>
-flag or the provided database environment supports transaction
-processing.
-<p><dt>ENOENT<dd>A non-existent <b>re_source</b> file was specified.
-</dl>
-<p>The Db::open method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the Db::open method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Class</h3>
-<a href="../api_cxx/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_cxx/db_close.html">Db::close</a>,
-<a href="../api_cxx/db_cursor.html">Db::cursor</a>,
-<a href="../api_cxx/db_del.html">Db::del</a>,
-<a href="../api_cxx/db_err.html">Db::err</a>,
-<a href="../api_cxx/db_fd.html">Db::fd</a>,
-<a href="../api_cxx/db_get.html">Db::get</a>,
-<a href="../api_cxx/db_get_byteswapped.html">Db::get_byteswapped</a>,
-<a href="../api_cxx/db_get_type.html">Db::get_type</a>,
-<a href="../api_cxx/db_join.html">Db::join</a>,
-<a href="../api_cxx/db_key_range.html">Db::key_range</a>,
-<a href="../api_cxx/db_open.html">Db::open</a>,
-<a href="../api_cxx/db_put.html">Db::put</a>,
-<a href="../api_cxx/db_remove.html">Db::remove</a>,
-<a href="../api_cxx/db_set_bt_compare.html">Db::set_bt_compare</a>,
-<a href="../api_cxx/db_set_bt_minkey.html">Db::set_bt_minkey</a>,
-<a href="../api_cxx/db_set_bt_prefix.html">Db::set_bt_prefix</a>,
-<a href="../api_cxx/db_set_cachesize.html">Db::set_cachesize</a>,
-<a href="../api_cxx/db_set_dup_compare.html">Db::set_dup_compare</a>,
-<a href="../api_cxx/db_set_errcall.html">Db::set_errcall</a>,
-<a href="../api_cxx/db_set_errfile.html">Db::set_errfile</a>,
-<a href="../api_cxx/db_set_errpfx.html">Db::set_errpfx</a>,
-<a href="../api_cxx/db_set_flags.html">Db::set_flags</a>,
-<a href="../api_cxx/db_set_h_ffactor.html">Db::set_h_ffactor</a>,
-<a href="../api_cxx/db_set_h_hash.html">Db::set_h_hash</a>,
-<a href="../api_cxx/db_set_h_nelem.html">Db::set_h_nelem</a>,
-<a href="../api_cxx/db_set_lorder.html">Db::set_lorder</a>,
-<a href="../api_cxx/db_set_malloc.html">Db::set_malloc</a>,
-<a href="../api_cxx/db_set_pagesize.html">Db::set_pagesize</a>,
-<a href="../api_cxx/db_set_paniccall.html">Db::set_paniccall</a>,
-<a href="../api_cxx/db_set_q_extentsize.html">Db::set_q_extentsize</a>,
-<a href="../api_cxx/db_set_realloc.html">Db::set_realloc</a>,
-<a href="../api_cxx/db_set_re_delim.html">Db::set_re_delim</a>,
-<a href="../api_cxx/db_set_re_len.html">Db::set_re_len</a>,
-<a href="../api_cxx/db_set_re_pad.html">Db::set_re_pad</a>,
-<a href="../api_cxx/db_set_re_source.html">Db::set_re_source</a>,
-<a href="../api_cxx/db_stat.html">Db::stat</a>,
-<a href="../api_cxx/db_sync.html">Db::sync</a>,
-<a href="../api_cxx/db_upgrade.html">Db::upgrade</a>
-and
-<a href="../api_cxx/db_verify.html">Db::verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/db_put.html b/bdb/docs/api_cxx/db_put.html
deleted file mode 100644
index 5e2d1b8c4c9..00000000000
--- a/bdb/docs/api_cxx/db_put.html
+++ /dev/null
@@ -1,138 +0,0 @@
-<!--$Id: db_put.so,v 10.34 2000/09/16 22:27:56 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db::put</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db::put</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-Db::put(DbTxn *txnid, Dbt *key, Dbt *data, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The Db::put method stores key/data pairs in the database. The default
-behavior of the Db::put function is to enter the new key/data
-pair, replacing any previously existing key if duplicates are disallowed,
-or adding a duplicate data item if duplicates are allowed. If the database
-supports duplicates, the Db::put method adds the new data value at the
-end of the duplicate set. If the database supports sorted duplicates,
-the new data value is inserted at the correct sorted location.
-<p>If the file is being accessed under transaction protection, the
-<b>txnid</b> parameter is a transaction ID returned from
-<a href="../api_cxx/txn_begin.html">DbEnv::txn_begin</a>, otherwise, NULL.
-<p>The <b>flags</b> parameter must be set to 0 or one of the following
-values:
-<p><dl compact>
-<p><dt><a name="DB_APPEND">DB_APPEND</a><dd>Append the key/data pair to the end of the database. For the
-DB_APPEND flag to be specified, the underlying database must be
-a Queue or Recno database. The record number allocated to the record is
-returned in the specified <b>key</b>.
-<p>There is a minor behavioral difference between the Recno and Queue access
-methods for the DB_APPEND flag. If a transaction enclosing a
-Db::put operation with the DB_APPEND flag aborts, the
-record number may be decremented (and later re-allocated by a subsequent
-DB_APPEND operation) by the Recno access method, but will not be
-decremented or re-allocated by the Queue access method.
-<p><dt><a name="DB_NODUPDATA">DB_NODUPDATA</a><dd>In the case of the Btree and Hash access methods, enter the new key/data
-pair only if it does not already appear in the database. If the
-key/data pair already appears in the database, <a href="../api_cxx/dbc_put.html#DB_KEYEXIST">DB_KEYEXIST</a> is
-returned. The DB_NODUPDATA flag may only be specified if the
-underlying database has been configured to support sorted duplicates.
-<p>The DB_NODUPDATA flag may not be specified to the Queue or Recno
-access methods.
-<p><dt><a name="DB_NOOVERWRITE">DB_NOOVERWRITE</a><dd>Enter the new key/data pair only if the key does not already appear in
-the database. If the key already appears in the database,
-<a href="../api_cxx/dbc_put.html#DB_KEYEXIST">DB_KEYEXIST</a> is returned. Even if the database allows duplicates,
-a call to Db::put with the DB_NOOVERWRITE flag set will
-fail if the key already exists in the database.
-</dl>
-<p>Otherwise, the Db::put method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p>The Db::put method may fail and throw an exception or return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>DB_LOCK_DEADLOCK<dd>The operation was selected to resolve a deadlock.
-</dl>
-<p><dl compact>
-<p><dt>EACCES<dd>An attempt was made to modify a read-only database.
-</dl>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>A record number of 0 was specified.
-<p>An attempt was made to add a record to a fixed-length database that was too
-large to fit.
-<p>An attempt was made to do a partial put.
-</dl>
-<p><dl compact>
-<p><dt>ENOSPC<dd>A btree exceeded the maximum btree depth (255).
-</dl>
-<p>The Db::put method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the Db::put method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Class</h3>
-<a href="../api_cxx/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_cxx/db_close.html">Db::close</a>,
-<a href="../api_cxx/db_cursor.html">Db::cursor</a>,
-<a href="../api_cxx/db_del.html">Db::del</a>,
-<a href="../api_cxx/db_err.html">Db::err</a>,
-<a href="../api_cxx/db_fd.html">Db::fd</a>,
-<a href="../api_cxx/db_get.html">Db::get</a>,
-<a href="../api_cxx/db_get_byteswapped.html">Db::get_byteswapped</a>,
-<a href="../api_cxx/db_get_type.html">Db::get_type</a>,
-<a href="../api_cxx/db_join.html">Db::join</a>,
-<a href="../api_cxx/db_key_range.html">Db::key_range</a>,
-<a href="../api_cxx/db_open.html">Db::open</a>,
-<a href="../api_cxx/db_put.html">Db::put</a>,
-<a href="../api_cxx/db_remove.html">Db::remove</a>,
-<a href="../api_cxx/db_set_bt_compare.html">Db::set_bt_compare</a>,
-<a href="../api_cxx/db_set_bt_minkey.html">Db::set_bt_minkey</a>,
-<a href="../api_cxx/db_set_bt_prefix.html">Db::set_bt_prefix</a>,
-<a href="../api_cxx/db_set_cachesize.html">Db::set_cachesize</a>,
-<a href="../api_cxx/db_set_dup_compare.html">Db::set_dup_compare</a>,
-<a href="../api_cxx/db_set_errcall.html">Db::set_errcall</a>,
-<a href="../api_cxx/db_set_errfile.html">Db::set_errfile</a>,
-<a href="../api_cxx/db_set_errpfx.html">Db::set_errpfx</a>,
-<a href="../api_cxx/db_set_flags.html">Db::set_flags</a>,
-<a href="../api_cxx/db_set_h_ffactor.html">Db::set_h_ffactor</a>,
-<a href="../api_cxx/db_set_h_hash.html">Db::set_h_hash</a>,
-<a href="../api_cxx/db_set_h_nelem.html">Db::set_h_nelem</a>,
-<a href="../api_cxx/db_set_lorder.html">Db::set_lorder</a>,
-<a href="../api_cxx/db_set_malloc.html">Db::set_malloc</a>,
-<a href="../api_cxx/db_set_pagesize.html">Db::set_pagesize</a>,
-<a href="../api_cxx/db_set_paniccall.html">Db::set_paniccall</a>,
-<a href="../api_cxx/db_set_q_extentsize.html">Db::set_q_extentsize</a>,
-<a href="../api_cxx/db_set_realloc.html">Db::set_realloc</a>,
-<a href="../api_cxx/db_set_re_delim.html">Db::set_re_delim</a>,
-<a href="../api_cxx/db_set_re_len.html">Db::set_re_len</a>,
-<a href="../api_cxx/db_set_re_pad.html">Db::set_re_pad</a>,
-<a href="../api_cxx/db_set_re_source.html">Db::set_re_source</a>,
-<a href="../api_cxx/db_stat.html">Db::stat</a>,
-<a href="../api_cxx/db_sync.html">Db::sync</a>,
-<a href="../api_cxx/db_upgrade.html">Db::upgrade</a>
-and
-<a href="../api_cxx/db_verify.html">Db::verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/db_remove.html b/bdb/docs/api_cxx/db_remove.html
deleted file mode 100644
index 56cc5a23439..00000000000
--- a/bdb/docs/api_cxx/db_remove.html
+++ /dev/null
@@ -1,110 +0,0 @@
-<!--$Id: db_remove.so,v 10.20 2000/10/25 15:24:44 dda Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db::remove</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db::remove</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-Db::remove(const char *file, const char *database, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The Db::remove interface removes the database specified by the
-<b>file</b> and <b>database</b> arguments. If no <b>database</b> is
-specified, the physical file represented by <b>file</b> is removed,
-incidentally removing all databases that it contained.
-<p>If a physical file is being removed and logging is currently enabled in
-the database environment, no database in the file may be open when the
-Db::remove method is called. Otherwise, no reference count of database
-use is maintained by Berkeley DB. Applications should not remove databases that
-are currently in use. In particular, some architectures do not permit
-the removal of files with open handles. On these architectures, attempts
-to remove databases that are currently in use will fail.
-<p>The <b>flags</b> parameter is currently unused, and must be set to 0.
-<p>Once Db::remove has been called, regardless of its return, the
-<a href="../api_cxx/db_class.html">Db</a> handle may not be accessed again.
-<p>The Db::remove method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Environment Variables</h1>
-<p><dl compact>
-<p><dt>DB_HOME<dd>If the <b>dbenv</b> argument to <a href="../api_c/db_create.html">db_create</a> was initialized using
-<a href="../api_cxx/env_open.html">DbEnv::open</a> the environment variable <b>DB_HOME</b> may be used
-as the path of the database environment home. Specifically, Db::remove
-is affected by the configuration value DB_DATA_DIR.
-</dl>
-<h1>Errors</h1>
-<p>The Db::remove method may fail and throw an exception or return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>A database in the file is currently open.
-</dl>
-<p>The Db::remove method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the Db::remove method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Class</h3>
-<a href="../api_cxx/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_cxx/db_close.html">Db::close</a>,
-<a href="../api_cxx/db_cursor.html">Db::cursor</a>,
-<a href="../api_cxx/db_del.html">Db::del</a>,
-<a href="../api_cxx/db_err.html">Db::err</a>,
-<a href="../api_cxx/db_fd.html">Db::fd</a>,
-<a href="../api_cxx/db_get.html">Db::get</a>,
-<a href="../api_cxx/db_get_byteswapped.html">Db::get_byteswapped</a>,
-<a href="../api_cxx/db_get_type.html">Db::get_type</a>,
-<a href="../api_cxx/db_join.html">Db::join</a>,
-<a href="../api_cxx/db_key_range.html">Db::key_range</a>,
-<a href="../api_cxx/db_open.html">Db::open</a>,
-<a href="../api_cxx/db_put.html">Db::put</a>,
-<a href="../api_cxx/db_remove.html">Db::remove</a>,
-<a href="../api_cxx/db_set_bt_compare.html">Db::set_bt_compare</a>,
-<a href="../api_cxx/db_set_bt_minkey.html">Db::set_bt_minkey</a>,
-<a href="../api_cxx/db_set_bt_prefix.html">Db::set_bt_prefix</a>,
-<a href="../api_cxx/db_set_cachesize.html">Db::set_cachesize</a>,
-<a href="../api_cxx/db_set_dup_compare.html">Db::set_dup_compare</a>,
-<a href="../api_cxx/db_set_errcall.html">Db::set_errcall</a>,
-<a href="../api_cxx/db_set_errfile.html">Db::set_errfile</a>,
-<a href="../api_cxx/db_set_errpfx.html">Db::set_errpfx</a>,
-<a href="../api_cxx/db_set_flags.html">Db::set_flags</a>,
-<a href="../api_cxx/db_set_h_ffactor.html">Db::set_h_ffactor</a>,
-<a href="../api_cxx/db_set_h_hash.html">Db::set_h_hash</a>,
-<a href="../api_cxx/db_set_h_nelem.html">Db::set_h_nelem</a>,
-<a href="../api_cxx/db_set_lorder.html">Db::set_lorder</a>,
-<a href="../api_cxx/db_set_malloc.html">Db::set_malloc</a>,
-<a href="../api_cxx/db_set_pagesize.html">Db::set_pagesize</a>,
-<a href="../api_cxx/db_set_paniccall.html">Db::set_paniccall</a>,
-<a href="../api_cxx/db_set_q_extentsize.html">Db::set_q_extentsize</a>,
-<a href="../api_cxx/db_set_realloc.html">Db::set_realloc</a>,
-<a href="../api_cxx/db_set_re_delim.html">Db::set_re_delim</a>,
-<a href="../api_cxx/db_set_re_len.html">Db::set_re_len</a>,
-<a href="../api_cxx/db_set_re_pad.html">Db::set_re_pad</a>,
-<a href="../api_cxx/db_set_re_source.html">Db::set_re_source</a>,
-<a href="../api_cxx/db_stat.html">Db::stat</a>,
-<a href="../api_cxx/db_sync.html">Db::sync</a>,
-<a href="../api_cxx/db_upgrade.html">Db::upgrade</a>
-and
-<a href="../api_cxx/db_verify.html">Db::verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/db_rename.html b/bdb/docs/api_cxx/db_rename.html
deleted file mode 100644
index 03f2063d41a..00000000000
--- a/bdb/docs/api_cxx/db_rename.html
+++ /dev/null
@@ -1,112 +0,0 @@
-<!--$Id: db_rename.so,v 10.7 2000/10/25 15:24:44 dda Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db::rename</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db::rename</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-Db::rename(const char *file,
- const char *database, const char *newname, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The Db::rename interface renames the database specified by the
-<b>file</b> and <b>database</b> arguments to <b>newname</b>. If no
-<b>database</b> is specified, the physical file represented by
-<b>file</b> is renamed, incidentally renaming all databases that it
-contained.
-<p>If a physical file is being renamed and logging is currently enabled in
-the database environment, no database in the file may be open when the
-Db::rename method is called. Otherwise, no reference count of database
-use is maintained by Berkeley DB. Applications should not rename databases that
-are currently in use. In particular, some architectures do not permit
-renaming files with open handles. On these architectures, attempts to
-rename databases that are currently in use will fail.
-<p>The <b>flags</b> parameter is currently unused, and must be set to 0.
-<p>Once Db::rename has been called, regardless of its return, the
-<a href="../api_cxx/db_class.html">Db</a> handle may not be accessed again.
-<p>The Db::rename method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Environment Variables</h1>
-<p><dl compact>
-<p><dt>DB_HOME<dd>If the <b>dbenv</b> argument to <a href="../api_c/db_create.html">db_create</a> was initialized using
-<a href="../api_cxx/env_open.html">DbEnv::open</a> the environment variable <b>DB_HOME</b> may be used
-as the path of the database environment home. Specifically, Db::rename
-is affected by the configuration value DB_DATA_DIR.
-</dl>
-<h1>Errors</h1>
-<p>The Db::rename method may fail and throw an exception or return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>A database in the file is currently open.
-</dl>
-<p>The Db::rename method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the Db::rename method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Class</h3>
-<a href="../api_cxx/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_cxx/db_close.html">Db::close</a>,
-<a href="../api_cxx/db_cursor.html">Db::cursor</a>,
-<a href="../api_cxx/db_del.html">Db::del</a>,
-<a href="../api_cxx/db_err.html">Db::err</a>,
-<a href="../api_cxx/db_fd.html">Db::fd</a>,
-<a href="../api_cxx/db_get.html">Db::get</a>,
-<a href="../api_cxx/db_get_byteswapped.html">Db::get_byteswapped</a>,
-<a href="../api_cxx/db_get_type.html">Db::get_type</a>,
-<a href="../api_cxx/db_join.html">Db::join</a>,
-<a href="../api_cxx/db_key_range.html">Db::key_range</a>,
-<a href="../api_cxx/db_open.html">Db::open</a>,
-<a href="../api_cxx/db_put.html">Db::put</a>,
-<a href="../api_cxx/db_remove.html">Db::remove</a>,
-<a href="../api_cxx/db_set_bt_compare.html">Db::set_bt_compare</a>,
-<a href="../api_cxx/db_set_bt_minkey.html">Db::set_bt_minkey</a>,
-<a href="../api_cxx/db_set_bt_prefix.html">Db::set_bt_prefix</a>,
-<a href="../api_cxx/db_set_cachesize.html">Db::set_cachesize</a>,
-<a href="../api_cxx/db_set_dup_compare.html">Db::set_dup_compare</a>,
-<a href="../api_cxx/db_set_errcall.html">Db::set_errcall</a>,
-<a href="../api_cxx/db_set_errfile.html">Db::set_errfile</a>,
-<a href="../api_cxx/db_set_errpfx.html">Db::set_errpfx</a>,
-<a href="../api_cxx/db_set_flags.html">Db::set_flags</a>,
-<a href="../api_cxx/db_set_h_ffactor.html">Db::set_h_ffactor</a>,
-<a href="../api_cxx/db_set_h_hash.html">Db::set_h_hash</a>,
-<a href="../api_cxx/db_set_h_nelem.html">Db::set_h_nelem</a>,
-<a href="../api_cxx/db_set_lorder.html">Db::set_lorder</a>,
-<a href="../api_cxx/db_set_malloc.html">Db::set_malloc</a>,
-<a href="../api_cxx/db_set_pagesize.html">Db::set_pagesize</a>,
-<a href="../api_cxx/db_set_paniccall.html">Db::set_paniccall</a>,
-<a href="../api_cxx/db_set_q_extentsize.html">Db::set_q_extentsize</a>,
-<a href="../api_cxx/db_set_realloc.html">Db::set_realloc</a>,
-<a href="../api_cxx/db_set_re_delim.html">Db::set_re_delim</a>,
-<a href="../api_cxx/db_set_re_len.html">Db::set_re_len</a>,
-<a href="../api_cxx/db_set_re_pad.html">Db::set_re_pad</a>,
-<a href="../api_cxx/db_set_re_source.html">Db::set_re_source</a>,
-<a href="../api_cxx/db_stat.html">Db::stat</a>,
-<a href="../api_cxx/db_sync.html">Db::sync</a>,
-<a href="../api_cxx/db_upgrade.html">Db::upgrade</a>
-and
-<a href="../api_cxx/db_verify.html">Db::verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/db_set_append_recno.html b/bdb/docs/api_cxx/db_set_append_recno.html
deleted file mode 100644
index 296b4748407..00000000000
--- a/bdb/docs/api_cxx/db_set_append_recno.html
+++ /dev/null
@@ -1,69 +0,0 @@
-<!--$Id: db_set_append_recno.so,v 1.3 2000/07/18 16:19:44 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db::set_append_recno</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db::set_append_recno</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-Db::set_append_recno(
- int (*db_append_recno_fcn)(DB *dbp, Dbt *data, db_recno_t recno));
-</pre></h3>
-<h1>Description</h1>
-<p>When using the <a href="../api_cxx/db_put.html#DB_APPEND">DB_APPEND</a> option of the <a href="../api_cxx/db_put.html">Db::put</a> method,
-it may be useful to modify the stored data based on the generated key.
-If a callback method is specified using the
-Db::set_append_recno method, it will be called after the record number
-has been selected but before the data has been stored.
-The callback function must return 0 on success and <b>errno</b> or
-a value outside of the Berkeley DB error name space on failure.
-<p>The called function must take three arguments: a reference to the
-enclosing database handle, the data <a href="../api_cxx/dbt_class.html">Dbt</a> to be stored and the
-selected record number. The called function may then modify the data
-<a href="../api_cxx/dbt_class.html">Dbt</a>.
-<p>The Db::set_append_recno interface may only be used to configure Berkeley DB before
-the <a href="../api_cxx/db_open.html">Db::open</a> interface is called.
-<p>The Db::set_append_recno method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h3>Class</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_close.html">DbEnv::close</a>,
-<a href="../api_cxx/env_open.html">DbEnv::open</a>,
-<a href="../api_cxx/env_remove.html">DbEnv::remove</a>,
-<a href="../api_cxx/db_err.html">DbEnv::err</a>,
-<a href="../api_cxx/env_strerror.html">DbEnv::strerror</a>,
-<a href="../api_cxx/env_version.html">DbEnv::version</a>,
-<a href="../api_cxx/env_set_cachesize.html">DbEnv::set_cachesize</a>,
-<a href="../api_cxx/env_set_errcall.html">DbEnv::set_errcall</a>,
-<a href="../api_cxx/env_set_errfile.html">DbEnv::set_errfile</a>,
-<a href="../api_cxx/env_set_error_stream.html">DbEnv::set_error_stream</a>,
-<a href="../api_cxx/env_set_errpfx.html">DbEnv::set_errpfx</a>,
-<a href="../api_cxx/env_set_flags.html">DbEnv::set_flags</a>,
-<a href="../api_cxx/env_set_mutexlocks.html">DbEnv::set_mutexlocks</a>,
-<a href="../api_cxx/env_set_paniccall.html">DbEnv::set_paniccall</a>,
-and
-<a href="../api_cxx/env_set_verbose.html">DbEnv::set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/db_set_bt_compare.html b/bdb/docs/api_cxx/db_set_bt_compare.html
deleted file mode 100644
index 5ca95d40110..00000000000
--- a/bdb/docs/api_cxx/db_set_bt_compare.html
+++ /dev/null
@@ -1,109 +0,0 @@
-<!--$Id: db_set_bt_compare.so,v 10.24 2000/10/26 15:20:40 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db::set_bt_compare</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db::set_bt_compare</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-extern "C" {
- typedef int (*bt_compare_fcn_type)(DB *, const DBT *, const DBT *);
-};
-int
-Db::set_bt_compare(bt_compare_fcn_type bt_compare_fcn);
-</pre></h3>
-<h1>Description</h1>
-<p>Set the Btree key comparison function. The comparison function is
-called when it is necessary to compare a key specified by the
-application with a key currently stored in the tree. The first argument
-to the comparison function is the <a href="../api_cxx/dbt_class.html">Dbt</a> representing the
-application supplied key, the second is the current tree's key.
-<p>The comparison function must return an integer value less than, equal
-to, or greater than zero if the first key argument is considered to be
-respectively less than, equal to, or greater than the second key
-argument. In addition, the comparison function must cause the keys in
-the database to be <i>well-ordered</i>. The comparison function
-must correctly handle any key values used by the application (possibly
-including zero-length keys). In addition, when Btree key prefix
-comparison is being performed (see <a href="../api_cxx/db_set_bt_prefix.html">Db::set_bt_prefix</a> for more
-information), the comparison routine may be passed a prefix of any
-database key. The <b>data</b> and <b>size</b> fields of the
-<a href="../api_cxx/dbt_class.html">Dbt</a> are the only fields that may be used for the purposes of
-this comparison.
-<p>If no comparison function is specified, the keys are compared lexically,
-with shorter keys collating before longer keys. The same comparison
-method must be used each time a particular Btree is opened.
-<p>The Db::set_bt_compare interface may only be used to configure Berkeley DB before
-the <a href="../api_cxx/db_open.html">Db::open</a> interface is called.
-<p>The Db::set_bt_compare method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_cxx/db_open.html">Db::open</a> was called.
-</dl>
-<h3>Class</h3>
-<a href="../api_cxx/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_cxx/db_close.html">Db::close</a>,
-<a href="../api_cxx/db_cursor.html">Db::cursor</a>,
-<a href="../api_cxx/db_del.html">Db::del</a>,
-<a href="../api_cxx/db_err.html">Db::err</a>,
-<a href="../api_cxx/db_fd.html">Db::fd</a>,
-<a href="../api_cxx/db_get.html">Db::get</a>,
-<a href="../api_cxx/db_get_byteswapped.html">Db::get_byteswapped</a>,
-<a href="../api_cxx/db_get_type.html">Db::get_type</a>,
-<a href="../api_cxx/db_join.html">Db::join</a>,
-<a href="../api_cxx/db_key_range.html">Db::key_range</a>,
-<a href="../api_cxx/db_open.html">Db::open</a>,
-<a href="../api_cxx/db_put.html">Db::put</a>,
-<a href="../api_cxx/db_remove.html">Db::remove</a>,
-<a href="../api_cxx/db_set_bt_compare.html">Db::set_bt_compare</a>,
-<a href="../api_cxx/db_set_bt_minkey.html">Db::set_bt_minkey</a>,
-<a href="../api_cxx/db_set_bt_prefix.html">Db::set_bt_prefix</a>,
-<a href="../api_cxx/db_set_cachesize.html">Db::set_cachesize</a>,
-<a href="../api_cxx/db_set_dup_compare.html">Db::set_dup_compare</a>,
-<a href="../api_cxx/db_set_errcall.html">Db::set_errcall</a>,
-<a href="../api_cxx/db_set_errfile.html">Db::set_errfile</a>,
-<a href="../api_cxx/db_set_errpfx.html">Db::set_errpfx</a>,
-<a href="../api_cxx/db_set_flags.html">Db::set_flags</a>,
-<a href="../api_cxx/db_set_h_ffactor.html">Db::set_h_ffactor</a>,
-<a href="../api_cxx/db_set_h_hash.html">Db::set_h_hash</a>,
-<a href="../api_cxx/db_set_h_nelem.html">Db::set_h_nelem</a>,
-<a href="../api_cxx/db_set_lorder.html">Db::set_lorder</a>,
-<a href="../api_cxx/db_set_malloc.html">Db::set_malloc</a>,
-<a href="../api_cxx/db_set_pagesize.html">Db::set_pagesize</a>,
-<a href="../api_cxx/db_set_paniccall.html">Db::set_paniccall</a>,
-<a href="../api_cxx/db_set_q_extentsize.html">Db::set_q_extentsize</a>,
-<a href="../api_cxx/db_set_realloc.html">Db::set_realloc</a>,
-<a href="../api_cxx/db_set_re_delim.html">Db::set_re_delim</a>,
-<a href="../api_cxx/db_set_re_len.html">Db::set_re_len</a>,
-<a href="../api_cxx/db_set_re_pad.html">Db::set_re_pad</a>,
-<a href="../api_cxx/db_set_re_source.html">Db::set_re_source</a>,
-<a href="../api_cxx/db_stat.html">Db::stat</a>,
-<a href="../api_cxx/db_sync.html">Db::sync</a>,
-<a href="../api_cxx/db_upgrade.html">Db::upgrade</a>
-and
-<a href="../api_cxx/db_verify.html">Db::verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/db_set_bt_minkey.html b/bdb/docs/api_cxx/db_set_bt_minkey.html
deleted file mode 100644
index c0c5aced12b..00000000000
--- a/bdb/docs/api_cxx/db_set_bt_minkey.html
+++ /dev/null
@@ -1,94 +0,0 @@
-<!--$Id: db_set_bt_minkey.so,v 10.14 2000/05/01 21:57:43 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db::set_bt_minkey</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db::set_bt_minkey</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-Db::set_bt_minkey(u_int32_t bt_minkey);
-</pre></h3>
-<h1>Description</h1>
-<p>Set the minimum number of keys that will be stored on any single
-Btree page.
-<p>This value is used to determine which keys will be stored on overflow
-pages, i.e. if a key or data item is larger than the underlying database
-page size divided by the <b>bt_minkey</b> value, it will be stored on
-overflow pages instead of within the page itself. The <b>bt_minkey</b>
-value specified must be at least 2; if <b>bt_minkey</b> is not explicitly
-set, a value of 2 is used.
-<p>The Db::set_bt_minkey interface may only be used to configure Berkeley DB before
-the <a href="../api_cxx/db_open.html">Db::open</a> interface is called.
-<p>The Db::set_bt_minkey method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_cxx/db_open.html">Db::open</a> was called.
-</dl>
-<h3>Class</h3>
-<a href="../api_cxx/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_cxx/db_close.html">Db::close</a>,
-<a href="../api_cxx/db_cursor.html">Db::cursor</a>,
-<a href="../api_cxx/db_del.html">Db::del</a>,
-<a href="../api_cxx/db_err.html">Db::err</a>,
-<a href="../api_cxx/db_fd.html">Db::fd</a>,
-<a href="../api_cxx/db_get.html">Db::get</a>,
-<a href="../api_cxx/db_get_byteswapped.html">Db::get_byteswapped</a>,
-<a href="../api_cxx/db_get_type.html">Db::get_type</a>,
-<a href="../api_cxx/db_join.html">Db::join</a>,
-<a href="../api_cxx/db_key_range.html">Db::key_range</a>,
-<a href="../api_cxx/db_open.html">Db::open</a>,
-<a href="../api_cxx/db_put.html">Db::put</a>,
-<a href="../api_cxx/db_remove.html">Db::remove</a>,
-<a href="../api_cxx/db_set_bt_compare.html">Db::set_bt_compare</a>,
-<a href="../api_cxx/db_set_bt_minkey.html">Db::set_bt_minkey</a>,
-<a href="../api_cxx/db_set_bt_prefix.html">Db::set_bt_prefix</a>,
-<a href="../api_cxx/db_set_cachesize.html">Db::set_cachesize</a>,
-<a href="../api_cxx/db_set_dup_compare.html">Db::set_dup_compare</a>,
-<a href="../api_cxx/db_set_errcall.html">Db::set_errcall</a>,
-<a href="../api_cxx/db_set_errfile.html">Db::set_errfile</a>,
-<a href="../api_cxx/db_set_errpfx.html">Db::set_errpfx</a>,
-<a href="../api_cxx/db_set_flags.html">Db::set_flags</a>,
-<a href="../api_cxx/db_set_h_ffactor.html">Db::set_h_ffactor</a>,
-<a href="../api_cxx/db_set_h_hash.html">Db::set_h_hash</a>,
-<a href="../api_cxx/db_set_h_nelem.html">Db::set_h_nelem</a>,
-<a href="../api_cxx/db_set_lorder.html">Db::set_lorder</a>,
-<a href="../api_cxx/db_set_malloc.html">Db::set_malloc</a>,
-<a href="../api_cxx/db_set_pagesize.html">Db::set_pagesize</a>,
-<a href="../api_cxx/db_set_paniccall.html">Db::set_paniccall</a>,
-<a href="../api_cxx/db_set_q_extentsize.html">Db::set_q_extentsize</a>,
-<a href="../api_cxx/db_set_realloc.html">Db::set_realloc</a>,
-<a href="../api_cxx/db_set_re_delim.html">Db::set_re_delim</a>,
-<a href="../api_cxx/db_set_re_len.html">Db::set_re_len</a>,
-<a href="../api_cxx/db_set_re_pad.html">Db::set_re_pad</a>,
-<a href="../api_cxx/db_set_re_source.html">Db::set_re_source</a>,
-<a href="../api_cxx/db_stat.html">Db::stat</a>,
-<a href="../api_cxx/db_sync.html">Db::sync</a>,
-<a href="../api_cxx/db_upgrade.html">Db::upgrade</a>
-and
-<a href="../api_cxx/db_verify.html">Db::verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/db_set_bt_prefix.html b/bdb/docs/api_cxx/db_set_bt_prefix.html
deleted file mode 100644
index ecf9495459a..00000000000
--- a/bdb/docs/api_cxx/db_set_bt_prefix.html
+++ /dev/null
@@ -1,110 +0,0 @@
-<!--$Id: db_set_bt_prefix.so,v 10.25 2000/09/08 21:35:26 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db::set_bt_prefix</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db::set_bt_prefix</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-extern "C" {
- typedef size_t (*bt_prefix_fcn_type)(DB *, const DBT *, const DBT *);
-};
-int
-Db::set_bt_prefix(bt_prefix_fcn_type bt_prefix_fcn);
-</pre></h3>
-<h1>Description</h1>
-<p>Set the Btree prefix function. The prefix function must return the
-number of bytes of the second key argument that would be required by
-the Btree key comparison function to determine the second key argument's
-ordering relationship with respect to the first key argument. If the
-two keys are equal, the key length should be returned. The prefix
-function must correctly handle any key values used by the application
-(possibly including zero-length keys). The <b>data</b> and
-<b>size</b> fields of the <a href="../api_cxx/dbt_class.html">Dbt</a> are the only fields that may be
-used for the purposes of this determination.
-<p>The prefix function is used to determine the amount by which keys stored
-on the Btree internal pages can be safely truncated without losing their
-uniqueness. See the <a href="../ref/am_conf/bt_prefix.html">Btree
-prefix comparison</a> section of the Reference Guide for more details about
-how this works. The usefulness of this is data dependent, but in some
-data sets can produce significantly reduced tree sizes and search times.
-<p>If no prefix function or key comparison function is specified by the
-application, a default lexical comparison function is used as the prefix
-function. If no prefix function is specified and a key comparison
-function is specified, no prefix function is used. It is an error to
-specify a prefix function without also specifying a key comparison
-function.
-<p>The Db::set_bt_prefix interface may only be used to configure Berkeley DB before
-the <a href="../api_cxx/db_open.html">Db::open</a> interface is called.
-<p>The Db::set_bt_prefix method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_cxx/db_open.html">Db::open</a> was called.
-</dl>
-<h3>Class</h3>
-<a href="../api_cxx/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_cxx/db_close.html">Db::close</a>,
-<a href="../api_cxx/db_cursor.html">Db::cursor</a>,
-<a href="../api_cxx/db_del.html">Db::del</a>,
-<a href="../api_cxx/db_err.html">Db::err</a>,
-<a href="../api_cxx/db_fd.html">Db::fd</a>,
-<a href="../api_cxx/db_get.html">Db::get</a>,
-<a href="../api_cxx/db_get_byteswapped.html">Db::get_byteswapped</a>,
-<a href="../api_cxx/db_get_type.html">Db::get_type</a>,
-<a href="../api_cxx/db_join.html">Db::join</a>,
-<a href="../api_cxx/db_key_range.html">Db::key_range</a>,
-<a href="../api_cxx/db_open.html">Db::open</a>,
-<a href="../api_cxx/db_put.html">Db::put</a>,
-<a href="../api_cxx/db_remove.html">Db::remove</a>,
-<a href="../api_cxx/db_set_bt_compare.html">Db::set_bt_compare</a>,
-<a href="../api_cxx/db_set_bt_minkey.html">Db::set_bt_minkey</a>,
-<a href="../api_cxx/db_set_bt_prefix.html">Db::set_bt_prefix</a>,
-<a href="../api_cxx/db_set_cachesize.html">Db::set_cachesize</a>,
-<a href="../api_cxx/db_set_dup_compare.html">Db::set_dup_compare</a>,
-<a href="../api_cxx/db_set_errcall.html">Db::set_errcall</a>,
-<a href="../api_cxx/db_set_errfile.html">Db::set_errfile</a>,
-<a href="../api_cxx/db_set_errpfx.html">Db::set_errpfx</a>,
-<a href="../api_cxx/db_set_flags.html">Db::set_flags</a>,
-<a href="../api_cxx/db_set_h_ffactor.html">Db::set_h_ffactor</a>,
-<a href="../api_cxx/db_set_h_hash.html">Db::set_h_hash</a>,
-<a href="../api_cxx/db_set_h_nelem.html">Db::set_h_nelem</a>,
-<a href="../api_cxx/db_set_lorder.html">Db::set_lorder</a>,
-<a href="../api_cxx/db_set_malloc.html">Db::set_malloc</a>,
-<a href="../api_cxx/db_set_pagesize.html">Db::set_pagesize</a>,
-<a href="../api_cxx/db_set_paniccall.html">Db::set_paniccall</a>,
-<a href="../api_cxx/db_set_q_extentsize.html">Db::set_q_extentsize</a>,
-<a href="../api_cxx/db_set_realloc.html">Db::set_realloc</a>,
-<a href="../api_cxx/db_set_re_delim.html">Db::set_re_delim</a>,
-<a href="../api_cxx/db_set_re_len.html">Db::set_re_len</a>,
-<a href="../api_cxx/db_set_re_pad.html">Db::set_re_pad</a>,
-<a href="../api_cxx/db_set_re_source.html">Db::set_re_source</a>,
-<a href="../api_cxx/db_stat.html">Db::stat</a>,
-<a href="../api_cxx/db_sync.html">Db::sync</a>,
-<a href="../api_cxx/db_upgrade.html">Db::upgrade</a>
-and
-<a href="../api_cxx/db_verify.html">Db::verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/db_set_cachesize.html b/bdb/docs/api_cxx/db_set_cachesize.html
deleted file mode 100644
index cc8e020cc30..00000000000
--- a/bdb/docs/api_cxx/db_set_cachesize.html
+++ /dev/null
@@ -1,108 +0,0 @@
-<!--$Id: db_set_cachesize.so,v 10.17 2000/05/01 21:57:43 bostic Exp $-->
-<!--$Id: m4.cachesize,v 10.7 2000/02/11 18:54:45 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db::set_cachesize</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db::set_cachesize</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-Db::set_cachesize(u_int32_t gbytes, u_int32_t bytes, int ncache);
-</pre></h3>
-<h1>Description</h1>
-<p>Set the size of the database's shared memory buffer pool, i.e., the cache,
-to <b>gbytes</b> gigabytes plus <b>bytes</b>. The cache should be the
-size of the normal working data set of the application, with some small
-amount of additional memory for unusual situations. (Note, the working
-set is not the same as the number of simultaneously referenced pages, and
-should be quite a bit larger!)
-<p>The default cache size is 256KB, and may not be specified as less than
-20KB. Any cache size less than 500MB is automatically increased by 25%
-to account for buffer pool overhead, cache sizes larger than 500MB are
-used as specified. For information on tuning the Berkeley DB cache size, see
-<a href="../ref/am_conf/cachesize.html">Selecting a cache size</a>.
-<p>It is possible to specify caches to Berkeley DB that are large enough so that
-they cannot be allocated contiguously on some architectures, e.g., some
-releases of Solaris limit the amount of memory that may be allocated
-contiguously by a process. If <b>ncache</b> is 0 or 1, the cache will
-be allocated contiguously in memory. If it is greater than 1, the cache
-will be broken up into <b>ncache</b> equally sized separate pieces of
-memory.
-<p>As databases opened within Berkeley DB environments use the cache specified to
-the environment, it is an error to attempt to set a cache in a database
-created within an environment.
-<p>The Db::set_cachesize interface may only be used to configure Berkeley DB before
-the <a href="../api_cxx/db_open.html">Db::open</a> interface is called.
-<p>The Db::set_cachesize method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>The specified cache size was impossibly small.
-</dl>
-<h3>Class</h3>
-<a href="../api_cxx/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_cxx/db_close.html">Db::close</a>,
-<a href="../api_cxx/db_cursor.html">Db::cursor</a>,
-<a href="../api_cxx/db_del.html">Db::del</a>,
-<a href="../api_cxx/db_err.html">Db::err</a>,
-<a href="../api_cxx/db_fd.html">Db::fd</a>,
-<a href="../api_cxx/db_get.html">Db::get</a>,
-<a href="../api_cxx/db_get_byteswapped.html">Db::get_byteswapped</a>,
-<a href="../api_cxx/db_get_type.html">Db::get_type</a>,
-<a href="../api_cxx/db_join.html">Db::join</a>,
-<a href="../api_cxx/db_key_range.html">Db::key_range</a>,
-<a href="../api_cxx/db_open.html">Db::open</a>,
-<a href="../api_cxx/db_put.html">Db::put</a>,
-<a href="../api_cxx/db_remove.html">Db::remove</a>,
-<a href="../api_cxx/db_set_bt_compare.html">Db::set_bt_compare</a>,
-<a href="../api_cxx/db_set_bt_minkey.html">Db::set_bt_minkey</a>,
-<a href="../api_cxx/db_set_bt_prefix.html">Db::set_bt_prefix</a>,
-<a href="../api_cxx/db_set_cachesize.html">Db::set_cachesize</a>,
-<a href="../api_cxx/db_set_dup_compare.html">Db::set_dup_compare</a>,
-<a href="../api_cxx/db_set_errcall.html">Db::set_errcall</a>,
-<a href="../api_cxx/db_set_errfile.html">Db::set_errfile</a>,
-<a href="../api_cxx/db_set_errpfx.html">Db::set_errpfx</a>,
-<a href="../api_cxx/db_set_flags.html">Db::set_flags</a>,
-<a href="../api_cxx/db_set_h_ffactor.html">Db::set_h_ffactor</a>,
-<a href="../api_cxx/db_set_h_hash.html">Db::set_h_hash</a>,
-<a href="../api_cxx/db_set_h_nelem.html">Db::set_h_nelem</a>,
-<a href="../api_cxx/db_set_lorder.html">Db::set_lorder</a>,
-<a href="../api_cxx/db_set_malloc.html">Db::set_malloc</a>,
-<a href="../api_cxx/db_set_pagesize.html">Db::set_pagesize</a>,
-<a href="../api_cxx/db_set_paniccall.html">Db::set_paniccall</a>,
-<a href="../api_cxx/db_set_q_extentsize.html">Db::set_q_extentsize</a>,
-<a href="../api_cxx/db_set_realloc.html">Db::set_realloc</a>,
-<a href="../api_cxx/db_set_re_delim.html">Db::set_re_delim</a>,
-<a href="../api_cxx/db_set_re_len.html">Db::set_re_len</a>,
-<a href="../api_cxx/db_set_re_pad.html">Db::set_re_pad</a>,
-<a href="../api_cxx/db_set_re_source.html">Db::set_re_source</a>,
-<a href="../api_cxx/db_stat.html">Db::stat</a>,
-<a href="../api_cxx/db_sync.html">Db::sync</a>,
-<a href="../api_cxx/db_upgrade.html">Db::upgrade</a>
-and
-<a href="../api_cxx/db_verify.html">Db::verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/db_set_dup_compare.html b/bdb/docs/api_cxx/db_set_dup_compare.html
deleted file mode 100644
index 7cd09ec0cb1..00000000000
--- a/bdb/docs/api_cxx/db_set_dup_compare.html
+++ /dev/null
@@ -1,106 +0,0 @@
-<!--$Id: db_set_dup_compare.so,v 10.21 2000/10/26 15:20:40 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db::set_dup_compare</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db::set_dup_compare</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-extern "C" {
- typedef int (*dup_compare_fcn_type)(DB *, const DBT *, const DBT *);
-};
-int
-Db::set_dup_compare(dup_compare_fcn_type dup_compare_fcn);
-</pre></h3>
-<h1>Description</h1>
-<p>Set the duplicate data item comparison function. The comparison function
-is called when it is necessary to compare a data item specified by the
-application with a data item currently stored in the tree. The first
-argument to the comparison function is the <a href="../api_cxx/dbt_class.html">Dbt</a> representing the
-application's data item, the second is the current tree's data item.
-<p>The comparison function must return an integer value less than, equal
-to, or greater than zero if the first data item argument is considered
-to be respectively less than, equal to, or greater than the second data
-item argument. In addition, the comparison function must cause the data
-items in the set to be <i>well-ordered</i>. The comparison function
-must correctly handle any data item values used by the application
-(possibly including zero-length data items). The <b>data</b> and
-<b>size</b> fields of the <a href="../api_cxx/dbt_class.html">Dbt</a> are the only fields that may be
-used for the purposes of this comparison.
-<p>If no comparison function is specified, the data items are compared
-lexically, with shorter data items collating before longer data items.
-The same duplicate data item comparison method must be used each time
-a particular Btree is opened.
-<p>The Db::set_dup_compare interface may only be used to configure Berkeley DB before
-the <a href="../api_cxx/db_open.html">Db::open</a> interface is called.
-<p>The Db::set_dup_compare method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h3>Class</h3>
-<a href="../api_cxx/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_cxx/db_close.html">Db::close</a>,
-<a href="../api_cxx/db_cursor.html">Db::cursor</a>,
-<a href="../api_cxx/db_del.html">Db::del</a>,
-<a href="../api_cxx/db_err.html">Db::err</a>,
-<a href="../api_cxx/db_fd.html">Db::fd</a>,
-<a href="../api_cxx/db_get.html">Db::get</a>,
-<a href="../api_cxx/db_get_byteswapped.html">Db::get_byteswapped</a>,
-<a href="../api_cxx/db_get_type.html">Db::get_type</a>,
-<a href="../api_cxx/db_join.html">Db::join</a>,
-<a href="../api_cxx/db_key_range.html">Db::key_range</a>,
-<a href="../api_cxx/db_open.html">Db::open</a>,
-<a href="../api_cxx/db_put.html">Db::put</a>,
-<a href="../api_cxx/db_remove.html">Db::remove</a>,
-<a href="../api_cxx/db_set_bt_compare.html">Db::set_bt_compare</a>,
-<a href="../api_cxx/db_set_bt_minkey.html">Db::set_bt_minkey</a>,
-<a href="../api_cxx/db_set_bt_prefix.html">Db::set_bt_prefix</a>,
-<a href="../api_cxx/db_set_cachesize.html">Db::set_cachesize</a>,
-<a href="../api_cxx/db_set_dup_compare.html">Db::set_dup_compare</a>,
-<a href="../api_cxx/db_set_errcall.html">Db::set_errcall</a>,
-<a href="../api_cxx/db_set_errfile.html">Db::set_errfile</a>,
-<a href="../api_cxx/db_set_errpfx.html">Db::set_errpfx</a>,
-<a href="../api_cxx/db_set_flags.html">Db::set_flags</a>,
-<a href="../api_cxx/db_set_h_ffactor.html">Db::set_h_ffactor</a>,
-<a href="../api_cxx/db_set_h_hash.html">Db::set_h_hash</a>,
-<a href="../api_cxx/db_set_h_nelem.html">Db::set_h_nelem</a>,
-<a href="../api_cxx/db_set_lorder.html">Db::set_lorder</a>,
-<a href="../api_cxx/db_set_malloc.html">Db::set_malloc</a>,
-<a href="../api_cxx/db_set_pagesize.html">Db::set_pagesize</a>,
-<a href="../api_cxx/db_set_paniccall.html">Db::set_paniccall</a>,
-<a href="../api_cxx/db_set_q_extentsize.html">Db::set_q_extentsize</a>,
-<a href="../api_cxx/db_set_realloc.html">Db::set_realloc</a>,
-<a href="../api_cxx/db_set_re_delim.html">Db::set_re_delim</a>,
-<a href="../api_cxx/db_set_re_len.html">Db::set_re_len</a>,
-<a href="../api_cxx/db_set_re_pad.html">Db::set_re_pad</a>,
-<a href="../api_cxx/db_set_re_source.html">Db::set_re_source</a>,
-<a href="../api_cxx/db_stat.html">Db::stat</a>,
-<a href="../api_cxx/db_sync.html">Db::sync</a>,
-<a href="../api_cxx/db_upgrade.html">Db::upgrade</a>
-and
-<a href="../api_cxx/db_verify.html">Db::verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/db_set_errcall.html b/bdb/docs/api_cxx/db_set_errcall.html
deleted file mode 100644
index 6cc5310eb50..00000000000
--- a/bdb/docs/api_cxx/db_set_errcall.html
+++ /dev/null
@@ -1,79 +0,0 @@
-<!--$Id: db_set_errcall.so,v 10.7 1999/12/20 08:52:28 bostic Exp $-->
-<!--$Id: m4.errset,v 10.8 2000/02/19 20:57:57 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db::set_errcall</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db::set_errcall</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-void Db::set_errcall(
- void (*db_errcall_fcn)(const char *errpfx, char *msg));
-</pre></h3>
-<h1>Description</h1>
-When an error occurs in the Berkeley DB library, an exception is thrown or an
-error return value is returned by the method. In some cases,
-however, the <b>errno</b> value may be insufficient to completely
-describe the cause of the error, especially during initial application
-debugging.
-<p>The Db::set_errcall method is used to enhance the mechanism for reporting error
-messages to the application. In some cases, when an error occurs, Berkeley DB
-will call <b>db_errcall_fcn</b> with additional error information. The
-function must be defined with two arguments; the first will be the prefix
-string (as previously set by <a href="../api_cxx/db_set_errpfx.html">Db::set_errpfx</a> or
-<a href="../api_cxx/env_set_errpfx.html">DbEnv::set_errpfx</a>), the second will be the error message string.
-It is up to the <b>db_errcall_fcn</b> method to display the error
-message in an appropriate manner.
-<p>Alternatively, you can use the <a href="../api_cxx/env_set_error_stream.html">DbEnv::set_error_stream</a> method to display
-the additional information via an output stream, or the <a href="../api_cxx/db_set_errfile.html">Db::set_errfile</a>
-or <a href="../api_cxx/env_set_errfile.html">DbEnv::set_errfile</a> methods to display the additional information via a C
-library FILE *. You should not mix these approaches.
-<p>This error logging enhancement does not slow performance or significantly
-increase application size, and may be run during normal operation as well
-as during application debugging.
-<p>For <a href="../api_cxx/db_class.html">Db</a> handles opened inside of Berkeley DB environments, calling the
-Db::set_errcall method affects the entire environment and is equivalent to calling
-the <a href="../api_cxx/env_set_errcall.html">DbEnv::set_errcall</a> method.
-<p>The Db::set_errcall interface may be used to configure Berkeley DB at any time
-during the life of the application.
-<h3>Class</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_close.html">DbEnv::close</a>,
-<a href="../api_cxx/env_open.html">DbEnv::open</a>,
-<a href="../api_cxx/env_remove.html">DbEnv::remove</a>,
-<a href="../api_cxx/db_err.html">DbEnv::err</a>,
-<a href="../api_cxx/env_strerror.html">DbEnv::strerror</a>,
-<a href="../api_cxx/env_version.html">DbEnv::version</a>,
-<a href="../api_cxx/env_set_cachesize.html">DbEnv::set_cachesize</a>,
-<a href="../api_cxx/env_set_errcall.html">DbEnv::set_errcall</a>,
-<a href="../api_cxx/env_set_errfile.html">DbEnv::set_errfile</a>,
-<a href="../api_cxx/env_set_error_stream.html">DbEnv::set_error_stream</a>,
-<a href="../api_cxx/env_set_errpfx.html">DbEnv::set_errpfx</a>,
-<a href="../api_cxx/env_set_flags.html">DbEnv::set_flags</a>,
-<a href="../api_cxx/env_set_mutexlocks.html">DbEnv::set_mutexlocks</a>,
-<a href="../api_cxx/env_set_paniccall.html">DbEnv::set_paniccall</a>,
-and
-<a href="../api_cxx/env_set_verbose.html">DbEnv::set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/db_set_errfile.html b/bdb/docs/api_cxx/db_set_errfile.html
deleted file mode 100644
index 50c6bebd1d8..00000000000
--- a/bdb/docs/api_cxx/db_set_errfile.html
+++ /dev/null
@@ -1,80 +0,0 @@
-<!--$Id: db_set_errfile.so,v 10.7 1999/12/20 08:52:28 bostic Exp $-->
-<!--$Id: m4.errset,v 10.8 2000/02/19 20:57:57 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db::set_errfile</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db::set_errfile</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-void Db::set_errfile(FILE *errfile);
-</pre></h3>
-<h1>Description</h1>
-When an error occurs in the Berkeley DB library, an exception is thrown or an
-error return value is returned by the method. In some cases,
-however, the <b>errno</b> value may be insufficient to completely
-describe the cause of the error, especially during initial application
-debugging.
-<p>The Db::set_errfile method is used to enhance the mechanism for reporting error
-messages to the application by setting a C library FILE * to be used for
-displaying additional Berkeley DB error messages. In some cases, when an error
-occurs, Berkeley DB will output an additional error message to the specified
-file reference.
-<p>Alternatively, you can use the <a href="../api_cxx/env_set_error_stream.html">DbEnv::set_error_stream</a> method to display
-the additional information via an output stream, or the
-<a href="../api_cxx/env_set_errcall.html">DbEnv::set_errcall</a> method to capture the additional error information in
-a way that does not use either output streams or C library FILE *'s. You
-should not mix these approaches.
-<p>The error message will consist of the prefix string and a colon
-("<b>:</b>") (if a prefix string was previously specified using
-<a href="../api_cxx/db_set_errpfx.html">Db::set_errpfx</a> or <a href="../api_cxx/env_set_errpfx.html">DbEnv::set_errpfx</a>), an error string, and
-a trailing &lt;newline&gt; character.
-<p>This error logging enhancement does not slow performance or significantly
-increase application size, and may be run during normal operation as well
-as during application debugging.
-<p>For <a href="../api_cxx/db_class.html">Db</a> handles opened inside of Berkeley DB environments, calling the
-Db::set_errfile method affects the entire environment and is equivalent to calling
-the <a href="../api_cxx/env_set_errfile.html">DbEnv::set_errfile</a> method.
-<p>The Db::set_errfile interface may be used to configure Berkeley DB at any time
-during the life of the application.
-<h3>Class</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_close.html">DbEnv::close</a>,
-<a href="../api_cxx/env_open.html">DbEnv::open</a>,
-<a href="../api_cxx/env_remove.html">DbEnv::remove</a>,
-<a href="../api_cxx/db_err.html">DbEnv::err</a>,
-<a href="../api_cxx/env_strerror.html">DbEnv::strerror</a>,
-<a href="../api_cxx/env_version.html">DbEnv::version</a>,
-<a href="../api_cxx/env_set_cachesize.html">DbEnv::set_cachesize</a>,
-<a href="../api_cxx/env_set_errcall.html">DbEnv::set_errcall</a>,
-<a href="../api_cxx/env_set_errfile.html">DbEnv::set_errfile</a>,
-<a href="../api_cxx/env_set_error_stream.html">DbEnv::set_error_stream</a>,
-<a href="../api_cxx/env_set_errpfx.html">DbEnv::set_errpfx</a>,
-<a href="../api_cxx/env_set_flags.html">DbEnv::set_flags</a>,
-<a href="../api_cxx/env_set_mutexlocks.html">DbEnv::set_mutexlocks</a>,
-<a href="../api_cxx/env_set_paniccall.html">DbEnv::set_paniccall</a>,
-and
-<a href="../api_cxx/env_set_verbose.html">DbEnv::set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/db_set_errpfx.html b/bdb/docs/api_cxx/db_set_errpfx.html
deleted file mode 100644
index 0baa3ba674c..00000000000
--- a/bdb/docs/api_cxx/db_set_errpfx.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<!--$Id: db_set_errpfx.so,v 10.6 1999/12/20 08:52:28 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db::set_errpfx</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db::set_errpfx</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-void Db::set_errpfx(const char *errpfx);
-</pre></h3>
-<h1>Description</h1>
-<p>Set the prefix string that appears before error messages issued by Berkeley DB.
-<p>The Db::set_errpfx method does not copy the memory referenced by the
-<b>errpfx</b> argument, rather, it maintains a reference to it. This
-allows applications to modify the error message prefix at any time,
-without repeatedly calling Db::set_errpfx, but means that the
-memory must be maintained until the handle is closed.
-<p>For <a href="../api_cxx/db_class.html">Db</a> handles opened inside of Berkeley DB environments, calling the
-Db::set_errpfx method affects the entire environment and is equivalent to calling
-the <a href="../api_cxx/env_set_errpfx.html">DbEnv::set_errpfx</a> method.
-<p>The Db::set_errpfx interface may be used to configure Berkeley DB at any time
-during the life of the application.
-<h3>Class</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_close.html">DbEnv::close</a>,
-<a href="../api_cxx/env_open.html">DbEnv::open</a>,
-<a href="../api_cxx/env_remove.html">DbEnv::remove</a>,
-<a href="../api_cxx/db_err.html">DbEnv::err</a>,
-<a href="../api_cxx/env_strerror.html">DbEnv::strerror</a>,
-<a href="../api_cxx/env_version.html">DbEnv::version</a>,
-<a href="../api_cxx/env_set_cachesize.html">DbEnv::set_cachesize</a>,
-<a href="../api_cxx/env_set_errcall.html">DbEnv::set_errcall</a>,
-<a href="../api_cxx/env_set_errfile.html">DbEnv::set_errfile</a>,
-<a href="../api_cxx/env_set_error_stream.html">DbEnv::set_error_stream</a>,
-<a href="../api_cxx/env_set_errpfx.html">DbEnv::set_errpfx</a>,
-<a href="../api_cxx/env_set_flags.html">DbEnv::set_flags</a>,
-<a href="../api_cxx/env_set_mutexlocks.html">DbEnv::set_mutexlocks</a>,
-<a href="../api_cxx/env_set_paniccall.html">DbEnv::set_paniccall</a>,
-and
-<a href="../api_cxx/env_set_verbose.html">DbEnv::set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/db_set_feedback.html b/bdb/docs/api_cxx/db_set_feedback.html
deleted file mode 100644
index 97a5a85b717..00000000000
--- a/bdb/docs/api_cxx/db_set_feedback.html
+++ /dev/null
@@ -1,97 +0,0 @@
-<!--$Id: db_set_feedback.so,v 10.16 2000/07/09 19:11:54 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db::set_feedback</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db::set_feedback</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-Db::set_feedback(
- void (*db_feedback_fcn)(DB *dbp, int opcode, int pct));
-</pre></h3>
-<h1>Description</h1>
-<p>Some operations performed by the Berkeley DB library can take non-trivial
-amounts of time. The Db::set_feedback method can be used by
-applications to monitor progress within these operations.
-<p>When an operation is likely to take a long time, Berkeley DB will call the
-specified callback method. This method must be declared with
-three arguments: the first will be a reference to the enclosing database
-handle, the second a flag value, and the third the percent of the
-operation that has been completed, specified as an integer value between
-0 and 100. It is up to the callback method to display this
-information in an appropriate manner.
-<p>The <b>opcode</b> argument may take on any of the following values:
-<p><dl compact>
-<p><dt><a name="DB_UPGRADE">DB_UPGRADE</a><dd>The underlying database is being upgraded.
-<p><dt><a name="DB_VERIFY">DB_VERIFY</a><dd>The underlying database is being verified.
-</dl>
-<p>The Db::set_feedback interface may be used to configure Berkeley DB at any time
-during the life of the application.
-<p>The Db::set_feedback method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h3>Class</h3>
-<a href="../api_cxx/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_cxx/db_close.html">Db::close</a>,
-<a href="../api_cxx/db_cursor.html">Db::cursor</a>,
-<a href="../api_cxx/db_del.html">Db::del</a>,
-<a href="../api_cxx/db_err.html">Db::err</a>,
-<a href="../api_cxx/db_fd.html">Db::fd</a>,
-<a href="../api_cxx/db_get.html">Db::get</a>,
-<a href="../api_cxx/db_get_byteswapped.html">Db::get_byteswapped</a>,
-<a href="../api_cxx/db_get_type.html">Db::get_type</a>,
-<a href="../api_cxx/db_join.html">Db::join</a>,
-<a href="../api_cxx/db_key_range.html">Db::key_range</a>,
-<a href="../api_cxx/db_open.html">Db::open</a>,
-<a href="../api_cxx/db_put.html">Db::put</a>,
-<a href="../api_cxx/db_remove.html">Db::remove</a>,
-<a href="../api_cxx/db_set_bt_compare.html">Db::set_bt_compare</a>,
-<a href="../api_cxx/db_set_bt_minkey.html">Db::set_bt_minkey</a>,
-<a href="../api_cxx/db_set_bt_prefix.html">Db::set_bt_prefix</a>,
-<a href="../api_cxx/db_set_cachesize.html">Db::set_cachesize</a>,
-<a href="../api_cxx/db_set_dup_compare.html">Db::set_dup_compare</a>,
-<a href="../api_cxx/db_set_errcall.html">Db::set_errcall</a>,
-<a href="../api_cxx/db_set_errfile.html">Db::set_errfile</a>,
-<a href="../api_cxx/db_set_errpfx.html">Db::set_errpfx</a>,
-<a href="../api_cxx/db_set_flags.html">Db::set_flags</a>,
-<a href="../api_cxx/db_set_h_ffactor.html">Db::set_h_ffactor</a>,
-<a href="../api_cxx/db_set_h_hash.html">Db::set_h_hash</a>,
-<a href="../api_cxx/db_set_h_nelem.html">Db::set_h_nelem</a>,
-<a href="../api_cxx/db_set_lorder.html">Db::set_lorder</a>,
-<a href="../api_cxx/db_set_malloc.html">Db::set_malloc</a>,
-<a href="../api_cxx/db_set_pagesize.html">Db::set_pagesize</a>,
-<a href="../api_cxx/db_set_paniccall.html">Db::set_paniccall</a>,
-<a href="../api_cxx/db_set_q_extentsize.html">Db::set_q_extentsize</a>,
-<a href="../api_cxx/db_set_realloc.html">Db::set_realloc</a>,
-<a href="../api_cxx/db_set_re_delim.html">Db::set_re_delim</a>,
-<a href="../api_cxx/db_set_re_len.html">Db::set_re_len</a>,
-<a href="../api_cxx/db_set_re_pad.html">Db::set_re_pad</a>,
-<a href="../api_cxx/db_set_re_source.html">Db::set_re_source</a>,
-<a href="../api_cxx/db_stat.html">Db::stat</a>,
-<a href="../api_cxx/db_sync.html">Db::sync</a>,
-<a href="../api_cxx/db_upgrade.html">Db::upgrade</a>
-and
-<a href="../api_cxx/db_verify.html">Db::verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/db_set_flags.html b/bdb/docs/api_cxx/db_set_flags.html
deleted file mode 100644
index 059810357ec..00000000000
--- a/bdb/docs/api_cxx/db_set_flags.html
+++ /dev/null
@@ -1,183 +0,0 @@
-<!--$Id: db_set_flags.so,v 10.26 2000/03/17 01:53:58 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db::set_flags</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db::set_flags</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-Db::set_flags(u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>Calling Db::set_flags is additive, there is no way to clear flags.
-<p>The <b>flags</b> value must be set to 0 or by bitwise inclusively <b>OR</b>'ing together one or more
-of the following values.
-<h3>Btree</h3>
-<p>The following flags may be specified for the Btree access method:
-<p><dl compact>
-<p><dt><a name="DB_DUP">DB_DUP</a><dd>Permit duplicate data items in the tree, i.e. insertion when the key of
-the key/data pair being inserted already exists in the tree will be
-successful. The ordering of duplicates in the tree is determined by the
-order of insertion, unless the ordering is otherwise specified by use of
-a cursor operation. It is an error to specify both DB_DUP and
-DB_RECNUM.
-<p><dt><a name="DB_DUPSORT">DB_DUPSORT</a><dd>Permit duplicate data items in the tree, i.e. insertion when the key of
-the key/data pair being inserted already exists in the tree will be
-successful. The ordering of duplicates in the tree is determined by the
-duplicate comparison function.
-If the application does not specify a comparison function using the
-<a href="../api_cxx/db_set_dup_compare.html">Db::set_dup_compare</a> method, a default, lexical comparison will be
-used.
-It is an error to specify both DB_DUPSORT and DB_RECNUM.
-<p><dt><a name="DB_RECNUM">DB_RECNUM</a><dd>Support retrieval from the Btree using record numbers. For more
-information, see the DB_GET_RECNO flag to the <a href="../api_cxx/db_get.html">Db::get</a> and
-<a href="../api_cxx/dbc_get.html">Dbc::get</a> methods.
-<p>Logical record numbers in Btree databases are mutable in the face of
-record insertion or deletion. See the DB_RENUMBER flag in the Recno
-access method information for further discussion.
-<p>Maintaining record counts within a Btree introduces a serious point of
-contention, namely the page locations where the record counts are stored.
-In addition, the entire tree must be locked during both insertions and
-deletions, effectively single-threading the tree for those operations.
-Specifying DB_RECNUM can result in serious performance degradation for
-some applications and data sets.
-<p>It is an error to specify both DB_DUP and DB_RECNUM.
-<p><dt><a name="DB_REVSPLITOFF">DB_REVSPLITOFF</a><dd>Turn off reverse splitting in the Btree. As pages are emptied in a
-database, the Berkeley DB Btree implementation attempts to coalesce empty pages
-into higher-level pages in order to keep the tree as small as possible
-and minimize tree search time. This can hurt performance in applications
-with cyclical data demands, that is, applications where the database grows
-and shrinks repeatedly. For example, because Berkeley DB does page-level
-locking, the maximum level of concurrency in a database of 2 pages is far
-smaller than that in a database of 100 pages, and so a database that has
-shrunk to a minimal size can cause severe deadlocking when a new cycle of
-data insertion begins.
-</dl>
-<h3>Hash</h3>
-<p>The following flags may be specified for the Hash access method:
-<p><dl compact>
-<p><dt><a name="DB_DUP">DB_DUP</a><dd>Permit duplicate data items in the tree, i.e. insertion when the key of
-the key/data pair being inserted already exists in the tree will be
-successful. The ordering of duplicates in the tree is determined by the
-order of insertion, unless the ordering is otherwise specified by use of
-a cursor operation. It is an error to specify both DB_DUP and
-DB_RECNUM.
-<p><dt><a name="DB_DUPSORT">DB_DUPSORT</a><dd>Permit duplicate data items in the tree, i.e. insertion when the key of
-the key/data pair being inserted already exists in the tree will be
-successful. The ordering of duplicates in the tree is determined by the
-duplicate comparison function.
-If the application does not specify a comparison function using the
-<a href="../api_cxx/db_set_dup_compare.html">Db::set_dup_compare</a> method, a default, lexical comparison will be
-used.
-It is an error to specify both DB_DUPSORT and DB_RECNUM.
-</dl>
-<h3>Queue</h3>
-<p>There are no additional flags that may be specified for the Queue access
-method.
-<h3>Recno</h3>
-<p>The following flags may be specified for the Recno access method:
-<p><dl compact>
-<p><dt><a name="DB_RENUMBER">DB_RENUMBER</a><dd>Specifying the DB_RENUMBER flag causes the logical record numbers to be
-mutable, and change as records are added to and deleted from the database.
-For example, the deletion of record number 4 causes records numbered 5
-and greater to be renumbered downward by 1. If a cursor was positioned
-to record number 4 before the deletion, it will reference the new record
-number 4, if any such record exists, after the deletion. If a cursor was
-positioned after record number 4 before the deletion, it will be shifted
-downward 1 logical record, continuing to reference the same record as it
-did before.
-<p>Using the <a href="../api_cxx/db_put.html">Db::put</a> or <a href="../api_cxx/dbc_put.html">Dbc::put</a> interfaces to create new
-records will cause the creation of multiple records if the record number
-is more than one greater than the largest record currently in the
-database. For example, creating record 28, when record 25 was previously
-the last record in the database, will create records 26 and 27 as well as
-28. Attempts to retrieve records that were created in this manner will
-result in an error return of <a href="../ref/program/errorret.html#DB_KEYEMPTY">DB_KEYEMPTY</a>.
-<p>If a created record is not at the end of the database, all records
-following the new record will be automatically renumbered upward by 1.
-For example, the creation of a new record numbered 8 causes records
-numbered 8 and greater to be renumbered upward by 1. If a cursor was
-positioned to record number 8 or greater before the insertion, it will be
-shifted upward 1 logical record, continuing to reference the same record
-as it did before.
-<p>For these reasons, concurrent access to a Recno database with the
-DB_RENUMBER flag specified may be largely meaningless, although
-it is supported.
-<p><dt><a name="DB_SNAPSHOT">DB_SNAPSHOT</a><dd>This flag specifies that any specified <b>re_source</b> file be read in
-its entirety when <a href="../api_cxx/db_open.html">Db::open</a> is called. If this flag is not
-specified, the <b>re_source</b> file may be read lazily.
-</dl>
-<p>The Db::set_flags interface may only be used to configure Berkeley DB before
-the <a href="../api_cxx/db_open.html">Db::open</a> interface is called.
-<p>The Db::set_flags method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h3>Class</h3>
-<a href="../api_cxx/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_cxx/db_close.html">Db::close</a>,
-<a href="../api_cxx/db_cursor.html">Db::cursor</a>,
-<a href="../api_cxx/db_del.html">Db::del</a>,
-<a href="../api_cxx/db_err.html">Db::err</a>,
-<a href="../api_cxx/db_fd.html">Db::fd</a>,
-<a href="../api_cxx/db_get.html">Db::get</a>,
-<a href="../api_cxx/db_get_byteswapped.html">Db::get_byteswapped</a>,
-<a href="../api_cxx/db_get_type.html">Db::get_type</a>,
-<a href="../api_cxx/db_join.html">Db::join</a>,
-<a href="../api_cxx/db_key_range.html">Db::key_range</a>,
-<a href="../api_cxx/db_open.html">Db::open</a>,
-<a href="../api_cxx/db_put.html">Db::put</a>,
-<a href="../api_cxx/db_remove.html">Db::remove</a>,
-<a href="../api_cxx/db_set_bt_compare.html">Db::set_bt_compare</a>,
-<a href="../api_cxx/db_set_bt_minkey.html">Db::set_bt_minkey</a>,
-<a href="../api_cxx/db_set_bt_prefix.html">Db::set_bt_prefix</a>,
-<a href="../api_cxx/db_set_cachesize.html">Db::set_cachesize</a>,
-<a href="../api_cxx/db_set_dup_compare.html">Db::set_dup_compare</a>,
-<a href="../api_cxx/db_set_errcall.html">Db::set_errcall</a>,
-<a href="../api_cxx/db_set_errfile.html">Db::set_errfile</a>,
-<a href="../api_cxx/db_set_errpfx.html">Db::set_errpfx</a>,
-<a href="../api_cxx/db_set_flags.html">Db::set_flags</a>,
-<a href="../api_cxx/db_set_h_ffactor.html">Db::set_h_ffactor</a>,
-<a href="../api_cxx/db_set_h_hash.html">Db::set_h_hash</a>,
-<a href="../api_cxx/db_set_h_nelem.html">Db::set_h_nelem</a>,
-<a href="../api_cxx/db_set_lorder.html">Db::set_lorder</a>,
-<a href="../api_cxx/db_set_malloc.html">Db::set_malloc</a>,
-<a href="../api_cxx/db_set_pagesize.html">Db::set_pagesize</a>,
-<a href="../api_cxx/db_set_paniccall.html">Db::set_paniccall</a>,
-<a href="../api_cxx/db_set_q_extentsize.html">Db::set_q_extentsize</a>,
-<a href="../api_cxx/db_set_realloc.html">Db::set_realloc</a>,
-<a href="../api_cxx/db_set_re_delim.html">Db::set_re_delim</a>,
-<a href="../api_cxx/db_set_re_len.html">Db::set_re_len</a>,
-<a href="../api_cxx/db_set_re_pad.html">Db::set_re_pad</a>,
-<a href="../api_cxx/db_set_re_source.html">Db::set_re_source</a>,
-<a href="../api_cxx/db_stat.html">Db::stat</a>,
-<a href="../api_cxx/db_sync.html">Db::sync</a>,
-<a href="../api_cxx/db_upgrade.html">Db::upgrade</a>
-and
-<a href="../api_cxx/db_verify.html">Db::verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/db_set_h_ffactor.html b/bdb/docs/api_cxx/db_set_h_ffactor.html
deleted file mode 100644
index fa7d4209e8e..00000000000
--- a/bdb/docs/api_cxx/db_set_h_ffactor.html
+++ /dev/null
@@ -1,95 +0,0 @@
-<!--$Id: db_set_h_ffactor.so,v 10.15 2000/05/01 21:57:43 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db::set_h_ffactor</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db::set_h_ffactor</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-Db::set_h_ffactor(u_int32_t h_ffactor);
-</pre></h3>
-<h1>Description</h1>
-<p>Set the desired density within the hash table.
-<p>The density is an approximation of the number of keys allowed to
-accumulate in any one bucket, determining when the hash table grows or
-shrinks. If you know the average sizes of the keys and data in your
-dataset, setting the fill factor can enhance performance. A reasonable
-rule computing fill factor is to set it to:
-<p><blockquote><pre>(pagesize - 32) / (average_key_size + average_data_size + 8)</pre></blockquote>
-<p>If no value is specified, the fill factor will be selected dynamically as
-pages are filled.
-<p>The Db::set_h_ffactor interface may only be used to configure Berkeley DB before
-the <a href="../api_cxx/db_open.html">Db::open</a> interface is called.
-<p>The Db::set_h_ffactor method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_cxx/db_open.html">Db::open</a> was called.
-</dl>
-<h3>Class</h3>
-<a href="../api_cxx/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_cxx/db_close.html">Db::close</a>,
-<a href="../api_cxx/db_cursor.html">Db::cursor</a>,
-<a href="../api_cxx/db_del.html">Db::del</a>,
-<a href="../api_cxx/db_err.html">Db::err</a>,
-<a href="../api_cxx/db_fd.html">Db::fd</a>,
-<a href="../api_cxx/db_get.html">Db::get</a>,
-<a href="../api_cxx/db_get_byteswapped.html">Db::get_byteswapped</a>,
-<a href="../api_cxx/db_get_type.html">Db::get_type</a>,
-<a href="../api_cxx/db_join.html">Db::join</a>,
-<a href="../api_cxx/db_key_range.html">Db::key_range</a>,
-<a href="../api_cxx/db_open.html">Db::open</a>,
-<a href="../api_cxx/db_put.html">Db::put</a>,
-<a href="../api_cxx/db_remove.html">Db::remove</a>,
-<a href="../api_cxx/db_set_bt_compare.html">Db::set_bt_compare</a>,
-<a href="../api_cxx/db_set_bt_minkey.html">Db::set_bt_minkey</a>,
-<a href="../api_cxx/db_set_bt_prefix.html">Db::set_bt_prefix</a>,
-<a href="../api_cxx/db_set_cachesize.html">Db::set_cachesize</a>,
-<a href="../api_cxx/db_set_dup_compare.html">Db::set_dup_compare</a>,
-<a href="../api_cxx/db_set_errcall.html">Db::set_errcall</a>,
-<a href="../api_cxx/db_set_errfile.html">Db::set_errfile</a>,
-<a href="../api_cxx/db_set_errpfx.html">Db::set_errpfx</a>,
-<a href="../api_cxx/db_set_flags.html">Db::set_flags</a>,
-<a href="../api_cxx/db_set_h_ffactor.html">Db::set_h_ffactor</a>,
-<a href="../api_cxx/db_set_h_hash.html">Db::set_h_hash</a>,
-<a href="../api_cxx/db_set_h_nelem.html">Db::set_h_nelem</a>,
-<a href="../api_cxx/db_set_lorder.html">Db::set_lorder</a>,
-<a href="../api_cxx/db_set_malloc.html">Db::set_malloc</a>,
-<a href="../api_cxx/db_set_pagesize.html">Db::set_pagesize</a>,
-<a href="../api_cxx/db_set_paniccall.html">Db::set_paniccall</a>,
-<a href="../api_cxx/db_set_q_extentsize.html">Db::set_q_extentsize</a>,
-<a href="../api_cxx/db_set_realloc.html">Db::set_realloc</a>,
-<a href="../api_cxx/db_set_re_delim.html">Db::set_re_delim</a>,
-<a href="../api_cxx/db_set_re_len.html">Db::set_re_len</a>,
-<a href="../api_cxx/db_set_re_pad.html">Db::set_re_pad</a>,
-<a href="../api_cxx/db_set_re_source.html">Db::set_re_source</a>,
-<a href="../api_cxx/db_stat.html">Db::stat</a>,
-<a href="../api_cxx/db_sync.html">Db::sync</a>,
-<a href="../api_cxx/db_upgrade.html">Db::upgrade</a>
-and
-<a href="../api_cxx/db_verify.html">Db::verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/db_set_h_hash.html b/bdb/docs/api_cxx/db_set_h_hash.html
deleted file mode 100644
index 71808b081c8..00000000000
--- a/bdb/docs/api_cxx/db_set_h_hash.html
+++ /dev/null
@@ -1,102 +0,0 @@
-<!--$Id: db_set_h_hash.so,v 10.18 2000/07/04 18:28:27 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db::set_h_hash</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db::set_h_hash</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-extern "C" {
- typedef u_int32_t (*h_hash_fcn_type)
- (DB *, const void *bytes, u_int32_t length);
-};
-int
-Db::set_h_hash(h_hash_fcn_type h_hash_fcn);
-</pre></h3>
-<h1>Description</h1>
-<p>Set a user defined hash method; if no hash method is specified, a default
-hash method is used. Since no hash method performs equally well on all
-possible data, the user may find that the built-in hash method performs
-poorly with a particular data set. User specified hash functions must
-take a pointer to a byte string and a length as arguments and return a
-value of type
-<b>u_int32_t</b>.
-The hash function must handle any key values used by the application
-(possibly including zero-length keys).
-<p>If a hash method is specified, <a href="../api_cxx/db_open.html">Db::open</a> will attempt to determine
-if the hash method specified is the same as the one with which the database
-was created, and will fail if it detects that it is not.
-<p>The Db::set_h_hash interface may only be used to configure Berkeley DB before
-the <a href="../api_cxx/db_open.html">Db::open</a> interface is called.
-<p>The Db::set_h_hash method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_cxx/db_open.html">Db::open</a> was called.
-</dl>
-<h3>Class</h3>
-<a href="../api_cxx/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_cxx/db_close.html">Db::close</a>,
-<a href="../api_cxx/db_cursor.html">Db::cursor</a>,
-<a href="../api_cxx/db_del.html">Db::del</a>,
-<a href="../api_cxx/db_err.html">Db::err</a>,
-<a href="../api_cxx/db_fd.html">Db::fd</a>,
-<a href="../api_cxx/db_get.html">Db::get</a>,
-<a href="../api_cxx/db_get_byteswapped.html">Db::get_byteswapped</a>,
-<a href="../api_cxx/db_get_type.html">Db::get_type</a>,
-<a href="../api_cxx/db_join.html">Db::join</a>,
-<a href="../api_cxx/db_key_range.html">Db::key_range</a>,
-<a href="../api_cxx/db_open.html">Db::open</a>,
-<a href="../api_cxx/db_put.html">Db::put</a>,
-<a href="../api_cxx/db_remove.html">Db::remove</a>,
-<a href="../api_cxx/db_set_bt_compare.html">Db::set_bt_compare</a>,
-<a href="../api_cxx/db_set_bt_minkey.html">Db::set_bt_minkey</a>,
-<a href="../api_cxx/db_set_bt_prefix.html">Db::set_bt_prefix</a>,
-<a href="../api_cxx/db_set_cachesize.html">Db::set_cachesize</a>,
-<a href="../api_cxx/db_set_dup_compare.html">Db::set_dup_compare</a>,
-<a href="../api_cxx/db_set_errcall.html">Db::set_errcall</a>,
-<a href="../api_cxx/db_set_errfile.html">Db::set_errfile</a>,
-<a href="../api_cxx/db_set_errpfx.html">Db::set_errpfx</a>,
-<a href="../api_cxx/db_set_flags.html">Db::set_flags</a>,
-<a href="../api_cxx/db_set_h_ffactor.html">Db::set_h_ffactor</a>,
-<a href="../api_cxx/db_set_h_hash.html">Db::set_h_hash</a>,
-<a href="../api_cxx/db_set_h_nelem.html">Db::set_h_nelem</a>,
-<a href="../api_cxx/db_set_lorder.html">Db::set_lorder</a>,
-<a href="../api_cxx/db_set_malloc.html">Db::set_malloc</a>,
-<a href="../api_cxx/db_set_pagesize.html">Db::set_pagesize</a>,
-<a href="../api_cxx/db_set_paniccall.html">Db::set_paniccall</a>,
-<a href="../api_cxx/db_set_q_extentsize.html">Db::set_q_extentsize</a>,
-<a href="../api_cxx/db_set_realloc.html">Db::set_realloc</a>,
-<a href="../api_cxx/db_set_re_delim.html">Db::set_re_delim</a>,
-<a href="../api_cxx/db_set_re_len.html">Db::set_re_len</a>,
-<a href="../api_cxx/db_set_re_pad.html">Db::set_re_pad</a>,
-<a href="../api_cxx/db_set_re_source.html">Db::set_re_source</a>,
-<a href="../api_cxx/db_stat.html">Db::stat</a>,
-<a href="../api_cxx/db_sync.html">Db::sync</a>,
-<a href="../api_cxx/db_upgrade.html">Db::upgrade</a>
-and
-<a href="../api_cxx/db_verify.html">Db::verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/db_set_h_nelem.html b/bdb/docs/api_cxx/db_set_h_nelem.html
deleted file mode 100644
index 55698d45737..00000000000
--- a/bdb/docs/api_cxx/db_set_h_nelem.html
+++ /dev/null
@@ -1,90 +0,0 @@
-<!--$Id: db_set_h_nelem.so,v 10.15 2000/05/01 21:57:43 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db::set_h_nelem</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db::set_h_nelem</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-Db::set_h_nelem(u_int32_t h_nelem);
-</pre></h3>
-<h1>Description</h1>
-<p>Set an estimate of the final size of the hash table.
-<p>If not set or set too low, hash tables will still expand gracefully
-as keys are entered, although a slight performance degradation may be
-noticed.
-<p>The Db::set_h_nelem interface may only be used to configure Berkeley DB before
-the <a href="../api_cxx/db_open.html">Db::open</a> interface is called.
-<p>The Db::set_h_nelem method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_cxx/db_open.html">Db::open</a> was called.
-</dl>
-<h3>Class</h3>
-<a href="../api_cxx/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_cxx/db_close.html">Db::close</a>,
-<a href="../api_cxx/db_cursor.html">Db::cursor</a>,
-<a href="../api_cxx/db_del.html">Db::del</a>,
-<a href="../api_cxx/db_err.html">Db::err</a>,
-<a href="../api_cxx/db_fd.html">Db::fd</a>,
-<a href="../api_cxx/db_get.html">Db::get</a>,
-<a href="../api_cxx/db_get_byteswapped.html">Db::get_byteswapped</a>,
-<a href="../api_cxx/db_get_type.html">Db::get_type</a>,
-<a href="../api_cxx/db_join.html">Db::join</a>,
-<a href="../api_cxx/db_key_range.html">Db::key_range</a>,
-<a href="../api_cxx/db_open.html">Db::open</a>,
-<a href="../api_cxx/db_put.html">Db::put</a>,
-<a href="../api_cxx/db_remove.html">Db::remove</a>,
-<a href="../api_cxx/db_set_bt_compare.html">Db::set_bt_compare</a>,
-<a href="../api_cxx/db_set_bt_minkey.html">Db::set_bt_minkey</a>,
-<a href="../api_cxx/db_set_bt_prefix.html">Db::set_bt_prefix</a>,
-<a href="../api_cxx/db_set_cachesize.html">Db::set_cachesize</a>,
-<a href="../api_cxx/db_set_dup_compare.html">Db::set_dup_compare</a>,
-<a href="../api_cxx/db_set_errcall.html">Db::set_errcall</a>,
-<a href="../api_cxx/db_set_errfile.html">Db::set_errfile</a>,
-<a href="../api_cxx/db_set_errpfx.html">Db::set_errpfx</a>,
-<a href="../api_cxx/db_set_flags.html">Db::set_flags</a>,
-<a href="../api_cxx/db_set_h_ffactor.html">Db::set_h_ffactor</a>,
-<a href="../api_cxx/db_set_h_hash.html">Db::set_h_hash</a>,
-<a href="../api_cxx/db_set_h_nelem.html">Db::set_h_nelem</a>,
-<a href="../api_cxx/db_set_lorder.html">Db::set_lorder</a>,
-<a href="../api_cxx/db_set_malloc.html">Db::set_malloc</a>,
-<a href="../api_cxx/db_set_pagesize.html">Db::set_pagesize</a>,
-<a href="../api_cxx/db_set_paniccall.html">Db::set_paniccall</a>,
-<a href="../api_cxx/db_set_q_extentsize.html">Db::set_q_extentsize</a>,
-<a href="../api_cxx/db_set_realloc.html">Db::set_realloc</a>,
-<a href="../api_cxx/db_set_re_delim.html">Db::set_re_delim</a>,
-<a href="../api_cxx/db_set_re_len.html">Db::set_re_len</a>,
-<a href="../api_cxx/db_set_re_pad.html">Db::set_re_pad</a>,
-<a href="../api_cxx/db_set_re_source.html">Db::set_re_source</a>,
-<a href="../api_cxx/db_stat.html">Db::stat</a>,
-<a href="../api_cxx/db_sync.html">Db::sync</a>,
-<a href="../api_cxx/db_upgrade.html">Db::upgrade</a>
-and
-<a href="../api_cxx/db_verify.html">Db::verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/db_set_lorder.html b/bdb/docs/api_cxx/db_set_lorder.html
deleted file mode 100644
index f25779a252a..00000000000
--- a/bdb/docs/api_cxx/db_set_lorder.html
+++ /dev/null
@@ -1,96 +0,0 @@
-<!--$Id: db_set_lorder.so,v 10.15 2000/05/01 21:57:43 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db::set_lorder</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db::set_lorder</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-Db::set_lorder(int lorder);
-</pre></h3>
-<h1>Description</h1>
-<p>Set the byte order for integers in the stored database metadata. The
-number should represent the order as an integer, for example, big endian
-order is the number 4,321, and little endian order is the number 1,234.
-If <b>lorder</b> is not explicitly set, the host order of the machine
-where the Berkeley DB library was compiled is used.
-<p>The value of <b>lorder</b> is ignored except when databases are being
-created. If a database already exists, the byte order it uses is
-determined when the database is opened.
-<p><b>The access methods provide no guarantees about the byte ordering of the
-application data stored in the database, and applications are responsible
-for maintaining any necessary ordering.</b>
-<p>The Db::set_lorder interface may only be used to configure Berkeley DB before
-the <a href="../api_cxx/db_open.html">Db::open</a> interface is called.
-<p>The Db::set_lorder method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h3>Class</h3>
-<a href="../api_cxx/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_cxx/db_close.html">Db::close</a>,
-<a href="../api_cxx/db_cursor.html">Db::cursor</a>,
-<a href="../api_cxx/db_del.html">Db::del</a>,
-<a href="../api_cxx/db_err.html">Db::err</a>,
-<a href="../api_cxx/db_fd.html">Db::fd</a>,
-<a href="../api_cxx/db_get.html">Db::get</a>,
-<a href="../api_cxx/db_get_byteswapped.html">Db::get_byteswapped</a>,
-<a href="../api_cxx/db_get_type.html">Db::get_type</a>,
-<a href="../api_cxx/db_join.html">Db::join</a>,
-<a href="../api_cxx/db_key_range.html">Db::key_range</a>,
-<a href="../api_cxx/db_open.html">Db::open</a>,
-<a href="../api_cxx/db_put.html">Db::put</a>,
-<a href="../api_cxx/db_remove.html">Db::remove</a>,
-<a href="../api_cxx/db_set_bt_compare.html">Db::set_bt_compare</a>,
-<a href="../api_cxx/db_set_bt_minkey.html">Db::set_bt_minkey</a>,
-<a href="../api_cxx/db_set_bt_prefix.html">Db::set_bt_prefix</a>,
-<a href="../api_cxx/db_set_cachesize.html">Db::set_cachesize</a>,
-<a href="../api_cxx/db_set_dup_compare.html">Db::set_dup_compare</a>,
-<a href="../api_cxx/db_set_errcall.html">Db::set_errcall</a>,
-<a href="../api_cxx/db_set_errfile.html">Db::set_errfile</a>,
-<a href="../api_cxx/db_set_errpfx.html">Db::set_errpfx</a>,
-<a href="../api_cxx/db_set_flags.html">Db::set_flags</a>,
-<a href="../api_cxx/db_set_h_ffactor.html">Db::set_h_ffactor</a>,
-<a href="../api_cxx/db_set_h_hash.html">Db::set_h_hash</a>,
-<a href="../api_cxx/db_set_h_nelem.html">Db::set_h_nelem</a>,
-<a href="../api_cxx/db_set_lorder.html">Db::set_lorder</a>,
-<a href="../api_cxx/db_set_malloc.html">Db::set_malloc</a>,
-<a href="../api_cxx/db_set_pagesize.html">Db::set_pagesize</a>,
-<a href="../api_cxx/db_set_paniccall.html">Db::set_paniccall</a>,
-<a href="../api_cxx/db_set_q_extentsize.html">Db::set_q_extentsize</a>,
-<a href="../api_cxx/db_set_realloc.html">Db::set_realloc</a>,
-<a href="../api_cxx/db_set_re_delim.html">Db::set_re_delim</a>,
-<a href="../api_cxx/db_set_re_len.html">Db::set_re_len</a>,
-<a href="../api_cxx/db_set_re_pad.html">Db::set_re_pad</a>,
-<a href="../api_cxx/db_set_re_source.html">Db::set_re_source</a>,
-<a href="../api_cxx/db_stat.html">Db::stat</a>,
-<a href="../api_cxx/db_sync.html">Db::sync</a>,
-<a href="../api_cxx/db_upgrade.html">Db::upgrade</a>
-and
-<a href="../api_cxx/db_verify.html">Db::verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/db_set_malloc.html b/bdb/docs/api_cxx/db_set_malloc.html
deleted file mode 100644
index e38092fcbeb..00000000000
--- a/bdb/docs/api_cxx/db_set_malloc.html
+++ /dev/null
@@ -1,103 +0,0 @@
-<!--$Id: db_set_malloc.so,v 10.18 2000/05/25 13:47:07 dda Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db::set_malloc</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db::set_malloc</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-extern "C" {
- typedef void *(*db_malloc_fcn_type)(size_t);
-};
-int
-Db::set_malloc(db_malloc_fcn_type db_malloc);
-</pre></h3>
-<h1>Description</h1>
-<p>Set the allocation function used by the <a href="../api_cxx/db_class.html">Db</a> methods to allocate
-memory in which to return key/data items to the application.
-<p>The <a href="../api_cxx/dbt_class.html#DB_DBT_MALLOC">DB_DBT_MALLOC</a> flag, when specified in the <a href="../api_cxx/dbt_class.html">Dbt</a> object,
-will cause the <a href="../api_cxx/db_class.html">Db</a> methods to allocate and re-allocate memory which
-then becomes the responsibility of the calling application. See <a href="../api_cxx/dbt_class.html">Dbt</a>
-for more information.
-<p>On systems where there may be multiple library versions of malloc (notably
-Windows NT), specifying the <a href="../api_cxx/dbt_class.html#DB_DBT_MALLOC">DB_DBT_MALLOC</a> flag will fail because
-the <a href="../api_cxx/db_class.html">Db</a> library will allocate memory from a different heap than
-the application will use to free it. To avoid this problem, the
-Db::set_malloc method can be used to pass Berkeley DB a reference to the
-application's allocation routine, in which case it will be used to
-allocate the memory returned when the <a href="../api_cxx/dbt_class.html#DB_DBT_MALLOC">DB_DBT_MALLOC</a> flag is set.
-<p>The method specified must match the calling conventions of the
-ANSI C X3.159-1989 (ANSI C) library routine of the same name.
-<p>The Db::set_malloc interface may only be used to configure Berkeley DB before
-the <a href="../api_cxx/db_open.html">Db::open</a> interface is called.
-<p>The Db::set_malloc method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h3>Class</h3>
-<a href="../api_cxx/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_cxx/db_close.html">Db::close</a>,
-<a href="../api_cxx/db_cursor.html">Db::cursor</a>,
-<a href="../api_cxx/db_del.html">Db::del</a>,
-<a href="../api_cxx/db_err.html">Db::err</a>,
-<a href="../api_cxx/db_fd.html">Db::fd</a>,
-<a href="../api_cxx/db_get.html">Db::get</a>,
-<a href="../api_cxx/db_get_byteswapped.html">Db::get_byteswapped</a>,
-<a href="../api_cxx/db_get_type.html">Db::get_type</a>,
-<a href="../api_cxx/db_join.html">Db::join</a>,
-<a href="../api_cxx/db_key_range.html">Db::key_range</a>,
-<a href="../api_cxx/db_open.html">Db::open</a>,
-<a href="../api_cxx/db_put.html">Db::put</a>,
-<a href="../api_cxx/db_remove.html">Db::remove</a>,
-<a href="../api_cxx/db_set_bt_compare.html">Db::set_bt_compare</a>,
-<a href="../api_cxx/db_set_bt_minkey.html">Db::set_bt_minkey</a>,
-<a href="../api_cxx/db_set_bt_prefix.html">Db::set_bt_prefix</a>,
-<a href="../api_cxx/db_set_cachesize.html">Db::set_cachesize</a>,
-<a href="../api_cxx/db_set_dup_compare.html">Db::set_dup_compare</a>,
-<a href="../api_cxx/db_set_errcall.html">Db::set_errcall</a>,
-<a href="../api_cxx/db_set_errfile.html">Db::set_errfile</a>,
-<a href="../api_cxx/db_set_errpfx.html">Db::set_errpfx</a>,
-<a href="../api_cxx/db_set_flags.html">Db::set_flags</a>,
-<a href="../api_cxx/db_set_h_ffactor.html">Db::set_h_ffactor</a>,
-<a href="../api_cxx/db_set_h_hash.html">Db::set_h_hash</a>,
-<a href="../api_cxx/db_set_h_nelem.html">Db::set_h_nelem</a>,
-<a href="../api_cxx/db_set_lorder.html">Db::set_lorder</a>,
-<a href="../api_cxx/db_set_malloc.html">Db::set_malloc</a>,
-<a href="../api_cxx/db_set_pagesize.html">Db::set_pagesize</a>,
-<a href="../api_cxx/db_set_paniccall.html">Db::set_paniccall</a>,
-<a href="../api_cxx/db_set_q_extentsize.html">Db::set_q_extentsize</a>,
-<a href="../api_cxx/db_set_realloc.html">Db::set_realloc</a>,
-<a href="../api_cxx/db_set_re_delim.html">Db::set_re_delim</a>,
-<a href="../api_cxx/db_set_re_len.html">Db::set_re_len</a>,
-<a href="../api_cxx/db_set_re_pad.html">Db::set_re_pad</a>,
-<a href="../api_cxx/db_set_re_source.html">Db::set_re_source</a>,
-<a href="../api_cxx/db_stat.html">Db::stat</a>,
-<a href="../api_cxx/db_sync.html">Db::sync</a>,
-<a href="../api_cxx/db_upgrade.html">Db::upgrade</a>
-and
-<a href="../api_cxx/db_verify.html">Db::verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/db_set_pagesize.html b/bdb/docs/api_cxx/db_set_pagesize.html
deleted file mode 100644
index 114f0578aa7..00000000000
--- a/bdb/docs/api_cxx/db_set_pagesize.html
+++ /dev/null
@@ -1,92 +0,0 @@
-<!--$Id: db_set_pagesize.so,v 10.16 2000/05/01 21:57:43 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db::set_pagesize</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db::set_pagesize</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-Db::set_pagesize(u_int32_t pagesize);
-</pre></h3>
-<h1>Description</h1>
-<p>Set the size of the pages used to hold items in the database, in bytes.
-The minimum page size is 512 bytes and the maximum page size is 64K bytes.
-If the page size is not explicitly set, one is selected based on the
-underlying filesystem I/O block size. The automatically selected size
-has a lower limit of 512 bytes and an upper limit of 16K bytes.
-<p>For information on tuning the Berkeley DB page size, see
-<a href="../ref/am_conf/pagesize.html">Selecting a page size</a>.
-<p>The Db::set_pagesize interface may only be used to configure Berkeley DB before
-the <a href="../api_cxx/db_open.html">Db::open</a> interface is called.
-<p>The Db::set_pagesize method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h3>Class</h3>
-<a href="../api_cxx/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_cxx/db_close.html">Db::close</a>,
-<a href="../api_cxx/db_cursor.html">Db::cursor</a>,
-<a href="../api_cxx/db_del.html">Db::del</a>,
-<a href="../api_cxx/db_err.html">Db::err</a>,
-<a href="../api_cxx/db_fd.html">Db::fd</a>,
-<a href="../api_cxx/db_get.html">Db::get</a>,
-<a href="../api_cxx/db_get_byteswapped.html">Db::get_byteswapped</a>,
-<a href="../api_cxx/db_get_type.html">Db::get_type</a>,
-<a href="../api_cxx/db_join.html">Db::join</a>,
-<a href="../api_cxx/db_key_range.html">Db::key_range</a>,
-<a href="../api_cxx/db_open.html">Db::open</a>,
-<a href="../api_cxx/db_put.html">Db::put</a>,
-<a href="../api_cxx/db_remove.html">Db::remove</a>,
-<a href="../api_cxx/db_set_bt_compare.html">Db::set_bt_compare</a>,
-<a href="../api_cxx/db_set_bt_minkey.html">Db::set_bt_minkey</a>,
-<a href="../api_cxx/db_set_bt_prefix.html">Db::set_bt_prefix</a>,
-<a href="../api_cxx/db_set_cachesize.html">Db::set_cachesize</a>,
-<a href="../api_cxx/db_set_dup_compare.html">Db::set_dup_compare</a>,
-<a href="../api_cxx/db_set_errcall.html">Db::set_errcall</a>,
-<a href="../api_cxx/db_set_errfile.html">Db::set_errfile</a>,
-<a href="../api_cxx/db_set_errpfx.html">Db::set_errpfx</a>,
-<a href="../api_cxx/db_set_flags.html">Db::set_flags</a>,
-<a href="../api_cxx/db_set_h_ffactor.html">Db::set_h_ffactor</a>,
-<a href="../api_cxx/db_set_h_hash.html">Db::set_h_hash</a>,
-<a href="../api_cxx/db_set_h_nelem.html">Db::set_h_nelem</a>,
-<a href="../api_cxx/db_set_lorder.html">Db::set_lorder</a>,
-<a href="../api_cxx/db_set_malloc.html">Db::set_malloc</a>,
-<a href="../api_cxx/db_set_pagesize.html">Db::set_pagesize</a>,
-<a href="../api_cxx/db_set_paniccall.html">Db::set_paniccall</a>,
-<a href="../api_cxx/db_set_q_extentsize.html">Db::set_q_extentsize</a>,
-<a href="../api_cxx/db_set_realloc.html">Db::set_realloc</a>,
-<a href="../api_cxx/db_set_re_delim.html">Db::set_re_delim</a>,
-<a href="../api_cxx/db_set_re_len.html">Db::set_re_len</a>,
-<a href="../api_cxx/db_set_re_pad.html">Db::set_re_pad</a>,
-<a href="../api_cxx/db_set_re_source.html">Db::set_re_source</a>,
-<a href="../api_cxx/db_stat.html">Db::stat</a>,
-<a href="../api_cxx/db_sync.html">Db::sync</a>,
-<a href="../api_cxx/db_upgrade.html">Db::upgrade</a>
-and
-<a href="../api_cxx/db_verify.html">Db::verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/db_set_paniccall.html b/bdb/docs/api_cxx/db_set_paniccall.html
deleted file mode 100644
index 7cd08de4a53..00000000000
--- a/bdb/docs/api_cxx/db_set_paniccall.html
+++ /dev/null
@@ -1,76 +0,0 @@
-<!--$Id: db_set_paniccall.so,v 10.11 2000/07/09 19:12:16 bostic Exp $-->
-<!--$Id: m4.errset,v 10.8 2000/02/19 20:57:57 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db::set_paniccall</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db::set_paniccall</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-Db::set_paniccall(
- void (*db_paniccall_fcn)(DbEnv *dbenv, int errval));
-</pre></h3>
-<h1>Description</h1>
-<p>Errors can occur in the Berkeley DB library where the only solution is to shut
-down the application and run recovery. (For example, if Berkeley DB is unable
-to write log records to disk because there is insufficient disk space.)
-In these cases, when the C++ error model has been configured so that the
-individual Berkeley DB methods return error codes (see <a href="../api_cxx/except_class.html">DbException</a> for
-more information), the value <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> is returned by Berkeley DB
-methods.
-<p>In these cases, it is also often simpler to shut down the application when
-such errors occur rather than attempting to gracefully return up the stack.
-The Db::set_paniccall method is used to specify a method to be called when
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> is about to be returned from a Berkeley DB method. When
-called, the <b>dbenv</b> argument will be a reference to the current
-environment, and the <b>errval</b> argument is the error value that would
-have been returned to the calling method.
-<p>For <a href="../api_cxx/db_class.html">Db</a> handles opened inside of Berkeley DB environments, calling the
-Db::set_paniccall method affects the entire environment and is equivalent to calling
-the <a href="../api_cxx/env_set_paniccall.html">DbEnv::set_paniccall</a> method.
-<p>The Db::set_paniccall interface may be used to configure Berkeley DB at any time
-during the life of the application.
-<p>The Db::set_paniccall method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h3>Class</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_close.html">DbEnv::close</a>,
-<a href="../api_cxx/env_open.html">DbEnv::open</a>,
-<a href="../api_cxx/env_remove.html">DbEnv::remove</a>,
-<a href="../api_cxx/db_err.html">DbEnv::err</a>,
-<a href="../api_cxx/env_strerror.html">DbEnv::strerror</a>,
-<a href="../api_cxx/env_version.html">DbEnv::version</a>,
-<a href="../api_cxx/env_set_cachesize.html">DbEnv::set_cachesize</a>,
-<a href="../api_cxx/env_set_errcall.html">DbEnv::set_errcall</a>,
-<a href="../api_cxx/env_set_errfile.html">DbEnv::set_errfile</a>,
-<a href="../api_cxx/env_set_error_stream.html">DbEnv::set_error_stream</a>,
-<a href="../api_cxx/env_set_errpfx.html">DbEnv::set_errpfx</a>,
-<a href="../api_cxx/env_set_flags.html">DbEnv::set_flags</a>,
-<a href="../api_cxx/env_set_mutexlocks.html">DbEnv::set_mutexlocks</a>,
-<a href="../api_cxx/env_set_paniccall.html">DbEnv::set_paniccall</a>,
-and
-<a href="../api_cxx/env_set_verbose.html">DbEnv::set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/db_set_q_extentsize.html b/bdb/docs/api_cxx/db_set_q_extentsize.html
deleted file mode 100644
index d9c702196b7..00000000000
--- a/bdb/docs/api_cxx/db_set_q_extentsize.html
+++ /dev/null
@@ -1,92 +0,0 @@
-<!--$Id: db_set_q_extentsize.so,v 1.3 2000/11/21 19:25:45 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db::set_q_extentsize</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db::set_q_extentsize</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-Db::set_q_extentsize(u_int32_t extentsize);
-</pre></h3>
-<h1>Description</h1>
-<p>Set the size of the extents used to hold pages in a Queue database,
-specified as a number of pages. Each extent is created as a separate
-physical file. If no extent size is set, the default behavior is to
-create only a single underlying database file.
-<p>For information on tuning the extent size, see
-<a href="../ref/am_conf/extentsize.html">Selecting a extent size</a>.
-<p>The Db::set_q_extentsize interface may only be used to configure Berkeley DB before
-the <a href="../api_cxx/db_open.html">Db::open</a> interface is called.
-<p>The Db::set_q_extentsize method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_cxx/db_open.html">Db::open</a> was called.
-</dl>
-<h3>Class</h3>
-<a href="../api_cxx/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_cxx/db_close.html">Db::close</a>,
-<a href="../api_cxx/db_cursor.html">Db::cursor</a>,
-<a href="../api_cxx/db_del.html">Db::del</a>,
-<a href="../api_cxx/db_err.html">Db::err</a>,
-<a href="../api_cxx/db_fd.html">Db::fd</a>,
-<a href="../api_cxx/db_get.html">Db::get</a>,
-<a href="../api_cxx/db_get_byteswapped.html">Db::get_byteswapped</a>,
-<a href="../api_cxx/db_get_type.html">Db::get_type</a>,
-<a href="../api_cxx/db_join.html">Db::join</a>,
-<a href="../api_cxx/db_key_range.html">Db::key_range</a>,
-<a href="../api_cxx/db_open.html">Db::open</a>,
-<a href="../api_cxx/db_put.html">Db::put</a>,
-<a href="../api_cxx/db_remove.html">Db::remove</a>,
-<a href="../api_cxx/db_set_bt_compare.html">Db::set_bt_compare</a>,
-<a href="../api_cxx/db_set_bt_minkey.html">Db::set_bt_minkey</a>,
-<a href="../api_cxx/db_set_bt_prefix.html">Db::set_bt_prefix</a>,
-<a href="../api_cxx/db_set_cachesize.html">Db::set_cachesize</a>,
-<a href="../api_cxx/db_set_dup_compare.html">Db::set_dup_compare</a>,
-<a href="../api_cxx/db_set_errcall.html">Db::set_errcall</a>,
-<a href="../api_cxx/db_set_errfile.html">Db::set_errfile</a>,
-<a href="../api_cxx/db_set_errpfx.html">Db::set_errpfx</a>,
-<a href="../api_cxx/db_set_flags.html">Db::set_flags</a>,
-<a href="../api_cxx/db_set_h_ffactor.html">Db::set_h_ffactor</a>,
-<a href="../api_cxx/db_set_h_hash.html">Db::set_h_hash</a>,
-<a href="../api_cxx/db_set_h_nelem.html">Db::set_h_nelem</a>,
-<a href="../api_cxx/db_set_lorder.html">Db::set_lorder</a>,
-<a href="../api_cxx/db_set_malloc.html">Db::set_malloc</a>,
-<a href="../api_cxx/db_set_pagesize.html">Db::set_pagesize</a>,
-<a href="../api_cxx/db_set_paniccall.html">Db::set_paniccall</a>,
-<a href="../api_cxx/db_set_q_extentsize.html">Db::set_q_extentsize</a>,
-<a href="../api_cxx/db_set_realloc.html">Db::set_realloc</a>,
-<a href="../api_cxx/db_set_re_delim.html">Db::set_re_delim</a>,
-<a href="../api_cxx/db_set_re_len.html">Db::set_re_len</a>,
-<a href="../api_cxx/db_set_re_pad.html">Db::set_re_pad</a>,
-<a href="../api_cxx/db_set_re_source.html">Db::set_re_source</a>,
-<a href="../api_cxx/db_stat.html">Db::stat</a>,
-<a href="../api_cxx/db_sync.html">Db::sync</a>,
-<a href="../api_cxx/db_upgrade.html">Db::upgrade</a>
-and
-<a href="../api_cxx/db_verify.html">Db::verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/db_set_re_delim.html b/bdb/docs/api_cxx/db_set_re_delim.html
deleted file mode 100644
index c88d6e89e06..00000000000
--- a/bdb/docs/api_cxx/db_set_re_delim.html
+++ /dev/null
@@ -1,92 +0,0 @@
-<!--$Id: db_set_re_delim.so,v 10.17 2000/05/01 21:57:43 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db::set_re_delim</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db::set_re_delim</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-Db::set_re_delim(int re_delim);
-</pre></h3>
-<h1>Description</h1>
-<p>Set the delimiting byte used to mark the end of a record in the backing
-source file for the Recno access method.
-<p>This byte is used for variable length records, if the <b>re_source</b>
-file is specified. If the <b>re_source</b> file is specified and no
-delimiting byte was specified, &lt;newline&gt; characters (i.e.
-ASCII 0x0a) are interpreted as end-of-record markers.
-<p>The Db::set_re_delim interface may only be used to configure Berkeley DB before
-the <a href="../api_cxx/db_open.html">Db::open</a> interface is called.
-<p>The Db::set_re_delim method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_cxx/db_open.html">Db::open</a> was called.
-</dl>
-<h3>Class</h3>
-<a href="../api_cxx/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_cxx/db_close.html">Db::close</a>,
-<a href="../api_cxx/db_cursor.html">Db::cursor</a>,
-<a href="../api_cxx/db_del.html">Db::del</a>,
-<a href="../api_cxx/db_err.html">Db::err</a>,
-<a href="../api_cxx/db_fd.html">Db::fd</a>,
-<a href="../api_cxx/db_get.html">Db::get</a>,
-<a href="../api_cxx/db_get_byteswapped.html">Db::get_byteswapped</a>,
-<a href="../api_cxx/db_get_type.html">Db::get_type</a>,
-<a href="../api_cxx/db_join.html">Db::join</a>,
-<a href="../api_cxx/db_key_range.html">Db::key_range</a>,
-<a href="../api_cxx/db_open.html">Db::open</a>,
-<a href="../api_cxx/db_put.html">Db::put</a>,
-<a href="../api_cxx/db_remove.html">Db::remove</a>,
-<a href="../api_cxx/db_set_bt_compare.html">Db::set_bt_compare</a>,
-<a href="../api_cxx/db_set_bt_minkey.html">Db::set_bt_minkey</a>,
-<a href="../api_cxx/db_set_bt_prefix.html">Db::set_bt_prefix</a>,
-<a href="../api_cxx/db_set_cachesize.html">Db::set_cachesize</a>,
-<a href="../api_cxx/db_set_dup_compare.html">Db::set_dup_compare</a>,
-<a href="../api_cxx/db_set_errcall.html">Db::set_errcall</a>,
-<a href="../api_cxx/db_set_errfile.html">Db::set_errfile</a>,
-<a href="../api_cxx/db_set_errpfx.html">Db::set_errpfx</a>,
-<a href="../api_cxx/db_set_flags.html">Db::set_flags</a>,
-<a href="../api_cxx/db_set_h_ffactor.html">Db::set_h_ffactor</a>,
-<a href="../api_cxx/db_set_h_hash.html">Db::set_h_hash</a>,
-<a href="../api_cxx/db_set_h_nelem.html">Db::set_h_nelem</a>,
-<a href="../api_cxx/db_set_lorder.html">Db::set_lorder</a>,
-<a href="../api_cxx/db_set_malloc.html">Db::set_malloc</a>,
-<a href="../api_cxx/db_set_pagesize.html">Db::set_pagesize</a>,
-<a href="../api_cxx/db_set_paniccall.html">Db::set_paniccall</a>,
-<a href="../api_cxx/db_set_q_extentsize.html">Db::set_q_extentsize</a>,
-<a href="../api_cxx/db_set_realloc.html">Db::set_realloc</a>,
-<a href="../api_cxx/db_set_re_delim.html">Db::set_re_delim</a>,
-<a href="../api_cxx/db_set_re_len.html">Db::set_re_len</a>,
-<a href="../api_cxx/db_set_re_pad.html">Db::set_re_pad</a>,
-<a href="../api_cxx/db_set_re_source.html">Db::set_re_source</a>,
-<a href="../api_cxx/db_stat.html">Db::stat</a>,
-<a href="../api_cxx/db_sync.html">Db::sync</a>,
-<a href="../api_cxx/db_upgrade.html">Db::upgrade</a>
-and
-<a href="../api_cxx/db_verify.html">Db::verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/db_set_re_len.html b/bdb/docs/api_cxx/db_set_re_len.html
deleted file mode 100644
index 7432ced166d..00000000000
--- a/bdb/docs/api_cxx/db_set_re_len.html
+++ /dev/null
@@ -1,96 +0,0 @@
-<!--$Id: db_set_re_len.so,v 10.17 2000/05/01 21:57:43 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db::set_re_len</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db::set_re_len</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-Db::set_re_len(u_int32_t re_len);
-</pre></h3>
-<h1>Description</h1>
-<p>For the Queue access method, specify that the records are of length
-<b>re_len</b>.
-<p>For the Recno access method, specify that the records are fixed-length,
-not byte delimited, and are of length <b>re_len</b>.
-<p>Any records added to the database that are less than <b>re_len</b> bytes
-long are automatically padded (see <a href="../api_cxx/db_set_re_pad.html">Db::set_re_pad</a> for more
-information).
-<p>Any attempt to insert records into the database that are greater than
-<b>re_len</b> bytes long will cause the call to fail immediately and
-return an error.
-<p>The Db::set_re_len interface may only be used to configure Berkeley DB before
-the <a href="../api_cxx/db_open.html">Db::open</a> interface is called.
-<p>The Db::set_re_len method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_cxx/db_open.html">Db::open</a> was called.
-</dl>
-<h3>Class</h3>
-<a href="../api_cxx/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_cxx/db_close.html">Db::close</a>,
-<a href="../api_cxx/db_cursor.html">Db::cursor</a>,
-<a href="../api_cxx/db_del.html">Db::del</a>,
-<a href="../api_cxx/db_err.html">Db::err</a>,
-<a href="../api_cxx/db_fd.html">Db::fd</a>,
-<a href="../api_cxx/db_get.html">Db::get</a>,
-<a href="../api_cxx/db_get_byteswapped.html">Db::get_byteswapped</a>,
-<a href="../api_cxx/db_get_type.html">Db::get_type</a>,
-<a href="../api_cxx/db_join.html">Db::join</a>,
-<a href="../api_cxx/db_key_range.html">Db::key_range</a>,
-<a href="../api_cxx/db_open.html">Db::open</a>,
-<a href="../api_cxx/db_put.html">Db::put</a>,
-<a href="../api_cxx/db_remove.html">Db::remove</a>,
-<a href="../api_cxx/db_set_bt_compare.html">Db::set_bt_compare</a>,
-<a href="../api_cxx/db_set_bt_minkey.html">Db::set_bt_minkey</a>,
-<a href="../api_cxx/db_set_bt_prefix.html">Db::set_bt_prefix</a>,
-<a href="../api_cxx/db_set_cachesize.html">Db::set_cachesize</a>,
-<a href="../api_cxx/db_set_dup_compare.html">Db::set_dup_compare</a>,
-<a href="../api_cxx/db_set_errcall.html">Db::set_errcall</a>,
-<a href="../api_cxx/db_set_errfile.html">Db::set_errfile</a>,
-<a href="../api_cxx/db_set_errpfx.html">Db::set_errpfx</a>,
-<a href="../api_cxx/db_set_flags.html">Db::set_flags</a>,
-<a href="../api_cxx/db_set_h_ffactor.html">Db::set_h_ffactor</a>,
-<a href="../api_cxx/db_set_h_hash.html">Db::set_h_hash</a>,
-<a href="../api_cxx/db_set_h_nelem.html">Db::set_h_nelem</a>,
-<a href="../api_cxx/db_set_lorder.html">Db::set_lorder</a>,
-<a href="../api_cxx/db_set_malloc.html">Db::set_malloc</a>,
-<a href="../api_cxx/db_set_pagesize.html">Db::set_pagesize</a>,
-<a href="../api_cxx/db_set_paniccall.html">Db::set_paniccall</a>,
-<a href="../api_cxx/db_set_q_extentsize.html">Db::set_q_extentsize</a>,
-<a href="../api_cxx/db_set_realloc.html">Db::set_realloc</a>,
-<a href="../api_cxx/db_set_re_delim.html">Db::set_re_delim</a>,
-<a href="../api_cxx/db_set_re_len.html">Db::set_re_len</a>,
-<a href="../api_cxx/db_set_re_pad.html">Db::set_re_pad</a>,
-<a href="../api_cxx/db_set_re_source.html">Db::set_re_source</a>,
-<a href="../api_cxx/db_stat.html">Db::stat</a>,
-<a href="../api_cxx/db_sync.html">Db::sync</a>,
-<a href="../api_cxx/db_upgrade.html">Db::upgrade</a>
-and
-<a href="../api_cxx/db_verify.html">Db::verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/db_set_re_pad.html b/bdb/docs/api_cxx/db_set_re_pad.html
deleted file mode 100644
index 5b9453d0db2..00000000000
--- a/bdb/docs/api_cxx/db_set_re_pad.html
+++ /dev/null
@@ -1,90 +0,0 @@
-<!--$Id: db_set_re_pad.so,v 10.16 2000/05/01 21:57:43 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db::set_re_pad</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db::set_re_pad</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-Db::set_re_pad(int re_pad);
-</pre></h3>
-<h1>Description</h1>
-<p>Set the padding character for short, fixed-length records for the Queue
-and Recno access methods.
-<p>If no pad character is specified, &lt;space&gt; characters (i.e.,
-ASCII 0x20) are used for padding.
-<p>The Db::set_re_pad interface may only be used to configure Berkeley DB before
-the <a href="../api_cxx/db_open.html">Db::open</a> interface is called.
-<p>The Db::set_re_pad method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_cxx/db_open.html">Db::open</a> was called.
-</dl>
-<h3>Class</h3>
-<a href="../api_cxx/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_cxx/db_close.html">Db::close</a>,
-<a href="../api_cxx/db_cursor.html">Db::cursor</a>,
-<a href="../api_cxx/db_del.html">Db::del</a>,
-<a href="../api_cxx/db_err.html">Db::err</a>,
-<a href="../api_cxx/db_fd.html">Db::fd</a>,
-<a href="../api_cxx/db_get.html">Db::get</a>,
-<a href="../api_cxx/db_get_byteswapped.html">Db::get_byteswapped</a>,
-<a href="../api_cxx/db_get_type.html">Db::get_type</a>,
-<a href="../api_cxx/db_join.html">Db::join</a>,
-<a href="../api_cxx/db_key_range.html">Db::key_range</a>,
-<a href="../api_cxx/db_open.html">Db::open</a>,
-<a href="../api_cxx/db_put.html">Db::put</a>,
-<a href="../api_cxx/db_remove.html">Db::remove</a>,
-<a href="../api_cxx/db_set_bt_compare.html">Db::set_bt_compare</a>,
-<a href="../api_cxx/db_set_bt_minkey.html">Db::set_bt_minkey</a>,
-<a href="../api_cxx/db_set_bt_prefix.html">Db::set_bt_prefix</a>,
-<a href="../api_cxx/db_set_cachesize.html">Db::set_cachesize</a>,
-<a href="../api_cxx/db_set_dup_compare.html">Db::set_dup_compare</a>,
-<a href="../api_cxx/db_set_errcall.html">Db::set_errcall</a>,
-<a href="../api_cxx/db_set_errfile.html">Db::set_errfile</a>,
-<a href="../api_cxx/db_set_errpfx.html">Db::set_errpfx</a>,
-<a href="../api_cxx/db_set_flags.html">Db::set_flags</a>,
-<a href="../api_cxx/db_set_h_ffactor.html">Db::set_h_ffactor</a>,
-<a href="../api_cxx/db_set_h_hash.html">Db::set_h_hash</a>,
-<a href="../api_cxx/db_set_h_nelem.html">Db::set_h_nelem</a>,
-<a href="../api_cxx/db_set_lorder.html">Db::set_lorder</a>,
-<a href="../api_cxx/db_set_malloc.html">Db::set_malloc</a>,
-<a href="../api_cxx/db_set_pagesize.html">Db::set_pagesize</a>,
-<a href="../api_cxx/db_set_paniccall.html">Db::set_paniccall</a>,
-<a href="../api_cxx/db_set_q_extentsize.html">Db::set_q_extentsize</a>,
-<a href="../api_cxx/db_set_realloc.html">Db::set_realloc</a>,
-<a href="../api_cxx/db_set_re_delim.html">Db::set_re_delim</a>,
-<a href="../api_cxx/db_set_re_len.html">Db::set_re_len</a>,
-<a href="../api_cxx/db_set_re_pad.html">Db::set_re_pad</a>,
-<a href="../api_cxx/db_set_re_source.html">Db::set_re_source</a>,
-<a href="../api_cxx/db_stat.html">Db::stat</a>,
-<a href="../api_cxx/db_sync.html">Db::sync</a>,
-<a href="../api_cxx/db_upgrade.html">Db::upgrade</a>
-and
-<a href="../api_cxx/db_verify.html">Db::verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/db_set_re_source.html b/bdb/docs/api_cxx/db_set_re_source.html
deleted file mode 100644
index ea51dde6202..00000000000
--- a/bdb/docs/api_cxx/db_set_re_source.html
+++ /dev/null
@@ -1,132 +0,0 @@
-<!--$Id: db_set_re_source.so,v 10.17 2000/05/01 21:57:43 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db::set_re_source</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db::set_re_source</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-Db::set_re_source(char *re_source);
-</pre></h3>
-<h1>Description</h1>
-<p>Set the underlying source file for the Recno access method. The purpose
-of the <b>re_source</b> value is to provide fast access and modification
-to databases that are normally stored as flat text files.
-<p>If the <b>re_source</b> field is set, it specifies an underlying flat
-text database file that is read to initialize a transient record number
-index. In the case of variable length records, the records are separated
-as specified by <a href="../api_cxx/db_set_re_delim.html">Db::set_re_delim</a>. For example, standard UNIX
-byte stream files can be interpreted as a sequence of variable length
-records separated by &lt;newline&gt; characters.
-<p>In addition, when cached data would normally be written back to the
-underlying database file (e.g., the <a href="../api_cxx/db_close.html">Db::close</a> or <a href="../api_cxx/db_sync.html">Db::sync</a>
-methods are called), the in-memory copy of the database will be written
-back to the <b>re_source</b> file.
-<p>By default, the backing source file is read lazily, i.e., records are not
-read from the file until they are requested by the application.
-<b>If multiple processes (not threads) are accessing a Recno database
-concurrently and either inserting or deleting records, the backing source
-file must be read in its entirety before more than a single process
-accesses the database, and only that process should specify the backing
-source file as part of the <a href="../api_cxx/db_open.html">Db::open</a> call. See the <a href="../api_cxx/db_set_flags.html#DB_SNAPSHOT">DB_SNAPSHOT</a>
-flag for more information.</b>
-<p><b>Reading and writing the backing source file specified by <b>re_source</b>
-cannot be transactionally protected because it involves filesystem
-operations that are not part of the Db transaction methodology.</b>
-For this reason, if a temporary database is used to hold the records,
-i.e., a NULL was specified as the <b>file</b> argument to <a href="../api_cxx/db_open.html">Db::open</a>,
-it is possible to lose the contents of the <b>re_source</b> file, e.g.,
-if the system crashes at the right instant.
-If a file is used to hold the database, i.e., a file name was specified
-as the <b>file</b> argument to <a href="../api_cxx/db_open.html">Db::open</a>, normal database
-recovery on that file can be used to prevent information loss,
-although it is still possible that the contents of <b>re_source</b>
-will be lost if the system crashes.
-<p>The <b>re_source</b> file must already exist (but may be zero-length) when
-<a href="../api_cxx/db_open.html">Db::open</a> is called.
-<p>It is not an error to specify a read-only <b>re_source</b> file when
-creating a database, nor is it an error to modify the resulting database.
-However, any attempt to write the changes to the backing source file using
-either the <a href="../api_cxx/db_sync.html">Db::sync</a> or <a href="../api_cxx/db_close.html">Db::close</a> methods will fail, of course.
-Specify the <a href="../api_cxx/db_close.html#DB_NOSYNC">DB_NOSYNC</a> flag to the <a href="../api_cxx/db_close.html">Db::close</a> method to stop it
-from attempting to write the changes to the backing file, instead, they
-will be silently discarded.
-<p>For all of the above reasons, the <b>re_source</b> field is generally
-used to specify databases that are read-only for <a href="../api_cxx/db_class.html">Db</a> applications,
-and that are either generated on the fly by software tools, or modified
-using a different mechanism, e.g., a text editor.
-<p>The Db::set_re_source interface may only be used to configure Berkeley DB before
-the <a href="../api_cxx/db_open.html">Db::open</a> interface is called.
-<p>The Db::set_re_source method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_cxx/db_open.html">Db::open</a> was called.
-</dl>
-<h3>Class</h3>
-<a href="../api_cxx/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_cxx/db_close.html">Db::close</a>,
-<a href="../api_cxx/db_cursor.html">Db::cursor</a>,
-<a href="../api_cxx/db_del.html">Db::del</a>,
-<a href="../api_cxx/db_err.html">Db::err</a>,
-<a href="../api_cxx/db_fd.html">Db::fd</a>,
-<a href="../api_cxx/db_get.html">Db::get</a>,
-<a href="../api_cxx/db_get_byteswapped.html">Db::get_byteswapped</a>,
-<a href="../api_cxx/db_get_type.html">Db::get_type</a>,
-<a href="../api_cxx/db_join.html">Db::join</a>,
-<a href="../api_cxx/db_key_range.html">Db::key_range</a>,
-<a href="../api_cxx/db_open.html">Db::open</a>,
-<a href="../api_cxx/db_put.html">Db::put</a>,
-<a href="../api_cxx/db_remove.html">Db::remove</a>,
-<a href="../api_cxx/db_set_bt_compare.html">Db::set_bt_compare</a>,
-<a href="../api_cxx/db_set_bt_minkey.html">Db::set_bt_minkey</a>,
-<a href="../api_cxx/db_set_bt_prefix.html">Db::set_bt_prefix</a>,
-<a href="../api_cxx/db_set_cachesize.html">Db::set_cachesize</a>,
-<a href="../api_cxx/db_set_dup_compare.html">Db::set_dup_compare</a>,
-<a href="../api_cxx/db_set_errcall.html">Db::set_errcall</a>,
-<a href="../api_cxx/db_set_errfile.html">Db::set_errfile</a>,
-<a href="../api_cxx/db_set_errpfx.html">Db::set_errpfx</a>,
-<a href="../api_cxx/db_set_flags.html">Db::set_flags</a>,
-<a href="../api_cxx/db_set_h_ffactor.html">Db::set_h_ffactor</a>,
-<a href="../api_cxx/db_set_h_hash.html">Db::set_h_hash</a>,
-<a href="../api_cxx/db_set_h_nelem.html">Db::set_h_nelem</a>,
-<a href="../api_cxx/db_set_lorder.html">Db::set_lorder</a>,
-<a href="../api_cxx/db_set_malloc.html">Db::set_malloc</a>,
-<a href="../api_cxx/db_set_pagesize.html">Db::set_pagesize</a>,
-<a href="../api_cxx/db_set_paniccall.html">Db::set_paniccall</a>,
-<a href="../api_cxx/db_set_q_extentsize.html">Db::set_q_extentsize</a>,
-<a href="../api_cxx/db_set_realloc.html">Db::set_realloc</a>,
-<a href="../api_cxx/db_set_re_delim.html">Db::set_re_delim</a>,
-<a href="../api_cxx/db_set_re_len.html">Db::set_re_len</a>,
-<a href="../api_cxx/db_set_re_pad.html">Db::set_re_pad</a>,
-<a href="../api_cxx/db_set_re_source.html">Db::set_re_source</a>,
-<a href="../api_cxx/db_stat.html">Db::stat</a>,
-<a href="../api_cxx/db_sync.html">Db::sync</a>,
-<a href="../api_cxx/db_upgrade.html">Db::upgrade</a>
-and
-<a href="../api_cxx/db_verify.html">Db::verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/db_set_realloc.html b/bdb/docs/api_cxx/db_set_realloc.html
deleted file mode 100644
index e163a889c33..00000000000
--- a/bdb/docs/api_cxx/db_set_realloc.html
+++ /dev/null
@@ -1,103 +0,0 @@
-<!--$Id: db_set_realloc.so,v 10.8 2000/05/25 13:47:07 dda Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db::set_realloc</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db::set_realloc</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-extern "C" {
- typedef void *(*db_realloc_fcn_type)(void *, size_t);
-};
-int
-Db::set_realloc(db_realloc_fcn_type db_realloc_fcn);
-</pre></h3>
-<h1>Description</h1>
-<p>Set the realloc function used by the <a href="../api_cxx/db_class.html">Db</a> methods to allocate memory
-in which to return key/data items to the application.
-<p>The <a href="../api_cxx/dbt_class.html#DB_DBT_REALLOC">DB_DBT_REALLOC</a> flag, when specified in the <a href="../api_cxx/dbt_class.html">Dbt</a> object,
-will cause the <a href="../api_cxx/db_class.html">Db</a> methods to allocate and re-allocate memory which
-then becomes the responsibility of the calling application. See <a href="../api_cxx/dbt_class.html">Dbt</a>
-for more information.
-<p>On systems where there may be multiple library versions of realloc (notably
-Windows NT), specifying the <a href="../api_cxx/dbt_class.html#DB_DBT_REALLOC">DB_DBT_REALLOC</a> flag will fail because
-the <a href="../api_cxx/db_class.html">Db</a> library will allocate memory from a different heap than
-the application will use to free it. To avoid this problem, the
-Db::set_realloc method can be used to pass Berkeley DB a reference to the
-application's allocation routine, in which case it will be used to
-allocate the memory returned when the <a href="../api_cxx/dbt_class.html#DB_DBT_REALLOC">DB_DBT_REALLOC</a> flag is set.
-<p>The method specified must match the calling conventions of the
-ANSI C X3.159-1989 (ANSI C) library routine of the same name.
-<p>The Db::set_realloc interface may only be used to configure Berkeley DB before
-the <a href="../api_cxx/db_open.html">Db::open</a> interface is called.
-<p>The Db::set_realloc method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h3>Class</h3>
-<a href="../api_cxx/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_cxx/db_close.html">Db::close</a>,
-<a href="../api_cxx/db_cursor.html">Db::cursor</a>,
-<a href="../api_cxx/db_del.html">Db::del</a>,
-<a href="../api_cxx/db_err.html">Db::err</a>,
-<a href="../api_cxx/db_fd.html">Db::fd</a>,
-<a href="../api_cxx/db_get.html">Db::get</a>,
-<a href="../api_cxx/db_get_byteswapped.html">Db::get_byteswapped</a>,
-<a href="../api_cxx/db_get_type.html">Db::get_type</a>,
-<a href="../api_cxx/db_join.html">Db::join</a>,
-<a href="../api_cxx/db_key_range.html">Db::key_range</a>,
-<a href="../api_cxx/db_open.html">Db::open</a>,
-<a href="../api_cxx/db_put.html">Db::put</a>,
-<a href="../api_cxx/db_remove.html">Db::remove</a>,
-<a href="../api_cxx/db_set_bt_compare.html">Db::set_bt_compare</a>,
-<a href="../api_cxx/db_set_bt_minkey.html">Db::set_bt_minkey</a>,
-<a href="../api_cxx/db_set_bt_prefix.html">Db::set_bt_prefix</a>,
-<a href="../api_cxx/db_set_cachesize.html">Db::set_cachesize</a>,
-<a href="../api_cxx/db_set_dup_compare.html">Db::set_dup_compare</a>,
-<a href="../api_cxx/db_set_errcall.html">Db::set_errcall</a>,
-<a href="../api_cxx/db_set_errfile.html">Db::set_errfile</a>,
-<a href="../api_cxx/db_set_errpfx.html">Db::set_errpfx</a>,
-<a href="../api_cxx/db_set_flags.html">Db::set_flags</a>,
-<a href="../api_cxx/db_set_h_ffactor.html">Db::set_h_ffactor</a>,
-<a href="../api_cxx/db_set_h_hash.html">Db::set_h_hash</a>,
-<a href="../api_cxx/db_set_h_nelem.html">Db::set_h_nelem</a>,
-<a href="../api_cxx/db_set_lorder.html">Db::set_lorder</a>,
-<a href="../api_cxx/db_set_malloc.html">Db::set_malloc</a>,
-<a href="../api_cxx/db_set_pagesize.html">Db::set_pagesize</a>,
-<a href="../api_cxx/db_set_paniccall.html">Db::set_paniccall</a>,
-<a href="../api_cxx/db_set_q_extentsize.html">Db::set_q_extentsize</a>,
-<a href="../api_cxx/db_set_realloc.html">Db::set_realloc</a>,
-<a href="../api_cxx/db_set_re_delim.html">Db::set_re_delim</a>,
-<a href="../api_cxx/db_set_re_len.html">Db::set_re_len</a>,
-<a href="../api_cxx/db_set_re_pad.html">Db::set_re_pad</a>,
-<a href="../api_cxx/db_set_re_source.html">Db::set_re_source</a>,
-<a href="../api_cxx/db_stat.html">Db::stat</a>,
-<a href="../api_cxx/db_sync.html">Db::sync</a>,
-<a href="../api_cxx/db_upgrade.html">Db::upgrade</a>
-and
-<a href="../api_cxx/db_verify.html">Db::verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/db_stat.html b/bdb/docs/api_cxx/db_stat.html
deleted file mode 100644
index 4245fd91704..00000000000
--- a/bdb/docs/api_cxx/db_stat.html
+++ /dev/null
@@ -1,201 +0,0 @@
-<!--$Id: db_stat.so,v 10.37 2000/10/03 21:55:45 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db::stat</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db::stat</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-extern "C" {
- typedef void *(*db_malloc_fcn_type)(size_t);
-};
-int
-Db::stat(void *sp, db_malloc_fcn_type db_malloc, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The Db::stat method creates a statistical structure and
-copies a pointer to it into user-specified memory locations.
-Specifically, if <b>sp</b> is non-NULL, a pointer to the statistics
-for the database are copied into the memory location it references.
-<p>Statistical structures are created in allocated memory. If <b>db_malloc</b> is non-NULL, it
-is called to allocate the memory, otherwise, the library function
-<b>malloc</b>(3) is used. The function <b>db_malloc</b> must match
-the calling conventions of the <b>malloc</b>(3) library routine.
-Regardless, the caller is responsible for deallocating the returned
-memory. To deallocate returned memory, free the returned memory
-reference, references inside the returned memory do not need to be
-individually freed.
-<p>The <b>flags</b> parameter must be set to 0 or the following value:
-<p><dl compact>
-<p><dt><a name="DB_CACHED_COUNTS">DB_CACHED_COUNTS</a><dd>Return a cached count of the keys and records in a database. This flag
-makes it possible for applications to request an possibly approximate key
-and record count without incurring the performance penalty of traversing
-the entire database. The statistics information described for the access
-method <b>XX_nkeys</b> and <b>XX_ndata</b> fields below is filled in,
-but no other information is collected. If the cached information has
-never been set, the fields will be returned set to 0.
-<p><dt><a name="DB_RECORDCOUNT">DB_RECORDCOUNT</a><dd>Return a count of the records in a Btree or Recno Access Method database.
-This flag makes it possible for applications to request a record count
-without incurring the performance penalty of traversing the entire
-database. The statistics information described for the <b>bt_nkeys</b>
-field below is filled in, but no other information is collected.
-<p>This option is only available for Recno databases, or Btree databases
-where the underlying database was created with the <a href="../api_cxx/db_set_flags.html#DB_RECNUM">DB_RECNUM</a>
-flag.
-</dl>
-<p>The Db::stat method may access all of the pages in the database,
-incurring a severe performance penalty as well as possibly flushing the
-underlying buffer pool.
-<p>In the presence of multiple threads or processes accessing an active
-database, the information returned by Db::stat may be out-of-date.
-<p>If the database was not opened readonly and the DB_CACHED_COUNTS
-flag was not specified, the cached key and record numbers will be updated
-after the statistical information has been gathered.
-<p>The Db::stat method cannot be transaction protected. For this reason,
-it should be called in a thread of control that has no open cursors or
-active transactions.
-<p>The Db::stat method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h3>Hash Statistics</h3>
-<p>In the case of a Hash database,
-the statistics are stored in a structure of type DB_HASH_STAT. The
-following fields will be filled in:
-<p><dl compact>
-<p><dt>u_int32_t hash_magic;<dd>Magic number that identifies the file as a Hash file.
-<dt>u_int32_t hash_version;<dd>The version of the Hash database.
-<dt>u_int32_t hash_nkeys;<dd>The number of unique keys in the database.
-<dt>u_int32_t hash_ndata;<dd>The number of key/data pairs in the database.]
-<dt>u_int32_t hash_pagesize;<dd>The underlying Hash database page (and bucket) size.
-<dt>u_int32_t hash_nelem;<dd>The estimated size of the hash table specified at database creation time.
-<dt>u_int32_t hash_ffactor;<dd>The desired fill factor (number of items per bucket) specified at database
-creation time.
-<dt>u_int32_t hash_buckets;<dd>The number of hash buckets.
-<dt>u_int32_t hash_free;<dd>The number of pages on the free list.
-<dt>u_int32_t hash_bfree;<dd>The number of bytes free on bucket pages.
-<dt>u_int32_t hash_bigpages;<dd>The number of big key/data pages.
-<dt>u_int32_t hash_big_bfree;<dd>The number of bytes free on big item pages.
-<dt>u_int32_t hash_overflows;<dd>The number of overflow pages (overflow pages are pages that contain items
-that did not fit in the main bucket page).
-<dt>u_int32_t hash_ovfl_free;<dd>The number of bytes free on overflow pages.
-<dt>u_int32_t hash_dup;<dd>The number of duplicate pages.
-<dt>u_int32_t hash_dup_free;<dd>The number of bytes free on duplicate pages.
-</dl>
-<h3>Btree and Recno Statistics</h3>
-<p>In the case of a Btree or Recno database,
-the statistics are stored in a structure of type DB_BTREE_STAT. The
-following fields will be filled in:
-<p><dl compact>
-<p><dt>u_int32_t bt_magic;<dd>Magic number that identifies the file as a Btree database.
-<dt>u_int32_t bt_version;<dd>The version of the Btree database.
-<dt>u_int32_t bt_nkeys;<dd>For the Btree Access Method, the number of unique keys in the database.
-<p>For the Recno Access Method, the number of records in the database.
-<dt>u_int32_t bt_ndata;<dd>For the Btree Access Method, the number of key/data pairs in the database.
-<p>For the Recno Access Method, the number of records in the database. If
-the database has been configured to not re-number records during
-deletion, the number of records will only reflect undeleted records.
-<dt>u_int32_t bt_pagesize;<dd>Underlying database page size.
-<dt>u_int32_t bt_minkey;<dd>The minimum keys per page.
-<dt>u_int32_t bt_re_len;<dd>The length of fixed-length records.
-<dt>u_int32_t bt_re_pad;<dd>The padding byte value for fixed-length records.
-<dt>u_int32_t bt_levels;<dd>Number of levels in the database.
-<dt>u_int32_t bt_int_pg;<dd>Number of database internal pages.
-<dt>u_int32_t bt_leaf_pg;<dd>Number of database leaf pages.
-<dt>u_int32_t bt_dup_pg;<dd>Number of database duplicate pages.
-<dt>u_int32_t bt_over_pg;<dd>Number of database overflow pages.
-<dt>u_int32_t bt_free;<dd>Number of pages on the free list.
-<dt>u_int32_t bt_int_pgfree;<dd>Number of bytes free in database internal pages.
-<dt>u_int32_t bt_leaf_pgfree;<dd>Number of bytes free in database leaf pages.
-<dt>u_int32_t bt_dup_pgfree;<dd>Number of bytes free in database duplicate pages.
-<dt>u_int32_t bt_over_pgfree;<dd>Number of bytes free in database overflow pages.
-</dl>
-<h3>Queue Statistics</h3>
-<p>In the case of a Queue database,
-the statistics are stored in a structure of type DB_QUEUE_STAT. The
-following fields will be filled in:
-<p><dl compact>
-<p><dt>u_int32_t qs_magic;<dd>Magic number that identifies the file as a Queue file.
-<dt>u_int32_t qs_version;<dd>The version of the Queue file type.
-<dt>u_int32_t qs_nkeys;<dd>The number of records in the database.
-<dt>u_int32_t qs_ndata;<dd>The number of records in the database.
-<dt>u_int32_t qs_pagesize;<dd>Underlying database page size.
-<dt>u_int32_t qs_pages;<dd>Number of pages in the database.
-<dt>u_int32_t qs_re_len;<dd>The length of the records.
-<dt>u_int32_t qs_re_pad;<dd>The padding byte value for the records.
-<dt>u_int32_t qs_pgfree;<dd>Number of bytes free in database pages.
-<dt>u_int32_t qs_start;<dd>Start offset.
-<dt>u_int32_t qs_first_recno;<dd>First undeleted record in the database.
-<dt>u_int32_t qs_cur_recno;<dd>Last allocated record number in the database.
-</dl>
-<p>The Db::stat method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p>The Db::stat method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the Db::stat method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Class</h3>
-<a href="../api_cxx/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_cxx/db_close.html">Db::close</a>,
-<a href="../api_cxx/db_cursor.html">Db::cursor</a>,
-<a href="../api_cxx/db_del.html">Db::del</a>,
-<a href="../api_cxx/db_err.html">Db::err</a>,
-<a href="../api_cxx/db_fd.html">Db::fd</a>,
-<a href="../api_cxx/db_get.html">Db::get</a>,
-<a href="../api_cxx/db_get_byteswapped.html">Db::get_byteswapped</a>,
-<a href="../api_cxx/db_get_type.html">Db::get_type</a>,
-<a href="../api_cxx/db_join.html">Db::join</a>,
-<a href="../api_cxx/db_key_range.html">Db::key_range</a>,
-<a href="../api_cxx/db_open.html">Db::open</a>,
-<a href="../api_cxx/db_put.html">Db::put</a>,
-<a href="../api_cxx/db_remove.html">Db::remove</a>,
-<a href="../api_cxx/db_set_bt_compare.html">Db::set_bt_compare</a>,
-<a href="../api_cxx/db_set_bt_minkey.html">Db::set_bt_minkey</a>,
-<a href="../api_cxx/db_set_bt_prefix.html">Db::set_bt_prefix</a>,
-<a href="../api_cxx/db_set_cachesize.html">Db::set_cachesize</a>,
-<a href="../api_cxx/db_set_dup_compare.html">Db::set_dup_compare</a>,
-<a href="../api_cxx/db_set_errcall.html">Db::set_errcall</a>,
-<a href="../api_cxx/db_set_errfile.html">Db::set_errfile</a>,
-<a href="../api_cxx/db_set_errpfx.html">Db::set_errpfx</a>,
-<a href="../api_cxx/db_set_flags.html">Db::set_flags</a>,
-<a href="../api_cxx/db_set_h_ffactor.html">Db::set_h_ffactor</a>,
-<a href="../api_cxx/db_set_h_hash.html">Db::set_h_hash</a>,
-<a href="../api_cxx/db_set_h_nelem.html">Db::set_h_nelem</a>,
-<a href="../api_cxx/db_set_lorder.html">Db::set_lorder</a>,
-<a href="../api_cxx/db_set_malloc.html">Db::set_malloc</a>,
-<a href="../api_cxx/db_set_pagesize.html">Db::set_pagesize</a>,
-<a href="../api_cxx/db_set_paniccall.html">Db::set_paniccall</a>,
-<a href="../api_cxx/db_set_q_extentsize.html">Db::set_q_extentsize</a>,
-<a href="../api_cxx/db_set_realloc.html">Db::set_realloc</a>,
-<a href="../api_cxx/db_set_re_delim.html">Db::set_re_delim</a>,
-<a href="../api_cxx/db_set_re_len.html">Db::set_re_len</a>,
-<a href="../api_cxx/db_set_re_pad.html">Db::set_re_pad</a>,
-<a href="../api_cxx/db_set_re_source.html">Db::set_re_source</a>,
-<a href="../api_cxx/db_stat.html">Db::stat</a>,
-<a href="../api_cxx/db_sync.html">Db::sync</a>,
-<a href="../api_cxx/db_upgrade.html">Db::upgrade</a>
-and
-<a href="../api_cxx/db_verify.html">Db::verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/db_sync.html b/bdb/docs/api_cxx/db_sync.html
deleted file mode 100644
index 170d99127f5..00000000000
--- a/bdb/docs/api_cxx/db_sync.html
+++ /dev/null
@@ -1,101 +0,0 @@
-<!--$Id: db_sync.so,v 10.20 2000/09/08 15:20:28 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db::sync</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db::sync</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-Db::sync(u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The Db::sync method flushes any cached information to disk.
-<p>If the database is in memory only, the Db::sync method has no effect and
-will always succeed.
-<p>The <b>flags</b> parameter is currently unused, and must be set to 0.
-<p>See <a href="../api_cxx/db_close.html">Db::close</a> for a discussion of Berkeley DB and cached data.
-<p>The Db::sync method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, 0 on success, and returns <a href="../api_c/memp_fsync.html#DB_INCOMPLETE">DB_INCOMPLETE</a> if the underlying database still has
-dirty pages in the cache. (The only reason to return
-<a href="../api_c/memp_fsync.html#DB_INCOMPLETE">DB_INCOMPLETE</a> is if another thread of control was writing pages
-in the underlying database file at the same time as the
-Db::sync method was being called. For this reason, a return of
-<a href="../api_c/memp_fsync.html#DB_INCOMPLETE">DB_INCOMPLETE</a> can normally be ignored, or, in cases where it is
-a possible return value, there may be no reason to call
-Db::sync.)
-<h1>Errors</h1>
-<p>The Db::sync method may fail and throw an exception or return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<p>The Db::sync method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the Db::sync method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Class</h3>
-<a href="../api_cxx/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_cxx/db_close.html">Db::close</a>,
-<a href="../api_cxx/db_cursor.html">Db::cursor</a>,
-<a href="../api_cxx/db_del.html">Db::del</a>,
-<a href="../api_cxx/db_err.html">Db::err</a>,
-<a href="../api_cxx/db_fd.html">Db::fd</a>,
-<a href="../api_cxx/db_get.html">Db::get</a>,
-<a href="../api_cxx/db_get_byteswapped.html">Db::get_byteswapped</a>,
-<a href="../api_cxx/db_get_type.html">Db::get_type</a>,
-<a href="../api_cxx/db_join.html">Db::join</a>,
-<a href="../api_cxx/db_key_range.html">Db::key_range</a>,
-<a href="../api_cxx/db_open.html">Db::open</a>,
-<a href="../api_cxx/db_put.html">Db::put</a>,
-<a href="../api_cxx/db_remove.html">Db::remove</a>,
-<a href="../api_cxx/db_set_bt_compare.html">Db::set_bt_compare</a>,
-<a href="../api_cxx/db_set_bt_minkey.html">Db::set_bt_minkey</a>,
-<a href="../api_cxx/db_set_bt_prefix.html">Db::set_bt_prefix</a>,
-<a href="../api_cxx/db_set_cachesize.html">Db::set_cachesize</a>,
-<a href="../api_cxx/db_set_dup_compare.html">Db::set_dup_compare</a>,
-<a href="../api_cxx/db_set_errcall.html">Db::set_errcall</a>,
-<a href="../api_cxx/db_set_errfile.html">Db::set_errfile</a>,
-<a href="../api_cxx/db_set_errpfx.html">Db::set_errpfx</a>,
-<a href="../api_cxx/db_set_flags.html">Db::set_flags</a>,
-<a href="../api_cxx/db_set_h_ffactor.html">Db::set_h_ffactor</a>,
-<a href="../api_cxx/db_set_h_hash.html">Db::set_h_hash</a>,
-<a href="../api_cxx/db_set_h_nelem.html">Db::set_h_nelem</a>,
-<a href="../api_cxx/db_set_lorder.html">Db::set_lorder</a>,
-<a href="../api_cxx/db_set_malloc.html">Db::set_malloc</a>,
-<a href="../api_cxx/db_set_pagesize.html">Db::set_pagesize</a>,
-<a href="../api_cxx/db_set_paniccall.html">Db::set_paniccall</a>,
-<a href="../api_cxx/db_set_q_extentsize.html">Db::set_q_extentsize</a>,
-<a href="../api_cxx/db_set_realloc.html">Db::set_realloc</a>,
-<a href="../api_cxx/db_set_re_delim.html">Db::set_re_delim</a>,
-<a href="../api_cxx/db_set_re_len.html">Db::set_re_len</a>,
-<a href="../api_cxx/db_set_re_pad.html">Db::set_re_pad</a>,
-<a href="../api_cxx/db_set_re_source.html">Db::set_re_source</a>,
-<a href="../api_cxx/db_stat.html">Db::stat</a>,
-<a href="../api_cxx/db_sync.html">Db::sync</a>,
-<a href="../api_cxx/db_upgrade.html">Db::upgrade</a>
-and
-<a href="../api_cxx/db_verify.html">Db::verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/db_upgrade.html b/bdb/docs/api_cxx/db_upgrade.html
deleted file mode 100644
index 8cbc3561fe3..00000000000
--- a/bdb/docs/api_cxx/db_upgrade.html
+++ /dev/null
@@ -1,135 +0,0 @@
-<!--$Id: db_upgrade.so,v 10.18 2000/05/01 15:58:04 krinsky Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db::upgrade</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db::upgrade</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-Db::upgrade(const char *file, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The Db::upgrade method upgrades all of the databases included in the
-file <b>file</b>, if necessary. If no upgrade is necessary,
-Db::upgrade always returns success.
-<p><b>Database upgrades are done in place and are destructive, e.g., if pages
-need to be allocated and no disk space is available, the database may be
-left corrupted. Backups should be made before databases are upgraded.
-See <a href="../ref/am/upgrade.html">Upgrading databases</a> for more
-information.</b>
-<p>Unlike all other database operations, Db::upgrade may only be done
-on a system with the same byte-order as the database.
-<p>The <b>flags</b> parameter must be set to 0 or one of the following
-values:
-<p><dl compact>
-<p><dt><a name="DB_DUPSORT">DB_DUPSORT</a><dd><b>This flag is only meaningful when upgrading databases from
-releases before the Berkeley DB 3.1 release.</b>
-<p>As part of the upgrade from the Berkeley DB 3.0 release to the 3.1 release, the
-on-disk format of duplicate data items changed. To correctly upgrade the
-format requires applications specify if duplicate data items in the
-database are sorted or not. Specifying the DB_DUPSORT flag
-informs Db::upgrade that the duplicates are sorted, otherwise they
-are assumed to be unsorted. Incorrectly specifying the value of this flag
-may lead to database corruption.
-<p>Further, because the Db::upgrade method upgrades a physical file
-(including all of the databases it contains), it is not possible to use
-Db::upgrade to upgrade files where some of the databases it
-includes have sorted duplicate data items and some of the databases it
-includes have unsorted duplicate data items. If the file does not have
-more than a single database, or the databases do not support duplicate
-data items, or all of the databases that support duplicate data items
-support the same style of duplicates (either sorted or unsorted),
-Db::upgrade will work correctly as long as the DB_DUPSORT
-flag is correctly specified. Otherwise, the file cannot be upgraded using
-Db::upgrade, and must be upgraded manually by dumping and
-re-loading the databases.
-</dl>
-<p>The Db::upgrade method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Environment Variables</h1>
-<p><dl compact>
-<p><dt>DB_HOME<dd>If the <b>dbenv</b> argument to <a href="../api_c/db_create.html">db_create</a> was initialized using
-<a href="../api_cxx/env_open.html">DbEnv::open</a> the environment variable <b>DB_HOME</b> may be used
-as the path of the database environment home. Specifically, Db::upgrade
-is affected by the configuration value DB_DATA_DIR.
-</dl>
-<h1>Errors</h1>
-<p>The Db::upgrade method may fail and throw an exception or return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>The database is not in the same byte-order as the system.
-</dl>
-<p><dl compact>
-<p><dt><a name="DB_OLD_VERSION">DB_OLD_VERSION</a><dd>The database cannot be upgraded by this version of the Berkeley DB software.
-</dl>
-<p>The Db::upgrade method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the Db::upgrade method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Class</h3>
-<a href="../api_cxx/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_cxx/db_close.html">Db::close</a>,
-<a href="../api_cxx/db_cursor.html">Db::cursor</a>,
-<a href="../api_cxx/db_del.html">Db::del</a>,
-<a href="../api_cxx/db_err.html">Db::err</a>,
-<a href="../api_cxx/db_fd.html">Db::fd</a>,
-<a href="../api_cxx/db_get.html">Db::get</a>,
-<a href="../api_cxx/db_get_byteswapped.html">Db::get_byteswapped</a>,
-<a href="../api_cxx/db_get_type.html">Db::get_type</a>,
-<a href="../api_cxx/db_join.html">Db::join</a>,
-<a href="../api_cxx/db_key_range.html">Db::key_range</a>,
-<a href="../api_cxx/db_open.html">Db::open</a>,
-<a href="../api_cxx/db_put.html">Db::put</a>,
-<a href="../api_cxx/db_remove.html">Db::remove</a>,
-<a href="../api_cxx/db_set_bt_compare.html">Db::set_bt_compare</a>,
-<a href="../api_cxx/db_set_bt_minkey.html">Db::set_bt_minkey</a>,
-<a href="../api_cxx/db_set_bt_prefix.html">Db::set_bt_prefix</a>,
-<a href="../api_cxx/db_set_cachesize.html">Db::set_cachesize</a>,
-<a href="../api_cxx/db_set_dup_compare.html">Db::set_dup_compare</a>,
-<a href="../api_cxx/db_set_errcall.html">Db::set_errcall</a>,
-<a href="../api_cxx/db_set_errfile.html">Db::set_errfile</a>,
-<a href="../api_cxx/db_set_errpfx.html">Db::set_errpfx</a>,
-<a href="../api_cxx/db_set_flags.html">Db::set_flags</a>,
-<a href="../api_cxx/db_set_h_ffactor.html">Db::set_h_ffactor</a>,
-<a href="../api_cxx/db_set_h_hash.html">Db::set_h_hash</a>,
-<a href="../api_cxx/db_set_h_nelem.html">Db::set_h_nelem</a>,
-<a href="../api_cxx/db_set_lorder.html">Db::set_lorder</a>,
-<a href="../api_cxx/db_set_malloc.html">Db::set_malloc</a>,
-<a href="../api_cxx/db_set_pagesize.html">Db::set_pagesize</a>,
-<a href="../api_cxx/db_set_paniccall.html">Db::set_paniccall</a>,
-<a href="../api_cxx/db_set_q_extentsize.html">Db::set_q_extentsize</a>,
-<a href="../api_cxx/db_set_realloc.html">Db::set_realloc</a>,
-<a href="../api_cxx/db_set_re_delim.html">Db::set_re_delim</a>,
-<a href="../api_cxx/db_set_re_len.html">Db::set_re_len</a>,
-<a href="../api_cxx/db_set_re_pad.html">Db::set_re_pad</a>,
-<a href="../api_cxx/db_set_re_source.html">Db::set_re_source</a>,
-<a href="../api_cxx/db_stat.html">Db::stat</a>,
-<a href="../api_cxx/db_sync.html">Db::sync</a>,
-<a href="../api_cxx/db_upgrade.html">Db::upgrade</a>
-and
-<a href="../api_cxx/db_verify.html">Db::verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/db_verify.html b/bdb/docs/api_cxx/db_verify.html
deleted file mode 100644
index 7e742af4c50..00000000000
--- a/bdb/docs/api_cxx/db_verify.html
+++ /dev/null
@@ -1,150 +0,0 @@
-<!--$Id: db_verify.so,v 10.3 2000/04/11 15:13:51 dda Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db::verify</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db::verify</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-Db::verify(const char *file,
- const char *database, ostream *outfile, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The Db::verify method verifies the integrity of all databases in the
-file specified by the file argument, and optionally outputs the databases'
-key/data pairs to a file stream.
-<p>The <b>flags</b> parameter must be set to 0 or one of the following
-values:
-<p><dl compact>
-<p><dt><a name="DB_SALVAGE">DB_SALVAGE</a><dd>Write the key/data pairs from all databases in the file to the file stream
-named in
-the <b>outfile</b> argument. The output format is the same as that
-specified for the <a href="../utility/db_dump.html">db_dump</a> utility and can be used as input for
-the <a href="../utility/db_load.html">db_load</a> utility.
-<p>Because the key/data pairs are output in page order as opposed to the sort
-order used by <a href="../utility/db_dump.html">db_dump</a>, using Db::verify to dump key/data
-pairs normally produces less than optimal loads for Btree databases.
-</dl>
-<p>In addition, the following flags may be set by bitwise inclusively <b>OR</b>'ing them into the
-<b>flags</b> parameter:
-<p><dl compact>
-<p><dt><a name="DB_AGGRESSIVE">DB_AGGRESSIVE</a><dd>Output <b>all</b> the key/data pairs in the file that can be found.
-By default, Db::verify does not assume corruption. For example,
-if a key/data pair on a page is marked as deleted, it is not then written
-to the output file. When DB_AGGRESSIVE is specified, corruption
-is assumed, and any key/data pair that can be found is written. In this
-case, key/data pairs that are corrupted or have been deleted may appear
-in the output (even if the file being salvaged is in no way corrupt), and
-the output will almost certainly require editing before being loaded into
-a database.
-<p><dt><a name="DB_NOORDERCHK">DB_NOORDERCHK</a><dd>Skip the database checks for btree and duplicate sort order and for
-hashing.
-<p>The Db::verify method normally verifies that btree keys and duplicate
-items are correctly sorted and hash keys are correctly hashed. If the
-file being verified contains multiple databases using differing sorting
-or hashing algorithms, some of them must necessarily fail database
-verification as only one sort order or hash function can be specified
-before Db::verify is called. To verify files with multiple
-databases having differing sorting orders or hashing functions, first
-perform verification of the file as a whole by using the
-DB_NOORDERCHK flag, and then individually verify the sort order
-and hashing function for each database in the file using the
-DB_ORDERCHKONLY flag.
-<p><dt><a name="DB_ORDERCHKONLY">DB_ORDERCHKONLY</a><dd>Perform the database checks for btree and duplicate sort order and for
-hashing, skipped by DB_NOORDERCHK.
-<p>When this flag is specified, a <b>database</b> argument should also be
-specified, indicating the database in the physical file which is to be
-checked. This flag is only safe to use on databases that have already
-successfully been verified using Db::verify with the
-DB_NOORDERCHK flag set.
-</dl>
-<p>The database argument must be set to NULL except when the
-DB_ORDERCHKONLY flag is set.
-<p>The Db::verify method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, 0 on success, and <a href="../ref/program/errorret.html#DB_VERIFY_BAD">DB_VERIFY_BAD</a> if a database is corrupted. When the
-DB_SALVAGE flag is specified, the <a href="../ref/program/errorret.html#DB_VERIFY_BAD">DB_VERIFY_BAD</a> return
-means that all key/data pairs in the file may not have been successfully
-output.
-<h1>Environment Variables</h1>
-<p><dl compact>
-<p><dt>DB_HOME<dd>If the <b>dbenv</b> argument to <a href="../api_c/db_create.html">db_create</a> was initialized using
-<a href="../api_cxx/env_open.html">DbEnv::open</a> the environment variable <b>DB_HOME</b> may be used
-as the path of the database environment home. Specifically, Db::verify
-is affected by the configuration value DB_DATA_DIR.
-</dl>
-<h1>Errors</h1>
-<p>The Db::verify method may fail and throw an exception or return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<p>The Db::verify method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the Db::verify method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Class</h3>
-<a href="../api_cxx/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_cxx/db_close.html">Db::close</a>,
-<a href="../api_cxx/db_cursor.html">Db::cursor</a>,
-<a href="../api_cxx/db_del.html">Db::del</a>,
-<a href="../api_cxx/db_err.html">Db::err</a>,
-<a href="../api_cxx/db_fd.html">Db::fd</a>,
-<a href="../api_cxx/db_get.html">Db::get</a>,
-<a href="../api_cxx/db_get_byteswapped.html">Db::get_byteswapped</a>,
-<a href="../api_cxx/db_get_type.html">Db::get_type</a>,
-<a href="../api_cxx/db_join.html">Db::join</a>,
-<a href="../api_cxx/db_key_range.html">Db::key_range</a>,
-<a href="../api_cxx/db_open.html">Db::open</a>,
-<a href="../api_cxx/db_put.html">Db::put</a>,
-<a href="../api_cxx/db_remove.html">Db::remove</a>,
-<a href="../api_cxx/db_set_bt_compare.html">Db::set_bt_compare</a>,
-<a href="../api_cxx/db_set_bt_minkey.html">Db::set_bt_minkey</a>,
-<a href="../api_cxx/db_set_bt_prefix.html">Db::set_bt_prefix</a>,
-<a href="../api_cxx/db_set_cachesize.html">Db::set_cachesize</a>,
-<a href="../api_cxx/db_set_dup_compare.html">Db::set_dup_compare</a>,
-<a href="../api_cxx/db_set_errcall.html">Db::set_errcall</a>,
-<a href="../api_cxx/db_set_errfile.html">Db::set_errfile</a>,
-<a href="../api_cxx/db_set_errpfx.html">Db::set_errpfx</a>,
-<a href="../api_cxx/db_set_flags.html">Db::set_flags</a>,
-<a href="../api_cxx/db_set_h_ffactor.html">Db::set_h_ffactor</a>,
-<a href="../api_cxx/db_set_h_hash.html">Db::set_h_hash</a>,
-<a href="../api_cxx/db_set_h_nelem.html">Db::set_h_nelem</a>,
-<a href="../api_cxx/db_set_lorder.html">Db::set_lorder</a>,
-<a href="../api_cxx/db_set_malloc.html">Db::set_malloc</a>,
-<a href="../api_cxx/db_set_pagesize.html">Db::set_pagesize</a>,
-<a href="../api_cxx/db_set_paniccall.html">Db::set_paniccall</a>,
-<a href="../api_cxx/db_set_q_extentsize.html">Db::set_q_extentsize</a>,
-<a href="../api_cxx/db_set_realloc.html">Db::set_realloc</a>,
-<a href="../api_cxx/db_set_re_delim.html">Db::set_re_delim</a>,
-<a href="../api_cxx/db_set_re_len.html">Db::set_re_len</a>,
-<a href="../api_cxx/db_set_re_pad.html">Db::set_re_pad</a>,
-<a href="../api_cxx/db_set_re_source.html">Db::set_re_source</a>,
-<a href="../api_cxx/db_stat.html">Db::stat</a>,
-<a href="../api_cxx/db_sync.html">Db::sync</a>,
-<a href="../api_cxx/db_upgrade.html">Db::upgrade</a>
-and
-<a href="../api_cxx/db_verify.html">Db::verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/dbc_class.html b/bdb/docs/api_cxx/dbc_class.html
deleted file mode 100644
index ac8081d4ab3..00000000000
--- a/bdb/docs/api_cxx/dbc_class.html
+++ /dev/null
@@ -1,49 +0,0 @@
-<!--$Id: dbc_class.so,v 10.12 1999/12/20 08:52:33 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Dbc</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Dbc</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-class Dbc { ... };
-</pre></h3>
-<h1>Description</h1>
-<p>This manual page describes the specific details of the Dbc class,
-which provides cursor support for the access methods in Db.
-<p>The Dbc functions are the library interface supporting sequential
-access to the records stored by the access methods of the Berkeley DB library.
-Cursors are created by calling the <a href="../api_cxx/db_cursor.html">Db::cursor</a> method which returns a
-pointer to a Dbc object.
-<h3>Class</h3>
-<a href="../api_cxx/dbc_class.html">Dbc</a>
-<h1>See Also</h1>
-<a href="../api_cxx/dbc_close.html">Dbc::close</a>,
-<a href="../api_cxx/dbc_count.html">Dbc::count</a>,
-<a href="../api_cxx/dbc_del.html">Dbc::del</a>,
-<a href="../api_cxx/dbc_dup.html">Dbc::dup</a>,
-<a href="../api_cxx/dbc_get.html">Dbc::get</a>
-and
-<a href="../api_cxx/dbc_put.html">Dbc::put</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/dbc_close.html b/bdb/docs/api_cxx/dbc_close.html
deleted file mode 100644
index 881bc3f7de8..00000000000
--- a/bdb/docs/api_cxx/dbc_close.html
+++ /dev/null
@@ -1,68 +0,0 @@
-<!--$Id: dbc_close.so,v 10.20 2000/03/01 21:41:29 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Dbc::close</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Dbc::close</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-Dbc::close(void);
-</pre></h3>
-<h1>Description</h1>
-<p>The Dbc::close method discards the cursor.
-<p>It is possible for the Dbc::close method to return
-<a href="../ref/program/errorret.html#DB_LOCK_DEADLOCK">DB_LOCK_DEADLOCK</a>, signaling that any enclosing transaction should
-be aborted. If the application is already intending to abort the
-transaction, this error should be ignored, and the application should
-proceed.
-<p>Once Dbc::close has been called, regardless of its return, the
-cursor handle may not be used again.
-<p>The Dbc::close method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p>The Dbc::close method may fail and throw an exception or return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>DB_LOCK_DEADLOCK<dd>The operation was selected to resolve a deadlock.
-</dl>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>The cursor was previously closed.
-</dl>
-<p>The Dbc::close method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the Dbc::close method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Class</h3>
-<a href="../api_cxx/dbc_class.html">Dbc</a>
-<h1>See Also</h1>
-<a href="../api_cxx/dbc_close.html">Dbc::close</a>,
-<a href="../api_cxx/dbc_count.html">Dbc::count</a>,
-<a href="../api_cxx/dbc_del.html">Dbc::del</a>,
-<a href="../api_cxx/dbc_dup.html">Dbc::dup</a>,
-<a href="../api_cxx/dbc_get.html">Dbc::get</a>
-and
-<a href="../api_cxx/dbc_put.html">Dbc::put</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/dbc_count.html b/bdb/docs/api_cxx/dbc_count.html
deleted file mode 100644
index be8f6b8e601..00000000000
--- a/bdb/docs/api_cxx/dbc_count.html
+++ /dev/null
@@ -1,59 +0,0 @@
-<!--$Id: dbc_count.so,v 10.4 2000/03/01 21:41:29 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Dbc::count</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Dbc::count</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-Dbc::count(db_recno_t *countp, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The Dbc::count method returns a count of the number of duplicate data
-items for the key referenced by the
-cursor into the memory location referenced by <b>countp</b>.
-If the underlying database does not support duplicate data items the call
-will still succeed and a count of 1 will be returned.
-<p>The <b>flags</b> parameter is currently unused, and must be set to 0.
-<p>If the <b>cursor</b> argument is not yet initialized, the Dbc::count method either returns EINVAL or throws an exception that encapsulates EINVAL.
-<p>Otherwise, the Dbc::count method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p>The Dbc::count method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the Dbc::count method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Class</h3>
-<a href="../api_cxx/dbc_class.html">Dbc</a>
-<h1>See Also</h1>
-<a href="../api_cxx/dbc_close.html">Dbc::close</a>,
-<a href="../api_cxx/dbc_count.html">Dbc::count</a>,
-<a href="../api_cxx/dbc_del.html">Dbc::del</a>,
-<a href="../api_cxx/dbc_dup.html">Dbc::dup</a>,
-<a href="../api_cxx/dbc_get.html">Dbc::get</a>
-and
-<a href="../api_cxx/dbc_put.html">Dbc::put</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/dbc_del.html b/bdb/docs/api_cxx/dbc_del.html
deleted file mode 100644
index 18f6959a8b3..00000000000
--- a/bdb/docs/api_cxx/dbc_del.html
+++ /dev/null
@@ -1,72 +0,0 @@
-<!--$Id: dbc_del.so,v 10.23 2000/05/22 20:51:46 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Dbc::del</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Dbc::del</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-Dbc::del(u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The Dbc::del method deletes the key/data pair currently referenced by
-the cursor.
-<p>The <b>flags</b> parameter is currently unused, and must be set to 0.
-<p>The cursor position is unchanged after a delete, and subsequent calls to
-cursor functions expecting the cursor to reference an existing key will
-fail.
-<p>If the element has already been deleted, Dbc::del will return
-<a href="../ref/program/errorret.html#DB_KEYEMPTY">DB_KEYEMPTY</a>.
-<p>If the cursor is not yet initialized, the Dbc::del method either returns EINVAL or throws an exception that encapsulates EINVAL.
-<p>Otherwise, the Dbc::del method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p>The Dbc::del method may fail and throw an exception or return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>DB_LOCK_DEADLOCK<dd>The operation was selected to resolve a deadlock.
-</dl>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<p><dl compact>
-<p><dt>EPERM <dd>Write attempted on read-only cursor when the <a href="../api_cxx/env_open.html#DB_INIT_CDB">DB_INIT_CDB</a> flag was
-specified to <a href="../api_cxx/env_open.html">DbEnv::open</a>.
-</dl>
-<p>The Dbc::del method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the Dbc::del method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Class</h3>
-<a href="../api_cxx/dbc_class.html">Dbc</a>
-<h1>See Also</h1>
-<a href="../api_cxx/dbc_close.html">Dbc::close</a>,
-<a href="../api_cxx/dbc_count.html">Dbc::count</a>,
-<a href="../api_cxx/dbc_del.html">Dbc::del</a>,
-<a href="../api_cxx/dbc_dup.html">Dbc::dup</a>,
-<a href="../api_cxx/dbc_get.html">Dbc::get</a>
-and
-<a href="../api_cxx/dbc_put.html">Dbc::put</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/dbc_dup.html b/bdb/docs/api_cxx/dbc_dup.html
deleted file mode 100644
index 5dec52e46a6..00000000000
--- a/bdb/docs/api_cxx/dbc_dup.html
+++ /dev/null
@@ -1,76 +0,0 @@
-<!--$Id: dbc_dup.so,v 10.8 2000/03/17 01:53:58 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Dbc::dup</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Dbc::dup</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-Dbc::dup(Dbc **cursorp, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The Dbc::dup method creates a new cursor that uses the same transaction
-and locker ID as the original cursor. This is useful when an application
-is using locking and requires two or more cursors in the same thread of
-control.
-<p>The <b>flags</b> value must be set to 0 or by bitwise inclusively <b>OR</b>'ing together one or more
-of the following values.
-<p><dl compact>
-<p><dt><a name="DB_POSITION">DB_POSITION</a><dd>The newly created cursor is initialized to reference the same position
-in the database as the original cursor and hold the same locks. If the
-DB_POSITION flag is not specified, then the created cursor is
-uninitialized and will behave like a cursor newly created using
-<a href="../api_cxx/db_cursor.html">Db::cursor</a>.
-</dl>
-<p>When using the Berkeley DB Concurrent Data Store product, there can be only one active write cursor
-at a time. For this reason, attempting to duplicate a cursor for which
-the <a href="../api_cxx/db_cursor.html#DB_WRITECURSOR">DB_WRITECURSOR</a> flag was specified during creation will return
-an error.
-<p>If the <b>cursor</b> argument is not yet initialized, the Dbc::dup method either returns EINVAL or throws an exception that encapsulates EINVAL.
-<p>Otherwise, the Dbc::dup method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p>The Dbc::dup method may fail and throw an exception or return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>The <b>cursor</b> argument was created using the
-<a href="../api_cxx/db_cursor.html#DB_WRITECURSOR">DB_WRITECURSOR</a> flag in the Berkeley DB Concurrent Data Store product.
-</dl>
-<p>The Dbc::dup method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the Dbc::dup method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Class</h3>
-<a href="../api_cxx/dbc_class.html">Dbc</a>
-<h1>See Also</h1>
-<a href="../api_cxx/dbc_close.html">Dbc::close</a>,
-<a href="../api_cxx/dbc_count.html">Dbc::count</a>,
-<a href="../api_cxx/dbc_del.html">Dbc::del</a>,
-<a href="../api_cxx/dbc_dup.html">Dbc::dup</a>,
-<a href="../api_cxx/dbc_get.html">Dbc::get</a>
-and
-<a href="../api_cxx/dbc_put.html">Dbc::put</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/dbc_get.html b/bdb/docs/api_cxx/dbc_get.html
deleted file mode 100644
index d42a194e514..00000000000
--- a/bdb/docs/api_cxx/dbc_get.html
+++ /dev/null
@@ -1,170 +0,0 @@
-<!--$Id: dbc_get.so,v 10.46 2001/01/19 17:29:46 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Dbc::get</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Dbc::get</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-Dbc::get(Dbt *key, Dbt *data, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The Dbc::get method retrieves key/data pairs from the database. The
-address and length of the key
-are returned in the object referenced by <b>key</b> (except for the case
-of the DB_SET flag where the <b>key</b> object is unchanged),
-and the address and length of
-the data are returned in the object referenced by <b>data</b>.
-<p>Modifications to the database during a sequential scan will be reflected
-in the scan, i.e. records inserted behind a cursor will not be returned
-while records inserted in front of a cursor will be returned.
-<p>In Queue and Recno databases, missing entries (i.e., entries that were
-never explicitly created or that were created and then deleted), will be
-skipped during a sequential scan.
-<p>If multiple threads or processes insert items into the same database file
-without using locking, the results are undefined.
-For more detail,
-see <a href="../ref/am/stability.html">Cursor stability</a>.
-<p>The <b>flags</b> parameter must be set to one of the following values:
-<p><dl compact>
-<p><dt><a name="DB_CURRENT">DB_CURRENT</a><dd>Return the key/data pair currently referenced by the cursor.
-<p>If the cursor key/data pair was deleted, Dbc::get will return
-<a href="../ref/program/errorret.html#DB_KEYEMPTY">DB_KEYEMPTY</a>.
-<p>If the cursor is not yet initialized, the Dbc::get method either returns EINVAL or throws an exception that encapsulates EINVAL.
-<p><dt><a name="DB_FIRST">DB_FIRST</a>, <a name="DB_LAST">DB_LAST</a><dd>The cursor is set to reference the first (last) key/data pair of the
-database, and that pair is returned. In the presence of duplicate key
-values, the first (last) data item in the set of duplicates is returned.
-<p>If the database is a Queue or Recno database, Dbc::get using the
-DB_FIRST (DB_LAST) flags will ignore any keys that exist
-but were never explicitly created by the application or were created and
-later deleted.
-<p>If the database is empty, Dbc::get will return <a href="../ref/program/errorret.html#DB_NOTFOUND">DB_NOTFOUND</a>.
-<p><dt><a name="DB_GET_BOTH">DB_GET_BOTH</a><dd>The DB_GET_BOTH flag is identical to the DB_SET flag,
-except that both the key and the data arguments must be matched by the
-key and data item in the database.
-<p><dt><a name="DB_GET_RECNO">DB_GET_RECNO</a><dd>Return the record number associated with the cursor. The record number
-will be returned in <b>data</b> as described in <a href="../api_cxx/dbt_class.html">Dbt</a>. The
-<b>key</b> parameter is ignored.
-<p>For DB_GET_RECNO to be specified, the underlying database must be
-of type Btree and it must have been created with the <a href="../api_cxx/db_set_flags.html#DB_RECNUM">DB_RECNUM</a>
-flag.
-<p><dt><a name="DB_JOIN_ITEM">DB_JOIN_ITEM</a><dd>Do not use the data value found in all of the cursors as a lookup key for
-the primary database, but simply return it in the key parameter instead.
-The data parameter is left unchanged.
-<p>For DB_JOIN_ITEM to be specified, the underlying cursor must have
-been returned from the <a href="../api_cxx/db_join.html">Db::join</a> method.
-<p><dt><a name="DB_NEXT">DB_NEXT</a>, <a name="DB_PREV">DB_PREV</a><dd>If the cursor is not yet initialized, DB_NEXT (DB_PREV)
-is identical to DB_FIRST (DB_LAST). Otherwise, the cursor
-is moved to the next (previous) key/data pair of the database, and that
-pair is returned. In the presence of duplicate key values, the value of
-the key may not change.
-<p>If the database is a Queue or Recno database, Dbc::get using the
-DB_NEXT (DB_PREV) flag will skip any keys that exist but
-were never explicitly created by the application or were created and later
-deleted.
-<p>If the cursor is already on the last (first) record in the database,
-Dbc::get will return <a href="../ref/program/errorret.html#DB_NOTFOUND">DB_NOTFOUND</a>.
-<p><dt><a name="DB_NEXT_DUP">DB_NEXT_DUP</a><dd>If the next key/data pair of the database is a duplicate record for the
-current key/data pair, the cursor is moved to the next key/data pair of
-the database, and that pair is returned. Otherwise, Dbc::get will
-return <a href="../ref/program/errorret.html#DB_NOTFOUND">DB_NOTFOUND</a>.
-<p>If the cursor is not yet initialized, the Dbc::get method either returns EINVAL or throws an exception that encapsulates EINVAL.
-<p><dt><a name="DB_NEXT_NODUP">DB_NEXT_NODUP</a>, <a name="DB_PREV_NODUP">DB_PREV_NODUP</a><dd>If the cursor is not yet initialized, DB_NEXT_NODUP
-(DB_PREV_NODUP) is identical to DB_FIRST
-(DB_LAST). Otherwise, the cursor is moved to the next (previous)
-non-duplicate key/data pair of the database, and that pair is returned.
-<p>If the database is a Queue or Recno database, Dbc::get using the
-DB_NEXT_NODUP (DB_PREV_NODUP) flags will ignore any keys
-that exist but were never explicitly created by the application or were
-created and later deleted.
-<p>If no non-duplicate key/data pairs occur after (before) the cursor
-position in the database, Dbc::get will return <a href="../ref/program/errorret.html#DB_NOTFOUND">DB_NOTFOUND</a>.
-<p><dt><a name="DB_SET">DB_SET</a><dd>Move the cursor to the specified key/data pair of the database, and
-return the datum associated with the given key.
-<p>In the presence of duplicate key values, Dbc::get will return the
-first data item for the given key.
-<p>If the database is a Queue or Recno database and the requested key exists,
-but was never explicitly created by the application or was later deleted,
-Dbc::get will return <a href="../ref/program/errorret.html#DB_KEYEMPTY">DB_KEYEMPTY</a>.
-<p>If no matching keys are found, Dbc::get will return
-<a href="../ref/program/errorret.html#DB_NOTFOUND">DB_NOTFOUND</a>.
-<p><dt><a name="DB_SET_RANGE">DB_SET_RANGE</a><dd>The DB_SET_RANGE flag is identical to the DB_SET flag,
-except that the key is returned as well as the data item, and, in the case
-of the Btree access method, the returned key/data pair is the smallest
-key greater than or equal to the specified key (as determined by the
-comparison method), permitting partial key matches and range
-searches.
-<p><dt><a name="DB_SET_RECNO">DB_SET_RECNO</a><dd>Move the cursor to the specific numbered record of the database, and
-return the associated key/data pair. The <b>data</b> field of the
-specified <b>key</b>
-must be a pointer to a memory location from which a <a href="../api_cxx/dbt_class.html#db_recno_t">db_recno_t</a>
-may be read, as described in <a href="../api_cxx/dbt_class.html">Dbt</a>. This memory location will be
-read to determine the record to be retrieved.
-<p>For DB_SET_RECNO to be specified, the underlying database must be
-of type Btree and it must have been created with the <a href="../api_cxx/db_set_flags.html#DB_RECNUM">DB_RECNUM</a>
-flag.
-</dl>
-<p>In addition, the following flag may be set by bitwise inclusively <b>OR</b>'ing it into the
-<b>flags</b> parameter:
-<p><dl compact>
-<p><dt><a name="DB_RMW">DB_RMW</a><dd>Acquire write locks instead of read locks when doing the retrieval.
-Setting this flag may decrease the likelihood of deadlock during a
-read-modify-write cycle by immediately acquiring the write lock during
-the read part of the cycle so that another thread of control acquiring
-a read lock for the same item, in its own read-modify-write cycle, will
-not result in deadlock.
-</dl>
-<p>Otherwise, the Dbc::get method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<p>If Dbc::get fails for any reason, the state of the cursor will be
-unchanged.
-<h1>Errors</h1>
-<p>The Dbc::get method may fail and throw an exception or return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>DB_LOCK_DEADLOCK<dd>The operation was selected to resolve a deadlock.
-</dl>
-<p><dl compact>
-<p><dt>ENOMEM<dd>There was insufficient memory to return the requested item.
-</dl>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>The specified cursor was not currently initialized.
-</dl>
-<p>The Dbc::get method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the Dbc::get method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Class</h3>
-<a href="../api_cxx/dbc_class.html">Dbc</a>
-<h1>See Also</h1>
-<a href="../api_cxx/dbc_close.html">Dbc::close</a>,
-<a href="../api_cxx/dbc_count.html">Dbc::count</a>,
-<a href="../api_cxx/dbc_del.html">Dbc::del</a>,
-<a href="../api_cxx/dbc_dup.html">Dbc::dup</a>,
-<a href="../api_cxx/dbc_get.html">Dbc::get</a>
-and
-<a href="../api_cxx/dbc_put.html">Dbc::put</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/dbc_put.html b/bdb/docs/api_cxx/dbc_put.html
deleted file mode 100644
index 05a95cd36bc..00000000000
--- a/bdb/docs/api_cxx/dbc_put.html
+++ /dev/null
@@ -1,158 +0,0 @@
-<!--$Id: dbc_put.so,v 10.33 2000/12/04 17:02:01 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Dbc::put</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Dbc::put</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-Dbc::put(Dbt *key, Dbt *data, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The Dbc::put method stores key/data pairs into the database.
-<p>The <b>flags</b> parameter must be set to one of the following values:
-<p><dl compact>
-<p><dt><a name="DB_AFTER">DB_AFTER</a><dd>In the case of the Btree and Hash access methods, insert the data
-element as a duplicate element of the key referenced by the cursor.
-The new element appears immediately after the current cursor position.
-It is an error to specify DB_AFTER if the underlying Btree or
-Hash database does not support duplicate data items. The <b>key</b>
-parameter is ignored.
-<p>In the case of the Recno access method, it is an error to specify
-DB_AFTER if the underlying Recno database was not created with
-the <a href="../api_cxx/db_set_flags.html#DB_RENUMBER">DB_RENUMBER</a> flag. If the <a href="../api_cxx/db_set_flags.html#DB_RENUMBER">DB_RENUMBER</a> flag was
-specified, a new key is created, all records after the inserted item
-are automatically renumbered, and the key of the new record is returned
-in the structure referenced by the parameter <b>key</b>. The initial
-value of the <b>key</b> parameter is ignored. See <a href="../api_cxx/db_open.html">Db::open</a>
-for more information.
-<p>The DB_AFTER flag may not be specified to the Queue access method.
-<p>If the current cursor record has already been deleted and the underlying
-access method is Hash, Dbc::put will return <a href="../ref/program/errorret.html#DB_NOTFOUND">DB_NOTFOUND</a>.
-If the underlying access method is Btree or Recno, the operation will
-succeed.
-<p>If the cursor is not yet initialized or a duplicate sort function has been
-specified, the Dbc::put function will return EINVAL.
-<p><dt><a name="DB_BEFORE">DB_BEFORE</a><dd>In the case of the Btree and Hash access methods, insert the data element
-as a duplicate element of the key referenced by the cursor. The new
-element appears immediately before the current cursor position. It is
-an error to specify DB_BEFORE if the underlying Btree or Hash
-database does not support duplicate data items. The <b>key</b>
-parameter is ignored.
-<p>In the case of the Recno access method, it is an error to specify
-DB_BEFORE if the underlying Recno database was not created with
-the <a href="../api_cxx/db_set_flags.html#DB_RENUMBER">DB_RENUMBER</a> flag. If the <a href="../api_cxx/db_set_flags.html#DB_RENUMBER">DB_RENUMBER</a> flag was
-specified, a new key is created, the current record and all records
-after it are automatically renumbered, and the key of the new record is
-returned in the structure referenced by the parameter <b>key</b>. The
-initial value of the <b>key</b> parameter is ignored. See
-<a href="../api_cxx/db_open.html">Db::open</a> for more information.
-<p>The DB_BEFORE flag may not be specified to the Queue access method.
-<p>If the current cursor record has already been deleted and the underlying
-access method is Hash, Dbc::put will return <a href="../ref/program/errorret.html#DB_NOTFOUND">DB_NOTFOUND</a>.
-If the underlying access method is Btree or Recno, the operation will
-succeed.
-<p>If the cursor is not yet initialized or a duplicate sort function has been
-specified, Dbc::put will return EINVAL.
-<p><dt><a name="DB_CURRENT">DB_CURRENT</a><dd>Overwrite the data of the key/data pair referenced by the cursor with the
-specified data item. The <b>key</b> parameter is ignored.
-<p>If a duplicate sort function has been specified and the data item of the
-current referenced key/data pair does not compare equally to the <b>data</b>
-parameter, Dbc::put will return EINVAL.
-<p>If the current cursor record has already been deleted and the underlying
-access method is Hash, Dbc::put will return <a href="../ref/program/errorret.html#DB_NOTFOUND">DB_NOTFOUND</a>.
-If the underlying access method is Btree, Queue or Recno, the operation
-will succeed.
-<p>If the cursor is not yet initialized, Dbc::put will return EINVAL.
-<p><dt><a name="DB_KEYFIRST">DB_KEYFIRST</a><dd>In the case of the Btree and Hash access methods, insert the specified
-key/data pair into the database.
-<p>If the underlying database supports duplicate data items, and if the
-key already exists in the database and a duplicate sort function has
-been specified, the inserted data item is added in its sorted location.
-If the key already exists in the database and no duplicate sort function
-has been specified, the inserted data item is added as the first of the
-data items for that key.
-<p>The DB_KEYFIRST flag may not be specified to the Queue or Recno
-access methods.
-<p><dt><a name="DB_KEYLAST">DB_KEYLAST</a><dd>In the case of the Btree and Hash access methods, insert the specified
-key/data pair into the database.
-<p>If the underlying database supports duplicate data items, and if the
-key already exists in the database and a duplicate sort function has
-been specified, the inserted data item is added in its sorted location.
-If the key already exists in the database, and no duplicate sort
-function has been specified, the inserted data item is added as the last
-of the data items for that key.
-<p>The DB_KEYLAST flag may not be specified to the Queue or Recno
-access methods.
-<p><dt><a name="DB_NODUPDATA">DB_NODUPDATA</a><dd>In the case of the Btree and Hash access methods, insert the specified
-key/data pair into the database unless it already exists in the database.
-If the key/data pair already appears in the database, <a href="../api_cxx/dbc_put.html#DB_KEYEXIST">DB_KEYEXIST</a>
-is returned. The DB_NODUPDATA flag may only be specified if
-the underlying database has been configured to support sorted duplicate
-data items.
-<p>The DB_NODUPDATA flag may not be specified to the Queue or Recno
-access methods.
-</dl>
-<p>Otherwise, the Dbc::put method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<p>If Dbc::put fails for any reason, the state of the cursor will be
-unchanged. If Dbc::put succeeds and an item is inserted into the
-database, the cursor is always positioned to reference the newly inserted
-item.
-<h1>Errors</h1>
-<p>The Dbc::put method may fail and throw an exception or return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>DB_LOCK_DEADLOCK<dd>The operation was selected to resolve a deadlock.
-</dl>
-<p><dl compact>
-<p><dt>EACCES<dd>An attempt was made to modify a read-only database.
-</dl>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>The DB_BEFORE or DB_AFTER flags were specified, and the
-underlying access method is Queue.
-<p>An attempt was made to add a record to a fixed-length database that was too
-large to fit.
-</dl>
-<p><dl compact>
-<p><dt>EPERM <dd>Write attempted on read-only cursor when the <a href="../api_cxx/env_open.html#DB_INIT_CDB">DB_INIT_CDB</a> flag was
-specified to <a href="../api_cxx/env_open.html">DbEnv::open</a>.
-</dl>
-<p>The Dbc::put method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the Dbc::put method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Class</h3>
-<a href="../api_cxx/dbc_class.html">Dbc</a>
-<h1>See Also</h1>
-<a href="../api_cxx/dbc_close.html">Dbc::close</a>,
-<a href="../api_cxx/dbc_count.html">Dbc::count</a>,
-<a href="../api_cxx/dbc_del.html">Dbc::del</a>,
-<a href="../api_cxx/dbc_dup.html">Dbc::dup</a>,
-<a href="../api_cxx/dbc_get.html">Dbc::get</a>
-and
-<a href="../api_cxx/dbc_put.html">Dbc::put</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/dbenv_class.html b/bdb/docs/api_cxx/dbenv_class.html
deleted file mode 100644
index 1c59dcbf1a1..00000000000
--- a/bdb/docs/api_cxx/dbenv_class.html
+++ /dev/null
@@ -1,76 +0,0 @@
-<!--$Id: dbenv_class.so,v 10.20 2000/07/27 13:10:54 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-class DbEnv {
-public:
- DbEnv(u_int32 flags);
- ~DbEnv();
- ...
-};
-</pre></h3>
-<h1>Description</h1>
-<p>This manual page describes the specific details of the DbEnv
-class, which is the center of the Berkeley DB environment.
-<p>The following <b>flags</b> value may be specified:
-<p><dl compact>
-<p><dt><a name="DB_CLIENT">DB_CLIENT</a><dd>Create a client environment to connect to a server.
-<p>The DB_CLIENT flag indicates to the system that this environment
-is remote on a server. The use of this flag causes the environment
-methods to use functions that call a server instead of local functions.
-Prior to making any environment or database method calls, the
-application must call the <a href="../api_cxx/env_set_server.html">DbEnv::set_server</a> function to establish
-the connection to the server.
-<p><dt><a name="DB_CXX_NO_EXCEPTIONS">DB_CXX_NO_EXCEPTIONS</a><dd>The Berkeley DB C++ API supports two different error behaviors. By default,
-whenever an error occurs an exception is thrown that encapsulates the
-error information. This generally allows for cleaner logic for
-transaction processing, as a try block can surround a single
-transaction. However, if DB_CXX_NO_EXCEPTIONS is specified,
-exceptions are not thrown, instead each individual function returns an
-error code.
-</dl>
-<h3>Class</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_close.html">DbEnv::close</a>,
-<a href="../api_cxx/env_open.html">DbEnv::open</a>,
-<a href="../api_cxx/env_remove.html">DbEnv::remove</a>,
-<a href="../api_cxx/db_err.html">DbEnv::err</a>,
-<a href="../api_cxx/env_strerror.html">DbEnv::strerror</a>,
-<a href="../api_cxx/env_version.html">DbEnv::version</a>,
-<a href="../api_cxx/env_set_cachesize.html">DbEnv::set_cachesize</a>,
-<a href="../api_cxx/env_set_errcall.html">DbEnv::set_errcall</a>,
-<a href="../api_cxx/env_set_errfile.html">DbEnv::set_errfile</a>,
-<a href="../api_cxx/env_set_error_stream.html">DbEnv::set_error_stream</a>,
-<a href="../api_cxx/env_set_errpfx.html">DbEnv::set_errpfx</a>,
-<a href="../api_cxx/env_set_flags.html">DbEnv::set_flags</a>,
-<a href="../api_cxx/env_set_mutexlocks.html">DbEnv::set_mutexlocks</a>,
-<a href="../api_cxx/env_set_paniccall.html">DbEnv::set_paniccall</a>,
-and
-<a href="../api_cxx/env_set_verbose.html">DbEnv::set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/dbt_class.html b/bdb/docs/api_cxx/dbt_class.html
deleted file mode 100644
index 24d18c60e50..00000000000
--- a/bdb/docs/api_cxx/dbt_class.html
+++ /dev/null
@@ -1,230 +0,0 @@
-<!--$Id: dbt_class.so,v 10.33 2000/12/18 21:05:13 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Dbt</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Dbt</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-class Dbt {
-public:
- void *get_data() const;
- void set_data(void *);
-<p>
- u_int32_t get_size() const;
- void set_size(u_int32_t);
-<p>
- u_int32_t get_ulen() const;
- void set_ulen(u_int32_t);
-<p>
- u_int32_t get_dlen() const;
- void set_dlen(u_int32_t);
-<p>
- u_int32_t get_doff() const;
- void set_doff(u_int32_t);
-<p>
- u_int32_t get_flags() const;
- void set_flags(u_int32_t);
-<p>
- Dbt(void *data, size_t size);
- Dbt();
- Dbt(const Dbt &);
- Dbt &operator = (const Dbt &);
- ~Dbt();
-};
-</pre></h3>
-<h1>Description</h1>
-<p>This manual page describes the specific details of the Dbt class,
-used to encode keys and data items in a database.
- <a name="3"><!--meow--></a>
-<h3>Key/Data Pairs</h3>
-<p>Storage and retrieval for the Db access methods are based on
-key/data pairs. Both key and data items are represented by Dbt
-objects. Key and data byte strings may reference strings of zero length
-up to strings of essentially unlimited length. See
-<a href="../ref/program/dbsizes.html">Database limits</a> for more
-information.
-<p>The Dbt class provides simple access to an underlying data structure,
-whose elements can be examined or changed using the <b>set_</b> or
-<b>get_</b> methods. The remainder of the manual page sometimes refers
-to these accesses using the underlying name, e.g., simply <b>ulen</b>
-instead of Dbt::get_ulen and Dbt::set_ulen.
-Dbt can be subclassed, providing a way to associate
-with it additional data, or references to other structures.
-<p>The constructors set all elements of the underlying structure to zero.
-The constructor with two arguments has the effect of setting all elements
-to zero except for the specified <b>data</b> and <b>size</b> elements.
-<p>In the case where the <b>flags</b> structure element is 0, when the
-application is providing Berkeley DB a key or data item to store into the
-database, Berkeley DB expects the <b>data</b> object to point to a byte string
-of <b>size</b> bytes. When returning a key/data item to the application,
-Berkeley DB will store into the <b>data</b> object a pointer to a byte string
-of <b>size</b> bytes, and the memory referenced by the pointer will be
-allocated and managed by Berkeley DB.
-<p>The elements of the structure underlying the Dbt class are defined as follows:
-<p><dl compact>
-<p><dt>void *<a name="data">data</a>;<dd>A pointer to a byte string.
-This element is accessed using Dbt::get_data and
-Dbt::set_data, and may be initialized using one
-of the constructors.
-<p><dt>int offset;<dd>The number of bytes offset into the <b>data</b> array to determine the
-portion of the array actually used.
-This element is accessed using Dbt::get_offset and
-Dbt::set_offset.
-<p><dt>u_int32_t size;<dd>The length of <b>data</b>, in bytes.
-This element is accessed using Dbt::get_size and
-Dbt::set_size, and may be initialized
-using the constructor with two arguments.
-<p><dt>u_int32_t ulen;<dd>The size of the user's buffer (referenced by <b>data</b>), in bytes.
-This location is not written by the Db methods.
-<p>Note that applications can determine the length of a record by setting
-the <b>ulen</b> to 0 and checking the return value found in <b>size</b>.
-See the DB_DBT_USERMEM flag for more information.
-<p>This element is accessed using
-Dbt::get_ulen and Dbt::set_ulen.
-<p><dt>u_int32_t dlen;<dd>The length of the partial record being read or written by the application,
-in bytes.
-See the DB_DBT_PARTIAL flag for more information.
-This element is accessed using
-Dbt::get_dlen, and Dbt::set_dlen.
-<p><dt>u_int32_t doff;<dd>The offset of the partial record being read or written by the application,
-in bytes.
-See the DB_DBT_PARTIAL flag for more information.
-This element is accessed using
-Dbt::get_doff and Dbt::set_doff.
-<p><dt>u_int32_t flags;<dd>This element is accessed using Dbt::get_flags and
-Dbt::set_flags.
-<p>The <b>flags</b> value must be set to 0 or by bitwise inclusively <b>OR</b>'ing together one or more
-of the following values.
-<p><dl compact>
-<p><dt><a name="DB_DBT_MALLOC">DB_DBT_MALLOC</a><dd>When this flag is set Berkeley DB will allocate memory for the returned key
-or data item
-(using <b>malloc</b>(3) or the user-specified malloc method) and
-return a pointer to it in the <b>data</b> field of the key or data
-Dbt object. As any allocated memory becomes the responsibility
-of the calling application, the caller must be able to determine if
-memory was allocated.
-<p>It is an error to specify more than one of DB_DBT_MALLOC,
-DB_DBT_REALLOC and DB_DBT_USERMEM.
-<p><dt><a name="DB_DBT_REALLOC">DB_DBT_REALLOC</a><dd>When this flag is set Berkeley DB
-will allocate memory for the returned key or data item (using
-<b>realloc</b>(3) or the user-specified realloc method) and return
-a pointer to it in the <b>data</b> field of the key or data Dbt
-object. As any allocated memory becomes the responsibility of the
-calling application, the caller must be able to determine if memory was
-allocated.
-<p>It is an error to specify more than one of DB_DBT_MALLOC,
-DB_DBT_REALLOC and DB_DBT_USERMEM.
-<p><dt><a name="DB_DBT_USERMEM">DB_DBT_USERMEM</a><dd>The <b>data</b> field of the key or data object must reference memory
-that is at least <b>ulen</b> bytes in length. If the length of the
-requested item is less than or equal to that number of bytes, the item
-is copied into the memory referenced by the <b>data</b> field.
-Otherwise, the <b>size</b> field is set to the length needed for the
-requested item, and the error ENOMEM is returned.
-<p>It is an error to specify more than one of DB_DBT_MALLOC,
-DB_DBT_REALLOC and DB_DBT_USERMEM.
-</dl>
-<p>If DB_DBT_MALLOC or DB_DBT_REALLOC is specified, Berkeley DB
-allocates a properly sized byte array to contain the data. This can be
-convenient if you know little about the nature of the data, specifically
-the size of data in the database. However, if your application makes
-repeated calls to retrieve keys or data, you may notice increased garbage
-collection due to this allocation. If you know the maximum size of data
-you are retrieving, you might decrease the memory burden and speed your
-application by allocating your own byte array and using
-DB_DBT_USERMEM. Even if you don't know the maximum size, you can
-use this option and reallocate your array whenever your retrieval API call
-returns an ENOMEM error, or throws an exception encapsulating an ENOMEM.
-<p><dl compact>
-<p><dt><a name="DB_DBT_PARTIAL">DB_DBT_PARTIAL</a><dd>Do partial retrieval or storage of an item. If the calling application
-is doing a get, the <b>dlen</b> bytes starting <b>doff</b> bytes from
-the beginning of the retrieved data record are returned as if they
-comprised the entire record. If any or all of the specified bytes do
-not exist in the record, the get is successful and the existing bytes
-or nul bytes are returned.
-<p>For example, if the data portion of a retrieved record was 100 bytes,
-and a partial retrieval was done using a Dbt having a <b>dlen</b>
-field of 20 and a <b>doff</b> field of 85, the get call would succeed,
-the <b>data</b> field would reference the last 15 bytes of the record,
-and the <b>size</b> field would be set to 15.
-<p>If the calling application is doing a put, the <b>dlen</b> bytes starting
-<b>doff</b> bytes from the beginning of the specified key's data record
-are replaced by the data specified by the <b>data</b> and <b>size</b>
-objects.
-If <b>dlen</b> is smaller than <b>size</b>, the record will grow, and if
-<b>dlen</b> is larger than <b>size</b>, the record will shrink.
-If the specified bytes do not exist, the record will be extended using nul
-bytes as necessary, and the put call will succeed.
-<p>It is an error to attempt a partial put using the <a href="../api_cxx/db_put.html">Db::put</a>
-method in a database that supports duplicate records.
-Partial puts in databases supporting duplicate records must be done
-using a <a href="../api_cxx/dbc_class.html">Dbc</a> method.
-<p>It is an error to attempt a partial put with differing <b>dlen</b> and
-<b>size</b> values in Queue or Recno databases with fixed-length records.
-<p>For example, if the data portion of a retrieved record was 100 bytes,
-and a partial put was done using a Dbt having a <b>dlen</b>
-field of 20, a <b>doff</b> field of 85, and a <b>size</b> field of 30,
-the resulting record would be 115 bytes in length, where the last 30
-bytes would be those specified by the put call.
-</dl>
-</dl>
- <a name="4"><!--meow--></a> <a name="5"><!--meow--></a>
-<h3>Retrieved key/data permanence</h3>
-<p>When using the non-cursor Berkeley DB calls to retrieve key/data items (e.g.,
-<a href="../api_cxx/db_get.html">Db::get</a>), the memory referenced by the pointer stored into the
-Dbt is only valid until the next call to Berkeley DB using the
-Db handle returned by <a href="../api_cxx/db_open.html">Db::open</a>. (This includes
-<b>any</b> use of the returned Db handle, including by another
-thread of control within the process. For this reason, when multiple
-threads are using the returned DB handle concurrently, one of the
-DB_DBT_MALLOC, DB_DBT_REALLOC or DB_DBT_USERMEM
-flags must be specified for any non-cursor Dbt used for key or
-data retrieval.)
-<p>When using the cursor Berkeley DB calls to retrieve key/data items (e.g.,
-<a href="../api_cxx/dbc_get.html">Dbc::get</a>), the memory referenced by the pointer into the
-Dbt is only valid until the next call to Berkeley DB using the
-<a href="../api_cxx/dbc_class.html">Dbc</a> handle returned by <a href="../api_cxx/db_cursor.html">Db::cursor</a>.
- <a name="6"><!--meow--></a>
-<h3>Data alignment</h3>
-<p>The Berkeley DB access methods provide no guarantees about key/data byte string
-alignment, and applications are responsible for arranging any necessary
-alignment. The DB_DBT_MALLOC, DB_DBT_REALLOC and
-DB_DBT_USERMEM flags may be used to store returned items in memory
-of arbitrary alignment.
- <a name="7"><!--meow--></a>
-<h3>Logical Record Numbers</h3>
-<p>In all cases for the Queue and Recno access methods, and when calling the
-<a href="../api_cxx/db_get.html">Db::get</a> and <a href="../api_cxx/dbc_get.html">Dbc::get</a> functions with the
-<a href="../api_cxx/db_get.html#DB_SET_RECNO">DB_SET_RECNO</a> flag specified, the <b>data</b>
-field of the key must be a pointer to a memory location of type
-<b>db_recno_t</b>, as typedef'd in the #include &lt;db_cxx.h&gt; include file.
-This type is a 32-bit unsigned type,
-(which limits the number of logical records in a Queue or Recno database,
-and the maximum logical record which may be directly retrieved from a
-Btree database, to 4,294,967,296). The <b>size</b> field of the key
-should be the size of that type, i.e.,
-in the C programming language, <b>sizeof(db_recno_t)</b>.
-<p>Logical record numbers are 1-based, not 0-based, i.e., the first record
-in the database is record number 1.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/env_close.html b/bdb/docs/api_cxx/env_close.html
deleted file mode 100644
index fc1ae2573a4..00000000000
--- a/bdb/docs/api_cxx/env_close.html
+++ /dev/null
@@ -1,87 +0,0 @@
-<!--$Id: env_close.so,v 10.21 2000/03/01 21:41:29 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::close</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::close</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-DbEnv::close(u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv::close method closes the Berkeley DB environment, freeing any
-allocated resources and closing any underlying subsystems.
-<p>Calling DbEnv::close does not imply closing any databases that were
-opened in the environment.
-<p>The <b>flags</b> parameter is currently unused, and must be set to 0.
-<p>Where the environment was initialized with the <a href="../api_cxx/env_open.html#DB_INIT_LOCK">DB_INIT_LOCK</a> flag,
-calling DbEnv::close does not release any locks still held by the
-closing process, providing functionality for long-lived locks.
-Processes that wish to have all their locks
-released can do so by issuing the appropriate <a href="../api_cxx/lock_vec.html">DbEnv::lock_vec</a> call.
-<p>Where the environment was initialized with the <a href="../api_cxx/env_open.html#DB_INIT_MPOOL">DB_INIT_MPOOL</a>
-flag, calling DbEnv::close implies calls to <a href="../api_cxx/memp_fclose.html">DbMpoolFile::close</a> for
-any remaining open files in the memory pool that were returned to this
-process by calls to <a href="../api_cxx/memp_fopen.html">DbMpoolFile::open</a>. It does not imply a call to
-<a href="../api_cxx/memp_fsync.html">DbMpoolFile::sync</a> for those files.
-<p>Where the environment was initialized with the <a href="../api_cxx/env_open.html#DB_INIT_TXN">DB_INIT_TXN</a> flag,
-calling DbEnv::close aborts any uncommitted transactions.
-(Applications are should not depend on this behavior. If the process' has
-already closed a database handle which is necessary to abort an
-uncommitted transaction, the Berkeley DB environment must then require that
-recovery be run before further operations are done, since once a
-transaction exists that cannot be committed or aborted, no future
-checkpoint can ever succeed.)
-<p>In multi-threaded applications, only a single thread may call
-DbEnv::close.
-<p>Once DbEnv::close has been called, regardless of its return,
-the Berkeley DB environment handle may not be accessed again.
-<p>The DbEnv::close method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p>The DbEnv::close method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbEnv::close method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Class</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_close.html">DbEnv::close</a>,
-<a href="../api_cxx/env_open.html">DbEnv::open</a>,
-<a href="../api_cxx/env_remove.html">DbEnv::remove</a>,
-<a href="../api_cxx/db_err.html">DbEnv::err</a>,
-<a href="../api_cxx/env_strerror.html">DbEnv::strerror</a>,
-<a href="../api_cxx/env_version.html">DbEnv::version</a>,
-<a href="../api_cxx/env_set_cachesize.html">DbEnv::set_cachesize</a>,
-<a href="../api_cxx/env_set_errcall.html">DbEnv::set_errcall</a>,
-<a href="../api_cxx/env_set_errfile.html">DbEnv::set_errfile</a>,
-<a href="../api_cxx/env_set_error_stream.html">DbEnv::set_error_stream</a>,
-<a href="../api_cxx/env_set_errpfx.html">DbEnv::set_errpfx</a>,
-<a href="../api_cxx/env_set_flags.html">DbEnv::set_flags</a>,
-<a href="../api_cxx/env_set_mutexlocks.html">DbEnv::set_mutexlocks</a>,
-<a href="../api_cxx/env_set_paniccall.html">DbEnv::set_paniccall</a>,
-and
-<a href="../api_cxx/env_set_verbose.html">DbEnv::set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/env_open.html b/bdb/docs/api_cxx/env_open.html
deleted file mode 100644
index 53c9908dcb8..00000000000
--- a/bdb/docs/api_cxx/env_open.html
+++ /dev/null
@@ -1,209 +0,0 @@
-<!--$Id: env_open.so,v 10.61 2000/12/01 15:50:31 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::open</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::open</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbEnv::open(const char *db_home, u_int32_t flags, int mode);
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv::open method is the interface for opening the Berkeley DB
-environment. It provides a structure for creating a consistent
-environment for processes using one or more of the features of Berkeley DB.
-<p>The <b>db_home</b> argument to DbEnv::open (and file name
-resolution in general) is described in
-<a href="../ref/env/naming.html">Berkeley DB File Naming</a>.
-<p>The <b>flags</b> argument specifies the subsystems that are initialized
-and how the application's environment affects Berkeley DB file naming, among
-other things.
-<p>The <b>flags</b> value must be set to 0 or by bitwise inclusively <b>OR</b>'ing together one or more
-of the following values.
-<p>As there are a large number of flags that can be specified, they have been
-grouped together by functionality. The first group of flags indicate
-which of the Berkeley DB subsystems should be initialized:
-<p><dl compact>
-<p><dt><a name="DB_JOINENV">DB_JOINENV</a><dd>Join an existing environment. This option allows applications to
-join an existing environment without knowing which Berkeley DB subsystems
-the environment supports.
-<p><dt><a name="DB_INIT_CDB">DB_INIT_CDB</a><dd>Initialize locking for the <a href="../ref/cam/intro.html">Berkeley DB Concurrent Data Store</a>
-product. In this mode, Berkeley DB provides multiple reader/single writer
-access. The only other subsystem that should be specified with the
-DB_INIT_CDB flag is DB_INIT_MPOOL.
-<p>Access method calls are largely unchanged when using this flag, although
-any cursors through which update operations (e.g., <a href="../api_cxx/dbc_put.html">Dbc::put</a>,
-<a href="../api_cxx/dbc_del.html">Dbc::del</a>) will be made must have the <a href="../api_cxx/db_cursor.html#DB_WRITECURSOR">DB_WRITECURSOR</a> value
-set in the flags parameter to the cursor call that creates the cursor.
-See <a href="../api_cxx/db_cursor.html">Db::cursor</a> for more information.
-<p><dt><a name="DB_INIT_LOCK">DB_INIT_LOCK</a><dd>Initialize the locking subsystem. This subsystem should be used when
-multiple processes or threads are going to be reading and writing a Berkeley DB
-database, so that they do not interfere with each other. If all threads
-are accessing the database(s) read-only, then locking is unnecessary.
-When the DB_INIT_LOCK flag is specified, it is usually necessary to run
-the deadlock detector, as well. See <a href="../utility/db_deadlock.html">db_deadlock</a> and
-<a href="../api_cxx/lock_detect.html">DbEnv::lock_detect</a> for more information.
-<p><dt><a name="DB_INIT_LOG">DB_INIT_LOG</a><dd>Initialize the logging subsystem. This subsystem is used when recovery
-from application or system failure is necessary.
-<p>The log is stored in one or more files in the environment directory.
-Each file is named using the format <i>log.NNNNNNNNNN</i>, where
-<i>NNNNNNNNNN</i> is the sequence number of the file within the log.
-For further information, see
-<a href="../ref/log/limits.html">Log File Limits</a>.
-<p>If the log region is being created and log files are already present, the
-log files are reviewed and subsequent log writes are appended
-to the end of the log, rather than overwriting current log entries.
-<p><dt><a name="DB_INIT_MPOOL">DB_INIT_MPOOL</a><dd>Initialize the shared memory buffer pool subsystem. This subsystem is
-used whenever the application is using any Berkeley DB access method.
-<p><dt><a name="DB_INIT_TXN">DB_INIT_TXN</a><dd>Initialize the transaction subsystem. This subsystem is used when
-recovery and atomicity of multiple operations and recovery are important.
-The DB_INIT_TXN flag implies the DB_INIT_LOG flag.
-</dl>
-<p>The second group of flags govern what recovery, if any, is performed when
-the environment is initialized:
-<p><dl compact>
-<p><dt><a name="DB_RECOVER">DB_RECOVER</a><dd>Run normal recovery on this environment before opening it for normal use.
-If this flag is set, the DB_CREATE flag must also be set since the regions
-will be removed and recreated.
-<p><dt><a name="DB_RECOVER_FATAL">DB_RECOVER_FATAL</a><dd>Run catastrophic recovery on this environment before opening it for normal
-use. If this flag is set, the DB_CREATE flag must also be set since the
-regions will be removed and recreated.
-</dl>
-<p>A standard part of the recovery process is to remove the existing Berkeley DB
-environment and create a new one in which to perform recovery. If the
-thread of control performing recovery does not specify the correct region
-initialization information (e.g., the correct memory pool cache size),
-the result can be an application running in an environment with incorrect
-cache and other subsystem sizes. For this reason, the thread of control
-performing recovery should either specify correct configuration
-information before calling the DbEnv::open method, or it should remove
-the environment after recovery is completed, leaving creation of the
-correctly sized environment to a subsequent call to DbEnv::open.
-<p>All Berkeley DB recovery processing must be single-threaded, that is, only a
-single thread of control may perform recovery or access a Berkeley DB
-environment while recovery is being performed. As it is not an error to
-specify DB_RECOVER for an environment for which no recovery is
-required, it is reasonable programming practice for the thread of control
-responsible for performing recovery and creating the environment to always
-specify the DB_RECOVER flag during startup.
-<p>The DbEnv::open function returns successfully if DB_RECOVER
-or DB_RECOVER_FATAL is specified and no log files exist, so it is
-necessary to ensure all necessary log files are present before running
-recovery. For further information, consult <a href="../utility/db_archive.html">db_archive</a> and
-<a href="../utility/db_recover.html">db_recover</a>.
-<p>The third group of flags govern file naming extensions in the environment:
-<p><dl compact>
-<!--$Id: m4.env_flags,v 10.9 2000/06/29 22:54:10 bostic Exp $-->
-<p><dt><a name="DB_USE_ENVIRON">DB_USE_ENVIRON</a><dd>The Berkeley DB process' environment may be permitted to specify information to
-be used when naming files; see <a href="../ref/env/naming.html">Berkeley DB
-File Naming</a>. As permitting users to specify which files are used can
-create security problems, environment information will be used in file
-naming for all users only if the DB_USE_ENVIRON flag is set.
-<p><dt><a name="DB_USE_ENVIRON_ROOT">DB_USE_ENVIRON_ROOT</a><dd>The Berkeley DB process' environment may be permitted to specify information to
-be used when naming files; see <a href="../ref/env/naming.html">Berkeley DB
-File Naming</a>. As permitting users to specify which files are used can
-create security problems, if the DB_USE_ENVIRON_ROOT flag is set,
-environment information will be used for file naming only for users with
-appropriate permissions (e.g., on UNIX systems, users with a user-ID of 0).
-</dl>
-<p>Finally, there are a few additional, unrelated flags:
-<p><dl compact>
-<p><dt><a name="DB_CREATE">DB_CREATE</a><dd>Cause Berkeley DB subsystems to create any underlying files, as necessary.
-<p><dt><a name="DB_LOCKDOWN">DB_LOCKDOWN</a><dd>Lock shared Berkeley DB environment files and memory mapped databases into memory.
-<p><dt><a name="DB_PRIVATE">DB_PRIVATE</a><dd>Specify that the environment will only be accessed by a single process
-(although that process may be multi-threaded). This flag has two effects
-on the Berkeley DB environment. First, all underlying data structures are
-allocated from per-process memory instead of from shared memory that is
-potentially accessible to more than a single process. Second, mutexes
-are only configured to work between threads.
-<p>This flag should not be specified if more than a single process is
-accessing the environment, as it is likely to cause database corruption
-and unpredictable behavior, e.g., if both a server application and the
-Berkeley DB utility <a href="../utility/db_stat.html">db_stat</a> will access the environment, the
-DB_PRIVATE flag should not be specified.
-<p><dt><a name="DB_SYSTEM_MEM">DB_SYSTEM_MEM</a><dd>Allocate memory from system shared memory instead of from memory backed
-by the filesystem. See <a href="../ref/env/region.html">Shared Memory
-Regions</a> for more information.
-<p><dt><a name="DB_THREAD">DB_THREAD</a><dd>Cause the <a href="../api_cxx/dbenv_class.html">DbEnv</a> handle returned by DbEnv::open to be
-<i>free-threaded</i>, that is, useable by multiple threads within a
-single address space.
-</dl>
-<p>On UNIX systems, or in IEEE/ANSI Std 1003.1 (POSIX) environments, all files created by Berkeley DB
-are created with mode <b>mode</b> (as described in <b>chmod</b>(2)) and
-modified by the process' umask value at the time of creation (see
-<b>umask</b>(2)). The group ownership of created files is based on
-the system and directory defaults, and is not further specified by Berkeley DB.
-If <b>mode</b> is 0, files are created readable and writeable by both
-owner and group. On Windows systems, the mode argument is ignored.
-<p>The DbEnv::open method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Environment Variables</h1>
-<p><dl compact>
-<p><dt>DB_HOME<dd>The environment variable <b>DB_HOME</b> may be used as the path of
-the database home as described in
-<a href="../ref/env/naming.html">Berkeley DB File Naming</a>.
-</dl>
-<h1>Errors</h1>
-<p>The DbEnv::open method may fail and throw an exception or return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EAGAIN<dd>The shared memory region was locked and (repeatedly) unavailable.
-</dl>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>
-The DB_THREAD flag was specified and spinlocks are not
-implemented for this architecture.
-<p>The DB_HOME or TMPDIR environment variables were set but empty.
-<p>An incorrectly formatted <b>NAME VALUE</b> entry or line was found.
-</dl>
-<p><dl compact>
-<p><dt>ENOSPC<dd>HP-UX only: a previously created Berkeley DB environment for this process still
-exists.
-</dl>
-<p>The DbEnv::open method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbEnv::open method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Class</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_close.html">DbEnv::close</a>,
-<a href="../api_cxx/env_open.html">DbEnv::open</a>,
-<a href="../api_cxx/env_remove.html">DbEnv::remove</a>,
-<a href="../api_cxx/db_err.html">DbEnv::err</a>,
-<a href="../api_cxx/env_strerror.html">DbEnv::strerror</a>,
-<a href="../api_cxx/env_version.html">DbEnv::version</a>,
-<a href="../api_cxx/env_set_cachesize.html">DbEnv::set_cachesize</a>,
-<a href="../api_cxx/env_set_errcall.html">DbEnv::set_errcall</a>,
-<a href="../api_cxx/env_set_errfile.html">DbEnv::set_errfile</a>,
-<a href="../api_cxx/env_set_error_stream.html">DbEnv::set_error_stream</a>,
-<a href="../api_cxx/env_set_errpfx.html">DbEnv::set_errpfx</a>,
-<a href="../api_cxx/env_set_flags.html">DbEnv::set_flags</a>,
-<a href="../api_cxx/env_set_mutexlocks.html">DbEnv::set_mutexlocks</a>,
-<a href="../api_cxx/env_set_paniccall.html">DbEnv::set_paniccall</a>,
-and
-<a href="../api_cxx/env_set_verbose.html">DbEnv::set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/env_remove.html b/bdb/docs/api_cxx/env_remove.html
deleted file mode 100644
index 58c3ff5de0c..00000000000
--- a/bdb/docs/api_cxx/env_remove.html
+++ /dev/null
@@ -1,129 +0,0 @@
-<!--$Id: env_remove.so,v 10.24 2000/12/06 14:40:11 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::remove</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::remove</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbEnv::remove(const char *db_home, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv::remove method destroys a Berkeley DB environment, if it is not
-currently in use. The environment regions, including any backing files,
-are removed. Any log or database files and the environment directory are
-not removed.
-<p>The <b>db_home</b> argument to DbEnv::remove is described in
-<a href="../ref/env/naming.html">Berkeley DB File Naming</a>.
-<p>If there are processes that have called <a href="../api_cxx/env_open.html">DbEnv::open</a> without
-calling <a href="../api_cxx/env_close.html">DbEnv::close</a> (i.e., there are processes currently using
-the environment), DbEnv::remove will fail without further action,
-unless the <a href="../api_cxx/env_remove.html#DB_FORCE">DB_FORCE</a> flag is set, in which case
-DbEnv::remove will attempt to remove the environment regardless
-of any processes still using it.
-<p>The result of attempting to forcibly destroy the environment when it is
-in use is unspecified. Processes using an environment often maintain open
-file descriptors for shared regions within it. On UNIX systems, the
-environment removal will usually succeed and processes that have already
-joined the region will continue to run in that region without change,
-however processes attempting to join the environment will either fail or
-create new regions. On other systems (e.g., Windows/NT), where the
-<b>unlink</b>(2) system call will fail if any process has an open
-file descriptor for the file, the region removal will fail.
-<p>Calling DbEnv::remove should not be necessary for most applications,
-as the Berkeley DB environment is cleaned up as part of normal database recovery
-procedures, however, applications may wish to call DbEnv::remove
-as part of application shutdown to free up system resources.
-Specifically, when the <a href="../api_cxx/env_open.html#DB_SYSTEM_MEM">DB_SYSTEM_MEM</a> flag was specified to
-<a href="../api_cxx/env_open.html">DbEnv::open</a>, it may be useful to call DbEnv::remove in order
-to release system shared memory segments that have been allocated.
-<p>In the case of catastrophic or system failure, database recovery must be
-performed (see <a href="../utility/db_recover.html">db_recover</a>), or the <a href="../api_cxx/env_open.html#DB_RECOVER">DB_RECOVER</a> and
-<a href="../api_cxx/env_open.html#DB_RECOVER_FATAL">DB_RECOVER_FATAL</a> flags to <a href="../api_cxx/env_open.html">DbEnv::open</a> must be specified
-when the environment is re-opened. Alternatively, if recovery is not
-required because no database state is maintained across failures, and
-the <a href="../api_cxx/env_open.html#DB_SYSTEM_MEM">DB_SYSTEM_MEM</a> flag was not specified when the environment
-was created, it is possible to clean up an environment by removing all
-of the files in the environment directory that begin with the string
-prefix "__db", as no backing files are created in any other directory.
-<p>The <b>flags</b> value must be set to 0 or by bitwise inclusively <b>OR</b>'ing together one or more
-of the following values.
-<p><dl compact>
-<p><dt><a name="DB_FORCE">DB_FORCE</a><dd>If the <a href="../api_cxx/env_remove.html#DB_FORCE">DB_FORCE</a> flag is set, the environment is removed regardless
-of any processes that may still using it, and, no locks are acquired
-during this process. (Generally, the <a href="../api_cxx/env_remove.html#DB_FORCE">DB_FORCE</a> flag is only
-specified when applications were unable to shut down cleanly, and there
-is a risk that an application may have died holding a Berkeley DB lock.)
-<!--$Id: m4.env_flags,v 10.9 2000/06/29 22:54:10 bostic Exp $-->
-<p><dt><a name="DB_USE_ENVIRON">DB_USE_ENVIRON</a><dd>The Berkeley DB process' environment may be permitted to specify information to
-be used when naming files; see <a href="../ref/env/naming.html">Berkeley DB
-File Naming</a>. As permitting users to specify which files are used can
-create security problems, environment information will be used in file
-naming for all users only if the DB_USE_ENVIRON flag is set.
-<p><dt><a name="DB_USE_ENVIRON_ROOT">DB_USE_ENVIRON_ROOT</a><dd>The Berkeley DB process' environment may be permitted to specify information to
-be used when naming files; see <a href="../ref/env/naming.html">Berkeley DB
-File Naming</a>. As permitting users to specify which files are used can
-create security problems, if the DB_USE_ENVIRON_ROOT flag is set,
-environment information will be used for file naming only for users with
-appropriate permissions (e.g., on UNIX systems, users with a user-ID of 0).
-</dl>
-<p>In multi-threaded applications, only a single thread may call
-DbEnv::remove.
-<p>A <a href="../api_cxx/dbenv_class.html">DbEnv</a> handle which has already been used to open an
-environment should not be used to call the DbEnv::remove method, a new
-<a href="../api_cxx/dbenv_class.html">DbEnv</a> handle should be created for that purpose.
-<p>Once DbEnv::remove has been called, regardless of its return,
-the Berkeley DB environment handle may not be accessed again.
-<p>The DbEnv::remove method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EBUSY<dd>The shared memory region was in use and the force flag was not set.
-</dl>
-<p>The DbEnv::remove method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbEnv::remove method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Class</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_close.html">DbEnv::close</a>,
-<a href="../api_cxx/env_open.html">DbEnv::open</a>,
-<a href="../api_cxx/env_remove.html">DbEnv::remove</a>,
-<a href="../api_cxx/db_err.html">DbEnv::err</a>,
-<a href="../api_cxx/env_strerror.html">DbEnv::strerror</a>,
-<a href="../api_cxx/env_version.html">DbEnv::version</a>,
-<a href="../api_cxx/env_set_cachesize.html">DbEnv::set_cachesize</a>,
-<a href="../api_cxx/env_set_errcall.html">DbEnv::set_errcall</a>,
-<a href="../api_cxx/env_set_errfile.html">DbEnv::set_errfile</a>,
-<a href="../api_cxx/env_set_error_stream.html">DbEnv::set_error_stream</a>,
-<a href="../api_cxx/env_set_errpfx.html">DbEnv::set_errpfx</a>,
-<a href="../api_cxx/env_set_flags.html">DbEnv::set_flags</a>,
-<a href="../api_cxx/env_set_mutexlocks.html">DbEnv::set_mutexlocks</a>,
-<a href="../api_cxx/env_set_paniccall.html">DbEnv::set_paniccall</a>,
-and
-<a href="../api_cxx/env_set_verbose.html">DbEnv::set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/env_set_cachesize.html b/bdb/docs/api_cxx/env_set_cachesize.html
deleted file mode 100644
index 57ad573cb3f..00000000000
--- a/bdb/docs/api_cxx/env_set_cachesize.html
+++ /dev/null
@@ -1,89 +0,0 @@
-<!--$Id: env_set_cachesize.so,v 10.19 2000/05/20 16:29:11 bostic Exp $-->
-<!--$Id: m4.cachesize,v 10.7 2000/02/11 18:54:45 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::set_cachesize</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::set_cachesize</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbEnv::set_cachesize(u_int32_t gbytes, u_int32_t bytes, int ncache);
-</pre></h3>
-<h1>Description</h1>
-<p>Set the size of the database's shared memory buffer pool, i.e., the cache,
-to <b>gbytes</b> gigabytes plus <b>bytes</b>. The cache should be the
-size of the normal working data set of the application, with some small
-amount of additional memory for unusual situations. (Note, the working
-set is not the same as the number of simultaneously referenced pages, and
-should be quite a bit larger!)
-<p>The default cache size is 256KB, and may not be specified as less than
-20KB. Any cache size less than 500MB is automatically increased by 25%
-to account for buffer pool overhead, cache sizes larger than 500MB are
-used as specified. For information on tuning the Berkeley DB cache size, see
-<a href="../ref/am_conf/cachesize.html">Selecting a cache size</a>.
-<p>It is possible to specify caches to Berkeley DB that are large enough so that
-they cannot be allocated contiguously on some architectures, e.g., some
-releases of Solaris limit the amount of memory that may be allocated
-contiguously by a process. If <b>ncache</b> is 0 or 1, the cache will
-be allocated contiguously in memory. If it is greater than 1, the cache
-will be broken up into <b>ncache</b> equally sized separate pieces of
-memory.
-<p>The DbEnv::set_cachesize interface may only be used to configure Berkeley DB before
-the <a href="../api_cxx/env_open.html">DbEnv::open</a> interface is called.
-<p>The DbEnv::set_cachesize method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<p>The database environment's cache size may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_cachesize", one or more whitespace characters,
-and the three arguments specified to this interface, separated by whitespace
-characters, for example, "set_cachesize 1 500 2". Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_cxx/env_open.html">DbEnv::open</a> was called.
-<p>The specified cache size was impossibly small.
-</dl>
-<h3>Class</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_close.html">DbEnv::close</a>,
-<a href="../api_cxx/env_open.html">DbEnv::open</a>,
-<a href="../api_cxx/env_remove.html">DbEnv::remove</a>,
-<a href="../api_cxx/db_err.html">DbEnv::err</a>,
-<a href="../api_cxx/env_strerror.html">DbEnv::strerror</a>,
-<a href="../api_cxx/env_version.html">DbEnv::version</a>,
-<a href="../api_cxx/env_set_cachesize.html">DbEnv::set_cachesize</a>,
-<a href="../api_cxx/env_set_errcall.html">DbEnv::set_errcall</a>,
-<a href="../api_cxx/env_set_errfile.html">DbEnv::set_errfile</a>,
-<a href="../api_cxx/env_set_error_stream.html">DbEnv::set_error_stream</a>,
-<a href="../api_cxx/env_set_errpfx.html">DbEnv::set_errpfx</a>,
-<a href="../api_cxx/env_set_flags.html">DbEnv::set_flags</a>,
-<a href="../api_cxx/env_set_mutexlocks.html">DbEnv::set_mutexlocks</a>,
-<a href="../api_cxx/env_set_paniccall.html">DbEnv::set_paniccall</a>,
-and
-<a href="../api_cxx/env_set_verbose.html">DbEnv::set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/env_set_data_dir.html b/bdb/docs/api_cxx/env_set_data_dir.html
deleted file mode 100644
index 7c8bd44ff3d..00000000000
--- a/bdb/docs/api_cxx/env_set_data_dir.html
+++ /dev/null
@@ -1,80 +0,0 @@
-<!--$Id: env_set_data_dir.so,v 10.3 2000/05/20 16:29:11 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::set_data_dir</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::set_data_dir</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbEnv::set_data_dir(const char *dir);
-</pre></h3>
-<h1>Description</h1>
-<p>Set the path of a directory to be used as the location of the access
-method database files. Paths specified to the <a href="../api_cxx/db_open.html">Db::open</a> function
-will be searched relative to this path. Paths set using this interface
-are additive, and specifying more than one will result in each specified
-directory being searched for database files. If any directories are
-specified, created database files will always be created in the first path
-specified.
-<p>If no database directories are specified, database files can only exist
-in the environment home directory. See <a href="../ref/env/naming.html">Berkeley DB File Naming</a> for more information.
-<p>For the greatest degree of recoverability from system or application
-failure, database files and log files should be located on separate
-physical devices.
-<p>The DbEnv::set_data_dir interface may only be used to configure Berkeley DB before
-the <a href="../api_cxx/env_open.html">DbEnv::open</a> interface is called.
-<p>The DbEnv::set_data_dir method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<p>The database environment's data directory may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_data_dir", one or more whitespace characters,
-and the directory name. Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_cxx/env_open.html">DbEnv::open</a> was called.
-</dl>
-<h3>Class</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_close.html">DbEnv::close</a>,
-<a href="../api_cxx/env_open.html">DbEnv::open</a>,
-<a href="../api_cxx/env_remove.html">DbEnv::remove</a>,
-<a href="../api_cxx/db_err.html">DbEnv::err</a>,
-<a href="../api_cxx/env_strerror.html">DbEnv::strerror</a>,
-<a href="../api_cxx/env_version.html">DbEnv::version</a>,
-<a href="../api_cxx/env_set_cachesize.html">DbEnv::set_cachesize</a>,
-<a href="../api_cxx/env_set_errcall.html">DbEnv::set_errcall</a>,
-<a href="../api_cxx/env_set_errfile.html">DbEnv::set_errfile</a>,
-<a href="../api_cxx/env_set_error_stream.html">DbEnv::set_error_stream</a>,
-<a href="../api_cxx/env_set_errpfx.html">DbEnv::set_errpfx</a>,
-<a href="../api_cxx/env_set_flags.html">DbEnv::set_flags</a>,
-<a href="../api_cxx/env_set_mutexlocks.html">DbEnv::set_mutexlocks</a>,
-<a href="../api_cxx/env_set_paniccall.html">DbEnv::set_paniccall</a>,
-and
-<a href="../api_cxx/env_set_verbose.html">DbEnv::set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/env_set_errcall.html b/bdb/docs/api_cxx/env_set_errcall.html
deleted file mode 100644
index 8c59632c684..00000000000
--- a/bdb/docs/api_cxx/env_set_errcall.html
+++ /dev/null
@@ -1,76 +0,0 @@
-<!--$Id: env_set_errcall.so,v 10.16 1999/12/20 08:52:29 bostic Exp $-->
-<!--$Id: m4.errset,v 10.8 2000/02/19 20:57:57 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::set_errcall</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::set_errcall</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-void DbEnv::set_errcall(
- void (*db_errcall_fcn)(const char *errpfx, char *msg));
-</pre></h3>
-<h1>Description</h1>
-When an error occurs in the Berkeley DB library, an exception is thrown or an
-error return value is returned by the method. In some cases,
-however, the <b>errno</b> value may be insufficient to completely
-describe the cause of the error, especially during initial application
-debugging.
-<p>The DbEnv::set_errcall method is used to enhance the mechanism for reporting error
-messages to the application. In some cases, when an error occurs, Berkeley DB
-will call <b>db_errcall_fcn</b> with additional error information. The
-function must be defined with two arguments; the first will be the prefix
-string (as previously set by <a href="../api_cxx/db_set_errpfx.html">Db::set_errpfx</a> or
-<a href="../api_cxx/env_set_errpfx.html">DbEnv::set_errpfx</a>), the second will be the error message string.
-It is up to the <b>db_errcall_fcn</b> method to display the error
-message in an appropriate manner.
-<p>Alternatively, you can use the <a href="../api_cxx/env_set_error_stream.html">DbEnv::set_error_stream</a> method to display
-the additional information via an output stream, or the <a href="../api_cxx/db_set_errfile.html">Db::set_errfile</a>
-or <a href="../api_cxx/env_set_errfile.html">DbEnv::set_errfile</a> methods to display the additional information via a C
-library FILE *. You should not mix these approaches.
-<p>This error logging enhancement does not slow performance or significantly
-increase application size, and may be run during normal operation as well
-as during application debugging.
-<p>The DbEnv::set_errcall interface may be used to configure Berkeley DB at any time
-during the life of the application.
-<h3>Class</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_close.html">DbEnv::close</a>,
-<a href="../api_cxx/env_open.html">DbEnv::open</a>,
-<a href="../api_cxx/env_remove.html">DbEnv::remove</a>,
-<a href="../api_cxx/db_err.html">DbEnv::err</a>,
-<a href="../api_cxx/env_strerror.html">DbEnv::strerror</a>,
-<a href="../api_cxx/env_version.html">DbEnv::version</a>,
-<a href="../api_cxx/env_set_cachesize.html">DbEnv::set_cachesize</a>,
-<a href="../api_cxx/env_set_errcall.html">DbEnv::set_errcall</a>,
-<a href="../api_cxx/env_set_errfile.html">DbEnv::set_errfile</a>,
-<a href="../api_cxx/env_set_error_stream.html">DbEnv::set_error_stream</a>,
-<a href="../api_cxx/env_set_errpfx.html">DbEnv::set_errpfx</a>,
-<a href="../api_cxx/env_set_flags.html">DbEnv::set_flags</a>,
-<a href="../api_cxx/env_set_mutexlocks.html">DbEnv::set_mutexlocks</a>,
-<a href="../api_cxx/env_set_paniccall.html">DbEnv::set_paniccall</a>,
-and
-<a href="../api_cxx/env_set_verbose.html">DbEnv::set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/env_set_errfile.html b/bdb/docs/api_cxx/env_set_errfile.html
deleted file mode 100644
index e9658cd18ec..00000000000
--- a/bdb/docs/api_cxx/env_set_errfile.html
+++ /dev/null
@@ -1,77 +0,0 @@
-<!--$Id: env_set_errfile.so,v 10.17 1999/12/20 08:52:29 bostic Exp $-->
-<!--$Id: m4.errset,v 10.8 2000/02/19 20:57:57 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::set_errfile</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::set_errfile</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-void DbEnv::set_errfile(FILE *errfile);
-</pre></h3>
-<h1>Description</h1>
-When an error occurs in the Berkeley DB library, an exception is thrown or an
-error return value is returned by the method. In some cases,
-however, the <b>errno</b> value may be insufficient to completely
-describe the cause of the error, especially during initial application
-debugging.
-<p>The DbEnv::set_errfile method is used to enhance the mechanism for reporting error
-messages to the application by setting a C library FILE * to be used for
-displaying additional Berkeley DB error messages. In some cases, when an error
-occurs, Berkeley DB will output an additional error message to the specified
-file reference.
-<p>Alternatively, you can use the <a href="../api_cxx/env_set_error_stream.html">DbEnv::set_error_stream</a> method to display
-the additional information via an output stream, or the
-<a href="../api_cxx/env_set_errcall.html">DbEnv::set_errcall</a> method to capture the additional error information in
-a way that does not use either output streams or C library FILE *'s. You
-should not mix these approaches.
-<p>The error message will consist of the prefix string and a colon
-("<b>:</b>") (if a prefix string was previously specified using
-<a href="../api_cxx/db_set_errpfx.html">Db::set_errpfx</a> or <a href="../api_cxx/env_set_errpfx.html">DbEnv::set_errpfx</a>), an error string, and
-a trailing &lt;newline&gt; character.
-<p>This error logging enhancement does not slow performance or significantly
-increase application size, and may be run during normal operation as well
-as during application debugging.
-<p>The DbEnv::set_errfile interface may be used to configure Berkeley DB at any time
-during the life of the application.
-<h3>Class</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_close.html">DbEnv::close</a>,
-<a href="../api_cxx/env_open.html">DbEnv::open</a>,
-<a href="../api_cxx/env_remove.html">DbEnv::remove</a>,
-<a href="../api_cxx/db_err.html">DbEnv::err</a>,
-<a href="../api_cxx/env_strerror.html">DbEnv::strerror</a>,
-<a href="../api_cxx/env_version.html">DbEnv::version</a>,
-<a href="../api_cxx/env_set_cachesize.html">DbEnv::set_cachesize</a>,
-<a href="../api_cxx/env_set_errcall.html">DbEnv::set_errcall</a>,
-<a href="../api_cxx/env_set_errfile.html">DbEnv::set_errfile</a>,
-<a href="../api_cxx/env_set_error_stream.html">DbEnv::set_error_stream</a>,
-<a href="../api_cxx/env_set_errpfx.html">DbEnv::set_errpfx</a>,
-<a href="../api_cxx/env_set_flags.html">DbEnv::set_flags</a>,
-<a href="../api_cxx/env_set_mutexlocks.html">DbEnv::set_mutexlocks</a>,
-<a href="../api_cxx/env_set_paniccall.html">DbEnv::set_paniccall</a>,
-and
-<a href="../api_cxx/env_set_verbose.html">DbEnv::set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/env_set_error_stream.html b/bdb/docs/api_cxx/env_set_error_stream.html
deleted file mode 100644
index 18dc192cc77..00000000000
--- a/bdb/docs/api_cxx/env_set_error_stream.html
+++ /dev/null
@@ -1,74 +0,0 @@
-<!--$Id: env_set_error_stream.so,v 10.13 1999/12/20 08:52:33 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::set_error_stream</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::set_error_stream</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-void DbEnv::set_error_stream(class ostream*);
-</pre></h3>
-<h1>Description</h1>
-<p>When an error occurs in the Berkeley DB library, an exception is thrown or an
-<b>errno</b> value is returned by the method. In some cases,
-however, the <b>errno</b> value may be insufficient to completely
-describe the cause of the error, especially during initial application
-debugging.
-<p>The DbEnv::set_error_stream method is used to enhance the mechanism for
-reporting error messages to the application by setting the C++ ostream
-used for displaying additional Berkeley DB error messages. In some cases,
-when an error occurs, Berkeley DB will output an additional error message to
-the specified stream.
-<p>The error message will consist of the prefix string and a colon
-("<b>:</b>") (if a prefix string was previously specified using
-<a href="../api_cxx/env_set_errpfx.html">DbEnv::set_errpfx</a>), an error string, and a trailing
-&lt;newline&gt; character.
-<p>Alternatively, you can use the <a href="../api_cxx/env_set_errfile.html">DbEnv::set_errfile</a> method to display
-the additional information via a C library FILE *, or the
-<a href="../api_cxx/env_set_errcall.html">DbEnv::set_errcall</a> method to capture the additional error information in
-a way that does not use either output streams or C library FILE *'s. You
-should not mix these approaches.
-<p>This error logging enhancement does not slow performance or significantly
-increase application size, and may be run during normal operation as well
-as during application debugging.
-<h3>Class</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_close.html">DbEnv::close</a>,
-<a href="../api_cxx/env_open.html">DbEnv::open</a>,
-<a href="../api_cxx/env_remove.html">DbEnv::remove</a>,
-<a href="../api_cxx/db_err.html">DbEnv::err</a>,
-<a href="../api_cxx/env_strerror.html">DbEnv::strerror</a>,
-<a href="../api_cxx/env_version.html">DbEnv::version</a>,
-<a href="../api_cxx/env_set_cachesize.html">DbEnv::set_cachesize</a>,
-<a href="../api_cxx/env_set_errcall.html">DbEnv::set_errcall</a>,
-<a href="../api_cxx/env_set_errfile.html">DbEnv::set_errfile</a>,
-<a href="../api_cxx/env_set_error_stream.html">DbEnv::set_error_stream</a>,
-<a href="../api_cxx/env_set_errpfx.html">DbEnv::set_errpfx</a>,
-<a href="../api_cxx/env_set_flags.html">DbEnv::set_flags</a>,
-<a href="../api_cxx/env_set_mutexlocks.html">DbEnv::set_mutexlocks</a>,
-<a href="../api_cxx/env_set_paniccall.html">DbEnv::set_paniccall</a>,
-and
-<a href="../api_cxx/env_set_verbose.html">DbEnv::set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/env_set_errpfx.html b/bdb/docs/api_cxx/env_set_errpfx.html
deleted file mode 100644
index 62167d96ed4..00000000000
--- a/bdb/docs/api_cxx/env_set_errpfx.html
+++ /dev/null
@@ -1,60 +0,0 @@
-<!--$Id: env_set_errpfx.so,v 10.12 1999/12/20 08:52:29 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::set_errpfx</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::set_errpfx</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-void DbEnv::set_errpfx(const char *errpfx);
-</pre></h3>
-<h1>Description</h1>
-<p>Set the prefix string that appears before error messages issued by Berkeley DB.
-<p>The DbEnv::set_errpfx method does not copy the memory referenced by the
-<b>errpfx</b> argument, rather, it maintains a reference to it. This
-allows applications to modify the error message prefix at any time,
-without repeatedly calling DbEnv::set_errpfx, but means that the
-memory must be maintained until the handle is closed.
-<p>The DbEnv::set_errpfx interface may be used to configure Berkeley DB at any time
-during the life of the application.
-<h3>Class</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_close.html">DbEnv::close</a>,
-<a href="../api_cxx/env_open.html">DbEnv::open</a>,
-<a href="../api_cxx/env_remove.html">DbEnv::remove</a>,
-<a href="../api_cxx/db_err.html">DbEnv::err</a>,
-<a href="../api_cxx/env_strerror.html">DbEnv::strerror</a>,
-<a href="../api_cxx/env_version.html">DbEnv::version</a>,
-<a href="../api_cxx/env_set_cachesize.html">DbEnv::set_cachesize</a>,
-<a href="../api_cxx/env_set_errcall.html">DbEnv::set_errcall</a>,
-<a href="../api_cxx/env_set_errfile.html">DbEnv::set_errfile</a>,
-<a href="../api_cxx/env_set_error_stream.html">DbEnv::set_error_stream</a>,
-<a href="../api_cxx/env_set_errpfx.html">DbEnv::set_errpfx</a>,
-<a href="../api_cxx/env_set_flags.html">DbEnv::set_flags</a>,
-<a href="../api_cxx/env_set_mutexlocks.html">DbEnv::set_mutexlocks</a>,
-<a href="../api_cxx/env_set_paniccall.html">DbEnv::set_paniccall</a>,
-and
-<a href="../api_cxx/env_set_verbose.html">DbEnv::set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/env_set_feedback.html b/bdb/docs/api_cxx/env_set_feedback.html
deleted file mode 100644
index 147a5dc5930..00000000000
--- a/bdb/docs/api_cxx/env_set_feedback.html
+++ /dev/null
@@ -1,72 +0,0 @@
-<!--$Id: env_set_feedback.so,v 10.19 2000/07/09 19:12:39 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::set_feedback</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::set_feedback</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbEnv::set_feedback(
- void (*db_feedback_fcn)(DbEnv *, int opcode, int pct));
-</pre></h3>
-<h1>Description</h1>
-<p>Some operations performed by the Berkeley DB library can take non-trivial
-amounts of time. The DbEnv::set_feedback method can be used by
-applications to monitor progress within these operations.
-<p>When an operation is likely to take a long time, Berkeley DB will call the
-specified callback method. This method must be declared with
-three arguments: the first will be a reference to the enclosing
-environment, the second a flag value, and the third the percent of the
-operation that has been completed, specified as an integer value between
-0 and 100. It is up to the callback method to display this
-information in an appropriate manner.
-<p>The <b>opcode</b> argument may take on any of the following values:
-<p><dl compact>
-<p><dt><a name="DB_RECOVER">DB_RECOVER</a><dd>The environment is being recovered.
-</dl>
-<p>The DbEnv::set_feedback interface may be used to configure Berkeley DB at any time
-during the life of the application.
-<p>The DbEnv::set_feedback method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h3>Class</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_close.html">DbEnv::close</a>,
-<a href="../api_cxx/env_open.html">DbEnv::open</a>,
-<a href="../api_cxx/env_remove.html">DbEnv::remove</a>,
-<a href="../api_cxx/db_err.html">DbEnv::err</a>,
-<a href="../api_cxx/env_strerror.html">DbEnv::strerror</a>,
-<a href="../api_cxx/env_version.html">DbEnv::version</a>,
-<a href="../api_cxx/env_set_cachesize.html">DbEnv::set_cachesize</a>,
-<a href="../api_cxx/env_set_errcall.html">DbEnv::set_errcall</a>,
-<a href="../api_cxx/env_set_errfile.html">DbEnv::set_errfile</a>,
-<a href="../api_cxx/env_set_error_stream.html">DbEnv::set_error_stream</a>,
-<a href="../api_cxx/env_set_errpfx.html">DbEnv::set_errpfx</a>,
-<a href="../api_cxx/env_set_flags.html">DbEnv::set_flags</a>,
-<a href="../api_cxx/env_set_mutexlocks.html">DbEnv::set_mutexlocks</a>,
-<a href="../api_cxx/env_set_paniccall.html">DbEnv::set_paniccall</a>,
-and
-<a href="../api_cxx/env_set_verbose.html">DbEnv::set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/env_set_flags.html b/bdb/docs/api_cxx/env_set_flags.html
deleted file mode 100644
index ad8f4fc1ce2..00000000000
--- a/bdb/docs/api_cxx/env_set_flags.html
+++ /dev/null
@@ -1,87 +0,0 @@
-<!--$Id-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::set_flags</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::set_flags</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbEnv::set_flags(u_int32_t flags, int onoff);
-</pre></h3>
-<h1>Description</h1>
-<p>The <b>flags</b> value must be set to 0 or by bitwise inclusively <b>OR</b>'ing together one or more
-of the following values.
-If <b>onoff</b> is zero, the specified flags are cleared, otherwise they
-are set.
-<p><dl compact>
-<p><dt><a name="DB_CDB_ALLDB">DB_CDB_ALLDB</a><dd>For Berkeley DB Concurrent Data Store applications, perform locking on an environment-wide basis
-rather than per-database. This flag may only be used to configure Berkeley DB
-before the <a href="../api_cxx/env_open.html">DbEnv::open</a> interface is called.
-<p><dt><a name="DB_NOMMAP">DB_NOMMAP</a><dd>Copy read-only database files in this environment into the local cache
-instead of potentially mapping them into process memory (see the
-description of the <a href="../api_cxx/env_set_mp_mmapsize.html">DbEnv::set_mp_mmapsize</a> method for further information).
-<p><dt><a name="DB_TXN_NOSYNC">DB_TXN_NOSYNC</a><dd>Do not synchronously flush the log on transaction commit or prepare.
-This means that transactions exhibit the ACI (atomicity, consistency and
-isolation) properties, but not D (durability), i.e., database integrity
-will be maintained but it is possible that some number of the most
-recently committed transactions may be undone during recovery instead of
-being redone.
-<p>The number of transactions that are potentially at risk is governed by
-how often the log is checkpointed (see <a href="../utility/db_checkpoint.html">db_checkpoint</a> for more
-information) and how many log updates can fit on a single log page.
-</dl>
-<p>The DbEnv::set_flags method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<p>The database environment's flag values may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_flags", one or more whitespace characters,
-and the interface flag argument as a string, for example, "set_flags
-DB_TXN_NOSYNC". Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h3>Class</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_close.html">DbEnv::close</a>,
-<a href="../api_cxx/env_open.html">DbEnv::open</a>,
-<a href="../api_cxx/env_remove.html">DbEnv::remove</a>,
-<a href="../api_cxx/db_err.html">DbEnv::err</a>,
-<a href="../api_cxx/env_strerror.html">DbEnv::strerror</a>,
-<a href="../api_cxx/env_version.html">DbEnv::version</a>,
-<a href="../api_cxx/env_set_cachesize.html">DbEnv::set_cachesize</a>,
-<a href="../api_cxx/env_set_errcall.html">DbEnv::set_errcall</a>,
-<a href="../api_cxx/env_set_errfile.html">DbEnv::set_errfile</a>,
-<a href="../api_cxx/env_set_error_stream.html">DbEnv::set_error_stream</a>,
-<a href="../api_cxx/env_set_errpfx.html">DbEnv::set_errpfx</a>,
-<a href="../api_cxx/env_set_flags.html">DbEnv::set_flags</a>,
-<a href="../api_cxx/env_set_mutexlocks.html">DbEnv::set_mutexlocks</a>,
-<a href="../api_cxx/env_set_paniccall.html">DbEnv::set_paniccall</a>,
-and
-<a href="../api_cxx/env_set_verbose.html">DbEnv::set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/env_set_lg_bsize.html b/bdb/docs/api_cxx/env_set_lg_bsize.html
deleted file mode 100644
index fb9efecef3f..00000000000
--- a/bdb/docs/api_cxx/env_set_lg_bsize.html
+++ /dev/null
@@ -1,71 +0,0 @@
-<!--$Id: env_set_lg_bsize.so,v 10.10 2000/05/20 16:29:11 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::set_lg_bsize</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::set_lg_bsize</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbEnv::set_lg_bsize(u_int32_t lg_bsize);
-</pre></h3>
-<h1>Description</h1>
-<p>Set the size of the in-memory log buffer, in bytes. By default, or if
-the value is set to 0, a size of 32K is used.
-<p>Log information is stored in-memory until the storage space fills up
-or transaction commit forces the information to be flushed to stable
-storage. In the presence of long-running transactions or transactions
-producing large amounts of data, larger buffer sizes can increase
-throughput.
-<p>The DbEnv::set_lg_bsize interface may only be used to configure Berkeley DB before
-the <a href="../api_cxx/env_open.html">DbEnv::open</a> interface is called.
-<p>The DbEnv::set_lg_bsize method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<p>The database environment's log buffer size may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_lg_bsize", one or more whitespace characters,
-and the size in bytes. Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_cxx/env_open.html">DbEnv::open</a> was called.
-</dl>
-<h3>Class</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_set_lg_bsize.html">DbEnv::set_lg_bsize</a>,
-<a href="../api_cxx/env_set_lg_max.html">DbEnv::set_lg_max</a>,
-<a href="../api_cxx/log_archive.html">DbEnv::log_archive</a>,
-<a href="../api_cxx/log_compare.html">DbEnv::log_compare</a>,
-<a href="../api_cxx/log_file.html">DbEnv::log_file</a>,
-<a href="../api_cxx/log_flush.html">DbEnv::log_flush</a>,
-<a href="../api_cxx/log_get.html">DbEnv::log_get</a>,
-<a href="../api_cxx/log_put.html">DbEnv::log_put</a>,
-<a href="../api_cxx/log_register.html">DbEnv::log_register</a>,
-<a href="../api_cxx/log_stat.html">DbEnv::log_stat</a>
-and
-<a href="../api_cxx/log_unregister.html">DbEnv::log_unregister</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/env_set_lg_dir.html b/bdb/docs/api_cxx/env_set_lg_dir.html
deleted file mode 100644
index 9a97eb3fe00..00000000000
--- a/bdb/docs/api_cxx/env_set_lg_dir.html
+++ /dev/null
@@ -1,76 +0,0 @@
-<!--$Id: env_set_lg_dir.so,v 10.3 2000/05/20 16:29:11 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::set_lg_dir</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::set_lg_dir</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbEnv::set_lg_dir(const char *dir);
-</pre></h3>
-<h1>Description</h1>
-<p>The path of a directory to be used as the location of logging files.
-Log files created by the Log Manager subsystem will be created in this
-directory.
-<p>If no logging directory is specified, log files are created in the
-environment home directory. See <a href="../ref/env/naming.html">Berkeley DB File Naming</a> for more information.
-<p>For the greatest degree of recoverability from system or application
-failure, database files and log files should be located on separate
-physical devices.
-<p>The DbEnv::set_lg_dir interface may only be used to configure Berkeley DB before
-the <a href="../api_cxx/env_open.html">DbEnv::open</a> interface is called.
-<p>The DbEnv::set_lg_dir method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<p>The database environment's logging directory may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_lg_dir", one or more whitespace characters,
-and the directory name. Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_cxx/env_open.html">DbEnv::open</a> was called.
-</dl>
-<h3>Class</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_close.html">DbEnv::close</a>,
-<a href="../api_cxx/env_open.html">DbEnv::open</a>,
-<a href="../api_cxx/env_remove.html">DbEnv::remove</a>,
-<a href="../api_cxx/db_err.html">DbEnv::err</a>,
-<a href="../api_cxx/env_strerror.html">DbEnv::strerror</a>,
-<a href="../api_cxx/env_version.html">DbEnv::version</a>,
-<a href="../api_cxx/env_set_cachesize.html">DbEnv::set_cachesize</a>,
-<a href="../api_cxx/env_set_errcall.html">DbEnv::set_errcall</a>,
-<a href="../api_cxx/env_set_errfile.html">DbEnv::set_errfile</a>,
-<a href="../api_cxx/env_set_error_stream.html">DbEnv::set_error_stream</a>,
-<a href="../api_cxx/env_set_errpfx.html">DbEnv::set_errpfx</a>,
-<a href="../api_cxx/env_set_flags.html">DbEnv::set_flags</a>,
-<a href="../api_cxx/env_set_mutexlocks.html">DbEnv::set_mutexlocks</a>,
-<a href="../api_cxx/env_set_paniccall.html">DbEnv::set_paniccall</a>,
-and
-<a href="../api_cxx/env_set_verbose.html">DbEnv::set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/env_set_lg_max.html b/bdb/docs/api_cxx/env_set_lg_max.html
deleted file mode 100644
index c0f27d19b20..00000000000
--- a/bdb/docs/api_cxx/env_set_lg_max.html
+++ /dev/null
@@ -1,71 +0,0 @@
-<!--$Id: env_set_lg_max.so,v 10.20 2000/05/20 16:29:12 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::set_lg_max</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::set_lg_max</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbEnv::set_lg_max(u_int32_t lg_max);
-</pre></h3>
-<h1>Description</h1>
-<p>Set the maximum size of a single file in the log, in bytes. Because
-<a href="../api_cxx/lsn_class.html">DbLsn</a> file offsets are unsigned 4-byte values, the set value may
-not be larger than the maximum unsigned 4-byte value. By default, or if
-the value is set to 0, a size of 10MB is used.
-<p>See <a href="../ref/log/limits.html">Log File Limits</a>
-for more information.
-<p>The DbEnv::set_lg_max interface may only be used to configure Berkeley DB before
-the <a href="../api_cxx/env_open.html">DbEnv::open</a> interface is called.
-<p>The DbEnv::set_lg_max method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<p>The database environment's log file size may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_lg_max", one or more whitespace characters,
-and the size in bytes. Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_cxx/env_open.html">DbEnv::open</a> was called.
-<p>The specified log file size was too large.
-</dl>
-<h3>Class</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_set_lg_bsize.html">DbEnv::set_lg_bsize</a>,
-<a href="../api_cxx/env_set_lg_max.html">DbEnv::set_lg_max</a>,
-<a href="../api_cxx/log_archive.html">DbEnv::log_archive</a>,
-<a href="../api_cxx/log_compare.html">DbEnv::log_compare</a>,
-<a href="../api_cxx/log_file.html">DbEnv::log_file</a>,
-<a href="../api_cxx/log_flush.html">DbEnv::log_flush</a>,
-<a href="../api_cxx/log_get.html">DbEnv::log_get</a>,
-<a href="../api_cxx/log_put.html">DbEnv::log_put</a>,
-<a href="../api_cxx/log_register.html">DbEnv::log_register</a>,
-<a href="../api_cxx/log_stat.html">DbEnv::log_stat</a>
-and
-<a href="../api_cxx/log_unregister.html">DbEnv::log_unregister</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/env_set_lk_conflicts.html b/bdb/docs/api_cxx/env_set_lk_conflicts.html
deleted file mode 100644
index 9ef5e8c7802..00000000000
--- a/bdb/docs/api_cxx/env_set_lk_conflicts.html
+++ /dev/null
@@ -1,71 +0,0 @@
-<!--$Id: env_set_lk_conflicts.so,v 10.22 2000/12/08 20:43:15 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::set_lk_conflicts</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::set_lk_conflicts</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbEnv::set_lk_conflicts(u_int8_t *conflicts, int nmodes);
-</pre></h3>
-<h1>Description</h1>
-<p>Set the locking conflicts matrix.
-The <b>conflicts</b> argument
-is an <b>nmodes</b> by <b>nmodes</b> array.
-A non-0 value for the array element:
-<p><blockquote><pre>conflicts[requested_mode][held_mode]</pre></blockquote>
-<p>indicates that requested_mode and held_mode conflict. The
-<i>not-granted</i> mode must be represented by 0.
-<p>If no <b>conflicts</b> value is specified, the conflicts array
-<b>db_rw_conflicts</b> is used; see <a href="../ref/lock/stdmode.html">Standard Lock Modes</a> for a description of that array.
-<p>The DbEnv::set_lk_conflicts interface may only be used to configure Berkeley DB before
-the <a href="../api_cxx/env_open.html">DbEnv::open</a> interface is called.
-<p>The DbEnv::set_lk_conflicts method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_cxx/env_open.html">DbEnv::open</a> was called.
-</dl>
-<p><dl compact>
-<p><dt>ENOMEM<dd>No memory was available to copy the conflicts array.
-</dl>
-<h3>Classes</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>, <a href="../api_cxx/lock_class.html">DbLock</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_set_lk_conflicts.html">DbEnv::set_lk_conflicts</a>,
-<a href="../api_cxx/env_set_lk_detect.html">DbEnv::set_lk_detect</a>,
-<a href="../api_cxx/env_set_lk_max_locks.html">DbEnv::set_lk_max_locks</a>,
-<a href="../api_cxx/env_set_lk_max_lockers.html">DbEnv::set_lk_max_lockers</a>,
-<a href="../api_cxx/env_set_lk_max_objects.html">DbEnv::set_lk_max_objects</a>,
-<a href="../api_cxx/env_set_lk_max.html">DbEnv::set_lk_max</a>,
-<a href="../api_cxx/lock_detect.html">DbEnv::lock_detect</a>,
-<a href="../api_cxx/lock_get.html">DbEnv::lock_get</a>,
-<a href="../api_cxx/lock_id.html">DbEnv::lock_id</a>,
-<a href="../api_cxx/lock_put.html">DbLock::put</a>,
-<a href="../api_cxx/lock_stat.html">DbEnv::lock_stat</a>
-and
-<a href="../api_cxx/lock_vec.html">DbEnv::lock_vec</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/env_set_lk_detect.html b/bdb/docs/api_cxx/env_set_lk_detect.html
deleted file mode 100644
index ee17ce2a46c..00000000000
--- a/bdb/docs/api_cxx/env_set_lk_detect.html
+++ /dev/null
@@ -1,75 +0,0 @@
-<!--$Id: env_set_lk_detect.so,v 10.19 2000/12/08 20:43:15 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::set_lk_detect</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::set_lk_detect</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbEnv::set_lk_detect(u_int32_t detect);
-</pre></h3>
-<h1>Description</h1>
-<p>Set if the deadlock detector is to be run whenever a lock conflict occurs,
-and specify which transaction should be aborted in the case of a deadlock.
-The specified value must be one of the following list:
-<p><dl compact>
-<p><dt><a name="DB_LOCK_DEFAULT">DB_LOCK_DEFAULT</a><dd>Use the default policy as specified by <a href="../utility/db_deadlock.html">db_deadlock</a>.
-<dt><a name="DB_LOCK_OLDEST">DB_LOCK_OLDEST</a><dd>Abort the oldest transaction.
-<dt><a name="DB_LOCK_RANDOM">DB_LOCK_RANDOM</a><dd>Abort a random transaction involved in the deadlock.
-<dt><a name="DB_LOCK_YOUNGEST">DB_LOCK_YOUNGEST</a><dd>Abort the youngest transaction.
-</dl>
-<p>The DbEnv::set_lk_detect interface may only be used to configure Berkeley DB before
-the <a href="../api_cxx/env_open.html">DbEnv::open</a> interface is called.
-<p>The DbEnv::set_lk_detect method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<p>The database environment's deadlock detector configuration may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_lk_detect", one or more whitespace characters,
-and the interface <b>detect</b> argument as a string, for example,
-"set_lk_detect DB_LOCK_OLDEST". Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_cxx/env_open.html">DbEnv::open</a> was called.
-</dl>
-<h3>Classes</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>, <a href="../api_cxx/lock_class.html">DbLock</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_set_lk_conflicts.html">DbEnv::set_lk_conflicts</a>,
-<a href="../api_cxx/env_set_lk_detect.html">DbEnv::set_lk_detect</a>,
-<a href="../api_cxx/env_set_lk_max_locks.html">DbEnv::set_lk_max_locks</a>,
-<a href="../api_cxx/env_set_lk_max_lockers.html">DbEnv::set_lk_max_lockers</a>,
-<a href="../api_cxx/env_set_lk_max_objects.html">DbEnv::set_lk_max_objects</a>,
-<a href="../api_cxx/env_set_lk_max.html">DbEnv::set_lk_max</a>,
-<a href="../api_cxx/lock_detect.html">DbEnv::lock_detect</a>,
-<a href="../api_cxx/lock_get.html">DbEnv::lock_get</a>,
-<a href="../api_cxx/lock_id.html">DbEnv::lock_id</a>,
-<a href="../api_cxx/lock_put.html">DbLock::put</a>,
-<a href="../api_cxx/lock_stat.html">DbEnv::lock_stat</a>
-and
-<a href="../api_cxx/lock_vec.html">DbEnv::lock_vec</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/env_set_lk_max.html b/bdb/docs/api_cxx/env_set_lk_max.html
deleted file mode 100644
index 7e614d4ac6f..00000000000
--- a/bdb/docs/api_cxx/env_set_lk_max.html
+++ /dev/null
@@ -1,75 +0,0 @@
-<!--$Id: env_set_lk_max.so,v 10.21 2000/12/21 19:11:27 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::set_lk_max</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::set_lk_max</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbEnv::set_lk_max(u_int32_t max);
-</pre></h3>
-<h1>Description</h1>
-<p><b>The DbEnv::set_lk_max method interface has been deprecated in favor of
-the <a href="../api_cxx/env_set_lk_max_locks.html">DbEnv::set_lk_max_locks</a>, <a href="../api_cxx/env_set_lk_max_lockers.html">DbEnv::set_lk_max_lockers</a>,
-and <a href="../api_cxx/env_set_lk_max_objects.html">DbEnv::set_lk_max_objects</a> methods. Please update your applications.</b>
-<p>Set each of the maximum number of locks, lockers and lock objects
-supported by the Berkeley DB lock subsystem to <b>max</b>. This value is
-used by <a href="../api_cxx/env_open.html">DbEnv::open</a> to estimate how much space to allocate for
-various lock-table data structures. For specific information on
-configuring the size of the lock subsystem, see
-<a href="../ref/lock/max.html">Configuring locking: sizing the
-system</a>.
-<p>The DbEnv::set_lk_max interface may only be used to configure Berkeley DB before
-the <a href="../api_cxx/env_open.html">DbEnv::open</a> interface is called.
-<p>The DbEnv::set_lk_max method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<p>The database environment's maximum number of locks may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_lk_max", one or more whitespace characters,
-and the number of locks. Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_cxx/env_open.html">DbEnv::open</a> was called.
-</dl>
-<h3>Classes</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>, <a href="../api_cxx/lock_class.html">DbLock</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_set_lk_conflicts.html">DbEnv::set_lk_conflicts</a>,
-<a href="../api_cxx/env_set_lk_detect.html">DbEnv::set_lk_detect</a>,
-<a href="../api_cxx/env_set_lk_max_locks.html">DbEnv::set_lk_max_locks</a>,
-<a href="../api_cxx/env_set_lk_max_lockers.html">DbEnv::set_lk_max_lockers</a>,
-<a href="../api_cxx/env_set_lk_max_objects.html">DbEnv::set_lk_max_objects</a>,
-<a href="../api_cxx/env_set_lk_max.html">DbEnv::set_lk_max</a>,
-<a href="../api_cxx/lock_detect.html">DbEnv::lock_detect</a>,
-<a href="../api_cxx/lock_get.html">DbEnv::lock_get</a>,
-<a href="../api_cxx/lock_id.html">DbEnv::lock_id</a>,
-<a href="../api_cxx/lock_put.html">DbLock::put</a>,
-<a href="../api_cxx/lock_stat.html">DbEnv::lock_stat</a>
-and
-<a href="../api_cxx/lock_vec.html">DbEnv::lock_vec</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/env_set_lk_max_lockers.html b/bdb/docs/api_cxx/env_set_lk_max_lockers.html
deleted file mode 100644
index 9e84c0150fb..00000000000
--- a/bdb/docs/api_cxx/env_set_lk_max_lockers.html
+++ /dev/null
@@ -1,71 +0,0 @@
-<!--$Id: env_set_lk_max_lockers.so,v 1.2 2000/12/08 22:03:00 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::set_lk_max_lockers</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::set_lk_max_lockers</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbEnv::set_lk_max_lockers(u_int32_t max);
-</pre></h3>
-<h1>Description</h1>
-<p>Set the maximum number of simultaneous locking entities supported by
-the Berkeley DB lock subsystem. This value is used by <a href="../api_cxx/env_open.html">DbEnv::open</a> to
-estimate how much space to allocate for various lock-table data
-structures. For specific information on configuring the size of the
-lock subsystem, see
-<a href="../ref/lock/max.html">Configuring locking: sizing the system</a>.
-<p>The DbEnv::set_lk_max_lockers interface may only be used to configure Berkeley DB before
-the <a href="../api_cxx/env_open.html">DbEnv::open</a> interface is called.
-<p>The DbEnv::set_lk_max_lockers method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<p>The database environment's maximum number of lockers may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_lk_max_lockers", one or more whitespace characters,
-and the number of lockers. Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_cxx/env_open.html">DbEnv::open</a> was called.
-</dl>
-<h3>Classes</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>, <a href="../api_cxx/lock_class.html">DbLock</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_set_lk_conflicts.html">DbEnv::set_lk_conflicts</a>,
-<a href="../api_cxx/env_set_lk_detect.html">DbEnv::set_lk_detect</a>,
-<a href="../api_cxx/env_set_lk_max_locks.html">DbEnv::set_lk_max_locks</a>,
-<a href="../api_cxx/env_set_lk_max_lockers.html">DbEnv::set_lk_max_lockers</a>,
-<a href="../api_cxx/env_set_lk_max_objects.html">DbEnv::set_lk_max_objects</a>,
-<a href="../api_cxx/env_set_lk_max.html">DbEnv::set_lk_max</a>,
-<a href="../api_cxx/lock_detect.html">DbEnv::lock_detect</a>,
-<a href="../api_cxx/lock_get.html">DbEnv::lock_get</a>,
-<a href="../api_cxx/lock_id.html">DbEnv::lock_id</a>,
-<a href="../api_cxx/lock_put.html">DbLock::put</a>,
-<a href="../api_cxx/lock_stat.html">DbEnv::lock_stat</a>
-and
-<a href="../api_cxx/lock_vec.html">DbEnv::lock_vec</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/env_set_lk_max_locks.html b/bdb/docs/api_cxx/env_set_lk_max_locks.html
deleted file mode 100644
index 4e296e97939..00000000000
--- a/bdb/docs/api_cxx/env_set_lk_max_locks.html
+++ /dev/null
@@ -1,70 +0,0 @@
-<!--$Id: env_set_lk_max_locks.so,v 10.1 2000/12/21 19:11:27 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::set_lk_max_locks</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::set_lk_max_locks</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbEnv::set_lk_max_locks(u_int32_t max);
-</pre></h3>
-<h1>Description</h1>
-<p>Set the maximum number of locks supported by the Berkeley DB lock subsystem.
-This value is used by <a href="../api_cxx/env_open.html">DbEnv::open</a> to estimate how much space to
-allocate for various lock-table data structures. For specific
-information on configuring the size of the lock subsystem, see
-<a href="../ref/lock/max.html">Configuring locking: sizing the system</a>.
-<p>The DbEnv::set_lk_max_locks interface may only be used to configure Berkeley DB before
-the <a href="../api_cxx/env_open.html">DbEnv::open</a> interface is called.
-<p>The DbEnv::set_lk_max_locks method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<p>The database environment's maximum number of locks may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_lk_max_locks", one or more whitespace characters,
-and the number of locks. Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_cxx/env_open.html">DbEnv::open</a> was called.
-</dl>
-<h3>Classes</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>, <a href="../api_cxx/lock_class.html">DbLock</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_set_lk_conflicts.html">DbEnv::set_lk_conflicts</a>,
-<a href="../api_cxx/env_set_lk_detect.html">DbEnv::set_lk_detect</a>,
-<a href="../api_cxx/env_set_lk_max_locks.html">DbEnv::set_lk_max_locks</a>,
-<a href="../api_cxx/env_set_lk_max_lockers.html">DbEnv::set_lk_max_lockers</a>,
-<a href="../api_cxx/env_set_lk_max_objects.html">DbEnv::set_lk_max_objects</a>,
-<a href="../api_cxx/env_set_lk_max.html">DbEnv::set_lk_max</a>,
-<a href="../api_cxx/lock_detect.html">DbEnv::lock_detect</a>,
-<a href="../api_cxx/lock_get.html">DbEnv::lock_get</a>,
-<a href="../api_cxx/lock_id.html">DbEnv::lock_id</a>,
-<a href="../api_cxx/lock_put.html">DbLock::put</a>,
-<a href="../api_cxx/lock_stat.html">DbEnv::lock_stat</a>
-and
-<a href="../api_cxx/lock_vec.html">DbEnv::lock_vec</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/env_set_lk_max_objects.html b/bdb/docs/api_cxx/env_set_lk_max_objects.html
deleted file mode 100644
index b196cb92593..00000000000
--- a/bdb/docs/api_cxx/env_set_lk_max_objects.html
+++ /dev/null
@@ -1,71 +0,0 @@
-<!--$Id: env_set_lk_max_objects.so,v 1.2 2000/12/08 22:03:00 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::set_lk_max_objects</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::set_lk_max_objects</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbEnv::set_lk_max_objects(u_int32_t max);
-</pre></h3>
-<h1>Description</h1>
-<p>Set the maximum number of simultaneously locked objects supported by
-the Berkeley DB lock subsystem. This value is used by <a href="../api_cxx/env_open.html">DbEnv::open</a> to
-estimate how much space to allocate for various lock-table data
-structures. For specific information on configuring the size of the
-lock subsystem, see
-<a href="../ref/lock/max.html">Configuring locking: sizing the system</a>.
-<p>The DbEnv::set_lk_max_objects interface may only be used to configure Berkeley DB before
-the <a href="../api_cxx/env_open.html">DbEnv::open</a> interface is called.
-<p>The DbEnv::set_lk_max_objects method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<p>The database environment's maximum number of objects may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_lk_max_objects", one or more whitespace characters,
-and the number of objects. Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_cxx/env_open.html">DbEnv::open</a> was called.
-</dl>
-<h3>Classes</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>, <a href="../api_cxx/lock_class.html">DbLock</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_set_lk_conflicts.html">DbEnv::set_lk_conflicts</a>,
-<a href="../api_cxx/env_set_lk_detect.html">DbEnv::set_lk_detect</a>,
-<a href="../api_cxx/env_set_lk_max_locks.html">DbEnv::set_lk_max_locks</a>,
-<a href="../api_cxx/env_set_lk_max_lockers.html">DbEnv::set_lk_max_lockers</a>,
-<a href="../api_cxx/env_set_lk_max_objects.html">DbEnv::set_lk_max_objects</a>,
-<a href="../api_cxx/env_set_lk_max.html">DbEnv::set_lk_max</a>,
-<a href="../api_cxx/lock_detect.html">DbEnv::lock_detect</a>,
-<a href="../api_cxx/lock_get.html">DbEnv::lock_get</a>,
-<a href="../api_cxx/lock_id.html">DbEnv::lock_id</a>,
-<a href="../api_cxx/lock_put.html">DbLock::put</a>,
-<a href="../api_cxx/lock_stat.html">DbEnv::lock_stat</a>
-and
-<a href="../api_cxx/lock_vec.html">DbEnv::lock_vec</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/env_set_mp_mmapsize.html b/bdb/docs/api_cxx/env_set_mp_mmapsize.html
deleted file mode 100644
index da7b3b5a698..00000000000
--- a/bdb/docs/api_cxx/env_set_mp_mmapsize.html
+++ /dev/null
@@ -1,74 +0,0 @@
-<!--$Id: env_set_mp_mmapsize.so,v 10.18 2000/05/20 16:29:12 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::set_mp_mmapsize</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::set_mp_mmapsize</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbEnv::set_mp_mmapsize(size_t mp_mmapsize);
-</pre></h3>
-<h1>Description</h1>
-<p>Files that are opened read-only in the pool (and that satisfy a few other
-criteria) are, by default, mapped into the process address space instead
-of being copied into the local cache. This can result in better-than-usual
-performance, as available virtual memory is normally much larger than the
-local cache, and page faults are faster than page copying on many systems.
-However, in the presence of limited virtual memory it can cause resource
-starvation, and in the presence of large databases, it can result in immense
-process sizes.
-<p>Set the maximum file size, in bytes, for a file to be mapped into the
-process address space. If no value is specified, it defaults to 10MB.
-<p>The DbEnv::set_mp_mmapsize interface may only be used to configure Berkeley DB before
-the <a href="../api_cxx/env_open.html">DbEnv::open</a> interface is called.
-<p>The DbEnv::set_mp_mmapsize method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<p>The database environment's maximum mapped file size may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_mp_mmapsize", one or more whitespace characters,
-and the size in bytes. Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_cxx/env_open.html">DbEnv::open</a> was called.
-</dl>
-<h3>Classes</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>, <a href="../api_cxx/mempfile_class.html">DbMpoolFile</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_set_mp_mmapsize.html">DbEnv::set_mp_mmapsize</a>,
-<a href="../api_cxx/memp_fclose.html">DbMpoolFile::close</a>,
-<a href="../api_cxx/memp_fget.html">DbMpoolFile::get</a>,
-<a href="../api_cxx/memp_fopen.html">DbMpoolFile::open</a>,
-<a href="../api_cxx/memp_fput.html">DbMpoolFile::put</a>,
-<a href="../api_cxx/memp_fset.html">DbMpoolFile::set</a>,
-<a href="../api_cxx/memp_fsync.html">DbMpoolFile::sync</a>,
-<a href="../api_cxx/memp_register.html">DbEnv::memp_register</a>,
-<a href="../api_cxx/memp_stat.html">DbEnv::memp_stat</a>,
-<a href="../api_cxx/memp_sync.html">DbEnv::memp_sync</a>
-and
-<a href="../api_cxx/memp_trickle.html">DbEnv::memp_trickle</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/env_set_mutexlocks.html b/bdb/docs/api_cxx/env_set_mutexlocks.html
deleted file mode 100644
index b728927a2b4..00000000000
--- a/bdb/docs/api_cxx/env_set_mutexlocks.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!--$Id: env_set_mutexlocks.so,v 10.9 2000/11/17 19:56:52 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::set_mutexlocks</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::set_mutexlocks</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbEnv::set_mutexlocks(int do_lock);
-</pre></h3>
-<h1>Description</h1>
-<p>Toggle mutex locks. Setting <b>do_lock</b> to a zero value causes
-Berkeley DB to grant all requested mutual exclusion mutexes without regard
-for their availability.
-<p>This functionality should never be used for any other purpose than
-debugging.
-<p>The DbEnv::set_mutexlocks interface may be used to configure Berkeley DB at any time
-during the life of the application.
-<p>The DbEnv::set_mutexlocks method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h3>Class</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_close.html">DbEnv::close</a>,
-<a href="../api_cxx/env_open.html">DbEnv::open</a>,
-<a href="../api_cxx/env_remove.html">DbEnv::remove</a>,
-<a href="../api_cxx/db_err.html">DbEnv::err</a>,
-<a href="../api_cxx/env_strerror.html">DbEnv::strerror</a>,
-<a href="../api_cxx/env_version.html">DbEnv::version</a>,
-<a href="../api_cxx/env_set_cachesize.html">DbEnv::set_cachesize</a>,
-<a href="../api_cxx/env_set_errcall.html">DbEnv::set_errcall</a>,
-<a href="../api_cxx/env_set_errfile.html">DbEnv::set_errfile</a>,
-<a href="../api_cxx/env_set_error_stream.html">DbEnv::set_error_stream</a>,
-<a href="../api_cxx/env_set_errpfx.html">DbEnv::set_errpfx</a>,
-<a href="../api_cxx/env_set_flags.html">DbEnv::set_flags</a>,
-<a href="../api_cxx/env_set_mutexlocks.html">DbEnv::set_mutexlocks</a>,
-<a href="../api_cxx/env_set_paniccall.html">DbEnv::set_paniccall</a>,
-and
-<a href="../api_cxx/env_set_verbose.html">DbEnv::set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/env_set_pageyield.html b/bdb/docs/api_cxx/env_set_pageyield.html
deleted file mode 100644
index 01247edc50b..00000000000
--- a/bdb/docs/api_cxx/env_set_pageyield.html
+++ /dev/null
@@ -1,71 +0,0 @@
-<!--$Id: env_set_pageyield.so,v 10.6 2000/05/31 15:10:00 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::set_pageyield</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::set_pageyield</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-static int
-DbEnv::set_pageyield(int pageyield);
-</pre></h3>
-<h1>Description</h1>
-<p>Yield the processor whenever requesting a page from the cache. Setting
-<b>pageyield</b> to a non-zero value causes Berkeley DB to yield the processor
-any time a thread requests a page from the cache.
-<p>The DbEnv::set_pageyield interface affects the entire application, not a single
-database or database environment.
-<p>While the DbEnv::set_pageyield interface may be used to configure Berkeley DB at any time
-during the life of the application, it should normally be called before
-making any calls to the <a href="../api_c/env_create.html">db_env_create</a> or <a href="../api_c/db_create.html">db_create</a> methods.
-<p>This functionality should never be used for any other purpose than stress
-testing.
-<p>The DbEnv::set_pageyield interface may be used to configure Berkeley DB at any time
-during the life of the application.
-<p>The DbEnv::set_pageyield method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h3>Class</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_close.html">DbEnv::close</a>,
-<a href="../api_cxx/env_open.html">DbEnv::open</a>,
-<a href="../api_cxx/env_remove.html">DbEnv::remove</a>,
-<a href="../api_cxx/db_err.html">DbEnv::err</a>,
-<a href="../api_cxx/env_strerror.html">DbEnv::strerror</a>,
-<a href="../api_cxx/env_version.html">DbEnv::version</a>,
-<a href="../api_cxx/env_set_cachesize.html">DbEnv::set_cachesize</a>,
-<a href="../api_cxx/env_set_errcall.html">DbEnv::set_errcall</a>,
-<a href="../api_cxx/env_set_errfile.html">DbEnv::set_errfile</a>,
-<a href="../api_cxx/env_set_error_stream.html">DbEnv::set_error_stream</a>,
-<a href="../api_cxx/env_set_errpfx.html">DbEnv::set_errpfx</a>,
-<a href="../api_cxx/env_set_flags.html">DbEnv::set_flags</a>,
-<a href="../api_cxx/env_set_mutexlocks.html">DbEnv::set_mutexlocks</a>,
-<a href="../api_cxx/env_set_paniccall.html">DbEnv::set_paniccall</a>,
-and
-<a href="../api_cxx/env_set_verbose.html">DbEnv::set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/env_set_paniccall.html b/bdb/docs/api_cxx/env_set_paniccall.html
deleted file mode 100644
index 61950ad0417..00000000000
--- a/bdb/docs/api_cxx/env_set_paniccall.html
+++ /dev/null
@@ -1,72 +0,0 @@
-<!--$Id: env_set_paniccall.so,v 10.14 2000/07/09 19:12:56 bostic Exp $-->
-<!--$Id: m4.errset,v 10.8 2000/02/19 20:57:57 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::set_paniccall</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::set_paniccall</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbEnv::set_paniccall(void (*)(DbEnv *, int));
-</pre></h3>
-<h1>Description</h1>
-<p>Errors can occur in the Berkeley DB library where the only solution is to shut
-down the application and run recovery. (For example, if Berkeley DB is unable
-to write log records to disk because there is insufficient disk space.)
-In these cases, when the C++ error model has been configured so that the
-individual Berkeley DB methods return error codes (see <a href="../api_cxx/except_class.html">DbException</a> for
-more information), the value <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> is returned by Berkeley DB
-methods.
-<p>In these cases, it is also often simpler to shut down the application when
-such errors occur rather than attempting to gracefully return up the stack.
-The DbEnv::set_paniccall method is used to specify a method to be called when
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> is about to be returned from a Berkeley DB method. When
-called, the <b>dbenv</b> argument will be a reference to the current
-environment, and the <b>errval</b> argument is the error value that would
-have been returned to the calling method.
-<p>The DbEnv::set_paniccall interface may be used to configure Berkeley DB at any time
-during the life of the application.
-<p>The DbEnv::set_paniccall method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h3>Class</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_close.html">DbEnv::close</a>,
-<a href="../api_cxx/env_open.html">DbEnv::open</a>,
-<a href="../api_cxx/env_remove.html">DbEnv::remove</a>,
-<a href="../api_cxx/db_err.html">DbEnv::err</a>,
-<a href="../api_cxx/env_strerror.html">DbEnv::strerror</a>,
-<a href="../api_cxx/env_version.html">DbEnv::version</a>,
-<a href="../api_cxx/env_set_cachesize.html">DbEnv::set_cachesize</a>,
-<a href="../api_cxx/env_set_errcall.html">DbEnv::set_errcall</a>,
-<a href="../api_cxx/env_set_errfile.html">DbEnv::set_errfile</a>,
-<a href="../api_cxx/env_set_error_stream.html">DbEnv::set_error_stream</a>,
-<a href="../api_cxx/env_set_errpfx.html">DbEnv::set_errpfx</a>,
-<a href="../api_cxx/env_set_flags.html">DbEnv::set_flags</a>,
-<a href="../api_cxx/env_set_mutexlocks.html">DbEnv::set_mutexlocks</a>,
-<a href="../api_cxx/env_set_paniccall.html">DbEnv::set_paniccall</a>,
-and
-<a href="../api_cxx/env_set_verbose.html">DbEnv::set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/env_set_panicstate.html b/bdb/docs/api_cxx/env_set_panicstate.html
deleted file mode 100644
index 6655003ccc4..00000000000
--- a/bdb/docs/api_cxx/env_set_panicstate.html
+++ /dev/null
@@ -1,67 +0,0 @@
-<!--$Id: env_set_panicstate.so,v 10.2 2001/01/17 15:32:34 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::set_panicstate</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::set_panicstate</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-static int
-DbEnv::set_panicstate(int panic);
-</pre></h3>
-<h1>Description</h1>
-<p>Toggle the Berkeley DB panic state. Setting <b>panic</b> to a non-zero value
-causes Berkeley DB to refuse attempts to call Berkeley DB functions with the
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> error return.
-<p>The DbEnv::set_panicstate interface affects the entire application, not a single
-database or database environment.
-<p>While the DbEnv::set_panicstate interface may be used to configure Berkeley DB at any time
-during the life of the application, it should normally be called before
-making any calls to the <a href="../api_c/env_create.html">db_env_create</a> or <a href="../api_c/db_create.html">db_create</a> methods.
-<p>The DbEnv::set_panicstate method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h3>Class</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_close.html">DbEnv::close</a>,
-<a href="../api_cxx/env_open.html">DbEnv::open</a>,
-<a href="../api_cxx/env_remove.html">DbEnv::remove</a>,
-<a href="../api_cxx/db_err.html">DbEnv::err</a>,
-<a href="../api_cxx/env_strerror.html">DbEnv::strerror</a>,
-<a href="../api_cxx/env_version.html">DbEnv::version</a>,
-<a href="../api_cxx/env_set_cachesize.html">DbEnv::set_cachesize</a>,
-<a href="../api_cxx/env_set_errcall.html">DbEnv::set_errcall</a>,
-<a href="../api_cxx/env_set_errfile.html">DbEnv::set_errfile</a>,
-<a href="../api_cxx/env_set_error_stream.html">DbEnv::set_error_stream</a>,
-<a href="../api_cxx/env_set_errpfx.html">DbEnv::set_errpfx</a>,
-<a href="../api_cxx/env_set_flags.html">DbEnv::set_flags</a>,
-<a href="../api_cxx/env_set_mutexlocks.html">DbEnv::set_mutexlocks</a>,
-<a href="../api_cxx/env_set_paniccall.html">DbEnv::set_paniccall</a>,
-and
-<a href="../api_cxx/env_set_verbose.html">DbEnv::set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/env_set_rec_init.html b/bdb/docs/api_cxx/env_set_rec_init.html
deleted file mode 100644
index 96af5948541..00000000000
--- a/bdb/docs/api_cxx/env_set_rec_init.html
+++ /dev/null
@@ -1,73 +0,0 @@
-<!--$Id: env_set_rec_init.so,v 10.9 2000/05/01 21:57:44 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::set_recovery_init</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::set_recovery_init</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbEnv::set_recovery_init(int (*db_recovery_init_fcn)(DbEnv *));
-</pre></h3>
-<h1>Description</h1>
-<p>Applications installing application-specific recovery methods need
-to be called before Berkeley DB performs recovery so they may add their recovery
-methods to Berkeley DB's.
-<p>The DbEnv::set_recovery_init method supports this functionality. The
-<b>db_recovery_init_fcn</b> method must be declared with one
-argument, a reference to the enclosing Berkeley DB environment. This
-method will be called after the <a href="../api_cxx/env_open.html">DbEnv::open</a> has been called,
-but before recovery is started.
-<p>If the <b>db_recovery_init_fcn</b> method returns a non-zero value,
-no recovery will be performed and <a href="../api_cxx/env_open.html">DbEnv::open</a> will return the same
-value to its caller.
-<p>The DbEnv::set_recovery_init interface may only be used to configure Berkeley DB before
-the <a href="../api_cxx/env_open.html">DbEnv::open</a> interface is called.
-<p>The DbEnv::set_recovery_init method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_cxx/env_open.html">DbEnv::open</a> was called.
-</dl>
-<h3>Class</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_close.html">DbEnv::close</a>,
-<a href="../api_cxx/env_open.html">DbEnv::open</a>,
-<a href="../api_cxx/env_remove.html">DbEnv::remove</a>,
-<a href="../api_cxx/db_err.html">DbEnv::err</a>,
-<a href="../api_cxx/env_strerror.html">DbEnv::strerror</a>,
-<a href="../api_cxx/env_version.html">DbEnv::version</a>,
-<a href="../api_cxx/env_set_cachesize.html">DbEnv::set_cachesize</a>,
-<a href="../api_cxx/env_set_errcall.html">DbEnv::set_errcall</a>,
-<a href="../api_cxx/env_set_errfile.html">DbEnv::set_errfile</a>,
-<a href="../api_cxx/env_set_error_stream.html">DbEnv::set_error_stream</a>,
-<a href="../api_cxx/env_set_errpfx.html">DbEnv::set_errpfx</a>,
-<a href="../api_cxx/env_set_flags.html">DbEnv::set_flags</a>,
-<a href="../api_cxx/env_set_mutexlocks.html">DbEnv::set_mutexlocks</a>,
-<a href="../api_cxx/env_set_paniccall.html">DbEnv::set_paniccall</a>,
-and
-<a href="../api_cxx/env_set_verbose.html">DbEnv::set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/env_set_region_init.html b/bdb/docs/api_cxx/env_set_region_init.html
deleted file mode 100644
index f052adaf69e..00000000000
--- a/bdb/docs/api_cxx/env_set_region_init.html
+++ /dev/null
@@ -1,80 +0,0 @@
-<!--$Id: env_set_region_init.so,v 10.10 2000/05/31 15:10:00 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::set_region_init</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::set_region_init</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-static int
-DbEnv::set_region_init(int region_init);
-</pre></h3>
-<h1>Description</h1>
-<p>Page-fault shared regions into memory when initially creating or joining
-a Berkeley DB environment. In some applications, the expense of page-faulting
-the shared memory regions can affect performance, e.g., when the
-page-fault occurs while holding a lock, other lock requests can convoy
-and overall throughput may decrease. Setting <b>region_init</b> to a
-non-zero value specifies that shared regions be read or written, as
-appropriate, when the region is joined by the application. This forces
-the underlying virtual memory and file systems to instantiate both the
-necessary memory and the necessary disk space. This can also avoid
-out-of-disk space failures later on.
-<p>The DbEnv::set_region_init interface affects the entire application, not a single
-database or database environment.
-<p>While the DbEnv::set_region_init interface may be used to configure Berkeley DB at any time
-during the life of the application, it should normally be called before
-making any calls to the <a href="../api_c/env_create.html">db_env_create</a> or <a href="../api_c/db_create.html">db_create</a> methods.
-<p>The DbEnv::set_region_init method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<p>The database environment's initial behavior with respect to shared memory regions may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_region_init", one or more whitespace characters,
-and the string "1". Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h3>Class</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_close.html">DbEnv::close</a>,
-<a href="../api_cxx/env_open.html">DbEnv::open</a>,
-<a href="../api_cxx/env_remove.html">DbEnv::remove</a>,
-<a href="../api_cxx/db_err.html">DbEnv::err</a>,
-<a href="../api_cxx/env_strerror.html">DbEnv::strerror</a>,
-<a href="../api_cxx/env_version.html">DbEnv::version</a>,
-<a href="../api_cxx/env_set_cachesize.html">DbEnv::set_cachesize</a>,
-<a href="../api_cxx/env_set_errcall.html">DbEnv::set_errcall</a>,
-<a href="../api_cxx/env_set_errfile.html">DbEnv::set_errfile</a>,
-<a href="../api_cxx/env_set_error_stream.html">DbEnv::set_error_stream</a>,
-<a href="../api_cxx/env_set_errpfx.html">DbEnv::set_errpfx</a>,
-<a href="../api_cxx/env_set_flags.html">DbEnv::set_flags</a>,
-<a href="../api_cxx/env_set_mutexlocks.html">DbEnv::set_mutexlocks</a>,
-<a href="../api_cxx/env_set_paniccall.html">DbEnv::set_paniccall</a>,
-and
-<a href="../api_cxx/env_set_verbose.html">DbEnv::set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/env_set_server.html b/bdb/docs/api_cxx/env_set_server.html
deleted file mode 100644
index 208c9cc9c3a..00000000000
--- a/bdb/docs/api_cxx/env_set_server.html
+++ /dev/null
@@ -1,80 +0,0 @@
-<!--"@(#)env_set_server.so 10.13 (Sleepycat) 8/25/99"-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::set_server</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::set_server</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbEnv::set_server(char *host,
- long cl_timeout, long sv_timeout, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>Connects to the DB server on the indicated hostname and sets up a channel
-for communication.
-<p>The <b>cl_timeout</b> argument specifies the number of seconds the client
-should wait for results to come back from the server. Once the timeout
-has expired on any communication with the server, DB_NOSERVER will
-be returned. If this value is zero, a default timeout is used.
-<p>The <b>sv_timeout</b> argument specifies the number of seconds the server
-should allow a client connection to remain idle before assuming that
-client is gone. Once that timeout has been reached, the server releases
-all resources associated with that client connection. Subsequent attempts
-by that client to communicate with the server result in
-DB_NOSERVER_ID indicating that an invalid identifier has been
-given to the server. This value can be considered a hint to the server.
-The server may alter this value based on its own policies or allowed
-values. If this value is zero, a default timeout is used.
-<p>The <b>flags</b> parameter is currently unused, and must be set to 0.
-<p>When the DbEnv::set_server method has been called, any subsequent calls
-to Berkeley DB library interfaces may return either <a name="DB_NOSERVER">DB_NOSERVER</a> or
-<a name="DB_NOSERVER_ID">DB_NOSERVER_ID</a>.
-<p>The DbEnv::set_server method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h3>Errors</h3>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>dbenv_set_server
-</dl>
-<h3>Class</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_close.html">DbEnv::close</a>,
-<a href="../api_cxx/env_open.html">DbEnv::open</a>,
-<a href="../api_cxx/env_remove.html">DbEnv::remove</a>,
-<a href="../api_cxx/db_err.html">DbEnv::err</a>,
-<a href="../api_cxx/env_strerror.html">DbEnv::strerror</a>,
-<a href="../api_cxx/env_version.html">DbEnv::version</a>,
-<a href="../api_cxx/env_set_cachesize.html">DbEnv::set_cachesize</a>,
-<a href="../api_cxx/env_set_errcall.html">DbEnv::set_errcall</a>,
-<a href="../api_cxx/env_set_errfile.html">DbEnv::set_errfile</a>,
-<a href="../api_cxx/env_set_error_stream.html">DbEnv::set_error_stream</a>,
-<a href="../api_cxx/env_set_errpfx.html">DbEnv::set_errpfx</a>,
-<a href="../api_cxx/env_set_flags.html">DbEnv::set_flags</a>,
-<a href="../api_cxx/env_set_mutexlocks.html">DbEnv::set_mutexlocks</a>,
-<a href="../api_cxx/env_set_paniccall.html">DbEnv::set_paniccall</a>,
-and
-<a href="../api_cxx/env_set_verbose.html">DbEnv::set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/env_set_shm_key.html b/bdb/docs/api_cxx/env_set_shm_key.html
deleted file mode 100644
index 643bc1afdb3..00000000000
--- a/bdb/docs/api_cxx/env_set_shm_key.html
+++ /dev/null
@@ -1,90 +0,0 @@
-<!--$Id: env_set_shm_key.so,v 10.5 2000/08/09 15:45:52 sue Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::set_shm_key</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::set_shm_key</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbEnv::set_shm_key(long shm_key);
-</pre></h3>
-<h1>Description</h1>
-<p>Specify a base segment ID for Berkeley DB environment shared memory regions
-created in system memory on VxWorks or systems supporting X/Open-style
-shared memory interfaces, e.g., UNIX systems supporting
-<b>shmget</b>(2) and related System V IPC interfaces.
-<p>This base segment ID will be used when Berkeley DB shared memory regions are
-first created. It will be incremented a small integer value each time
-a new shared memory region is created, that is, if the base ID is 35,
-the first shared memory region created will have a segment ID of 35 and
-the next one a segment ID between 36 and 40 or so. A Berkeley DB environment
-always creates a master shared memory region, plus an additional shared
-memory region for each of the subsystems supported by the environment
-(locking, logging, memory pool and transaction), plus an additional
-shared memory region for each additional memory pool cache that is
-supported. Already existing regions with the same segment IDs will be
-removed. See <a href="../ref/env/region.html">Shared Memory Regions</a>
-for more information.
-<p>The intent behind this interface is two-fold: without it, applications
-have no way to ensure that two Berkeley DB applications don't attempt to use
-the same segment IDs when creating different Berkeley DB environments. In
-addition, by using the same segment IDs each time the environment is
-created, previously created segments will be removed, and the set of
-segments on the system will not grow without bound.
-<p>The DbEnv::set_shm_key interface may only be used to configure Berkeley DB before
-the <a href="../api_cxx/env_open.html">DbEnv::open</a> interface is called.
-<p>The DbEnv::set_shm_key method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<p>The database environment's base segment ID may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_shm_key", one or more whitespace characters,
-and the ID. Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_cxx/env_open.html">DbEnv::open</a> was called.
-</dl>
-<h3>Class</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_close.html">DbEnv::close</a>,
-<a href="../api_cxx/env_open.html">DbEnv::open</a>,
-<a href="../api_cxx/env_remove.html">DbEnv::remove</a>,
-<a href="../api_cxx/db_err.html">DbEnv::err</a>,
-<a href="../api_cxx/env_strerror.html">DbEnv::strerror</a>,
-<a href="../api_cxx/env_version.html">DbEnv::version</a>,
-<a href="../api_cxx/env_set_cachesize.html">DbEnv::set_cachesize</a>,
-<a href="../api_cxx/env_set_errcall.html">DbEnv::set_errcall</a>,
-<a href="../api_cxx/env_set_errfile.html">DbEnv::set_errfile</a>,
-<a href="../api_cxx/env_set_error_stream.html">DbEnv::set_error_stream</a>,
-<a href="../api_cxx/env_set_errpfx.html">DbEnv::set_errpfx</a>,
-<a href="../api_cxx/env_set_flags.html">DbEnv::set_flags</a>,
-<a href="../api_cxx/env_set_mutexlocks.html">DbEnv::set_mutexlocks</a>,
-<a href="../api_cxx/env_set_paniccall.html">DbEnv::set_paniccall</a>,
-and
-<a href="../api_cxx/env_set_verbose.html">DbEnv::set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/env_set_tas_spins.html b/bdb/docs/api_cxx/env_set_tas_spins.html
deleted file mode 100644
index fd21f03d341..00000000000
--- a/bdb/docs/api_cxx/env_set_tas_spins.html
+++ /dev/null
@@ -1,73 +0,0 @@
-<!--$Id: env_set_tas_spins.so,v 10.9 2000/05/31 15:10:00 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::set_tas_spins</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::set_tas_spins</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-static int
-DbEnv::set_tas_spins(u_int32_t tas_spins);
-</pre></h3>
-<h1>Description</h1>
-<p>Specify that test-and-set mutexes should spin <b>tas_spins</b> times
-without blocking. The value defaults to 1 on uniprocessor systems and
-to 50 times the number of processors on multiprocessor systems.
-<p>The DbEnv::set_tas_spins interface affects the entire application, not a single
-database or database environment.
-<p>While the DbEnv::set_tas_spins interface may be used to configure Berkeley DB at any time
-during the life of the application, it should normally be called before
-making any calls to the <a href="../api_c/env_create.html">db_env_create</a> or <a href="../api_c/db_create.html">db_create</a> methods.
-<p>The DbEnv::set_tas_spins method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<p>The database environment's test-and-set spin count may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_tas_spins", one or more whitespace characters,
-and the number of spins. Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h3>Class</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_close.html">DbEnv::close</a>,
-<a href="../api_cxx/env_open.html">DbEnv::open</a>,
-<a href="../api_cxx/env_remove.html">DbEnv::remove</a>,
-<a href="../api_cxx/db_err.html">DbEnv::err</a>,
-<a href="../api_cxx/env_strerror.html">DbEnv::strerror</a>,
-<a href="../api_cxx/env_version.html">DbEnv::version</a>,
-<a href="../api_cxx/env_set_cachesize.html">DbEnv::set_cachesize</a>,
-<a href="../api_cxx/env_set_errcall.html">DbEnv::set_errcall</a>,
-<a href="../api_cxx/env_set_errfile.html">DbEnv::set_errfile</a>,
-<a href="../api_cxx/env_set_error_stream.html">DbEnv::set_error_stream</a>,
-<a href="../api_cxx/env_set_errpfx.html">DbEnv::set_errpfx</a>,
-<a href="../api_cxx/env_set_flags.html">DbEnv::set_flags</a>,
-<a href="../api_cxx/env_set_mutexlocks.html">DbEnv::set_mutexlocks</a>,
-<a href="../api_cxx/env_set_paniccall.html">DbEnv::set_paniccall</a>,
-and
-<a href="../api_cxx/env_set_verbose.html">DbEnv::set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/env_set_tmp_dir.html b/bdb/docs/api_cxx/env_set_tmp_dir.html
deleted file mode 100644
index 5993fe8a84a..00000000000
--- a/bdb/docs/api_cxx/env_set_tmp_dir.html
+++ /dev/null
@@ -1,92 +0,0 @@
-<!--$Id: env_set_tmp_dir.so,v 10.3 2000/05/20 16:29:12 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::set_tmp_dir</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::set_tmp_dir</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbEnv::set_tmp_dir(const char *dir);
-</pre></h3>
-<h1>Description</h1>
-<p>The path of a directory to be used as the location of temporary files.
-The files created to back in-memory access method databases will be
-created relative to this path. These temporary files can be quite large,
-depending on the size of the database.
-<p>If no directories are specified, the following alternatives are checked
-in the specified order. The first existing directory path is used for
-all temporary files.
-<p><ol>
-<p><li>The value of the environment variable <b>TMPDIR</b>.
-<li>The value of the environment variable <b>TEMP</b>.
-<li>The value of the environment variable <b>TMP</b>.
-<li>The value of the environment variable <b>TempFolder</b>.
-<li>The value returned by the GetTempPath interface.
-<li>The directory <b>/var/tmp</b>.
-<li>The directory <b>/usr/tmp</b>.
-<li>The directory <b>/temp</b>.
-<li>The directory <b>/tmp</b>.
-<li>The directory <b>C:/temp</b>.
-<li>The directory <b>C:/tmp</b>.
-</ol>
-<p>Note: environment variables are only checked if one of the
-<a href="../api_cxx/env_open.html#DB_USE_ENVIRON">DB_USE_ENVIRON</a> or <a href="../api_cxx/env_open.html#DB_USE_ENVIRON_ROOT">DB_USE_ENVIRON_ROOT</a> flags were
-specified.
-<p>Note: the GetTempPath interface is only checked on Win/32 platforms.
-<p>The DbEnv::set_tmp_dir interface may only be used to configure Berkeley DB before
-the <a href="../api_cxx/env_open.html">DbEnv::open</a> interface is called.
-<p>The DbEnv::set_tmp_dir method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<p>The database environment's temporary file directory may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_tmp_dir", one or more whitespace characters,
-and the directory name. Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_cxx/env_open.html">DbEnv::open</a> was called.
-</dl>
-<h3>Class</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_close.html">DbEnv::close</a>,
-<a href="../api_cxx/env_open.html">DbEnv::open</a>,
-<a href="../api_cxx/env_remove.html">DbEnv::remove</a>,
-<a href="../api_cxx/db_err.html">DbEnv::err</a>,
-<a href="../api_cxx/env_strerror.html">DbEnv::strerror</a>,
-<a href="../api_cxx/env_version.html">DbEnv::version</a>,
-<a href="../api_cxx/env_set_cachesize.html">DbEnv::set_cachesize</a>,
-<a href="../api_cxx/env_set_errcall.html">DbEnv::set_errcall</a>,
-<a href="../api_cxx/env_set_errfile.html">DbEnv::set_errfile</a>,
-<a href="../api_cxx/env_set_error_stream.html">DbEnv::set_error_stream</a>,
-<a href="../api_cxx/env_set_errpfx.html">DbEnv::set_errpfx</a>,
-<a href="../api_cxx/env_set_flags.html">DbEnv::set_flags</a>,
-<a href="../api_cxx/env_set_mutexlocks.html">DbEnv::set_mutexlocks</a>,
-<a href="../api_cxx/env_set_paniccall.html">DbEnv::set_paniccall</a>,
-and
-<a href="../api_cxx/env_set_verbose.html">DbEnv::set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/env_set_tx_max.html b/bdb/docs/api_cxx/env_set_tx_max.html
deleted file mode 100644
index 9189528948c..00000000000
--- a/bdb/docs/api_cxx/env_set_tx_max.html
+++ /dev/null
@@ -1,70 +0,0 @@
-<!--$Id: env_set_tx_max.so,v 10.21 2000/05/20 16:29:12 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::set_tx_max</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::set_tx_max</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbEnv::set_tx_max(u_int32_t tx_max);
-</pre></h3>
-<h1>Description</h1>
-<p>Set the maximum number of active transactions that are supported by the
-environment. This value bounds the size of backing shared memory regions.
-Note that child transactions must be counted as active until their
-ultimate parent commits or aborts.
-<p>When there are more than the specified number of concurrent transactions,
-calls to <a href="../api_cxx/txn_begin.html">DbEnv::txn_begin</a> will fail (until some active transactions
-complete). If no value is specified, a default value of 20 is used.
-<p>The DbEnv::set_tx_max interface may only be used to configure Berkeley DB before
-the <a href="../api_cxx/env_open.html">DbEnv::open</a> interface is called.
-<p>The DbEnv::set_tx_max method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<p>The database environment's maximum number of active transactions may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_tx_max", one or more whitespace characters,
-and the number of transactions. Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_cxx/env_open.html">DbEnv::open</a> was called.
-</dl>
-<h3>Classes</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>, <a href="../api_cxx/txn_class.html">DbTxn</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_set_tx_max.html">DbEnv::set_tx_max</a>,
-<a href="../api_cxx/env_set_tx_recover.html">DbEnv::set_tx_recover</a>,
-<a href="../api_cxx/env_set_tx_timestamp.html">DbEnv::set_tx_timestamp</a>,
-<a href="../api_cxx/txn_abort.html">DbTxn::abort</a>,
-<a href="../api_cxx/txn_begin.html">DbEnv::txn_begin</a>,
-<a href="../api_cxx/txn_checkpoint.html">DbEnv::txn_checkpoint</a>,
-<a href="../api_cxx/txn_commit.html">DbTxn::commit</a>,
-<a href="../api_cxx/txn_id.html">DbTxn::id</a>,
-<a href="../api_cxx/txn_prepare.html">DbTxn::prepare</a>
-and
-<a href="../api_cxx/txn_stat.html">DbEnv::txn_stat</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/env_set_tx_recover.html b/bdb/docs/api_cxx/env_set_tx_recover.html
deleted file mode 100644
index 08ceec64d47..00000000000
--- a/bdb/docs/api_cxx/env_set_tx_recover.html
+++ /dev/null
@@ -1,77 +0,0 @@
-<!--$Id: env_set_tx_recover.so,v 10.26 2000/07/09 19:13:19 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::set_tx_recover</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::set_tx_recover</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbEnv::set_tx_recover(int (*)(DbEnv *dbenv,
- Dbt *log_rec, DbLsn *lsn, db_recops op));
-</pre></h3>
-<h1>Description</h1>
-<p>Set the application's method to be called during transaction abort
-and recovery. This method must return 0 on success and either
-<b>errno</b> or a value outside of the Berkeley DB error name space on
-failure. It takes four arguments:
-<p><dl compact>
-<p><dt>dbenv <dd>A Berkeley DB environment.
-<p><dt>log_rec<dd>A log record.
-<p><dt>lsn<dd>A log sequence number.
-<p><dt>op<dd>One of the following values:
-<p><dl compact>
-<p><dt><a name="DB_TXN_BACKWARD_ROLL">DB_TXN_BACKWARD_ROLL</a><dd>The log is being read backward to determine which transactions have been
-committed and to abort those operations that were not, undo the operation
-described by the log record.
-<p><dt><a name="DB_TXN_FORWARD_ROLL">DB_TXN_FORWARD_ROLL</a><dd>The log is being played forward, redo the operation described by the log
-record.
-<p><dt><a name="DB_TXN_ABORT">DB_TXN_ABORT</a><dd>The log is being read backwards during a transaction abort, undo the
-operation described by the log record.
-</dl>
-</dl>
-<p>The DbEnv::set_tx_recover interface may only be used to configure Berkeley DB before
-the <a href="../api_cxx/env_open.html">DbEnv::open</a> interface is called.
-<p>The DbEnv::set_tx_recover method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_cxx/env_open.html">DbEnv::open</a> was called.
-</dl>
-<h3>Classes</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>, <a href="../api_cxx/txn_class.html">DbTxn</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_set_tx_max.html">DbEnv::set_tx_max</a>,
-<a href="../api_cxx/env_set_tx_recover.html">DbEnv::set_tx_recover</a>,
-<a href="../api_cxx/env_set_tx_timestamp.html">DbEnv::set_tx_timestamp</a>,
-<a href="../api_cxx/txn_abort.html">DbTxn::abort</a>,
-<a href="../api_cxx/txn_begin.html">DbEnv::txn_begin</a>,
-<a href="../api_cxx/txn_checkpoint.html">DbEnv::txn_checkpoint</a>,
-<a href="../api_cxx/txn_commit.html">DbTxn::commit</a>,
-<a href="../api_cxx/txn_id.html">DbTxn::id</a>,
-<a href="../api_cxx/txn_prepare.html">DbTxn::prepare</a>
-and
-<a href="../api_cxx/txn_stat.html">DbEnv::txn_stat</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/env_set_tx_timestamp.html b/bdb/docs/api_cxx/env_set_tx_timestamp.html
deleted file mode 100644
index fa793324ca9..00000000000
--- a/bdb/docs/api_cxx/env_set_tx_timestamp.html
+++ /dev/null
@@ -1,66 +0,0 @@
-<!--$Id: env_set_tx_timestamp.so,v 10.6 2000/12/21 18:33:42 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::set_tx_timestamp</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::set_tx_timestamp</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbEnv::set_tx_timestamp(time_t *timestamp);
-</pre></h3>
-<h1>Description</h1>
-<p>Recover to the time specified by <b>timestamp</b> rather than to the most
-current possible date.
-The <b>timestamp</b> argument should be the number of seconds since 0
-hours, 0 minutes, 0 seconds, January 1, 1970, Coordinated Universal Time,
-i.e., the Epoch.
-<p>Once a database environment has been upgraded to a new version of Berkeley DB
-involving a log format change (see <a href="../ref/upgrade/process.html">Upgrading Berkeley DB installations</a>, it is no longer possible to recover
-to a specific time before that upgrade.
-<p>The DbEnv::set_tx_timestamp interface may only be used to configure Berkeley DB before
-the <a href="../api_cxx/env_open.html">DbEnv::open</a> interface is called.
-<p>The DbEnv::set_tx_timestamp method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>It is not possible to recover to the specified time using the
-log files currently present in the environment.
-</dl>
-<h3>Classes</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>, <a href="../api_cxx/txn_class.html">DbTxn</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_set_tx_max.html">DbEnv::set_tx_max</a>,
-<a href="../api_cxx/env_set_tx_recover.html">DbEnv::set_tx_recover</a>,
-<a href="../api_cxx/env_set_tx_timestamp.html">DbEnv::set_tx_timestamp</a>,
-<a href="../api_cxx/txn_abort.html">DbTxn::abort</a>,
-<a href="../api_cxx/txn_begin.html">DbEnv::txn_begin</a>,
-<a href="../api_cxx/txn_checkpoint.html">DbEnv::txn_checkpoint</a>,
-<a href="../api_cxx/txn_commit.html">DbTxn::commit</a>,
-<a href="../api_cxx/txn_id.html">DbTxn::id</a>,
-<a href="../api_cxx/txn_prepare.html">DbTxn::prepare</a>
-and
-<a href="../api_cxx/txn_stat.html">DbEnv::txn_stat</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/env_set_verbose.html b/bdb/docs/api_cxx/env_set_verbose.html
deleted file mode 100644
index 48b2809645e..00000000000
--- a/bdb/docs/api_cxx/env_set_verbose.html
+++ /dev/null
@@ -1,81 +0,0 @@
-<!--$Id: env_set_verbose.so,v 10.23 2000/05/20 16:29:12 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::set_verbose</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::set_verbose</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbEnv::set_verbose(u_int32_t which, int onoff);
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv::set_verbose method turns additional informational and
-debugging messages in the Berkeley DB message output on and off. If
-<b>onoff</b> is set to
-non-zero,
-the additional messages are output.
-<p>The <b>which</b> parameter must be set to one of the following values:
-<p><dl compact>
-<p><dt><a name="DB_VERB_CHKPOINT">DB_VERB_CHKPOINT</a><dd>Display checkpoint location information when searching the log for
-checkpoints.
-<p><dt><a name="DB_VERB_DEADLOCK">DB_VERB_DEADLOCK</a><dd>Display additional information when doing deadlock detection.
-<p><dt><a name="DB_VERB_RECOVERY">DB_VERB_RECOVERY</a><dd>Display additional information when performing recovery.
-<p><dt><a name="DB_VERB_WAITSFOR">DB_VERB_WAITSFOR</a><dd>Display the waits-for table when doing deadlock detection.
-</dl>
-<p>The DbEnv::set_verbose interface may be used to configure Berkeley DB at any time
-during the life of the application.
-<p>The DbEnv::set_verbose method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<p>The database environment's verbosity may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_verbose", one or more whitespace characters,
-and the interface <b>which</b> argument as a string, for example,
-"set_verbose DB_VERB_CHKPOINT". Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h3>Class</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_close.html">DbEnv::close</a>,
-<a href="../api_cxx/env_open.html">DbEnv::open</a>,
-<a href="../api_cxx/env_remove.html">DbEnv::remove</a>,
-<a href="../api_cxx/db_err.html">DbEnv::err</a>,
-<a href="../api_cxx/env_strerror.html">DbEnv::strerror</a>,
-<a href="../api_cxx/env_version.html">DbEnv::version</a>,
-<a href="../api_cxx/env_set_cachesize.html">DbEnv::set_cachesize</a>,
-<a href="../api_cxx/env_set_errcall.html">DbEnv::set_errcall</a>,
-<a href="../api_cxx/env_set_errfile.html">DbEnv::set_errfile</a>,
-<a href="../api_cxx/env_set_error_stream.html">DbEnv::set_error_stream</a>,
-<a href="../api_cxx/env_set_errpfx.html">DbEnv::set_errpfx</a>,
-<a href="../api_cxx/env_set_flags.html">DbEnv::set_flags</a>,
-<a href="../api_cxx/env_set_mutexlocks.html">DbEnv::set_mutexlocks</a>,
-<a href="../api_cxx/env_set_paniccall.html">DbEnv::set_paniccall</a>,
-and
-<a href="../api_cxx/env_set_verbose.html">DbEnv::set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/env_strerror.html b/bdb/docs/api_cxx/env_strerror.html
deleted file mode 100644
index e1572018be3..00000000000
--- a/bdb/docs/api_cxx/env_strerror.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!--$Id: env_strerror.so,v 8.4 2000/07/30 17:59:25 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::strerror</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::strerror</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-static char *
-DbEnv::strerror(int error);
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv::strerror method returns an error message string corresponding
-to the error number <b>error</b>. This interface is a superset of the
-ANSI C X3.159-1989 (ANSI C) <b>strerror</b>(3) interface. If the error number
-<b>error</b> is greater than or equal to 0, then the string returned by
-the system interface <b>strerror</b>(3) is returned. If the error
-number is less than 0, an error string appropriate to the corresponding
-Berkeley DB library error is returned. See
-<a href="../ref/program/errorret.html">Error returns to applications</a>
-for more information.
-<h3>Class</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_close.html">DbEnv::close</a>,
-<a href="../api_cxx/env_open.html">DbEnv::open</a>,
-<a href="../api_cxx/env_remove.html">DbEnv::remove</a>,
-<a href="../api_cxx/db_err.html">DbEnv::err</a>,
-<a href="../api_cxx/env_strerror.html">DbEnv::strerror</a>,
-<a href="../api_cxx/env_version.html">DbEnv::version</a>,
-<a href="../api_cxx/env_set_cachesize.html">DbEnv::set_cachesize</a>,
-<a href="../api_cxx/env_set_errcall.html">DbEnv::set_errcall</a>,
-<a href="../api_cxx/env_set_errfile.html">DbEnv::set_errfile</a>,
-<a href="../api_cxx/env_set_error_stream.html">DbEnv::set_error_stream</a>,
-<a href="../api_cxx/env_set_errpfx.html">DbEnv::set_errpfx</a>,
-<a href="../api_cxx/env_set_flags.html">DbEnv::set_flags</a>,
-<a href="../api_cxx/env_set_mutexlocks.html">DbEnv::set_mutexlocks</a>,
-<a href="../api_cxx/env_set_paniccall.html">DbEnv::set_paniccall</a>,
-and
-<a href="../api_cxx/env_set_verbose.html">DbEnv::set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/env_version.html b/bdb/docs/api_cxx/env_version.html
deleted file mode 100644
index 8d40aa8c5df..00000000000
--- a/bdb/docs/api_cxx/env_version.html
+++ /dev/null
@@ -1,59 +0,0 @@
-<!--$Id: env_version.so,v 10.13 1999/12/20 08:52:30 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::version</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::version</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-static char *
-DbEnv::version(int *major, int *minor, int *patch);
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv::version method returns a pointer to a string containing Berkeley DB
-version information. If <b>major</b> is non-NULL, the major version
-of the Berkeley DB release is stored in the memory it references. If
-<b>minor</b> is non-NULL, the minor version of the Berkeley DB release is
-stored in the memory it references. If <b>patch</b> is non-NULL, the
-patch version of the Berkeley DB release is stored in the memory it references.
-<h3>Class</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_close.html">DbEnv::close</a>,
-<a href="../api_cxx/env_open.html">DbEnv::open</a>,
-<a href="../api_cxx/env_remove.html">DbEnv::remove</a>,
-<a href="../api_cxx/db_err.html">DbEnv::err</a>,
-<a href="../api_cxx/env_strerror.html">DbEnv::strerror</a>,
-<a href="../api_cxx/env_version.html">DbEnv::version</a>,
-<a href="../api_cxx/env_set_cachesize.html">DbEnv::set_cachesize</a>,
-<a href="../api_cxx/env_set_errcall.html">DbEnv::set_errcall</a>,
-<a href="../api_cxx/env_set_errfile.html">DbEnv::set_errfile</a>,
-<a href="../api_cxx/env_set_error_stream.html">DbEnv::set_error_stream</a>,
-<a href="../api_cxx/env_set_errpfx.html">DbEnv::set_errpfx</a>,
-<a href="../api_cxx/env_set_flags.html">DbEnv::set_flags</a>,
-<a href="../api_cxx/env_set_mutexlocks.html">DbEnv::set_mutexlocks</a>,
-<a href="../api_cxx/env_set_paniccall.html">DbEnv::set_paniccall</a>,
-and
-<a href="../api_cxx/env_set_verbose.html">DbEnv::set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/except_class.html b/bdb/docs/api_cxx/except_class.html
deleted file mode 100644
index 063bede9530..00000000000
--- a/bdb/docs/api_cxx/except_class.html
+++ /dev/null
@@ -1,64 +0,0 @@
-<!--$Id: except_class.so,v 10.15 1999/12/20 08:52:33 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbException</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbException</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-class DbException {
- DbException(int err);
- DbException(const char *description);
- DbException(const char *prefix, int err);
- DbException(const char *prefix1, const char *prefix2, int err);
-};
-</pre></h3>
-<h1>Description</h1>
-<p>This manual page describes the DbException class and how it is used
-by the various Berkeley DB classes.
-<p>Most methods in the Berkeley DB classes return an int but also throw an
-exception. This allows for two different error behaviors. By default,
-the Berkeley DB C++ API is configured to throw an exception whenever a serious
-error occurs. This generally allows for cleaner logic for transaction
-processing, as a try block can surround a single transaction.
-Alternatively, Berkeley DB can be configured to not throw exceptions, and
-instead have the individual function return an error code, by setting
-the constructor flags for the Db and <a href="../api_cxx/dbenv_class.html">DbEnv</a> objects.
-<p>A DbException object contains an informational string and an errno.
-The errno can be obtained by using <a href="../api_cxx/get_errno.html">DbException::get_errno</a>.
-The informational string can be obtained by using <a href="../api_cxx/what.html">DbException::what</a>.
-<p>We expect in the future that this class will inherit from the standard
-class exception, but certain language implementation bugs currently
-prevent this on some platforms.
-<p>Some methods may return non-zero values without issuing an exception.
-This occurs in situations that are not normally considered an error, but
-when some informational status is returned. For example, <a href="../api_cxx/db_get.html">Db::get</a>
-returns DB_NOTFOUND when a requested key does not appear in the database.
-<h3>Class</h3>
-<a href="../api_cxx/except_class.html">DbException</a>
-<h1>See Also</h1>
-<a href="../api_cxx/get_errno.html">DbException::get_errno</a>
-and
-<a href="../api_cxx/what.html">DbException::what</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/get_errno.html b/bdb/docs/api_cxx/get_errno.html
deleted file mode 100644
index 25c639ac2d6..00000000000
--- a/bdb/docs/api_cxx/get_errno.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!--$Id: get_errno.so,v 10.8 1999/12/20 08:52:33 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbException::get_errno</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbException::get_errno</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-const int
-DbException::get_errno();
-</pre></h3>
-<h1>Description</h1>
-<p>A DbException object contains an informational string and an errno.
-The errno can be obtained by using DbException::get_errno.
-The informational string can be obtained by using <a href="../api_cxx/what.html">DbException::what</a>.
-<h3>Class</h3>
-<a href="../api_cxx/except_class.html">DbException</a>
-<h1>See Also</h1>
-<a href="../api_cxx/get_errno.html">DbException::get_errno</a>
-and
-<a href="../api_cxx/what.html">DbException::what</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/lock_class.html b/bdb/docs/api_cxx/lock_class.html
deleted file mode 100644
index c0aa324d9f0..00000000000
--- a/bdb/docs/api_cxx/lock_class.html
+++ /dev/null
@@ -1,61 +0,0 @@
-<!--$Id: lock_class.so,v 10.13 1999/12/20 08:52:33 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbLock</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbLock</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-class DbLock {
-public:
- DbLock();
- DbLock(const DbLock &);
- DbLock &operator = (const DbLock &);
- ~DbLock();
-};
-</pre></h3>
-<h1>Description</h1>
-<p>The <a href="../api_cxx/dbenv_class.html">DbEnv</a> lock methods and the DbLock class are used
-to provide general-purpose locking. While designed to work with the
-other Db classes, they are also useful for more general locking
-purposes. Locks can be shared between processes.
-<p>In most cases, when multiple threads or processes are using locking, the
-deadlock detector, <a href="../utility/db_deadlock.html">db_deadlock</a> should be run.
-<h3>Classes</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>, <a href="../api_cxx/lock_class.html">DbLock</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_set_lk_conflicts.html">DbEnv::set_lk_conflicts</a>,
-<a href="../api_cxx/env_set_lk_detect.html">DbEnv::set_lk_detect</a>,
-<a href="../api_cxx/env_set_lk_max_locks.html">DbEnv::set_lk_max_locks</a>,
-<a href="../api_cxx/env_set_lk_max_lockers.html">DbEnv::set_lk_max_lockers</a>,
-<a href="../api_cxx/env_set_lk_max_objects.html">DbEnv::set_lk_max_objects</a>,
-<a href="../api_cxx/env_set_lk_max.html">DbEnv::set_lk_max</a>,
-<a href="../api_cxx/lock_detect.html">DbEnv::lock_detect</a>,
-<a href="../api_cxx/lock_get.html">DbEnv::lock_get</a>,
-<a href="../api_cxx/lock_id.html">DbEnv::lock_id</a>,
-<a href="../api_cxx/lock_put.html">DbLock::put</a>,
-<a href="../api_cxx/lock_stat.html">DbEnv::lock_stat</a>
-and
-<a href="../api_cxx/lock_vec.html">DbEnv::lock_vec</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/lock_detect.html b/bdb/docs/api_cxx/lock_detect.html
deleted file mode 100644
index 889d0f52048..00000000000
--- a/bdb/docs/api_cxx/lock_detect.html
+++ /dev/null
@@ -1,73 +0,0 @@
-<!--$Id: lock_detect.so,v 10.26 2000/03/17 01:53:59 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::lock_detect</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::lock_detect</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbEnv::lock_detect(u_int32_t flags, u_int32_t atype, int *aborted);
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv::lock_detect method runs one iteration of the deadlock detector.
-The deadlock detector traverses the lock table, and for each deadlock
-it finds, marks one of the participating transactions for abort.
-<p>The <b>flags</b> value must be set to 0 or by bitwise inclusively <b>OR</b>'ing together one or more
-of the following values.
-<p><dl compact>
-<p><dt><a name="DB_LOCK_CONFLICT">DB_LOCK_CONFLICT</a><dd>Only run the deadlock detector if a lock conflict has occurred since
-the last time that the deadlock detector was run.
-</dl>
-<p>The <b>atype</b> parameter specifies which transaction to abort in the
-case of deadlock. It must be set to one of possible arguments listed for
-the <a href="../api_cxx/env_set_lk_detect.html">DbEnv::set_lk_detect</a> interface.
-<p>If the <b>aborted</b> parameter is non-NULL, the memory location it
-references will be set to the number of transactions aborted by the
-DbEnv::lock_detect method.
-<p>The DbEnv::lock_detect method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p>The DbEnv::lock_detect method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbEnv::lock_detect method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Classes</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>, <a href="../api_cxx/lock_class.html">DbLock</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_set_lk_conflicts.html">DbEnv::set_lk_conflicts</a>,
-<a href="../api_cxx/env_set_lk_detect.html">DbEnv::set_lk_detect</a>,
-<a href="../api_cxx/env_set_lk_max_locks.html">DbEnv::set_lk_max_locks</a>,
-<a href="../api_cxx/env_set_lk_max_lockers.html">DbEnv::set_lk_max_lockers</a>,
-<a href="../api_cxx/env_set_lk_max_objects.html">DbEnv::set_lk_max_objects</a>,
-<a href="../api_cxx/env_set_lk_max.html">DbEnv::set_lk_max</a>,
-<a href="../api_cxx/lock_detect.html">DbEnv::lock_detect</a>,
-<a href="../api_cxx/lock_get.html">DbEnv::lock_get</a>,
-<a href="../api_cxx/lock_id.html">DbEnv::lock_id</a>,
-<a href="../api_cxx/lock_put.html">DbLock::put</a>,
-<a href="../api_cxx/lock_stat.html">DbEnv::lock_stat</a>
-and
-<a href="../api_cxx/lock_vec.html">DbEnv::lock_vec</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/lock_get.html b/bdb/docs/api_cxx/lock_get.html
deleted file mode 100644
index 4dae9f5dc67..00000000000
--- a/bdb/docs/api_cxx/lock_get.html
+++ /dev/null
@@ -1,94 +0,0 @@
-<!--$Id: lock_get.so,v 10.28 2000/04/24 16:33:54 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::lock_get</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::lock_get</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbEnv::lock_get(u_int32_t locker, u_int32_t flags,
- const Dbt *obj, const db_lockmode_t lock_mode, DbLock *lock);
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv::lock_get method acquires a lock from the lock table, returning
-information about it in
-the <b>lock</b> argument.
-<p>The <b>locker</b> argument specified to DbEnv::lock_get is an unsigned
-32-bit integer quantity. It represents the entity requesting or releasing
-the lock.
-<p>The <b>flags</b> value must be set to 0 or the following value:
-<p><dl compact>
-<p><dt><a name="DB_LOCK_NOWAIT">DB_LOCK_NOWAIT</a><dd>If a lock cannot be granted because the requested lock conflicts with an
-existing lock, return immediately instead of waiting for the lock to
-become available.
-</dl>
-<p>The <b>obj</b> argument is an untyped byte string that specifies the
-object to be locked or released.
-<p>The <b>mode</b> argument is an index into the environment's lock conflict
-array. See <a href="../api_cxx/env_set_lk_conflicts.html">DbEnv::set_lk_conflicts</a> and
-<a href="../ref/lock/stdmode.html">Standard Lock Modes</a>
-for a description of that array.
-<p>The DbEnv::lock_get method may
-return or throw an exception encapsulating
-one of the following values:
-<p><dl compact>
-<p><dt><a name="DB_LOCK_NOTGRANTED">DB_LOCK_NOTGRANTED</a><dd>A lock was requested that could not be immediately granted and the
-<b>flags</b> parameter was set to DB_LOCK_NOWAIT.
-</dl>
-<p>Otherwise, the DbEnv::lock_get method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p>The DbEnv::lock_get method may fail and throw an exception or return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>DB_LOCK_DEADLOCK<dd>The operation was selected to resolve a deadlock.
-</dl>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<p><dl compact>
-<p><dt>ENOMEM<dd>The maximum number of locks has been reached.
-</dl>
-<p>The DbEnv::lock_get method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbEnv::lock_get method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Classes</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>, <a href="../api_cxx/lock_class.html">DbLock</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_set_lk_conflicts.html">DbEnv::set_lk_conflicts</a>,
-<a href="../api_cxx/env_set_lk_detect.html">DbEnv::set_lk_detect</a>,
-<a href="../api_cxx/env_set_lk_max_locks.html">DbEnv::set_lk_max_locks</a>,
-<a href="../api_cxx/env_set_lk_max_lockers.html">DbEnv::set_lk_max_lockers</a>,
-<a href="../api_cxx/env_set_lk_max_objects.html">DbEnv::set_lk_max_objects</a>,
-<a href="../api_cxx/env_set_lk_max.html">DbEnv::set_lk_max</a>,
-<a href="../api_cxx/lock_detect.html">DbEnv::lock_detect</a>,
-<a href="../api_cxx/lock_get.html">DbEnv::lock_get</a>,
-<a href="../api_cxx/lock_id.html">DbEnv::lock_id</a>,
-<a href="../api_cxx/lock_put.html">DbLock::put</a>,
-<a href="../api_cxx/lock_stat.html">DbEnv::lock_stat</a>
-and
-<a href="../api_cxx/lock_vec.html">DbEnv::lock_vec</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/lock_id.html b/bdb/docs/api_cxx/lock_id.html
deleted file mode 100644
index 72ab2a274db..00000000000
--- a/bdb/docs/api_cxx/lock_id.html
+++ /dev/null
@@ -1,61 +0,0 @@
-<!--$Id: lock_id.so,v 10.19 2000/03/01 21:41:29 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::lock_id</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::lock_id</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbEnv::lock_id(u_int32_t *idp);
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv::lock_id method
-copies a locker ID, which is guaranteed to be unique in the specified lock
-table, into the memory location referenced by <b>idp</b>.
-<p>The DbEnv::lock_id method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p>The DbEnv::lock_id method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbEnv::lock_id method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Classes</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>, <a href="../api_cxx/lock_class.html">DbLock</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_set_lk_conflicts.html">DbEnv::set_lk_conflicts</a>,
-<a href="../api_cxx/env_set_lk_detect.html">DbEnv::set_lk_detect</a>,
-<a href="../api_cxx/env_set_lk_max_locks.html">DbEnv::set_lk_max_locks</a>,
-<a href="../api_cxx/env_set_lk_max_lockers.html">DbEnv::set_lk_max_lockers</a>,
-<a href="../api_cxx/env_set_lk_max_objects.html">DbEnv::set_lk_max_objects</a>,
-<a href="../api_cxx/env_set_lk_max.html">DbEnv::set_lk_max</a>,
-<a href="../api_cxx/lock_detect.html">DbEnv::lock_detect</a>,
-<a href="../api_cxx/lock_get.html">DbEnv::lock_get</a>,
-<a href="../api_cxx/lock_id.html">DbEnv::lock_id</a>,
-<a href="../api_cxx/lock_put.html">DbLock::put</a>,
-<a href="../api_cxx/lock_stat.html">DbEnv::lock_stat</a>
-and
-<a href="../api_cxx/lock_vec.html">DbEnv::lock_vec</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/lock_put.html b/bdb/docs/api_cxx/lock_put.html
deleted file mode 100644
index 2875e4cfed4..00000000000
--- a/bdb/docs/api_cxx/lock_put.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<!--$Id: lock_put.so,v 10.21 2000/03/01 21:41:29 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbLock::put</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbLock::put</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbLock::put(DbEnv *env);
-</pre></h3>
-<h1>Description</h1>
-<p>The DbLock::put method releases <b>lock</b> from the lock table.
-<p>The DbLock::put method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p>The DbLock::put method may fail and throw an exception or return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<p>The DbLock::put method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbLock::put method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Classes</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>, <a href="../api_cxx/lock_class.html">DbLock</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_set_lk_conflicts.html">DbEnv::set_lk_conflicts</a>,
-<a href="../api_cxx/env_set_lk_detect.html">DbEnv::set_lk_detect</a>,
-<a href="../api_cxx/env_set_lk_max_locks.html">DbEnv::set_lk_max_locks</a>,
-<a href="../api_cxx/env_set_lk_max_lockers.html">DbEnv::set_lk_max_lockers</a>,
-<a href="../api_cxx/env_set_lk_max_objects.html">DbEnv::set_lk_max_objects</a>,
-<a href="../api_cxx/env_set_lk_max.html">DbEnv::set_lk_max</a>,
-<a href="../api_cxx/lock_detect.html">DbEnv::lock_detect</a>,
-<a href="../api_cxx/lock_get.html">DbEnv::lock_get</a>,
-<a href="../api_cxx/lock_id.html">DbEnv::lock_id</a>,
-<a href="../api_cxx/lock_put.html">DbLock::put</a>,
-<a href="../api_cxx/lock_stat.html">DbEnv::lock_stat</a>
-and
-<a href="../api_cxx/lock_vec.html">DbEnv::lock_vec</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/lock_stat.html b/bdb/docs/api_cxx/lock_stat.html
deleted file mode 100644
index 87bdc9d75a4..00000000000
--- a/bdb/docs/api_cxx/lock_stat.html
+++ /dev/null
@@ -1,98 +0,0 @@
-<!--$Id: lock_stat.so,v 10.30 2000/12/08 20:43:15 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::lock_stat</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::lock_stat</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-extern "C" {
- typedef void *(*db_malloc_fcn_type)(size_t);
-};
-int
-DbEnv::lock_stat(DB_LOCK_STAT **statp, db_malloc_fcn_type db_malloc);
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv::lock_stat method
-creates a statistical structure and copies a pointer to it into a
-user-specified memory location.
-<p>Statistical structures are created in allocated memory. If <b>db_malloc</b> is non-NULL, it
-is called to allocate the memory, otherwise, the library function
-<b>malloc</b>(3) is used. The function <b>db_malloc</b> must match
-the calling conventions of the <b>malloc</b>(3) library routine.
-Regardless, the caller is responsible for deallocating the returned
-memory. To deallocate returned memory, free the returned memory
-reference, references inside the returned memory do not need to be
-individually freed.
-<p>The lock region statistics are stored in a structure of type
-DB_LOCK_STAT. The following DB_LOCK_STAT fields will be filled in:
-<p><dl compact>
-<dt>u_int32_t st_lastid;<dd>The last allocated lock ID.
-<dt>u_int32_t st_nmodes;<dd>The number of lock modes.
-<dt>u_int32_t st_maxlocks;<dd>The maximum number of locks possible.
-<dt>u_int32_t st_maxlockers;<dd>The maximum number of lockers possible.
-<dt>u_int32_t st_maxobjects;<dd>The maximum number of objects possible.
-<dt>u_int32_t st_nlocks;<dd>The number of current locks.
-<dt>u_int32_t st_maxnlocks;<dd>The maximum number of locks at any one time.
-<dt>u_int32_t st_nlockers;<dd>The number of current lockers.
-<dt>u_int32_t st_maxnlockers;<dd>The maximum number of lockers at any one time.
-<dt>u_int32_t st_nobjects;<dd>The number of current objects.
-<dt>u_int32_t st_maxnobjects;<dd>The maximum number of objects at any one time.
-<dt>u_int32_t st_nrequests;<dd>The total number of locks requested.
-<dt>u_int32_t st_nreleases;<dd>The total number of locks released.
-<dt>u_int32_t st_nnowaits;<dd>The total number of lock requests that failed because
-<a href="../api_cxx/lock_vec.html#DB_LOCK_NOWAIT">DB_LOCK_NOWAIT</a> was set.
-<dt>u_int32_t st_nconflicts;<dd>The total number of locks not immediately available due to conflicts.
-<dt>u_int32_t st_ndeadlocks;<dd>The number of deadlocks detected.
-<dt>u_int32_t st_regsize;<dd>The size of the region.
-<dt>u_int32_t st_region_wait;<dd>The number of times that a thread of control was forced to wait before
-obtaining the region lock.
-<dt>u_int32_t st_region_nowait;<dd>The number of times that a thread of control was able to obtain
-the region lock without waiting.
-</dl>
-<p>The DbEnv::lock_stat method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p>The DbEnv::lock_stat method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbEnv::lock_stat method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Classes</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>, <a href="../api_cxx/lock_class.html">DbLock</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_set_lk_conflicts.html">DbEnv::set_lk_conflicts</a>,
-<a href="../api_cxx/env_set_lk_detect.html">DbEnv::set_lk_detect</a>,
-<a href="../api_cxx/env_set_lk_max_locks.html">DbEnv::set_lk_max_locks</a>,
-<a href="../api_cxx/env_set_lk_max_lockers.html">DbEnv::set_lk_max_lockers</a>,
-<a href="../api_cxx/env_set_lk_max_objects.html">DbEnv::set_lk_max_objects</a>,
-<a href="../api_cxx/env_set_lk_max.html">DbEnv::set_lk_max</a>,
-<a href="../api_cxx/lock_detect.html">DbEnv::lock_detect</a>,
-<a href="../api_cxx/lock_get.html">DbEnv::lock_get</a>,
-<a href="../api_cxx/lock_id.html">DbEnv::lock_id</a>,
-<a href="../api_cxx/lock_put.html">DbLock::put</a>,
-<a href="../api_cxx/lock_stat.html">DbEnv::lock_stat</a>
-and
-<a href="../api_cxx/lock_vec.html">DbEnv::lock_vec</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/lock_vec.html b/bdb/docs/api_cxx/lock_vec.html
deleted file mode 100644
index 46180f2cee8..00000000000
--- a/bdb/docs/api_cxx/lock_vec.html
+++ /dev/null
@@ -1,127 +0,0 @@
-<!--$Id: lock_vec.so,v 10.31 2000/12/04 18:05:39 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::lock_vec</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::lock_vec</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbEnv::lock_vec(u_int32_t locker, u_int32_t flags,
- DB_LOCKREQ list[], int nlist, DB_LOCKREQ **elistp);
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv::lock_vec method atomically obtains and releases one or more locks
-from the lock table. The DbEnv::lock_vec method is intended to support
-acquisition or trading of multiple locks under one lock table semaphore,
-as is needed for lock coupling or in multigranularity locking for lock
-escalation.
-<p>The <b>locker</b> argument specified to DbEnv::lock_vec is an unsigned
-32-bit integer quantity. It represents the entity requesting or releasing
-the lock.
-<p>The <b>flags</b> value must be set to 0 or the following value:
-<p><dl compact>
-<p><dt><a name="DB_LOCK_NOWAIT">DB_LOCK_NOWAIT</a><dd>If a lock cannot be immediately granted because the requested lock
-conflicts with an existing lock, return instead of waiting for the lock
-to become available.
-</dl>
-<p>The <b>list</b> array provided to DbEnv::lock_vec is typedef'd as
-DB_LOCKREQ. A DB_LOCKREQ structure has at least the following fields,
-which must be initialized before calling DbEnv::lock_vec:
-<p><dl compact>
-<p><dt>lockop_t <a name="op">op</a>;<dd>The operation to be performed, which must be set to one of the
-following values:
-<p><dl compact>
-<p><dt><a name="DB_LOCK_GET">DB_LOCK_GET</a><dd>Get a lock, as defined by the values of <b>locker</b>, <b>obj</b>,
-and <b>mode</b>. Upon return from DbEnv::lock_vec, if the
-<b>lock</b> field is non-NULL, a reference to the acquired lock is
-stored there. (This reference is invalidated by any call to
-DbEnv::lock_vec or <a href="../api_cxx/lock_put.html">DbLock::put</a> that releases the lock.)
-<p><dt><a name="DB_LOCK_PUT">DB_LOCK_PUT</a><dd>The lock referenced by the contents of the <b>lock</b> field is released.
-<p><dt><a name="DB_LOCK_PUT_ALL">DB_LOCK_PUT_ALL</a><dd>All locks held by the <b>locker</b> are released. (Any locks acquired
-as a part of the current call to DbEnv::lock_vec that appear after the
-DB_LOCK_PUT_ALL entry are not considered for this
-operation).
-<p><dt><a name="DB_LOCK_PUT_OBJ">DB_LOCK_PUT_OBJ</a><dd>All locks held on the object <b>obj</b> are released. The <b>mode</b>
-and <b>locker</b> parameters are ignored. Note that any locks acquired
-as a part of the current call to DbEnv::lock_vec that occur before the
-DB_LOCK_PUT_OBJ will also be released; those acquired afterwards
-will not be released.
-</dl>
-<p><dt>const Dbt <a name="obj">obj</a>;<dd>An untyped byte string that specifies the object to be locked or released.
-<p><dt>const lockmode_t <a name="mode">mode</a>;<dd>The lock mode, used as an index into the environment's lock conflict array.
-See <a href="../api_cxx/env_set_lk_conflicts.html">DbEnv::set_lk_conflicts</a> and <a href="../ref/lock/stdmode.html">Standard Lock Modes</a> for a description of that array.
-<p><dt>DB_LOCK <a name="lock">lock</a>;<dd>A lock reference.
-</dl>
-<p>The <b>nlist</b> argument specifies the number of elements in the
-<b>list</b> array.
-<p>If any of the requested locks cannot be acquired, or any of the locks to
-be released cannot be released, the operations before the failing
-operation are guaranteed to have completed successfully, and
-DbEnv::lock_vec returns a non-zero value. In addition, if <b>elistp</b>
-is not NULL, it is set to point to the DB_LOCKREQ entry that was being
-processed when the error occurred.
-<p>The DbEnv::lock_vec method may
-return or throw an exception encapsulating
-one of the following values:
-<p><dl compact>
-<p><dt><a name="DB_LOCK_NOTGRANTED">DB_LOCK_NOTGRANTED</a><dd>A lock was requested that could not be immediately granted and the
-<b>flag</b> parameter was set to DB_LOCK_NOWAIT. In this case, if
-non-NULL, <b>elistp</b> identifies the request that was not granted.
-</dl>
-<p>Otherwise, the DbEnv::lock_vec method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p>The DbEnv::lock_vec method may fail and throw an exception or return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>DB_LOCK_DEADLOCK<dd>The operation was selected to resolve a deadlock.
-</dl>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<p><dl compact>
-<p><dt>ENOMEM<dd>The maximum number of locks has been reached.
-</dl>
-<p>The DbEnv::lock_vec method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbEnv::lock_vec method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Classes</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>, <a href="../api_cxx/lock_class.html">DbLock</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_set_lk_conflicts.html">DbEnv::set_lk_conflicts</a>,
-<a href="../api_cxx/env_set_lk_detect.html">DbEnv::set_lk_detect</a>,
-<a href="../api_cxx/env_set_lk_max_locks.html">DbEnv::set_lk_max_locks</a>,
-<a href="../api_cxx/env_set_lk_max_lockers.html">DbEnv::set_lk_max_lockers</a>,
-<a href="../api_cxx/env_set_lk_max_objects.html">DbEnv::set_lk_max_objects</a>,
-<a href="../api_cxx/env_set_lk_max.html">DbEnv::set_lk_max</a>,
-<a href="../api_cxx/lock_detect.html">DbEnv::lock_detect</a>,
-<a href="../api_cxx/lock_get.html">DbEnv::lock_get</a>,
-<a href="../api_cxx/lock_id.html">DbEnv::lock_id</a>,
-<a href="../api_cxx/lock_put.html">DbLock::put</a>,
-<a href="../api_cxx/lock_stat.html">DbEnv::lock_stat</a>
-and
-<a href="../api_cxx/lock_vec.html">DbEnv::lock_vec</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/log_archive.html b/bdb/docs/api_cxx/log_archive.html
deleted file mode 100644
index e5436431a02..00000000000
--- a/bdb/docs/api_cxx/log_archive.html
+++ /dev/null
@@ -1,106 +0,0 @@
-<!--$Id: log_archive.so,v 10.26 2000/05/25 13:47:07 dda Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::log_archive</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::log_archive</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-extern "C" {
- typedef void *(*db_malloc_fcn_type)(size_t);
-};
-int
-DbEnv::log_archive(char *(*listp)[],
- u_int32_t flags, db_malloc_fcn_type db_malloc);
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv::log_archive method
-creates a NULL-terminated array of log or database file names and copies
-a pointer to them into the user-specified memory location <b>listp</b>.
-<p>By default, DbEnv::log_archive returns the names of all of the log files
-that are no longer in use (e.g., no longer involved in active transactions),
-and that may safely be archived for catastrophic recovery and then removed
-from the system. If there were no file names to return, the memory location
-referenced by <b>listp</b> will be set to NULL.
-<p>Arrays of log file names are created in allocated memory. If <b>db_malloc</b> is non-NULL, it
-is called to allocate the memory, otherwise, the library function
-<b>malloc</b>(3) is used. The function <b>db_malloc</b> must match
-the calling conventions of the <b>malloc</b>(3) library routine.
-Regardless, the caller is responsible for deallocating the returned
-memory. To deallocate returned memory, free the returned memory
-reference, references inside the returned memory do not need to be
-individually freed.
-<p>The <b>flags</b> value must be set to 0 or by bitwise inclusively <b>OR</b>'ing together one or more
-of the following values.
-<p><dl compact>
-<p><dt><a name="DB_ARCH_ABS">DB_ARCH_ABS</a><dd>All pathnames are returned as absolute pathnames,
-instead of relative to the database home directory.
-<p><dt><a name="DB_ARCH_DATA">DB_ARCH_DATA</a><dd>Return the database files that need to be archived in order to recover
-the database from catastrophic failure. If any of the database files
-have not been accessed during the lifetime of the current log files,
-DbEnv::log_archive will not include them in this list. It is also
-possible that some of the files referenced in the log have since been
-deleted from the system.
-<p><dt><a name="DB_ARCH_LOG">DB_ARCH_LOG</a><dd>Return all the log file names regardless of whether or not they are in
-use.
-</dl>
-<p>The DB_ARCH_DATA and DB_ARCH_LOG flags are mutually
-exclusive.
-<p>See the <a href="../utility/db_archive.html">db_archive</a> manual page for more information on database
-archival procedures.
-<p>The DbEnv::log_archive method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Bugs</h1>
-<p>In a threaded application (i.e., one where the environment was created
-with the DB_THREAD flag specified), calling DbEnv::log_archive with the
-DB_ARCH_DATA flag will fail, returning EINVAL. To work around this
-problem, re-open the log explicitly without specifying DB_THREAD. This
-restriction is expected to be removed in a future version of Berkeley DB.
-<h1>Errors</h1>
-<p>The DbEnv::log_archive method may fail and throw an exception or return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>The log was corrupted.
-</dl>
-<p>The DbEnv::log_archive method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbEnv::log_archive method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Class</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_set_lg_bsize.html">DbEnv::set_lg_bsize</a>,
-<a href="../api_cxx/env_set_lg_max.html">DbEnv::set_lg_max</a>,
-<a href="../api_cxx/log_archive.html">DbEnv::log_archive</a>,
-<a href="../api_cxx/log_compare.html">DbEnv::log_compare</a>,
-<a href="../api_cxx/log_file.html">DbEnv::log_file</a>,
-<a href="../api_cxx/log_flush.html">DbEnv::log_flush</a>,
-<a href="../api_cxx/log_get.html">DbEnv::log_get</a>,
-<a href="../api_cxx/log_put.html">DbEnv::log_put</a>,
-<a href="../api_cxx/log_register.html">DbEnv::log_register</a>,
-<a href="../api_cxx/log_stat.html">DbEnv::log_stat</a>
-and
-<a href="../api_cxx/log_unregister.html">DbEnv::log_unregister</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/log_compare.html b/bdb/docs/api_cxx/log_compare.html
deleted file mode 100644
index 7d1b7ebb9d6..00000000000
--- a/bdb/docs/api_cxx/log_compare.html
+++ /dev/null
@@ -1,53 +0,0 @@
-<!--$Id: log_compare.so,v 10.12 1999/12/20 08:52:30 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::log_compare</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::log_compare</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-static int
-DbEnv::log_compare(const DbLsn *lsn0, const DbLsn *lsn1);
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv::log_compare method allows the caller to compare two
-<a href="../api_cxx/lsn_class.html">DbLsn</a> objects,
-returning 0 if they are equal, 1 if <b>lsn0</b> is greater than
-<b>lsn1</b>, and -1 if <b>lsn0</b> is less than <b>lsn1</b>.
-<h3>Class</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_set_lg_bsize.html">DbEnv::set_lg_bsize</a>,
-<a href="../api_cxx/env_set_lg_max.html">DbEnv::set_lg_max</a>,
-<a href="../api_cxx/log_archive.html">DbEnv::log_archive</a>,
-<a href="../api_cxx/log_compare.html">DbEnv::log_compare</a>,
-<a href="../api_cxx/log_file.html">DbEnv::log_file</a>,
-<a href="../api_cxx/log_flush.html">DbEnv::log_flush</a>,
-<a href="../api_cxx/log_get.html">DbEnv::log_get</a>,
-<a href="../api_cxx/log_put.html">DbEnv::log_put</a>,
-<a href="../api_cxx/log_register.html">DbEnv::log_register</a>,
-<a href="../api_cxx/log_stat.html">DbEnv::log_stat</a>
-and
-<a href="../api_cxx/log_unregister.html">DbEnv::log_unregister</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/log_file.html b/bdb/docs/api_cxx/log_file.html
deleted file mode 100644
index fa0ed4e5332..00000000000
--- a/bdb/docs/api_cxx/log_file.html
+++ /dev/null
@@ -1,79 +0,0 @@
-<!--$Id: log_file.so,v 10.18 2000/03/01 21:41:29 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::log_file</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::log_file</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbEnv::log_file(const DbLsn *lsn, char *namep, size_t len);
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv::log_file method maps
-<a href="../api_cxx/lsn_class.html">DbLsn</a> objects
-to file names,
-copying the name of the file containing the record named by <b>lsn</b>
-into the memory location referenced by <b>namep</b>.
-<p>The <b>len</b> argument is the length of the <b>namep</b> buffer in bytes.
-If <b>namep</b> is too short to hold the file name, DbEnv::log_file will
-return ENOMEM.
-(Log file names are normally quite short, on the order of 10 characters.)
-<p>This mapping of
-<a href="../api_cxx/lsn_class.html">DbLsn</a> objects
-to files is needed for database administration. For example, a
-transaction manager typically records the earliest
-<a href="../api_cxx/lsn_class.html">DbLsn</a>
-needed for restart, and the database administrator may want to archive
-log files to tape when they contain only
-<a href="../api_cxx/lsn_class.html">DbLsn</a>
-entries before the earliest one needed for restart.
-<p>The DbEnv::log_file method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p>The DbEnv::log_file method may fail and throw an exception or return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>ENOMEM<dd>The supplied buffer was too small to hold the log file name.
-</dl>
-<p>The DbEnv::log_file method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbEnv::log_file method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Class</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_set_lg_bsize.html">DbEnv::set_lg_bsize</a>,
-<a href="../api_cxx/env_set_lg_max.html">DbEnv::set_lg_max</a>,
-<a href="../api_cxx/log_archive.html">DbEnv::log_archive</a>,
-<a href="../api_cxx/log_compare.html">DbEnv::log_compare</a>,
-<a href="../api_cxx/log_file.html">DbEnv::log_file</a>,
-<a href="../api_cxx/log_flush.html">DbEnv::log_flush</a>,
-<a href="../api_cxx/log_get.html">DbEnv::log_get</a>,
-<a href="../api_cxx/log_put.html">DbEnv::log_put</a>,
-<a href="../api_cxx/log_register.html">DbEnv::log_register</a>,
-<a href="../api_cxx/log_stat.html">DbEnv::log_stat</a>
-and
-<a href="../api_cxx/log_unregister.html">DbEnv::log_unregister</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/log_flush.html b/bdb/docs/api_cxx/log_flush.html
deleted file mode 100644
index ecb13b9c0c6..00000000000
--- a/bdb/docs/api_cxx/log_flush.html
+++ /dev/null
@@ -1,66 +0,0 @@
-<!--$Id: log_flush.so,v 10.18 2000/03/01 21:41:30 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::log_flush</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::log_flush</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbEnv::log_flush(const DbLsn *lsn);
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv::log_flush method guarantees that all log records whose
-<a href="../api_cxx/lsn_class.html">DbLsn</a> values
-are less than or equal to the <b>lsn</b> argument have been
-written to disk. If <b>lsn</b> is NULL, all records in the
-log are flushed.
-<p>The DbEnv::log_flush method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p>The DbEnv::log_flush method may fail and throw an exception or return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<p>The DbEnv::log_flush method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbEnv::log_flush method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Class</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_set_lg_bsize.html">DbEnv::set_lg_bsize</a>,
-<a href="../api_cxx/env_set_lg_max.html">DbEnv::set_lg_max</a>,
-<a href="../api_cxx/log_archive.html">DbEnv::log_archive</a>,
-<a href="../api_cxx/log_compare.html">DbEnv::log_compare</a>,
-<a href="../api_cxx/log_file.html">DbEnv::log_file</a>,
-<a href="../api_cxx/log_flush.html">DbEnv::log_flush</a>,
-<a href="../api_cxx/log_get.html">DbEnv::log_get</a>,
-<a href="../api_cxx/log_put.html">DbEnv::log_put</a>,
-<a href="../api_cxx/log_register.html">DbEnv::log_register</a>,
-<a href="../api_cxx/log_stat.html">DbEnv::log_stat</a>
-and
-<a href="../api_cxx/log_unregister.html">DbEnv::log_unregister</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/log_get.html b/bdb/docs/api_cxx/log_get.html
deleted file mode 100644
index 37a8c497bbc..00000000000
--- a/bdb/docs/api_cxx/log_get.html
+++ /dev/null
@@ -1,118 +0,0 @@
-<!--$Id: log_get.so,v 10.22 2000/03/17 01:53:59 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::log_get</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::log_get</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbEnv::log_get(DbLsn *lsn, Dbt *data, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv::log_get method implements a cursor inside of the log,
-retrieving records from the log according to the <b>lsn</b> and
-<b>flags</b> arguments.
-<p>The data field of the <b>data</b> structure is set to the record
-retrieved and the size field indicates the number of bytes in the record.
-See <a href="../api_cxx/dbt_class.html">Dbt</a> for a description of other fields in the <b>data</b>
-structure. When multiple threads are using the returned log handle
-concurrently, one of the <a href="../api_cxx/dbt_class.html#DB_DBT_MALLOC">DB_DBT_MALLOC</a>, <a href="../api_cxx/dbt_class.html#DB_DBT_REALLOC">DB_DBT_REALLOC</a> or
-<a href="../api_cxx/dbt_class.html#DB_DBT_USERMEM">DB_DBT_USERMEM</a> flags must be specified for any <a href="../api_cxx/dbt_class.html">Dbt</a> used
-for data retrieval.
-<p>The <b>flags</b> argument must be set to exactly one of the following values:
-<p><dl compact>
-<p><dt><a name="DB_CHECKPOINT">DB_CHECKPOINT</a><dd>The last record written with the DB_CHECKPOINT flag specified to the
-<a href="../api_cxx/log_put.html">DbEnv::log_put</a> method is returned in the <b>data</b> argument. The
-<b>lsn</b> argument is overwritten with the <a href="../api_cxx/lsn_class.html">DbLsn</a> of the record
-returned. If no record has been previously written with the DB_CHECKPOINT
-flag specified, the first record in the log is returned.
-<p>If the log is empty, the DbEnv::log_get method will return <a href="../ref/program/errorret.html#DB_NOTFOUND">DB_NOTFOUND</a>.
-<p><dt><a name="DB_FIRST">DB_FIRST</a><dd>The first record from any of the log files found in the log directory
-is returned in the <b>data</b> argument.
-The <b>lsn</b> argument is overwritten with the <a href="../api_cxx/lsn_class.html">DbLsn</a> of the
-record returned.
-<p>If the log is empty, the DbEnv::log_get method will return <a href="../ref/program/errorret.html#DB_NOTFOUND">DB_NOTFOUND</a>.
-<p><dt><a name="DB_LAST">DB_LAST</a><dd>The last record in the log is returned in the <b>data</b> argument.
-The <b>lsn</b> argument is overwritten with the <a href="../api_cxx/lsn_class.html">DbLsn</a> of the
-record returned.
-<p>If the log is empty, the DbEnv::log_get method will return <a href="../ref/program/errorret.html#DB_NOTFOUND">DB_NOTFOUND</a>.
-<p><dt><a name="DB_NEXT">DB_NEXT</a><dd>The current log position is advanced to the next record in the log and that
-record is returned in the <b>data</b> argument.
-The <b>lsn</b> argument is overwritten with the <a href="../api_cxx/lsn_class.html">DbLsn</a> of the
-record returned.
-<p>If the pointer has not been initialized via DB_FIRST, DB_LAST, DB_SET,
-DB_NEXT, or DB_PREV, DbEnv::log_get will return the first record in the log.
-If the last log record has already been returned or the log is empty, the
-DbEnv::log_get method will return <a href="../ref/program/errorret.html#DB_NOTFOUND">DB_NOTFOUND</a>.
-<p>If the log was opened with the DB_THREAD flag set, calls to
-DbEnv::log_get with the DB_NEXT flag set will return EINVAL.
-<p><dt><a name="DB_PREV">DB_PREV</a><dd>The current log position is moved to the previous record in the log and that
-record is returned in the <b>data</b> argument.
-The <b>lsn</b> argument is overwritten with the <a href="../api_cxx/lsn_class.html">DbLsn</a> of the
-record returned.
-<p>If the pointer has not been initialized via DB_FIRST, DB_LAST, DB_SET,
-DB_NEXT, or DB_PREV,
-DbEnv::log_get will return the last record in the log.
-If the first log record has already been returned or the log is empty, the
-DbEnv::log_get method will return <a href="../ref/program/errorret.html#DB_NOTFOUND">DB_NOTFOUND</a>.
-<p>If the log was opened with the DB_THREAD flag set, calls to
-DbEnv::log_get with the DB_PREV flag set will return EINVAL.
-<p><dt><a name="DB_CURRENT">DB_CURRENT</a><dd>Return the log record currently referenced by the log.
-<p>If the log pointer has not been initialized via DB_FIRST, DB_LAST, DB_SET,
-DB_NEXT, or DB_PREV, or if the log was opened with the DB_THREAD flag set,
-DbEnv::log_get will return EINVAL.
-<p><dt><a name="DB_SET">DB_SET</a><dd>Retrieve the record specified by the <b>lsn</b> argument. If the
-specified <a href="../api_cxx/lsn_class.html">DbLsn</a> is invalid (e.g., does not appear in the log)
-DbEnv::log_get will return EINVAL.
-</dl>
-<p>Otherwise, the DbEnv::log_get method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p>The DbEnv::log_get method may fail and throw an exception or return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>The DB_FIRST flag was specified and no log files were found.
-</dl>
-<p>The DbEnv::log_get method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbEnv::log_get method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Class</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_set_lg_bsize.html">DbEnv::set_lg_bsize</a>,
-<a href="../api_cxx/env_set_lg_max.html">DbEnv::set_lg_max</a>,
-<a href="../api_cxx/log_archive.html">DbEnv::log_archive</a>,
-<a href="../api_cxx/log_compare.html">DbEnv::log_compare</a>,
-<a href="../api_cxx/log_file.html">DbEnv::log_file</a>,
-<a href="../api_cxx/log_flush.html">DbEnv::log_flush</a>,
-<a href="../api_cxx/log_get.html">DbEnv::log_get</a>,
-<a href="../api_cxx/log_put.html">DbEnv::log_put</a>,
-<a href="../api_cxx/log_register.html">DbEnv::log_register</a>,
-<a href="../api_cxx/log_stat.html">DbEnv::log_stat</a>
-and
-<a href="../api_cxx/log_unregister.html">DbEnv::log_unregister</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/log_put.html b/bdb/docs/api_cxx/log_put.html
deleted file mode 100644
index ecd84e33c78..00000000000
--- a/bdb/docs/api_cxx/log_put.html
+++ /dev/null
@@ -1,84 +0,0 @@
-<!--$Id: log_put.so,v 10.21 2000/03/17 01:53:59 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::log_put</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::log_put</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbEnv::log_put(DbLsn *lsn, const Dbt *data, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv::log_put method appends records to the log. The <a href="../api_cxx/lsn_class.html">DbLsn</a> of
-the put record is returned in the <b>lsn</b> argument. The <b>flags</b>
-argument may be set to one of the following values:
-<p><dl compact>
-<p><dt><a name="DB_CHECKPOINT">DB_CHECKPOINT</a><dd>The log should write a checkpoint record, recording any information
-necessary to make the log structures recoverable after a crash.
-<p><dt><a name="DB_CURLSN">DB_CURLSN</a><dd>The <a href="../api_cxx/lsn_class.html">DbLsn</a> of the next record to be put is returned in the
-<b>lsn</b> argument.
-<p><dt><a name="DB_FLUSH">DB_FLUSH</a><dd>The log is forced to disk after this record is written, guaranteeing
-that all records with <a href="../api_cxx/lsn_class.html">DbLsn</a> values less than or equal to the
-one being put are on disk before this function returns (this function
-is most often used for a transaction commit, see <a href="../api_cxx/txn_commit.html">DbTxn::commit</a> for
-more information).
-<p>The caller is responsible for providing any necessary structure to
-<b>data</b>. (For example, in a write-ahead logging protocol, the
-application must understand what part of <b>data</b> is an operation
-code, what part is redo information, and what part is undo information.
-In addition, most transaction managers will store in <b>data</b> the
-<a href="../api_cxx/lsn_class.html">DbLsn</a> of the previous log record for the same transaction, to
-support chaining back through the transaction's log records during
-undo.)
-</dl>
-<p>The DbEnv::log_put method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p>The <a href="../api_cxx/log_flush.html">DbEnv::log_flush</a> method may fail and throw an exception or return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>The record to be logged is larger than the maximum log record.
-</dl>
-<p>The DbEnv::log_put method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbEnv::log_put method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Class</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_set_lg_bsize.html">DbEnv::set_lg_bsize</a>,
-<a href="../api_cxx/env_set_lg_max.html">DbEnv::set_lg_max</a>,
-<a href="../api_cxx/log_archive.html">DbEnv::log_archive</a>,
-<a href="../api_cxx/log_compare.html">DbEnv::log_compare</a>,
-<a href="../api_cxx/log_file.html">DbEnv::log_file</a>,
-<a href="../api_cxx/log_flush.html">DbEnv::log_flush</a>,
-<a href="../api_cxx/log_get.html">DbEnv::log_get</a>,
-<a href="../api_cxx/log_put.html">DbEnv::log_put</a>,
-<a href="../api_cxx/log_register.html">DbEnv::log_register</a>,
-<a href="../api_cxx/log_stat.html">DbEnv::log_stat</a>
-and
-<a href="../api_cxx/log_unregister.html">DbEnv::log_unregister</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/log_register.html b/bdb/docs/api_cxx/log_register.html
deleted file mode 100644
index b837a60b352..00000000000
--- a/bdb/docs/api_cxx/log_register.html
+++ /dev/null
@@ -1,68 +0,0 @@
-<!--$Id: log_register.so,v 10.27 2000/05/09 14:46:45 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::log_register</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::log_register</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbEnv::log_register(Db *dbp, const char *name);
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv::log_register method registers a file name with the specified Berkeley DB
-environment's log manager. The log manager records all file name mappings
-at each checkpoint so that a recovery process can identify the file to
-which a record in the log refers.
-<p>The <b>dbp</b> argument should be a reference to the <a href="../api_cxx/db_class.html">Db</a> object being
-registered. The <b>name</b> argument should be a file name appropriate
-for opening the file in the environment, during recovery.
-<p>The DbEnv::log_register method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p>The DbEnv::log_register method may fail and throw an exception or return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<p>The DbEnv::log_register method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbEnv::log_register method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Class</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_set_lg_bsize.html">DbEnv::set_lg_bsize</a>,
-<a href="../api_cxx/env_set_lg_max.html">DbEnv::set_lg_max</a>,
-<a href="../api_cxx/log_archive.html">DbEnv::log_archive</a>,
-<a href="../api_cxx/log_compare.html">DbEnv::log_compare</a>,
-<a href="../api_cxx/log_file.html">DbEnv::log_file</a>,
-<a href="../api_cxx/log_flush.html">DbEnv::log_flush</a>,
-<a href="../api_cxx/log_get.html">DbEnv::log_get</a>,
-<a href="../api_cxx/log_put.html">DbEnv::log_put</a>,
-<a href="../api_cxx/log_register.html">DbEnv::log_register</a>,
-<a href="../api_cxx/log_stat.html">DbEnv::log_stat</a>
-and
-<a href="../api_cxx/log_unregister.html">DbEnv::log_unregister</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/log_stat.html b/bdb/docs/api_cxx/log_stat.html
deleted file mode 100644
index 061685ab497..00000000000
--- a/bdb/docs/api_cxx/log_stat.html
+++ /dev/null
@@ -1,96 +0,0 @@
-<!--$Id: log_stat.so,v 10.23 2000/05/25 13:47:08 dda Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::log_stat</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::log_stat</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-extern "C" {
- typedef void *(*db_malloc_fcn_type)(size_t);
-};
-int
-DbEnv::log_stat(DB_LOG_STAT **spp, db_malloc_fcn_type db_malloc);
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv::log_stat method
-creates a statistical structure and copies a pointer to it into a
-user-specified memory location.
-<p>Statistical structures are created in allocated memory. If <b>db_malloc</b> is non-NULL, it
-is called to allocate the memory, otherwise, the library function
-<b>malloc</b>(3) is used. The function <b>db_malloc</b> must match
-the calling conventions of the <b>malloc</b>(3) library routine.
-Regardless, the caller is responsible for deallocating the returned
-memory. To deallocate returned memory, free the returned memory
-reference, references inside the returned memory do not need to be
-individually freed.
-<p>The log region statistics are stored in a structure of type DB_LOG_STAT.
-The following DB_LOG_STAT fields will be filled in:
-<p><dl compact>
-<dt>u_int32_t st_magic;<dd>The magic number that identifies a file as a log file.
-<dt>u_int32_t st_version;<dd>The version of the log file type.
-<dt>u_int32_t st_regsize;<dd>The size of the region.
-<dt>int st_mode;<dd>The mode of any created log files.
-<dt>u_int32_t st_lg_bsize;<dd>The in-memory log record cache size.
-<dt>u_int32_t st_lg_max;<dd>The maximum size of any individual file comprising the log.
-<dt>u_int32_t st_w_mbytes;<dd>The number of megabytes written to this log.
-<dt>u_int32_t st_w_bytes;<dd>The number of bytes over and above <b>st_w_mbytes</b> written to this log.
-<dt>u_int32_t st_wc_mbytes;<dd>The number of megabytes written to this log since the last checkpoint.
-<dt>u_int32_t st_wc_bytes;<dd>The number of bytes over and above <b>st_wc_mbytes</b> written to this log
-since the last checkpoint.
-<dt>u_int32_t st_wcount;<dd>The number of times the log has been written to disk.
-<dt>u_int32_t st_wcount_fill;<dd>The number of times the log has been written to disk because the
-in-memory log record cache filled up.
-<dt>u_int32_t st_scount;<dd>The number of times the log has been flushed to disk.
-<dt>u_int32_t st_cur_file;<dd>The current log file number.
-<dt>u_int32_t st_cur_offset;<dd>The byte offset in the current log file.
-<dt>u_int32_t st_region_wait;<dd>The number of times that a thread of control was forced to wait before
-obtaining the region lock.
-<dt>u_int32_t st_region_nowait;<dd>The number of times that a thread of control was able to obtain
-the region lock without waiting.
-</dl>
-<p>The DbEnv::log_stat method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p>The DbEnv::log_stat method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbEnv::log_stat method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Class</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_set_lg_bsize.html">DbEnv::set_lg_bsize</a>,
-<a href="../api_cxx/env_set_lg_max.html">DbEnv::set_lg_max</a>,
-<a href="../api_cxx/log_archive.html">DbEnv::log_archive</a>,
-<a href="../api_cxx/log_compare.html">DbEnv::log_compare</a>,
-<a href="../api_cxx/log_file.html">DbEnv::log_file</a>,
-<a href="../api_cxx/log_flush.html">DbEnv::log_flush</a>,
-<a href="../api_cxx/log_get.html">DbEnv::log_get</a>,
-<a href="../api_cxx/log_put.html">DbEnv::log_put</a>,
-<a href="../api_cxx/log_register.html">DbEnv::log_register</a>,
-<a href="../api_cxx/log_stat.html">DbEnv::log_stat</a>
-and
-<a href="../api_cxx/log_unregister.html">DbEnv::log_unregister</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/log_unregister.html b/bdb/docs/api_cxx/log_unregister.html
deleted file mode 100644
index 364e62259b5..00000000000
--- a/bdb/docs/api_cxx/log_unregister.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<!--$Id: log_unregister.so,v 10.21 2000/05/03 22:39:10 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::log_unregister</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::log_unregister</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbEnv::log_unregister(int32_t DB *dbp);
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv::log_unregister method function unregisters the file represented by
-the <b>dbp</b> parameter from the Berkeley DB environment's log manager.
-<p>The DbEnv::log_unregister method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p>The DbEnv::log_unregister method may fail and throw an exception or return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<p>The DbEnv::log_unregister method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbEnv::log_unregister method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Class</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_set_lg_bsize.html">DbEnv::set_lg_bsize</a>,
-<a href="../api_cxx/env_set_lg_max.html">DbEnv::set_lg_max</a>,
-<a href="../api_cxx/log_archive.html">DbEnv::log_archive</a>,
-<a href="../api_cxx/log_compare.html">DbEnv::log_compare</a>,
-<a href="../api_cxx/log_file.html">DbEnv::log_file</a>,
-<a href="../api_cxx/log_flush.html">DbEnv::log_flush</a>,
-<a href="../api_cxx/log_get.html">DbEnv::log_get</a>,
-<a href="../api_cxx/log_put.html">DbEnv::log_put</a>,
-<a href="../api_cxx/log_register.html">DbEnv::log_register</a>,
-<a href="../api_cxx/log_stat.html">DbEnv::log_stat</a>
-and
-<a href="../api_cxx/log_unregister.html">DbEnv::log_unregister</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/lsn_class.html b/bdb/docs/api_cxx/lsn_class.html
deleted file mode 100644
index db4d5656794..00000000000
--- a/bdb/docs/api_cxx/lsn_class.html
+++ /dev/null
@@ -1,38 +0,0 @@
-<!--$Id: lsn_class.so,v 10.11 1999/12/20 08:52:33 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbLsn</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbLsn</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-class DbLsn { ... };
-</pre></h3>
-<h1>Description</h1>
-<p>A DbLsn is a <b>log sequence number</b> that is fully
-encapsulated. The class itself has no methods, other than a default
-constructor, so there is no way for the user to manipulate its data
-directly.
-Methods always take a pointer to a DbLsn as an argument.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/memp_fclose.html b/bdb/docs/api_cxx/memp_fclose.html
deleted file mode 100644
index 0906388e3ee..00000000000
--- a/bdb/docs/api_cxx/memp_fclose.html
+++ /dev/null
@@ -1,65 +0,0 @@
-<!--$Id: memp_fclose.so,v 10.20 2000/06/13 13:55:49 sue Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbMpoolFile::close</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbMpoolFile::close</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbMpoolFile::close();
-</pre></h3>
-<h1>Description</h1>
-<p>The DbMpoolFile::close method closes the source file indicated by the
-<a href="../api_cxx/mempfile_class.html">DbMpoolFile</a> object. Calling DbMpoolFile::close does not imply
-a call to <a href="../api_cxx/memp_fsync.html">DbMpoolFile::sync</a>, i.e. no pages are written to the source
-file as as a result of calling DbMpoolFile::close.
-<p>In addition, if the <b>file</b> argument to <a href="../api_cxx/memp_fopen.html">DbMpoolFile::open</a> was NULL,
-any underlying files created for this <a href="../api_cxx/mempfile_class.html">DbMpoolFile</a> will be removed.
-<p>Once DbMpoolFile::close has been called, regardless of its return, the
-<a href="../api_cxx/mempfile_class.html">DbMpoolFile</a> handle may not be accessed again.
-<p>The DbMpoolFile::close method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p>The DbMpoolFile::close method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbMpoolFile::close method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Classes</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>, <a href="../api_cxx/mempfile_class.html">DbMpoolFile</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_set_mp_mmapsize.html">DbEnv::set_mp_mmapsize</a>,
-<a href="../api_cxx/memp_fclose.html">DbMpoolFile::close</a>,
-<a href="../api_cxx/memp_fget.html">DbMpoolFile::get</a>,
-<a href="../api_cxx/memp_fopen.html">DbMpoolFile::open</a>,
-<a href="../api_cxx/memp_fput.html">DbMpoolFile::put</a>,
-<a href="../api_cxx/memp_fset.html">DbMpoolFile::set</a>,
-<a href="../api_cxx/memp_fsync.html">DbMpoolFile::sync</a>,
-<a href="../api_cxx/memp_register.html">DbEnv::memp_register</a>,
-<a href="../api_cxx/memp_stat.html">DbEnv::memp_stat</a>,
-<a href="../api_cxx/memp_sync.html">DbEnv::memp_sync</a>
-and
-<a href="../api_cxx/memp_trickle.html">DbEnv::memp_trickle</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/memp_fget.html b/bdb/docs/api_cxx/memp_fget.html
deleted file mode 100644
index c8067603c77..00000000000
--- a/bdb/docs/api_cxx/memp_fget.html
+++ /dev/null
@@ -1,101 +0,0 @@
-<!--$Id: memp_fget.so,v 10.23 2000/12/04 18:05:39 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbMpoolFile::get</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbMpoolFile::get</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbMpoolFile::get(db_pgno_t *pgnoaddr, u_int32_t flags, void **pagep);
-</pre></h3>
-<h1>Description</h1>
-<p>The DbMpoolFile::get method copies a pointer to the page with the page
-number specified by <b>pgnoaddr</b>, from the source file in the
-<a href="../api_cxx/mempfile_class.html">DbMpoolFile</a>, into the memory location referenced by <b>pagep</b>.
-If the page does not exist or cannot be retrieved, DbMpoolFile::get will
-fail.
-<p><b>Page numbers begin at 0, i.e., the first page in the file is page number
-0, not page number 1.</b>
-<p>The returned page is <b>size_t</b> type aligned.
-<p>The <b>flags</b> value must be set to 0 or by bitwise inclusively <b>OR</b>'ing together one or more
-of the following values.
-<p><dl compact>
-<p><dt><a name="DB_MPOOL_CREATE">DB_MPOOL_CREATE</a><dd>If the specified page does not exist, create it. In this case, the
-<a href="memp_register.html#pgin">pgin</a> method, if specified, is
-called.
-<p><dt><a name="DB_MPOOL_LAST">DB_MPOOL_LAST</a><dd>Return the last page of the source file and copy its page number
-to the location referenced by <b>pgnoaddr</b>.
-<p><dt><a name="DB_MPOOL_NEW">DB_MPOOL_NEW</a><dd>Create a new page in the file and copy its page number to the location
-referenced by <b>pgnoaddr</b>. In this case, the
-<a href="memp_register.html#pgin">pgin</a> method, if specified, is
-<b>not</b> called.
-</dl>
-<p>The DB_MPOOL_CREATE, DB_MPOOL_LAST and
-DB_MPOOL_NEW flags are mutually exclusive.
-<p>Created pages have all their bytes set to 0, unless otherwise specified
-when the file was opened.
-<p>All pages returned by DbMpoolFile::get will be retained (i.e.
-<i>pinned</i>), in the pool until a subsequent call to
-<a href="../api_cxx/memp_fput.html">DbMpoolFile::put</a>.
-<p>The DbMpoolFile::get method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p>The DbMpoolFile::get method may fail and throw an exception or return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EAGAIN<dd>The page reference count has overflowed. (This should never happen unless
-there's a bug in the application.)
-</dl>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>The DB_MPOOL_NEW flag was set and the source file was not opened for writing.
-<p>More than one of DB_MPOOL_CREATE, DB_MPOOL_LAST and DB_MPOOL_NEW was set.
-</dl>
-<p><dl compact>
-<p><dt>EIO<dd>The requested page does not exist and DB_MPOOL_CREATE was not set.
-</dl>
-<p><dl compact>
-<p><dt>ENOMEM<dd>The cache is full and no more pages will fit in the pool.
-</dl>
-<p>The DbMpoolFile::get method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbMpoolFile::get method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Classes</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>, <a href="../api_cxx/mempfile_class.html">DbMpoolFile</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_set_mp_mmapsize.html">DbEnv::set_mp_mmapsize</a>,
-<a href="../api_cxx/memp_fclose.html">DbMpoolFile::close</a>,
-<a href="../api_cxx/memp_fget.html">DbMpoolFile::get</a>,
-<a href="../api_cxx/memp_fopen.html">DbMpoolFile::open</a>,
-<a href="../api_cxx/memp_fput.html">DbMpoolFile::put</a>,
-<a href="../api_cxx/memp_fset.html">DbMpoolFile::set</a>,
-<a href="../api_cxx/memp_fsync.html">DbMpoolFile::sync</a>,
-<a href="../api_cxx/memp_register.html">DbEnv::memp_register</a>,
-<a href="../api_cxx/memp_stat.html">DbEnv::memp_stat</a>,
-<a href="../api_cxx/memp_sync.html">DbEnv::memp_sync</a>
-and
-<a href="../api_cxx/memp_trickle.html">DbEnv::memp_trickle</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/memp_fopen.html b/bdb/docs/api_cxx/memp_fopen.html
deleted file mode 100644
index c993ee6f11d..00000000000
--- a/bdb/docs/api_cxx/memp_fopen.html
+++ /dev/null
@@ -1,160 +0,0 @@
-<!--$Id: memp_fopen.so,v 10.28 2000/12/18 21:05:12 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbMpoolFile::open</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbMpoolFile::open</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-static int
-DbMpoolFile::open(DbEnv *env, const char *file, u_int32_t flags, int mode,
- size_t pagesize, DB_MPOOL_FINFO *finfop, DbMpoolFile **mpf);
-</pre></h3>
-<h1>Description</h1>
-<p>The DbMpoolFile::open method opens a file in the pool specified by the
-<a href="../api_cxx/dbenv_class.html">DbEnv</a> <b>env</b>, copying the <a href="../api_cxx/mempfile_class.html">DbMpoolFile</a> pointer
-representing it into the memory location referenced by <b>mpf</b>.
-<p>The <b>file</b> argument is the name of the file to be opened.
-If <b>file</b> is NULL, a private file is created that cannot be
-shared with any other process (although it may be shared with
-other threads).
-<p>The <b>flags</b> and <b>mode</b> arguments specify how files will be opened
-and/or created if they do not already exist.
-<p>The <b>flags</b> value must be set to 0 or by bitwise inclusively <b>OR</b>'ing together one or more
-of the following values.
-<p><dl compact>
-<p><dt><a name="DB_CREATE">DB_CREATE</a><dd>Create any underlying files, as necessary. If the files do not already
-exist and the DB_CREATE flag is not specified, the call will fail.
-<p><dt><a name="DB_NOMMAP">DB_NOMMAP</a><dd>Always copy this file into the local cache instead of potentially mapping
-it into process memory (see the description of the
-<a href="../api_cxx/env_set_mp_mmapsize.html">DbEnv::set_mp_mmapsize</a> method for further information).
-<p><dt><a name="DB_RDONLY">DB_RDONLY</a><dd>Open any underlying files for reading only. Any attempt to write the file
-using the pool functions will fail, regardless of the actual permissions
-of the file.
-</dl>
-<p>On UNIX systems, or in IEEE/ANSI Std 1003.1 (POSIX) environments, all files created by function DbMpoolFile::open
-are created with mode <b>mode</b> (as described in <b>chmod</b>(2)) and
-modified by the process' umask value at the time of creation (see
-<b>umask</b>(2)). The group ownership of created files is based on
-the system and directory defaults, and is not further specified by Berkeley DB.
-If <b>mode</b> is 0, files are created readable and writeable by both
-owner and group. On Windows systems, the mode argument is ignored.
-<p>The <b>pagesize</b> argument is the size, in bytes, of the unit of transfer
-between the application and the pool, although it is not necessarily the
-unit of transfer between the pool and the source file.
-<p>Files opened in the pool may be further configured based on the
-<b>finfop</b> argument to DbMpoolFile::open (which is a pointer to a
-structure of type DB_MPOOL_FINFO). No references to the <b>finfop</b>
-structure are maintained by Berkeley DB, so it may be discarded when the
-DbMpoolFile::open function returns. In order to ensure compatibility
-with future releases of Berkeley DB, all fields of the DB_MPOOL_FINFO structure
-that are not explicitly set should be initialized to 0 before the first
-time the structure is used. Do this by declaring the structure external
-or static, or by calling the C library routine <b>bzero</b>(3) or
-<b>memset</b>(3).
-<p>The fields of the DB_MPOOL_FINFO structure used by DbMpoolFile::open are
-described below. If <b>finfop</b> is NULL or any of its fields are
-set to their default value, defaults appropriate for the system are used.
-<p><dl compact>
-<p><dt>int <a name="ftype">ftype</a>;<dd>The <b>ftype</b> field should be the same as a <b>ftype</b> argument
-previously specified to the <a href="../api_cxx/memp_register.html">DbEnv::memp_register</a> function, unless no
-input or output processing of the file's pages are necessary, in which
-case it should be 0. (See the description of the <a href="../api_cxx/memp_register.html">DbEnv::memp_register</a>
-function for more information.)
-<p><dt>DBT *<a name="pgcookie">pgcookie</a>;<dd>The <b>pgcookie</b> field contains the byte string that is passed to the
-<b>pgin</b> and <b>pgout</b> functions for this file, if any. If no
-<b>pgin</b> or <b>pgout</b> functions are specified, the
-<b>pgcookie</b> field should be NULL. (See the description of the
-<a href="../api_cxx/memp_register.html">DbEnv::memp_register</a> function for more information.)
-<p><dt>u_int8_t *<a name="fileid">fileid</a>;<dd>The <b>fileid</b> field is a unique identifier for the file. If the
-<b>fileid</b> field is non-NULL, it must reference a DB_FILE_ID_LEN
-length array of bytes that will be used to uniquely identify the file.
-<p>The mpool functions must be able to uniquely identify files in order that
-multiple processes wanting to share a file will correctly identify it in
-the pool.
-<p>On most UNIX/POSIX systems, the <b>fileid</b> field will not need to be
-set and the mpool functions will simply use the file's device and inode
-numbers for this purpose. On Windows systems, the mpool functions use
-the values returned by GetFileInformationByHandle() by default -- these
-values are known to be constant between processes and over reboot in the
-case of NTFS (where they are the NTFS MFT indexes).
-<p>On other filesystems, (e.g., FAT or NFS) these default values are not
-necessarily unique between processes or across system reboots.
-<b>Applications wanting to maintain a shared memory buffer pool
-between processes or across system reboots, where the pool contains pages
-from files stored on such filesystems, must specify a unique file
-identifier to the DbMpoolFile::open call and each process opening or
-registering the file must provide the same unique identifier.</b>
-<p>This should not be necessary for most applications. Specifically, it is
-not necessary if the memory pool is not shared between processes and is
-re-instantiated after each system reboot, or the application is using the
-Berkeley DB access methods instead of calling the pool functions explicitly, or
-the files in the memory pool are stored on filesystems where the default
-values as described above are invariant between process and across system
-reboots.
-<p><dt>int32_t <a name="lsn_offset">lsn_offset</a>;<dd>The <b>lsn_offset</b> field is the zero-based byte offset in the page of
-the page's log sequence number (LSN), or -1 if no LSN offset is specified.
-(See the description of the <a href="../api_cxx/memp_sync.html">DbEnv::memp_sync</a> function for more
-information.)
-<p><dt>u_int32_t <a name="clear_len">clear_len</a>;<dd>The <b>clear_len</b> field is the number of initial bytes in a page
-that should be set to zero when the page is created as a result of the
-DB_MPOOL_CREATE or DB_MPOOL_NEW flags being specified to <a href="../api_cxx/memp_fget.html">DbMpoolFile::get</a>.
-If <b>finfop</b> is NULL or <b>clear_len</b> is 0, the entire page is
-cleared.
-</dl>
-<p>The DbMpoolFile::open method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p>The DbMpoolFile::open method may fail and throw an exception or return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>The file has already been entered into the pool, and the <b>pagesize</b>
-value is not the same as when the file was entered into the pool, or the
-length of the file is not zero or a multiple of the <b>pagesize</b>.
-<p>The DB_RDONLY flag was specified for an in-memory pool.
-</dl>
-<p><dl compact>
-<p><dt>ENOMEM<dd>The maximum number of open files has been reached.
-</dl>
-<p>The DbMpoolFile::open method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbMpoolFile::open method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Classes</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>, <a href="../api_cxx/mempfile_class.html">DbMpoolFile</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_set_mp_mmapsize.html">DbEnv::set_mp_mmapsize</a>,
-<a href="../api_cxx/memp_fclose.html">DbMpoolFile::close</a>,
-<a href="../api_cxx/memp_fget.html">DbMpoolFile::get</a>,
-<a href="../api_cxx/memp_fopen.html">DbMpoolFile::open</a>,
-<a href="../api_cxx/memp_fput.html">DbMpoolFile::put</a>,
-<a href="../api_cxx/memp_fset.html">DbMpoolFile::set</a>,
-<a href="../api_cxx/memp_fsync.html">DbMpoolFile::sync</a>,
-<a href="../api_cxx/memp_register.html">DbEnv::memp_register</a>,
-<a href="../api_cxx/memp_stat.html">DbEnv::memp_stat</a>,
-<a href="../api_cxx/memp_sync.html">DbEnv::memp_sync</a>
-and
-<a href="../api_cxx/memp_trickle.html">DbEnv::memp_trickle</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/memp_fput.html b/bdb/docs/api_cxx/memp_fput.html
deleted file mode 100644
index f49c809c093..00000000000
--- a/bdb/docs/api_cxx/memp_fput.html
+++ /dev/null
@@ -1,83 +0,0 @@
-<!--$Id: memp_fput.so,v 10.18 2000/03/01 21:41:30 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbMpoolFile::put</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbMpoolFile::put</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbMpoolFile::put(void *pgaddr, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The DbMpoolFile::put method indicates that the page referenced by
-<b>pgaddr</b> can be evicted from the pool. The <b>pgaddr</b>
-argument must be an address previously returned by <a href="../api_cxx/memp_fget.html">DbMpoolFile::get</a>.
-<p>The <b>flags</b> value must be set to 0 or by bitwise inclusively <b>OR</b>'ing together one or more
-of the following values.
-<p><dl compact>
-<p><dt><a name="DB_MPOOL_CLEAN">DB_MPOOL_CLEAN</a><dd>Clear any previously set modification information (i.e., don't bother
-writing the page back to the source file).
-<p><dt><a name="DB_MPOOL_DIRTY">DB_MPOOL_DIRTY</a><dd>The page has been modified and must be written to the source file
-before being evicted from the pool.
-<p><dt><a name="DB_MPOOL_DISCARD">DB_MPOOL_DISCARD</a><dd>The page is unlikely to be useful in the near future,
-and should be discarded before other pages in the pool.
-</dl>
-<p>The DB_MPOOL_CLEAN and DB_MPOOL_DIRTY flags are
-mutually exclusive.
-<p>The DbMpoolFile::put method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p>The DbMpoolFile::put method may fail and throw an exception or return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EACCES<dd>The DB_MPOOL_DIRTY flag was set and the source file was not opened for
-writing.
-</dl>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>The <b>pgaddr</b> parameter does not reference a page returned by
-<a href="../api_cxx/memp_fget.html">DbMpoolFile::get</a>.
-<p>More than one of DB_MPOOL_CLEAN and DB_MPOOL_DIRTY flags was set.
-</dl>
-<p>The DbMpoolFile::put method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbMpoolFile::put method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Classes</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>, <a href="../api_cxx/mempfile_class.html">DbMpoolFile</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_set_mp_mmapsize.html">DbEnv::set_mp_mmapsize</a>,
-<a href="../api_cxx/memp_fclose.html">DbMpoolFile::close</a>,
-<a href="../api_cxx/memp_fget.html">DbMpoolFile::get</a>,
-<a href="../api_cxx/memp_fopen.html">DbMpoolFile::open</a>,
-<a href="../api_cxx/memp_fput.html">DbMpoolFile::put</a>,
-<a href="../api_cxx/memp_fset.html">DbMpoolFile::set</a>,
-<a href="../api_cxx/memp_fsync.html">DbMpoolFile::sync</a>,
-<a href="../api_cxx/memp_register.html">DbEnv::memp_register</a>,
-<a href="../api_cxx/memp_stat.html">DbEnv::memp_stat</a>,
-<a href="../api_cxx/memp_sync.html">DbEnv::memp_sync</a>
-and
-<a href="../api_cxx/memp_trickle.html">DbEnv::memp_trickle</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/memp_fset.html b/bdb/docs/api_cxx/memp_fset.html
deleted file mode 100644
index 6e46d45c1f4..00000000000
--- a/bdb/docs/api_cxx/memp_fset.html
+++ /dev/null
@@ -1,76 +0,0 @@
-<!--$Id: memp_fset.so,v 10.18 2000/03/01 21:41:30 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbMpoolFile::set</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbMpoolFile::set</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbMpoolFile::set(void *pgaddr, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The DbMpoolFile::set method sets the flags associated with the page referenced
-by <b>pgaddr</b> without unpinning it from the pool. The <b>pgaddr</b>
-argument must be an address previously returned by <a href="../api_cxx/memp_fget.html">DbMpoolFile::get</a>.
-<p>The <b>flags</b> value must be set to 0 or by bitwise inclusively <b>OR</b>'ing together one or more
-of the following values.
-<p><dl compact>
-<p><dt><a name="DB_MPOOL_CLEAN">DB_MPOOL_CLEAN</a><dd>Clear any previously set modification information (i.e., don't bother
-writing the page back to the source file).
-<p><dt><a name="DB_MPOOL_DIRTY">DB_MPOOL_DIRTY</a><dd>The page has been modified and must be written to the source file
-before being evicted from the pool.
-<p><dt><a name="DB_MPOOL_DISCARD">DB_MPOOL_DISCARD</a><dd>The page is unlikely to be useful in the near future,
-and should be discarded before other pages in the pool.
-</dl>
-<p>The DB_MPOOL_CLEAN and DB_MPOOL_DIRTY flags are
-mutually exclusive.
-<p>The DbMpoolFile::set method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p>The DbMpoolFile::set method may fail and throw an exception or return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<p>The DbMpoolFile::set method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbMpoolFile::set method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Classes</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>, <a href="../api_cxx/mempfile_class.html">DbMpoolFile</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_set_mp_mmapsize.html">DbEnv::set_mp_mmapsize</a>,
-<a href="../api_cxx/memp_fclose.html">DbMpoolFile::close</a>,
-<a href="../api_cxx/memp_fget.html">DbMpoolFile::get</a>,
-<a href="../api_cxx/memp_fopen.html">DbMpoolFile::open</a>,
-<a href="../api_cxx/memp_fput.html">DbMpoolFile::put</a>,
-<a href="../api_cxx/memp_fset.html">DbMpoolFile::set</a>,
-<a href="../api_cxx/memp_fsync.html">DbMpoolFile::sync</a>,
-<a href="../api_cxx/memp_register.html">DbEnv::memp_register</a>,
-<a href="../api_cxx/memp_stat.html">DbEnv::memp_stat</a>,
-<a href="../api_cxx/memp_sync.html">DbEnv::memp_sync</a>
-and
-<a href="../api_cxx/memp_trickle.html">DbEnv::memp_trickle</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/memp_fsync.html b/bdb/docs/api_cxx/memp_fsync.html
deleted file mode 100644
index a38366f9e18..00000000000
--- a/bdb/docs/api_cxx/memp_fsync.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<!--$Id: memp_fsync.so,v 10.22 2000/09/08 15:20:28 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbMpoolFile::sync</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbMpoolFile::sync</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbMpoolFile::sync();
-</pre></h3>
-<h1>Description</h1>
-<p>The DbMpoolFile::sync method writes all pages associated with the
-<a href="../api_cxx/mempfile_class.html">DbMpoolFile</a>, that were marked as modified using <a href="../api_cxx/memp_fput.html">DbMpoolFile::put</a>
-or <a href="../api_cxx/memp_fset.html">DbMpoolFile::set</a>, back to the source file. If any of the modified
-pages are also <i>pinned</i> (i.e., currently referenced by this or
-another process) DbMpoolFile::sync will ignore them.
-<p>The DbMpoolFile::sync method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, 0 on success, and returns <a href="../api_c/memp_fsync.html#DB_INCOMPLETE">DB_INCOMPLETE</a> if there were pages which were
-modified but which DbMpoolFile::sync was unable to write immediately.
-<h1>Errors</h1>
-<p>The DbMpoolFile::sync method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbMpoolFile::sync method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Classes</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>, <a href="../api_cxx/mempfile_class.html">DbMpoolFile</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_set_mp_mmapsize.html">DbEnv::set_mp_mmapsize</a>,
-<a href="../api_cxx/memp_fclose.html">DbMpoolFile::close</a>,
-<a href="../api_cxx/memp_fget.html">DbMpoolFile::get</a>,
-<a href="../api_cxx/memp_fopen.html">DbMpoolFile::open</a>,
-<a href="../api_cxx/memp_fput.html">DbMpoolFile::put</a>,
-<a href="../api_cxx/memp_fset.html">DbMpoolFile::set</a>,
-<a href="../api_cxx/memp_fsync.html">DbMpoolFile::sync</a>,
-<a href="../api_cxx/memp_register.html">DbEnv::memp_register</a>,
-<a href="../api_cxx/memp_stat.html">DbEnv::memp_stat</a>,
-<a href="../api_cxx/memp_sync.html">DbEnv::memp_sync</a>
-and
-<a href="../api_cxx/memp_trickle.html">DbEnv::memp_trickle</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/memp_register.html b/bdb/docs/api_cxx/memp_register.html
deleted file mode 100644
index 4c5f0748e98..00000000000
--- a/bdb/docs/api_cxx/memp_register.html
+++ /dev/null
@@ -1,102 +0,0 @@
-<!--$Id: memp_register.so,v 10.23 2000/05/25 13:47:08 dda Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::memp_register</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::memp_register</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-extern "C" {
- typedef int (*pgin_fcn_type)(DB_ENV *dbenv,
- db_pgno_t pgno, void *pgaddr, DBT *pgcookie);
- typedef int (*pgout_fcn_type)(DB_ENV *dbenv,
- db_pgno_t pgno, void *pgaddr, DBT *pgcookie);
-};
-int
-DbEnv::memp_register(int ftype,
- pgin_fcn_type pgin_fcn, pgout_fcn_type pgout_fcn);
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv::memp_register method registers page-in and page-out
-functions for files of type <b>ftype</b> in the specified pool.
-<p>If the <b>pgin_fcn</b> function is non-NULL, it is called each time
-a page is read into the memory pool from a file of type <b>ftype</b>, or
-a page is created for a file of type <b>ftype</b> (see the
-DB_MPOOL_CREATE flag for the <a href="../api_cxx/memp_fget.html">DbMpoolFile::get</a> method).
-<p>If the <b>pgout_fcn</b> function is non-NULL, it is called each time
-a page is written to a file of type <b>ftype</b>.
-<p>Both the <b>pgin_fcn</b> and <b>pgout_fcn</b> functions are called with
-a reference to the current environment, the page number, a pointer to the
-page being read or written, and any argument <b>pgcookie</b> that was
-specified to the <a href="../api_cxx/memp_fopen.html">DbMpoolFile::open</a> function when the file was opened.
-The <b>pgin_fcn</b> and <b>pgout_fcn</b> functions should return 0 on
-success, and an applicable non-zero <b>errno</b> value on failure, in
-which case the shared memory pool interface routine (and, by extension,
-any Berkeley DB library function) calling it will also fail, returning that
-<b>errno</b> value.
-<p>The purpose of the DbEnv::memp_register function is to support processing
-when pages are entered into, or flushed from, the pool. A file type must
-be specified to make it possible for unrelated threads or processes, that
-are sharing a pool, to evict each other's pages from the pool.
-Applications should call DbEnv::memp_register, during initialization,
-for each type of file requiring input or output processing that will be
-sharing the underlying pool. (No registry is necessary for the standard
-Berkeley DB access method types, as <a href="../api_cxx/db_open.html">Db::open</a> registers them
-separately.)
-<p>If a thread or process does not call DbEnv::memp_register for a file
-type, it is impossible for it to evict pages for any file requiring input
-or output processing from the pool. For this reason,
-DbEnv::memp_register should always be called by each application sharing
-a pool for each type of file included in the pool, regardless of whether
-or not the application itself uses files of that type.
-<p>There are no standard values for <b>ftype</b>, <b>pgin_fcn</b>,
-<b>pgout_fcn</b> and <b>pgcookie</b>, except that the <b>ftype</b>
-value for a file must be a non-zero positive number, as negative numbers
-are reserved for internal use by the Berkeley DB library. For this reason,
-applications sharing a pool must coordinate their values amongst
-themselves.
-<p>The DbEnv::memp_register method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p>The DbEnv::memp_register method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbEnv::memp_register method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Classes</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>, <a href="../api_cxx/mempfile_class.html">DbMpoolFile</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_set_mp_mmapsize.html">DbEnv::set_mp_mmapsize</a>,
-<a href="../api_cxx/memp_fclose.html">DbMpoolFile::close</a>,
-<a href="../api_cxx/memp_fget.html">DbMpoolFile::get</a>,
-<a href="../api_cxx/memp_fopen.html">DbMpoolFile::open</a>,
-<a href="../api_cxx/memp_fput.html">DbMpoolFile::put</a>,
-<a href="../api_cxx/memp_fset.html">DbMpoolFile::set</a>,
-<a href="../api_cxx/memp_fsync.html">DbMpoolFile::sync</a>,
-<a href="../api_cxx/memp_register.html">DbEnv::memp_register</a>,
-<a href="../api_cxx/memp_stat.html">DbEnv::memp_stat</a>,
-<a href="../api_cxx/memp_sync.html">DbEnv::memp_sync</a>
-and
-<a href="../api_cxx/memp_trickle.html">DbEnv::memp_trickle</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/memp_stat.html b/bdb/docs/api_cxx/memp_stat.html
deleted file mode 100644
index 1c7f16a2a98..00000000000
--- a/bdb/docs/api_cxx/memp_stat.html
+++ /dev/null
@@ -1,125 +0,0 @@
-<!--$Id: memp_stat.so,v 10.28 2000/05/25 13:47:08 dda Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::memp_stat</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::memp_stat</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-extern "C" {
- typedef void *(*db_malloc_fcn_type)(size_t);
-};
-int
-DbEnv::memp_stat(DB_MPOOL_STAT **gsp,
- DB_MPOOL_FSTAT *(*fsp)[], db_malloc_fcn_type db_malloc);
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv::memp_stat method method creates statistical structures and copies
-pointers to them into user-specified memory locations. The statistics
-include the number of files participating in the pool, the active pages
-in the pool, and information as to how effective the cache has been.
-<p>Statistical structures are created in allocated memory. If <b>db_malloc</b> is non-NULL, it
-is called to allocate the memory, otherwise, the library function
-<b>malloc</b>(3) is used. The function <b>db_malloc</b> must match
-the calling conventions of the <b>malloc</b>(3) library routine.
-Regardless, the caller is responsible for deallocating the returned
-memory. To deallocate returned memory, free the returned memory
-reference, references inside the returned memory do not need to be
-individually freed.
-<p>If <b>gsp</b> is non-NULL, the global statistics for the memory pool
-<b>mp</b> are copied into the memory location it references. The
-global statistics are stored in a structure of type DB_MPOOL_STAT.
-<p>The following DB_MPOOL_STAT fields will be filled in:
-<p><dl compact>
-<dt>size_t st_gbytes;<dd>Gigabytes of cache (total cache size is st_gbytes + st_bytes)
-<dt>size_t st_bytes;<dd>Bytes of cache (total cache size is st_gbytes + st_bytes)
-<dt>u_int32_t st_ncache;<dd>Number of caches.
-<dt>u_int32_t st_regsize;<dd>Individual cache size.
-<dt>u_int32_t st_cache_hit;<dd>Requested pages found in the cache.
-<dt>u_int32_t st_cache_miss;<dd>Requested pages not found in the cache.
-<dt>u_int32_t st_map;<dd>Requested pages mapped into the process' address space (there is no
-available information as to whether or not this request caused disk I/O,
-although examining the application page fault rate may be helpful).
-<dt>u_int32_t st_page_create;<dd>Pages created in the cache.
-<dt>u_int32_t st_page_in;<dd>Pages read into the cache.
-<dt>u_int32_t st_page_out;<dd>Pages written from the cache to the backing file.
-<dt>u_int32_t st_ro_evict;<dd>Clean pages forced from the cache.
-<dt>u_int32_t st_rw_evict;<dd>Dirty pages forced from the cache.
-<dt>u_int32_t st_hash_buckets;<dd>Number of hash buckets in buffer hash table.
-<dt>u_int32_t st_hash_searches;<dd>Total number of buffer hash table lookups.
-<dt>u_int32_t st_hash_longest;<dd>The longest chain ever encountered in buffer hash table lookups.
-<dt>u_int32_t st_hash_examined;<dd>Total number of hash elements traversed during hash table lookups.
-<dt>u_int32_t st_page_clean;<dd>Clean pages currently in the cache.
-<dt>u_int32_t st_page_dirty;<dd>Dirty pages currently in the cache.
-<dt>u_int32_t st_page_trickle;<dd>Dirty pages written using the <a href="../api_cxx/memp_trickle.html">DbEnv::memp_trickle</a> interface.
-<dt>u_int32_t st_region_wait;<dd>The number of times that a thread of control was forced to wait before
-obtaining the region lock.
-<dt>u_int32_t st_region_nowait;<dd>The number of times that a thread of control was able to obtain
-the region lock without waiting.
-</dl>
-<p>If <b>fsp</b> is non-NULL, a pointer to a NULL-terminated variable
-length array of statistics for individual files, in the memory pool <b>mp</b>,
-is copied into the memory location it references. If no individual files
-currently exist in the memory pool, <b>fsp</b> will be set to NULL.
-<p>The per-file statistics are stored in structures of type DB_MPOOL_FSTAT.
-The following DB_MPOOL_FSTAT fields will be filled in for each file in
-the pool, i.e., each element of the array:
-<p><dl compact>
-<dt>char *file_name;<dd>The name of the file.
-<dt>size_t st_pagesize;<dd>Page size in bytes.
-<dt>u_int32_t st_cache_hit;<dd>Requested pages found in the cache.
-<dt>u_int32_t st_cache_miss;<dd>Requested pages not found in the cache.
-<dt>u_int32_t st_map;<dd>Requested pages mapped into the process' address space.
-<dt>u_int32_t st_page_create;<dd>Pages created in the cache.
-<dt>u_int32_t st_page_in;<dd>Pages read into the cache.
-<dt>u_int32_t st_page_out;<dd>Pages written from the cache to the backing file.
-</dl>
-<p>The DbEnv::memp_stat method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p>The DbEnv::memp_stat method may fail and throw an exception or return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<p>The DbEnv::memp_stat method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbEnv::memp_stat method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Classes</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>, <a href="../api_cxx/mempfile_class.html">DbMpoolFile</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_set_mp_mmapsize.html">DbEnv::set_mp_mmapsize</a>,
-<a href="../api_cxx/memp_fclose.html">DbMpoolFile::close</a>,
-<a href="../api_cxx/memp_fget.html">DbMpoolFile::get</a>,
-<a href="../api_cxx/memp_fopen.html">DbMpoolFile::open</a>,
-<a href="../api_cxx/memp_fput.html">DbMpoolFile::put</a>,
-<a href="../api_cxx/memp_fset.html">DbMpoolFile::set</a>,
-<a href="../api_cxx/memp_fsync.html">DbMpoolFile::sync</a>,
-<a href="../api_cxx/memp_register.html">DbEnv::memp_register</a>,
-<a href="../api_cxx/memp_stat.html">DbEnv::memp_stat</a>,
-<a href="../api_cxx/memp_sync.html">DbEnv::memp_sync</a>
-and
-<a href="../api_cxx/memp_trickle.html">DbEnv::memp_trickle</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/memp_sync.html b/bdb/docs/api_cxx/memp_sync.html
deleted file mode 100644
index fe63f1dffc4..00000000000
--- a/bdb/docs/api_cxx/memp_sync.html
+++ /dev/null
@@ -1,87 +0,0 @@
-<!--$Id: memp_sync.so,v 10.25 2000/09/08 15:20:28 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::memp_sync</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::memp_sync</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbEnv::memp_sync(DbLsn *lsn);
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv::memp_sync method ensures that any modified pages in the pool with
-log sequence numbers less than the <b>lsn</b> argument are written to
-disk. If <b>lsn</b> is NULL all modified pages in the pool are
-flushed.
-<p>The primary purpose of the DbEnv::memp_sync function is to enable a
-transaction manager to ensure, as part of a checkpoint, that all pages
-modified by a certain time have been written to disk. Pages in the pool
-that cannot be written back to disk immediately (e.g., that are currently
-pinned) are written to disk as soon as it is possible to do so. The
-expected behavior of the Berkeley DB or other transaction subsystem is to call
-the DbEnv::memp_sync function and then, if the return indicates that some
-pages could not be written immediately, to wait briefly and retry again
-with the same log sequence number until the DbEnv::memp_sync function
-returns that all pages have been written.
-<p>To support the DbEnv::memp_sync functionality, it is necessary that the
-pool functions know the location of the log sequence number on the page
-for each file type. This location should be specified when the file is
-opened using the <a href="../api_cxx/memp_fopen.html">DbMpoolFile::open</a> function. It is not required that
-the log sequence number be aligned on the page in any way.
-<p>The DbEnv::memp_sync method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, 0 on success, and returns <a href="../api_c/memp_fsync.html#DB_INCOMPLETE">DB_INCOMPLETE</a> if there were pages which need to be
-written but which DbEnv::memp_sync was unable to write immediately.
-In addition, if DbEnv::memp_sync returns success, the value of
-<b>lsn</b> will be overwritten with the largest log sequence number
-from any page which was written by DbEnv::memp_sync to satisfy this
-request.
-<h1>Errors</h1>
-<p>The DbEnv::memp_sync method may fail and throw an exception or return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>The DbEnv::memp_sync function was called without logging having been
-initialized in the environment.
-</dl>
-<p>The DbEnv::memp_sync method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbEnv::memp_sync method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Classes</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>, <a href="../api_cxx/mempfile_class.html">DbMpoolFile</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_set_mp_mmapsize.html">DbEnv::set_mp_mmapsize</a>,
-<a href="../api_cxx/memp_fclose.html">DbMpoolFile::close</a>,
-<a href="../api_cxx/memp_fget.html">DbMpoolFile::get</a>,
-<a href="../api_cxx/memp_fopen.html">DbMpoolFile::open</a>,
-<a href="../api_cxx/memp_fput.html">DbMpoolFile::put</a>,
-<a href="../api_cxx/memp_fset.html">DbMpoolFile::set</a>,
-<a href="../api_cxx/memp_fsync.html">DbMpoolFile::sync</a>,
-<a href="../api_cxx/memp_register.html">DbEnv::memp_register</a>,
-<a href="../api_cxx/memp_stat.html">DbEnv::memp_stat</a>,
-<a href="../api_cxx/memp_sync.html">DbEnv::memp_sync</a>
-and
-<a href="../api_cxx/memp_trickle.html">DbEnv::memp_trickle</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/memp_trickle.html b/bdb/docs/api_cxx/memp_trickle.html
deleted file mode 100644
index 185bc5481a4..00000000000
--- a/bdb/docs/api_cxx/memp_trickle.html
+++ /dev/null
@@ -1,70 +0,0 @@
-<!--$Id: memp_trickle.so,v 10.21 2000/03/01 21:41:30 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::memp_trickle</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::memp_trickle</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbEnv::memp_trickle(int pct, int *nwrotep);
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv::memp_trickle method ensures that at least <b>pct</b> percent of
-the pages in the shared memory pool are clean by writing dirty pages to
-their backing files.
-If the <b>nwrotep</b> argument is non-NULL, the number of pages that
-were written to reach the correct percentage is returned in the memory
-location it references.
-<p>The purpose of the DbEnv::memp_trickle function is to enable a memory
-pool manager to ensure that a page is always available for reading in new
-information without having to wait for a write.
-<p>The DbEnv::memp_trickle method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p>The DbEnv::memp_trickle method may fail and throw an exception or return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<p>The DbEnv::memp_trickle method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbEnv::memp_trickle method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Classes</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>, <a href="../api_cxx/mempfile_class.html">DbMpoolFile</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_set_mp_mmapsize.html">DbEnv::set_mp_mmapsize</a>,
-<a href="../api_cxx/memp_fclose.html">DbMpoolFile::close</a>,
-<a href="../api_cxx/memp_fget.html">DbMpoolFile::get</a>,
-<a href="../api_cxx/memp_fopen.html">DbMpoolFile::open</a>,
-<a href="../api_cxx/memp_fput.html">DbMpoolFile::put</a>,
-<a href="../api_cxx/memp_fset.html">DbMpoolFile::set</a>,
-<a href="../api_cxx/memp_fsync.html">DbMpoolFile::sync</a>,
-<a href="../api_cxx/memp_register.html">DbEnv::memp_register</a>,
-<a href="../api_cxx/memp_stat.html">DbEnv::memp_stat</a>,
-<a href="../api_cxx/memp_sync.html">DbEnv::memp_sync</a>
-and
-<a href="../api_cxx/memp_trickle.html">DbEnv::memp_trickle</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/mempfile_class.html b/bdb/docs/api_cxx/mempfile_class.html
deleted file mode 100644
index ce10974d14d..00000000000
--- a/bdb/docs/api_cxx/mempfile_class.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!--$Id: mempfile_class.so,v 10.10 1999/12/20 08:52:33 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbMpoolFile</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbMpoolFile</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-class DbMpoolFile { ... };
-</pre></h3>
-<h1>Description</h1>
-<p>This manual page describes the specific details of the DbMpoolFile
-class.
-<p>The <a href="../api_cxx/dbenv_class.html">DbEnv</a> memory pool methods and the DbMpoolFile class
-are the library interface that provide general-purpose, page-oriented
-buffer management of one or more files. While designed to work with the
-other Db classes, they are also useful for more general purposes.
-The memory pools are referred to in this document as simply <i>pools</i>.
-<p>Pools may be shared between processes. Pools are usually filled by pages
-from one or more files. Pages in the pool are replaced in LRU
-(least-recently-used) order, with each new page replacing the page that
-has been unused the longest. Pages retrieved from the pool using
-<a href="../api_cxx/memp_fget.html">DbMpoolFile::get</a> are <i>pinned</i> in the pool until they are
-returned to the control of the buffer pool using the <a href="../api_cxx/memp_fput.html">DbMpoolFile::put</a>
-method.
-<h3>Classes</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>, <a href="../api_cxx/mempfile_class.html">DbMpoolFile</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_set_mp_mmapsize.html">DbEnv::set_mp_mmapsize</a>,
-<a href="../api_cxx/memp_fclose.html">DbMpoolFile::close</a>,
-<a href="../api_cxx/memp_fget.html">DbMpoolFile::get</a>,
-<a href="../api_cxx/memp_fopen.html">DbMpoolFile::open</a>,
-<a href="../api_cxx/memp_fput.html">DbMpoolFile::put</a>,
-<a href="../api_cxx/memp_fset.html">DbMpoolFile::set</a>,
-<a href="../api_cxx/memp_fsync.html">DbMpoolFile::sync</a>,
-<a href="../api_cxx/memp_register.html">DbEnv::memp_register</a>,
-<a href="../api_cxx/memp_stat.html">DbEnv::memp_stat</a>,
-<a href="../api_cxx/memp_sync.html">DbEnv::memp_sync</a>
-and
-<a href="../api_cxx/memp_trickle.html">DbEnv::memp_trickle</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/pindex.src b/bdb/docs/api_cxx/pindex.src
deleted file mode 100644
index cf4a58836d0..00000000000
--- a/bdb/docs/api_cxx/pindex.src
+++ /dev/null
@@ -1,287 +0,0 @@
-__APIREL__/api_cxx/db_class.html#2 @Db
-__APIREL__/api_cxx/db_class.html#DB_CXX_NO_EXCEPTIONS Db@DB_CXX_NO_EXCEPTIONS
-__APIREL__/api_cxx/db_class.html#DB_XA_CREATE Db@DB_XA_CREATE
-__APIREL__/api_cxx/db_err.html#2 @DbEnv::err
-__APIREL__/api_cxx/db_set_errfile.html#2 @Db::set_errfile
-__APIREL__/api_cxx/db_set_malloc.html#2 @Db::set_malloc
-__APIREL__/api_cxx/db_set_paniccall.html#2 @Db::set_paniccall
-__APIREL__/api_cxx/db_set_realloc.html#2 @Db::set_realloc
-__APIREL__/api_cxx/dbc_class.html#2 @Dbc
-__APIREL__/api_cxx/dbenv_class.html#2 @DbEnv
-__APIREL__/api_cxx/dbenv_class.html#DB_CLIENT DbEnv@DB_CLIENT
-__APIREL__/api_cxx/dbenv_class.html#DB_CXX_NO_EXCEPTIONS DbEnv@DB_CXX_NO_EXCEPTIONS
-__APIREL__/api_cxx/dbt_class.html#2 @Dbt
-__APIREL__/api_cxx/dbt_class.html#3 @key/data pairs
-__APIREL__/api_cxx/dbt_class.html#data Dbt@data
-__APIREL__/api_cxx/dbt_class.html#DB_DBT_MALLOC Dbt@DB_DBT_MALLOC
-__APIREL__/api_cxx/dbt_class.html#DB_DBT_REALLOC Dbt@DB_DBT_REALLOC
-__APIREL__/api_cxx/dbt_class.html#DB_DBT_USERMEM Dbt@DB_DBT_USERMEM
-__APIREL__/api_cxx/dbt_class.html#DB_DBT_PARTIAL Dbt@DB_DBT_PARTIAL
-__APIREL__/api_cxx/dbt_class.html#4 retrieved key/data @permanence
-__APIREL__/api_cxx/dbt_class.html#5 retrieved @key/data permanence
-__APIREL__/api_cxx/dbt_class.html#6 data @alignment
-__APIREL__/api_cxx/dbt_class.html#7 logical @record number format
-__APIREL__/api_cxx/env_set_errfile.html#2 @DbEnv::set_errfile
-__APIREL__/api_cxx/env_set_error_stream.html#2 @DbEnv::set_error_stream
-__APIREL__/api_cxx/env_set_paniccall.html#2 @DbEnv::set_paniccall
-__APIREL__/api_cxx/except_class.html#2 @DbException
-__APIREL__/api_cxx/get_errno.html#2 @DbException::get_errno
-__APIREL__/api_cxx/lock_class.html#2 @DbLock
-__APIREL__/api_cxx/lsn_class.html#2 @DbLsn
-__APIREL__/api_cxx/mempfile_class.html#2 @DbMpoolFile
-__APIREL__/api_cxx/txn_class.html#2 @DbTxn
-__APIREL__/api_cxx/what.html#2 @DbException::what
-__APIREL__/api_cxx/db_close.html#2 @Db::close
-__APIREL__/api_cxx/db_close.html#DB_NOSYNC Db::close@DB_NOSYNC
-__APIREL__/api_cxx/db_close.html#3 Db::close @DB_INCOMPLETE
-__APIREL__/api_cxx/db_cursor.html#2 @Db::cursor
-__APIREL__/api_cxx/db_cursor.html#DB_WRITECURSOR Db::cursor@DB_WRITECURSOR
-__APIREL__/api_cxx/db_del.html#2 @Db::del
-__APIREL__/api_cxx/db_fd.html#2 @Db::fd
-__APIREL__/api_cxx/db_get.html#2 @Db::get
-__APIREL__/api_cxx/db_get.html#DB_CONSUME Db::get@DB_CONSUME
-__APIREL__/api_cxx/db_get.html#DB_CONSUME_WAIT Db::get@DB_CONSUME_WAIT
-__APIREL__/api_cxx/db_get.html#DB_GET_BOTH Db::get@DB_GET_BOTH
-__APIREL__/api_cxx/db_get.html#DB_SET_RECNO Db::get@DB_SET_RECNO
-__APIREL__/api_cxx/db_get.html#DB_RMW Db::get@DB_RMW
-__APIREL__/api_cxx/db_get_byteswapped.html#2 @Db::get_byteswapped
-__APIREL__/api_cxx/db_get_type.html#2 @Db::get_type
-__APIREL__/api_cxx/db_join.html#2 @Db::join
-__APIREL__/api_cxx/db_join.html#DB_JOIN_NOSORT Db::join@DB_JOIN_NOSORT
-__APIREL__/api_cxx/db_join.html#DB_JOIN_ITEM Db::join@DB_JOIN_ITEM
-__APIREL__/api_cxx/db_join.html#DB_RMW Db::join@DB_RMW
-__APIREL__/api_cxx/db_key_range.html#2 @Db::key_range
-__APIREL__/api_cxx/db_open.html#2 @Db::open
-__APIREL__/api_cxx/db_open.html#DB_CREATE Db::open@DB_CREATE
-__APIREL__/api_cxx/db_open.html#DB_EXCL Db::open@DB_EXCL
-__APIREL__/api_cxx/db_open.html#DB_NOMMAP Db::open@DB_NOMMAP
-__APIREL__/api_cxx/db_open.html#DB_RDONLY Db::open@DB_RDONLY
-__APIREL__/api_cxx/db_open.html#DB_THREAD Db::open@DB_THREAD
-__APIREL__/api_cxx/db_open.html#DB_TRUNCATE Db::open@DB_TRUNCATE
-__APIREL__/api_cxx/db_open.html#DB_OLD_VERSION Db::open@DB_OLD_VERSION
-__APIREL__/api_cxx/db_put.html#2 @Db::put
-__APIREL__/api_cxx/db_put.html#DB_APPEND Db::put@DB_APPEND
-__APIREL__/api_cxx/db_put.html#DB_NODUPDATA Db::put@DB_NODUPDATA
-__APIREL__/api_cxx/db_put.html#DB_NOOVERWRITE Db::put@DB_NOOVERWRITE
-__APIREL__/api_cxx/db_remove.html#2 @Db::remove
-__APIREL__/api_cxx/db_rename.html#2 @Db::rename
-__APIREL__/api_cxx/db_set_append_recno.html#2 @Db::set_append_recno
-__APIREL__/api_cxx/db_set_bt_compare.html#2 @Db::set_bt_compare
-__APIREL__/api_cxx/db_set_bt_minkey.html#2 @Db::set_bt_minkey
-__APIREL__/api_cxx/db_set_bt_prefix.html#2 @Db::set_bt_prefix
-__APIREL__/api_cxx/db_set_cachesize.html#2 @Db::set_cachesize
-__APIREL__/api_cxx/db_set_dup_compare.html#2 @Db::set_dup_compare
-__APIREL__/api_cxx/db_set_errcall.html#2 @Db::set_errcall
-__APIREL__/api_cxx/db_set_errpfx.html#2 @Db::set_errpfx
-__APIREL__/api_cxx/db_set_feedback.html#2 @Db::set_feedback
-__APIREL__/api_cxx/db_set_feedback.html#DB_UPGRADE Db::set_feedback@DB_UPGRADE
-__APIREL__/api_cxx/db_set_feedback.html#DB_VERIFY Db::set_feedback@DB_VERIFY
-__APIREL__/api_cxx/db_set_flags.html#2 @Db::set_flags
-__APIREL__/api_cxx/db_set_flags.html#DB_DUP Db::set_flags@DB_DUP
-__APIREL__/api_cxx/db_set_flags.html#DB_DUPSORT Db::set_flags@DB_DUPSORT
-__APIREL__/api_cxx/db_set_flags.html#DB_RECNUM Db::set_flags@DB_RECNUM
-__APIREL__/api_cxx/db_set_flags.html#DB_REVSPLITOFF Db::set_flags@DB_REVSPLITOFF
-__APIREL__/api_cxx/db_set_flags.html#DB_DUP Db::set_flags@DB_DUP
-__APIREL__/api_cxx/db_set_flags.html#DB_DUPSORT Db::set_flags@DB_DUPSORT
-__APIREL__/api_cxx/db_set_flags.html#DB_RENUMBER Db::set_flags@DB_RENUMBER
-__APIREL__/api_cxx/db_set_flags.html#DB_SNAPSHOT Db::set_flags@DB_SNAPSHOT
-__APIREL__/api_cxx/db_set_h_ffactor.html#2 @Db::set_h_ffactor
-__APIREL__/api_cxx/db_set_h_hash.html#2 @Db::set_h_hash
-__APIREL__/api_cxx/db_set_h_nelem.html#2 @Db::set_h_nelem
-__APIREL__/api_cxx/db_set_lorder.html#2 @Db::set_lorder
-__APIREL__/api_cxx/db_set_pagesize.html#2 @Db::set_pagesize
-__APIREL__/api_cxx/db_set_q_extentsize.html#2 @Db::set_q_extentsize
-__APIREL__/api_cxx/db_set_re_delim.html#2 @Db::set_re_delim
-__APIREL__/api_cxx/db_set_re_len.html#2 @Db::set_re_len
-__APIREL__/api_cxx/db_set_re_pad.html#2 @Db::set_re_pad
-__APIREL__/api_cxx/db_set_re_source.html#2 @Db::set_re_source
-__APIREL__/api_cxx/db_stat.html#2 @Db::stat
-__APIREL__/api_cxx/db_stat.html#DB_CACHED_COUNTS Db::stat@DB_CACHED_COUNTS
-__APIREL__/api_cxx/db_stat.html#DB_RECORDCOUNT Db::stat@DB_RECORDCOUNT
-__APIREL__/api_cxx/db_sync.html#2 @Db::sync
-__APIREL__/api_cxx/db_upgrade.html#2 @Db::upgrade
-__APIREL__/api_cxx/db_upgrade.html#DB_DUPSORT Db::upgrade@DB_DUPSORT
-__APIREL__/api_cxx/db_upgrade.html#DB_OLD_VERSION Db::upgrade@DB_OLD_VERSION
-__APIREL__/api_cxx/db_verify.html#2 @Db::verify
-__APIREL__/api_cxx/db_verify.html#DB_SALVAGE Db::verify@DB_SALVAGE
-__APIREL__/api_cxx/db_verify.html#DB_AGGRESSIVE Db::verify@DB_AGGRESSIVE
-__APIREL__/api_cxx/db_verify.html#DB_NOORDERCHK Db::verify@DB_NOORDERCHK
-__APIREL__/api_cxx/db_verify.html#DB_ORDERCHKONLY Db::verify@DB_ORDERCHKONLY
-__APIREL__/api_cxx/dbc_close.html#2 @Dbc::close
-__APIREL__/api_cxx/dbc_count.html#2 @Dbc::count
-__APIREL__/api_cxx/dbc_del.html#2 @Dbc::del
-__APIREL__/api_cxx/dbc_dup.html#2 @Dbc::dup
-__APIREL__/api_cxx/dbc_dup.html#DB_POSITION Dbc::dup@DB_POSITION
-__APIREL__/api_cxx/dbc_get.html#2 @Dbc::get
-__APIREL__/api_cxx/dbc_get.html#DB_CURRENT Dbc::get@DB_CURRENT
-__APIREL__/api_cxx/dbc_get.html#DB_FIRST Dbc::get@DB_FIRST
-__APIREL__/api_cxx/dbc_get.html#DB_LAST Dbc::get@DB_LAST
-__APIREL__/api_cxx/dbc_get.html#DB_GET_BOTH Dbc::get@DB_GET_BOTH
-__APIREL__/api_cxx/dbc_get.html#DB_GET_RECNO Dbc::get@DB_GET_RECNO
-__APIREL__/api_cxx/dbc_get.html#DB_JOIN_ITEM Dbc::get@DB_JOIN_ITEM
-__APIREL__/api_cxx/dbc_get.html#DB_NEXT Dbc::get@DB_NEXT
-__APIREL__/api_cxx/dbc_get.html#DB_PREV Dbc::get@DB_PREV
-__APIREL__/api_cxx/dbc_get.html#DB_NEXT_DUP Dbc::get@DB_NEXT_DUP
-__APIREL__/api_cxx/dbc_get.html#DB_NEXT_NODUP Dbc::get@DB_NEXT_NODUP
-__APIREL__/api_cxx/dbc_get.html#DB_PREV_NODUP Dbc::get@DB_PREV_NODUP
-__APIREL__/api_cxx/dbc_get.html#DB_SET Dbc::get@DB_SET
-__APIREL__/api_cxx/dbc_get.html#DB_SET_RANGE Dbc::get@DB_SET_RANGE
-__APIREL__/api_cxx/dbc_get.html#DB_SET_RECNO Dbc::get@DB_SET_RECNO
-__APIREL__/api_cxx/dbc_get.html#DB_RMW Dbc::get@DB_RMW
-__APIREL__/api_cxx/dbc_put.html#2 @Dbc::put
-__APIREL__/api_cxx/dbc_put.html#DB_AFTER Dbc::put@DB_AFTER
-__APIREL__/api_cxx/dbc_put.html#DB_BEFORE Dbc::put@DB_BEFORE
-__APIREL__/api_cxx/dbc_put.html#DB_CURRENT Dbc::put@DB_CURRENT
-__APIREL__/api_cxx/dbc_put.html#DB_KEYFIRST Dbc::put@DB_KEYFIRST
-__APIREL__/api_cxx/dbc_put.html#DB_KEYLAST Dbc::put@DB_KEYLAST
-__APIREL__/api_cxx/dbc_put.html#DB_NODUPDATA Dbc::put@DB_NODUPDATA
-__APIREL__/api_cxx/env_close.html#2 @DbEnv::close
-__APIREL__/api_cxx/env_open.html#2 @DbEnv::open
-__APIREL__/api_cxx/env_open.html#DB_JOINENV DbEnv::open@DB_JOINENV
-__APIREL__/api_cxx/env_open.html#DB_INIT_CDB DbEnv::open@DB_INIT_CDB
-__APIREL__/api_cxx/env_open.html#DB_INIT_LOCK DbEnv::open@DB_INIT_LOCK
-__APIREL__/api_cxx/env_open.html#DB_INIT_LOG DbEnv::open@DB_INIT_LOG
-__APIREL__/api_cxx/env_open.html#DB_INIT_MPOOL DbEnv::open@DB_INIT_MPOOL
-__APIREL__/api_cxx/env_open.html#DB_INIT_TXN DbEnv::open@DB_INIT_TXN
-__APIREL__/api_cxx/env_open.html#DB_RECOVER DbEnv::open@DB_RECOVER
-__APIREL__/api_cxx/env_open.html#DB_RECOVER_FATAL DbEnv::open@DB_RECOVER_FATAL
-__APIREL__/api_cxx/env_open.html#DB_USE_ENVIRON DbEnv::open@DB_USE_ENVIRON
-__APIREL__/api_cxx/env_open.html#DB_USE_ENVIRON_ROOT DbEnv::open@DB_USE_ENVIRON_ROOT
-__APIREL__/api_cxx/env_open.html#DB_CREATE DbEnv::open@DB_CREATE
-__APIREL__/api_cxx/env_open.html#DB_LOCKDOWN DbEnv::open@DB_LOCKDOWN
-__APIREL__/api_cxx/env_open.html#DB_PRIVATE DbEnv::open@DB_PRIVATE
-__APIREL__/api_cxx/env_open.html#DB_SYSTEM_MEM DbEnv::open@DB_SYSTEM_MEM
-__APIREL__/api_cxx/env_open.html#DB_THREAD DbEnv::open@DB_THREAD
-__APIREL__/api_cxx/env_remove.html#2 @DbEnv::remove
-__APIREL__/api_cxx/env_remove.html#DB_FORCE DbEnv::remove@DB_FORCE
-__APIREL__/api_cxx/env_remove.html#DB_USE_ENVIRON DbEnv::remove@DB_USE_ENVIRON
-__APIREL__/api_cxx/env_remove.html#DB_USE_ENVIRON_ROOT DbEnv::remove@DB_USE_ENVIRON_ROOT
-__APIREL__/api_cxx/env_set_cachesize.html#2 @DbEnv::set_cachesize
-__APIREL__/api_cxx/env_set_data_dir.html#2 @DbEnv::set_data_dir
-__APIREL__/api_cxx/env_set_errcall.html#2 @DbEnv::set_errcall
-__APIREL__/api_cxx/env_set_errpfx.html#2 @DbEnv::set_errpfx
-__APIREL__/api_cxx/env_set_feedback.html#2 @DbEnv::set_feedback
-__APIREL__/api_cxx/env_set_feedback.html#DB_RECOVER DbEnv::set_feedback@DB_RECOVER
-__APIREL__/api_cxx/env_set_flags.html#2 @DbEnv::set_flags
-__APIREL__/api_cxx/env_set_flags.html#DB_CDB_ALLDB DbEnv::set_flags@DB_CDB_ALLDB
-__APIREL__/api_cxx/env_set_flags.html#DB_NOMMAP DbEnv::set_flags@DB_NOMMAP
-__APIREL__/api_cxx/env_set_flags.html#DB_TXN_NOSYNC DbEnv::set_flags@DB_TXN_NOSYNC
-__APIREL__/api_cxx/env_set_lg_bsize.html#2 @DbEnv::set_lg_bsize
-__APIREL__/api_cxx/env_set_lg_dir.html#2 @DbEnv::set_lg_dir
-__APIREL__/api_cxx/env_set_lg_max.html#2 @DbEnv::set_lg_max
-__APIREL__/api_cxx/env_set_lk_conflicts.html#2 @DbEnv::set_lk_conflicts
-__APIREL__/api_cxx/env_set_lk_detect.html#2 @DbEnv::set_lk_detect
-__APIREL__/api_cxx/env_set_lk_detect.html#DB_LOCK_DEFAULT DbEnv::set_lk_detect@DB_LOCK_DEFAULT
-__APIREL__/api_cxx/env_set_lk_detect.html#DB_LOCK_OLDEST DbEnv::set_lk_detect@DB_LOCK_OLDEST
-__APIREL__/api_cxx/env_set_lk_detect.html#DB_LOCK_RANDOM DbEnv::set_lk_detect@DB_LOCK_RANDOM
-__APIREL__/api_cxx/env_set_lk_detect.html#DB_LOCK_YOUNGEST DbEnv::set_lk_detect@DB_LOCK_YOUNGEST
-__APIREL__/api_cxx/env_set_lk_max.html#2 @DbEnv::set_lk_max
-__APIREL__/api_cxx/env_set_lk_max_locks.html#2 @DbEnv::set_lk_max_locks
-__APIREL__/api_cxx/env_set_lk_max_lockers.html#2 @DbEnv::set_lk_max_lockers
-__APIREL__/api_cxx/env_set_lk_max_objects.html#2 @DbEnv::set_lk_max_objects
-__APIREL__/api_cxx/env_set_mp_mmapsize.html#2 @DbEnv::set_mp_mmapsize
-__APIREL__/api_cxx/env_set_mutexlocks.html#2 @DbEnv::set_mutexlocks
-__APIREL__/api_cxx/env_set_pageyield.html#2 @DbEnv::set_pageyield
-__APIREL__/api_cxx/env_set_panicstate.html#2 @DbEnv::set_panicstate
-__APIREL__/api_cxx/env_set_rec_init.html#2 @DbEnv::set_recovery_init
-__APIREL__/api_cxx/env_set_region_init.html#2 @DbEnv::set_region_init
-__APIREL__/api_cxx/env_set_server.html#2 @DbEnv::set_server
-__APIREL__/api_cxx/env_set_server.html#DB_NOSERVER DbEnv::set_server@DB_NOSERVER
-__APIREL__/api_cxx/env_set_server.html#DB_NOSERVER_ID DbEnv::set_server@DB_NOSERVER_ID
-__APIREL__/api_cxx/env_set_shm_key.html#2 @DbEnv::set_shm_key
-__APIREL__/api_cxx/env_set_tas_spins.html#2 @DbEnv::set_tas_spins
-__APIREL__/api_cxx/env_set_tmp_dir.html#2 @DbEnv::set_tmp_dir
-__APIREL__/api_cxx/env_set_tx_max.html#2 @DbEnv::set_tx_max
-__APIREL__/api_cxx/env_set_tx_recover.html#2 @DbEnv::set_tx_recover
-__APIREL__/api_cxx/env_set_tx_recover.html#DB_TXN_BACKWARD_ROLL DbEnv::set_tx_recover@DB_TXN_BACKWARD_ROLL
-__APIREL__/api_cxx/env_set_tx_recover.html#DB_TXN_FORWARD_ROLL DbEnv::set_tx_recover@DB_TXN_FORWARD_ROLL
-__APIREL__/api_cxx/env_set_tx_recover.html#DB_TXN_ABORT DbEnv::set_tx_recover@DB_TXN_ABORT
-__APIREL__/api_cxx/env_set_tx_timestamp.html#2 @DbEnv::set_tx_timestamp
-__APIREL__/api_cxx/env_set_verbose.html#2 @DbEnv::set_verbose
-__APIREL__/api_cxx/env_set_verbose.html#DB_VERB_CHKPOINT DbEnv::set_verbose@DB_VERB_CHKPOINT
-__APIREL__/api_cxx/env_set_verbose.html#DB_VERB_DEADLOCK DbEnv::set_verbose@DB_VERB_DEADLOCK
-__APIREL__/api_cxx/env_set_verbose.html#DB_VERB_RECOVERY DbEnv::set_verbose@DB_VERB_RECOVERY
-__APIREL__/api_cxx/env_set_verbose.html#DB_VERB_WAITSFOR DbEnv::set_verbose@DB_VERB_WAITSFOR
-__APIREL__/api_cxx/env_strerror.html#2 @DbEnv::strerror
-__APIREL__/api_cxx/env_version.html#2 @DbEnv::version
-__APIREL__/api_cxx/lock_detect.html#2 @DbEnv::lock_detect
-__APIREL__/api_cxx/lock_detect.html#DB_LOCK_CONFLICT DbEnv::lock_detect@DB_LOCK_CONFLICT
-__APIREL__/api_cxx/lock_get.html#2 @DbEnv::lock_get
-__APIREL__/api_cxx/lock_get.html#DB_LOCK_NOWAIT DbEnv::lock_get@DB_LOCK_NOWAIT
-__APIREL__/api_cxx/lock_get.html#DB_LOCK_NOTGRANTED DbEnv::lock_get@DB_LOCK_NOTGRANTED
-__APIREL__/api_cxx/lock_id.html#2 @DbEnv::lock_id
-__APIREL__/api_cxx/lock_put.html#2 @DbLock::put
-__APIREL__/api_cxx/lock_stat.html#2 @DbEnv::lock_stat
-__APIREL__/api_cxx/lock_vec.html#2 @DbEnv::lock_vec
-__APIREL__/api_cxx/lock_vec.html#DB_LOCK_NOWAIT DbEnv::lock_vec@DB_LOCK_NOWAIT
-__APIREL__/api_cxx/lock_vec.html#op DbEnv::lock_vec@op
-__APIREL__/api_cxx/lock_vec.html#DB_LOCK_GET DbEnv::lock_vec@DB_LOCK_GET
-__APIREL__/api_cxx/lock_vec.html#DB_LOCK_PUT DbEnv::lock_vec@DB_LOCK_PUT
-__APIREL__/api_cxx/lock_vec.html#DB_LOCK_PUT_ALL DbEnv::lock_vec@DB_LOCK_PUT_ALL
-__APIREL__/api_cxx/lock_vec.html#DB_LOCK_PUT_OBJ DbEnv::lock_vec@DB_LOCK_PUT_OBJ
-__APIREL__/api_cxx/lock_vec.html#obj DbEnv::lock_vec@obj
-__APIREL__/api_cxx/lock_vec.html#mode DbEnv::lock_vec@mode
-__APIREL__/api_cxx/lock_vec.html#lock DbEnv::lock_vec@lock
-__APIREL__/api_cxx/lock_vec.html#DB_LOCK_NOTGRANTED DbEnv::lock_vec@DB_LOCK_NOTGRANTED
-__APIREL__/api_cxx/log_archive.html#2 @DbEnv::log_archive
-__APIREL__/api_cxx/log_archive.html#DB_ARCH_ABS DbEnv::log_archive@DB_ARCH_ABS
-__APIREL__/api_cxx/log_archive.html#DB_ARCH_DATA DbEnv::log_archive@DB_ARCH_DATA
-__APIREL__/api_cxx/log_archive.html#DB_ARCH_LOG DbEnv::log_archive@DB_ARCH_LOG
-__APIREL__/api_cxx/log_compare.html#2 @DbEnv::log_compare
-__APIREL__/api_cxx/log_file.html#2 @DbEnv::log_file
-__APIREL__/api_cxx/log_flush.html#2 @DbEnv::log_flush
-__APIREL__/api_cxx/log_get.html#2 @DbEnv::log_get
-__APIREL__/api_cxx/log_get.html#DB_CHECKPOINT DbEnv::log_get@DB_CHECKPOINT
-__APIREL__/api_cxx/log_get.html#DB_FIRST DbEnv::log_get@DB_FIRST
-__APIREL__/api_cxx/log_get.html#DB_LAST DbEnv::log_get@DB_LAST
-__APIREL__/api_cxx/log_get.html#DB_NEXT DbEnv::log_get@DB_NEXT
-__APIREL__/api_cxx/log_get.html#DB_PREV DbEnv::log_get@DB_PREV
-__APIREL__/api_cxx/log_get.html#DB_CURRENT DbEnv::log_get@DB_CURRENT
-__APIREL__/api_cxx/log_get.html#DB_SET DbEnv::log_get@DB_SET
-__APIREL__/api_cxx/log_put.html#2 @DbEnv::log_put
-__APIREL__/api_cxx/log_put.html#DB_CHECKPOINT DbEnv::log_put@DB_CHECKPOINT
-__APIREL__/api_cxx/log_put.html#DB_CURLSN DbEnv::log_put@DB_CURLSN
-__APIREL__/api_cxx/log_put.html#DB_FLUSH DbEnv::log_put@DB_FLUSH
-__APIREL__/api_cxx/log_register.html#2 @DbEnv::log_register
-__APIREL__/api_cxx/log_stat.html#2 @DbEnv::log_stat
-__APIREL__/api_cxx/log_unregister.html#2 @DbEnv::log_unregister
-__APIREL__/api_cxx/memp_fclose.html#2 @DbMpoolFile::close
-__APIREL__/api_cxx/memp_fget.html#2 @DbMpoolFile::get
-__APIREL__/api_cxx/memp_fget.html#DB_MPOOL_CREATE DbMpoolFile::get@DB_MPOOL_CREATE
-__APIREL__/api_cxx/memp_fget.html#DB_MPOOL_LAST DbMpoolFile::get@DB_MPOOL_LAST
-__APIREL__/api_cxx/memp_fget.html#DB_MPOOL_NEW DbMpoolFile::get@DB_MPOOL_NEW
-__APIREL__/api_cxx/memp_fopen.html#2 @DbMpoolFile::open
-__APIREL__/api_cxx/memp_fopen.html#DB_CREATE DbMpoolFile::open@DB_CREATE
-__APIREL__/api_cxx/memp_fopen.html#DB_NOMMAP DbMpoolFile::open@DB_NOMMAP
-__APIREL__/api_cxx/memp_fopen.html#DB_RDONLY DbMpoolFile::open@DB_RDONLY
-__APIREL__/api_cxx/memp_fopen.html#ftype DbMpoolFile::open@ftype
-__APIREL__/api_cxx/memp_fopen.html#pgcookie DbMpoolFile::open@pgcookie
-__APIREL__/api_cxx/memp_fopen.html#fileid DbMpoolFile::open@fileid
-__APIREL__/api_cxx/memp_fopen.html#lsn_offset DbMpoolFile::open@lsn_offset
-__APIREL__/api_cxx/memp_fopen.html#clear_len DbMpoolFile::open@clear_len
-__APIREL__/api_cxx/memp_fput.html#2 @DbMpoolFile::put
-__APIREL__/api_cxx/memp_fput.html#DB_MPOOL_CLEAN DbMpoolFile::put@DB_MPOOL_CLEAN
-__APIREL__/api_cxx/memp_fput.html#DB_MPOOL_DIRTY DbMpoolFile::put@DB_MPOOL_DIRTY
-__APIREL__/api_cxx/memp_fput.html#DB_MPOOL_DISCARD DbMpoolFile::put@DB_MPOOL_DISCARD
-__APIREL__/api_cxx/memp_fset.html#2 @DbMpoolFile::set
-__APIREL__/api_cxx/memp_fset.html#DB_MPOOL_CLEAN DbMpoolFile::set@DB_MPOOL_CLEAN
-__APIREL__/api_cxx/memp_fset.html#DB_MPOOL_DIRTY DbMpoolFile::set@DB_MPOOL_DIRTY
-__APIREL__/api_cxx/memp_fset.html#DB_MPOOL_DISCARD DbMpoolFile::set@DB_MPOOL_DISCARD
-__APIREL__/api_cxx/memp_fsync.html#2 @DbMpoolFile::sync
-__APIREL__/api_cxx/memp_register.html#2 @DbEnv::memp_register
-__APIREL__/api_cxx/memp_stat.html#2 @DbEnv::memp_stat
-__APIREL__/api_cxx/memp_sync.html#2 @DbEnv::memp_sync
-__APIREL__/api_cxx/memp_trickle.html#2 @DbEnv::memp_trickle
-__APIREL__/api_cxx/txn_abort.html#2 @DbTxn::abort
-__APIREL__/api_cxx/txn_begin.html#2 @DbEnv::txn_begin
-__APIREL__/api_cxx/txn_begin.html#DB_TXN_NOSYNC DbEnv::txn_begin@DB_TXN_NOSYNC
-__APIREL__/api_cxx/txn_begin.html#DB_TXN_NOWAIT DbEnv::txn_begin@DB_TXN_NOWAIT
-__APIREL__/api_cxx/txn_begin.html#DB_TXN_SYNC DbEnv::txn_begin@DB_TXN_SYNC
-__APIREL__/api_cxx/txn_checkpoint.html#2 @DbEnv::txn_checkpoint
-__APIREL__/api_cxx/txn_checkpoint.html#DB_FORCE DbEnv::txn_checkpoint@DB_FORCE
-__APIREL__/api_cxx/txn_commit.html#2 @DbTxn::commit
-__APIREL__/api_cxx/txn_commit.html#DB_TXN_NOSYNC DbTxn::commit@DB_TXN_NOSYNC
-__APIREL__/api_cxx/txn_commit.html#DB_TXN_SYNC DbTxn::commit@DB_TXN_SYNC
-__APIREL__/api_cxx/txn_id.html#2 @DbTxn::id
-__APIREL__/api_cxx/txn_prepare.html#2 @DbTxn::prepare
-__APIREL__/api_cxx/txn_stat.html#2 @DbEnv::txn_stat
diff --git a/bdb/docs/api_cxx/txn_abort.html b/bdb/docs/api_cxx/txn_abort.html
deleted file mode 100644
index f9c863b3e87..00000000000
--- a/bdb/docs/api_cxx/txn_abort.html
+++ /dev/null
@@ -1,67 +0,0 @@
-<!--$Id: txn_abort.so,v 10.25 2000/12/31 19:26:21 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbTxn::abort</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbTxn::abort</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbTxn::abort();
-</pre></h3>
-<h1>Description</h1>
-<p>The DbTxn::abort method causes an abnormal termination of the
-transaction. The log is played backwards and any necessary recovery
-operations are initiated through the <b>recover</b> function specified
-to <a href="../api_cxx/env_open.html">DbEnv::open</a>. After the log processing is completed, all locks
-held by the transaction are released. As is the case for
-<a href="../api_cxx/txn_commit.html">DbTxn::commit</a>, applications that require strict two-phase locking
-should not explicitly release any locks.
-<p>In the case of nested transactions, aborting a parent transaction causes
-all children (unresolved or not) of the parent transaction to be aborted.
-<p>Once the DbTxn::abort method returns, the <a href="../api_cxx/txn_class.html">DbTxn</a> handle may not
-be accessed again.
-<p>The DbTxn::abort method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p>The DbTxn::abort method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbTxn::abort method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Classes</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>, <a href="../api_cxx/txn_class.html">DbTxn</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_set_tx_max.html">DbEnv::set_tx_max</a>,
-<a href="../api_cxx/env_set_tx_recover.html">DbEnv::set_tx_recover</a>,
-<a href="../api_cxx/env_set_tx_timestamp.html">DbEnv::set_tx_timestamp</a>,
-<a href="../api_cxx/txn_abort.html">DbTxn::abort</a>,
-<a href="../api_cxx/txn_begin.html">DbEnv::txn_begin</a>,
-<a href="../api_cxx/txn_checkpoint.html">DbEnv::txn_checkpoint</a>,
-<a href="../api_cxx/txn_commit.html">DbTxn::commit</a>,
-<a href="../api_cxx/txn_id.html">DbTxn::id</a>,
-<a href="../api_cxx/txn_prepare.html">DbTxn::prepare</a>
-and
-<a href="../api_cxx/txn_stat.html">DbEnv::txn_stat</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/txn_begin.html b/bdb/docs/api_cxx/txn_begin.html
deleted file mode 100644
index 4cacec56088..00000000000
--- a/bdb/docs/api_cxx/txn_begin.html
+++ /dev/null
@@ -1,96 +0,0 @@
-<!--$Id: txn_begin.so,v 10.37 2001/01/11 17:47:12 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::txn_begin</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::txn_begin</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbEnv::txn_begin(DbTxn *parent, DbTxn **tid, u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv::txn_begin method creates a new transaction in the environment
-and copies a pointer to a <a href="../api_cxx/txn_class.html">DbTxn</a> that uniquely identifies it into
-the memory referenced by <b>tid</b>.
-<p>If the <b>parent</b> argument is non-NULL, the new transaction will
-be a nested transaction, with the transaction indicated by
-<b>parent</b> as its parent. Transactions may be
-nested to any level.
-<p>The <b>flags</b> parameter must be set to 0 or one of the following
-values:
-<p><dl compact>
-<p><dt><a name="DB_TXN_NOSYNC">DB_TXN_NOSYNC</a><dd>Do not synchronously flush the log when this transaction commits or
-prepares. This means the transaction will exhibit the ACI (atomicity,
-consistency and isolation) properties, but not D (durability), i.e.,
-database integrity will be maintained but it is possible that this
-transaction may be undone during recovery instead of being redone.
-<p>This behavior may be set for an entire Berkeley DB environment as part of the
-<a href="../api_cxx/env_set_flags.html">DbEnv::set_flags</a> interface.
-<p><dt><a name="DB_TXN_NOWAIT">DB_TXN_NOWAIT</a><dd>If a lock is unavailable for any Berkeley DB operation performed in the context
-of this transaction, return immediately instead of blocking on the lock.
-The error return in the case will be <a href="../ref/program/errorret.html#DB_LOCK_NOTGRANTED">DB_LOCK_NOTGRANTED</a>.
-<p><dt><a name="DB_TXN_SYNC">DB_TXN_SYNC</a><dd>Synchronously flush the log when this transaction commits or prepares.
-This means the transaction will exhibit all of the ACID (atomicity,
-consistency and isolation and durability) properties.
-<p>This behavior is the default for Berkeley DB environments unless the
-<a href="../api_cxx/env_open.html#DB_TXN_NOSYNC">DB_TXN_NOSYNC</a> flag was specified to the <a href="../api_cxx/env_set_flags.html">DbEnv::set_flags</a>
-interface.
-</dl>
-<p><b>Note: An transaction may not span threads,
-i.e., each transaction must begin and end in the same thread, and each
-transaction may only be used by a single thread.</b>
-<p><b>Note: cursors may not span transactions, i.e., each cursor must be opened
-and closed within a single transaction.</b>
-<p><b>Note: a parent transaction may not issue any Berkeley DB operations, except for
-DbEnv::txn_begin, <a href="../api_cxx/txn_abort.html">DbTxn::abort</a> and <a href="../api_cxx/txn_commit.html">DbTxn::commit</a>, while it has
-active child transactions (child transactions that have not yet been
-committed or aborted).</b>
-<p>The DbEnv::txn_begin method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p>The DbEnv::txn_begin method may fail and throw an exception or return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>ENOMEM<dd>The maximum number of concurrent transactions has been reached.
-</dl>
-<p>The DbEnv::txn_begin method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbEnv::txn_begin method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Classes</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>, <a href="../api_cxx/txn_class.html">DbTxn</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_set_tx_max.html">DbEnv::set_tx_max</a>,
-<a href="../api_cxx/env_set_tx_recover.html">DbEnv::set_tx_recover</a>,
-<a href="../api_cxx/env_set_tx_timestamp.html">DbEnv::set_tx_timestamp</a>,
-<a href="../api_cxx/txn_abort.html">DbTxn::abort</a>,
-<a href="../api_cxx/txn_begin.html">DbEnv::txn_begin</a>,
-<a href="../api_cxx/txn_checkpoint.html">DbEnv::txn_checkpoint</a>,
-<a href="../api_cxx/txn_commit.html">DbTxn::commit</a>,
-<a href="../api_cxx/txn_id.html">DbTxn::id</a>,
-<a href="../api_cxx/txn_prepare.html">DbTxn::prepare</a>
-and
-<a href="../api_cxx/txn_stat.html">DbEnv::txn_stat</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/txn_checkpoint.html b/bdb/docs/api_cxx/txn_checkpoint.html
deleted file mode 100644
index 3bac70bccbc..00000000000
--- a/bdb/docs/api_cxx/txn_checkpoint.html
+++ /dev/null
@@ -1,75 +0,0 @@
-<!--$Id: txn_checkpoint.so,v 10.25 2000/09/08 15:20:28 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::txn_checkpoint</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::txn_checkpoint</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbEnv::txn_checkpoint(u_int32_t kbyte, u_int32_t min, u_int32_t flags) const;
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv::txn_checkpoint method flushes the underlying memory pool,
-writes a checkpoint record to the log and then flushes the log.
-<p>If either <b>kbyte</b> or <b>min</b> is non-zero, the checkpoint is only
-done if there has been activity since the last checkpoint and either
-more than <b>min</b> minutes have passed since the last checkpoint,
-or if more than <b>kbyte</b> kilobytes of log data have been written since
-the last checkpoint.
-<p>The <b>flags</b> parameter must be set to 0 or one of the following
-values:
-<p><dl compact>
-<p><dt><a name="DB_FORCE">DB_FORCE</a><dd>Force a checkpoint record even if there has been no activity since the
-last checkpoint.
-</dl>
-<p>The DbEnv::txn_checkpoint method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, 0 on success, and returns <a href="../api_c/memp_fsync.html#DB_INCOMPLETE">DB_INCOMPLETE</a> if there were pages that needed to be
-written to complete the checkpoint but that <a href="../api_cxx/memp_sync.html">DbEnv::memp_sync</a> was unable
-to write immediately.
-<h1>Errors</h1>
-<p>The DbEnv::txn_checkpoint method may fail and throw an exception or return a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<p>The DbEnv::txn_checkpoint method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbEnv::txn_checkpoint method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Classes</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>, <a href="../api_cxx/txn_class.html">DbTxn</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_set_tx_max.html">DbEnv::set_tx_max</a>,
-<a href="../api_cxx/env_set_tx_recover.html">DbEnv::set_tx_recover</a>,
-<a href="../api_cxx/env_set_tx_timestamp.html">DbEnv::set_tx_timestamp</a>,
-<a href="../api_cxx/txn_abort.html">DbTxn::abort</a>,
-<a href="../api_cxx/txn_begin.html">DbEnv::txn_begin</a>,
-<a href="../api_cxx/txn_checkpoint.html">DbEnv::txn_checkpoint</a>,
-<a href="../api_cxx/txn_commit.html">DbTxn::commit</a>,
-<a href="../api_cxx/txn_id.html">DbTxn::id</a>,
-<a href="../api_cxx/txn_prepare.html">DbTxn::prepare</a>
-and
-<a href="../api_cxx/txn_stat.html">DbEnv::txn_stat</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/txn_class.html b/bdb/docs/api_cxx/txn_class.html
deleted file mode 100644
index 7a335f92a1a..00000000000
--- a/bdb/docs/api_cxx/txn_class.html
+++ /dev/null
@@ -1,59 +0,0 @@
-<!--$Id: txn_class.so,v 10.13 2000/12/04 18:05:39 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbTxn</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbTxn</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-class DbTxn { ... };
-</pre></h3>
-<h1>Description</h1>
-<p>This manual page describes the specific details of the DbTxn class.
-<p>The <a href="../api_cxx/dbenv_class.html">DbEnv</a> transaction methods and the DbTxn class provide
-transaction semantics. Full transaction support is provided by a
-collection of modules that provide interfaces to the services required
-for transaction processing. These services are recovery, concurrency
-control and the management of shared data.
-<p>Transaction semantics can be applied to the access methods described in
-Db through method call parameters.
-<p>The model intended for transactional use (and the one that is used by
-the access methods) is write-ahead logging to record both before- and
-after-images. Locking follows a two-phase protocol, with all locks being
-released at transaction commit.
-<h3>Classes</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>, <a href="../api_cxx/txn_class.html">DbTxn</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_set_tx_max.html">DbEnv::set_tx_max</a>,
-<a href="../api_cxx/env_set_tx_recover.html">DbEnv::set_tx_recover</a>,
-<a href="../api_cxx/env_set_tx_timestamp.html">DbEnv::set_tx_timestamp</a>,
-<a href="../api_cxx/txn_abort.html">DbTxn::abort</a>,
-<a href="../api_cxx/txn_begin.html">DbEnv::txn_begin</a>,
-<a href="../api_cxx/txn_checkpoint.html">DbEnv::txn_checkpoint</a>,
-<a href="../api_cxx/txn_commit.html">DbTxn::commit</a>,
-<a href="../api_cxx/txn_id.html">DbTxn::id</a>,
-<a href="../api_cxx/txn_prepare.html">DbTxn::prepare</a>
-and
-<a href="../api_cxx/txn_stat.html">DbEnv::txn_stat</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/txn_commit.html b/bdb/docs/api_cxx/txn_commit.html
deleted file mode 100644
index 16e20c2535c..00000000000
--- a/bdb/docs/api_cxx/txn_commit.html
+++ /dev/null
@@ -1,87 +0,0 @@
-<!--$Id: txn_commit.so,v 10.27 2000/12/31 19:26:21 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbTxn::commit</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbTxn::commit</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbTxn::commit(u_int32_t flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The DbTxn::commit method ends the transaction. In the case of nested
-transactions, if the transaction is a parent transaction, committing
-the parent transaction causes all unresolved children of the parent to
-be committed.
-<p>In the case of nested transactions, if the transaction is a child
-transaction, its locks are not released, but are acquired by its parent.
-While the commit of the child transaction will succeed, the actual
-resolution of the child transaction is postponed until the parent
-transaction is committed or aborted, i.e., if its parent transaction
-commits, it will be committed, and if its parent transaction aborts, it
-will be aborted.
-<p>The <b>flags</b> parameter must be set to 0 or one of the following
-values:
-<p><dl compact>
-<p><dt><a name="DB_TXN_NOSYNC">DB_TXN_NOSYNC</a><dd>Do not synchronously flush the log. This means the transaction will
-exhibit the ACI (atomicity, consistency and isolation) properties, but
-not D (durability), i.e., database integrity will be maintained but it is
-possible that this transaction may be undone during recovery instead of
-being redone.
-<p>This behavior may be set for an entire Berkeley DB environment as part of the
-<a href="../api_cxx/env_set_flags.html">DbEnv::set_flags</a> interface.
-<p><dt><a name="DB_TXN_SYNC">DB_TXN_SYNC</a><dd>Synchronously flush the log. This means the transaction will exhibit
-all of the ACID (atomicity, consistency and isolation and durability)
-properties.
-<p>This behavior is the default for Berkeley DB environments unless the
-<a href="../api_cxx/env_open.html#DB_TXN_NOSYNC">DB_TXN_NOSYNC</a> flag was specified to the <a href="../api_cxx/env_set_flags.html">DbEnv::set_flags</a>
-or <a href="../api_cxx/txn_begin.html">DbEnv::txn_begin</a> interfaces.
-</dl>
-<p>Once the DbTxn::commit method returns, the <a href="../api_cxx/txn_class.html">DbTxn</a> handle may not
-be accessed again. If DbTxn::commit encounters an error, the
-transaction and all child transactions of the transaction are aborted.
-<p>The DbTxn::commit method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p>The DbTxn::commit method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbTxn::commit method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Classes</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>, <a href="../api_cxx/txn_class.html">DbTxn</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_set_tx_max.html">DbEnv::set_tx_max</a>,
-<a href="../api_cxx/env_set_tx_recover.html">DbEnv::set_tx_recover</a>,
-<a href="../api_cxx/env_set_tx_timestamp.html">DbEnv::set_tx_timestamp</a>,
-<a href="../api_cxx/txn_abort.html">DbTxn::abort</a>,
-<a href="../api_cxx/txn_begin.html">DbEnv::txn_begin</a>,
-<a href="../api_cxx/txn_checkpoint.html">DbEnv::txn_checkpoint</a>,
-<a href="../api_cxx/txn_commit.html">DbTxn::commit</a>,
-<a href="../api_cxx/txn_id.html">DbTxn::id</a>,
-<a href="../api_cxx/txn_prepare.html">DbTxn::prepare</a>
-and
-<a href="../api_cxx/txn_stat.html">DbEnv::txn_stat</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/txn_id.html b/bdb/docs/api_cxx/txn_id.html
deleted file mode 100644
index 9c14adf1c59..00000000000
--- a/bdb/docs/api_cxx/txn_id.html
+++ /dev/null
@@ -1,52 +0,0 @@
-<!--$Id: txn_id.so,v 10.12 1999/12/20 08:52:32 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbTxn::id</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbTxn::id</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-u_int32_t
-DbTxn::id();
-</pre></h3>
-<h1>Description</h1>
-<p>The DbTxn::id method returns the unique transaction id associated with the
-specified transaction. Locking calls made on behalf of this transaction
-should use the value returned from DbTxn::id as the locker parameter
-to the <a href="../api_cxx/lock_get.html">DbEnv::lock_get</a> or <a href="../api_cxx/lock_vec.html">DbEnv::lock_vec</a> calls.
-<h3>Classes</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>, <a href="../api_cxx/txn_class.html">DbTxn</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_set_tx_max.html">DbEnv::set_tx_max</a>,
-<a href="../api_cxx/env_set_tx_recover.html">DbEnv::set_tx_recover</a>,
-<a href="../api_cxx/env_set_tx_timestamp.html">DbEnv::set_tx_timestamp</a>,
-<a href="../api_cxx/txn_abort.html">DbTxn::abort</a>,
-<a href="../api_cxx/txn_begin.html">DbEnv::txn_begin</a>,
-<a href="../api_cxx/txn_checkpoint.html">DbEnv::txn_checkpoint</a>,
-<a href="../api_cxx/txn_commit.html">DbTxn::commit</a>,
-<a href="../api_cxx/txn_id.html">DbTxn::id</a>,
-<a href="../api_cxx/txn_prepare.html">DbTxn::prepare</a>
-and
-<a href="../api_cxx/txn_stat.html">DbEnv::txn_stat</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/txn_prepare.html b/bdb/docs/api_cxx/txn_prepare.html
deleted file mode 100644
index de7db8e7611..00000000000
--- a/bdb/docs/api_cxx/txn_prepare.html
+++ /dev/null
@@ -1,67 +0,0 @@
-<!--$Id: txn_prepare.so,v 10.17 2000/12/31 19:26:21 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbTxn::prepare</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbTxn::prepare</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-int
-DbTxn::prepare();
-</pre></h3>
-<h1>Description</h1>
-<p>The DbTxn::prepare method initiates the beginning of a two-phase commit.
-<p>In a distributed transaction environment, Berkeley DB can be used as a local
-transaction manager. In this case, the distributed transaction manager
-must send <i>prepare</i> messages to each local manager. The local
-manager must then issue a DbTxn::prepare and await its successful
-return before responding to the distributed transaction manager. Only
-after the distributed transaction manager receives successful responses
-from all of its <i>prepare</i> messages should it issue any
-<i>commit</i> messages.
-<p>In the case of nested transactions, preparing a parent transaction
-causes all unresolved children of the parent transaction to be prepared.
-<p>The DbTxn::prepare method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p>The DbTxn::prepare method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbTxn::prepare method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Classes</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>, <a href="../api_cxx/txn_class.html">DbTxn</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_set_tx_max.html">DbEnv::set_tx_max</a>,
-<a href="../api_cxx/env_set_tx_recover.html">DbEnv::set_tx_recover</a>,
-<a href="../api_cxx/env_set_tx_timestamp.html">DbEnv::set_tx_timestamp</a>,
-<a href="../api_cxx/txn_abort.html">DbTxn::abort</a>,
-<a href="../api_cxx/txn_begin.html">DbEnv::txn_begin</a>,
-<a href="../api_cxx/txn_checkpoint.html">DbEnv::txn_checkpoint</a>,
-<a href="../api_cxx/txn_commit.html">DbTxn::commit</a>,
-<a href="../api_cxx/txn_id.html">DbTxn::id</a>,
-<a href="../api_cxx/txn_prepare.html">DbTxn::prepare</a>
-and
-<a href="../api_cxx/txn_stat.html">DbEnv::txn_stat</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/txn_stat.html b/bdb/docs/api_cxx/txn_stat.html
deleted file mode 100644
index 9644a6ae889..00000000000
--- a/bdb/docs/api_cxx/txn_stat.html
+++ /dev/null
@@ -1,100 +0,0 @@
-<!--$Id: txn_stat.so,v 10.27 2000/05/25 13:47:08 dda Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv::txn_stat</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv::txn_stat</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-extern "C" {
- typedef void *(*db_malloc_fcn_type)(size_t);
-};
-int
-DbEnv::txn_stat(DB_TXN_STAT **statp, db_malloc_fcn_type db_malloc);
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv::txn_stat method
-creates a statistical structure and copies a pointer to it into a
-user-specified memory location.
-<p>Statistical structures are created in allocated memory. If <b>db_malloc</b> is non-NULL, it
-is called to allocate the memory, otherwise, the library function
-<b>malloc</b>(3) is used. The function <b>db_malloc</b> must match
-the calling conventions of the <b>malloc</b>(3) library routine.
-Regardless, the caller is responsible for deallocating the returned
-memory. To deallocate returned memory, free the returned memory
-reference, references inside the returned memory do not need to be
-individually freed.
-<p>The transaction region statistics are stored in a structure of type
-DB_TXN_STAT. The following DB_TXN_STAT fields will be filled in:
-<p><dl compact>
-<dt><a href="../api_cxx/lsn_class.html">DbLsn</a> st_last_ckp;<dd>The LSN of the last checkpoint.
-<dt><a href="../api_cxx/lsn_class.html">DbLsn</a> st_pending_ckp;<dd>The LSN of any checkpoint that is currently in progress. If
-<b>st_pending_ckp</b> is the same as <b>st_last_ckp</b> there
-is no checkpoint in progress.
-<dt>time_t st_time_ckp;<dd>The time the last completed checkpoint finished (as the number of seconds
-since the Epoch, returned by the IEEE/ANSI Std 1003.1 (POSIX) <b>time</b> interface).
-<dt>u_int32_t st_last_txnid;<dd>The last transaction ID allocated.
-<dt>u_int32_t st_maxtxns;<dd>The maximum number of active transactions possible.
-<dt>u_int32_t st_nactive;<dd>The number of transactions that are currently active.
-<dt>u_int32_t st_maxnactive;<dd>The maximum number of active transactions at any one time.
-<dt>u_int32_t st_nbegins;<dd>The number of transactions that have begun.
-<dt>u_int32_t st_naborts;<dd>The number of transactions that have aborted.
-<dt>u_int32_t st_ncommits;<dd>The number of transactions that have committed.
-<dt>u_int32_t st_regsize;<dd>The size of the region.
-<dt>u_int32_t st_region_wait;<dd>The number of times that a thread of control was forced to wait before
-obtaining the region lock.
-<dt>u_int32_t st_region_nowait;<dd>The number of times that a thread of control was able to obtain
-the region lock without waiting.
-<dt>DB_TXN_ACTIVE * st_txnarray;<dd>A pointer to an array of <b>st_nactive</b> DB_TXN_ACTIVE structures,
-describing the currently active transactions. The following fields of
-the DB_TXN_ACTIVE structure will be filled in:
-<p><dl compact>
-<p><dt>u_int32_t txnid;<dd>The transaction ID as returned by <a href="../api_cxx/txn_begin.html">DbEnv::txn_begin</a>.
-<dt>u_int32_t parentid;<dd>The transaction ID of the parent transaction (or 0, if no parent).
-<dt><a href="../api_cxx/lsn_class.html">DbLsn</a> lsn;<dd>The log sequence number of the transaction-begin record.
-</dl>
-</dl>
-<p>The DbEnv::txn_stat method either returns a non-zero error value or throws an exception that
-encapsulates a non-zero error value on failure, and returns 0 on success.
-<h1>Errors</h1>
-<p>The DbEnv::txn_stat method may fail and throw an exception or return a non-zero error for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbEnv::txn_stat method may fail and either
-return <a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a> or throw an exception encapsulating
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a>, in which case all subsequent Berkeley DB calls will fail
-in the same way.
-<h3>Classes</h3>
-<a href="../api_cxx/dbenv_class.html">DbEnv</a>, <a href="../api_cxx/txn_class.html">DbTxn</a>
-<h1>See Also</h1>
-<a href="../api_cxx/env_set_tx_max.html">DbEnv::set_tx_max</a>,
-<a href="../api_cxx/env_set_tx_recover.html">DbEnv::set_tx_recover</a>,
-<a href="../api_cxx/env_set_tx_timestamp.html">DbEnv::set_tx_timestamp</a>,
-<a href="../api_cxx/txn_abort.html">DbTxn::abort</a>,
-<a href="../api_cxx/txn_begin.html">DbEnv::txn_begin</a>,
-<a href="../api_cxx/txn_checkpoint.html">DbEnv::txn_checkpoint</a>,
-<a href="../api_cxx/txn_commit.html">DbTxn::commit</a>,
-<a href="../api_cxx/txn_id.html">DbTxn::id</a>,
-<a href="../api_cxx/txn_prepare.html">DbTxn::prepare</a>
-and
-<a href="../api_cxx/txn_stat.html">DbEnv::txn_stat</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_cxx/what.html b/bdb/docs/api_cxx/what.html
deleted file mode 100644
index 9e0410c7684..00000000000
--- a/bdb/docs/api_cxx/what.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!--$Id: what.so,v 10.8 1999/12/20 08:52:33 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbException::what</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbException::what</h1>
-</td>
-<td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-#include &lt;db_cxx.h&gt;
-<p>
-virtual const char *
-DbException::what() const;
-</pre></h3>
-<h1>Description</h1>
-<p>A DbException object contains an informational string and an errno.
-The errno can be obtained by using <a href="../api_cxx/get_errno.html">DbException::get_errno</a>.
-The informational string can be obtained by using DbException::what.
-<h3>Class</h3>
-<a href="../api_cxx/except_class.html">DbException</a>
-<h1>See Also</h1>
-<a href="../api_cxx/get_errno.html">DbException::get_errno</a>
-and
-<a href="../api_cxx/what.html">DbException::what</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_cxx/cxx_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/db_class.html b/bdb/docs/api_java/db_class.html
deleted file mode 100644
index b03e55c1f69..00000000000
--- a/bdb/docs/api_java/db_class.html
+++ /dev/null
@@ -1,92 +0,0 @@
-<!--$Id: db_class.so,v 10.23 2000/03/17 01:54:00 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public class Db extends Object
-{
- Db(DbEnv dbenv, int flags)
- throws DbException;
- ...
-}
-</pre></h3>
-<h1>Description</h1>
-<p>This manual page describes the specific details of the Db class,
-which is the center of access method activity.
-<p>If no <b>dbenv</b> value is specified, the database is standalone, i.e.,
-it is not part of any Berkeley DB environment.
-<p>If a <b>dbenv</b> value is specified, the database is created within the
-specified Berkeley DB environment. The database access methods automatically
-make calls to the other subsystems in Berkeley DB based on the enclosing
-environment. For example, if the environment has been configured to use
-locking, then the access methods will automatically acquire the correct
-locks when reading and writing pages of the database.
-<p>The <b>flags</b> value must be set to 0 or by bitwise inclusively <b>OR</b>'ing together one or more
-of the following values.
-<p><dl compact>
-<p><dt><a name="Db.DB_XA_CREATE">Db.DB_XA_CREATE</a><dd>Instead of creating a standalone database, create a database intended to
-be accessed via applications running under a X/Open conformant Transaction
-Manager. The database will be opened in the environment specified by the
-OPENINFO parameter of the GROUPS section of the ubbconfig file. See the
-<a href="../ref/xa/intro.html">XA Resource Manager</a> chapter in the
-Reference Guide for more information.
-</dl>
-<h3>Class</h3>
-<a href="../api_java/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_java/db_close.html">Db.close</a>,
-<a href="../api_java/db_cursor.html">Db.cursor</a>,
-<a href="../api_java/db_del.html">Db.del</a>,
-<a href="../api_java/db_fd.html">Db.fd</a>,
-<a href="../api_java/db_get.html">Db.get</a>,
-<a href="../api_java/db_get_byteswapped.html">Db.get_byteswapped</a>,
-<a href="../api_java/db_get_type.html">Db.get_type</a>,
-<a href="../api_java/db_join.html">Db.join</a>,
-<a href="../api_java/db_key_range.html">Db.key_range</a>,
-<a href="../api_java/db_open.html">Db.open</a>,
-<a href="../api_java/db_put.html">Db.put</a>,
-<a href="../api_java/db_remove.html">Db.remove</a>,
-<a href="../api_java/db_set_bt_minkey.html">Db.set_bt_minkey</a>,
-<a href="../api_java/db_set_cachesize.html">Db.set_cachesize</a>,
-<a href="../api_java/db_set_errcall.html">Db.set_errcall</a>,
-<a href="../api_java/db_set_errpfx.html">Db.set_errpfx</a>,
-<a href="../api_java/db_set_flags.html">Db.set_flags</a>,
-<a href="../api_java/db_set_h_ffactor.html">Db.set_h_ffactor</a>,
-<a href="../api_java/db_set_h_nelem.html">Db.set_h_nelem</a>,
-<a href="../api_java/db_set_lorder.html">Db.set_lorder</a>,
-<a href="../api_java/db_set_pagesize.html">Db.set_pagesize</a>,
-<a href="../api_java/db_set_q_extentsize.html">Db.set_q_extentsize</a>,
-<a href="../api_java/db_set_re_delim.html">Db.set_re_delim</a>,
-<a href="../api_java/db_set_re_len.html">Db.set_re_len</a>,
-<a href="../api_java/db_set_re_pad.html">Db.set_re_pad</a>,
-<a href="../api_java/db_set_re_source.html">Db.set_re_source</a>,
-<a href="../api_java/db_stat.html">Db.stat</a>,
-<a href="../api_java/db_sync.html">Db.sync</a>,
-<a href="../api_java/db_upgrade.html">Db.upgrade</a>
-and
-<a href="../api_java/db_verify.html">Db.verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/db_close.html b/bdb/docs/api_java/db_close.html
deleted file mode 100644
index fcb8fde1dea..00000000000
--- a/bdb/docs/api_java/db_close.html
+++ /dev/null
@@ -1,113 +0,0 @@
-<!--$Id: db_close.so,v 10.27 2000/09/08 15:20:28 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db.close</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db.close</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public int close(int flags)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>The Db.close method flushes any cached database information to disk,
-closes any open cursors, frees any allocated resources, and closes any
-underlying files. Since key/data pairs are cached in memory, failing to
-sync the file with the Db.close or <a href="../api_java/db_sync.html">Db.sync</a> method may result
-in inconsistent or lost information.
-<p>The <b>flags</b> parameter must be set to 0 or the following value:
-<p><dl compact>
-<p><dt><a name="Db.DB_NOSYNC">Db.DB_NOSYNC</a><dd>Do not flush cached information to disk.
-<p>The <a href="../api_java/db_close.html#DB_NOSYNC">Db.DB_NOSYNC</a> flag is a dangerous option. It should only be set
-if the application is doing logging (with transactions) so that the
-database is recoverable after a system or application crash, or if the
-database is always generated from scratch after any system or application
-crash.
-<p><b>It is important to understand that flushing cached information to disk
-only minimizes the window of opportunity for corrupted data.</b>
-While unlikely, it is possible for database corruption to happen if a
-system or application crash occurs while writing data to the database.
-To ensure that database corruption never occurs, applications must either:
-use transactions and logging with automatic recovery, use logging and
-application-specific recovery, or edit a copy of the database,
-and, once all applications using the database have successfully called
-Db.close, atomically replace the original database with the
-updated copy.
-</dl>
-<p>When multiple threads are using the Berkeley DB handle concurrently, only a single
-thread may call the Db.close method.
-<p>Once Db.close has been called, regardless of its return, the
-<a href="../api_java/db_class.html">Db</a> handle may not be accessed again.
- <a name="3"><!--meow--></a>
-<p>The Db.close method throws an exception that encapsulates a non-zero error value on
-failure, and returns <a href="../api_c/memp_fsync.html#DB_INCOMPLETE">Db.DB_INCOMPLETE</a> if the underlying database still has
-dirty pages in the cache. (The only reason to return
-<a href="../api_c/memp_fsync.html#DB_INCOMPLETE">Db.DB_INCOMPLETE</a> is if another thread of control was writing pages
-in the underlying database file at the same time as the
-Db.close method was called. For this reason, a return of
-<a href="../api_c/memp_fsync.html#DB_INCOMPLETE">Db.DB_INCOMPLETE</a> can normally be ignored, or, in cases where it is
-a possible return value, the <a href="../api_java/db_close.html#DB_NOSYNC">Db.DB_NOSYNC</a> option should probably
-have been specified.)
-<p>The Db.close method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p>The Db.close method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the Db.close method may fail and throw
-a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls
-will fail in the same way.
-<h3>Class</h3>
-<a href="../api_java/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_java/db_close.html">Db.close</a>,
-<a href="../api_java/db_cursor.html">Db.cursor</a>,
-<a href="../api_java/db_del.html">Db.del</a>,
-<a href="../api_java/db_fd.html">Db.fd</a>,
-<a href="../api_java/db_get.html">Db.get</a>,
-<a href="../api_java/db_get_byteswapped.html">Db.get_byteswapped</a>,
-<a href="../api_java/db_get_type.html">Db.get_type</a>,
-<a href="../api_java/db_join.html">Db.join</a>,
-<a href="../api_java/db_key_range.html">Db.key_range</a>,
-<a href="../api_java/db_open.html">Db.open</a>,
-<a href="../api_java/db_put.html">Db.put</a>,
-<a href="../api_java/db_remove.html">Db.remove</a>,
-<a href="../api_java/db_set_bt_minkey.html">Db.set_bt_minkey</a>,
-<a href="../api_java/db_set_cachesize.html">Db.set_cachesize</a>,
-<a href="../api_java/db_set_errcall.html">Db.set_errcall</a>,
-<a href="../api_java/db_set_errpfx.html">Db.set_errpfx</a>,
-<a href="../api_java/db_set_flags.html">Db.set_flags</a>,
-<a href="../api_java/db_set_h_ffactor.html">Db.set_h_ffactor</a>,
-<a href="../api_java/db_set_h_nelem.html">Db.set_h_nelem</a>,
-<a href="../api_java/db_set_lorder.html">Db.set_lorder</a>,
-<a href="../api_java/db_set_pagesize.html">Db.set_pagesize</a>,
-<a href="../api_java/db_set_q_extentsize.html">Db.set_q_extentsize</a>,
-<a href="../api_java/db_set_re_delim.html">Db.set_re_delim</a>,
-<a href="../api_java/db_set_re_len.html">Db.set_re_len</a>,
-<a href="../api_java/db_set_re_pad.html">Db.set_re_pad</a>,
-<a href="../api_java/db_set_re_source.html">Db.set_re_source</a>,
-<a href="../api_java/db_stat.html">Db.stat</a>,
-<a href="../api_java/db_sync.html">Db.sync</a>,
-<a href="../api_java/db_upgrade.html">Db.upgrade</a>
-and
-<a href="../api_java/db_verify.html">Db.verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/db_cursor.html b/bdb/docs/api_java/db_cursor.html
deleted file mode 100644
index 2494aad58b7..00000000000
--- a/bdb/docs/api_java/db_cursor.html
+++ /dev/null
@@ -1,94 +0,0 @@
-<!--$Id: db_cursor.so,v 10.25 2000/07/11 19:11:25 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db.cursor</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db.cursor</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public Dbc cursor(DbTxn txnid, int flags)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>The Db.cursor method
-creates a cursor.
-<p>If the file is being accessed under transaction protection, the
-<b>txnid</b> parameter is a transaction ID returned from
-<a href="../api_java/txn_begin.html">DbEnv.txn_begin</a>, otherwise, NULL.
-<p>If transaction protection is enabled, cursors must be opened and closed
-within the context of a transaction, and the <b>txnid</b> parameter
-specifies the transaction context in which the cursor may be used.
-<p>The <b>flags</b> value must be set to 0 or by bitwise inclusively <b>OR</b>'ing together one or more
-of the following values.
-<p><dl compact>
-<p><dt><a name="Db.DB_WRITECURSOR">Db.DB_WRITECURSOR</a><dd>Specify that the cursor will be used to update the database. This
-flag should <b>only</b> be set when the <a href="../api_java/env_open.html#DB_INIT_CDB">Db.DB_INIT_CDB</a> flag
-was specified to <a href="../api_java/env_open.html">DbEnv.open</a>.
-</dl>
-<p>The Db.cursor method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p>The Db.cursor method may fail and throw an exception encapsulating a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<p>The Db.cursor method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the Db.cursor method may fail and throw
-a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls
-will fail in the same way.
-<h3>Class</h3>
-<a href="../api_java/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_java/db_close.html">Db.close</a>,
-<a href="../api_java/db_cursor.html">Db.cursor</a>,
-<a href="../api_java/db_del.html">Db.del</a>,
-<a href="../api_java/db_fd.html">Db.fd</a>,
-<a href="../api_java/db_get.html">Db.get</a>,
-<a href="../api_java/db_get_byteswapped.html">Db.get_byteswapped</a>,
-<a href="../api_java/db_get_type.html">Db.get_type</a>,
-<a href="../api_java/db_join.html">Db.join</a>,
-<a href="../api_java/db_key_range.html">Db.key_range</a>,
-<a href="../api_java/db_open.html">Db.open</a>,
-<a href="../api_java/db_put.html">Db.put</a>,
-<a href="../api_java/db_remove.html">Db.remove</a>,
-<a href="../api_java/db_set_bt_minkey.html">Db.set_bt_minkey</a>,
-<a href="../api_java/db_set_cachesize.html">Db.set_cachesize</a>,
-<a href="../api_java/db_set_errcall.html">Db.set_errcall</a>,
-<a href="../api_java/db_set_errpfx.html">Db.set_errpfx</a>,
-<a href="../api_java/db_set_flags.html">Db.set_flags</a>,
-<a href="../api_java/db_set_h_ffactor.html">Db.set_h_ffactor</a>,
-<a href="../api_java/db_set_h_nelem.html">Db.set_h_nelem</a>,
-<a href="../api_java/db_set_lorder.html">Db.set_lorder</a>,
-<a href="../api_java/db_set_pagesize.html">Db.set_pagesize</a>,
-<a href="../api_java/db_set_q_extentsize.html">Db.set_q_extentsize</a>,
-<a href="../api_java/db_set_re_delim.html">Db.set_re_delim</a>,
-<a href="../api_java/db_set_re_len.html">Db.set_re_len</a>,
-<a href="../api_java/db_set_re_pad.html">Db.set_re_pad</a>,
-<a href="../api_java/db_set_re_source.html">Db.set_re_source</a>,
-<a href="../api_java/db_stat.html">Db.stat</a>,
-<a href="../api_java/db_sync.html">Db.sync</a>,
-<a href="../api_java/db_upgrade.html">Db.upgrade</a>
-and
-<a href="../api_java/db_verify.html">Db.verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/db_del.html b/bdb/docs/api_java/db_del.html
deleted file mode 100644
index 0a44190dd93..00000000000
--- a/bdb/docs/api_java/db_del.html
+++ /dev/null
@@ -1,94 +0,0 @@
-<!--$Id: db_del.so,v 10.23 2000/09/05 19:35:10 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db.del</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db.del</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public int del(DbTxn txnid, Dbt key, int flags)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>The Db.del method removes key/data pairs from the database. The
-key/data pair associated with the specified <b>key</b> is discarded from
-the database. In the presence of duplicate key values, all records
-associated with the designated key will be discarded.
-<p>If the file is being accessed under transaction protection, the
-<b>txnid</b> parameter is a transaction ID returned from
-<a href="../api_java/txn_begin.html">DbEnv.txn_begin</a>, otherwise, NULL.
-<p>The <b>flags</b> parameter is currently unused, and must be set to 0.
-<p>The Db.del method throws an exception that encapsulates a non-zero error value on
-failure, and <a href="../ref/program/errorret.html#DB_NOTFOUND">Db.DB_NOTFOUND</a> if the specified <b>key</b> did not exist in
-the file.
-<h1>Errors</h1>
-<p>The Db.del method may fail and throw an exception encapsulating a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EACCES<dd>An attempt was made to modify a read-only database.
-</dl>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<p>If the operation was selected to resolve a deadlock, the
-Db.del method will fail and
-throw a <a href="../api_java/deadlock_class.html">DbDeadlockException</a> exception.
-<p>The Db.del method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the Db.del method may fail and throw
-a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls
-will fail in the same way.
-<h3>Class</h3>
-<a href="../api_java/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_java/db_close.html">Db.close</a>,
-<a href="../api_java/db_cursor.html">Db.cursor</a>,
-<a href="../api_java/db_del.html">Db.del</a>,
-<a href="../api_java/db_fd.html">Db.fd</a>,
-<a href="../api_java/db_get.html">Db.get</a>,
-<a href="../api_java/db_get_byteswapped.html">Db.get_byteswapped</a>,
-<a href="../api_java/db_get_type.html">Db.get_type</a>,
-<a href="../api_java/db_join.html">Db.join</a>,
-<a href="../api_java/db_key_range.html">Db.key_range</a>,
-<a href="../api_java/db_open.html">Db.open</a>,
-<a href="../api_java/db_put.html">Db.put</a>,
-<a href="../api_java/db_remove.html">Db.remove</a>,
-<a href="../api_java/db_set_bt_minkey.html">Db.set_bt_minkey</a>,
-<a href="../api_java/db_set_cachesize.html">Db.set_cachesize</a>,
-<a href="../api_java/db_set_errcall.html">Db.set_errcall</a>,
-<a href="../api_java/db_set_errpfx.html">Db.set_errpfx</a>,
-<a href="../api_java/db_set_flags.html">Db.set_flags</a>,
-<a href="../api_java/db_set_h_ffactor.html">Db.set_h_ffactor</a>,
-<a href="../api_java/db_set_h_nelem.html">Db.set_h_nelem</a>,
-<a href="../api_java/db_set_lorder.html">Db.set_lorder</a>,
-<a href="../api_java/db_set_pagesize.html">Db.set_pagesize</a>,
-<a href="../api_java/db_set_q_extentsize.html">Db.set_q_extentsize</a>,
-<a href="../api_java/db_set_re_delim.html">Db.set_re_delim</a>,
-<a href="../api_java/db_set_re_len.html">Db.set_re_len</a>,
-<a href="../api_java/db_set_re_pad.html">Db.set_re_pad</a>,
-<a href="../api_java/db_set_re_source.html">Db.set_re_source</a>,
-<a href="../api_java/db_stat.html">Db.stat</a>,
-<a href="../api_java/db_sync.html">Db.sync</a>,
-<a href="../api_java/db_upgrade.html">Db.upgrade</a>
-and
-<a href="../api_java/db_verify.html">Db.verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/db_fd.html b/bdb/docs/api_java/db_fd.html
deleted file mode 100644
index 77342c2c9a9..00000000000
--- a/bdb/docs/api_java/db_fd.html
+++ /dev/null
@@ -1,79 +0,0 @@
-<!--$Id: db_fd.so,v 10.21 2000/03/01 21:41:28 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db.fd</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db.fd</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public int fd()
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>The Db.fd method
-returns a file descriptor representative of the underlying database.
-This method does not fit well into the Java framework and may be removed
-in subsequent releases.
-<p>The Db.fd method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p>The Db.fd method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the Db.fd method may fail and throw
-a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls
-will fail in the same way.
-<h3>Class</h3>
-<a href="../api_java/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_java/db_close.html">Db.close</a>,
-<a href="../api_java/db_cursor.html">Db.cursor</a>,
-<a href="../api_java/db_del.html">Db.del</a>,
-<a href="../api_java/db_fd.html">Db.fd</a>,
-<a href="../api_java/db_get.html">Db.get</a>,
-<a href="../api_java/db_get_byteswapped.html">Db.get_byteswapped</a>,
-<a href="../api_java/db_get_type.html">Db.get_type</a>,
-<a href="../api_java/db_join.html">Db.join</a>,
-<a href="../api_java/db_key_range.html">Db.key_range</a>,
-<a href="../api_java/db_open.html">Db.open</a>,
-<a href="../api_java/db_put.html">Db.put</a>,
-<a href="../api_java/db_remove.html">Db.remove</a>,
-<a href="../api_java/db_set_bt_minkey.html">Db.set_bt_minkey</a>,
-<a href="../api_java/db_set_cachesize.html">Db.set_cachesize</a>,
-<a href="../api_java/db_set_errcall.html">Db.set_errcall</a>,
-<a href="../api_java/db_set_errpfx.html">Db.set_errpfx</a>,
-<a href="../api_java/db_set_flags.html">Db.set_flags</a>,
-<a href="../api_java/db_set_h_ffactor.html">Db.set_h_ffactor</a>,
-<a href="../api_java/db_set_h_nelem.html">Db.set_h_nelem</a>,
-<a href="../api_java/db_set_lorder.html">Db.set_lorder</a>,
-<a href="../api_java/db_set_pagesize.html">Db.set_pagesize</a>,
-<a href="../api_java/db_set_q_extentsize.html">Db.set_q_extentsize</a>,
-<a href="../api_java/db_set_re_delim.html">Db.set_re_delim</a>,
-<a href="../api_java/db_set_re_len.html">Db.set_re_len</a>,
-<a href="../api_java/db_set_re_pad.html">Db.set_re_pad</a>,
-<a href="../api_java/db_set_re_source.html">Db.set_re_source</a>,
-<a href="../api_java/db_stat.html">Db.stat</a>,
-<a href="../api_java/db_sync.html">Db.sync</a>,
-<a href="../api_java/db_upgrade.html">Db.upgrade</a>
-and
-<a href="../api_java/db_verify.html">Db.verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/db_get.html b/bdb/docs/api_java/db_get.html
deleted file mode 100644
index 8fd980e9260..00000000000
--- a/bdb/docs/api_java/db_get.html
+++ /dev/null
@@ -1,149 +0,0 @@
-<!--$Id: db_get.so,v 10.31 2000/11/28 20:12:30 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db.get</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db.get</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public int get(DbTxn txnid, Dbt key, Dbt data, int flags)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>The Db.get method retrieves key/data pairs from the database. The
-byte array
-and length of the data associated with the specified <b>key</b> are
-returned in the structure referenced by <b>data</b>.
-<p>In the presence of duplicate key values, Db.get will return the
-first data item for the designated key. Duplicates are sorted by insert
-order except where this order has been overridden by cursor operations.
-<b>Retrieval of duplicates requires the use of cursor operations.</b>
-See <a href="../api_java/dbc_get.html">Dbc.get</a> for details.
-<p>If the file is being accessed under transaction protection, the
-<b>txnid</b> parameter is a transaction ID returned from
-<a href="../api_java/txn_begin.html">DbEnv.txn_begin</a>, otherwise, NULL.
-<p>The <b>flags</b> parameter must be set to 0 or one of the following
-values:
-<p><dl compact>
-<p><dt><a name="Db.DB_CONSUME">Db.DB_CONSUME</a><dd>Return the record number and data from the available record closest to
-the head of the queue and delete the record. The cursor will be
-positioned on the deleted record. The record number will be returned
-in <b>key</b> as described in <a href="../api_java/dbt_class.html">Dbt</a>. The data will be returned
-in the <b>data</b> parameter. A record is available if it is not
-deleted and is not currently locked. The underlying database must be
-of type Queue for Db.DB_CONSUME to be specified.
-<p><dt><a name="Db.DB_CONSUME_WAIT">Db.DB_CONSUME_WAIT</a><dd>The Db.DB_CONSUME_WAIT flag is the same as the Db.DB_CONSUME
-flag except that if the Queue database is empty, the thread of control
-will wait until there is data in the queue before returning. The
-underlying database must be of type Queue for Db.DB_CONSUME_WAIT
-to be specified.
-<p><dt><a name="Db.DB_GET_BOTH">Db.DB_GET_BOTH</a><dd>Retrieve the key/data pair only if both the key and data match the
-arguments.
-<p><dt><a name="Db.DB_SET_RECNO">Db.DB_SET_RECNO</a><dd>Retrieve the specified numbered key/data pair from a database.
-Upon return, both the <b>key</b> and <b>data</b> items will have been
-filled in, not just the data item as is done for all other uses of the
-Db.get method.
-<p>The <b>data</b> field of the specified <b>key</b>
-must be a byte array large enough to hold a logical record
-number (i.e., an int).
-This record number determines the record to be retrieved.
-<p>For Db.DB_SET_RECNO to be specified, the underlying database must be
-of type Btree and it must have been created with the DB_RECNUM flag.
-</dl>
-<p>In addition, the following flag may be set by bitwise inclusively <b>OR</b>'ing it into the
-<b>flags</b> parameter:
-<p><dl compact>
-<p><dt><a name="Db.DB_RMW">Db.DB_RMW</a><dd>Acquire write locks instead of read locks when doing the retrieval.
-Setting this flag may decrease the likelihood of deadlock during a
-read-modify-write cycle by immediately acquiring the write lock during
-the read part of the cycle so that another thread of control acquiring
-a read lock for the same item, in its own read-modify-write cycle, will
-not result in deadlock.
-<p>As the Db.get interface will not hold locks across
-Berkeley DB interface calls in non-transactional environments, the
-<a href="../api_java/dbc_get.html#DB_RMW">Db.DB_RMW</a> flag to the Db.get call is only meaningful in
-the presence of transactions.
-</dl>
-<p>If the database is a Queue or Recno database and the requested key exists,
-but was never explicitly created by the application or was later deleted,
-the Db.get method returns <a href="../ref/program/errorret.html#DB_KEYEMPTY">Db.DB_KEYEMPTY</a>.
-<p>Otherwise, if the requested key is not in the database, the
-Db.get function returns <a href="../ref/program/errorret.html#DB_NOTFOUND">Db.DB_NOTFOUND</a>.
-<p>Otherwise, the Db.get method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p>The Db.get method may fail and throw an exception encapsulating a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>A record number of 0 was specified.
-<p>The <a href="../api_java/env_open.html#DB_THREAD">Db.DB_THREAD</a> flag was specified to the
-<a href="../api_java/db_open.html">Db.open</a> method and none of the <a href="../api_java/dbt_class.html#DB_DBT_MALLOC">Db.DB_DBT_MALLOC</a>,
-<a href="../api_java/dbt_class.html#DB_DBT_REALLOC">Db.DB_DBT_REALLOC</a> or <a href="../api_java/dbt_class.html#DB_DBT_USERMEM">Db.DB_DBT_USERMEM</a> flags were set in the
-<a href="../api_java/dbt_class.html">Dbt</a>.
-</dl>
-<p>If the operation was selected to resolve a deadlock, the
-Db.get method will fail and
-throw a <a href="../api_java/deadlock_class.html">DbDeadlockException</a> exception.
-<p>If the requested item could not be returned due to insufficient memory,
-the Db.get method will fail and
-throw a <a href="../api_java/mem_class.html">DbMemoryException</a> exception.
-<p>The Db.get method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the Db.get method may fail and throw
-a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls
-will fail in the same way.
-<h3>Class</h3>
-<a href="../api_java/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_java/db_close.html">Db.close</a>,
-<a href="../api_java/db_cursor.html">Db.cursor</a>,
-<a href="../api_java/db_del.html">Db.del</a>,
-<a href="../api_java/db_fd.html">Db.fd</a>,
-<a href="../api_java/db_get.html">Db.get</a>,
-<a href="../api_java/db_get_byteswapped.html">Db.get_byteswapped</a>,
-<a href="../api_java/db_get_type.html">Db.get_type</a>,
-<a href="../api_java/db_join.html">Db.join</a>,
-<a href="../api_java/db_key_range.html">Db.key_range</a>,
-<a href="../api_java/db_open.html">Db.open</a>,
-<a href="../api_java/db_put.html">Db.put</a>,
-<a href="../api_java/db_remove.html">Db.remove</a>,
-<a href="../api_java/db_set_bt_minkey.html">Db.set_bt_minkey</a>,
-<a href="../api_java/db_set_cachesize.html">Db.set_cachesize</a>,
-<a href="../api_java/db_set_errcall.html">Db.set_errcall</a>,
-<a href="../api_java/db_set_errpfx.html">Db.set_errpfx</a>,
-<a href="../api_java/db_set_flags.html">Db.set_flags</a>,
-<a href="../api_java/db_set_h_ffactor.html">Db.set_h_ffactor</a>,
-<a href="../api_java/db_set_h_nelem.html">Db.set_h_nelem</a>,
-<a href="../api_java/db_set_lorder.html">Db.set_lorder</a>,
-<a href="../api_java/db_set_pagesize.html">Db.set_pagesize</a>,
-<a href="../api_java/db_set_q_extentsize.html">Db.set_q_extentsize</a>,
-<a href="../api_java/db_set_re_delim.html">Db.set_re_delim</a>,
-<a href="../api_java/db_set_re_len.html">Db.set_re_len</a>,
-<a href="../api_java/db_set_re_pad.html">Db.set_re_pad</a>,
-<a href="../api_java/db_set_re_source.html">Db.set_re_source</a>,
-<a href="../api_java/db_stat.html">Db.stat</a>,
-<a href="../api_java/db_sync.html">Db.sync</a>,
-<a href="../api_java/db_upgrade.html">Db.upgrade</a>
-and
-<a href="../api_java/db_verify.html">Db.verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/db_get_byteswapped.html b/bdb/docs/api_java/db_get_byteswapped.html
deleted file mode 100644
index 1ef15479d99..00000000000
--- a/bdb/docs/api_java/db_get_byteswapped.html
+++ /dev/null
@@ -1,75 +0,0 @@
-<!--$Id: db_get_byteswapped.so,v 10.7 1999/12/20 08:52:27 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db.get_byteswapped</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db.get_byteswapped</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public boolean get_byteswapped();
-</pre></h3>
-<h1>Description</h1>
-<p>The Db.get_byteswapped method returns
-false
-if the underlying database files were created on an architecture
-of the same byte order as the current one, and
-true
-if they were not (i.e., big-endian on a little-endian machine or
-vice-versa). This field may be used to determine if application
-data needs to be adjusted for this architecture or not.
-<h3>Class</h3>
-<a href="../api_java/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_java/db_close.html">Db.close</a>,
-<a href="../api_java/db_cursor.html">Db.cursor</a>,
-<a href="../api_java/db_del.html">Db.del</a>,
-<a href="../api_java/db_fd.html">Db.fd</a>,
-<a href="../api_java/db_get.html">Db.get</a>,
-<a href="../api_java/db_get_byteswapped.html">Db.get_byteswapped</a>,
-<a href="../api_java/db_get_type.html">Db.get_type</a>,
-<a href="../api_java/db_join.html">Db.join</a>,
-<a href="../api_java/db_key_range.html">Db.key_range</a>,
-<a href="../api_java/db_open.html">Db.open</a>,
-<a href="../api_java/db_put.html">Db.put</a>,
-<a href="../api_java/db_remove.html">Db.remove</a>,
-<a href="../api_java/db_set_bt_minkey.html">Db.set_bt_minkey</a>,
-<a href="../api_java/db_set_cachesize.html">Db.set_cachesize</a>,
-<a href="../api_java/db_set_errcall.html">Db.set_errcall</a>,
-<a href="../api_java/db_set_errpfx.html">Db.set_errpfx</a>,
-<a href="../api_java/db_set_flags.html">Db.set_flags</a>,
-<a href="../api_java/db_set_h_ffactor.html">Db.set_h_ffactor</a>,
-<a href="../api_java/db_set_h_nelem.html">Db.set_h_nelem</a>,
-<a href="../api_java/db_set_lorder.html">Db.set_lorder</a>,
-<a href="../api_java/db_set_pagesize.html">Db.set_pagesize</a>,
-<a href="../api_java/db_set_q_extentsize.html">Db.set_q_extentsize</a>,
-<a href="../api_java/db_set_re_delim.html">Db.set_re_delim</a>,
-<a href="../api_java/db_set_re_len.html">Db.set_re_len</a>,
-<a href="../api_java/db_set_re_pad.html">Db.set_re_pad</a>,
-<a href="../api_java/db_set_re_source.html">Db.set_re_source</a>,
-<a href="../api_java/db_stat.html">Db.stat</a>,
-<a href="../api_java/db_sync.html">Db.sync</a>,
-<a href="../api_java/db_upgrade.html">Db.upgrade</a>
-and
-<a href="../api_java/db_verify.html">Db.verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/db_get_type.html b/bdb/docs/api_java/db_get_type.html
deleted file mode 100644
index cc10556190d..00000000000
--- a/bdb/docs/api_java/db_get_type.html
+++ /dev/null
@@ -1,72 +0,0 @@
-<!--$Id: db_get_type.so,v 10.10 1999/12/20 08:52:27 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db.get_type</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db.get_type</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public int get_type();
-</pre></h3>
-<h1>Description</h1>
-<p>The Db.get_type method returns the type of the underlying access method
-(and file format). It returns one of Db.DB_BTREE,
-Db.DB_HASH or Db.DB_RECNO. This value may be used to
-determine the type of the database after a return from <a href="../api_java/db_open.html">Db.open</a>
-with the <b>type</b> argument set to Db.DB_UNKNOWN.
-<h3>Class</h3>
-<a href="../api_java/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_java/db_close.html">Db.close</a>,
-<a href="../api_java/db_cursor.html">Db.cursor</a>,
-<a href="../api_java/db_del.html">Db.del</a>,
-<a href="../api_java/db_fd.html">Db.fd</a>,
-<a href="../api_java/db_get.html">Db.get</a>,
-<a href="../api_java/db_get_byteswapped.html">Db.get_byteswapped</a>,
-<a href="../api_java/db_get_type.html">Db.get_type</a>,
-<a href="../api_java/db_join.html">Db.join</a>,
-<a href="../api_java/db_key_range.html">Db.key_range</a>,
-<a href="../api_java/db_open.html">Db.open</a>,
-<a href="../api_java/db_put.html">Db.put</a>,
-<a href="../api_java/db_remove.html">Db.remove</a>,
-<a href="../api_java/db_set_bt_minkey.html">Db.set_bt_minkey</a>,
-<a href="../api_java/db_set_cachesize.html">Db.set_cachesize</a>,
-<a href="../api_java/db_set_errcall.html">Db.set_errcall</a>,
-<a href="../api_java/db_set_errpfx.html">Db.set_errpfx</a>,
-<a href="../api_java/db_set_flags.html">Db.set_flags</a>,
-<a href="../api_java/db_set_h_ffactor.html">Db.set_h_ffactor</a>,
-<a href="../api_java/db_set_h_nelem.html">Db.set_h_nelem</a>,
-<a href="../api_java/db_set_lorder.html">Db.set_lorder</a>,
-<a href="../api_java/db_set_pagesize.html">Db.set_pagesize</a>,
-<a href="../api_java/db_set_q_extentsize.html">Db.set_q_extentsize</a>,
-<a href="../api_java/db_set_re_delim.html">Db.set_re_delim</a>,
-<a href="../api_java/db_set_re_len.html">Db.set_re_len</a>,
-<a href="../api_java/db_set_re_pad.html">Db.set_re_pad</a>,
-<a href="../api_java/db_set_re_source.html">Db.set_re_source</a>,
-<a href="../api_java/db_stat.html">Db.stat</a>,
-<a href="../api_java/db_sync.html">Db.sync</a>,
-<a href="../api_java/db_upgrade.html">Db.upgrade</a>
-and
-<a href="../api_java/db_verify.html">Db.verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/db_join.html b/bdb/docs/api_java/db_join.html
deleted file mode 100644
index 5bdd93fedde..00000000000
--- a/bdb/docs/api_java/db_join.html
+++ /dev/null
@@ -1,142 +0,0 @@
-<!--$Id: db_join.so,v 10.30 2000/12/20 15:34:50 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db.join</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db.join</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public Dbc join(Dbc curslist[], int flags)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>The Db.join method creates a specialized cursor for use in performing
-joins on secondary indexes. For information on how to organize your data
-to use this functionality, see <a href="../ref/am/join.html">Logical
-join</a>.
-<p>The <b>primary</b> argument contains the <a href="../api_java/db_class.html">Db</a> handle of the primary
-database, which is keyed by the data values found in entries in the
-<b>curslist</b>.
-<p>The <b>curslist</b> argument contains a null terminated array of cursors.
-Each cursor must have been initialized to reference the key on which the
-underlying database should be joined. Typically, this initialization is done
-by a <a href="../api_java/dbc_get.html">Dbc.get</a> call with the <a href="../api_java/dbc_get.html#DB_SET">Db.DB_SET</a> flag specified. Once the
-cursors have been passed as part of a <b>curslist</b>, they should not
-be accessed or modified until the newly created join cursor has been closed,
-or else inconsistent results may be returned.
-<p>Joined values are retrieved by doing a sequential iteration over the first
-cursor in the <b>curslist</b> argument, and a nested iteration over each
-secondary cursor in the order they are specified in the <b>curslist</b>
-argument. This requires database traversals to search for the current
-datum in all the cursors after the first. For this reason, the best join
-performance normally results from sorting the cursors from the one that
-references the least number of data items to the one that references the
-most. By default, Db.join does this sort on behalf of its caller.
-<p>The <b>flags</b> parameter must be set to 0 or the following value:
-<p><dl compact>
-<p><dt><a name="Db.DB_JOIN_NOSORT">Db.DB_JOIN_NOSORT</a><dd>Do not sort the cursors based on the number of data items they reference.
-If the data are structured such that cursors with many data items also
-share many common elements, higher performance will result from listing
-those cursors before cursors with fewer data items, that is, a sort order
-other than the default. The Db.DB_JOIN_NOSORT flag permits
-applications to perform join optimization prior to calling Db.join.
-</dl>
-<p>The returned cursor has the standard cursor functions:
-<p><dl compact>
-<p><dt><a href="../api_java/dbc_get.html">Dbc.get</a><dd>Iterates over the values associated with the keys to which each item in
-<b>curslist</b> has been initialized. Any data value which appears in
-all items specified by the <b>curslist</b> argument is then used as a
-key into the <b>primary</b>, and the key/data pair found in the
-<b>primary</b> is returned.
-<p>The <b>flags</b> parameter must be set to 0 or the following value:
-<p><dl compact>
-<p><dt><a name="Db.DB_JOIN_ITEM">Db.DB_JOIN_ITEM</a><dd>Do not use the data value found in all of the cursors as a lookup
-key for the <b>primary</b>, but simply return it in the key parameter
-instead. The data parameter is left unchanged.
-</dl>
-<p>In addition, the following flag may be set by bitwise inclusively <b>OR</b>'ing it into the
-<b>flags</b> parameter:
-<p><dl compact>
-<p><dt><a name="Db.DB_RMW">Db.DB_RMW</a><dd>Acquire write locks instead of read locks when doing the retrieval.
-Setting this flag may decrease the likelihood of deadlock during a
-read-modify-write cycle by immediately acquiring the write lock during
-the read part of the cycle so that another thread of control acquiring
-a read lock for the same item, in its own read-modify-write cycle, will
-not result in deadlock.
-</dl>
-<p><dt><a href="../api_java/dbc_put.html">Dbc.put</a><dd>Returns EINVAL.
-<p><dt><a href="../api_java/dbc_del.html">Dbc.del</a><dd>Returns EINVAL.
-<p><dt><a href="../api_java/dbc_close.html">Dbc.close</a><dd>Close the returned cursor and release all resources. (Closing the cursors
-in <b>curslist</b> is the responsibility of the caller.)
-</dl>
-<p>For the returned join cursor to be used in a transaction protected manner,
-the cursors listed in <b>curslist</b> must have been created within the
-context of the same transaction.
-<p>The Db.join method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p>The Db.join method may fail and throw an exception encapsulating a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>The <a href="../api_java/dbc_put.html">Dbc.put</a> or <a href="../api_java/dbc_del.html">Dbc.del</a> functions were called.
-</dl>
-<p>The Db.join method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the Db.join method may fail and throw
-a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls
-will fail in the same way.
-<h3>Class</h3>
-<a href="../api_java/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_java/db_close.html">Db.close</a>,
-<a href="../api_java/db_cursor.html">Db.cursor</a>,
-<a href="../api_java/db_del.html">Db.del</a>,
-<a href="../api_java/db_fd.html">Db.fd</a>,
-<a href="../api_java/db_get.html">Db.get</a>,
-<a href="../api_java/db_get_byteswapped.html">Db.get_byteswapped</a>,
-<a href="../api_java/db_get_type.html">Db.get_type</a>,
-<a href="../api_java/db_join.html">Db.join</a>,
-<a href="../api_java/db_key_range.html">Db.key_range</a>,
-<a href="../api_java/db_open.html">Db.open</a>,
-<a href="../api_java/db_put.html">Db.put</a>,
-<a href="../api_java/db_remove.html">Db.remove</a>,
-<a href="../api_java/db_set_bt_minkey.html">Db.set_bt_minkey</a>,
-<a href="../api_java/db_set_cachesize.html">Db.set_cachesize</a>,
-<a href="../api_java/db_set_errcall.html">Db.set_errcall</a>,
-<a href="../api_java/db_set_errpfx.html">Db.set_errpfx</a>,
-<a href="../api_java/db_set_flags.html">Db.set_flags</a>,
-<a href="../api_java/db_set_h_ffactor.html">Db.set_h_ffactor</a>,
-<a href="../api_java/db_set_h_nelem.html">Db.set_h_nelem</a>,
-<a href="../api_java/db_set_lorder.html">Db.set_lorder</a>,
-<a href="../api_java/db_set_pagesize.html">Db.set_pagesize</a>,
-<a href="../api_java/db_set_q_extentsize.html">Db.set_q_extentsize</a>,
-<a href="../api_java/db_set_re_delim.html">Db.set_re_delim</a>,
-<a href="../api_java/db_set_re_len.html">Db.set_re_len</a>,
-<a href="../api_java/db_set_re_pad.html">Db.set_re_pad</a>,
-<a href="../api_java/db_set_re_source.html">Db.set_re_source</a>,
-<a href="../api_java/db_stat.html">Db.stat</a>,
-<a href="../api_java/db_sync.html">Db.sync</a>,
-<a href="../api_java/db_upgrade.html">Db.upgrade</a>
-and
-<a href="../api_java/db_verify.html">Db.verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/db_key_range.html b/bdb/docs/api_java/db_key_range.html
deleted file mode 100644
index dd68e0e1acf..00000000000
--- a/bdb/docs/api_java/db_key_range.html
+++ /dev/null
@@ -1,99 +0,0 @@
-<!--$Id: db_key_range.so,v 10.5 2000/05/01 21:57:43 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db.key_range</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db.key_range</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public void key_range(DbTxn txnid
- Dbt key, DbKeyRange key_range, int flags)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>The Db.key_range method returns an estimate of the proportion of keys
-that are less than, equal to and greater than the specified key. The
-underlying database must be of type Btree.
-<p>The information is returned in the <b>key_range</b> argument, which
-contains three elements of type double, <b>less</b>, <b>equal</b> and
-<b>greater</b>. Values are in the range of 0 to 1, e.g., if the field
-<b>less</b> is 0.05, that indicates that 5% of the keys in the database
-are less than the key argument. The value for <b>equal</b> will be zero
-if there is no matching key and non-zero otherwise.
-<p>If the file is being accessed under transaction protection, the
-<b>txnid</b> parameter is a transaction ID returned from
-<a href="../api_java/txn_begin.html">DbEnv.txn_begin</a>, otherwise, NULL.
-The Db.key_range method does not retain the locks it acquires for the
-life of the transaction, so estimates may not be repeatable.
-<p>The <b>flags</b> parameter is currently unused, and must be set to 0.
-<p>The Db.key_range method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p>The Db.key_range method may fail and throw an exception encapsulating a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>The underlying database was not of type Btree.
-</dl>
-<p>If the operation was selected to resolve a deadlock, the
-Db.key_range method will fail and
-throw a <a href="../api_java/deadlock_class.html">DbDeadlockException</a> exception.
-<p>The Db.key_range method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the Db.key_range method may fail and throw
-a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls
-will fail in the same way.
-<h3>Class</h3>
-<a href="../api_java/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_java/db_close.html">Db.close</a>,
-<a href="../api_java/db_cursor.html">Db.cursor</a>,
-<a href="../api_java/db_del.html">Db.del</a>,
-<a href="../api_java/db_fd.html">Db.fd</a>,
-<a href="../api_java/db_get.html">Db.get</a>,
-<a href="../api_java/db_get_byteswapped.html">Db.get_byteswapped</a>,
-<a href="../api_java/db_get_type.html">Db.get_type</a>,
-<a href="../api_java/db_join.html">Db.join</a>,
-<a href="../api_java/db_key_range.html">Db.key_range</a>,
-<a href="../api_java/db_open.html">Db.open</a>,
-<a href="../api_java/db_put.html">Db.put</a>,
-<a href="../api_java/db_remove.html">Db.remove</a>,
-<a href="../api_java/db_set_bt_minkey.html">Db.set_bt_minkey</a>,
-<a href="../api_java/db_set_cachesize.html">Db.set_cachesize</a>,
-<a href="../api_java/db_set_errcall.html">Db.set_errcall</a>,
-<a href="../api_java/db_set_errpfx.html">Db.set_errpfx</a>,
-<a href="../api_java/db_set_flags.html">Db.set_flags</a>,
-<a href="../api_java/db_set_h_ffactor.html">Db.set_h_ffactor</a>,
-<a href="../api_java/db_set_h_nelem.html">Db.set_h_nelem</a>,
-<a href="../api_java/db_set_lorder.html">Db.set_lorder</a>,
-<a href="../api_java/db_set_pagesize.html">Db.set_pagesize</a>,
-<a href="../api_java/db_set_q_extentsize.html">Db.set_q_extentsize</a>,
-<a href="../api_java/db_set_re_delim.html">Db.set_re_delim</a>,
-<a href="../api_java/db_set_re_len.html">Db.set_re_len</a>,
-<a href="../api_java/db_set_re_pad.html">Db.set_re_pad</a>,
-<a href="../api_java/db_set_re_source.html">Db.set_re_source</a>,
-<a href="../api_java/db_stat.html">Db.stat</a>,
-<a href="../api_java/db_sync.html">Db.sync</a>,
-<a href="../api_java/db_upgrade.html">Db.upgrade</a>
-and
-<a href="../api_java/db_verify.html">Db.verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/db_open.html b/bdb/docs/api_java/db_open.html
deleted file mode 100644
index 5371e10bbc2..00000000000
--- a/bdb/docs/api_java/db_open.html
+++ /dev/null
@@ -1,179 +0,0 @@
-<!--$Id: db_open.so,v 10.61 2000/10/25 15:24:44 dda Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db.open</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db.open</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-import java.io.FileNotFoundException;
-<p>
-public void open(String file,
- String database, int type, int flags, int mode)
- throws DbException, FileNotFoundException;
-</pre></h3>
-<h1>Description</h1>
-<p>The currently supported Berkeley DB file formats (or <i>access methods</i>)
-are Btree, Hash, Queue and Recno. The Btree format is a representation
-of a sorted, balanced tree structure. The Hash format is an extensible,
-dynamic hashing scheme. The Queue format supports fast access to
-fixed-length records accessed by sequentially or logical record number.
-The Recno format supports fixed- or variable-length records, accessed
-sequentially or by logical record number, and optionally retrieved from
-a flat text file.
-<p>Storage and retrieval for the Berkeley DB access methods are based on key/data
-pairs, see <a href="../api_java/dbt_class.html">Dbt</a> for more information.
-<p>The Db.open interface opens the database represented by the
-<b>file</b> and <b>database</b> arguments for both reading and writing.
-The <b>file</b> argument is used as the name of a physical file on disk
-that will be used to back the database. The <b>database</b> argument is
-optional and allows applications to have multiple logical databases in a
-single physical file. While no <b>database</b> argument needs to be
-specified, it is an error to attempt to open a second database in a
-<b>file</b> that was not initially created using a <b>database</b> name.
-In-memory databases never intended to be preserved on disk may
-be created by setting both the <b>file</b> and <b>database</b> arguments
-to null. Note that in-memory databases can only ever be shared by
-sharing the single database handle that created them, in circumstances
-where doing so is safe.
-<p>The <b>type</b> argument is of type int
-and must be set to one of Db.DB_BTREE, Db.DB_HASH,
-Db.DB_QUEUE, Db.DB_RECNO or Db.DB_UNKNOWN, except
-that databases of type Db.DB_QUEUE are restricted to one per
-<b>file</b>. If <b>type</b> is Db.DB_UNKNOWN, the database must
-already exist and Db.open will automatically determine its type.
-The <a href="../api_java/db_get_type.html">Db.get_type</a> method may be used to determine the underlying type of
-databases opened using Db.DB_UNKNOWN.
-<p>The <b>flags</b> and <b>mode</b> arguments specify how files will be opened
-and/or created if they do not already exist.
-<p>The <b>flags</b> value must be set to 0 or by bitwise inclusively <b>OR</b>'ing together one or more
-of the following values.
-<p><dl compact>
-<p><dt><a name="Db.DB_CREATE">Db.DB_CREATE</a><dd>Create any underlying files, as necessary. If the files do not already
-exist and the DB_CREATE flag is not specified, the call will fail.
-<p><dt><a name="Db.DB_EXCL">Db.DB_EXCL</a><dd>Return an error if the file already exists. Underlying filesystem
-primitives are used to implement this flag. For this reason it is only
-applicable to the physical file and cannot be used to test if a database
-in a file already exists.
-<p>The Db.DB_EXCL flag is only meaningful when specified with the
-Db.DB_CREATE flag.
-<p><dt><a name="Db.DB_NOMMAP">Db.DB_NOMMAP</a><dd>Do not map this database into process memory (see the description of the
-<a href="../api_java/env_set_mp_mmapsize.html">DbEnv.set_mp_mmapsize</a> method for further information).
-<p><dt><a name="Db.DB_RDONLY">Db.DB_RDONLY</a><dd>Open the database for reading only. Any attempt to modify items in the
-database will fail regardless of the actual permissions of any underlying
-files.
-<p><dt><a name="Db.DB_THREAD">Db.DB_THREAD</a><dd>Cause the <a href="../api_java/db_class.html">Db</a> handle returned by Db.open to be
-<i>free-threaded</i>, that is, useable by multiple threads within a
-single address space.
-<p>Threading is always assumed in the Java API, so no special flags are
-required, and Berkeley DB functions will always behave as if the
-<a href="../api_java/env_open.html#DB_THREAD">Db.DB_THREAD</a> flag was specified.
-<p><dt><a name="Db.DB_TRUNCATE">Db.DB_TRUNCATE</a><dd>Physically truncate the underlying file, discarding all previous databases
-it might have held. Underlying filesystem primitives are used to
-implement this flag. For this reason it is only applicable to the
-physical file and cannot be used to discard databases within a file.
-<p>The Db.DB_TRUNCATE flag cannot be transaction protected, and it is
-an error to specify it in a transaction protected environment.
-</dl>
-<p>On UNIX systems, or in IEEE/ANSI Std 1003.1 (POSIX) environments, all files created by the access methods
-are created with mode <b>mode</b> (as described in <b>chmod</b>(2)) and
-modified by the process' umask value at the time of creation (see
-<b>umask</b>(2)). The group ownership of created files is based on
-the system and directory defaults, and is not further specified by Berkeley DB.
-If <b>mode</b> is 0, files are created readable and writeable by both
-owner and group. On Windows systems, the mode argument is ignored.
-<p>Calling Db.open is a reasonably expensive operation, and
-maintaining a set of open databases will normally be preferable to
-repeatedly open and closing the database for each new query.
-<p>The Db.open method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Environment Variables</h1>
-<p><dl compact>
-<p><dt>DB_HOME<dd>If the <b>dbenv</b> argument to <a href="../api_c/db_create.html">db_create</a> was initialized using
-<a href="../api_java/env_open.html">DbEnv.open</a> the environment variable <b>DB_HOME</b> may be used
-as the path of the database environment home. Specifically, Db.open
-is affected by the configuration value DB_DATA_DIR.
-</dl>
-<p><dl compact>
-<p><dt>TMPDIR<dd>If the <b>file</b> and <b>dbenv</b> arguments to Db.open are
-null, the environment variable <b>TMPDIR</b> may be used as a
-directory in which to create a temporary backing file.
-</dl>
-<h1>Errors</h1>
-<p>The Db.open method may fail and throw an exception encapsulating a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt><a name="Db.DB_OLD_VERSION">Db.DB_OLD_VERSION</a><dd>The database cannot be opened without being first upgraded.
-<p><dt>EEXIST<dd>DB_CREATE and DB_EXCL were specified and the file exists.
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified (e.g., unknown database
-type, page size, hash function, pad byte, byte order) or a flag value
-or parameter that is incompatible with the specified database.
-<p>
-The <a href="../api_java/env_open.html#DB_THREAD">Db.DB_THREAD</a> flag was specified and spinlocks are not
-implemented for this architecture.
-<p>The <a href="../api_java/env_open.html#DB_THREAD">Db.DB_THREAD</a> flag was specified to Db.open, but was not
-specified to the <a href="../api_java/env_open.html">DbEnv.open</a> call for the environment in which the
-<a href="../api_java/db_class.html">Db</a> handle was created.
-<p>A <b>re_source</b> file was specified with either the <a href="../api_java/env_open.html#DB_THREAD">Db.DB_THREAD</a>
-flag or the provided database environment supports transaction
-processing.
-<p><dt>ENOENT<dd>A non-existent <b>re_source</b> file was specified.
-</dl>
-<p>The Db.open method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the Db.open method may fail and throw
-a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls
-will fail in the same way.
-<h3>Class</h3>
-<a href="../api_java/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_java/db_close.html">Db.close</a>,
-<a href="../api_java/db_cursor.html">Db.cursor</a>,
-<a href="../api_java/db_del.html">Db.del</a>,
-<a href="../api_java/db_fd.html">Db.fd</a>,
-<a href="../api_java/db_get.html">Db.get</a>,
-<a href="../api_java/db_get_byteswapped.html">Db.get_byteswapped</a>,
-<a href="../api_java/db_get_type.html">Db.get_type</a>,
-<a href="../api_java/db_join.html">Db.join</a>,
-<a href="../api_java/db_key_range.html">Db.key_range</a>,
-<a href="../api_java/db_open.html">Db.open</a>,
-<a href="../api_java/db_put.html">Db.put</a>,
-<a href="../api_java/db_remove.html">Db.remove</a>,
-<a href="../api_java/db_set_bt_minkey.html">Db.set_bt_minkey</a>,
-<a href="../api_java/db_set_cachesize.html">Db.set_cachesize</a>,
-<a href="../api_java/db_set_errcall.html">Db.set_errcall</a>,
-<a href="../api_java/db_set_errpfx.html">Db.set_errpfx</a>,
-<a href="../api_java/db_set_flags.html">Db.set_flags</a>,
-<a href="../api_java/db_set_h_ffactor.html">Db.set_h_ffactor</a>,
-<a href="../api_java/db_set_h_nelem.html">Db.set_h_nelem</a>,
-<a href="../api_java/db_set_lorder.html">Db.set_lorder</a>,
-<a href="../api_java/db_set_pagesize.html">Db.set_pagesize</a>,
-<a href="../api_java/db_set_q_extentsize.html">Db.set_q_extentsize</a>,
-<a href="../api_java/db_set_re_delim.html">Db.set_re_delim</a>,
-<a href="../api_java/db_set_re_len.html">Db.set_re_len</a>,
-<a href="../api_java/db_set_re_pad.html">Db.set_re_pad</a>,
-<a href="../api_java/db_set_re_source.html">Db.set_re_source</a>,
-<a href="../api_java/db_stat.html">Db.stat</a>,
-<a href="../api_java/db_sync.html">Db.sync</a>,
-<a href="../api_java/db_upgrade.html">Db.upgrade</a>
-and
-<a href="../api_java/db_verify.html">Db.verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/db_put.html b/bdb/docs/api_java/db_put.html
deleted file mode 100644
index 41fe6dcff9e..00000000000
--- a/bdb/docs/api_java/db_put.html
+++ /dev/null
@@ -1,128 +0,0 @@
-<!--$Id: db_put.so,v 10.34 2000/09/16 22:27:56 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db.put</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db.put</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public int put(DbTxn txnid, Dbt key, Dbt data, int flags)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>The Db.put method stores key/data pairs in the database. The default
-behavior of the Db.put function is to enter the new key/data
-pair, replacing any previously existing key if duplicates are disallowed,
-or adding a duplicate data item if duplicates are allowed. If the database
-supports duplicates, the Db.put method adds the new data value at the
-end of the duplicate set. If the database supports sorted duplicates,
-the new data value is inserted at the correct sorted location.
-<p>If the file is being accessed under transaction protection, the
-<b>txnid</b> parameter is a transaction ID returned from
-<a href="../api_java/txn_begin.html">DbEnv.txn_begin</a>, otherwise, NULL.
-<p>The <b>flags</b> parameter must be set to 0 or one of the following
-values:
-<p><dl compact>
-<p><dt><a name="Db.DB_APPEND">Db.DB_APPEND</a><dd>Append the key/data pair to the end of the database. For the
-Db.DB_APPEND flag to be specified, the underlying database must be
-a Queue or Recno database. The record number allocated to the record is
-returned in the specified <b>key</b>.
-<p>There is a minor behavioral difference between the Recno and Queue access
-methods for the Db.DB_APPEND flag. If a transaction enclosing a
-Db.put operation with the Db.DB_APPEND flag aborts, the
-record number may be decremented (and later re-allocated by a subsequent
-Db.DB_APPEND operation) by the Recno access method, but will not be
-decremented or re-allocated by the Queue access method.
-<p><dt><a name="Db.DB_NODUPDATA">Db.DB_NODUPDATA</a><dd>In the case of the Btree and Hash access methods, enter the new key/data
-pair only if it does not already appear in the database. If the
-key/data pair already appears in the database, <a href="../api_java/dbc_put.html#DB_KEYEXIST">Db.DB_KEYEXIST</a> is
-returned. The Db.DB_NODUPDATA flag may only be specified if the
-underlying database has been configured to support sorted duplicates.
-<p>The Db.DB_NODUPDATA flag may not be specified to the Queue or Recno
-access methods.
-<p><dt><a name="Db.DB_NOOVERWRITE">Db.DB_NOOVERWRITE</a><dd>Enter the new key/data pair only if the key does not already appear in
-the database. If the key already appears in the database,
-<a href="../api_java/dbc_put.html#DB_KEYEXIST">Db.DB_KEYEXIST</a> is returned. Even if the database allows duplicates,
-a call to Db.put with the Db.DB_NOOVERWRITE flag set will
-fail if the key already exists in the database.
-</dl>
-<p>Otherwise, the Db.put method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p>The Db.put method may fail and throw an exception encapsulating a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EACCES<dd>An attempt was made to modify a read-only database.
-</dl>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>A record number of 0 was specified.
-<p>An attempt was made to add a record to a fixed-length database that was too
-large to fit.
-<p>An attempt was made to do a partial put.
-</dl>
-<p><dl compact>
-<p><dt>ENOSPC<dd>A btree exceeded the maximum btree depth (255).
-</dl>
-<p>If the operation was selected to resolve a deadlock, the
-Db.put method will fail and
-throw a <a href="../api_java/deadlock_class.html">DbDeadlockException</a> exception.
-<p>The Db.put method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the Db.put method may fail and throw
-a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls
-will fail in the same way.
-<h3>Class</h3>
-<a href="../api_java/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_java/db_close.html">Db.close</a>,
-<a href="../api_java/db_cursor.html">Db.cursor</a>,
-<a href="../api_java/db_del.html">Db.del</a>,
-<a href="../api_java/db_fd.html">Db.fd</a>,
-<a href="../api_java/db_get.html">Db.get</a>,
-<a href="../api_java/db_get_byteswapped.html">Db.get_byteswapped</a>,
-<a href="../api_java/db_get_type.html">Db.get_type</a>,
-<a href="../api_java/db_join.html">Db.join</a>,
-<a href="../api_java/db_key_range.html">Db.key_range</a>,
-<a href="../api_java/db_open.html">Db.open</a>,
-<a href="../api_java/db_put.html">Db.put</a>,
-<a href="../api_java/db_remove.html">Db.remove</a>,
-<a href="../api_java/db_set_bt_minkey.html">Db.set_bt_minkey</a>,
-<a href="../api_java/db_set_cachesize.html">Db.set_cachesize</a>,
-<a href="../api_java/db_set_errcall.html">Db.set_errcall</a>,
-<a href="../api_java/db_set_errpfx.html">Db.set_errpfx</a>,
-<a href="../api_java/db_set_flags.html">Db.set_flags</a>,
-<a href="../api_java/db_set_h_ffactor.html">Db.set_h_ffactor</a>,
-<a href="../api_java/db_set_h_nelem.html">Db.set_h_nelem</a>,
-<a href="../api_java/db_set_lorder.html">Db.set_lorder</a>,
-<a href="../api_java/db_set_pagesize.html">Db.set_pagesize</a>,
-<a href="../api_java/db_set_q_extentsize.html">Db.set_q_extentsize</a>,
-<a href="../api_java/db_set_re_delim.html">Db.set_re_delim</a>,
-<a href="../api_java/db_set_re_len.html">Db.set_re_len</a>,
-<a href="../api_java/db_set_re_pad.html">Db.set_re_pad</a>,
-<a href="../api_java/db_set_re_source.html">Db.set_re_source</a>,
-<a href="../api_java/db_stat.html">Db.stat</a>,
-<a href="../api_java/db_sync.html">Db.sync</a>,
-<a href="../api_java/db_upgrade.html">Db.upgrade</a>
-and
-<a href="../api_java/db_verify.html">Db.verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/db_remove.html b/bdb/docs/api_java/db_remove.html
deleted file mode 100644
index d1238451cc4..00000000000
--- a/bdb/docs/api_java/db_remove.html
+++ /dev/null
@@ -1,104 +0,0 @@
-<!--$Id: db_remove.so,v 10.20 2000/10/25 15:24:44 dda Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db.remove</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db.remove</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-import java.io.FileNotFoundException;
-<p>
-public void remove(String file, String database, int flags)
- throws DbException, FileNotFoundException;
-</pre></h3>
-<h1>Description</h1>
-<p>The Db.remove interface removes the database specified by the
-<b>file</b> and <b>database</b> arguments. If no <b>database</b> is
-specified, the physical file represented by <b>file</b> is removed,
-incidentally removing all databases that it contained.
-<p>If a physical file is being removed and logging is currently enabled in
-the database environment, no database in the file may be open when the
-Db.remove method is called. Otherwise, no reference count of database
-use is maintained by Berkeley DB. Applications should not remove databases that
-are currently in use. In particular, some architectures do not permit
-the removal of files with open handles. On these architectures, attempts
-to remove databases that are currently in use will fail.
-<p>The <b>flags</b> parameter is currently unused, and must be set to 0.
-<p>Once Db.remove has been called, regardless of its return, the
-<a href="../api_java/db_class.html">Db</a> handle may not be accessed again.
-<p>The Db.remove method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Environment Variables</h1>
-<p><dl compact>
-<p><dt>DB_HOME<dd>If the <b>dbenv</b> argument to <a href="../api_c/db_create.html">db_create</a> was initialized using
-<a href="../api_java/env_open.html">DbEnv.open</a> the environment variable <b>DB_HOME</b> may be used
-as the path of the database environment home. Specifically, Db.remove
-is affected by the configuration value DB_DATA_DIR.
-</dl>
-<h1>Errors</h1>
-<p>The Db.remove method may fail and throw an exception encapsulating a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>A database in the file is currently open.
-</dl>
-<p>If the file or directory does not exist, the Db.remove method will
-fail and
-throw a FileNotFoundException exception.
-<p>The Db.remove method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the Db.remove method may fail and throw
-a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls
-will fail in the same way.
-<h3>Class</h3>
-<a href="../api_java/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_java/db_close.html">Db.close</a>,
-<a href="../api_java/db_cursor.html">Db.cursor</a>,
-<a href="../api_java/db_del.html">Db.del</a>,
-<a href="../api_java/db_fd.html">Db.fd</a>,
-<a href="../api_java/db_get.html">Db.get</a>,
-<a href="../api_java/db_get_byteswapped.html">Db.get_byteswapped</a>,
-<a href="../api_java/db_get_type.html">Db.get_type</a>,
-<a href="../api_java/db_join.html">Db.join</a>,
-<a href="../api_java/db_key_range.html">Db.key_range</a>,
-<a href="../api_java/db_open.html">Db.open</a>,
-<a href="../api_java/db_put.html">Db.put</a>,
-<a href="../api_java/db_remove.html">Db.remove</a>,
-<a href="../api_java/db_set_bt_minkey.html">Db.set_bt_minkey</a>,
-<a href="../api_java/db_set_cachesize.html">Db.set_cachesize</a>,
-<a href="../api_java/db_set_errcall.html">Db.set_errcall</a>,
-<a href="../api_java/db_set_errpfx.html">Db.set_errpfx</a>,
-<a href="../api_java/db_set_flags.html">Db.set_flags</a>,
-<a href="../api_java/db_set_h_ffactor.html">Db.set_h_ffactor</a>,
-<a href="../api_java/db_set_h_nelem.html">Db.set_h_nelem</a>,
-<a href="../api_java/db_set_lorder.html">Db.set_lorder</a>,
-<a href="../api_java/db_set_pagesize.html">Db.set_pagesize</a>,
-<a href="../api_java/db_set_q_extentsize.html">Db.set_q_extentsize</a>,
-<a href="../api_java/db_set_re_delim.html">Db.set_re_delim</a>,
-<a href="../api_java/db_set_re_len.html">Db.set_re_len</a>,
-<a href="../api_java/db_set_re_pad.html">Db.set_re_pad</a>,
-<a href="../api_java/db_set_re_source.html">Db.set_re_source</a>,
-<a href="../api_java/db_stat.html">Db.stat</a>,
-<a href="../api_java/db_sync.html">Db.sync</a>,
-<a href="../api_java/db_upgrade.html">Db.upgrade</a>
-and
-<a href="../api_java/db_verify.html">Db.verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/db_rename.html b/bdb/docs/api_java/db_rename.html
deleted file mode 100644
index b34f20a26a5..00000000000
--- a/bdb/docs/api_java/db_rename.html
+++ /dev/null
@@ -1,105 +0,0 @@
-<!--$Id: db_rename.so,v 10.7 2000/10/25 15:24:44 dda Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db.rename</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db.rename</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-import java.io.FileNotFoundException;
-<p>
-public void rename(String file, String database, String newname, int flags)
- throws DbException, FileNotFoundException;
-</pre></h3>
-<h1>Description</h1>
-<p>The Db.rename interface renames the database specified by the
-<b>file</b> and <b>database</b> arguments to <b>newname</b>. If no
-<b>database</b> is specified, the physical file represented by
-<b>file</b> is renamed, incidentally renaming all databases that it
-contained.
-<p>If a physical file is being renamed and logging is currently enabled in
-the database environment, no database in the file may be open when the
-Db.rename method is called. Otherwise, no reference count of database
-use is maintained by Berkeley DB. Applications should not rename databases that
-are currently in use. In particular, some architectures do not permit
-renaming files with open handles. On these architectures, attempts to
-rename databases that are currently in use will fail.
-<p>The <b>flags</b> parameter is currently unused, and must be set to 0.
-<p>Once Db.rename has been called, regardless of its return, the
-<a href="../api_java/db_class.html">Db</a> handle may not be accessed again.
-<p>The Db.rename method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Environment Variables</h1>
-<p><dl compact>
-<p><dt>DB_HOME<dd>If the <b>dbenv</b> argument to <a href="../api_c/db_create.html">db_create</a> was initialized using
-<a href="../api_java/env_open.html">DbEnv.open</a> the environment variable <b>DB_HOME</b> may be used
-as the path of the database environment home. Specifically, Db.rename
-is affected by the configuration value DB_DATA_DIR.
-</dl>
-<h1>Errors</h1>
-<p>The Db.rename method may fail and throw an exception encapsulating a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>A database in the file is currently open.
-</dl>
-<p>If the file or directory does not exist, the Db.rename method will
-fail and
-throw a FileNotFoundException exception.
-<p>The Db.rename method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the Db.rename method may fail and throw
-a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls
-will fail in the same way.
-<h3>Class</h3>
-<a href="../api_java/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_java/db_close.html">Db.close</a>,
-<a href="../api_java/db_cursor.html">Db.cursor</a>,
-<a href="../api_java/db_del.html">Db.del</a>,
-<a href="../api_java/db_fd.html">Db.fd</a>,
-<a href="../api_java/db_get.html">Db.get</a>,
-<a href="../api_java/db_get_byteswapped.html">Db.get_byteswapped</a>,
-<a href="../api_java/db_get_type.html">Db.get_type</a>,
-<a href="../api_java/db_join.html">Db.join</a>,
-<a href="../api_java/db_key_range.html">Db.key_range</a>,
-<a href="../api_java/db_open.html">Db.open</a>,
-<a href="../api_java/db_put.html">Db.put</a>,
-<a href="../api_java/db_remove.html">Db.remove</a>,
-<a href="../api_java/db_set_bt_minkey.html">Db.set_bt_minkey</a>,
-<a href="../api_java/db_set_cachesize.html">Db.set_cachesize</a>,
-<a href="../api_java/db_set_errcall.html">Db.set_errcall</a>,
-<a href="../api_java/db_set_errpfx.html">Db.set_errpfx</a>,
-<a href="../api_java/db_set_flags.html">Db.set_flags</a>,
-<a href="../api_java/db_set_h_ffactor.html">Db.set_h_ffactor</a>,
-<a href="../api_java/db_set_h_nelem.html">Db.set_h_nelem</a>,
-<a href="../api_java/db_set_lorder.html">Db.set_lorder</a>,
-<a href="../api_java/db_set_pagesize.html">Db.set_pagesize</a>,
-<a href="../api_java/db_set_q_extentsize.html">Db.set_q_extentsize</a>,
-<a href="../api_java/db_set_re_delim.html">Db.set_re_delim</a>,
-<a href="../api_java/db_set_re_len.html">Db.set_re_len</a>,
-<a href="../api_java/db_set_re_pad.html">Db.set_re_pad</a>,
-<a href="../api_java/db_set_re_source.html">Db.set_re_source</a>,
-<a href="../api_java/db_stat.html">Db.stat</a>,
-<a href="../api_java/db_sync.html">Db.sync</a>,
-<a href="../api_java/db_upgrade.html">Db.upgrade</a>
-and
-<a href="../api_java/db_verify.html">Db.verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/db_set_append_recno.html b/bdb/docs/api_java/db_set_append_recno.html
deleted file mode 100644
index 8a4d4a0df24..00000000000
--- a/bdb/docs/api_java/db_set_append_recno.html
+++ /dev/null
@@ -1,75 +0,0 @@
-<!--$Id: db_set_append_recno.so,v 1.3 2000/07/18 16:19:44 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db.set_append_recno</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db.set_append_recno</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public interface DbAppendRecno
-{
- public abstract void db_append_recno(Db db, Dbt data, int recno);
- throws DbException;
-}
-public class Db
-{
- public void set_append_recno(DbAppendRecno db_append_recno)
- throws DbException;
- ...
-}
-</pre></h3>
-<h1>Description</h1>
-<p>When using the <a href="../api_java/db_put.html#DB_APPEND">Db.DB_APPEND</a> option of the <a href="../api_java/db_put.html">Db.put</a> method,
-it may be useful to modify the stored data based on the generated key.
-If a callback method is specified using the
-Db.set_append_recno method, it will be called after the record number
-has been selected but before the data has been stored.
-The callback function must throw a <a href="../api_java/except_class.html">DbException</a> object to
-encapsulate the error on failure. That object will be thrown to
-caller of <a href="../api_java/db_put.html">Db.put</a>.
-<p>The called function must take three arguments: a reference to the
-enclosing database handle, the data <a href="../api_java/dbt_class.html">Dbt</a> to be stored and the
-selected record number. The called function may then modify the data
-<a href="../api_java/dbt_class.html">Dbt</a>.
-<p>The Db.set_append_recno interface may only be used to configure Berkeley DB before
-the <a href="../api_java/db_open.html">Db.open</a> interface is called.
-<p>The Db.set_append_recno method throws an exception that encapsulates a non-zero error value on
-failure.
-<h3>Class</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_java/env_close.html">DbEnv.close</a>,
-<a href="../api_java/env_open.html">DbEnv.open</a>,
-<a href="../api_java/env_remove.html">DbEnv.remove</a>,
-<a href="../api_java/env_strerror.html">DbEnv.strerror</a>,
-<a href="../api_java/env_version.html">DbEnv.get_version_string</a>
-<a href="../api_java/env_set_cachesize.html">DbEnv.set_cachesize</a>,
-<a href="../api_java/env_set_errcall.html">DbEnv.set_errcall</a>,
-<a href="../api_java/env_set_error_stream.html">DbEnv.set_error_stream</a>,
-<a href="../api_java/env_set_errpfx.html">DbEnv.set_errpfx</a>,
-<a href="../api_java/env_set_flags.html">DbEnv.set_flags</a>,
-<a href="../api_java/env_set_mutexlocks.html">DbEnv.set_mutexlocks</a>,
-and
-<a href="../api_java/env_set_verbose.html">DbEnv.set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/db_set_bt_compare.html b/bdb/docs/api_java/db_set_bt_compare.html
deleted file mode 100644
index 2a2ea869b1e..00000000000
--- a/bdb/docs/api_java/db_set_bt_compare.html
+++ /dev/null
@@ -1,105 +0,0 @@
-<!--$Id: db_set_bt_compare.so,v 10.24 2000/10/26 15:20:40 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db.set_bt_compare</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db.set_bt_compare</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public interface DbBtreeCompare
-{
- public abstract int bt_compare(Db db, Dbt dbt1, Dbt dbt2);
-}
-public class Db
-{
- public void set_bt_compare(DbBtreeCompare bt_compare)
- throws DbException;
- ...
-}
-</pre></h3>
-<h1>Description</h1>
-<p>Set the Btree key comparison function. The comparison function is
-called when it is necessary to compare a key specified by the
-application with a key currently stored in the tree. The first argument
-to the comparison function is the <a href="../api_java/dbt_class.html">Dbt</a> representing the
-application supplied key, the second is the current tree's key.
-<p>The comparison function must return an integer value less than, equal
-to, or greater than zero if the first key argument is considered to be
-respectively less than, equal to, or greater than the second key
-argument. In addition, the comparison function must cause the keys in
-the database to be <i>well-ordered</i>. The comparison function
-must correctly handle any key values used by the application (possibly
-including zero-length keys). In addition, when Btree key prefix
-comparison is being performed (see <a href="../api_java/db_set_bt_prefix.html">Db.set_bt_prefix</a> for more
-information), the comparison routine may be passed a prefix of any
-database key. The <b>data</b> and <b>size</b> fields of the
-<a href="../api_java/dbt_class.html">Dbt</a> are the only fields that may be used for the purposes of
-this comparison.
-<p>If no comparison function is specified, the keys are compared lexically,
-with shorter keys collating before longer keys. The same comparison
-method must be used each time a particular Btree is opened.
-<p>The Db.set_bt_compare interface may only be used to configure Berkeley DB before
-the <a href="../api_java/db_open.html">Db.open</a> interface is called.
-<p>The Db.set_bt_compare method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_java/db_open.html">Db.open</a> was called.
-</dl>
-<h3>Class</h3>
-<a href="../api_java/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_java/db_close.html">Db.close</a>,
-<a href="../api_java/db_cursor.html">Db.cursor</a>,
-<a href="../api_java/db_del.html">Db.del</a>,
-<a href="../api_java/db_fd.html">Db.fd</a>,
-<a href="../api_java/db_get.html">Db.get</a>,
-<a href="../api_java/db_get_byteswapped.html">Db.get_byteswapped</a>,
-<a href="../api_java/db_get_type.html">Db.get_type</a>,
-<a href="../api_java/db_join.html">Db.join</a>,
-<a href="../api_java/db_key_range.html">Db.key_range</a>,
-<a href="../api_java/db_open.html">Db.open</a>,
-<a href="../api_java/db_put.html">Db.put</a>,
-<a href="../api_java/db_remove.html">Db.remove</a>,
-<a href="../api_java/db_set_bt_minkey.html">Db.set_bt_minkey</a>,
-<a href="../api_java/db_set_cachesize.html">Db.set_cachesize</a>,
-<a href="../api_java/db_set_errcall.html">Db.set_errcall</a>,
-<a href="../api_java/db_set_errpfx.html">Db.set_errpfx</a>,
-<a href="../api_java/db_set_flags.html">Db.set_flags</a>,
-<a href="../api_java/db_set_h_ffactor.html">Db.set_h_ffactor</a>,
-<a href="../api_java/db_set_h_nelem.html">Db.set_h_nelem</a>,
-<a href="../api_java/db_set_lorder.html">Db.set_lorder</a>,
-<a href="../api_java/db_set_pagesize.html">Db.set_pagesize</a>,
-<a href="../api_java/db_set_q_extentsize.html">Db.set_q_extentsize</a>,
-<a href="../api_java/db_set_re_delim.html">Db.set_re_delim</a>,
-<a href="../api_java/db_set_re_len.html">Db.set_re_len</a>,
-<a href="../api_java/db_set_re_pad.html">Db.set_re_pad</a>,
-<a href="../api_java/db_set_re_source.html">Db.set_re_source</a>,
-<a href="../api_java/db_stat.html">Db.stat</a>,
-<a href="../api_java/db_sync.html">Db.sync</a>,
-<a href="../api_java/db_upgrade.html">Db.upgrade</a>
-and
-<a href="../api_java/db_verify.html">Db.verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/db_set_bt_minkey.html b/bdb/docs/api_java/db_set_bt_minkey.html
deleted file mode 100644
index dc7c1745123..00000000000
--- a/bdb/docs/api_java/db_set_bt_minkey.html
+++ /dev/null
@@ -1,85 +0,0 @@
-<!--$Id: db_set_bt_minkey.so,v 10.14 2000/05/01 21:57:43 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db.set_bt_minkey</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db.set_bt_minkey</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public int set_bt_minkey(int bt_minkey)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>Set the minimum number of keys that will be stored on any single
-Btree page.
-<p>This value is used to determine which keys will be stored on overflow
-pages, i.e. if a key or data item is larger than the underlying database
-page size divided by the <b>bt_minkey</b> value, it will be stored on
-overflow pages instead of within the page itself. The <b>bt_minkey</b>
-value specified must be at least 2; if <b>bt_minkey</b> is not explicitly
-set, a value of 2 is used.
-<p>The Db.set_bt_minkey interface may only be used to configure Berkeley DB before
-the <a href="../api_java/db_open.html">Db.open</a> interface is called.
-<p>The Db.set_bt_minkey method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_java/db_open.html">Db.open</a> was called.
-</dl>
-<h3>Class</h3>
-<a href="../api_java/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_java/db_close.html">Db.close</a>,
-<a href="../api_java/db_cursor.html">Db.cursor</a>,
-<a href="../api_java/db_del.html">Db.del</a>,
-<a href="../api_java/db_fd.html">Db.fd</a>,
-<a href="../api_java/db_get.html">Db.get</a>,
-<a href="../api_java/db_get_byteswapped.html">Db.get_byteswapped</a>,
-<a href="../api_java/db_get_type.html">Db.get_type</a>,
-<a href="../api_java/db_join.html">Db.join</a>,
-<a href="../api_java/db_key_range.html">Db.key_range</a>,
-<a href="../api_java/db_open.html">Db.open</a>,
-<a href="../api_java/db_put.html">Db.put</a>,
-<a href="../api_java/db_remove.html">Db.remove</a>,
-<a href="../api_java/db_set_bt_minkey.html">Db.set_bt_minkey</a>,
-<a href="../api_java/db_set_cachesize.html">Db.set_cachesize</a>,
-<a href="../api_java/db_set_errcall.html">Db.set_errcall</a>,
-<a href="../api_java/db_set_errpfx.html">Db.set_errpfx</a>,
-<a href="../api_java/db_set_flags.html">Db.set_flags</a>,
-<a href="../api_java/db_set_h_ffactor.html">Db.set_h_ffactor</a>,
-<a href="../api_java/db_set_h_nelem.html">Db.set_h_nelem</a>,
-<a href="../api_java/db_set_lorder.html">Db.set_lorder</a>,
-<a href="../api_java/db_set_pagesize.html">Db.set_pagesize</a>,
-<a href="../api_java/db_set_q_extentsize.html">Db.set_q_extentsize</a>,
-<a href="../api_java/db_set_re_delim.html">Db.set_re_delim</a>,
-<a href="../api_java/db_set_re_len.html">Db.set_re_len</a>,
-<a href="../api_java/db_set_re_pad.html">Db.set_re_pad</a>,
-<a href="../api_java/db_set_re_source.html">Db.set_re_source</a>,
-<a href="../api_java/db_stat.html">Db.stat</a>,
-<a href="../api_java/db_sync.html">Db.sync</a>,
-<a href="../api_java/db_upgrade.html">Db.upgrade</a>
-and
-<a href="../api_java/db_verify.html">Db.verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/db_set_bt_prefix.html b/bdb/docs/api_java/db_set_bt_prefix.html
deleted file mode 100644
index a6e823969ca..00000000000
--- a/bdb/docs/api_java/db_set_bt_prefix.html
+++ /dev/null
@@ -1,106 +0,0 @@
-<!--$Id: db_set_bt_prefix.so,v 10.25 2000/09/08 21:35:26 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db.set_bt_prefix</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db.set_bt_prefix</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public interface DbBtreePrefix
-{
- public abstract int bt_prefix(Db db, Dbt dbt1, Dbt dbt2);
-}
-public class Db
-{
- public void set_bt_prefix(DbBtreePrefix bt_prefix)
- throws DbException;
- ...
-}
-</pre></h3>
-<h1>Description</h1>
-<p>Set the Btree prefix function. The prefix function must return the
-number of bytes of the second key argument that would be required by
-the Btree key comparison function to determine the second key argument's
-ordering relationship with respect to the first key argument. If the
-two keys are equal, the key length should be returned. The prefix
-function must correctly handle any key values used by the application
-(possibly including zero-length keys). The <b>data</b> and
-<b>size</b> fields of the <a href="../api_java/dbt_class.html">Dbt</a> are the only fields that may be
-used for the purposes of this determination.
-<p>The prefix function is used to determine the amount by which keys stored
-on the Btree internal pages can be safely truncated without losing their
-uniqueness. See the <a href="../ref/am_conf/bt_prefix.html">Btree
-prefix comparison</a> section of the Reference Guide for more details about
-how this works. The usefulness of this is data dependent, but in some
-data sets can produce significantly reduced tree sizes and search times.
-<p>If no prefix function or key comparison function is specified by the
-application, a default lexical comparison function is used as the prefix
-function. If no prefix function is specified and a key comparison
-function is specified, no prefix function is used. It is an error to
-specify a prefix function without also specifying a key comparison
-function.
-<p>The Db.set_bt_prefix interface may only be used to configure Berkeley DB before
-the <a href="../api_java/db_open.html">Db.open</a> interface is called.
-<p>The Db.set_bt_prefix method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_java/db_open.html">Db.open</a> was called.
-</dl>
-<h3>Class</h3>
-<a href="../api_java/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_java/db_close.html">Db.close</a>,
-<a href="../api_java/db_cursor.html">Db.cursor</a>,
-<a href="../api_java/db_del.html">Db.del</a>,
-<a href="../api_java/db_fd.html">Db.fd</a>,
-<a href="../api_java/db_get.html">Db.get</a>,
-<a href="../api_java/db_get_byteswapped.html">Db.get_byteswapped</a>,
-<a href="../api_java/db_get_type.html">Db.get_type</a>,
-<a href="../api_java/db_join.html">Db.join</a>,
-<a href="../api_java/db_key_range.html">Db.key_range</a>,
-<a href="../api_java/db_open.html">Db.open</a>,
-<a href="../api_java/db_put.html">Db.put</a>,
-<a href="../api_java/db_remove.html">Db.remove</a>,
-<a href="../api_java/db_set_bt_minkey.html">Db.set_bt_minkey</a>,
-<a href="../api_java/db_set_cachesize.html">Db.set_cachesize</a>,
-<a href="../api_java/db_set_errcall.html">Db.set_errcall</a>,
-<a href="../api_java/db_set_errpfx.html">Db.set_errpfx</a>,
-<a href="../api_java/db_set_flags.html">Db.set_flags</a>,
-<a href="../api_java/db_set_h_ffactor.html">Db.set_h_ffactor</a>,
-<a href="../api_java/db_set_h_nelem.html">Db.set_h_nelem</a>,
-<a href="../api_java/db_set_lorder.html">Db.set_lorder</a>,
-<a href="../api_java/db_set_pagesize.html">Db.set_pagesize</a>,
-<a href="../api_java/db_set_q_extentsize.html">Db.set_q_extentsize</a>,
-<a href="../api_java/db_set_re_delim.html">Db.set_re_delim</a>,
-<a href="../api_java/db_set_re_len.html">Db.set_re_len</a>,
-<a href="../api_java/db_set_re_pad.html">Db.set_re_pad</a>,
-<a href="../api_java/db_set_re_source.html">Db.set_re_source</a>,
-<a href="../api_java/db_stat.html">Db.stat</a>,
-<a href="../api_java/db_sync.html">Db.sync</a>,
-<a href="../api_java/db_upgrade.html">Db.upgrade</a>
-and
-<a href="../api_java/db_verify.html">Db.verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/db_set_cachesize.html b/bdb/docs/api_java/db_set_cachesize.html
deleted file mode 100644
index 67313aa5dd7..00000000000
--- a/bdb/docs/api_java/db_set_cachesize.html
+++ /dev/null
@@ -1,99 +0,0 @@
-<!--$Id: db_set_cachesize.so,v 10.17 2000/05/01 21:57:43 bostic Exp $-->
-<!--$Id: m4.cachesize,v 10.7 2000/02/11 18:54:45 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db.set_cachesize</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db.set_cachesize</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public int set_cachesize(int gbytes, int bytes, int ncache)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>Set the size of the database's shared memory buffer pool, i.e., the cache,
-to <b>gbytes</b> gigabytes plus <b>bytes</b>. The cache should be the
-size of the normal working data set of the application, with some small
-amount of additional memory for unusual situations. (Note, the working
-set is not the same as the number of simultaneously referenced pages, and
-should be quite a bit larger!)
-<p>The default cache size is 256KB, and may not be specified as less than
-20KB. Any cache size less than 500MB is automatically increased by 25%
-to account for buffer pool overhead, cache sizes larger than 500MB are
-used as specified. For information on tuning the Berkeley DB cache size, see
-<a href="../ref/am_conf/cachesize.html">Selecting a cache size</a>.
-<p>It is possible to specify caches to Berkeley DB that are large enough so that
-they cannot be allocated contiguously on some architectures, e.g., some
-releases of Solaris limit the amount of memory that may be allocated
-contiguously by a process. If <b>ncache</b> is 0 or 1, the cache will
-be allocated contiguously in memory. If it is greater than 1, the cache
-will be broken up into <b>ncache</b> equally sized separate pieces of
-memory.
-<p>As databases opened within Berkeley DB environments use the cache specified to
-the environment, it is an error to attempt to set a cache in a database
-created within an environment.
-<p>The Db.set_cachesize interface may only be used to configure Berkeley DB before
-the <a href="../api_java/db_open.html">Db.open</a> interface is called.
-<p>The Db.set_cachesize method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>The specified cache size was impossibly small.
-</dl>
-<h3>Class</h3>
-<a href="../api_java/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_java/db_close.html">Db.close</a>,
-<a href="../api_java/db_cursor.html">Db.cursor</a>,
-<a href="../api_java/db_del.html">Db.del</a>,
-<a href="../api_java/db_fd.html">Db.fd</a>,
-<a href="../api_java/db_get.html">Db.get</a>,
-<a href="../api_java/db_get_byteswapped.html">Db.get_byteswapped</a>,
-<a href="../api_java/db_get_type.html">Db.get_type</a>,
-<a href="../api_java/db_join.html">Db.join</a>,
-<a href="../api_java/db_key_range.html">Db.key_range</a>,
-<a href="../api_java/db_open.html">Db.open</a>,
-<a href="../api_java/db_put.html">Db.put</a>,
-<a href="../api_java/db_remove.html">Db.remove</a>,
-<a href="../api_java/db_set_bt_minkey.html">Db.set_bt_minkey</a>,
-<a href="../api_java/db_set_cachesize.html">Db.set_cachesize</a>,
-<a href="../api_java/db_set_errcall.html">Db.set_errcall</a>,
-<a href="../api_java/db_set_errpfx.html">Db.set_errpfx</a>,
-<a href="../api_java/db_set_flags.html">Db.set_flags</a>,
-<a href="../api_java/db_set_h_ffactor.html">Db.set_h_ffactor</a>,
-<a href="../api_java/db_set_h_nelem.html">Db.set_h_nelem</a>,
-<a href="../api_java/db_set_lorder.html">Db.set_lorder</a>,
-<a href="../api_java/db_set_pagesize.html">Db.set_pagesize</a>,
-<a href="../api_java/db_set_q_extentsize.html">Db.set_q_extentsize</a>,
-<a href="../api_java/db_set_re_delim.html">Db.set_re_delim</a>,
-<a href="../api_java/db_set_re_len.html">Db.set_re_len</a>,
-<a href="../api_java/db_set_re_pad.html">Db.set_re_pad</a>,
-<a href="../api_java/db_set_re_source.html">Db.set_re_source</a>,
-<a href="../api_java/db_stat.html">Db.stat</a>,
-<a href="../api_java/db_sync.html">Db.sync</a>,
-<a href="../api_java/db_upgrade.html">Db.upgrade</a>
-and
-<a href="../api_java/db_verify.html">Db.verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/db_set_dup_compare.html b/bdb/docs/api_java/db_set_dup_compare.html
deleted file mode 100644
index ea12dda35bc..00000000000
--- a/bdb/docs/api_java/db_set_dup_compare.html
+++ /dev/null
@@ -1,102 +0,0 @@
-<!--$Id: db_set_dup_compare.so,v 10.21 2000/10/26 15:20:40 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db.set_dup_compare</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db.set_dup_compare</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public interface DbDupCompare
-{
- public abstract int dup_compare(Db db, Dbt dbt1, Dbt dbt2);
-}
-public class Db
-{
- public void set_dup_compare(DbDupCompare dup_compare)
- throws DbException;
- ...
-}
-</pre></h3>
-<h1>Description</h1>
-<p>Set the duplicate data item comparison function. The comparison function
-is called when it is necessary to compare a data item specified by the
-application with a data item currently stored in the tree. The first
-argument to the comparison function is the <a href="../api_java/dbt_class.html">Dbt</a> representing the
-application's data item, the second is the current tree's data item.
-<p>The comparison function must return an integer value less than, equal
-to, or greater than zero if the first data item argument is considered
-to be respectively less than, equal to, or greater than the second data
-item argument. In addition, the comparison function must cause the data
-items in the set to be <i>well-ordered</i>. The comparison function
-must correctly handle any data item values used by the application
-(possibly including zero-length data items). The <b>data</b> and
-<b>size</b> fields of the <a href="../api_java/dbt_class.html">Dbt</a> are the only fields that may be
-used for the purposes of this comparison.
-<p>If no comparison function is specified, the data items are compared
-lexically, with shorter data items collating before longer data items.
-The same duplicate data item comparison method must be used each time
-a particular Btree is opened.
-<p>The Db.set_dup_compare interface may only be used to configure Berkeley DB before
-the <a href="../api_java/db_open.html">Db.open</a> interface is called.
-<p>The Db.set_dup_compare method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h3>Class</h3>
-<a href="../api_java/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_java/db_close.html">Db.close</a>,
-<a href="../api_java/db_cursor.html">Db.cursor</a>,
-<a href="../api_java/db_del.html">Db.del</a>,
-<a href="../api_java/db_fd.html">Db.fd</a>,
-<a href="../api_java/db_get.html">Db.get</a>,
-<a href="../api_java/db_get_byteswapped.html">Db.get_byteswapped</a>,
-<a href="../api_java/db_get_type.html">Db.get_type</a>,
-<a href="../api_java/db_join.html">Db.join</a>,
-<a href="../api_java/db_key_range.html">Db.key_range</a>,
-<a href="../api_java/db_open.html">Db.open</a>,
-<a href="../api_java/db_put.html">Db.put</a>,
-<a href="../api_java/db_remove.html">Db.remove</a>,
-<a href="../api_java/db_set_bt_minkey.html">Db.set_bt_minkey</a>,
-<a href="../api_java/db_set_cachesize.html">Db.set_cachesize</a>,
-<a href="../api_java/db_set_errcall.html">Db.set_errcall</a>,
-<a href="../api_java/db_set_errpfx.html">Db.set_errpfx</a>,
-<a href="../api_java/db_set_flags.html">Db.set_flags</a>,
-<a href="../api_java/db_set_h_ffactor.html">Db.set_h_ffactor</a>,
-<a href="../api_java/db_set_h_nelem.html">Db.set_h_nelem</a>,
-<a href="../api_java/db_set_lorder.html">Db.set_lorder</a>,
-<a href="../api_java/db_set_pagesize.html">Db.set_pagesize</a>,
-<a href="../api_java/db_set_q_extentsize.html">Db.set_q_extentsize</a>,
-<a href="../api_java/db_set_re_delim.html">Db.set_re_delim</a>,
-<a href="../api_java/db_set_re_len.html">Db.set_re_len</a>,
-<a href="../api_java/db_set_re_pad.html">Db.set_re_pad</a>,
-<a href="../api_java/db_set_re_source.html">Db.set_re_source</a>,
-<a href="../api_java/db_stat.html">Db.stat</a>,
-<a href="../api_java/db_sync.html">Db.sync</a>,
-<a href="../api_java/db_upgrade.html">Db.upgrade</a>
-and
-<a href="../api_java/db_verify.html">Db.verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/db_set_errcall.html b/bdb/docs/api_java/db_set_errcall.html
deleted file mode 100644
index 62f39f6b3ff..00000000000
--- a/bdb/docs/api_java/db_set_errcall.html
+++ /dev/null
@@ -1,81 +0,0 @@
-<!--$Id: db_set_errcall.so,v 10.7 1999/12/20 08:52:28 bostic Exp $-->
-<!--$Id: m4.errset,v 10.8 2000/02/19 20:57:57 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db.set_errcall</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db.set_errcall</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public interface DbErrcall
-{
- public abstract void errcall(String errpfx, String msg);
-}
-public class Db
-{
- public void set_errcall(DbErrcall errcall);
- ...
-}
-</pre></h3>
-<h1>Description</h1>
-When an error occurs in the Berkeley DB library, an exception is thrown. In
-some cases, however, the <b>errno</b> value may be insufficient to
-completely describe the cause of the error, especially during initial
-application debugging.
-<p>The Db.set_errcall method is used to enhance the mechanism for reporting error
-messages to the application. The <a href="../api_java/env_set_errcall.html">DbEnv.set_errcall</a> method must be
-called with a single object argument. The object's class must implement
-the DbErrcall interface. In some cases, when an error occurs, Berkeley DB will
-invoke the object's errcall() method with two arguments; the first is the
-prefix string (as previously set by <a href="../api_java/db_set_errpfx.html">Db.set_errpfx</a> or
-<a href="../api_java/env_set_errpfx.html">DbEnv.set_errpfx</a>), the second will be an error message string.
-It is up to this method to display the message in an appropriate manner.
-<p>Alternatively, you can use the <a href="../api_java/env_set_error_stream.html">DbEnv.set_error_stream</a> method to display
-the additional information via an output stream. You should not mix these
-approaches.
-<p>This error logging enhancement does not slow performance or significantly
-increase application size, and may be run during normal operation as well
-as during application debugging.
-<p>For <a href="../api_java/db_class.html">Db</a> handles opened inside of Berkeley DB environments, calling the
-Db.set_errcall method affects the entire environment and is equivalent to calling
-the <a href="../api_java/env_set_errcall.html">DbEnv.set_errcall</a> method.
-<p>The Db.set_errcall interface may be used to configure Berkeley DB at any time
-during the life of the application.
-<h3>Class</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_java/env_close.html">DbEnv.close</a>,
-<a href="../api_java/env_open.html">DbEnv.open</a>,
-<a href="../api_java/env_remove.html">DbEnv.remove</a>,
-<a href="../api_java/env_strerror.html">DbEnv.strerror</a>,
-<a href="../api_java/env_version.html">DbEnv.get_version_string</a>
-<a href="../api_java/env_set_cachesize.html">DbEnv.set_cachesize</a>,
-<a href="../api_java/env_set_errcall.html">DbEnv.set_errcall</a>,
-<a href="../api_java/env_set_error_stream.html">DbEnv.set_error_stream</a>,
-<a href="../api_java/env_set_errpfx.html">DbEnv.set_errpfx</a>,
-<a href="../api_java/env_set_flags.html">DbEnv.set_flags</a>,
-<a href="../api_java/env_set_mutexlocks.html">DbEnv.set_mutexlocks</a>,
-and
-<a href="../api_java/env_set_verbose.html">DbEnv.set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/db_set_errpfx.html b/bdb/docs/api_java/db_set_errpfx.html
deleted file mode 100644
index 36db5bd8af4..00000000000
--- a/bdb/docs/api_java/db_set_errpfx.html
+++ /dev/null
@@ -1,55 +0,0 @@
-<!--$Id: db_set_errpfx.so,v 10.6 1999/12/20 08:52:28 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db.set_errpfx</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db.set_errpfx</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public void set_errpfx(String errpfx);
-</pre></h3>
-<h1>Description</h1>
-<p>Set the prefix string that appears before error messages issued by Berkeley DB.
-<p>For <a href="../api_java/db_class.html">Db</a> handles opened inside of Berkeley DB environments, calling the
-Db.set_errpfx method affects the entire environment and is equivalent to calling
-the <a href="../api_java/env_set_errpfx.html">DbEnv.set_errpfx</a> method.
-<p>The Db.set_errpfx interface may be used to configure Berkeley DB at any time
-during the life of the application.
-<h3>Class</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_java/env_close.html">DbEnv.close</a>,
-<a href="../api_java/env_open.html">DbEnv.open</a>,
-<a href="../api_java/env_remove.html">DbEnv.remove</a>,
-<a href="../api_java/env_strerror.html">DbEnv.strerror</a>,
-<a href="../api_java/env_version.html">DbEnv.get_version_string</a>
-<a href="../api_java/env_set_cachesize.html">DbEnv.set_cachesize</a>,
-<a href="../api_java/env_set_errcall.html">DbEnv.set_errcall</a>,
-<a href="../api_java/env_set_error_stream.html">DbEnv.set_error_stream</a>,
-<a href="../api_java/env_set_errpfx.html">DbEnv.set_errpfx</a>,
-<a href="../api_java/env_set_flags.html">DbEnv.set_flags</a>,
-<a href="../api_java/env_set_mutexlocks.html">DbEnv.set_mutexlocks</a>,
-and
-<a href="../api_java/env_set_verbose.html">DbEnv.set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/db_set_feedback.html b/bdb/docs/api_java/db_set_feedback.html
deleted file mode 100644
index b6dc64fc220..00000000000
--- a/bdb/docs/api_java/db_set_feedback.html
+++ /dev/null
@@ -1,95 +0,0 @@
-<!--$Id: db_set_feedback.so,v 10.16 2000/07/09 19:11:54 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db.set_feedback</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db.set_feedback</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public interface DbFeedback
-{
- public abstract void db_feedback(Db db, int opcode, int pct);
-}
-public class Db
-{
- public void set_feedback(DbFeedback db_feedback)
- throws DbException;
- ...
-}
-</pre></h3>
-<h1>Description</h1>
-<p>Some operations performed by the Berkeley DB library can take non-trivial
-amounts of time. The Db.set_feedback method can be used by
-applications to monitor progress within these operations.
-<p>When an operation is likely to take a long time, Berkeley DB will call the
-specified callback method. This method must be declared with
-three arguments: the first will be a reference to the enclosing database
-handle, the second a flag value, and the third the percent of the
-operation that has been completed, specified as an integer value between
-0 and 100. It is up to the callback method to display this
-information in an appropriate manner.
-<p>The <b>opcode</b> argument may take on any of the following values:
-<p><dl compact>
-<p><dt><a name="Db.DB_UPGRADE">Db.DB_UPGRADE</a><dd>The underlying database is being upgraded.
-<p><dt><a name="Db.DB_VERIFY">Db.DB_VERIFY</a><dd>The underlying database is being verified.
-</dl>
-<p>The Db.set_feedback interface may be used to configure Berkeley DB at any time
-during the life of the application.
-<p>The Db.set_feedback method throws an exception that encapsulates a non-zero error value on
-failure.
-<h3>Class</h3>
-<a href="../api_java/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_java/db_close.html">Db.close</a>,
-<a href="../api_java/db_cursor.html">Db.cursor</a>,
-<a href="../api_java/db_del.html">Db.del</a>,
-<a href="../api_java/db_fd.html">Db.fd</a>,
-<a href="../api_java/db_get.html">Db.get</a>,
-<a href="../api_java/db_get_byteswapped.html">Db.get_byteswapped</a>,
-<a href="../api_java/db_get_type.html">Db.get_type</a>,
-<a href="../api_java/db_join.html">Db.join</a>,
-<a href="../api_java/db_key_range.html">Db.key_range</a>,
-<a href="../api_java/db_open.html">Db.open</a>,
-<a href="../api_java/db_put.html">Db.put</a>,
-<a href="../api_java/db_remove.html">Db.remove</a>,
-<a href="../api_java/db_set_bt_minkey.html">Db.set_bt_minkey</a>,
-<a href="../api_java/db_set_cachesize.html">Db.set_cachesize</a>,
-<a href="../api_java/db_set_errcall.html">Db.set_errcall</a>,
-<a href="../api_java/db_set_errpfx.html">Db.set_errpfx</a>,
-<a href="../api_java/db_set_flags.html">Db.set_flags</a>,
-<a href="../api_java/db_set_h_ffactor.html">Db.set_h_ffactor</a>,
-<a href="../api_java/db_set_h_nelem.html">Db.set_h_nelem</a>,
-<a href="../api_java/db_set_lorder.html">Db.set_lorder</a>,
-<a href="../api_java/db_set_pagesize.html">Db.set_pagesize</a>,
-<a href="../api_java/db_set_q_extentsize.html">Db.set_q_extentsize</a>,
-<a href="../api_java/db_set_re_delim.html">Db.set_re_delim</a>,
-<a href="../api_java/db_set_re_len.html">Db.set_re_len</a>,
-<a href="../api_java/db_set_re_pad.html">Db.set_re_pad</a>,
-<a href="../api_java/db_set_re_source.html">Db.set_re_source</a>,
-<a href="../api_java/db_stat.html">Db.stat</a>,
-<a href="../api_java/db_sync.html">Db.sync</a>,
-<a href="../api_java/db_upgrade.html">Db.upgrade</a>
-and
-<a href="../api_java/db_verify.html">Db.verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/db_set_flags.html b/bdb/docs/api_java/db_set_flags.html
deleted file mode 100644
index 2a79213ea45..00000000000
--- a/bdb/docs/api_java/db_set_flags.html
+++ /dev/null
@@ -1,170 +0,0 @@
-<!--$Id: db_set_flags.so,v 10.26 2000/03/17 01:53:58 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db.set_flags</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db.set_flags</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public void set_flags(int flags)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>Calling Db.set_flags is additive, there is no way to clear flags.
-<p>The <b>flags</b> value must be set to 0 or by bitwise inclusively <b>OR</b>'ing together one or more
-of the following values.
-<h3>Btree</h3>
-<p>The following flags may be specified for the Btree access method:
-<p><dl compact>
-<p><dt><a name="Db.DB_DUP">Db.DB_DUP</a><dd>Permit duplicate data items in the tree, i.e. insertion when the key of
-the key/data pair being inserted already exists in the tree will be
-successful. The ordering of duplicates in the tree is determined by the
-order of insertion, unless the ordering is otherwise specified by use of
-a cursor operation. It is an error to specify both Db.DB_DUP and
-Db.DB_RECNUM.
-<p><dt><a name="Db.DB_DUPSORT">Db.DB_DUPSORT</a><dd>Permit duplicate data items in the tree, i.e. insertion when the key of
-the key/data pair being inserted already exists in the tree will be
-successful. The ordering of duplicates in the tree is determined by the
-duplicate comparison function.
-A default, lexical comparison will be used.
-It is an error to specify both Db.DB_DUPSORT and Db.DB_RECNUM.
-<p><dt><a name="Db.DB_RECNUM">Db.DB_RECNUM</a><dd>Support retrieval from the Btree using record numbers. For more
-information, see the DB_GET_RECNO flag to the <a href="../api_java/db_get.html">Db.get</a> and
-<a href="../api_java/dbc_get.html">Dbc.get</a> methods.
-<p>Logical record numbers in Btree databases are mutable in the face of
-record insertion or deletion. See the DB_RENUMBER flag in the Recno
-access method information for further discussion.
-<p>Maintaining record counts within a Btree introduces a serious point of
-contention, namely the page locations where the record counts are stored.
-In addition, the entire tree must be locked during both insertions and
-deletions, effectively single-threading the tree for those operations.
-Specifying DB_RECNUM can result in serious performance degradation for
-some applications and data sets.
-<p>It is an error to specify both DB_DUP and DB_RECNUM.
-<p><dt><a name="Db.DB_REVSPLITOFF">Db.DB_REVSPLITOFF</a><dd>Turn off reverse splitting in the Btree. As pages are emptied in a
-database, the Berkeley DB Btree implementation attempts to coalesce empty pages
-into higher-level pages in order to keep the tree as small as possible
-and minimize tree search time. This can hurt performance in applications
-with cyclical data demands, that is, applications where the database grows
-and shrinks repeatedly. For example, because Berkeley DB does page-level
-locking, the maximum level of concurrency in a database of 2 pages is far
-smaller than that in a database of 100 pages, and so a database that has
-shrunk to a minimal size can cause severe deadlocking when a new cycle of
-data insertion begins.
-</dl>
-<h3>Hash</h3>
-<p>The following flags may be specified for the Hash access method:
-<p><dl compact>
-<p><dt><a name="Db.DB_DUP">Db.DB_DUP</a><dd>Permit duplicate data items in the tree, i.e. insertion when the key of
-the key/data pair being inserted already exists in the tree will be
-successful. The ordering of duplicates in the tree is determined by the
-order of insertion, unless the ordering is otherwise specified by use of
-a cursor operation. It is an error to specify both Db.DB_DUP and
-Db.DB_RECNUM.
-<p><dt><a name="Db.DB_DUPSORT">Db.DB_DUPSORT</a><dd>Permit duplicate data items in the tree, i.e. insertion when the key of
-the key/data pair being inserted already exists in the tree will be
-successful. The ordering of duplicates in the tree is determined by the
-duplicate comparison function.
-A default, lexical comparison will be used.
-It is an error to specify both Db.DB_DUPSORT and Db.DB_RECNUM.
-</dl>
-<h3>Queue</h3>
-<p>There are no additional flags that may be specified for the Queue access
-method.
-<h3>Recno</h3>
-<p>The following flags may be specified for the Recno access method:
-<p><dl compact>
-<p><dt><a name="Db.DB_RENUMBER">Db.DB_RENUMBER</a><dd>Specifying the DB_RENUMBER flag causes the logical record numbers to be
-mutable, and change as records are added to and deleted from the database.
-For example, the deletion of record number 4 causes records numbered 5
-and greater to be renumbered downward by 1. If a cursor was positioned
-to record number 4 before the deletion, it will reference the new record
-number 4, if any such record exists, after the deletion. If a cursor was
-positioned after record number 4 before the deletion, it will be shifted
-downward 1 logical record, continuing to reference the same record as it
-did before.
-<p>Using the <a href="../api_java/db_put.html">Db.put</a> or <a href="../api_java/dbc_put.html">Dbc.put</a> interfaces to create new
-records will cause the creation of multiple records if the record number
-is more than one greater than the largest record currently in the
-database. For example, creating record 28, when record 25 was previously
-the last record in the database, will create records 26 and 27 as well as
-28. Attempts to retrieve records that were created in this manner will
-result in an error return of <a href="../ref/program/errorret.html#DB_KEYEMPTY">Db.DB_KEYEMPTY</a>.
-<p>If a created record is not at the end of the database, all records
-following the new record will be automatically renumbered upward by 1.
-For example, the creation of a new record numbered 8 causes records
-numbered 8 and greater to be renumbered upward by 1. If a cursor was
-positioned to record number 8 or greater before the insertion, it will be
-shifted upward 1 logical record, continuing to reference the same record
-as it did before.
-<p>For these reasons, concurrent access to a Recno database with the
-Db.DB_RENUMBER flag specified may be largely meaningless, although
-it is supported.
-<p><dt><a name="Db.DB_SNAPSHOT">Db.DB_SNAPSHOT</a><dd>This flag specifies that any specified <b>re_source</b> file be read in
-its entirety when <a href="../api_java/db_open.html">Db.open</a> is called. If this flag is not
-specified, the <b>re_source</b> file may be read lazily.
-</dl>
-<p>The Db.set_flags interface may only be used to configure Berkeley DB before
-the <a href="../api_java/db_open.html">Db.open</a> interface is called.
-<p>The Db.set_flags method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h3>Class</h3>
-<a href="../api_java/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_java/db_close.html">Db.close</a>,
-<a href="../api_java/db_cursor.html">Db.cursor</a>,
-<a href="../api_java/db_del.html">Db.del</a>,
-<a href="../api_java/db_fd.html">Db.fd</a>,
-<a href="../api_java/db_get.html">Db.get</a>,
-<a href="../api_java/db_get_byteswapped.html">Db.get_byteswapped</a>,
-<a href="../api_java/db_get_type.html">Db.get_type</a>,
-<a href="../api_java/db_join.html">Db.join</a>,
-<a href="../api_java/db_key_range.html">Db.key_range</a>,
-<a href="../api_java/db_open.html">Db.open</a>,
-<a href="../api_java/db_put.html">Db.put</a>,
-<a href="../api_java/db_remove.html">Db.remove</a>,
-<a href="../api_java/db_set_bt_minkey.html">Db.set_bt_minkey</a>,
-<a href="../api_java/db_set_cachesize.html">Db.set_cachesize</a>,
-<a href="../api_java/db_set_errcall.html">Db.set_errcall</a>,
-<a href="../api_java/db_set_errpfx.html">Db.set_errpfx</a>,
-<a href="../api_java/db_set_flags.html">Db.set_flags</a>,
-<a href="../api_java/db_set_h_ffactor.html">Db.set_h_ffactor</a>,
-<a href="../api_java/db_set_h_nelem.html">Db.set_h_nelem</a>,
-<a href="../api_java/db_set_lorder.html">Db.set_lorder</a>,
-<a href="../api_java/db_set_pagesize.html">Db.set_pagesize</a>,
-<a href="../api_java/db_set_q_extentsize.html">Db.set_q_extentsize</a>,
-<a href="../api_java/db_set_re_delim.html">Db.set_re_delim</a>,
-<a href="../api_java/db_set_re_len.html">Db.set_re_len</a>,
-<a href="../api_java/db_set_re_pad.html">Db.set_re_pad</a>,
-<a href="../api_java/db_set_re_source.html">Db.set_re_source</a>,
-<a href="../api_java/db_stat.html">Db.stat</a>,
-<a href="../api_java/db_sync.html">Db.sync</a>,
-<a href="../api_java/db_upgrade.html">Db.upgrade</a>
-and
-<a href="../api_java/db_verify.html">Db.verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/db_set_h_ffactor.html b/bdb/docs/api_java/db_set_h_ffactor.html
deleted file mode 100644
index c5d10aab05c..00000000000
--- a/bdb/docs/api_java/db_set_h_ffactor.html
+++ /dev/null
@@ -1,86 +0,0 @@
-<!--$Id: db_set_h_ffactor.so,v 10.15 2000/05/01 21:57:43 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db.set_h_ffactor</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db.set_h_ffactor</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public void set_h_ffactor(int h_ffactor)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>Set the desired density within the hash table.
-<p>The density is an approximation of the number of keys allowed to
-accumulate in any one bucket, determining when the hash table grows or
-shrinks. If you know the average sizes of the keys and data in your
-dataset, setting the fill factor can enhance performance. A reasonable
-rule computing fill factor is to set it to:
-<p><blockquote><pre>(pagesize - 32) / (average_key_size + average_data_size + 8)</pre></blockquote>
-<p>If no value is specified, the fill factor will be selected dynamically as
-pages are filled.
-<p>The Db.set_h_ffactor interface may only be used to configure Berkeley DB before
-the <a href="../api_java/db_open.html">Db.open</a> interface is called.
-<p>The Db.set_h_ffactor method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_java/db_open.html">Db.open</a> was called.
-</dl>
-<h3>Class</h3>
-<a href="../api_java/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_java/db_close.html">Db.close</a>,
-<a href="../api_java/db_cursor.html">Db.cursor</a>,
-<a href="../api_java/db_del.html">Db.del</a>,
-<a href="../api_java/db_fd.html">Db.fd</a>,
-<a href="../api_java/db_get.html">Db.get</a>,
-<a href="../api_java/db_get_byteswapped.html">Db.get_byteswapped</a>,
-<a href="../api_java/db_get_type.html">Db.get_type</a>,
-<a href="../api_java/db_join.html">Db.join</a>,
-<a href="../api_java/db_key_range.html">Db.key_range</a>,
-<a href="../api_java/db_open.html">Db.open</a>,
-<a href="../api_java/db_put.html">Db.put</a>,
-<a href="../api_java/db_remove.html">Db.remove</a>,
-<a href="../api_java/db_set_bt_minkey.html">Db.set_bt_minkey</a>,
-<a href="../api_java/db_set_cachesize.html">Db.set_cachesize</a>,
-<a href="../api_java/db_set_errcall.html">Db.set_errcall</a>,
-<a href="../api_java/db_set_errpfx.html">Db.set_errpfx</a>,
-<a href="../api_java/db_set_flags.html">Db.set_flags</a>,
-<a href="../api_java/db_set_h_ffactor.html">Db.set_h_ffactor</a>,
-<a href="../api_java/db_set_h_nelem.html">Db.set_h_nelem</a>,
-<a href="../api_java/db_set_lorder.html">Db.set_lorder</a>,
-<a href="../api_java/db_set_pagesize.html">Db.set_pagesize</a>,
-<a href="../api_java/db_set_q_extentsize.html">Db.set_q_extentsize</a>,
-<a href="../api_java/db_set_re_delim.html">Db.set_re_delim</a>,
-<a href="../api_java/db_set_re_len.html">Db.set_re_len</a>,
-<a href="../api_java/db_set_re_pad.html">Db.set_re_pad</a>,
-<a href="../api_java/db_set_re_source.html">Db.set_re_source</a>,
-<a href="../api_java/db_stat.html">Db.stat</a>,
-<a href="../api_java/db_sync.html">Db.sync</a>,
-<a href="../api_java/db_upgrade.html">Db.upgrade</a>
-and
-<a href="../api_java/db_verify.html">Db.verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/db_set_h_hash.html b/bdb/docs/api_java/db_set_h_hash.html
deleted file mode 100644
index 89bccc1fbb9..00000000000
--- a/bdb/docs/api_java/db_set_h_hash.html
+++ /dev/null
@@ -1,97 +0,0 @@
-<!--$Id: db_set_h_hash.so,v 10.18 2000/07/04 18:28:27 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db.set_h_hash</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db.set_h_hash</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public interface DbHash
-{
- public abstract int hash(Db db, byte[] data, int len);
-}
-public class Db
-{
- public void set_h_hash(DbHash h_hash)
- throws DbException;
- ...
-}
-</pre></h3>
-<h1>Description</h1>
-<p>Set a user defined hash method; if no hash method is specified, a default
-hash method is used. Since no hash method performs equally well on all
-possible data, the user may find that the built-in hash method performs
-poorly with a particular data set. User specified hash functions must
-take a pointer to a byte string and a length as arguments and return a
-value of type
-<b>int</b>.
-The hash function must handle any key values used by the application
-(possibly including zero-length keys).
-<p>If a hash method is specified, <a href="../api_java/db_open.html">Db.open</a> will attempt to determine
-if the hash method specified is the same as the one with which the database
-was created, and will fail if it detects that it is not.
-<p>The Db.set_h_hash interface may only be used to configure Berkeley DB before
-the <a href="../api_java/db_open.html">Db.open</a> interface is called.
-<p>The Db.set_h_hash method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_java/db_open.html">Db.open</a> was called.
-</dl>
-<h3>Class</h3>
-<a href="../api_java/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_java/db_close.html">Db.close</a>,
-<a href="../api_java/db_cursor.html">Db.cursor</a>,
-<a href="../api_java/db_del.html">Db.del</a>,
-<a href="../api_java/db_fd.html">Db.fd</a>,
-<a href="../api_java/db_get.html">Db.get</a>,
-<a href="../api_java/db_get_byteswapped.html">Db.get_byteswapped</a>,
-<a href="../api_java/db_get_type.html">Db.get_type</a>,
-<a href="../api_java/db_join.html">Db.join</a>,
-<a href="../api_java/db_key_range.html">Db.key_range</a>,
-<a href="../api_java/db_open.html">Db.open</a>,
-<a href="../api_java/db_put.html">Db.put</a>,
-<a href="../api_java/db_remove.html">Db.remove</a>,
-<a href="../api_java/db_set_bt_minkey.html">Db.set_bt_minkey</a>,
-<a href="../api_java/db_set_cachesize.html">Db.set_cachesize</a>,
-<a href="../api_java/db_set_errcall.html">Db.set_errcall</a>,
-<a href="../api_java/db_set_errpfx.html">Db.set_errpfx</a>,
-<a href="../api_java/db_set_flags.html">Db.set_flags</a>,
-<a href="../api_java/db_set_h_ffactor.html">Db.set_h_ffactor</a>,
-<a href="../api_java/db_set_h_nelem.html">Db.set_h_nelem</a>,
-<a href="../api_java/db_set_lorder.html">Db.set_lorder</a>,
-<a href="../api_java/db_set_pagesize.html">Db.set_pagesize</a>,
-<a href="../api_java/db_set_q_extentsize.html">Db.set_q_extentsize</a>,
-<a href="../api_java/db_set_re_delim.html">Db.set_re_delim</a>,
-<a href="../api_java/db_set_re_len.html">Db.set_re_len</a>,
-<a href="../api_java/db_set_re_pad.html">Db.set_re_pad</a>,
-<a href="../api_java/db_set_re_source.html">Db.set_re_source</a>,
-<a href="../api_java/db_stat.html">Db.stat</a>,
-<a href="../api_java/db_sync.html">Db.sync</a>,
-<a href="../api_java/db_upgrade.html">Db.upgrade</a>
-and
-<a href="../api_java/db_verify.html">Db.verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/db_set_h_nelem.html b/bdb/docs/api_java/db_set_h_nelem.html
deleted file mode 100644
index 279e109abf7..00000000000
--- a/bdb/docs/api_java/db_set_h_nelem.html
+++ /dev/null
@@ -1,81 +0,0 @@
-<!--$Id: db_set_h_nelem.so,v 10.15 2000/05/01 21:57:43 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db.set_h_nelem</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db.set_h_nelem</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public void set_h_nelem(int h_nelem)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>Set an estimate of the final size of the hash table.
-<p>If not set or set too low, hash tables will still expand gracefully
-as keys are entered, although a slight performance degradation may be
-noticed.
-<p>The Db.set_h_nelem interface may only be used to configure Berkeley DB before
-the <a href="../api_java/db_open.html">Db.open</a> interface is called.
-<p>The Db.set_h_nelem method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_java/db_open.html">Db.open</a> was called.
-</dl>
-<h3>Class</h3>
-<a href="../api_java/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_java/db_close.html">Db.close</a>,
-<a href="../api_java/db_cursor.html">Db.cursor</a>,
-<a href="../api_java/db_del.html">Db.del</a>,
-<a href="../api_java/db_fd.html">Db.fd</a>,
-<a href="../api_java/db_get.html">Db.get</a>,
-<a href="../api_java/db_get_byteswapped.html">Db.get_byteswapped</a>,
-<a href="../api_java/db_get_type.html">Db.get_type</a>,
-<a href="../api_java/db_join.html">Db.join</a>,
-<a href="../api_java/db_key_range.html">Db.key_range</a>,
-<a href="../api_java/db_open.html">Db.open</a>,
-<a href="../api_java/db_put.html">Db.put</a>,
-<a href="../api_java/db_remove.html">Db.remove</a>,
-<a href="../api_java/db_set_bt_minkey.html">Db.set_bt_minkey</a>,
-<a href="../api_java/db_set_cachesize.html">Db.set_cachesize</a>,
-<a href="../api_java/db_set_errcall.html">Db.set_errcall</a>,
-<a href="../api_java/db_set_errpfx.html">Db.set_errpfx</a>,
-<a href="../api_java/db_set_flags.html">Db.set_flags</a>,
-<a href="../api_java/db_set_h_ffactor.html">Db.set_h_ffactor</a>,
-<a href="../api_java/db_set_h_nelem.html">Db.set_h_nelem</a>,
-<a href="../api_java/db_set_lorder.html">Db.set_lorder</a>,
-<a href="../api_java/db_set_pagesize.html">Db.set_pagesize</a>,
-<a href="../api_java/db_set_q_extentsize.html">Db.set_q_extentsize</a>,
-<a href="../api_java/db_set_re_delim.html">Db.set_re_delim</a>,
-<a href="../api_java/db_set_re_len.html">Db.set_re_len</a>,
-<a href="../api_java/db_set_re_pad.html">Db.set_re_pad</a>,
-<a href="../api_java/db_set_re_source.html">Db.set_re_source</a>,
-<a href="../api_java/db_stat.html">Db.stat</a>,
-<a href="../api_java/db_sync.html">Db.sync</a>,
-<a href="../api_java/db_upgrade.html">Db.upgrade</a>
-and
-<a href="../api_java/db_verify.html">Db.verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/db_set_lorder.html b/bdb/docs/api_java/db_set_lorder.html
deleted file mode 100644
index 9f6ce37d996..00000000000
--- a/bdb/docs/api_java/db_set_lorder.html
+++ /dev/null
@@ -1,87 +0,0 @@
-<!--$Id: db_set_lorder.so,v 10.15 2000/05/01 21:57:43 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db.set_lorder</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db.set_lorder</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public void set_lorder(int lorder)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>Set the byte order for integers in the stored database metadata. The
-number should represent the order as an integer, for example, big endian
-order is the number 4,321, and little endian order is the number 1,234.
-If <b>lorder</b> is not explicitly set, the host order of the machine
-where the Berkeley DB library was compiled is used.
-<p>The value of <b>lorder</b> is ignored except when databases are being
-created. If a database already exists, the byte order it uses is
-determined when the database is opened.
-<p><b>The access methods provide no guarantees about the byte ordering of the
-application data stored in the database, and applications are responsible
-for maintaining any necessary ordering.</b>
-<p>The Db.set_lorder interface may only be used to configure Berkeley DB before
-the <a href="../api_java/db_open.html">Db.open</a> interface is called.
-<p>The Db.set_lorder method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h3>Class</h3>
-<a href="../api_java/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_java/db_close.html">Db.close</a>,
-<a href="../api_java/db_cursor.html">Db.cursor</a>,
-<a href="../api_java/db_del.html">Db.del</a>,
-<a href="../api_java/db_fd.html">Db.fd</a>,
-<a href="../api_java/db_get.html">Db.get</a>,
-<a href="../api_java/db_get_byteswapped.html">Db.get_byteswapped</a>,
-<a href="../api_java/db_get_type.html">Db.get_type</a>,
-<a href="../api_java/db_join.html">Db.join</a>,
-<a href="../api_java/db_key_range.html">Db.key_range</a>,
-<a href="../api_java/db_open.html">Db.open</a>,
-<a href="../api_java/db_put.html">Db.put</a>,
-<a href="../api_java/db_remove.html">Db.remove</a>,
-<a href="../api_java/db_set_bt_minkey.html">Db.set_bt_minkey</a>,
-<a href="../api_java/db_set_cachesize.html">Db.set_cachesize</a>,
-<a href="../api_java/db_set_errcall.html">Db.set_errcall</a>,
-<a href="../api_java/db_set_errpfx.html">Db.set_errpfx</a>,
-<a href="../api_java/db_set_flags.html">Db.set_flags</a>,
-<a href="../api_java/db_set_h_ffactor.html">Db.set_h_ffactor</a>,
-<a href="../api_java/db_set_h_nelem.html">Db.set_h_nelem</a>,
-<a href="../api_java/db_set_lorder.html">Db.set_lorder</a>,
-<a href="../api_java/db_set_pagesize.html">Db.set_pagesize</a>,
-<a href="../api_java/db_set_q_extentsize.html">Db.set_q_extentsize</a>,
-<a href="../api_java/db_set_re_delim.html">Db.set_re_delim</a>,
-<a href="../api_java/db_set_re_len.html">Db.set_re_len</a>,
-<a href="../api_java/db_set_re_pad.html">Db.set_re_pad</a>,
-<a href="../api_java/db_set_re_source.html">Db.set_re_source</a>,
-<a href="../api_java/db_stat.html">Db.stat</a>,
-<a href="../api_java/db_sync.html">Db.sync</a>,
-<a href="../api_java/db_upgrade.html">Db.upgrade</a>
-and
-<a href="../api_java/db_verify.html">Db.verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/db_set_pagesize.html b/bdb/docs/api_java/db_set_pagesize.html
deleted file mode 100644
index 23c2462a0c0..00000000000
--- a/bdb/docs/api_java/db_set_pagesize.html
+++ /dev/null
@@ -1,83 +0,0 @@
-<!--$Id: db_set_pagesize.so,v 10.16 2000/05/01 21:57:43 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db.set_pagesize</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db.set_pagesize</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public void set_pagesize(long pagesize)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>Set the size of the pages used to hold items in the database, in bytes.
-The minimum page size is 512 bytes and the maximum page size is 64K bytes.
-If the page size is not explicitly set, one is selected based on the
-underlying filesystem I/O block size. The automatically selected size
-has a lower limit of 512 bytes and an upper limit of 16K bytes.
-<p>For information on tuning the Berkeley DB page size, see
-<a href="../ref/am_conf/pagesize.html">Selecting a page size</a>.
-<p>The Db.set_pagesize interface may only be used to configure Berkeley DB before
-the <a href="../api_java/db_open.html">Db.open</a> interface is called.
-<p>The Db.set_pagesize method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h3>Class</h3>
-<a href="../api_java/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_java/db_close.html">Db.close</a>,
-<a href="../api_java/db_cursor.html">Db.cursor</a>,
-<a href="../api_java/db_del.html">Db.del</a>,
-<a href="../api_java/db_fd.html">Db.fd</a>,
-<a href="../api_java/db_get.html">Db.get</a>,
-<a href="../api_java/db_get_byteswapped.html">Db.get_byteswapped</a>,
-<a href="../api_java/db_get_type.html">Db.get_type</a>,
-<a href="../api_java/db_join.html">Db.join</a>,
-<a href="../api_java/db_key_range.html">Db.key_range</a>,
-<a href="../api_java/db_open.html">Db.open</a>,
-<a href="../api_java/db_put.html">Db.put</a>,
-<a href="../api_java/db_remove.html">Db.remove</a>,
-<a href="../api_java/db_set_bt_minkey.html">Db.set_bt_minkey</a>,
-<a href="../api_java/db_set_cachesize.html">Db.set_cachesize</a>,
-<a href="../api_java/db_set_errcall.html">Db.set_errcall</a>,
-<a href="../api_java/db_set_errpfx.html">Db.set_errpfx</a>,
-<a href="../api_java/db_set_flags.html">Db.set_flags</a>,
-<a href="../api_java/db_set_h_ffactor.html">Db.set_h_ffactor</a>,
-<a href="../api_java/db_set_h_nelem.html">Db.set_h_nelem</a>,
-<a href="../api_java/db_set_lorder.html">Db.set_lorder</a>,
-<a href="../api_java/db_set_pagesize.html">Db.set_pagesize</a>,
-<a href="../api_java/db_set_q_extentsize.html">Db.set_q_extentsize</a>,
-<a href="../api_java/db_set_re_delim.html">Db.set_re_delim</a>,
-<a href="../api_java/db_set_re_len.html">Db.set_re_len</a>,
-<a href="../api_java/db_set_re_pad.html">Db.set_re_pad</a>,
-<a href="../api_java/db_set_re_source.html">Db.set_re_source</a>,
-<a href="../api_java/db_stat.html">Db.stat</a>,
-<a href="../api_java/db_sync.html">Db.sync</a>,
-<a href="../api_java/db_upgrade.html">Db.upgrade</a>
-and
-<a href="../api_java/db_verify.html">Db.verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/db_set_q_extentsize.html b/bdb/docs/api_java/db_set_q_extentsize.html
deleted file mode 100644
index 081c5b76c75..00000000000
--- a/bdb/docs/api_java/db_set_q_extentsize.html
+++ /dev/null
@@ -1,83 +0,0 @@
-<!--$Id: db_set_q_extentsize.so,v 1.3 2000/11/21 19:25:45 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db.set_q_extentsize</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db.set_q_extentsize</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public void set_q_extentsize(int extentsize)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>Set the size of the extents used to hold pages in a Queue database,
-specified as a number of pages. Each extent is created as a separate
-physical file. If no extent size is set, the default behavior is to
-create only a single underlying database file.
-<p>For information on tuning the extent size, see
-<a href="../ref/am_conf/extentsize.html">Selecting a extent size</a>.
-<p>The Db.set_q_extentsize interface may only be used to configure Berkeley DB before
-the <a href="../api_java/db_open.html">Db.open</a> interface is called.
-<p>The Db.set_q_extentsize method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_java/db_open.html">Db.open</a> was called.
-</dl>
-<h3>Class</h3>
-<a href="../api_java/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_java/db_close.html">Db.close</a>,
-<a href="../api_java/db_cursor.html">Db.cursor</a>,
-<a href="../api_java/db_del.html">Db.del</a>,
-<a href="../api_java/db_fd.html">Db.fd</a>,
-<a href="../api_java/db_get.html">Db.get</a>,
-<a href="../api_java/db_get_byteswapped.html">Db.get_byteswapped</a>,
-<a href="../api_java/db_get_type.html">Db.get_type</a>,
-<a href="../api_java/db_join.html">Db.join</a>,
-<a href="../api_java/db_key_range.html">Db.key_range</a>,
-<a href="../api_java/db_open.html">Db.open</a>,
-<a href="../api_java/db_put.html">Db.put</a>,
-<a href="../api_java/db_remove.html">Db.remove</a>,
-<a href="../api_java/db_set_bt_minkey.html">Db.set_bt_minkey</a>,
-<a href="../api_java/db_set_cachesize.html">Db.set_cachesize</a>,
-<a href="../api_java/db_set_errcall.html">Db.set_errcall</a>,
-<a href="../api_java/db_set_errpfx.html">Db.set_errpfx</a>,
-<a href="../api_java/db_set_flags.html">Db.set_flags</a>,
-<a href="../api_java/db_set_h_ffactor.html">Db.set_h_ffactor</a>,
-<a href="../api_java/db_set_h_nelem.html">Db.set_h_nelem</a>,
-<a href="../api_java/db_set_lorder.html">Db.set_lorder</a>,
-<a href="../api_java/db_set_pagesize.html">Db.set_pagesize</a>,
-<a href="../api_java/db_set_q_extentsize.html">Db.set_q_extentsize</a>,
-<a href="../api_java/db_set_re_delim.html">Db.set_re_delim</a>,
-<a href="../api_java/db_set_re_len.html">Db.set_re_len</a>,
-<a href="../api_java/db_set_re_pad.html">Db.set_re_pad</a>,
-<a href="../api_java/db_set_re_source.html">Db.set_re_source</a>,
-<a href="../api_java/db_stat.html">Db.stat</a>,
-<a href="../api_java/db_sync.html">Db.sync</a>,
-<a href="../api_java/db_upgrade.html">Db.upgrade</a>
-and
-<a href="../api_java/db_verify.html">Db.verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/db_set_re_delim.html b/bdb/docs/api_java/db_set_re_delim.html
deleted file mode 100644
index dfe6bb848de..00000000000
--- a/bdb/docs/api_java/db_set_re_delim.html
+++ /dev/null
@@ -1,83 +0,0 @@
-<!--$Id: db_set_re_delim.so,v 10.17 2000/05/01 21:57:43 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db.set_re_delim</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db.set_re_delim</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public void set_re_delim(int re_delim)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>Set the delimiting byte used to mark the end of a record in the backing
-source file for the Recno access method.
-<p>This byte is used for variable length records, if the <b>re_source</b>
-file is specified. If the <b>re_source</b> file is specified and no
-delimiting byte was specified, &lt;newline&gt; characters (i.e.
-ASCII 0x0a) are interpreted as end-of-record markers.
-<p>The Db.set_re_delim interface may only be used to configure Berkeley DB before
-the <a href="../api_java/db_open.html">Db.open</a> interface is called.
-<p>The Db.set_re_delim method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_java/db_open.html">Db.open</a> was called.
-</dl>
-<h3>Class</h3>
-<a href="../api_java/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_java/db_close.html">Db.close</a>,
-<a href="../api_java/db_cursor.html">Db.cursor</a>,
-<a href="../api_java/db_del.html">Db.del</a>,
-<a href="../api_java/db_fd.html">Db.fd</a>,
-<a href="../api_java/db_get.html">Db.get</a>,
-<a href="../api_java/db_get_byteswapped.html">Db.get_byteswapped</a>,
-<a href="../api_java/db_get_type.html">Db.get_type</a>,
-<a href="../api_java/db_join.html">Db.join</a>,
-<a href="../api_java/db_key_range.html">Db.key_range</a>,
-<a href="../api_java/db_open.html">Db.open</a>,
-<a href="../api_java/db_put.html">Db.put</a>,
-<a href="../api_java/db_remove.html">Db.remove</a>,
-<a href="../api_java/db_set_bt_minkey.html">Db.set_bt_minkey</a>,
-<a href="../api_java/db_set_cachesize.html">Db.set_cachesize</a>,
-<a href="../api_java/db_set_errcall.html">Db.set_errcall</a>,
-<a href="../api_java/db_set_errpfx.html">Db.set_errpfx</a>,
-<a href="../api_java/db_set_flags.html">Db.set_flags</a>,
-<a href="../api_java/db_set_h_ffactor.html">Db.set_h_ffactor</a>,
-<a href="../api_java/db_set_h_nelem.html">Db.set_h_nelem</a>,
-<a href="../api_java/db_set_lorder.html">Db.set_lorder</a>,
-<a href="../api_java/db_set_pagesize.html">Db.set_pagesize</a>,
-<a href="../api_java/db_set_q_extentsize.html">Db.set_q_extentsize</a>,
-<a href="../api_java/db_set_re_delim.html">Db.set_re_delim</a>,
-<a href="../api_java/db_set_re_len.html">Db.set_re_len</a>,
-<a href="../api_java/db_set_re_pad.html">Db.set_re_pad</a>,
-<a href="../api_java/db_set_re_source.html">Db.set_re_source</a>,
-<a href="../api_java/db_stat.html">Db.stat</a>,
-<a href="../api_java/db_sync.html">Db.sync</a>,
-<a href="../api_java/db_upgrade.html">Db.upgrade</a>
-and
-<a href="../api_java/db_verify.html">Db.verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/db_set_re_len.html b/bdb/docs/api_java/db_set_re_len.html
deleted file mode 100644
index 34fa523b09a..00000000000
--- a/bdb/docs/api_java/db_set_re_len.html
+++ /dev/null
@@ -1,87 +0,0 @@
-<!--$Id: db_set_re_len.so,v 10.17 2000/05/01 21:57:43 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db.set_re_len</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db.set_re_len</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public void set_re_len(int re_len)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>For the Queue access method, specify that the records are of length
-<b>re_len</b>.
-<p>For the Recno access method, specify that the records are fixed-length,
-not byte delimited, and are of length <b>re_len</b>.
-<p>Any records added to the database that are less than <b>re_len</b> bytes
-long are automatically padded (see <a href="../api_java/db_set_re_pad.html">Db.set_re_pad</a> for more
-information).
-<p>Any attempt to insert records into the database that are greater than
-<b>re_len</b> bytes long will cause the call to fail immediately and
-return an error.
-<p>The Db.set_re_len interface may only be used to configure Berkeley DB before
-the <a href="../api_java/db_open.html">Db.open</a> interface is called.
-<p>The Db.set_re_len method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_java/db_open.html">Db.open</a> was called.
-</dl>
-<h3>Class</h3>
-<a href="../api_java/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_java/db_close.html">Db.close</a>,
-<a href="../api_java/db_cursor.html">Db.cursor</a>,
-<a href="../api_java/db_del.html">Db.del</a>,
-<a href="../api_java/db_fd.html">Db.fd</a>,
-<a href="../api_java/db_get.html">Db.get</a>,
-<a href="../api_java/db_get_byteswapped.html">Db.get_byteswapped</a>,
-<a href="../api_java/db_get_type.html">Db.get_type</a>,
-<a href="../api_java/db_join.html">Db.join</a>,
-<a href="../api_java/db_key_range.html">Db.key_range</a>,
-<a href="../api_java/db_open.html">Db.open</a>,
-<a href="../api_java/db_put.html">Db.put</a>,
-<a href="../api_java/db_remove.html">Db.remove</a>,
-<a href="../api_java/db_set_bt_minkey.html">Db.set_bt_minkey</a>,
-<a href="../api_java/db_set_cachesize.html">Db.set_cachesize</a>,
-<a href="../api_java/db_set_errcall.html">Db.set_errcall</a>,
-<a href="../api_java/db_set_errpfx.html">Db.set_errpfx</a>,
-<a href="../api_java/db_set_flags.html">Db.set_flags</a>,
-<a href="../api_java/db_set_h_ffactor.html">Db.set_h_ffactor</a>,
-<a href="../api_java/db_set_h_nelem.html">Db.set_h_nelem</a>,
-<a href="../api_java/db_set_lorder.html">Db.set_lorder</a>,
-<a href="../api_java/db_set_pagesize.html">Db.set_pagesize</a>,
-<a href="../api_java/db_set_q_extentsize.html">Db.set_q_extentsize</a>,
-<a href="../api_java/db_set_re_delim.html">Db.set_re_delim</a>,
-<a href="../api_java/db_set_re_len.html">Db.set_re_len</a>,
-<a href="../api_java/db_set_re_pad.html">Db.set_re_pad</a>,
-<a href="../api_java/db_set_re_source.html">Db.set_re_source</a>,
-<a href="../api_java/db_stat.html">Db.stat</a>,
-<a href="../api_java/db_sync.html">Db.sync</a>,
-<a href="../api_java/db_upgrade.html">Db.upgrade</a>
-and
-<a href="../api_java/db_verify.html">Db.verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/db_set_re_pad.html b/bdb/docs/api_java/db_set_re_pad.html
deleted file mode 100644
index 118130c54b3..00000000000
--- a/bdb/docs/api_java/db_set_re_pad.html
+++ /dev/null
@@ -1,81 +0,0 @@
-<!--$Id: db_set_re_pad.so,v 10.16 2000/05/01 21:57:43 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db.set_re_pad</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db.set_re_pad</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public void set_re_pad(int re_pad)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>Set the padding character for short, fixed-length records for the Queue
-and Recno access methods.
-<p>If no pad character is specified, &lt;space&gt; characters (i.e.,
-ASCII 0x20) are used for padding.
-<p>The Db.set_re_pad interface may only be used to configure Berkeley DB before
-the <a href="../api_java/db_open.html">Db.open</a> interface is called.
-<p>The Db.set_re_pad method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_java/db_open.html">Db.open</a> was called.
-</dl>
-<h3>Class</h3>
-<a href="../api_java/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_java/db_close.html">Db.close</a>,
-<a href="../api_java/db_cursor.html">Db.cursor</a>,
-<a href="../api_java/db_del.html">Db.del</a>,
-<a href="../api_java/db_fd.html">Db.fd</a>,
-<a href="../api_java/db_get.html">Db.get</a>,
-<a href="../api_java/db_get_byteswapped.html">Db.get_byteswapped</a>,
-<a href="../api_java/db_get_type.html">Db.get_type</a>,
-<a href="../api_java/db_join.html">Db.join</a>,
-<a href="../api_java/db_key_range.html">Db.key_range</a>,
-<a href="../api_java/db_open.html">Db.open</a>,
-<a href="../api_java/db_put.html">Db.put</a>,
-<a href="../api_java/db_remove.html">Db.remove</a>,
-<a href="../api_java/db_set_bt_minkey.html">Db.set_bt_minkey</a>,
-<a href="../api_java/db_set_cachesize.html">Db.set_cachesize</a>,
-<a href="../api_java/db_set_errcall.html">Db.set_errcall</a>,
-<a href="../api_java/db_set_errpfx.html">Db.set_errpfx</a>,
-<a href="../api_java/db_set_flags.html">Db.set_flags</a>,
-<a href="../api_java/db_set_h_ffactor.html">Db.set_h_ffactor</a>,
-<a href="../api_java/db_set_h_nelem.html">Db.set_h_nelem</a>,
-<a href="../api_java/db_set_lorder.html">Db.set_lorder</a>,
-<a href="../api_java/db_set_pagesize.html">Db.set_pagesize</a>,
-<a href="../api_java/db_set_q_extentsize.html">Db.set_q_extentsize</a>,
-<a href="../api_java/db_set_re_delim.html">Db.set_re_delim</a>,
-<a href="../api_java/db_set_re_len.html">Db.set_re_len</a>,
-<a href="../api_java/db_set_re_pad.html">Db.set_re_pad</a>,
-<a href="../api_java/db_set_re_source.html">Db.set_re_source</a>,
-<a href="../api_java/db_stat.html">Db.stat</a>,
-<a href="../api_java/db_sync.html">Db.sync</a>,
-<a href="../api_java/db_upgrade.html">Db.upgrade</a>
-and
-<a href="../api_java/db_verify.html">Db.verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/db_set_re_source.html b/bdb/docs/api_java/db_set_re_source.html
deleted file mode 100644
index 7ff82a20480..00000000000
--- a/bdb/docs/api_java/db_set_re_source.html
+++ /dev/null
@@ -1,123 +0,0 @@
-<!--$Id: db_set_re_source.so,v 10.17 2000/05/01 21:57:43 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db.set_re_source</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db.set_re_source</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public void set_re_source(String re_source)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>Set the underlying source file for the Recno access method. The purpose
-of the <b>re_source</b> value is to provide fast access and modification
-to databases that are normally stored as flat text files.
-<p>If the <b>re_source</b> field is set, it specifies an underlying flat
-text database file that is read to initialize a transient record number
-index. In the case of variable length records, the records are separated
-as specified by <a href="../api_java/db_set_re_delim.html">Db.set_re_delim</a>. For example, standard UNIX
-byte stream files can be interpreted as a sequence of variable length
-records separated by &lt;newline&gt; characters.
-<p>In addition, when cached data would normally be written back to the
-underlying database file (e.g., the <a href="../api_java/db_close.html">Db.close</a> or <a href="../api_java/db_sync.html">Db.sync</a>
-methods are called), the in-memory copy of the database will be written
-back to the <b>re_source</b> file.
-<p>By default, the backing source file is read lazily, i.e., records are not
-read from the file until they are requested by the application.
-<b>If multiple processes (not threads) are accessing a Recno database
-concurrently and either inserting or deleting records, the backing source
-file must be read in its entirety before more than a single process
-accesses the database, and only that process should specify the backing
-source file as part of the <a href="../api_java/db_open.html">Db.open</a> call. See the <a href="../api_java/db_set_flags.html#DB_SNAPSHOT">Db.DB_SNAPSHOT</a>
-flag for more information.</b>
-<p><b>Reading and writing the backing source file specified by <b>re_source</b>
-cannot be transactionally protected because it involves filesystem
-operations that are not part of the Db transaction methodology.</b>
-For this reason, if a temporary database is used to hold the records,
-i.e., a null was specified as the <b>file</b> argument to <a href="../api_java/db_open.html">Db.open</a>,
-it is possible to lose the contents of the <b>re_source</b> file, e.g.,
-if the system crashes at the right instant.
-If a file is used to hold the database, i.e., a file name was specified
-as the <b>file</b> argument to <a href="../api_java/db_open.html">Db.open</a>, normal database
-recovery on that file can be used to prevent information loss,
-although it is still possible that the contents of <b>re_source</b>
-will be lost if the system crashes.
-<p>The <b>re_source</b> file must already exist (but may be zero-length) when
-<a href="../api_java/db_open.html">Db.open</a> is called.
-<p>It is not an error to specify a read-only <b>re_source</b> file when
-creating a database, nor is it an error to modify the resulting database.
-However, any attempt to write the changes to the backing source file using
-either the <a href="../api_java/db_sync.html">Db.sync</a> or <a href="../api_java/db_close.html">Db.close</a> methods will fail, of course.
-Specify the <a href="../api_java/db_close.html#DB_NOSYNC">Db.DB_NOSYNC</a> flag to the <a href="../api_java/db_close.html">Db.close</a> method to stop it
-from attempting to write the changes to the backing file, instead, they
-will be silently discarded.
-<p>For all of the above reasons, the <b>re_source</b> field is generally
-used to specify databases that are read-only for <a href="../api_java/db_class.html">Db</a> applications,
-and that are either generated on the fly by software tools, or modified
-using a different mechanism, e.g., a text editor.
-<p>The Db.set_re_source interface may only be used to configure Berkeley DB before
-the <a href="../api_java/db_open.html">Db.open</a> interface is called.
-<p>The Db.set_re_source method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_java/db_open.html">Db.open</a> was called.
-</dl>
-<h3>Class</h3>
-<a href="../api_java/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_java/db_close.html">Db.close</a>,
-<a href="../api_java/db_cursor.html">Db.cursor</a>,
-<a href="../api_java/db_del.html">Db.del</a>,
-<a href="../api_java/db_fd.html">Db.fd</a>,
-<a href="../api_java/db_get.html">Db.get</a>,
-<a href="../api_java/db_get_byteswapped.html">Db.get_byteswapped</a>,
-<a href="../api_java/db_get_type.html">Db.get_type</a>,
-<a href="../api_java/db_join.html">Db.join</a>,
-<a href="../api_java/db_key_range.html">Db.key_range</a>,
-<a href="../api_java/db_open.html">Db.open</a>,
-<a href="../api_java/db_put.html">Db.put</a>,
-<a href="../api_java/db_remove.html">Db.remove</a>,
-<a href="../api_java/db_set_bt_minkey.html">Db.set_bt_minkey</a>,
-<a href="../api_java/db_set_cachesize.html">Db.set_cachesize</a>,
-<a href="../api_java/db_set_errcall.html">Db.set_errcall</a>,
-<a href="../api_java/db_set_errpfx.html">Db.set_errpfx</a>,
-<a href="../api_java/db_set_flags.html">Db.set_flags</a>,
-<a href="../api_java/db_set_h_ffactor.html">Db.set_h_ffactor</a>,
-<a href="../api_java/db_set_h_nelem.html">Db.set_h_nelem</a>,
-<a href="../api_java/db_set_lorder.html">Db.set_lorder</a>,
-<a href="../api_java/db_set_pagesize.html">Db.set_pagesize</a>,
-<a href="../api_java/db_set_q_extentsize.html">Db.set_q_extentsize</a>,
-<a href="../api_java/db_set_re_delim.html">Db.set_re_delim</a>,
-<a href="../api_java/db_set_re_len.html">Db.set_re_len</a>,
-<a href="../api_java/db_set_re_pad.html">Db.set_re_pad</a>,
-<a href="../api_java/db_set_re_source.html">Db.set_re_source</a>,
-<a href="../api_java/db_stat.html">Db.stat</a>,
-<a href="../api_java/db_sync.html">Db.sync</a>,
-<a href="../api_java/db_upgrade.html">Db.upgrade</a>
-and
-<a href="../api_java/db_verify.html">Db.verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/db_stat.html b/bdb/docs/api_java/db_stat.html
deleted file mode 100644
index 197ba19138d..00000000000
--- a/bdb/docs/api_java/db_stat.html
+++ /dev/null
@@ -1,185 +0,0 @@
-<!--$Id: db_stat.so,v 10.37 2000/10/03 21:55:45 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db.stat</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db.stat</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public Object Db.stat(int flags);
-</pre></h3>
-<h1>Description</h1>
-<p>The Db.stat method creates a statistical structure and
-fills it with statistics for the database.
-<p>Statistical structures are created in allocated memory. If <b>db_malloc</b> is non-NULL, it
-is called to allocate the memory, otherwise, the library function
-<b>malloc</b>(3) is used. The function <b>db_malloc</b> must match
-the calling conventions of the <b>malloc</b>(3) library routine.
-Regardless, the caller is responsible for deallocating the returned
-memory. To deallocate returned memory, free the returned memory
-reference, references inside the returned memory do not need to be
-individually freed.
-<p>The <b>flags</b> parameter must be set to 0 or the following value:
-<p><dl compact>
-<p><dt><a name="Db.DB_CACHED_COUNTS">Db.DB_CACHED_COUNTS</a><dd>Return a cached count of the keys and records in a database. This flag
-makes it possible for applications to request an possibly approximate key
-and record count without incurring the performance penalty of traversing
-the entire database. The statistics information described for the access
-method <b>XX_nkeys</b> and <b>XX_ndata</b> fields below is filled in,
-but no other information is collected. If the cached information has
-never been set, the fields will be returned set to 0.
-<p><dt><a name="Db.DB_RECORDCOUNT">Db.DB_RECORDCOUNT</a><dd>Return a count of the records in a Btree or Recno Access Method database.
-This flag makes it possible for applications to request a record count
-without incurring the performance penalty of traversing the entire
-database. The statistics information described for the <b>bt_nkeys</b>
-field below is filled in, but no other information is collected.
-<p>This option is only available for Recno databases, or Btree databases
-where the underlying database was created with the <a href="../api_java/db_set_flags.html#DB_RECNUM">Db.DB_RECNUM</a>
-flag.
-</dl>
-<p>The Db.stat method may access all of the pages in the database,
-incurring a severe performance penalty as well as possibly flushing the
-underlying buffer pool.
-<p>In the presence of multiple threads or processes accessing an active
-database, the information returned by Db.stat may be out-of-date.
-<p>If the database was not opened readonly and the Db.DB_CACHED_COUNTS
-flag was not specified, the cached key and record numbers will be updated
-after the statistical information has been gathered.
-<p>The Db.stat method cannot be transaction protected. For this reason,
-it should be called in a thread of control that has no open cursors or
-active transactions.
-<p>The Db.stat method throws an exception that encapsulates a non-zero error value on
-failure.
-<h3>Hash Statistics</h3>
-<p>In the case of a Hash database,
-the statistics are returned in an instance of DbHashStat. The data
-fields are available from DbHashStat:
-<p><dl compact>
-<p><dt>public int hash_magic;<dd>Magic number that identifies the file as a Hash file.
-<dt>public int hash_version;<dd>The version of the Hash database.
-<dt>public int hash_nkeys;<dd>The number of unique keys in the database.
-<dt>public int hash_ndata;<dd>The number of key/data pairs in the database.]
-<dt>public int hash_pagesize;<dd>The underlying Hash database page (and bucket) size.
-<dt>public int hash_nelem;<dd>The estimated size of the hash table specified at database creation time.
-<dt>public int hash_ffactor;<dd>The desired fill factor (number of items per bucket) specified at database
-creation time.
-<dt>public int hash_buckets;<dd>The number of hash buckets.
-<dt>public int hash_free;<dd>The number of pages on the free list.
-<dt>public int hash_bfree;<dd>The number of bytes free on bucket pages.
-<dt>public int hash_bigpages;<dd>The number of big key/data pages.
-<dt>public int hash_big_bfree;<dd>The number of bytes free on big item pages.
-<dt>public int hash_overflows;<dd>The number of overflow pages (overflow pages are pages that contain items
-that did not fit in the main bucket page).
-<dt>public int hash_ovfl_free;<dd>The number of bytes free on overflow pages.
-<dt>public int hash_dup;<dd>The number of duplicate pages.
-<dt>public int hash_dup_free;<dd>The number of bytes free on duplicate pages.
-</dl>
-<h3>Btree and Recno Statistics</h3>
-<p>In the case of a Btree or Recno database,
-the statistics are returned in an instance of DbBtreeStat. The data
-fields are available from DbBtreeStat:
-<p><dl compact>
-<p><dt>public int bt_magic;<dd>Magic number that identifies the file as a Btree database.
-<dt>public int bt_version;<dd>The version of the Btree database.
-<dt>public int bt_nkeys;<dd>For the Btree Access Method, the number of unique keys in the database.
-<p>For the Recno Access Method, the number of records in the database.
-<dt>public int bt_ndata;<dd>For the Btree Access Method, the number of key/data pairs in the database.
-<p>For the Recno Access Method, the number of records in the database. If
-the database has been configured to not re-number records during
-deletion, the number of records will only reflect undeleted records.
-<dt>public int bt_pagesize;<dd>Underlying database page size.
-<dt>public int bt_minkey;<dd>The minimum keys per page.
-<dt>public int bt_re_len;<dd>The length of fixed-length records.
-<dt>public int bt_re_pad;<dd>The padding byte value for fixed-length records.
-<dt>public int bt_levels;<dd>Number of levels in the database.
-<dt>public int bt_int_pg;<dd>Number of database internal pages.
-<dt>public int bt_leaf_pg;<dd>Number of database leaf pages.
-<dt>public int bt_dup_pg;<dd>Number of database duplicate pages.
-<dt>public int bt_over_pg;<dd>Number of database overflow pages.
-<dt>public int bt_free;<dd>Number of pages on the free list.
-<dt>public int bt_int_pgfree;<dd>Number of bytes free in database internal pages.
-<dt>public int bt_leaf_pgfree;<dd>Number of bytes free in database leaf pages.
-<dt>public int bt_dup_pgfree;<dd>Number of bytes free in database duplicate pages.
-<dt>public int bt_over_pgfree;<dd>Number of bytes free in database overflow pages.
-</dl>
-<h3>Queue Statistics</h3>
-<p>In the case of a Queue database,
-the statistics are returned in an instance of DbQueueStat. The data
-fields are available from DbQueueStat:
-<p><dl compact>
-<p><dt>public int qs_magic;<dd>Magic number that identifies the file as a Queue file.
-<dt>public int qs_version;<dd>The version of the Queue file type.
-<dt>public int qs_nkeys;<dd>The number of records in the database.
-<dt>public int qs_ndata;<dd>The number of records in the database.
-<dt>public int qs_pagesize;<dd>Underlying database page size.
-<dt>public int qs_pages;<dd>Number of pages in the database.
-<dt>public int qs_re_len;<dd>The length of the records.
-<dt>public int qs_re_pad;<dd>The padding byte value for the records.
-<dt>public int qs_pgfree;<dd>Number of bytes free in database pages.
-<dt>public int qs_start;<dd>Start offset.
-<dt>public int qs_first_recno;<dd>First undeleted record in the database.
-<dt>public int qs_cur_recno;<dd>Last allocated record number in the database.
-</dl>
-<p>The Db.stat method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p>The Db.stat method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the Db.stat method may fail and throw
-a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls
-will fail in the same way.
-<h3>Class</h3>
-<a href="../api_java/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_java/db_close.html">Db.close</a>,
-<a href="../api_java/db_cursor.html">Db.cursor</a>,
-<a href="../api_java/db_del.html">Db.del</a>,
-<a href="../api_java/db_fd.html">Db.fd</a>,
-<a href="../api_java/db_get.html">Db.get</a>,
-<a href="../api_java/db_get_byteswapped.html">Db.get_byteswapped</a>,
-<a href="../api_java/db_get_type.html">Db.get_type</a>,
-<a href="../api_java/db_join.html">Db.join</a>,
-<a href="../api_java/db_key_range.html">Db.key_range</a>,
-<a href="../api_java/db_open.html">Db.open</a>,
-<a href="../api_java/db_put.html">Db.put</a>,
-<a href="../api_java/db_remove.html">Db.remove</a>,
-<a href="../api_java/db_set_bt_minkey.html">Db.set_bt_minkey</a>,
-<a href="../api_java/db_set_cachesize.html">Db.set_cachesize</a>,
-<a href="../api_java/db_set_errcall.html">Db.set_errcall</a>,
-<a href="../api_java/db_set_errpfx.html">Db.set_errpfx</a>,
-<a href="../api_java/db_set_flags.html">Db.set_flags</a>,
-<a href="../api_java/db_set_h_ffactor.html">Db.set_h_ffactor</a>,
-<a href="../api_java/db_set_h_nelem.html">Db.set_h_nelem</a>,
-<a href="../api_java/db_set_lorder.html">Db.set_lorder</a>,
-<a href="../api_java/db_set_pagesize.html">Db.set_pagesize</a>,
-<a href="../api_java/db_set_q_extentsize.html">Db.set_q_extentsize</a>,
-<a href="../api_java/db_set_re_delim.html">Db.set_re_delim</a>,
-<a href="../api_java/db_set_re_len.html">Db.set_re_len</a>,
-<a href="../api_java/db_set_re_pad.html">Db.set_re_pad</a>,
-<a href="../api_java/db_set_re_source.html">Db.set_re_source</a>,
-<a href="../api_java/db_stat.html">Db.stat</a>,
-<a href="../api_java/db_sync.html">Db.sync</a>,
-<a href="../api_java/db_upgrade.html">Db.upgrade</a>
-and
-<a href="../api_java/db_verify.html">Db.verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/db_sync.html b/bdb/docs/api_java/db_sync.html
deleted file mode 100644
index 5162bd13d55..00000000000
--- a/bdb/docs/api_java/db_sync.html
+++ /dev/null
@@ -1,91 +0,0 @@
-<!--$Id: db_sync.so,v 10.20 2000/09/08 15:20:28 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db.sync</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db.sync</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public int sync(int flags)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>The Db.sync method flushes any cached information to disk.
-<p>If the database is in memory only, the Db.sync method has no effect and
-will always succeed.
-<p>The <b>flags</b> parameter is currently unused, and must be set to 0.
-<p>See <a href="../api_java/db_close.html">Db.close</a> for a discussion of Berkeley DB and cached data.
-<p>The Db.sync method throws an exception that encapsulates a non-zero error value on
-failure, and returns <a href="../api_c/memp_fsync.html#DB_INCOMPLETE">Db.DB_INCOMPLETE</a> if the underlying database still has
-dirty pages in the cache. (The only reason to return
-<a href="../api_c/memp_fsync.html#DB_INCOMPLETE">Db.DB_INCOMPLETE</a> is if another thread of control was writing pages
-in the underlying database file at the same time as the
-Db.sync method was being called. For this reason, a return of
-<a href="../api_c/memp_fsync.html#DB_INCOMPLETE">Db.DB_INCOMPLETE</a> can normally be ignored, or, in cases where it is
-a possible return value, there may be no reason to call
-Db.sync.)
-<h1>Errors</h1>
-<p>The Db.sync method may fail and throw an exception encapsulating a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<p>The Db.sync method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the Db.sync method may fail and throw
-a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls
-will fail in the same way.
-<h3>Class</h3>
-<a href="../api_java/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_java/db_close.html">Db.close</a>,
-<a href="../api_java/db_cursor.html">Db.cursor</a>,
-<a href="../api_java/db_del.html">Db.del</a>,
-<a href="../api_java/db_fd.html">Db.fd</a>,
-<a href="../api_java/db_get.html">Db.get</a>,
-<a href="../api_java/db_get_byteswapped.html">Db.get_byteswapped</a>,
-<a href="../api_java/db_get_type.html">Db.get_type</a>,
-<a href="../api_java/db_join.html">Db.join</a>,
-<a href="../api_java/db_key_range.html">Db.key_range</a>,
-<a href="../api_java/db_open.html">Db.open</a>,
-<a href="../api_java/db_put.html">Db.put</a>,
-<a href="../api_java/db_remove.html">Db.remove</a>,
-<a href="../api_java/db_set_bt_minkey.html">Db.set_bt_minkey</a>,
-<a href="../api_java/db_set_cachesize.html">Db.set_cachesize</a>,
-<a href="../api_java/db_set_errcall.html">Db.set_errcall</a>,
-<a href="../api_java/db_set_errpfx.html">Db.set_errpfx</a>,
-<a href="../api_java/db_set_flags.html">Db.set_flags</a>,
-<a href="../api_java/db_set_h_ffactor.html">Db.set_h_ffactor</a>,
-<a href="../api_java/db_set_h_nelem.html">Db.set_h_nelem</a>,
-<a href="../api_java/db_set_lorder.html">Db.set_lorder</a>,
-<a href="../api_java/db_set_pagesize.html">Db.set_pagesize</a>,
-<a href="../api_java/db_set_q_extentsize.html">Db.set_q_extentsize</a>,
-<a href="../api_java/db_set_re_delim.html">Db.set_re_delim</a>,
-<a href="../api_java/db_set_re_len.html">Db.set_re_len</a>,
-<a href="../api_java/db_set_re_pad.html">Db.set_re_pad</a>,
-<a href="../api_java/db_set_re_source.html">Db.set_re_source</a>,
-<a href="../api_java/db_stat.html">Db.stat</a>,
-<a href="../api_java/db_sync.html">Db.sync</a>,
-<a href="../api_java/db_upgrade.html">Db.upgrade</a>
-and
-<a href="../api_java/db_verify.html">Db.verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/db_upgrade.html b/bdb/docs/api_java/db_upgrade.html
deleted file mode 100644
index 6f6da088c35..00000000000
--- a/bdb/docs/api_java/db_upgrade.html
+++ /dev/null
@@ -1,125 +0,0 @@
-<!--$Id: db_upgrade.so,v 10.18 2000/05/01 15:58:04 krinsky Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db.upgrade</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db.upgrade</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public void upgrade(String file, int flags)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>The Db.upgrade method upgrades all of the databases included in the
-file <b>file</b>, if necessary. If no upgrade is necessary,
-Db.upgrade always returns success.
-<p><b>Database upgrades are done in place and are destructive, e.g., if pages
-need to be allocated and no disk space is available, the database may be
-left corrupted. Backups should be made before databases are upgraded.
-See <a href="../ref/am/upgrade.html">Upgrading databases</a> for more
-information.</b>
-<p>Unlike all other database operations, Db.upgrade may only be done
-on a system with the same byte-order as the database.
-<p>The <b>flags</b> parameter must be set to 0 or one of the following
-values:
-<p><dl compact>
-<p><dt><a name="Db.DB_DUPSORT">Db.DB_DUPSORT</a><dd><b>This flag is only meaningful when upgrading databases from
-releases before the Berkeley DB 3.1 release.</b>
-<p>As part of the upgrade from the Berkeley DB 3.0 release to the 3.1 release, the
-on-disk format of duplicate data items changed. To correctly upgrade the
-format requires applications specify if duplicate data items in the
-database are sorted or not. Specifying the Db.DB_DUPSORT flag
-informs Db.upgrade that the duplicates are sorted, otherwise they
-are assumed to be unsorted. Incorrectly specifying the value of this flag
-may lead to database corruption.
-<p>Further, because the Db.upgrade method upgrades a physical file
-(including all of the databases it contains), it is not possible to use
-Db.upgrade to upgrade files where some of the databases it
-includes have sorted duplicate data items and some of the databases it
-includes have unsorted duplicate data items. If the file does not have
-more than a single database, or the databases do not support duplicate
-data items, or all of the databases that support duplicate data items
-support the same style of duplicates (either sorted or unsorted),
-Db.upgrade will work correctly as long as the Db.DB_DUPSORT
-flag is correctly specified. Otherwise, the file cannot be upgraded using
-Db.upgrade, and must be upgraded manually by dumping and
-re-loading the databases.
-</dl>
-<p>The Db.upgrade method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Environment Variables</h1>
-<p><dl compact>
-<p><dt>DB_HOME<dd>If the <b>dbenv</b> argument to <a href="../api_c/db_create.html">db_create</a> was initialized using
-<a href="../api_java/env_open.html">DbEnv.open</a> the environment variable <b>DB_HOME</b> may be used
-as the path of the database environment home. Specifically, Db.upgrade
-is affected by the configuration value DB_DATA_DIR.
-</dl>
-<h1>Errors</h1>
-<p>The Db.upgrade method may fail and throw an exception encapsulating a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>The database is not in the same byte-order as the system.
-</dl>
-<p><dl compact>
-<p><dt><a name="Db.DB_OLD_VERSION">Db.DB_OLD_VERSION</a><dd>The database cannot be upgraded by this version of the Berkeley DB software.
-</dl>
-<p>The Db.upgrade method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the Db.upgrade method may fail and throw
-a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls
-will fail in the same way.
-<h3>Class</h3>
-<a href="../api_java/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_java/db_close.html">Db.close</a>,
-<a href="../api_java/db_cursor.html">Db.cursor</a>,
-<a href="../api_java/db_del.html">Db.del</a>,
-<a href="../api_java/db_fd.html">Db.fd</a>,
-<a href="../api_java/db_get.html">Db.get</a>,
-<a href="../api_java/db_get_byteswapped.html">Db.get_byteswapped</a>,
-<a href="../api_java/db_get_type.html">Db.get_type</a>,
-<a href="../api_java/db_join.html">Db.join</a>,
-<a href="../api_java/db_key_range.html">Db.key_range</a>,
-<a href="../api_java/db_open.html">Db.open</a>,
-<a href="../api_java/db_put.html">Db.put</a>,
-<a href="../api_java/db_remove.html">Db.remove</a>,
-<a href="../api_java/db_set_bt_minkey.html">Db.set_bt_minkey</a>,
-<a href="../api_java/db_set_cachesize.html">Db.set_cachesize</a>,
-<a href="../api_java/db_set_errcall.html">Db.set_errcall</a>,
-<a href="../api_java/db_set_errpfx.html">Db.set_errpfx</a>,
-<a href="../api_java/db_set_flags.html">Db.set_flags</a>,
-<a href="../api_java/db_set_h_ffactor.html">Db.set_h_ffactor</a>,
-<a href="../api_java/db_set_h_nelem.html">Db.set_h_nelem</a>,
-<a href="../api_java/db_set_lorder.html">Db.set_lorder</a>,
-<a href="../api_java/db_set_pagesize.html">Db.set_pagesize</a>,
-<a href="../api_java/db_set_q_extentsize.html">Db.set_q_extentsize</a>,
-<a href="../api_java/db_set_re_delim.html">Db.set_re_delim</a>,
-<a href="../api_java/db_set_re_len.html">Db.set_re_len</a>,
-<a href="../api_java/db_set_re_pad.html">Db.set_re_pad</a>,
-<a href="../api_java/db_set_re_source.html">Db.set_re_source</a>,
-<a href="../api_java/db_stat.html">Db.stat</a>,
-<a href="../api_java/db_sync.html">Db.sync</a>,
-<a href="../api_java/db_upgrade.html">Db.upgrade</a>
-and
-<a href="../api_java/db_verify.html">Db.verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/db_verify.html b/bdb/docs/api_java/db_verify.html
deleted file mode 100644
index e2702028305..00000000000
--- a/bdb/docs/api_java/db_verify.html
+++ /dev/null
@@ -1,140 +0,0 @@
-<!--$Id: db_verify.so,v 10.3 2000/04/11 15:13:51 dda Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Db.verify</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Db.verify</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public void verify(String file,
- String database, java.io.OutputStream outfile, int flags)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>The Db.verify method verifies the integrity of all databases in the
-file specified by the file argument, and optionally outputs the databases'
-key/data pairs to a file stream.
-<p>The <b>flags</b> parameter must be set to 0 or one of the following
-values:
-<p><dl compact>
-<p><dt><a name="Db.DB_SALVAGE">Db.DB_SALVAGE</a><dd>Write the key/data pairs from all databases in the file to the file stream
-named in
-the <b>outfile</b> argument. The output format is the same as that
-specified for the <a href="../utility/db_dump.html">db_dump</a> utility and can be used as input for
-the <a href="../utility/db_load.html">db_load</a> utility.
-<p>Because the key/data pairs are output in page order as opposed to the sort
-order used by <a href="../utility/db_dump.html">db_dump</a>, using Db.verify to dump key/data
-pairs normally produces less than optimal loads for Btree databases.
-</dl>
-<p>In addition, the following flags may be set by bitwise inclusively <b>OR</b>'ing them into the
-<b>flags</b> parameter:
-<p><dl compact>
-<p><dt><a name="Db.DB_AGGRESSIVE">Db.DB_AGGRESSIVE</a><dd>Output <b>all</b> the key/data pairs in the file that can be found.
-By default, Db.verify does not assume corruption. For example,
-if a key/data pair on a page is marked as deleted, it is not then written
-to the output file. When Db.DB_AGGRESSIVE is specified, corruption
-is assumed, and any key/data pair that can be found is written. In this
-case, key/data pairs that are corrupted or have been deleted may appear
-in the output (even if the file being salvaged is in no way corrupt), and
-the output will almost certainly require editing before being loaded into
-a database.
-<p><dt><a name="Db.DB_NOORDERCHK">Db.DB_NOORDERCHK</a><dd>Skip the database checks for btree and duplicate sort order and for
-hashing.
-<p>The Db.verify method normally verifies that btree keys and duplicate
-items are correctly sorted and hash keys are correctly hashed. If the
-file being verified contains multiple databases using differing sorting
-or hashing algorithms, some of them must necessarily fail database
-verification as only one sort order or hash function can be specified
-before Db.verify is called. To verify files with multiple
-databases having differing sorting orders or hashing functions, first
-perform verification of the file as a whole by using the
-Db.DB_NOORDERCHK flag, and then individually verify the sort order
-and hashing function for each database in the file using the
-Db.DB_ORDERCHKONLY flag.
-<p><dt><a name="Db.DB_ORDERCHKONLY">Db.DB_ORDERCHKONLY</a><dd>Perform the database checks for btree and duplicate sort order and for
-hashing, skipped by Db.DB_NOORDERCHK.
-<p>When this flag is specified, a <b>database</b> argument should also be
-specified, indicating the database in the physical file which is to be
-checked. This flag is only safe to use on databases that have already
-successfully been verified using Db.verify with the
-Db.DB_NOORDERCHK flag set.
-</dl>
-<p>The database argument must be set to null except when the
-Db.DB_ORDERCHKONLY flag is set.
-<p>The Db.verify method throws an exception that encapsulates a non-zero error value on
-failure, and <a href="../ref/program/errorret.html#DB_VERIFY_BAD">Db.DB_VERIFY_BAD</a> if a database is corrupted. When the
-Db.DB_SALVAGE flag is specified, the <a href="../ref/program/errorret.html#DB_VERIFY_BAD">Db.DB_VERIFY_BAD</a> return
-means that all key/data pairs in the file may not have been successfully
-output.
-<h1>Environment Variables</h1>
-<p><dl compact>
-<p><dt>DB_HOME<dd>If the <b>dbenv</b> argument to <a href="../api_c/db_create.html">db_create</a> was initialized using
-<a href="../api_java/env_open.html">DbEnv.open</a> the environment variable <b>DB_HOME</b> may be used
-as the path of the database environment home. Specifically, Db.verify
-is affected by the configuration value DB_DATA_DIR.
-</dl>
-<h1>Errors</h1>
-<p>The Db.verify method may fail and throw an exception encapsulating a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<p>The Db.verify method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the Db.verify method may fail and throw
-a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls
-will fail in the same way.
-<h3>Class</h3>
-<a href="../api_java/db_class.html">Db</a>
-<h1>See Also</h1>
-<a href="../api_java/db_close.html">Db.close</a>,
-<a href="../api_java/db_cursor.html">Db.cursor</a>,
-<a href="../api_java/db_del.html">Db.del</a>,
-<a href="../api_java/db_fd.html">Db.fd</a>,
-<a href="../api_java/db_get.html">Db.get</a>,
-<a href="../api_java/db_get_byteswapped.html">Db.get_byteswapped</a>,
-<a href="../api_java/db_get_type.html">Db.get_type</a>,
-<a href="../api_java/db_join.html">Db.join</a>,
-<a href="../api_java/db_key_range.html">Db.key_range</a>,
-<a href="../api_java/db_open.html">Db.open</a>,
-<a href="../api_java/db_put.html">Db.put</a>,
-<a href="../api_java/db_remove.html">Db.remove</a>,
-<a href="../api_java/db_set_bt_minkey.html">Db.set_bt_minkey</a>,
-<a href="../api_java/db_set_cachesize.html">Db.set_cachesize</a>,
-<a href="../api_java/db_set_errcall.html">Db.set_errcall</a>,
-<a href="../api_java/db_set_errpfx.html">Db.set_errpfx</a>,
-<a href="../api_java/db_set_flags.html">Db.set_flags</a>,
-<a href="../api_java/db_set_h_ffactor.html">Db.set_h_ffactor</a>,
-<a href="../api_java/db_set_h_nelem.html">Db.set_h_nelem</a>,
-<a href="../api_java/db_set_lorder.html">Db.set_lorder</a>,
-<a href="../api_java/db_set_pagesize.html">Db.set_pagesize</a>,
-<a href="../api_java/db_set_q_extentsize.html">Db.set_q_extentsize</a>,
-<a href="../api_java/db_set_re_delim.html">Db.set_re_delim</a>,
-<a href="../api_java/db_set_re_len.html">Db.set_re_len</a>,
-<a href="../api_java/db_set_re_pad.html">Db.set_re_pad</a>,
-<a href="../api_java/db_set_re_source.html">Db.set_re_source</a>,
-<a href="../api_java/db_stat.html">Db.stat</a>,
-<a href="../api_java/db_sync.html">Db.sync</a>,
-<a href="../api_java/db_upgrade.html">Db.upgrade</a>
-and
-<a href="../api_java/db_verify.html">Db.verify</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/dbc_class.html b/bdb/docs/api_java/dbc_class.html
deleted file mode 100644
index 61f6b9ec2b6..00000000000
--- a/bdb/docs/api_java/dbc_class.html
+++ /dev/null
@@ -1,49 +0,0 @@
-<!--$Id: dbc_class.so,v 10.12 1999/12/20 08:52:33 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Dbc</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Dbc</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public class Dbc extends Object { ... }
-</pre></h3>
-<h1>Description</h1>
-<p>This manual page describes the specific details of the Dbc class,
-which provides cursor support for the access methods in Db.
-<p>The Dbc functions are the library interface supporting sequential
-access to the records stored by the access methods of the Berkeley DB library.
-Cursors are created by calling the <a href="../api_java/db_cursor.html">Db.cursor</a> method which returns a
- Dbc object.
-<h3>Class</h3>
-<a href="../api_java/dbc_class.html">Dbc</a>
-<h1>See Also</h1>
-<a href="../api_java/dbc_close.html">Dbc.close</a>,
-<a href="../api_java/dbc_count.html">Dbc.count</a>,
-<a href="../api_java/dbc_del.html">Dbc.del</a>,
-<a href="../api_java/dbc_dup.html">Dbc.dup</a>,
-<a href="../api_java/dbc_get.html">Dbc.get</a>
-and
-<a href="../api_java/dbc_put.html">Dbc.put</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/dbc_close.html b/bdb/docs/api_java/dbc_close.html
deleted file mode 100644
index c8ad0570296..00000000000
--- a/bdb/docs/api_java/dbc_close.html
+++ /dev/null
@@ -1,67 +0,0 @@
-<!--$Id: dbc_close.so,v 10.20 2000/03/01 21:41:29 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Dbc.close</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Dbc.close</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public void close()
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>The Dbc.close method discards the cursor.
-<p>It is possible for the Dbc.close method to return
-<a href="../ref/program/errorret.html#DB_LOCK_DEADLOCK">Db.DB_LOCK_DEADLOCK</a>, signaling that any enclosing transaction should
-be aborted. If the application is already intending to abort the
-transaction, this error should be ignored, and the application should
-proceed.
-<p>Once Dbc.close has been called, regardless of its return, the
-cursor handle may not be used again.
-<p>The Dbc.close method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p>The Dbc.close method may fail and throw an exception encapsulating a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>The cursor was previously closed.
-</dl>
-<p>If the operation was selected to resolve a deadlock, the
-Dbc.close method will fail and
-throw a <a href="../api_java/deadlock_class.html">DbDeadlockException</a> exception.
-<p>The Dbc.close method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the Dbc.close method may fail and throw
-a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls
-will fail in the same way.
-<h3>Class</h3>
-<a href="../api_java/dbc_class.html">Dbc</a>
-<h1>See Also</h1>
-<a href="../api_java/dbc_close.html">Dbc.close</a>,
-<a href="../api_java/dbc_count.html">Dbc.count</a>,
-<a href="../api_java/dbc_del.html">Dbc.del</a>,
-<a href="../api_java/dbc_dup.html">Dbc.dup</a>,
-<a href="../api_java/dbc_get.html">Dbc.get</a>
-and
-<a href="../api_java/dbc_put.html">Dbc.put</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/dbc_count.html b/bdb/docs/api_java/dbc_count.html
deleted file mode 100644
index 324ee148550..00000000000
--- a/bdb/docs/api_java/dbc_count.html
+++ /dev/null
@@ -1,58 +0,0 @@
-<!--$Id: dbc_count.so,v 10.4 2000/03/01 21:41:29 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Dbc.count</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Dbc.count</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public int count(int flags)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>The Dbc.count method returns a count of the number of duplicate data
-items for the key referenced by the
-cursor.
-If the underlying database does not support duplicate data items the call
-will still succeed and a count of 1 will be returned.
-<p>The <b>flags</b> parameter is currently unused, and must be set to 0.
-<p>If the <b>cursor</b> argument is not yet initialized, the Dbc.count method throws an exception that encapsulates EINVAL.
-<p>Otherwise, the Dbc.count method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p>The Dbc.count method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the Dbc.count method may fail and throw
-a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls
-will fail in the same way.
-<h3>Class</h3>
-<a href="../api_java/dbc_class.html">Dbc</a>
-<h1>See Also</h1>
-<a href="../api_java/dbc_close.html">Dbc.close</a>,
-<a href="../api_java/dbc_count.html">Dbc.count</a>,
-<a href="../api_java/dbc_del.html">Dbc.del</a>,
-<a href="../api_java/dbc_dup.html">Dbc.dup</a>,
-<a href="../api_java/dbc_get.html">Dbc.get</a>
-and
-<a href="../api_java/dbc_put.html">Dbc.put</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/dbc_del.html b/bdb/docs/api_java/dbc_del.html
deleted file mode 100644
index eb4a32362cf..00000000000
--- a/bdb/docs/api_java/dbc_del.html
+++ /dev/null
@@ -1,71 +0,0 @@
-<!--$Id: dbc_del.so,v 10.23 2000/05/22 20:51:46 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Dbc.del</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Dbc.del</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public int del(int flags)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>The Dbc.del method deletes the key/data pair currently referenced by
-the cursor.
-<p>The <b>flags</b> parameter is currently unused, and must be set to 0.
-<p>The cursor position is unchanged after a delete, and subsequent calls to
-cursor functions expecting the cursor to reference an existing key will
-fail.
-<p>If the element has already been deleted, Dbc.del will return
-<a href="../ref/program/errorret.html#DB_KEYEMPTY">Db.DB_KEYEMPTY</a>.
-<p>If the cursor is not yet initialized, the Dbc.del method throws an exception that encapsulates EINVAL.
-<p>Otherwise, the Dbc.del method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p>The Dbc.del method may fail and throw an exception encapsulating a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<p><dl compact>
-<p><dt>EPERM <dd>Write attempted on read-only cursor when the <a href="../api_java/env_open.html#DB_INIT_CDB">Db.DB_INIT_CDB</a> flag was
-specified to <a href="../api_java/env_open.html">DbEnv.open</a>.
-</dl>
-<p>If the operation was selected to resolve a deadlock, the
-Dbc.del method will fail and
-throw a <a href="../api_java/deadlock_class.html">DbDeadlockException</a> exception.
-<p>The Dbc.del method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the Dbc.del method may fail and throw
-a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls
-will fail in the same way.
-<h3>Class</h3>
-<a href="../api_java/dbc_class.html">Dbc</a>
-<h1>See Also</h1>
-<a href="../api_java/dbc_close.html">Dbc.close</a>,
-<a href="../api_java/dbc_count.html">Dbc.count</a>,
-<a href="../api_java/dbc_del.html">Dbc.del</a>,
-<a href="../api_java/dbc_dup.html">Dbc.dup</a>,
-<a href="../api_java/dbc_get.html">Dbc.get</a>
-and
-<a href="../api_java/dbc_put.html">Dbc.put</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/dbc_dup.html b/bdb/docs/api_java/dbc_dup.html
deleted file mode 100644
index f02afbb7350..00000000000
--- a/bdb/docs/api_java/dbc_dup.html
+++ /dev/null
@@ -1,75 +0,0 @@
-<!--$Id: dbc_dup.so,v 10.8 2000/03/17 01:53:58 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Dbc.dup</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Dbc.dup</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public Dbc dup(int flags)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>The Dbc.dup method creates a new cursor that uses the same transaction
-and locker ID as the original cursor. This is useful when an application
-is using locking and requires two or more cursors in the same thread of
-control.
-<p>The <b>flags</b> value must be set to 0 or by bitwise inclusively <b>OR</b>'ing together one or more
-of the following values.
-<p><dl compact>
-<p><dt><a name="Db.DB_POSITION">Db.DB_POSITION</a><dd>The newly created cursor is initialized to reference the same position
-in the database as the original cursor and hold the same locks. If the
-Db.DB_POSITION flag is not specified, then the created cursor is
-uninitialized and will behave like a cursor newly created using
-<a href="../api_java/db_cursor.html">Db.cursor</a>.
-</dl>
-<p>When using the Berkeley DB Concurrent Data Store product, there can be only one active write cursor
-at a time. For this reason, attempting to duplicate a cursor for which
-the <a href="../api_java/db_cursor.html#DB_WRITECURSOR">Db.DB_WRITECURSOR</a> flag was specified during creation will return
-an error.
-<p>If the <b>cursor</b> argument is not yet initialized, the Dbc.dup method throws an exception that encapsulates EINVAL.
-<p>Otherwise, the Dbc.dup method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p>The Dbc.dup method may fail and throw an exception encapsulating a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>The <b>cursor</b> argument was created using the
-<a href="../api_java/db_cursor.html#DB_WRITECURSOR">Db.DB_WRITECURSOR</a> flag in the Berkeley DB Concurrent Data Store product.
-</dl>
-<p>The Dbc.dup method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the Dbc.dup method may fail and throw
-a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls
-will fail in the same way.
-<h3>Class</h3>
-<a href="../api_java/dbc_class.html">Dbc</a>
-<h1>See Also</h1>
-<a href="../api_java/dbc_close.html">Dbc.close</a>,
-<a href="../api_java/dbc_count.html">Dbc.count</a>,
-<a href="../api_java/dbc_del.html">Dbc.del</a>,
-<a href="../api_java/dbc_dup.html">Dbc.dup</a>,
-<a href="../api_java/dbc_get.html">Dbc.get</a>
-and
-<a href="../api_java/dbc_put.html">Dbc.put</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/dbc_get.html b/bdb/docs/api_java/dbc_get.html
deleted file mode 100644
index 8213c5b51fc..00000000000
--- a/bdb/docs/api_java/dbc_get.html
+++ /dev/null
@@ -1,168 +0,0 @@
-<!--$Id: dbc_get.so,v 10.46 2001/01/19 17:29:46 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Dbc.get</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Dbc.get</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public int get(Dbt key, Dbt data, int flags)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>The Dbc.get method retrieves key/data pairs from the database. The
-byte array and length of the key
-are returned in the object referenced by <b>key</b> (except for the case
-of the Db.DB_SET flag where the <b>key</b> object is unchanged),
-and the byte array and length of
-the data are returned in the object referenced by <b>data</b>.
-<p>Modifications to the database during a sequential scan will be reflected
-in the scan, i.e. records inserted behind a cursor will not be returned
-while records inserted in front of a cursor will be returned.
-<p>In Queue and Recno databases, missing entries (i.e., entries that were
-never explicitly created or that were created and then deleted), will be
-skipped during a sequential scan.
-<p>If multiple threads or processes insert items into the same database file
-without using locking, the results are undefined.
-For more detail,
-see <a href="../ref/am/stability.html">Cursor stability</a>.
-<p>The <b>flags</b> parameter must be set to one of the following values:
-<p><dl compact>
-<p><dt><a name="Db.DB_CURRENT">Db.DB_CURRENT</a><dd>Return the key/data pair currently referenced by the cursor.
-<p>If the cursor key/data pair was deleted, Dbc.get will return
-<a href="../ref/program/errorret.html#DB_KEYEMPTY">Db.DB_KEYEMPTY</a>.
-<p>If the cursor is not yet initialized, the Dbc.get method throws an exception that encapsulates EINVAL.
-<p><dt><a name="Db.DB_FIRST">Db.DB_FIRST</a>, <a name="Db.DB_LAST">Db.DB_LAST</a><dd>The cursor is set to reference the first (last) key/data pair of the
-database, and that pair is returned. In the presence of duplicate key
-values, the first (last) data item in the set of duplicates is returned.
-<p>If the database is a Queue or Recno database, Dbc.get using the
-Db.DB_FIRST (Db.DB_LAST) flags will ignore any keys that exist
-but were never explicitly created by the application or were created and
-later deleted.
-<p>If the database is empty, Dbc.get will return <a href="../ref/program/errorret.html#DB_NOTFOUND">Db.DB_NOTFOUND</a>.
-<p><dt><a name="Db.DB_GET_BOTH">Db.DB_GET_BOTH</a><dd>The Db.DB_GET_BOTH flag is identical to the Db.DB_SET flag,
-except that both the key and the data arguments must be matched by the
-key and data item in the database.
-<p><dt><a name="Db.DB_GET_RECNO">Db.DB_GET_RECNO</a><dd>Return the record number associated with the cursor. The record number
-will be returned in <b>data</b> as described in <a href="../api_java/dbt_class.html">Dbt</a>. The
-<b>key</b> parameter is ignored.
-<p>For Db.DB_GET_RECNO to be specified, the underlying database must be
-of type Btree and it must have been created with the <a href="../api_java/db_set_flags.html#DB_RECNUM">Db.DB_RECNUM</a>
-flag.
-<p><dt><a name="Db.DB_JOIN_ITEM">Db.DB_JOIN_ITEM</a><dd>Do not use the data value found in all of the cursors as a lookup key for
-the primary database, but simply return it in the key parameter instead.
-The data parameter is left unchanged.
-<p>For Db.DB_JOIN_ITEM to be specified, the underlying cursor must have
-been returned from the <a href="../api_java/db_join.html">Db.join</a> method.
-<p><dt><a name="Db.DB_NEXT">Db.DB_NEXT</a>, <a name="Db.DB_PREV">Db.DB_PREV</a><dd>If the cursor is not yet initialized, Db.DB_NEXT (Db.DB_PREV)
-is identical to Db.DB_FIRST (Db.DB_LAST). Otherwise, the cursor
-is moved to the next (previous) key/data pair of the database, and that
-pair is returned. In the presence of duplicate key values, the value of
-the key may not change.
-<p>If the database is a Queue or Recno database, Dbc.get using the
-Db.DB_NEXT (Db.DB_PREV) flag will skip any keys that exist but
-were never explicitly created by the application or were created and later
-deleted.
-<p>If the cursor is already on the last (first) record in the database,
-Dbc.get will return <a href="../ref/program/errorret.html#DB_NOTFOUND">Db.DB_NOTFOUND</a>.
-<p><dt><a name="Db.DB_NEXT_DUP">Db.DB_NEXT_DUP</a><dd>If the next key/data pair of the database is a duplicate record for the
-current key/data pair, the cursor is moved to the next key/data pair of
-the database, and that pair is returned. Otherwise, Dbc.get will
-return <a href="../ref/program/errorret.html#DB_NOTFOUND">Db.DB_NOTFOUND</a>.
-<p>If the cursor is not yet initialized, the Dbc.get method throws an exception that encapsulates EINVAL.
-<p><dt><a name="Db.DB_NEXT_NODUP">Db.DB_NEXT_NODUP</a>, <a name="Db.DB_PREV_NODUP">Db.DB_PREV_NODUP</a><dd>If the cursor is not yet initialized, Db.DB_NEXT_NODUP
-(Db.DB_PREV_NODUP) is identical to Db.DB_FIRST
-(Db.DB_LAST). Otherwise, the cursor is moved to the next (previous)
-non-duplicate key/data pair of the database, and that pair is returned.
-<p>If the database is a Queue or Recno database, Dbc.get using the
-Db.DB_NEXT_NODUP (Db.DB_PREV_NODUP) flags will ignore any keys
-that exist but were never explicitly created by the application or were
-created and later deleted.
-<p>If no non-duplicate key/data pairs occur after (before) the cursor
-position in the database, Dbc.get will return <a href="../ref/program/errorret.html#DB_NOTFOUND">Db.DB_NOTFOUND</a>.
-<p><dt><a name="Db.DB_SET">Db.DB_SET</a><dd>Move the cursor to the specified key/data pair of the database, and
-return the datum associated with the given key.
-<p>In the presence of duplicate key values, Dbc.get will return the
-first data item for the given key.
-<p>If the database is a Queue or Recno database and the requested key exists,
-but was never explicitly created by the application or was later deleted,
-Dbc.get will return <a href="../ref/program/errorret.html#DB_KEYEMPTY">Db.DB_KEYEMPTY</a>.
-<p>If no matching keys are found, Dbc.get will return
-<a href="../ref/program/errorret.html#DB_NOTFOUND">Db.DB_NOTFOUND</a>.
-<p><dt><a name="Db.DB_SET_RANGE">Db.DB_SET_RANGE</a><dd>The Db.DB_SET_RANGE flag is identical to the Db.DB_SET flag,
-except that the key is returned as well as the data item, and, in the case
-of the Btree access method, the returned key/data pair is the smallest
-key greater than or equal to the specified key (as determined by the
-comparison method), permitting partial key matches and range
-searches.
-<p><dt><a name="Db.DB_SET_RECNO">Db.DB_SET_RECNO</a><dd>Move the cursor to the specific numbered record of the database, and
-return the associated key/data pair. The <b>data</b> field of the
-specified <b>key</b>
-must be a byte array containing a record number, as described in
-<a href="../api_java/dbt_class.html">Dbt</a>. This determines the record to be retrieved.
-<p>For Db.DB_SET_RECNO to be specified, the underlying database must be
-of type Btree and it must have been created with the <a href="../api_java/db_set_flags.html#DB_RECNUM">Db.DB_RECNUM</a>
-flag.
-</dl>
-<p>In addition, the following flag may be set by bitwise inclusively <b>OR</b>'ing it into the
-<b>flags</b> parameter:
-<p><dl compact>
-<p><dt><a name="Db.DB_RMW">Db.DB_RMW</a><dd>Acquire write locks instead of read locks when doing the retrieval.
-Setting this flag may decrease the likelihood of deadlock during a
-read-modify-write cycle by immediately acquiring the write lock during
-the read part of the cycle so that another thread of control acquiring
-a read lock for the same item, in its own read-modify-write cycle, will
-not result in deadlock.
-</dl>
-<p>Otherwise, the Dbc.get method throws an exception that encapsulates a non-zero error value on
-failure.
-<p>If Dbc.get fails for any reason, the state of the cursor will be
-unchanged.
-<h1>Errors</h1>
-<p>The Dbc.get method may fail and throw an exception encapsulating a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>The specified cursor was not currently initialized.
-</dl>
-<p>If the operation was selected to resolve a deadlock, the
-Dbc.get method will fail and
-throw a <a href="../api_java/deadlock_class.html">DbDeadlockException</a> exception.
-<p>If the requested item could not be returned due to insufficient memory,
-the Dbc.get method will fail and
-throw a <a href="../api_java/mem_class.html">DbMemoryException</a> exception.
-<p>The Dbc.get method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the Dbc.get method may fail and throw
-a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls
-will fail in the same way.
-<h3>Class</h3>
-<a href="../api_java/dbc_class.html">Dbc</a>
-<h1>See Also</h1>
-<a href="../api_java/dbc_close.html">Dbc.close</a>,
-<a href="../api_java/dbc_count.html">Dbc.count</a>,
-<a href="../api_java/dbc_del.html">Dbc.del</a>,
-<a href="../api_java/dbc_dup.html">Dbc.dup</a>,
-<a href="../api_java/dbc_get.html">Dbc.get</a>
-and
-<a href="../api_java/dbc_put.html">Dbc.put</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/dbc_put.html b/bdb/docs/api_java/dbc_put.html
deleted file mode 100644
index a2969e15956..00000000000
--- a/bdb/docs/api_java/dbc_put.html
+++ /dev/null
@@ -1,157 +0,0 @@
-<!--$Id: dbc_put.so,v 10.33 2000/12/04 17:02:01 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Dbc.put</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Dbc.put</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public void put(Dbt key, Dbt data, int flags)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>The Dbc.put method stores key/data pairs into the database.
-<p>The <b>flags</b> parameter must be set to one of the following values:
-<p><dl compact>
-<p><dt><a name="Db.DB_AFTER">Db.DB_AFTER</a><dd>In the case of the Btree and Hash access methods, insert the data
-element as a duplicate element of the key referenced by the cursor.
-The new element appears immediately after the current cursor position.
-It is an error to specify Db.DB_AFTER if the underlying Btree or
-Hash database does not support duplicate data items. The <b>key</b>
-parameter is ignored.
-<p>In the case of the Recno access method, it is an error to specify
-Db.DB_AFTER if the underlying Recno database was not created with
-the <a href="../api_java/db_set_flags.html#DB_RENUMBER">Db.DB_RENUMBER</a> flag. If the <a href="../api_java/db_set_flags.html#DB_RENUMBER">Db.DB_RENUMBER</a> flag was
-specified, a new key is created, all records after the inserted item
-are automatically renumbered, and the key of the new record is returned
-in the structure referenced by the parameter <b>key</b>. The initial
-value of the <b>key</b> parameter is ignored. See <a href="../api_java/db_open.html">Db.open</a>
-for more information.
-<p>The Db.DB_AFTER flag may not be specified to the Queue access method.
-<p>If the current cursor record has already been deleted and the underlying
-access method is Hash, Dbc.put will return <a href="../ref/program/errorret.html#DB_NOTFOUND">Db.DB_NOTFOUND</a>.
-If the underlying access method is Btree or Recno, the operation will
-succeed.
-<p>If the cursor is not yet initialized or a duplicate sort function has been
-specified, the Dbc.put function will return EINVAL.
-<p><dt><a name="Db.DB_BEFORE">Db.DB_BEFORE</a><dd>In the case of the Btree and Hash access methods, insert the data element
-as a duplicate element of the key referenced by the cursor. The new
-element appears immediately before the current cursor position. It is
-an error to specify Db.DB_BEFORE if the underlying Btree or Hash
-database does not support duplicate data items. The <b>key</b>
-parameter is ignored.
-<p>In the case of the Recno access method, it is an error to specify
-Db.DB_BEFORE if the underlying Recno database was not created with
-the <a href="../api_java/db_set_flags.html#DB_RENUMBER">Db.DB_RENUMBER</a> flag. If the <a href="../api_java/db_set_flags.html#DB_RENUMBER">Db.DB_RENUMBER</a> flag was
-specified, a new key is created, the current record and all records
-after it are automatically renumbered, and the key of the new record is
-returned in the structure referenced by the parameter <b>key</b>. The
-initial value of the <b>key</b> parameter is ignored. See
-<a href="../api_java/db_open.html">Db.open</a> for more information.
-<p>The Db.DB_BEFORE flag may not be specified to the Queue access method.
-<p>If the current cursor record has already been deleted and the underlying
-access method is Hash, Dbc.put will return <a href="../ref/program/errorret.html#DB_NOTFOUND">Db.DB_NOTFOUND</a>.
-If the underlying access method is Btree or Recno, the operation will
-succeed.
-<p>If the cursor is not yet initialized or a duplicate sort function has been
-specified, Dbc.put will return EINVAL.
-<p><dt><a name="Db.DB_CURRENT">Db.DB_CURRENT</a><dd>Overwrite the data of the key/data pair referenced by the cursor with the
-specified data item. The <b>key</b> parameter is ignored.
-<p>If a duplicate sort function has been specified and the data item of the
-current referenced key/data pair does not compare equally to the <b>data</b>
-parameter, Dbc.put will return EINVAL.
-<p>If the current cursor record has already been deleted and the underlying
-access method is Hash, Dbc.put will return <a href="../ref/program/errorret.html#DB_NOTFOUND">Db.DB_NOTFOUND</a>.
-If the underlying access method is Btree, Queue or Recno, the operation
-will succeed.
-<p>If the cursor is not yet initialized, Dbc.put will return EINVAL.
-<p><dt><a name="Db.DB_KEYFIRST">Db.DB_KEYFIRST</a><dd>In the case of the Btree and Hash access methods, insert the specified
-key/data pair into the database.
-<p>If the underlying database supports duplicate data items, and if the
-key already exists in the database and a duplicate sort function has
-been specified, the inserted data item is added in its sorted location.
-If the key already exists in the database and no duplicate sort function
-has been specified, the inserted data item is added as the first of the
-data items for that key.
-<p>The Db.DB_KEYFIRST flag may not be specified to the Queue or Recno
-access methods.
-<p><dt><a name="Db.DB_KEYLAST">Db.DB_KEYLAST</a><dd>In the case of the Btree and Hash access methods, insert the specified
-key/data pair into the database.
-<p>If the underlying database supports duplicate data items, and if the
-key already exists in the database and a duplicate sort function has
-been specified, the inserted data item is added in its sorted location.
-If the key already exists in the database, and no duplicate sort
-function has been specified, the inserted data item is added as the last
-of the data items for that key.
-<p>The Db.DB_KEYLAST flag may not be specified to the Queue or Recno
-access methods.
-<p><dt><a name="Db.DB_NODUPDATA">Db.DB_NODUPDATA</a><dd>In the case of the Btree and Hash access methods, insert the specified
-key/data pair into the database unless it already exists in the database.
-If the key/data pair already appears in the database, <a href="../api_java/dbc_put.html#DB_KEYEXIST">Db.DB_KEYEXIST</a>
-is returned. The Db.DB_NODUPDATA flag may only be specified if
-the underlying database has been configured to support sorted duplicate
-data items.
-<p>The Db.DB_NODUPDATA flag may not be specified to the Queue or Recno
-access methods.
-</dl>
-<p>Otherwise, the Dbc.put method throws an exception that encapsulates a non-zero error value on
-failure.
-<p>If Dbc.put fails for any reason, the state of the cursor will be
-unchanged. If Dbc.put succeeds and an item is inserted into the
-database, the cursor is always positioned to reference the newly inserted
-item.
-<h1>Errors</h1>
-<p>The Dbc.put method may fail and throw an exception encapsulating a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EACCES<dd>An attempt was made to modify a read-only database.
-</dl>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>The Db.DB_BEFORE or Db.DB_AFTER flags were specified, and the
-underlying access method is Queue.
-<p>An attempt was made to add a record to a fixed-length database that was too
-large to fit.
-</dl>
-<p><dl compact>
-<p><dt>EPERM <dd>Write attempted on read-only cursor when the <a href="../api_java/env_open.html#DB_INIT_CDB">Db.DB_INIT_CDB</a> flag was
-specified to <a href="../api_java/env_open.html">DbEnv.open</a>.
-</dl>
-<p>If the operation was selected to resolve a deadlock, the
-Dbc.put method will fail and
-throw a <a href="../api_java/deadlock_class.html">DbDeadlockException</a> exception.
-<p>The Dbc.put method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the Dbc.put method may fail and throw
-a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls
-will fail in the same way.
-<h3>Class</h3>
-<a href="../api_java/dbc_class.html">Dbc</a>
-<h1>See Also</h1>
-<a href="../api_java/dbc_close.html">Dbc.close</a>,
-<a href="../api_java/dbc_count.html">Dbc.count</a>,
-<a href="../api_java/dbc_del.html">Dbc.del</a>,
-<a href="../api_java/dbc_dup.html">Dbc.dup</a>,
-<a href="../api_java/dbc_get.html">Dbc.get</a>
-and
-<a href="../api_java/dbc_put.html">Dbc.put</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/dbenv_class.html b/bdb/docs/api_java/dbenv_class.html
deleted file mode 100644
index f610cf67015..00000000000
--- a/bdb/docs/api_java/dbenv_class.html
+++ /dev/null
@@ -1,65 +0,0 @@
-<!--$Id: dbenv_class.so,v 10.20 2000/07/27 13:10:54 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public class DbEnv extends Object
-{
- public DbEnv(int flags);
- ...
-}
-</pre></h3>
-<h1>Description</h1>
-<p>This manual page describes the specific details of the DbEnv
-class, which is the center of the Berkeley DB environment.
-<p>The following <b>flags</b> value may be specified:
-<p><dl compact>
-<p><dt><a name="Db.DB_CLIENT">Db.DB_CLIENT</a><dd>Create a client environment to connect to a server.
-<p>The Db.DB_CLIENT flag indicates to the system that this environment
-is remote on a server. The use of this flag causes the environment
-methods to use functions that call a server instead of local functions.
-Prior to making any environment or database method calls, the
-application must call the <a href="../api_java/env_set_server.html">DbEnv.set_server</a> function to establish
-the connection to the server.
-</dl>
-<h3>Class</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_java/env_close.html">DbEnv.close</a>,
-<a href="../api_java/env_open.html">DbEnv.open</a>,
-<a href="../api_java/env_remove.html">DbEnv.remove</a>,
-<a href="../api_java/env_strerror.html">DbEnv.strerror</a>,
-<a href="../api_java/env_version.html">DbEnv.get_version_string</a>
-<a href="../api_java/env_set_cachesize.html">DbEnv.set_cachesize</a>,
-<a href="../api_java/env_set_errcall.html">DbEnv.set_errcall</a>,
-<a href="../api_java/env_set_error_stream.html">DbEnv.set_error_stream</a>,
-<a href="../api_java/env_set_errpfx.html">DbEnv.set_errpfx</a>,
-<a href="../api_java/env_set_flags.html">DbEnv.set_flags</a>,
-<a href="../api_java/env_set_mutexlocks.html">DbEnv.set_mutexlocks</a>,
-and
-<a href="../api_java/env_set_verbose.html">DbEnv.set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/dbt_class.html b/bdb/docs/api_java/dbt_class.html
deleted file mode 100644
index 1df9cbb59d1..00000000000
--- a/bdb/docs/api_java/dbt_class.html
+++ /dev/null
@@ -1,227 +0,0 @@
-<!--$Id: dbt_class.so,v 10.33 2000/12/18 21:05:13 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Dbt</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>Dbt</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public class Dbt extends Object
-{
- public Dbt(byte[] data);
- public Dbt(byte[] data, int off, int len);
-<p>
- public void set_data(byte[] data);
- public byte[] get_data();
-<p>
- public void set_offset(int off);
- public int get_offset();
-<p>
- public int get_size();
- public void set_size(int size);
-<p>
- public int get_ulen();
- public void set_ulen(int ulen);
-<p>
- public int get_dlen();
- public void set_dlen(int dlen);
-<p>
- public int get_doff();
- public void set_doff(int doff);
-<p>
- public int get_flags();
- public void set_flags(int flags);
-<p>
- public void set_recno_key_data(int recno);
- public int get_recno_key_data();
-}
-</pre></h3>
-<h1>Description</h1>
-<p>This manual page describes the specific details of the Dbt class,
-used to encode keys and data items in a database.
- <a name="3"><!--meow--></a>
-<h3>Key/Data Pairs</h3>
-<p>Storage and retrieval for the Db access methods are based on
-key/data pairs. Both key and data items are represented by Dbt
-objects. Key and data byte strings may reference strings of zero length
-up to strings of essentially unlimited length. See
-<a href="../ref/program/dbsizes.html">Database limits</a> for more
-information.
-<p>The Dbt class provides simple access to an underlying data structure,
-whose elements can be examined or changed using the <b>set_</b> or
-<b>get_</b> methods. The remainder of the manual page sometimes refers
-to these accesses using the underlying name, e.g., simply <b>ulen</b>
-instead of Dbt.get_ulen and Dbt.set_ulen.
-Dbt can be subclassed, providing a way to associate
-with it additional data, or references to other structures.
-<p>The constructors set all elements of the underlying structure to zero.
-The constructor with one argument has the effect of setting all elements
-to zero except for the specified <b>data</b> and <b>size</b> elements.
-The constructor with three arguments has has the additional effect of
-only using the portion of the array specified by the size and offset.
-<p>In the case where the <b>flags</b> structure element is 0, when being
-provided a key or data item by the application, the Berkeley DB package expects
-the <b>data</b> object to be set to a byte array of <b>size</b> bytes.
-When returning a key/data item to the application, the Berkeley DB package will
-store into the <b>data</b> object a byte array of <b>size</b> bytes.
-During a get operation, one of the Db.DB_DBT_MALLOC,
-Db.DB_DBT_REALLOC or Db.DB_DBT_USERMEM flags must be
-specified.
-<p>The elements of the structure underlying the Dbt class are defined as follows:
-<p><dl compact>
-<p><dt>byte[] <a name="data">data</a>;<dd>A byte array containing the data.
-This element is accessed using Dbt.get_data and
-Dbt.set_data, and may be initialized using one
-of the constructors.
-Note that the array data is not copied immediately, but only when the
-Dbt is used.
-<p><dt>int offset;<dd>The number of bytes offset into the <b>data</b> array to determine the
-portion of the array actually used.
-This element is accessed using Dbt.get_offset and
-Dbt.set_offset.
-<p><dt>int size;<dd>The length of <b>data</b>, in bytes.
-This element is accessed using Dbt.get_size and
-Dbt.set_size, and may be initialized
-implicitly to the length of the data array with the constructor having
-one argument.
-<p><dt>int ulen;<dd>The size of the user's buffer (referenced by <b>data</b>), in bytes.
-This location is not written by the Db methods.
-<p>Note that applications can determine the length of a record by setting
-the <b>ulen</b> to 0 and checking the return value found in <b>size</b>.
-See the Db.DB_DBT_USERMEM flag for more information.
-<p>This element is accessed using
-Dbt.get_ulen and Dbt.set_ulen.
-<p><dt>int dlen;<dd>The length of the partial record being read or written by the application,
-in bytes.
-See the Db.DB_DBT_PARTIAL flag for more information.
-This element is accessed using
-Dbt.get_dlen, and Dbt.set_dlen.
-<p><dt>int doff;<dd>The offset of the partial record being read or written by the application,
-in bytes.
-See the Db.DB_DBT_PARTIAL flag for more information.
-This element is accessed using
-Dbt.get_doff and Dbt.set_doff.
-<p><dt>int flags;<dd>This element is accessed using Dbt.get_flags and
-Dbt.set_flags.
-<p>The <b>flags</b> value must be set by bitwise inclusively <b>OR</b>'ing together one or more of the
-following values.
-<p><dl compact>
-<p><dt><a name="Db.DB_DBT_MALLOC">Db.DB_DBT_MALLOC</a><dd>When this flag is set Berkeley DB will allocate memory for the returned key
-or data item
-and return a byte array containing the data in the <b>data</b> field of
-the key or data Dbt object.
-<p>If Db.DB_DBT_MALLOC is specified, Berkeley DB allocates a properly sized
-byte array to contain the data. This can be convenient if you know little
-about the nature of the data, specifically the size of data in the
-database. However, if your application makes repeated calls to retrieve
-keys or data, you may notice increased garbage collection due to this
-allocation. If you know the maximum size of data you are retrieving, you
-might decrease the memory burden and speed your application by allocating
-your own byte array and using Db.DB_DBT_USERMEM. Even if you don't
-know the maximum size, you can use this option and reallocate your array
-whenever your retrieval API call
-throws a <a href="../api_java/mem_class.html">DbMemoryException</a>.
-<p>It is an error to specify more than one of Db.DB_DBT_MALLOC,
-Db.DB_DBT_REALLOC and Db.DB_DBT_USERMEM.
-<p><dt><a name="Db.DB_DBT_REALLOC">Db.DB_DBT_REALLOC</a><dd>When this flag is set Berkeley DB
-will return the data in the <b>data</b> field of the key or data
-Dbt object, reusing the existing byte array if it is large
-enough, or allocating a new one of the appropriate size.
-<p>It is an error to specify more than one of Db.DB_DBT_MALLOC,
-Db.DB_DBT_REALLOC and Db.DB_DBT_USERMEM.
-<p><dt><a name="Db.DB_DBT_USERMEM">Db.DB_DBT_USERMEM</a><dd>The <b>data</b> field of the key or data object must reference memory
-that is at least <b>ulen</b> bytes in length. If the length of the
-requested item is less than or equal to that number of bytes, the item
-is copied into the memory referenced by the <b>data</b> field.
-Otherwise, the <b>size</b> field is set to the length needed for the
-requested item, and the error ENOMEM is returned.
-<p>If Db.DB_DBT_USERMEM is specified, the data field of the Dbt
-must be set to an appropriately sized byte array.
-<p>It is an error to specify more than one of Db.DB_DBT_MALLOC,
-Db.DB_DBT_REALLOC and Db.DB_DBT_USERMEM.
-</dl>
-<p>If Db.DB_DBT_MALLOC or Db.DB_DBT_REALLOC is specified, Berkeley DB
-allocates a properly sized byte array to contain the data. This can be
-convenient if you know little about the nature of the data, specifically
-the size of data in the database. However, if your application makes
-repeated calls to retrieve keys or data, you may notice increased garbage
-collection due to this allocation. If you know the maximum size of data
-you are retrieving, you might decrease the memory burden and speed your
-application by allocating your own byte array and using
-Db.DB_DBT_USERMEM. Even if you don't know the maximum size, you can
-use this option and reallocate your array whenever your retrieval API call
-throws a <a href="../api_java/mem_class.html">DbMemoryException</a>.
-<p><dl compact>
-<p><dt><a name="Db.DB_DBT_PARTIAL">Db.DB_DBT_PARTIAL</a><dd>Do partial retrieval or storage of an item. If the calling application
-is doing a get, the <b>dlen</b> bytes starting <b>doff</b> bytes from
-the beginning of the retrieved data record are returned as if they
-comprised the entire record. If any or all of the specified bytes do
-not exist in the record, the get is successful and the existing bytes
-or nul bytes are returned.
-<p>For example, if the data portion of a retrieved record was 100 bytes,
-and a partial retrieval was done using a Dbt having a <b>dlen</b>
-field of 20 and a <b>doff</b> field of 85, the get call would succeed,
-the <b>data</b> field would reference the last 15 bytes of the record,
-and the <b>size</b> field would be set to 15.
-<p>If the calling application is doing a put, the <b>dlen</b> bytes starting
-<b>doff</b> bytes from the beginning of the specified key's data record
-are replaced by the data specified by the <b>data</b> and <b>size</b>
-objects.
-If <b>dlen</b> is smaller than <b>size</b>, the record will grow, and if
-<b>dlen</b> is larger than <b>size</b>, the record will shrink.
-If the specified bytes do not exist, the record will be extended using nul
-bytes as necessary, and the put call will succeed.
-<p>It is an error to attempt a partial put using the <a href="../api_java/db_put.html">Db.put</a>
-method in a database that supports duplicate records.
-Partial puts in databases supporting duplicate records must be done
-using a <a href="../api_java/dbc_class.html">Dbc</a> method.
-<p>It is an error to attempt a partial put with differing <b>dlen</b> and
-<b>size</b> values in Queue or Recno databases with fixed-length records.
-<p>For example, if the data portion of a retrieved record was 100 bytes,
-and a partial put was done using a Dbt having a <b>dlen</b>
-field of 20, a <b>doff</b> field of 85, and a <b>size</b> field of 30,
-the resulting record would be 115 bytes in length, where the last 30
-bytes would be those specified by the put call.
-</dl>
-</dl>
-<p>Although Java normally maintains proper alignment of byte arrays, the
-set_offset method can be used to specify unaligned addresses. Unaligned
-address accesses that are not supported by the underlying hardware may be
-reported as an exception, or may stop the running Java program.
- <a name="4"><!--meow--></a>
-<h3>Logical Record Numbers</h3>
-<p>In all cases for the Queue and Recno access methods, and when calling the
-<a href="../api_java/db_get.html">Db.get</a> and <a href="../api_java/dbc_get.html">Dbc.get</a> functions with the
-<a href="../api_java/db_get.html#DB_SET_RECNO">Db.DB_SET_RECNO</a> flag specified, the <b>data</b>
-field of the key must be a four byte array, large enough to store an int.
-The Dbt.set_recno_key_data method can be used to set the value of
-the array. An int is a 32-bit type,
-(which limits the number of logical records in a Queue or Recno database,
-and the maximum logical record which may be directly retrieved from a
-Btree database, to 4,294,967,296). The <b>size</b> field of the key
-should be the size of that type, i.e.,
-4.
-<p>Logical record numbers are 1-based, not 0-based, i.e., the first record
-in the database is record number 1.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/deadlock_class.html b/bdb/docs/api_java/deadlock_class.html
deleted file mode 100644
index b41c5649dcf..00000000000
--- a/bdb/docs/api_java/deadlock_class.html
+++ /dev/null
@@ -1,47 +0,0 @@
-<!--$Id: deadlock_class.so,v 10.6 2000/09/21 19:58:54 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbDeadlockException</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbDeadlockException</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public class DbDeadlockException extends DbException { ... }
-</pre></h3>
-<h1>Description</h1>
-<p>This manual page describes the DbDeadlockException class and
-how it is used by the various Db* classes.
-<p>A DbDeadlockException is thrown when multiple threads competing
-for a lock are deadlocked. One of the threads' transactions is selected
-for termination, and a DbDeadlockException is thrown to that thread.
-<p>See <a href="../api_java/env_set_lk_detect.html">DbEnv.set_lk_detect</a> for more information.
-<h3>Class</h3>
-<a href="../api_java/except_class.html">DbException</a>
-<h1>See Also</h1>
-<a href="../api_java/get_errno.html">DbException.get_errno</a>,
-<a href="../api_java/deadlock_class.html">DbDeadlockException</a>,
-<a href="../api_java/mem_class.html">DbMemoryException</a>
-and
-<a href="../api_java/runrec_class.html">DbRunRecoveryException</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/env_close.html b/bdb/docs/api_java/env_close.html
deleted file mode 100644
index 9650c83ed85..00000000000
--- a/bdb/docs/api_java/env_close.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<!--$Id: env_close.so,v 10.21 2000/03/01 21:41:29 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.close</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.close</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public void close(int flags)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv.close method closes the Berkeley DB environment, freeing any
-allocated resources and closing any underlying subsystems.
-<p>Calling DbEnv.close does not imply closing any databases that were
-opened in the environment.
-<p>The <b>flags</b> parameter is currently unused, and must be set to 0.
-<p>Where the environment was initialized with the <a href="../api_java/env_open.html#DB_INIT_LOCK">Db.DB_INIT_LOCK</a> flag,
-calling DbEnv.close does not release any locks still held by the
-closing process, providing functionality for long-lived locks.
-<p>Where the environment was initialized with the <a href="../api_java/env_open.html#DB_INIT_MPOOL">Db.DB_INIT_MPOOL</a>
-flag, calling DbEnv.close implies calls to <a href="../api_java/memp_fclose.html">DbMpoolFile.close</a> for
-any remaining open files in the memory pool that were returned to this
-process by calls to <a href="../api_java/memp_fopen.html">DbMpoolFile.open</a>. It does not imply a call to
-<a href="../api_java/memp_fsync.html">DbMpoolFile.sync</a> for those files.
-<p>Where the environment was initialized with the <a href="../api_java/env_open.html#DB_INIT_TXN">Db.DB_INIT_TXN</a> flag,
-calling DbEnv.close aborts any uncommitted transactions.
-(Applications are should not depend on this behavior. If the process' has
-already closed a database handle which is necessary to abort an
-uncommitted transaction, the Berkeley DB environment must then require that
-recovery be run before further operations are done, since once a
-transaction exists that cannot be committed or aborted, no future
-checkpoint can ever succeed.)
-<p>In multi-threaded applications, only a single thread may call
-DbEnv.close.
-<p>Once DbEnv.close has been called, regardless of its return,
-the Berkeley DB environment handle may not be accessed again.
-<p>The DbEnv.close method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p>The DbEnv.close method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbEnv.close method may fail and throw
-a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls
-will fail in the same way.
-<h3>Class</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_java/env_close.html">DbEnv.close</a>,
-<a href="../api_java/env_open.html">DbEnv.open</a>,
-<a href="../api_java/env_remove.html">DbEnv.remove</a>,
-<a href="../api_java/env_strerror.html">DbEnv.strerror</a>,
-<a href="../api_java/env_version.html">DbEnv.get_version_string</a>
-<a href="../api_java/env_set_cachesize.html">DbEnv.set_cachesize</a>,
-<a href="../api_java/env_set_errcall.html">DbEnv.set_errcall</a>,
-<a href="../api_java/env_set_error_stream.html">DbEnv.set_error_stream</a>,
-<a href="../api_java/env_set_errpfx.html">DbEnv.set_errpfx</a>,
-<a href="../api_java/env_set_flags.html">DbEnv.set_flags</a>,
-<a href="../api_java/env_set_mutexlocks.html">DbEnv.set_mutexlocks</a>,
-and
-<a href="../api_java/env_set_verbose.html">DbEnv.set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/env_open.html b/bdb/docs/api_java/env_open.html
deleted file mode 100644
index 3a1c2503633..00000000000
--- a/bdb/docs/api_java/env_open.html
+++ /dev/null
@@ -1,212 +0,0 @@
-<!--$Id: env_open.so,v 10.61 2000/12/01 15:50:31 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.open</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.open</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-import java.io.FileNotFoundException;
-<p>
-public void open(String db_home, int flags, int mode)
- throws DbException, FileNotFoundException;
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv.open method is the interface for opening the Berkeley DB
-environment. It provides a structure for creating a consistent
-environment for processes using one or more of the features of Berkeley DB.
-<p>The <b>db_home</b> argument to DbEnv.open (and file name
-resolution in general) is described in
-<a href="../ref/env/naming.html">Berkeley DB File Naming</a>.
-<p>The <b>flags</b> argument specifies the subsystems that are initialized
-and how the application's environment affects Berkeley DB file naming, among
-other things.
-<p>The <b>flags</b> value must be set to 0 or by bitwise inclusively <b>OR</b>'ing together one or more
-of the following values.
-<p>As there are a large number of flags that can be specified, they have been
-grouped together by functionality. The first group of flags indicate
-which of the Berkeley DB subsystems should be initialized:
-<p><dl compact>
-<p><dt><a name="Db.DB_JOINENV">Db.DB_JOINENV</a><dd>Join an existing environment. This option allows applications to
-join an existing environment without knowing which Berkeley DB subsystems
-the environment supports.
-<p><dt><a name="Db.DB_INIT_CDB">Db.DB_INIT_CDB</a><dd>Initialize locking for the <a href="../ref/cam/intro.html">Berkeley DB Concurrent Data Store</a>
-product. In this mode, Berkeley DB provides multiple reader/single writer
-access. The only other subsystem that should be specified with the
-Db.DB_INIT_CDB flag is Db.DB_INIT_MPOOL.
-<p>Access method calls are largely unchanged when using this flag, although
-any cursors through which update operations (e.g., <a href="../api_java/dbc_put.html">Dbc.put</a>,
-<a href="../api_java/dbc_del.html">Dbc.del</a>) will be made must have the <a href="../api_java/db_cursor.html#DB_WRITECURSOR">Db.DB_WRITECURSOR</a> value
-set in the flags parameter to the cursor call that creates the cursor.
-See <a href="../api_java/db_cursor.html">Db.cursor</a> for more information.
-<p><dt><a name="Db.DB_INIT_LOCK">Db.DB_INIT_LOCK</a><dd>Initialize the locking subsystem. This subsystem should be used when
-multiple processes or threads are going to be reading and writing a Berkeley DB
-database, so that they do not interfere with each other. If all threads
-are accessing the database(s) read-only, then locking is unnecessary.
-When the DB_INIT_LOCK flag is specified, it is usually necessary to run
-the deadlock detector, as well. See <a href="../utility/db_deadlock.html">db_deadlock</a> and
-<a href="../api_java/lock_detect.html">DbEnv.lock_detect</a> for more information.
-<p><dt><a name="Db.DB_INIT_LOG">Db.DB_INIT_LOG</a><dd>Initialize the logging subsystem. This subsystem is used when recovery
-from application or system failure is necessary.
-<p>The log is stored in one or more files in the environment directory.
-Each file is named using the format <i>log.NNNNNNNNNN</i>, where
-<i>NNNNNNNNNN</i> is the sequence number of the file within the log.
-For further information, see
-<a href="../ref/log/limits.html">Log File Limits</a>.
-<p>If the log region is being created and log files are already present, the
-log files are reviewed and subsequent log writes are appended
-to the end of the log, rather than overwriting current log entries.
-<p><dt><a name="Db.DB_INIT_MPOOL">Db.DB_INIT_MPOOL</a><dd>Initialize the shared memory buffer pool subsystem. This subsystem is
-used whenever the application is using any Berkeley DB access method.
-<p><dt><a name="Db.DB_INIT_TXN">Db.DB_INIT_TXN</a><dd>Initialize the transaction subsystem. This subsystem is used when
-recovery and atomicity of multiple operations and recovery are important.
-The DB_INIT_TXN flag implies the DB_INIT_LOG flag.
-</dl>
-<p>The second group of flags govern what recovery, if any, is performed when
-the environment is initialized:
-<p><dl compact>
-<p><dt><a name="Db.DB_RECOVER">Db.DB_RECOVER</a><dd>Run normal recovery on this environment before opening it for normal use.
-If this flag is set, the DB_CREATE flag must also be set since the regions
-will be removed and recreated.
-<p><dt><a name="Db.DB_RECOVER_FATAL">Db.DB_RECOVER_FATAL</a><dd>Run catastrophic recovery on this environment before opening it for normal
-use. If this flag is set, the DB_CREATE flag must also be set since the
-regions will be removed and recreated.
-</dl>
-<p>A standard part of the recovery process is to remove the existing Berkeley DB
-environment and create a new one in which to perform recovery. If the
-thread of control performing recovery does not specify the correct region
-initialization information (e.g., the correct memory pool cache size),
-the result can be an application running in an environment with incorrect
-cache and other subsystem sizes. For this reason, the thread of control
-performing recovery should either specify correct configuration
-information before calling the DbEnv.open method, or it should remove
-the environment after recovery is completed, leaving creation of the
-correctly sized environment to a subsequent call to DbEnv.open.
-<p>All Berkeley DB recovery processing must be single-threaded, that is, only a
-single thread of control may perform recovery or access a Berkeley DB
-environment while recovery is being performed. As it is not an error to
-specify Db.DB_RECOVER for an environment for which no recovery is
-required, it is reasonable programming practice for the thread of control
-responsible for performing recovery and creating the environment to always
-specify the Db.DB_RECOVER flag during startup.
-<p>The DbEnv.open function returns successfully if Db.DB_RECOVER
-or Db.DB_RECOVER_FATAL is specified and no log files exist, so it is
-necessary to ensure all necessary log files are present before running
-recovery. For further information, consult <a href="../utility/db_archive.html">db_archive</a> and
-<a href="../utility/db_recover.html">db_recover</a>.
-<p>The third group of flags govern file naming extensions in the environment:
-<p><dl compact>
-<!--$Id: m4.env_flags,v 10.9 2000/06/29 22:54:10 bostic Exp $-->
-<p><dt><a name="Db.DB_USE_ENVIRON">Db.DB_USE_ENVIRON</a><dd>The Berkeley DB process' environment may be permitted to specify information to
-be used when naming files; see <a href="../ref/env/naming.html">Berkeley DB
-File Naming</a>. As permitting users to specify which files are used can
-create security problems, environment information will be used in file
-naming for all users only if the DB_USE_ENVIRON flag is set.
-<p><dt><a name="Db.DB_USE_ENVIRON_ROOT">Db.DB_USE_ENVIRON_ROOT</a><dd>The Berkeley DB process' environment may be permitted to specify information to
-be used when naming files; see <a href="../ref/env/naming.html">Berkeley DB
-File Naming</a>. As permitting users to specify which files are used can
-create security problems, if the DB_USE_ENVIRON_ROOT flag is set,
-environment information will be used for file naming only for users with
-appropriate permissions (e.g., on UNIX systems, users with a user-ID of 0).
-</dl>
-<p>Finally, there are a few additional, unrelated flags:
-<p><dl compact>
-<p><dt><a name="Db.DB_CREATE">Db.DB_CREATE</a><dd>Cause Berkeley DB subsystems to create any underlying files, as necessary.
-<p><dt><a name="Db.DB_LOCKDOWN">Db.DB_LOCKDOWN</a><dd>Lock shared Berkeley DB environment files and memory mapped databases into memory.
-<p><dt><a name="Db.DB_PRIVATE">Db.DB_PRIVATE</a><dd>Specify that the environment will only be accessed by a single process
-(although that process may be multi-threaded). This flag has two effects
-on the Berkeley DB environment. First, all underlying data structures are
-allocated from per-process memory instead of from shared memory that is
-potentially accessible to more than a single process. Second, mutexes
-are only configured to work between threads.
-<p>This flag should not be specified if more than a single process is
-accessing the environment, as it is likely to cause database corruption
-and unpredictable behavior, e.g., if both a server application and the
-Berkeley DB utility <a href="../utility/db_stat.html">db_stat</a> will access the environment, the
-Db.DB_PRIVATE flag should not be specified.
-<p><dt><a name="Db.DB_SYSTEM_MEM">Db.DB_SYSTEM_MEM</a><dd>Allocate memory from system shared memory instead of from memory backed
-by the filesystem. See <a href="../ref/env/region.html">Shared Memory
-Regions</a> for more information.
-<p><dt><a name="Db.DB_THREAD">Db.DB_THREAD</a><dd>Cause the <a href="../api_java/dbenv_class.html">DbEnv</a> handle returned by DbEnv.open to be
-<i>free-threaded</i>, that is, useable by multiple threads within a
-single address space.
-<p>Threading is always assumed in the Java API, so no special flags are
-required and Berkeley DB functions will always behave as if the Db.DB_THREAD
-flag was specified.
-</dl>
-<p>On UNIX systems, or in IEEE/ANSI Std 1003.1 (POSIX) environments, all files created by Berkeley DB
-are created with mode <b>mode</b> (as described in <b>chmod</b>(2)) and
-modified by the process' umask value at the time of creation (see
-<b>umask</b>(2)). The group ownership of created files is based on
-the system and directory defaults, and is not further specified by Berkeley DB.
-If <b>mode</b> is 0, files are created readable and writeable by both
-owner and group. On Windows systems, the mode argument is ignored.
-<p>The DbEnv.open method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Environment Variables</h1>
-<p><dl compact>
-<p><dt>DB_HOME<dd>The environment variable <b>DB_HOME</b> may be used as the path of
-the database home as described in
-<a href="../ref/env/naming.html">Berkeley DB File Naming</a>.
-</dl>
-<h1>Errors</h1>
-<p>The DbEnv.open method may fail and throw an exception encapsulating a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EAGAIN<dd>The shared memory region was locked and (repeatedly) unavailable.
-</dl>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>
-The Db.DB_THREAD flag was specified and spinlocks are not
-implemented for this architecture.
-<p>The DB_HOME or TMPDIR environment variables were set but empty.
-<p>An incorrectly formatted <b>NAME VALUE</b> entry or line was found.
-</dl>
-<p><dl compact>
-<p><dt>ENOSPC<dd>HP-UX only: a previously created Berkeley DB environment for this process still
-exists.
-</dl>
-<p>If the file or directory does not exist, the DbEnv.open method will
-fail and
-throw a FileNotFoundException exception.
-<p>The DbEnv.open method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbEnv.open method may fail and throw
-a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls
-will fail in the same way.
-<h3>Class</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_java/env_close.html">DbEnv.close</a>,
-<a href="../api_java/env_open.html">DbEnv.open</a>,
-<a href="../api_java/env_remove.html">DbEnv.remove</a>,
-<a href="../api_java/env_strerror.html">DbEnv.strerror</a>,
-<a href="../api_java/env_version.html">DbEnv.get_version_string</a>
-<a href="../api_java/env_set_cachesize.html">DbEnv.set_cachesize</a>,
-<a href="../api_java/env_set_errcall.html">DbEnv.set_errcall</a>,
-<a href="../api_java/env_set_error_stream.html">DbEnv.set_error_stream</a>,
-<a href="../api_java/env_set_errpfx.html">DbEnv.set_errpfx</a>,
-<a href="../api_java/env_set_flags.html">DbEnv.set_flags</a>,
-<a href="../api_java/env_set_mutexlocks.html">DbEnv.set_mutexlocks</a>,
-and
-<a href="../api_java/env_set_verbose.html">DbEnv.set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/env_remove.html b/bdb/docs/api_java/env_remove.html
deleted file mode 100644
index acfaf39761e..00000000000
--- a/bdb/docs/api_java/env_remove.html
+++ /dev/null
@@ -1,129 +0,0 @@
-<!--$Id: env_remove.so,v 10.24 2000/12/06 14:40:11 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.remove</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.remove</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-import java.io.FileNotFoundException;
-<p>
-public void remove(String db_home, int flags)
- throws DbException, FileNotFoundException;
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv.remove method destroys a Berkeley DB environment, if it is not
-currently in use. The environment regions, including any backing files,
-are removed. Any log or database files and the environment directory are
-not removed.
-<p>The <b>db_home</b> argument to DbEnv.remove is described in
-<a href="../ref/env/naming.html">Berkeley DB File Naming</a>.
-<p>If there are processes that have called <a href="../api_java/env_open.html">DbEnv.open</a> without
-calling <a href="../api_java/env_close.html">DbEnv.close</a> (i.e., there are processes currently using
-the environment), DbEnv.remove will fail without further action,
-unless the <a href="../api_java/env_remove.html#DB_FORCE">Db.DB_FORCE</a> flag is set, in which case
-DbEnv.remove will attempt to remove the environment regardless
-of any processes still using it.
-<p>The result of attempting to forcibly destroy the environment when it is
-in use is unspecified. Processes using an environment often maintain open
-file descriptors for shared regions within it. On UNIX systems, the
-environment removal will usually succeed and processes that have already
-joined the region will continue to run in that region without change,
-however processes attempting to join the environment will either fail or
-create new regions. On other systems (e.g., Windows/NT), where the
-<b>unlink</b>(2) system call will fail if any process has an open
-file descriptor for the file, the region removal will fail.
-<p>Calling DbEnv.remove should not be necessary for most applications,
-as the Berkeley DB environment is cleaned up as part of normal database recovery
-procedures, however, applications may wish to call DbEnv.remove
-as part of application shutdown to free up system resources.
-Specifically, when the <a href="../api_java/env_open.html#DB_SYSTEM_MEM">Db.DB_SYSTEM_MEM</a> flag was specified to
-<a href="../api_java/env_open.html">DbEnv.open</a>, it may be useful to call DbEnv.remove in order
-to release system shared memory segments that have been allocated.
-<p>In the case of catastrophic or system failure, database recovery must be
-performed (see <a href="../utility/db_recover.html">db_recover</a>), or the <a href="../api_java/env_open.html#DB_RECOVER">Db.DB_RECOVER</a> and
-<a href="../api_java/env_open.html#DB_RECOVER_FATAL">Db.DB_RECOVER_FATAL</a> flags to <a href="../api_java/env_open.html">DbEnv.open</a> must be specified
-when the environment is re-opened. Alternatively, if recovery is not
-required because no database state is maintained across failures, and
-the <a href="../api_java/env_open.html#DB_SYSTEM_MEM">Db.DB_SYSTEM_MEM</a> flag was not specified when the environment
-was created, it is possible to clean up an environment by removing all
-of the files in the environment directory that begin with the string
-prefix "__db", as no backing files are created in any other directory.
-<p>The <b>flags</b> value must be set to 0 or by bitwise inclusively <b>OR</b>'ing together one or more
-of the following values.
-<p><dl compact>
-<p><dt><a name="Db.DB_FORCE">Db.DB_FORCE</a><dd>If the <a href="../api_java/env_remove.html#DB_FORCE">Db.DB_FORCE</a> flag is set, the environment is removed regardless
-of any processes that may still using it, and, no locks are acquired
-during this process. (Generally, the <a href="../api_java/env_remove.html#DB_FORCE">Db.DB_FORCE</a> flag is only
-specified when applications were unable to shut down cleanly, and there
-is a risk that an application may have died holding a Berkeley DB lock.)
-<!--$Id: m4.env_flags,v 10.9 2000/06/29 22:54:10 bostic Exp $-->
-<p><dt><a name="Db.DB_USE_ENVIRON">Db.DB_USE_ENVIRON</a><dd>The Berkeley DB process' environment may be permitted to specify information to
-be used when naming files; see <a href="../ref/env/naming.html">Berkeley DB
-File Naming</a>. As permitting users to specify which files are used can
-create security problems, environment information will be used in file
-naming for all users only if the DB_USE_ENVIRON flag is set.
-<p><dt><a name="Db.DB_USE_ENVIRON_ROOT">Db.DB_USE_ENVIRON_ROOT</a><dd>The Berkeley DB process' environment may be permitted to specify information to
-be used when naming files; see <a href="../ref/env/naming.html">Berkeley DB
-File Naming</a>. As permitting users to specify which files are used can
-create security problems, if the DB_USE_ENVIRON_ROOT flag is set,
-environment information will be used for file naming only for users with
-appropriate permissions (e.g., on UNIX systems, users with a user-ID of 0).
-</dl>
-<p>In multi-threaded applications, only a single thread may call
-DbEnv.remove.
-<p>A <a href="../api_java/dbenv_class.html">DbEnv</a> handle which has already been used to open an
-environment should not be used to call the DbEnv.remove method, a new
-<a href="../api_java/dbenv_class.html">DbEnv</a> handle should be created for that purpose.
-<p>Once DbEnv.remove has been called, regardless of its return,
-the Berkeley DB environment handle may not be accessed again.
-<p>The DbEnv.remove method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EBUSY<dd>The shared memory region was in use and the force flag was not set.
-</dl>
-<p>If the file or directory does not exist, the DbEnv.remove method will
-fail and
-throw a FileNotFoundException exception.
-<p>The DbEnv.remove method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbEnv.remove method may fail and throw
-a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls
-will fail in the same way.
-<h3>Class</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_java/env_close.html">DbEnv.close</a>,
-<a href="../api_java/env_open.html">DbEnv.open</a>,
-<a href="../api_java/env_remove.html">DbEnv.remove</a>,
-<a href="../api_java/env_strerror.html">DbEnv.strerror</a>,
-<a href="../api_java/env_version.html">DbEnv.get_version_string</a>
-<a href="../api_java/env_set_cachesize.html">DbEnv.set_cachesize</a>,
-<a href="../api_java/env_set_errcall.html">DbEnv.set_errcall</a>,
-<a href="../api_java/env_set_error_stream.html">DbEnv.set_error_stream</a>,
-<a href="../api_java/env_set_errpfx.html">DbEnv.set_errpfx</a>,
-<a href="../api_java/env_set_flags.html">DbEnv.set_flags</a>,
-<a href="../api_java/env_set_mutexlocks.html">DbEnv.set_mutexlocks</a>,
-and
-<a href="../api_java/env_set_verbose.html">DbEnv.set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/env_set_cachesize.html b/bdb/docs/api_java/env_set_cachesize.html
deleted file mode 100644
index af31e44f91d..00000000000
--- a/bdb/docs/api_java/env_set_cachesize.html
+++ /dev/null
@@ -1,86 +0,0 @@
-<!--$Id: env_set_cachesize.so,v 10.19 2000/05/20 16:29:11 bostic Exp $-->
-<!--$Id: m4.cachesize,v 10.7 2000/02/11 18:54:45 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.set_cachesize</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.set_cachesize</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public int set_cachesize(int gbytes, int bytes, in ncache)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>Set the size of the database's shared memory buffer pool, i.e., the cache,
-to <b>gbytes</b> gigabytes plus <b>bytes</b>. The cache should be the
-size of the normal working data set of the application, with some small
-amount of additional memory for unusual situations. (Note, the working
-set is not the same as the number of simultaneously referenced pages, and
-should be quite a bit larger!)
-<p>The default cache size is 256KB, and may not be specified as less than
-20KB. Any cache size less than 500MB is automatically increased by 25%
-to account for buffer pool overhead, cache sizes larger than 500MB are
-used as specified. For information on tuning the Berkeley DB cache size, see
-<a href="../ref/am_conf/cachesize.html">Selecting a cache size</a>.
-<p>It is possible to specify caches to Berkeley DB that are large enough so that
-they cannot be allocated contiguously on some architectures, e.g., some
-releases of Solaris limit the amount of memory that may be allocated
-contiguously by a process. If <b>ncache</b> is 0 or 1, the cache will
-be allocated contiguously in memory. If it is greater than 1, the cache
-will be broken up into <b>ncache</b> equally sized separate pieces of
-memory.
-<p>The DbEnv.set_cachesize interface may only be used to configure Berkeley DB before
-the <a href="../api_java/env_open.html">DbEnv.open</a> interface is called.
-<p>The DbEnv.set_cachesize method throws an exception that encapsulates a non-zero error value on
-failure.
-<p>The database environment's cache size may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_cachesize", one or more whitespace characters,
-and the three arguments specified to this interface, separated by whitespace
-characters, for example, "set_cachesize 1 500 2". Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_java/env_open.html">DbEnv.open</a> was called.
-<p>The specified cache size was impossibly small.
-</dl>
-<h3>Class</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_java/env_close.html">DbEnv.close</a>,
-<a href="../api_java/env_open.html">DbEnv.open</a>,
-<a href="../api_java/env_remove.html">DbEnv.remove</a>,
-<a href="../api_java/env_strerror.html">DbEnv.strerror</a>,
-<a href="../api_java/env_version.html">DbEnv.get_version_string</a>
-<a href="../api_java/env_set_cachesize.html">DbEnv.set_cachesize</a>,
-<a href="../api_java/env_set_errcall.html">DbEnv.set_errcall</a>,
-<a href="../api_java/env_set_error_stream.html">DbEnv.set_error_stream</a>,
-<a href="../api_java/env_set_errpfx.html">DbEnv.set_errpfx</a>,
-<a href="../api_java/env_set_flags.html">DbEnv.set_flags</a>,
-<a href="../api_java/env_set_mutexlocks.html">DbEnv.set_mutexlocks</a>,
-and
-<a href="../api_java/env_set_verbose.html">DbEnv.set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/env_set_data_dir.html b/bdb/docs/api_java/env_set_data_dir.html
deleted file mode 100644
index 52fc159e77a..00000000000
--- a/bdb/docs/api_java/env_set_data_dir.html
+++ /dev/null
@@ -1,77 +0,0 @@
-<!--$Id: env_set_data_dir.so,v 10.3 2000/05/20 16:29:11 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.set_data_dir</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.set_data_dir</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public void set_data_dir(String dir)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>Set the path of a directory to be used as the location of the access
-method database files. Paths specified to the <a href="../api_java/db_open.html">Db.open</a> function
-will be searched relative to this path. Paths set using this interface
-are additive, and specifying more than one will result in each specified
-directory being searched for database files. If any directories are
-specified, created database files will always be created in the first path
-specified.
-<p>If no database directories are specified, database files can only exist
-in the environment home directory. See <a href="../ref/env/naming.html">Berkeley DB File Naming</a> for more information.
-<p>For the greatest degree of recoverability from system or application
-failure, database files and log files should be located on separate
-physical devices.
-<p>The DbEnv.set_data_dir interface may only be used to configure Berkeley DB before
-the <a href="../api_java/env_open.html">DbEnv.open</a> interface is called.
-<p>The DbEnv.set_data_dir method throws an exception that encapsulates a non-zero error value on
-failure.
-<p>The database environment's data directory may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_data_dir", one or more whitespace characters,
-and the directory name. Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_java/env_open.html">DbEnv.open</a> was called.
-</dl>
-<h3>Class</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_java/env_close.html">DbEnv.close</a>,
-<a href="../api_java/env_open.html">DbEnv.open</a>,
-<a href="../api_java/env_remove.html">DbEnv.remove</a>,
-<a href="../api_java/env_strerror.html">DbEnv.strerror</a>,
-<a href="../api_java/env_version.html">DbEnv.get_version_string</a>
-<a href="../api_java/env_set_cachesize.html">DbEnv.set_cachesize</a>,
-<a href="../api_java/env_set_errcall.html">DbEnv.set_errcall</a>,
-<a href="../api_java/env_set_error_stream.html">DbEnv.set_error_stream</a>,
-<a href="../api_java/env_set_errpfx.html">DbEnv.set_errpfx</a>,
-<a href="../api_java/env_set_flags.html">DbEnv.set_flags</a>,
-<a href="../api_java/env_set_mutexlocks.html">DbEnv.set_mutexlocks</a>,
-and
-<a href="../api_java/env_set_verbose.html">DbEnv.set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/env_set_errcall.html b/bdb/docs/api_java/env_set_errcall.html
deleted file mode 100644
index 596de47137d..00000000000
--- a/bdb/docs/api_java/env_set_errcall.html
+++ /dev/null
@@ -1,78 +0,0 @@
-<!--$Id: env_set_errcall.so,v 10.16 1999/12/20 08:52:29 bostic Exp $-->
-<!--$Id: m4.errset,v 10.8 2000/02/19 20:57:57 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.set_errcall</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.set_errcall</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public interface DbErrcall
-{
- public abstract void errcall(String errpfx, String msg);
-}
-public class DbEnv
-{
- public void set_errcall(DbErrcall errcall);
- ...
-}
-</pre></h3>
-<h1>Description</h1>
-When an error occurs in the Berkeley DB library, an exception is thrown. In
-some cases, however, the <b>errno</b> value may be insufficient to
-completely describe the cause of the error, especially during initial
-application debugging.
-<p>The DbEnv.set_errcall method is used to enhance the mechanism for reporting error
-messages to the application. The DbEnv.set_errcall method must be
-called with a single object argument. The object's class must implement
-the DbErrcall interface. In some cases, when an error occurs, Berkeley DB will
-invoke the object's errcall() method with two arguments; the first is the
-prefix string (as previously set by <a href="../api_java/db_set_errpfx.html">Db.set_errpfx</a> or
-<a href="../api_java/env_set_errpfx.html">DbEnv.set_errpfx</a>), the second will be an error message string.
-It is up to this method to display the message in an appropriate manner.
-<p>Alternatively, you can use the <a href="../api_java/env_set_error_stream.html">DbEnv.set_error_stream</a> method to display
-the additional information via an output stream. You should not mix these
-approaches.
-<p>This error logging enhancement does not slow performance or significantly
-increase application size, and may be run during normal operation as well
-as during application debugging.
-<p>The DbEnv.set_errcall interface may be used to configure Berkeley DB at any time
-during the life of the application.
-<h3>Class</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_java/env_close.html">DbEnv.close</a>,
-<a href="../api_java/env_open.html">DbEnv.open</a>,
-<a href="../api_java/env_remove.html">DbEnv.remove</a>,
-<a href="../api_java/env_strerror.html">DbEnv.strerror</a>,
-<a href="../api_java/env_version.html">DbEnv.get_version_string</a>
-<a href="../api_java/env_set_cachesize.html">DbEnv.set_cachesize</a>,
-<a href="../api_java/env_set_errcall.html">DbEnv.set_errcall</a>,
-<a href="../api_java/env_set_error_stream.html">DbEnv.set_error_stream</a>,
-<a href="../api_java/env_set_errpfx.html">DbEnv.set_errpfx</a>,
-<a href="../api_java/env_set_flags.html">DbEnv.set_flags</a>,
-<a href="../api_java/env_set_mutexlocks.html">DbEnv.set_mutexlocks</a>,
-and
-<a href="../api_java/env_set_verbose.html">DbEnv.set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/env_set_error_stream.html b/bdb/docs/api_java/env_set_error_stream.html
deleted file mode 100644
index 18f44c08d7d..00000000000
--- a/bdb/docs/api_java/env_set_error_stream.html
+++ /dev/null
@@ -1,69 +0,0 @@
-<!--$Id: env_set_error_stream.so,v 10.13 1999/12/20 08:52:33 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.set_error_stream</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.set_error_stream</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public void Db.set_error_stream(OutputStream s)
- throws DbException
-</pre></h3>
-<h1>Description</h1>
-<p>When an error occurs in the Berkeley DB library, an exception is thrown. In
-some cases, however, the <b>errno</b> value may be insufficient to
-completely describe the cause of the error, especially during initial
-application debugging.
-<p>The DbEnv.set_error_stream method is used to enhance the mechanism for
-reporting error messages to the application by setting a OutputStream
-to be used for displaying additional Berkeley DB error messages. In some cases,
-when an error occurs, Berkeley DB will output an additional error message to
-the specified stream.
-<p>The error message will consist of the prefix string and a colon
-("<b>:</b>") (if a prefix string was previously specified using
-<a href="../api_java/env_set_errpfx.html">DbEnv.set_errpfx</a>), an error string, and a trailing
-&lt;newline&gt; character.
-<p>Alternatively, you can use the <a href="../api_java/env_set_errcall.html">DbEnv.set_errcall</a> method to capture the
-additional error information in a way that does not use output streams.
-You should not mix these approaches.
-<p>This error logging enhancement does not slow performance or significantly
-increase application size, and may be run during normal operation as well
-as during application debugging.
-<h3>Class</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_java/env_close.html">DbEnv.close</a>,
-<a href="../api_java/env_open.html">DbEnv.open</a>,
-<a href="../api_java/env_remove.html">DbEnv.remove</a>,
-<a href="../api_java/env_strerror.html">DbEnv.strerror</a>,
-<a href="../api_java/env_version.html">DbEnv.get_version_string</a>
-<a href="../api_java/env_set_cachesize.html">DbEnv.set_cachesize</a>,
-<a href="../api_java/env_set_errcall.html">DbEnv.set_errcall</a>,
-<a href="../api_java/env_set_error_stream.html">DbEnv.set_error_stream</a>,
-<a href="../api_java/env_set_errpfx.html">DbEnv.set_errpfx</a>,
-<a href="../api_java/env_set_flags.html">DbEnv.set_flags</a>,
-<a href="../api_java/env_set_mutexlocks.html">DbEnv.set_mutexlocks</a>,
-and
-<a href="../api_java/env_set_verbose.html">DbEnv.set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/env_set_errpfx.html b/bdb/docs/api_java/env_set_errpfx.html
deleted file mode 100644
index aca43448c8b..00000000000
--- a/bdb/docs/api_java/env_set_errpfx.html
+++ /dev/null
@@ -1,52 +0,0 @@
-<!--$Id: env_set_errpfx.so,v 10.12 1999/12/20 08:52:29 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.set_errpfx</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.set_errpfx</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public void set_errpfx(String errpfx);
-</pre></h3>
-<h1>Description</h1>
-<p>Set the prefix string that appears before error messages issued by Berkeley DB.
-<p>The DbEnv.set_errpfx interface may be used to configure Berkeley DB at any time
-during the life of the application.
-<h3>Class</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_java/env_close.html">DbEnv.close</a>,
-<a href="../api_java/env_open.html">DbEnv.open</a>,
-<a href="../api_java/env_remove.html">DbEnv.remove</a>,
-<a href="../api_java/env_strerror.html">DbEnv.strerror</a>,
-<a href="../api_java/env_version.html">DbEnv.get_version_string</a>
-<a href="../api_java/env_set_cachesize.html">DbEnv.set_cachesize</a>,
-<a href="../api_java/env_set_errcall.html">DbEnv.set_errcall</a>,
-<a href="../api_java/env_set_error_stream.html">DbEnv.set_error_stream</a>,
-<a href="../api_java/env_set_errpfx.html">DbEnv.set_errpfx</a>,
-<a href="../api_java/env_set_flags.html">DbEnv.set_flags</a>,
-<a href="../api_java/env_set_mutexlocks.html">DbEnv.set_mutexlocks</a>,
-and
-<a href="../api_java/env_set_verbose.html">DbEnv.set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/env_set_feedback.html b/bdb/docs/api_java/env_set_feedback.html
deleted file mode 100644
index 1b5310e2537..00000000000
--- a/bdb/docs/api_java/env_set_feedback.html
+++ /dev/null
@@ -1,76 +0,0 @@
-<!--$Id: env_set_feedback.so,v 10.19 2000/07/09 19:12:39 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.set_feedback</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.set_feedback</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public interface DbEnvFeedback
-{
- public abstract void db_feedback(DbEnv dbenv, int opcode, int pct);
-}
-public class DbEnv
-{
- public void set_feedback(DbEnvFeedback db_feedback)
- throws DbException;
- ...
-}
-</pre></h3>
-<h1>Description</h1>
-<p>Some operations performed by the Berkeley DB library can take non-trivial
-amounts of time. The DbEnv.set_feedback method can be used by
-applications to monitor progress within these operations.
-<p>When an operation is likely to take a long time, Berkeley DB will call the
-specified callback method. This method must be declared with
-three arguments: the first will be a reference to the enclosing
-environment, the second a flag value, and the third the percent of the
-operation that has been completed, specified as an integer value between
-0 and 100. It is up to the callback method to display this
-information in an appropriate manner.
-<p>The <b>opcode</b> argument may take on any of the following values:
-<p><dl compact>
-<p><dt><a name="Db.DB_RECOVER">Db.DB_RECOVER</a><dd>The environment is being recovered.
-</dl>
-<p>The DbEnv.set_feedback interface may be used to configure Berkeley DB at any time
-during the life of the application.
-<p>The DbEnv.set_feedback method throws an exception that encapsulates a non-zero error value on
-failure.
-<h3>Class</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_java/env_close.html">DbEnv.close</a>,
-<a href="../api_java/env_open.html">DbEnv.open</a>,
-<a href="../api_java/env_remove.html">DbEnv.remove</a>,
-<a href="../api_java/env_strerror.html">DbEnv.strerror</a>,
-<a href="../api_java/env_version.html">DbEnv.get_version_string</a>
-<a href="../api_java/env_set_cachesize.html">DbEnv.set_cachesize</a>,
-<a href="../api_java/env_set_errcall.html">DbEnv.set_errcall</a>,
-<a href="../api_java/env_set_error_stream.html">DbEnv.set_error_stream</a>,
-<a href="../api_java/env_set_errpfx.html">DbEnv.set_errpfx</a>,
-<a href="../api_java/env_set_flags.html">DbEnv.set_flags</a>,
-<a href="../api_java/env_set_mutexlocks.html">DbEnv.set_mutexlocks</a>,
-and
-<a href="../api_java/env_set_verbose.html">DbEnv.set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/env_set_flags.html b/bdb/docs/api_java/env_set_flags.html
deleted file mode 100644
index d371429e0ae..00000000000
--- a/bdb/docs/api_java/env_set_flags.html
+++ /dev/null
@@ -1,84 +0,0 @@
-<!--$Id-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.set_flags</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.set_flags</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public void set_flags(int flags, int onoff)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>The <b>flags</b> value must be set to 0 or by bitwise inclusively <b>OR</b>'ing together one or more
-of the following values.
-If <b>onoff</b> is zero, the specified flags are cleared, otherwise they
-are set.
-<p><dl compact>
-<p><dt><a name="Db.DB_CDB_ALLDB">Db.DB_CDB_ALLDB</a><dd>For Berkeley DB Concurrent Data Store applications, perform locking on an environment-wide basis
-rather than per-database. This flag may only be used to configure Berkeley DB
-before the <a href="../api_java/env_open.html">DbEnv.open</a> interface is called.
-<p><dt><a name="Db.DB_NOMMAP">Db.DB_NOMMAP</a><dd>Copy read-only database files in this environment into the local cache
-instead of potentially mapping them into process memory (see the
-description of the <a href="../api_java/env_set_mp_mmapsize.html">DbEnv.set_mp_mmapsize</a> method for further information).
-<p><dt><a name="Db.DB_TXN_NOSYNC">Db.DB_TXN_NOSYNC</a><dd>Do not synchronously flush the log on transaction commit or prepare.
-This means that transactions exhibit the ACI (atomicity, consistency and
-isolation) properties, but not D (durability), i.e., database integrity
-will be maintained but it is possible that some number of the most
-recently committed transactions may be undone during recovery instead of
-being redone.
-<p>The number of transactions that are potentially at risk is governed by
-how often the log is checkpointed (see <a href="../utility/db_checkpoint.html">db_checkpoint</a> for more
-information) and how many log updates can fit on a single log page.
-</dl>
-<p>The DbEnv.set_flags method throws an exception that encapsulates a non-zero error value on
-failure.
-<p>The database environment's flag values may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_flags", one or more whitespace characters,
-and the interface flag argument as a string, for example, "set_flags
-DB_TXN_NOSYNC". Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h3>Class</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_java/env_close.html">DbEnv.close</a>,
-<a href="../api_java/env_open.html">DbEnv.open</a>,
-<a href="../api_java/env_remove.html">DbEnv.remove</a>,
-<a href="../api_java/env_strerror.html">DbEnv.strerror</a>,
-<a href="../api_java/env_version.html">DbEnv.get_version_string</a>
-<a href="../api_java/env_set_cachesize.html">DbEnv.set_cachesize</a>,
-<a href="../api_java/env_set_errcall.html">DbEnv.set_errcall</a>,
-<a href="../api_java/env_set_error_stream.html">DbEnv.set_error_stream</a>,
-<a href="../api_java/env_set_errpfx.html">DbEnv.set_errpfx</a>,
-<a href="../api_java/env_set_flags.html">DbEnv.set_flags</a>,
-<a href="../api_java/env_set_mutexlocks.html">DbEnv.set_mutexlocks</a>,
-and
-<a href="../api_java/env_set_verbose.html">DbEnv.set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/env_set_lg_bsize.html b/bdb/docs/api_java/env_set_lg_bsize.html
deleted file mode 100644
index 1f3725f6eb5..00000000000
--- a/bdb/docs/api_java/env_set_lg_bsize.html
+++ /dev/null
@@ -1,71 +0,0 @@
-<!--$Id: env_set_lg_bsize.so,v 10.10 2000/05/20 16:29:11 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.set_lg_bsize</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.set_lg_bsize</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public void set_lg_bsize(int lg_bsize)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>Set the size of the in-memory log buffer, in bytes. By default, or if
-the value is set to 0, a size of 32K is used.
-<p>Log information is stored in-memory until the storage space fills up
-or transaction commit forces the information to be flushed to stable
-storage. In the presence of long-running transactions or transactions
-producing large amounts of data, larger buffer sizes can increase
-throughput.
-<p>The DbEnv.set_lg_bsize interface may only be used to configure Berkeley DB before
-the <a href="../api_java/env_open.html">DbEnv.open</a> interface is called.
-<p>The DbEnv.set_lg_bsize method throws an exception that encapsulates a non-zero error value on
-failure.
-<p>The database environment's log buffer size may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_lg_bsize", one or more whitespace characters,
-and the size in bytes. Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_java/env_open.html">DbEnv.open</a> was called.
-</dl>
-<h3>Class</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_java/env_set_lg_bsize.html">DbEnv.set_lg_bsize</a>,
-<a href="../api_java/env_set_lg_max.html">DbEnv.set_lg_max</a>,
-<a href="../api_java/log_archive.html">DbEnv.log_archive</a>,
-<a href="../api_java/log_compare.html">DbEnv.log_compare</a>,
-<a href="../api_java/log_file.html">DbEnv.log_file</a>,
-<a href="../api_java/log_flush.html">DbEnv.log_flush</a>,
-<a href="../api_java/log_get.html">DbEnv.log_get</a>,
-<a href="../api_java/log_put.html">DbEnv.log_put</a>,
-<a href="../api_java/log_register.html">DbEnv.log_register</a>,
-<a href="../api_java/log_stat.html">DbEnv.log_stat</a>
-and
-<a href="../api_java/log_unregister.html">DbEnv.log_unregister</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/env_set_lg_dir.html b/bdb/docs/api_java/env_set_lg_dir.html
deleted file mode 100644
index 6633ee5d820..00000000000
--- a/bdb/docs/api_java/env_set_lg_dir.html
+++ /dev/null
@@ -1,73 +0,0 @@
-<!--$Id: env_set_lg_dir.so,v 10.3 2000/05/20 16:29:11 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.set_lg_dir</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.set_lg_dir</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public void set_lg_dir(String dir)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>The path of a directory to be used as the location of logging files.
-Log files created by the Log Manager subsystem will be created in this
-directory.
-<p>If no logging directory is specified, log files are created in the
-environment home directory. See <a href="../ref/env/naming.html">Berkeley DB File Naming</a> for more information.
-<p>For the greatest degree of recoverability from system or application
-failure, database files and log files should be located on separate
-physical devices.
-<p>The DbEnv.set_lg_dir interface may only be used to configure Berkeley DB before
-the <a href="../api_java/env_open.html">DbEnv.open</a> interface is called.
-<p>The DbEnv.set_lg_dir method throws an exception that encapsulates a non-zero error value on
-failure.
-<p>The database environment's logging directory may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_lg_dir", one or more whitespace characters,
-and the directory name. Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_java/env_open.html">DbEnv.open</a> was called.
-</dl>
-<h3>Class</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_java/env_close.html">DbEnv.close</a>,
-<a href="../api_java/env_open.html">DbEnv.open</a>,
-<a href="../api_java/env_remove.html">DbEnv.remove</a>,
-<a href="../api_java/env_strerror.html">DbEnv.strerror</a>,
-<a href="../api_java/env_version.html">DbEnv.get_version_string</a>
-<a href="../api_java/env_set_cachesize.html">DbEnv.set_cachesize</a>,
-<a href="../api_java/env_set_errcall.html">DbEnv.set_errcall</a>,
-<a href="../api_java/env_set_error_stream.html">DbEnv.set_error_stream</a>,
-<a href="../api_java/env_set_errpfx.html">DbEnv.set_errpfx</a>,
-<a href="../api_java/env_set_flags.html">DbEnv.set_flags</a>,
-<a href="../api_java/env_set_mutexlocks.html">DbEnv.set_mutexlocks</a>,
-and
-<a href="../api_java/env_set_verbose.html">DbEnv.set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/env_set_lg_max.html b/bdb/docs/api_java/env_set_lg_max.html
deleted file mode 100644
index fea4163bec0..00000000000
--- a/bdb/docs/api_java/env_set_lg_max.html
+++ /dev/null
@@ -1,71 +0,0 @@
-<!--$Id: env_set_lg_max.so,v 10.20 2000/05/20 16:29:12 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.set_lg_max</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.set_lg_max</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public void set_lg_max(int lg_max)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>Set the maximum size of a single file in the log, in bytes. Because
-<a href="../api_java/lsn_class.html">DbLsn</a> file offsets are unsigned 4-byte values, the set value may
-not be larger than the maximum unsigned 4-byte value. By default, or if
-the value is set to 0, a size of 10MB is used.
-<p>See <a href="../ref/log/limits.html">Log File Limits</a>
-for more information.
-<p>The DbEnv.set_lg_max interface may only be used to configure Berkeley DB before
-the <a href="../api_java/env_open.html">DbEnv.open</a> interface is called.
-<p>The DbEnv.set_lg_max method throws an exception that encapsulates a non-zero error value on
-failure.
-<p>The database environment's log file size may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_lg_max", one or more whitespace characters,
-and the size in bytes. Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_java/env_open.html">DbEnv.open</a> was called.
-<p>The specified log file size was too large.
-</dl>
-<h3>Class</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_java/env_set_lg_bsize.html">DbEnv.set_lg_bsize</a>,
-<a href="../api_java/env_set_lg_max.html">DbEnv.set_lg_max</a>,
-<a href="../api_java/log_archive.html">DbEnv.log_archive</a>,
-<a href="../api_java/log_compare.html">DbEnv.log_compare</a>,
-<a href="../api_java/log_file.html">DbEnv.log_file</a>,
-<a href="../api_java/log_flush.html">DbEnv.log_flush</a>,
-<a href="../api_java/log_get.html">DbEnv.log_get</a>,
-<a href="../api_java/log_put.html">DbEnv.log_put</a>,
-<a href="../api_java/log_register.html">DbEnv.log_register</a>,
-<a href="../api_java/log_stat.html">DbEnv.log_stat</a>
-and
-<a href="../api_java/log_unregister.html">DbEnv.log_unregister</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/env_set_lk_conflicts.html b/bdb/docs/api_java/env_set_lk_conflicts.html
deleted file mode 100644
index 3ad5c6173c9..00000000000
--- a/bdb/docs/api_java/env_set_lk_conflicts.html
+++ /dev/null
@@ -1,68 +0,0 @@
-<!--$Id: env_set_lk_conflicts.so,v 10.22 2000/12/08 20:43:15 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.set_lk_conflicts</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.set_lk_conflicts</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public void set_lk_conflicts(byte[][] conflicts)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>Set the locking conflicts matrix.
-A non-0 value for the array element:
-<p><blockquote><pre>conflicts[requested_mode][held_mode]</pre></blockquote>
-<p>indicates that requested_mode and held_mode conflict. The
-<i>not-granted</i> mode must be represented by 0.
-<p>If no <b>conflicts</b> value is specified, the conflicts array
-<b>db_rw_conflicts</b> is used; see <a href="../ref/lock/stdmode.html">Standard Lock Modes</a> for a description of that array.
-<p>The DbEnv.set_lk_conflicts interface may only be used to configure Berkeley DB before
-the <a href="../api_java/env_open.html">DbEnv.open</a> interface is called.
-<p>The DbEnv.set_lk_conflicts method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_java/env_open.html">DbEnv.open</a> was called.
-</dl>
-<p><dl compact>
-<p><dt>ENOMEM<dd>No memory was available to copy the conflicts array.
-</dl>
-<h3>Classes</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>, <a href="../api_java/lock_class.html">DbLock</a>
-<h1>See Also</h1>
-<a href="../api_java/env_set_lk_conflicts.html">DbEnv.set_lk_conflicts</a>,
-<a href="../api_java/env_set_lk_detect.html">DbEnv.set_lk_detect</a>,
-<a href="../api_java/env_set_lk_max_locks.html">DbEnv.set_lk_max_locks</a>,
-<a href="../api_java/env_set_lk_max_lockers.html">DbEnv.set_lk_max_lockers</a>,
-<a href="../api_java/env_set_lk_max_objects.html">DbEnv.set_lk_max_objects</a>,
-<a href="../api_java/env_set_lk_max.html">DbEnv.set_lk_max</a>,
-<a href="../api_java/lock_detect.html">DbEnv.lock_detect</a>,
-<a href="../api_java/lock_get.html">DbEnv.lock_get</a>,
-<a href="../api_java/lock_id.html">DbEnv.lock_id</a>,
-<a href="../api_java/lock_put.html">DbLock.put</a>
-and
-<a href="../api_java/lock_stat.html">DbEnv.lock_stat</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/env_set_lk_detect.html b/bdb/docs/api_java/env_set_lk_detect.html
deleted file mode 100644
index cf3dd087177..00000000000
--- a/bdb/docs/api_java/env_set_lk_detect.html
+++ /dev/null
@@ -1,74 +0,0 @@
-<!--$Id: env_set_lk_detect.so,v 10.19 2000/12/08 20:43:15 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.set_lk_detect</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.set_lk_detect</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public void set_lk_detect(int detect)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>Set if the deadlock detector is to be run whenever a lock conflict occurs,
-and specify which transaction should be aborted in the case of a deadlock.
-The specified value must be one of the following list:
-<p><dl compact>
-<p><dt><a name="DB_LOCK_DEFAULT">DB_LOCK_DEFAULT</a><dd>Use the default policy as specified by <a href="../utility/db_deadlock.html">db_deadlock</a>.
-<dt><a name="DB_LOCK_OLDEST">DB_LOCK_OLDEST</a><dd>Abort the oldest transaction.
-<dt><a name="DB_LOCK_RANDOM">DB_LOCK_RANDOM</a><dd>Abort a random transaction involved in the deadlock.
-<dt><a name="DB_LOCK_YOUNGEST">DB_LOCK_YOUNGEST</a><dd>Abort the youngest transaction.
-</dl>
-<p>The DbEnv.set_lk_detect interface may only be used to configure Berkeley DB before
-the <a href="../api_java/env_open.html">DbEnv.open</a> interface is called.
-<p>The DbEnv.set_lk_detect method throws an exception that encapsulates a non-zero error value on
-failure.
-<p>The database environment's deadlock detector configuration may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_lk_detect", one or more whitespace characters,
-and the interface <b>detect</b> argument as a string, for example,
-"set_lk_detect DB_LOCK_OLDEST". Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_java/env_open.html">DbEnv.open</a> was called.
-</dl>
-<h3>Classes</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>, <a href="../api_java/lock_class.html">DbLock</a>
-<h1>See Also</h1>
-<a href="../api_java/env_set_lk_conflicts.html">DbEnv.set_lk_conflicts</a>,
-<a href="../api_java/env_set_lk_detect.html">DbEnv.set_lk_detect</a>,
-<a href="../api_java/env_set_lk_max_locks.html">DbEnv.set_lk_max_locks</a>,
-<a href="../api_java/env_set_lk_max_lockers.html">DbEnv.set_lk_max_lockers</a>,
-<a href="../api_java/env_set_lk_max_objects.html">DbEnv.set_lk_max_objects</a>,
-<a href="../api_java/env_set_lk_max.html">DbEnv.set_lk_max</a>,
-<a href="../api_java/lock_detect.html">DbEnv.lock_detect</a>,
-<a href="../api_java/lock_get.html">DbEnv.lock_get</a>,
-<a href="../api_java/lock_id.html">DbEnv.lock_id</a>,
-<a href="../api_java/lock_put.html">DbLock.put</a>
-and
-<a href="../api_java/lock_stat.html">DbEnv.lock_stat</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/env_set_lk_max.html b/bdb/docs/api_java/env_set_lk_max.html
deleted file mode 100644
index 1e2a928901b..00000000000
--- a/bdb/docs/api_java/env_set_lk_max.html
+++ /dev/null
@@ -1,74 +0,0 @@
-<!--$Id: env_set_lk_max.so,v 10.21 2000/12/21 19:11:27 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.set_lk_max</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.set_lk_max</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public void set_lk_max(int max)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p><b>The DbEnv.set_lk_max method interface has been deprecated in favor of
-the <a href="../api_java/env_set_lk_max_locks.html">DbEnv.set_lk_max_locks</a>, <a href="../api_java/env_set_lk_max_lockers.html">DbEnv.set_lk_max_lockers</a>,
-and <a href="../api_java/env_set_lk_max_objects.html">DbEnv.set_lk_max_objects</a> methods. Please update your applications.</b>
-<p>Set each of the maximum number of locks, lockers and lock objects
-supported by the Berkeley DB lock subsystem to <b>max</b>. This value is
-used by <a href="../api_java/env_open.html">DbEnv.open</a> to estimate how much space to allocate for
-various lock-table data structures. For specific information on
-configuring the size of the lock subsystem, see
-<a href="../ref/lock/max.html">Configuring locking: sizing the
-system</a>.
-<p>The DbEnv.set_lk_max interface may only be used to configure Berkeley DB before
-the <a href="../api_java/env_open.html">DbEnv.open</a> interface is called.
-<p>The DbEnv.set_lk_max method throws an exception that encapsulates a non-zero error value on
-failure.
-<p>The database environment's maximum number of locks may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_lk_max", one or more whitespace characters,
-and the number of locks. Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_java/env_open.html">DbEnv.open</a> was called.
-</dl>
-<h3>Classes</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>, <a href="../api_java/lock_class.html">DbLock</a>
-<h1>See Also</h1>
-<a href="../api_java/env_set_lk_conflicts.html">DbEnv.set_lk_conflicts</a>,
-<a href="../api_java/env_set_lk_detect.html">DbEnv.set_lk_detect</a>,
-<a href="../api_java/env_set_lk_max_locks.html">DbEnv.set_lk_max_locks</a>,
-<a href="../api_java/env_set_lk_max_lockers.html">DbEnv.set_lk_max_lockers</a>,
-<a href="../api_java/env_set_lk_max_objects.html">DbEnv.set_lk_max_objects</a>,
-<a href="../api_java/env_set_lk_max.html">DbEnv.set_lk_max</a>,
-<a href="../api_java/lock_detect.html">DbEnv.lock_detect</a>,
-<a href="../api_java/lock_get.html">DbEnv.lock_get</a>,
-<a href="../api_java/lock_id.html">DbEnv.lock_id</a>,
-<a href="../api_java/lock_put.html">DbLock.put</a>
-and
-<a href="../api_java/lock_stat.html">DbEnv.lock_stat</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/env_set_lk_max_lockers.html b/bdb/docs/api_java/env_set_lk_max_lockers.html
deleted file mode 100644
index 500244beee5..00000000000
--- a/bdb/docs/api_java/env_set_lk_max_lockers.html
+++ /dev/null
@@ -1,70 +0,0 @@
-<!--$Id: env_set_lk_max_lockers.so,v 1.2 2000/12/08 22:03:00 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.set_lk_max_lockers</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.set_lk_max_lockers</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public void set_lk_max_lockers(int max)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>Set the maximum number of simultaneous locking entities supported by
-the Berkeley DB lock subsystem. This value is used by <a href="../api_java/env_open.html">DbEnv.open</a> to
-estimate how much space to allocate for various lock-table data
-structures. For specific information on configuring the size of the
-lock subsystem, see
-<a href="../ref/lock/max.html">Configuring locking: sizing the system</a>.
-<p>The DbEnv.set_lk_max_lockers interface may only be used to configure Berkeley DB before
-the <a href="../api_java/env_open.html">DbEnv.open</a> interface is called.
-<p>The DbEnv.set_lk_max_lockers method throws an exception that encapsulates a non-zero error value on
-failure.
-<p>The database environment's maximum number of lockers may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_lk_max_lockers", one or more whitespace characters,
-and the number of lockers. Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_java/env_open.html">DbEnv.open</a> was called.
-</dl>
-<h3>Classes</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>, <a href="../api_java/lock_class.html">DbLock</a>
-<h1>See Also</h1>
-<a href="../api_java/env_set_lk_conflicts.html">DbEnv.set_lk_conflicts</a>,
-<a href="../api_java/env_set_lk_detect.html">DbEnv.set_lk_detect</a>,
-<a href="../api_java/env_set_lk_max_locks.html">DbEnv.set_lk_max_locks</a>,
-<a href="../api_java/env_set_lk_max_lockers.html">DbEnv.set_lk_max_lockers</a>,
-<a href="../api_java/env_set_lk_max_objects.html">DbEnv.set_lk_max_objects</a>,
-<a href="../api_java/env_set_lk_max.html">DbEnv.set_lk_max</a>,
-<a href="../api_java/lock_detect.html">DbEnv.lock_detect</a>,
-<a href="../api_java/lock_get.html">DbEnv.lock_get</a>,
-<a href="../api_java/lock_id.html">DbEnv.lock_id</a>,
-<a href="../api_java/lock_put.html">DbLock.put</a>
-and
-<a href="../api_java/lock_stat.html">DbEnv.lock_stat</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/env_set_lk_max_locks.html b/bdb/docs/api_java/env_set_lk_max_locks.html
deleted file mode 100644
index 88a5100aaef..00000000000
--- a/bdb/docs/api_java/env_set_lk_max_locks.html
+++ /dev/null
@@ -1,69 +0,0 @@
-<!--$Id: env_set_lk_max_locks.so,v 10.1 2000/12/21 19:11:27 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.set_lk_max_locks</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.set_lk_max_locks</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public void set_lk_max_locks(int max)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>Set the maximum number of locks supported by the Berkeley DB lock subsystem.
-This value is used by <a href="../api_java/env_open.html">DbEnv.open</a> to estimate how much space to
-allocate for various lock-table data structures. For specific
-information on configuring the size of the lock subsystem, see
-<a href="../ref/lock/max.html">Configuring locking: sizing the system</a>.
-<p>The DbEnv.set_lk_max_locks interface may only be used to configure Berkeley DB before
-the <a href="../api_java/env_open.html">DbEnv.open</a> interface is called.
-<p>The DbEnv.set_lk_max_locks method throws an exception that encapsulates a non-zero error value on
-failure.
-<p>The database environment's maximum number of locks may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_lk_max_locks", one or more whitespace characters,
-and the number of locks. Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_java/env_open.html">DbEnv.open</a> was called.
-</dl>
-<h3>Classes</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>, <a href="../api_java/lock_class.html">DbLock</a>
-<h1>See Also</h1>
-<a href="../api_java/env_set_lk_conflicts.html">DbEnv.set_lk_conflicts</a>,
-<a href="../api_java/env_set_lk_detect.html">DbEnv.set_lk_detect</a>,
-<a href="../api_java/env_set_lk_max_locks.html">DbEnv.set_lk_max_locks</a>,
-<a href="../api_java/env_set_lk_max_lockers.html">DbEnv.set_lk_max_lockers</a>,
-<a href="../api_java/env_set_lk_max_objects.html">DbEnv.set_lk_max_objects</a>,
-<a href="../api_java/env_set_lk_max.html">DbEnv.set_lk_max</a>,
-<a href="../api_java/lock_detect.html">DbEnv.lock_detect</a>,
-<a href="../api_java/lock_get.html">DbEnv.lock_get</a>,
-<a href="../api_java/lock_id.html">DbEnv.lock_id</a>,
-<a href="../api_java/lock_put.html">DbLock.put</a>
-and
-<a href="../api_java/lock_stat.html">DbEnv.lock_stat</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/env_set_lk_max_objects.html b/bdb/docs/api_java/env_set_lk_max_objects.html
deleted file mode 100644
index b31ebefbf21..00000000000
--- a/bdb/docs/api_java/env_set_lk_max_objects.html
+++ /dev/null
@@ -1,70 +0,0 @@
-<!--$Id: env_set_lk_max_objects.so,v 1.2 2000/12/08 22:03:00 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.set_lk_max_objects</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.set_lk_max_objects</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public void set_lk_max_objects(int max)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>Set the maximum number of simultaneously locked objects supported by
-the Berkeley DB lock subsystem. This value is used by <a href="../api_java/env_open.html">DbEnv.open</a> to
-estimate how much space to allocate for various lock-table data
-structures. For specific information on configuring the size of the
-lock subsystem, see
-<a href="../ref/lock/max.html">Configuring locking: sizing the system</a>.
-<p>The DbEnv.set_lk_max_objects interface may only be used to configure Berkeley DB before
-the <a href="../api_java/env_open.html">DbEnv.open</a> interface is called.
-<p>The DbEnv.set_lk_max_objects method throws an exception that encapsulates a non-zero error value on
-failure.
-<p>The database environment's maximum number of objects may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_lk_max_objects", one or more whitespace characters,
-and the number of objects. Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_java/env_open.html">DbEnv.open</a> was called.
-</dl>
-<h3>Classes</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>, <a href="../api_java/lock_class.html">DbLock</a>
-<h1>See Also</h1>
-<a href="../api_java/env_set_lk_conflicts.html">DbEnv.set_lk_conflicts</a>,
-<a href="../api_java/env_set_lk_detect.html">DbEnv.set_lk_detect</a>,
-<a href="../api_java/env_set_lk_max_locks.html">DbEnv.set_lk_max_locks</a>,
-<a href="../api_java/env_set_lk_max_lockers.html">DbEnv.set_lk_max_lockers</a>,
-<a href="../api_java/env_set_lk_max_objects.html">DbEnv.set_lk_max_objects</a>,
-<a href="../api_java/env_set_lk_max.html">DbEnv.set_lk_max</a>,
-<a href="../api_java/lock_detect.html">DbEnv.lock_detect</a>,
-<a href="../api_java/lock_get.html">DbEnv.lock_get</a>,
-<a href="../api_java/lock_id.html">DbEnv.lock_id</a>,
-<a href="../api_java/lock_put.html">DbLock.put</a>
-and
-<a href="../api_java/lock_stat.html">DbEnv.lock_stat</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/env_set_mp_mmapsize.html b/bdb/docs/api_java/env_set_mp_mmapsize.html
deleted file mode 100644
index ef1d5b14ef1..00000000000
--- a/bdb/docs/api_java/env_set_mp_mmapsize.html
+++ /dev/null
@@ -1,66 +0,0 @@
-<!--$Id: env_set_mp_mmapsize.so,v 10.18 2000/05/20 16:29:12 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.set_mp_mmapsize</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.set_mp_mmapsize</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public void set_mp_mmapsize(long mmapsize)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>Files that are opened read-only in the pool (and that satisfy a few other
-criteria) are, by default, mapped into the process address space instead
-of being copied into the local cache. This can result in better-than-usual
-performance, as available virtual memory is normally much larger than the
-local cache, and page faults are faster than page copying on many systems.
-However, in the presence of limited virtual memory it can cause resource
-starvation, and in the presence of large databases, it can result in immense
-process sizes.
-<p>Set the maximum file size, in bytes, for a file to be mapped into the
-process address space. If no value is specified, it defaults to 10MB.
-<p>The DbEnv.set_mp_mmapsize interface may only be used to configure Berkeley DB before
-the <a href="../api_java/env_open.html">DbEnv.open</a> interface is called.
-<p>The DbEnv.set_mp_mmapsize method throws an exception that encapsulates a non-zero error value on
-failure.
-<p>The database environment's maximum mapped file size may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_mp_mmapsize", one or more whitespace characters,
-and the size in bytes. Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_java/env_open.html">DbEnv.open</a> was called.
-</dl>
-<h3>Class</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_java/memp_stat.html">DbEnv.memp_fstat</a>,
-<a href="../api_java/memp_stat.html">DbEnv.memp_stat</a>
-and
-<a href="../api_java/memp_trickle.html">DbEnv.memp_trickle</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/env_set_mutexlocks.html b/bdb/docs/api_java/env_set_mutexlocks.html
deleted file mode 100644
index e098987701e..00000000000
--- a/bdb/docs/api_java/env_set_mutexlocks.html
+++ /dev/null
@@ -1,59 +0,0 @@
-<!--$Id: env_set_mutexlocks.so,v 10.9 2000/11/17 19:56:52 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.set_mutexlocks</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.set_mutexlocks</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public void set_mutexlocks(int do_lock)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>Toggle mutex locks. Setting <b>do_lock</b> to a false value causes
-Berkeley DB to grant all requested mutual exclusion mutexes without regard
-for their availability.
-<p>This functionality should never be used for any other purpose than
-debugging.
-<p>The DbEnv.set_mutexlocks interface may be used to configure Berkeley DB at any time
-during the life of the application.
-<p>The DbEnv.set_mutexlocks method throws an exception that encapsulates a non-zero error value on
-failure.
-<h3>Class</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_java/env_close.html">DbEnv.close</a>,
-<a href="../api_java/env_open.html">DbEnv.open</a>,
-<a href="../api_java/env_remove.html">DbEnv.remove</a>,
-<a href="../api_java/env_strerror.html">DbEnv.strerror</a>,
-<a href="../api_java/env_version.html">DbEnv.get_version_string</a>
-<a href="../api_java/env_set_cachesize.html">DbEnv.set_cachesize</a>,
-<a href="../api_java/env_set_errcall.html">DbEnv.set_errcall</a>,
-<a href="../api_java/env_set_error_stream.html">DbEnv.set_error_stream</a>,
-<a href="../api_java/env_set_errpfx.html">DbEnv.set_errpfx</a>,
-<a href="../api_java/env_set_flags.html">DbEnv.set_flags</a>,
-<a href="../api_java/env_set_mutexlocks.html">DbEnv.set_mutexlocks</a>,
-and
-<a href="../api_java/env_set_verbose.html">DbEnv.set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/env_set_pageyield.html b/bdb/docs/api_java/env_set_pageyield.html
deleted file mode 100644
index f67f3a88805..00000000000
--- a/bdb/docs/api_java/env_set_pageyield.html
+++ /dev/null
@@ -1,69 +0,0 @@
-<!--$Id: env_set_pageyield.so,v 10.6 2000/05/31 15:10:00 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.set_pageyield</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.set_pageyield</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-static int
-DbEnv.set_pageyield(int pageyield);
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>Yield the processor whenever requesting a page from the cache. Setting
-<b>pageyield</b> to a true value causes Berkeley DB to yield the processor
-any time a thread requests a page from the cache.
-<p>The DbEnv.set_pageyield interface affects the entire application, not a single
-database or database environment.
-<p>While the DbEnv.set_pageyield interface may be used to configure Berkeley DB at any time
-during the life of the application, it should normally be called before
-making any calls to the <a href="../api_c/env_create.html">db_env_create</a> or <a href="../api_c/db_create.html">db_create</a> methods.
-<p>This functionality should never be used for any other purpose than stress
-testing.
-<p>The DbEnv.set_pageyield interface may be used to configure Berkeley DB at any time
-during the life of the application.
-<p>The DbEnv.set_pageyield method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h3>Class</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_java/env_close.html">DbEnv.close</a>,
-<a href="../api_java/env_open.html">DbEnv.open</a>,
-<a href="../api_java/env_remove.html">DbEnv.remove</a>,
-<a href="../api_java/env_strerror.html">DbEnv.strerror</a>,
-<a href="../api_java/env_version.html">DbEnv.get_version_string</a>
-<a href="../api_java/env_set_cachesize.html">DbEnv.set_cachesize</a>,
-<a href="../api_java/env_set_errcall.html">DbEnv.set_errcall</a>,
-<a href="../api_java/env_set_error_stream.html">DbEnv.set_error_stream</a>,
-<a href="../api_java/env_set_errpfx.html">DbEnv.set_errpfx</a>,
-<a href="../api_java/env_set_flags.html">DbEnv.set_flags</a>,
-<a href="../api_java/env_set_mutexlocks.html">DbEnv.set_mutexlocks</a>,
-and
-<a href="../api_java/env_set_verbose.html">DbEnv.set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/env_set_panicstate.html b/bdb/docs/api_java/env_set_panicstate.html
deleted file mode 100644
index d8b38ee2f6d..00000000000
--- a/bdb/docs/api_java/env_set_panicstate.html
+++ /dev/null
@@ -1,65 +0,0 @@
-<!--$Id: env_set_panicstate.so,v 10.2 2001/01/17 15:32:34 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.set_panicstate</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.set_panicstate</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-static int
-DbEnv.set_panicstate(int panic);
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>Toggle the Berkeley DB panic state. Setting <b>panic</b> to a true value
-causes Berkeley DB to refuse attempts to call Berkeley DB functions with the
-<a href="../ref/program/errorret.html#DB_RUNRECOVERY">Db.DB_RUNRECOVERY</a> error return.
-<p>The DbEnv.set_panicstate interface affects the entire application, not a single
-database or database environment.
-<p>While the DbEnv.set_panicstate interface may be used to configure Berkeley DB at any time
-during the life of the application, it should normally be called before
-making any calls to the <a href="../api_c/env_create.html">db_env_create</a> or <a href="../api_c/db_create.html">db_create</a> methods.
-<p>The DbEnv.set_panicstate method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h3>Class</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_java/env_close.html">DbEnv.close</a>,
-<a href="../api_java/env_open.html">DbEnv.open</a>,
-<a href="../api_java/env_remove.html">DbEnv.remove</a>,
-<a href="../api_java/env_strerror.html">DbEnv.strerror</a>,
-<a href="../api_java/env_version.html">DbEnv.get_version_string</a>
-<a href="../api_java/env_set_cachesize.html">DbEnv.set_cachesize</a>,
-<a href="../api_java/env_set_errcall.html">DbEnv.set_errcall</a>,
-<a href="../api_java/env_set_error_stream.html">DbEnv.set_error_stream</a>,
-<a href="../api_java/env_set_errpfx.html">DbEnv.set_errpfx</a>,
-<a href="../api_java/env_set_flags.html">DbEnv.set_flags</a>,
-<a href="../api_java/env_set_mutexlocks.html">DbEnv.set_mutexlocks</a>,
-and
-<a href="../api_java/env_set_verbose.html">DbEnv.set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/env_set_rec_init.html b/bdb/docs/api_java/env_set_rec_init.html
deleted file mode 100644
index 430c33a02af..00000000000
--- a/bdb/docs/api_java/env_set_rec_init.html
+++ /dev/null
@@ -1,78 +0,0 @@
-<!--$Id: env_set_rec_init.so,v 10.9 2000/05/01 21:57:44 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.set_recovery_init</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.set_recovery_init</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public interface DbRecoveryInit
-{
- public abstract int db_recovery_init_fcn(DbEnv dbenv);
-}
-public class DbEnv
-{
- public void set_recovery_init(DbRecoveryInit db_recovery_init_fcn)
- throws DbException;
- ...
-}
-</pre></h3>
-<h1>Description</h1>
-<p>Applications installing application-specific recovery methods need
-to be called before Berkeley DB performs recovery so they may add their recovery
-methods to Berkeley DB's.
-<p>The DbEnv.set_recovery_init method supports this functionality. The
-<b>db_recovery_init_fcn</b> method must be declared with one
-argument, a reference to the enclosing Berkeley DB environment. This
-method will be called after the <a href="../api_java/env_open.html">DbEnv.open</a> has been called,
-but before recovery is started.
-<p>If the <b>db_recovery_init_fcn</b> method returns a non-zero value,
-no recovery will be performed and <a href="../api_java/env_open.html">DbEnv.open</a> will return the same
-value to its caller.
-<p>The DbEnv.set_recovery_init interface may only be used to configure Berkeley DB before
-the <a href="../api_java/env_open.html">DbEnv.open</a> interface is called.
-<p>The DbEnv.set_recovery_init method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_java/env_open.html">DbEnv.open</a> was called.
-</dl>
-<h3>Class</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_java/env_close.html">DbEnv.close</a>,
-<a href="../api_java/env_open.html">DbEnv.open</a>,
-<a href="../api_java/env_remove.html">DbEnv.remove</a>,
-<a href="../api_java/env_strerror.html">DbEnv.strerror</a>,
-<a href="../api_java/env_version.html">DbEnv.get_version_string</a>
-<a href="../api_java/env_set_cachesize.html">DbEnv.set_cachesize</a>,
-<a href="../api_java/env_set_errcall.html">DbEnv.set_errcall</a>,
-<a href="../api_java/env_set_error_stream.html">DbEnv.set_error_stream</a>,
-<a href="../api_java/env_set_errpfx.html">DbEnv.set_errpfx</a>,
-<a href="../api_java/env_set_flags.html">DbEnv.set_flags</a>,
-<a href="../api_java/env_set_mutexlocks.html">DbEnv.set_mutexlocks</a>,
-and
-<a href="../api_java/env_set_verbose.html">DbEnv.set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/env_set_region_init.html b/bdb/docs/api_java/env_set_region_init.html
deleted file mode 100644
index f4f5d256278..00000000000
--- a/bdb/docs/api_java/env_set_region_init.html
+++ /dev/null
@@ -1,78 +0,0 @@
-<!--$Id: env_set_region_init.so,v 10.10 2000/05/31 15:10:00 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.set_region_init</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.set_region_init</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-static int
-DbEnv.set_region_init(int region_init);
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>Page-fault shared regions into memory when initially creating or joining
-a Berkeley DB environment. In some applications, the expense of page-faulting
-the shared memory regions can affect performance, e.g., when the
-page-fault occurs while holding a lock, other lock requests can convoy
-and overall throughput may decrease. Setting <b>region_init</b> to a
-true value specifies that shared regions be read or written, as
-appropriate, when the region is joined by the application. This forces
-the underlying virtual memory and file systems to instantiate both the
-necessary memory and the necessary disk space. This can also avoid
-out-of-disk space failures later on.
-<p>The DbEnv.set_region_init interface affects the entire application, not a single
-database or database environment.
-<p>While the DbEnv.set_region_init interface may be used to configure Berkeley DB at any time
-during the life of the application, it should normally be called before
-making any calls to the <a href="../api_c/env_create.html">db_env_create</a> or <a href="../api_c/db_create.html">db_create</a> methods.
-<p>The DbEnv.set_region_init method throws an exception that encapsulates a non-zero error value on
-failure.
-<p>The database environment's initial behavior with respect to shared memory regions may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_region_init", one or more whitespace characters,
-and the string "1". Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h3>Class</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_java/env_close.html">DbEnv.close</a>,
-<a href="../api_java/env_open.html">DbEnv.open</a>,
-<a href="../api_java/env_remove.html">DbEnv.remove</a>,
-<a href="../api_java/env_strerror.html">DbEnv.strerror</a>,
-<a href="../api_java/env_version.html">DbEnv.get_version_string</a>
-<a href="../api_java/env_set_cachesize.html">DbEnv.set_cachesize</a>,
-<a href="../api_java/env_set_errcall.html">DbEnv.set_errcall</a>,
-<a href="../api_java/env_set_error_stream.html">DbEnv.set_error_stream</a>,
-<a href="../api_java/env_set_errpfx.html">DbEnv.set_errpfx</a>,
-<a href="../api_java/env_set_flags.html">DbEnv.set_flags</a>,
-<a href="../api_java/env_set_mutexlocks.html">DbEnv.set_mutexlocks</a>,
-and
-<a href="../api_java/env_set_verbose.html">DbEnv.set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/env_set_server.html b/bdb/docs/api_java/env_set_server.html
deleted file mode 100644
index a0ffeefe35f..00000000000
--- a/bdb/docs/api_java/env_set_server.html
+++ /dev/null
@@ -1,77 +0,0 @@
-<!--"@(#)env_set_server.so 10.13 (Sleepycat) 8/25/99"-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.set_server</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.set_server</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public void set_server(String host,
- long cl_timeout, long sv_timeout, int flags)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>Connects to the DB server on the indicated hostname and sets up a channel
-for communication.
-<p>The <b>cl_timeout</b> argument specifies the number of seconds the client
-should wait for results to come back from the server. Once the timeout
-has expired on any communication with the server, Db.DB_NOSERVER will
-be returned. If this value is zero, a default timeout is used.
-<p>The <b>sv_timeout</b> argument specifies the number of seconds the server
-should allow a client connection to remain idle before assuming that
-client is gone. Once that timeout has been reached, the server releases
-all resources associated with that client connection. Subsequent attempts
-by that client to communicate with the server result in
-Db.DB_NOSERVER_ID indicating that an invalid identifier has been
-given to the server. This value can be considered a hint to the server.
-The server may alter this value based on its own policies or allowed
-values. If this value is zero, a default timeout is used.
-<p>The <b>flags</b> parameter is currently unused, and must be set to 0.
-<p>When the DbEnv.set_server method has been called, any subsequent calls
-to Berkeley DB library interfaces may return either <a name="DB_NOSERVER">DB_NOSERVER</a> or
-<a name="DB_NOSERVER_ID">DB_NOSERVER_ID</a>.
-<p>The DbEnv.set_server method throws an exception that encapsulates a non-zero error value on
-failure.
-<h3>Errors</h3>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>dbenv_set_server
-</dl>
-<h3>Class</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_java/env_close.html">DbEnv.close</a>,
-<a href="../api_java/env_open.html">DbEnv.open</a>,
-<a href="../api_java/env_remove.html">DbEnv.remove</a>,
-<a href="../api_java/env_strerror.html">DbEnv.strerror</a>,
-<a href="../api_java/env_version.html">DbEnv.get_version_string</a>
-<a href="../api_java/env_set_cachesize.html">DbEnv.set_cachesize</a>,
-<a href="../api_java/env_set_errcall.html">DbEnv.set_errcall</a>,
-<a href="../api_java/env_set_error_stream.html">DbEnv.set_error_stream</a>,
-<a href="../api_java/env_set_errpfx.html">DbEnv.set_errpfx</a>,
-<a href="../api_java/env_set_flags.html">DbEnv.set_flags</a>,
-<a href="../api_java/env_set_mutexlocks.html">DbEnv.set_mutexlocks</a>,
-and
-<a href="../api_java/env_set_verbose.html">DbEnv.set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/env_set_shm_key.html b/bdb/docs/api_java/env_set_shm_key.html
deleted file mode 100644
index 12a65c92251..00000000000
--- a/bdb/docs/api_java/env_set_shm_key.html
+++ /dev/null
@@ -1,87 +0,0 @@
-<!--$Id: env_set_shm_key.so,v 10.5 2000/08/09 15:45:52 sue Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.set_shm_key</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.set_shm_key</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public void set_shm_key(long shm_key)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>Specify a base segment ID for Berkeley DB environment shared memory regions
-created in system memory on VxWorks or systems supporting X/Open-style
-shared memory interfaces, e.g., UNIX systems supporting
-<b>shmget</b>(2) and related System V IPC interfaces.
-<p>This base segment ID will be used when Berkeley DB shared memory regions are
-first created. It will be incremented a small integer value each time
-a new shared memory region is created, that is, if the base ID is 35,
-the first shared memory region created will have a segment ID of 35 and
-the next one a segment ID between 36 and 40 or so. A Berkeley DB environment
-always creates a master shared memory region, plus an additional shared
-memory region for each of the subsystems supported by the environment
-(locking, logging, memory pool and transaction), plus an additional
-shared memory region for each additional memory pool cache that is
-supported. Already existing regions with the same segment IDs will be
-removed. See <a href="../ref/env/region.html">Shared Memory Regions</a>
-for more information.
-<p>The intent behind this interface is two-fold: without it, applications
-have no way to ensure that two Berkeley DB applications don't attempt to use
-the same segment IDs when creating different Berkeley DB environments. In
-addition, by using the same segment IDs each time the environment is
-created, previously created segments will be removed, and the set of
-segments on the system will not grow without bound.
-<p>The DbEnv.set_shm_key interface may only be used to configure Berkeley DB before
-the <a href="../api_java/env_open.html">DbEnv.open</a> interface is called.
-<p>The DbEnv.set_shm_key method throws an exception that encapsulates a non-zero error value on
-failure.
-<p>The database environment's base segment ID may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_shm_key", one or more whitespace characters,
-and the ID. Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_java/env_open.html">DbEnv.open</a> was called.
-</dl>
-<h3>Class</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_java/env_close.html">DbEnv.close</a>,
-<a href="../api_java/env_open.html">DbEnv.open</a>,
-<a href="../api_java/env_remove.html">DbEnv.remove</a>,
-<a href="../api_java/env_strerror.html">DbEnv.strerror</a>,
-<a href="../api_java/env_version.html">DbEnv.get_version_string</a>
-<a href="../api_java/env_set_cachesize.html">DbEnv.set_cachesize</a>,
-<a href="../api_java/env_set_errcall.html">DbEnv.set_errcall</a>,
-<a href="../api_java/env_set_error_stream.html">DbEnv.set_error_stream</a>,
-<a href="../api_java/env_set_errpfx.html">DbEnv.set_errpfx</a>,
-<a href="../api_java/env_set_flags.html">DbEnv.set_flags</a>,
-<a href="../api_java/env_set_mutexlocks.html">DbEnv.set_mutexlocks</a>,
-and
-<a href="../api_java/env_set_verbose.html">DbEnv.set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/env_set_tas_spins.html b/bdb/docs/api_java/env_set_tas_spins.html
deleted file mode 100644
index 64654ebc96a..00000000000
--- a/bdb/docs/api_java/env_set_tas_spins.html
+++ /dev/null
@@ -1,71 +0,0 @@
-<!--$Id: env_set_tas_spins.so,v 10.9 2000/05/31 15:10:00 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.set_tas_spins</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.set_tas_spins</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-static int
-DbEnv.set_tas_spins(u_int32_t tas_spins);
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>Specify that test-and-set mutexes should spin <b>tas_spins</b> times
-without blocking. The value defaults to 1 on uniprocessor systems and
-to 50 times the number of processors on multiprocessor systems.
-<p>The DbEnv.set_tas_spins interface affects the entire application, not a single
-database or database environment.
-<p>While the DbEnv.set_tas_spins interface may be used to configure Berkeley DB at any time
-during the life of the application, it should normally be called before
-making any calls to the <a href="../api_c/env_create.html">db_env_create</a> or <a href="../api_c/db_create.html">db_create</a> methods.
-<p>The DbEnv.set_tas_spins method throws an exception that encapsulates a non-zero error value on
-failure.
-<p>The database environment's test-and-set spin count may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_tas_spins", one or more whitespace characters,
-and the number of spins. Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h3>Class</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_java/env_close.html">DbEnv.close</a>,
-<a href="../api_java/env_open.html">DbEnv.open</a>,
-<a href="../api_java/env_remove.html">DbEnv.remove</a>,
-<a href="../api_java/env_strerror.html">DbEnv.strerror</a>,
-<a href="../api_java/env_version.html">DbEnv.get_version_string</a>
-<a href="../api_java/env_set_cachesize.html">DbEnv.set_cachesize</a>,
-<a href="../api_java/env_set_errcall.html">DbEnv.set_errcall</a>,
-<a href="../api_java/env_set_error_stream.html">DbEnv.set_error_stream</a>,
-<a href="../api_java/env_set_errpfx.html">DbEnv.set_errpfx</a>,
-<a href="../api_java/env_set_flags.html">DbEnv.set_flags</a>,
-<a href="../api_java/env_set_mutexlocks.html">DbEnv.set_mutexlocks</a>,
-and
-<a href="../api_java/env_set_verbose.html">DbEnv.set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/env_set_tmp_dir.html b/bdb/docs/api_java/env_set_tmp_dir.html
deleted file mode 100644
index 8c3c4b899c0..00000000000
--- a/bdb/docs/api_java/env_set_tmp_dir.html
+++ /dev/null
@@ -1,89 +0,0 @@
-<!--$Id: env_set_tmp_dir.so,v 10.3 2000/05/20 16:29:12 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.set_tmp_dir</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.set_tmp_dir</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public void set_tmp_dir(String dir)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>The path of a directory to be used as the location of temporary files.
-The files created to back in-memory access method databases will be
-created relative to this path. These temporary files can be quite large,
-depending on the size of the database.
-<p>If no directories are specified, the following alternatives are checked
-in the specified order. The first existing directory path is used for
-all temporary files.
-<p><ol>
-<p><li>The value of the environment variable <b>TMPDIR</b>.
-<li>The value of the environment variable <b>TEMP</b>.
-<li>The value of the environment variable <b>TMP</b>.
-<li>The value of the environment variable <b>TempFolder</b>.
-<li>The value returned by the GetTempPath interface.
-<li>The directory <b>/var/tmp</b>.
-<li>The directory <b>/usr/tmp</b>.
-<li>The directory <b>/temp</b>.
-<li>The directory <b>/tmp</b>.
-<li>The directory <b>C:/temp</b>.
-<li>The directory <b>C:/tmp</b>.
-</ol>
-<p>Note: environment variables are only checked if one of the
-<a href="../api_java/env_open.html#DB_USE_ENVIRON">Db.DB_USE_ENVIRON</a> or <a href="../api_java/env_open.html#DB_USE_ENVIRON_ROOT">Db.DB_USE_ENVIRON_ROOT</a> flags were
-specified.
-<p>Note: the GetTempPath interface is only checked on Win/32 platforms.
-<p>The DbEnv.set_tmp_dir interface may only be used to configure Berkeley DB before
-the <a href="../api_java/env_open.html">DbEnv.open</a> interface is called.
-<p>The DbEnv.set_tmp_dir method throws an exception that encapsulates a non-zero error value on
-failure.
-<p>The database environment's temporary file directory may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_tmp_dir", one or more whitespace characters,
-and the directory name. Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_java/env_open.html">DbEnv.open</a> was called.
-</dl>
-<h3>Class</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_java/env_close.html">DbEnv.close</a>,
-<a href="../api_java/env_open.html">DbEnv.open</a>,
-<a href="../api_java/env_remove.html">DbEnv.remove</a>,
-<a href="../api_java/env_strerror.html">DbEnv.strerror</a>,
-<a href="../api_java/env_version.html">DbEnv.get_version_string</a>
-<a href="../api_java/env_set_cachesize.html">DbEnv.set_cachesize</a>,
-<a href="../api_java/env_set_errcall.html">DbEnv.set_errcall</a>,
-<a href="../api_java/env_set_error_stream.html">DbEnv.set_error_stream</a>,
-<a href="../api_java/env_set_errpfx.html">DbEnv.set_errpfx</a>,
-<a href="../api_java/env_set_flags.html">DbEnv.set_flags</a>,
-<a href="../api_java/env_set_mutexlocks.html">DbEnv.set_mutexlocks</a>,
-and
-<a href="../api_java/env_set_verbose.html">DbEnv.set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/env_set_tx_max.html b/bdb/docs/api_java/env_set_tx_max.html
deleted file mode 100644
index d1a57f5c856..00000000000
--- a/bdb/docs/api_java/env_set_tx_max.html
+++ /dev/null
@@ -1,69 +0,0 @@
-<!--$Id: env_set_tx_max.so,v 10.21 2000/05/20 16:29:12 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.set_tx_max</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.set_tx_max</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public void set_tx_max(int tx_max)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>Set the maximum number of active transactions that are supported by the
-environment. This value bounds the size of backing shared memory regions.
-Note that child transactions must be counted as active until their
-ultimate parent commits or aborts.
-<p>When there are more than the specified number of concurrent transactions,
-calls to <a href="../api_java/txn_begin.html">DbEnv.txn_begin</a> will fail (until some active transactions
-complete). If no value is specified, a default value of 20 is used.
-<p>The DbEnv.set_tx_max interface may only be used to configure Berkeley DB before
-the <a href="../api_java/env_open.html">DbEnv.open</a> interface is called.
-<p>The DbEnv.set_tx_max method throws an exception that encapsulates a non-zero error value on
-failure.
-<p>The database environment's maximum number of active transactions may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_tx_max", one or more whitespace characters,
-and the number of transactions. Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_java/env_open.html">DbEnv.open</a> was called.
-</dl>
-<h3>Classes</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>, <a href="../api_java/txn_class.html">DbTxn</a>
-<h1>See Also</h1>
-<a href="../api_java/env_set_tx_max.html">DbEnv.set_tx_max</a>,
-<a href="../api_java/env_set_tx_timestamp.html">DbEnv.set_tx_timestamp</a>,
-<a href="../api_java/txn_abort.html">DbTxn.abort</a>,
-<a href="../api_java/txn_begin.html">DbEnv.txn_begin</a>,
-<a href="../api_java/txn_checkpoint.html">DbEnv.txn_checkpoint</a>,
-<a href="../api_java/txn_commit.html">DbTxn.commit</a>,
-<a href="../api_java/txn_id.html">DbTxn.id</a>,
-<a href="../api_java/txn_prepare.html">DbTxn.prepare</a>
-and
-<a href="../api_java/txn_stat.html">DbEnv.txn_stat</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/env_set_tx_recover.html b/bdb/docs/api_java/env_set_tx_recover.html
deleted file mode 100644
index c3c71e9ba0f..00000000000
--- a/bdb/docs/api_java/env_set_tx_recover.html
+++ /dev/null
@@ -1,84 +0,0 @@
-<!--$Id: env_set_tx_recover.so,v 10.26 2000/07/09 19:13:19 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.set_tx_recover</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.set_tx_recover</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public interface DbTxnRecover
-{
- public abstract int
- tx_recover(DbEnv dbenv, Dbt log_rec, DbLsn lsn, int op);
-}
-public class DbEnv
-{
- public void set_tx_recover(DbTxnRecover tx_recover)
- throws DbException;
- ...
-}
-</pre></h3>
-<h1>Description</h1>
-<p>Set the application's method to be called during transaction abort
-and recovery. This method must return 0 on success and either
-<b>errno</b> or a value outside of the Berkeley DB error name space on
-failure. It takes four arguments:
-<p><dl compact>
-<p><dt>dbenv <dd>A Berkeley DB environment.
-<p><dt>log_rec<dd>A log record.
-<p><dt>lsn<dd>A log sequence number.
-<p><dt>op<dd>One of the following values:
-<p><dl compact>
-<p><dt><a name="Db.DB_TXN_BACKWARD_ROLL">Db.DB_TXN_BACKWARD_ROLL</a><dd>The log is being read backward to determine which transactions have been
-committed and to abort those operations that were not, undo the operation
-described by the log record.
-<p><dt><a name="Db.DB_TXN_FORWARD_ROLL">Db.DB_TXN_FORWARD_ROLL</a><dd>The log is being played forward, redo the operation described by the log
-record.
-<p><dt><a name="Db.DB_TXN_ABORT">Db.DB_TXN_ABORT</a><dd>The log is being read backwards during a transaction abort, undo the
-operation described by the log record.
-</dl>
-</dl>
-<p>The DbEnv.set_tx_recover interface may only be used to configure Berkeley DB before
-the <a href="../api_java/env_open.html">DbEnv.open</a> interface is called.
-<p>The DbEnv.set_tx_recover method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>Called after <a href="../api_java/env_open.html">DbEnv.open</a> was called.
-</dl>
-<h3>Classes</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>, <a href="../api_java/txn_class.html">DbTxn</a>
-<h1>See Also</h1>
-<a href="../api_java/env_set_tx_max.html">DbEnv.set_tx_max</a>,
-<a href="../api_java/env_set_tx_timestamp.html">DbEnv.set_tx_timestamp</a>,
-<a href="../api_java/txn_abort.html">DbTxn.abort</a>,
-<a href="../api_java/txn_begin.html">DbEnv.txn_begin</a>,
-<a href="../api_java/txn_checkpoint.html">DbEnv.txn_checkpoint</a>,
-<a href="../api_java/txn_commit.html">DbTxn.commit</a>,
-<a href="../api_java/txn_id.html">DbTxn.id</a>,
-<a href="../api_java/txn_prepare.html">DbTxn.prepare</a>
-and
-<a href="../api_java/txn_stat.html">DbEnv.txn_stat</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/env_set_tx_timestamp.html b/bdb/docs/api_java/env_set_tx_timestamp.html
deleted file mode 100644
index 93ae153a7e4..00000000000
--- a/bdb/docs/api_java/env_set_tx_timestamp.html
+++ /dev/null
@@ -1,64 +0,0 @@
-<!--$Id: env_set_tx_timestamp.so,v 10.6 2000/12/21 18:33:42 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.set_tx_timestamp</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.set_tx_timestamp</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public void set_tx_timestamp(java.util.Date timestamp)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>Recover to the time specified by <b>timestamp</b> rather than to the most
-current possible date.
-Note that only the seconds (not the milliseconds) of the <b>timestamp</b>
-are used
-<p>Once a database environment has been upgraded to a new version of Berkeley DB
-involving a log format change (see <a href="../ref/upgrade/process.html">Upgrading Berkeley DB installations</a>, it is no longer possible to recover
-to a specific time before that upgrade.
-<p>The DbEnv.set_tx_timestamp interface may only be used to configure Berkeley DB before
-the <a href="../api_java/env_open.html">DbEnv.open</a> interface is called.
-<p>The DbEnv.set_tx_timestamp method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>It is not possible to recover to the specified time using the
-log files currently present in the environment.
-</dl>
-<h3>Classes</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>, <a href="../api_java/txn_class.html">DbTxn</a>
-<h1>See Also</h1>
-<a href="../api_java/env_set_tx_max.html">DbEnv.set_tx_max</a>,
-<a href="../api_java/env_set_tx_timestamp.html">DbEnv.set_tx_timestamp</a>,
-<a href="../api_java/txn_abort.html">DbTxn.abort</a>,
-<a href="../api_java/txn_begin.html">DbEnv.txn_begin</a>,
-<a href="../api_java/txn_checkpoint.html">DbEnv.txn_checkpoint</a>,
-<a href="../api_java/txn_commit.html">DbTxn.commit</a>,
-<a href="../api_java/txn_id.html">DbTxn.id</a>,
-<a href="../api_java/txn_prepare.html">DbTxn.prepare</a>
-and
-<a href="../api_java/txn_stat.html">DbEnv.txn_stat</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/env_set_verbose.html b/bdb/docs/api_java/env_set_verbose.html
deleted file mode 100644
index 8fbfb32ebac..00000000000
--- a/bdb/docs/api_java/env_set_verbose.html
+++ /dev/null
@@ -1,77 +0,0 @@
-<!--$Id: env_set_verbose.so,v 10.23 2000/05/20 16:29:12 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.set_verbose</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.set_verbose</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public int set_verbose(u_int32_t which, boolean onoff);
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv.set_verbose method turns additional informational and
-debugging messages in the Berkeley DB message output on and off. If
-<b>onoff</b> is set to
-true,
-the additional messages are output.
-<p>The <b>which</b> parameter must be set to one of the following values:
-<p><dl compact>
-<p><dt><a name="Db.DB_VERB_CHKPOINT">Db.DB_VERB_CHKPOINT</a><dd>Display checkpoint location information when searching the log for
-checkpoints.
-<p><dt><a name="Db.DB_VERB_DEADLOCK">Db.DB_VERB_DEADLOCK</a><dd>Display additional information when doing deadlock detection.
-<p><dt><a name="Db.DB_VERB_RECOVERY">Db.DB_VERB_RECOVERY</a><dd>Display additional information when performing recovery.
-<p><dt><a name="Db.DB_VERB_WAITSFOR">Db.DB_VERB_WAITSFOR</a><dd>Display the waits-for table when doing deadlock detection.
-</dl>
-<p>The DbEnv.set_verbose interface may be used to configure Berkeley DB at any time
-during the life of the application.
-<p>The DbEnv.set_verbose method throws an exception that encapsulates a non-zero error value on
-failure.
-<p>The database environment's verbosity may also be set using the environment's
-<b>DB_CONFIG</b> file. The syntax of the entry in that file is a
-single line with the string "set_verbose", one or more whitespace characters,
-and the interface <b>which</b> argument as a string, for example,
-"set_verbose DB_VERB_CHKPOINT". Because the <b>DB_CONFIG</b> file is read when the database
-environment is opened, it will silently overrule configuration done
-before that time.
-<h1>Errors</h1>
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<h3>Class</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_java/env_close.html">DbEnv.close</a>,
-<a href="../api_java/env_open.html">DbEnv.open</a>,
-<a href="../api_java/env_remove.html">DbEnv.remove</a>,
-<a href="../api_java/env_strerror.html">DbEnv.strerror</a>,
-<a href="../api_java/env_version.html">DbEnv.get_version_string</a>
-<a href="../api_java/env_set_cachesize.html">DbEnv.set_cachesize</a>,
-<a href="../api_java/env_set_errcall.html">DbEnv.set_errcall</a>,
-<a href="../api_java/env_set_error_stream.html">DbEnv.set_error_stream</a>,
-<a href="../api_java/env_set_errpfx.html">DbEnv.set_errpfx</a>,
-<a href="../api_java/env_set_flags.html">DbEnv.set_flags</a>,
-<a href="../api_java/env_set_mutexlocks.html">DbEnv.set_mutexlocks</a>,
-and
-<a href="../api_java/env_set_verbose.html">DbEnv.set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/env_strerror.html b/bdb/docs/api_java/env_strerror.html
deleted file mode 100644
index e63e82e5f4c..00000000000
--- a/bdb/docs/api_java/env_strerror.html
+++ /dev/null
@@ -1,58 +0,0 @@
-<!--$Id: env_strerror.so,v 8.4 2000/07/30 17:59:25 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.strerror</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.strerror</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public static String strerror(int errcode);
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv.strerror method returns an error message string corresponding
-to the error number <b>error</b>. This interface is a superset of the
-ANSI C X3.159-1989 (ANSI C) <b>strerror</b>(3) interface. If the error number
-<b>error</b> is greater than or equal to 0, then the string returned by
-the system interface <b>strerror</b>(3) is returned. If the error
-number is less than 0, an error string appropriate to the corresponding
-Berkeley DB library error is returned. See
-<a href="../ref/program/errorret.html">Error returns to applications</a>
-for more information.
-<h3>Class</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_java/env_close.html">DbEnv.close</a>,
-<a href="../api_java/env_open.html">DbEnv.open</a>,
-<a href="../api_java/env_remove.html">DbEnv.remove</a>,
-<a href="../api_java/env_strerror.html">DbEnv.strerror</a>,
-<a href="../api_java/env_version.html">DbEnv.get_version_string</a>
-<a href="../api_java/env_set_cachesize.html">DbEnv.set_cachesize</a>,
-<a href="../api_java/env_set_errcall.html">DbEnv.set_errcall</a>,
-<a href="../api_java/env_set_error_stream.html">DbEnv.set_error_stream</a>,
-<a href="../api_java/env_set_errpfx.html">DbEnv.set_errpfx</a>,
-<a href="../api_java/env_set_flags.html">DbEnv.set_flags</a>,
-<a href="../api_java/env_set_mutexlocks.html">DbEnv.set_mutexlocks</a>,
-and
-<a href="../api_java/env_set_verbose.html">DbEnv.set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/env_version.html b/bdb/docs/api_java/env_version.html
deleted file mode 100644
index ba0b1a034cf..00000000000
--- a/bdb/docs/api_java/env_version.html
+++ /dev/null
@@ -1,58 +0,0 @@
-<!--$Id: env_version.so,v 10.7 2000/09/21 19:58:54 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.get_version_major</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.get_version_major</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public static int get_version_major();
-public static int get_version_minor();
-public static int get_version_patch();
-public static String get_version_string();
-</pre></h3>
-<h1>Description</h1>
-<p>These methods return version information about the underlying Berkeley DB
-software. Berkeley DB is released with a major, minor and patch number, which
-is returned by DbEnv.get_version_major,
-DbEnv.get_version_minor and DbEnv.get_version_patch.
-A verbose version of this information, suitable for display, is returned
-by DbEnv.get_version_string.
-<h3>Class</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_java/env_close.html">DbEnv.close</a>,
-<a href="../api_java/env_open.html">DbEnv.open</a>,
-<a href="../api_java/env_remove.html">DbEnv.remove</a>,
-<a href="../api_java/env_strerror.html">DbEnv.strerror</a>,
-<a href="../api_java/env_version.html">DbEnv.get_version_string</a>
-<a href="../api_java/env_set_cachesize.html">DbEnv.set_cachesize</a>,
-<a href="../api_java/env_set_errcall.html">DbEnv.set_errcall</a>,
-<a href="../api_java/env_set_error_stream.html">DbEnv.set_error_stream</a>,
-<a href="../api_java/env_set_errpfx.html">DbEnv.set_errpfx</a>,
-<a href="../api_java/env_set_flags.html">DbEnv.set_flags</a>,
-<a href="../api_java/env_set_mutexlocks.html">DbEnv.set_mutexlocks</a>,
-and
-<a href="../api_java/env_set_verbose.html">DbEnv.set_verbose</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/except_class.html b/bdb/docs/api_java/except_class.html
deleted file mode 100644
index 885d161d556..00000000000
--- a/bdb/docs/api_java/except_class.html
+++ /dev/null
@@ -1,52 +0,0 @@
-<!--$Id: except_class.so,v 10.15 1999/12/20 08:52:33 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbException</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbException</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public class DbException extends Exception { ... }
-</pre></h3>
-<h1>Description</h1>
-<p>This manual page describes the DbException class and how it is used
-by the various Berkeley DB classes.
-<p>Most methods in the Berkeley DB classes throw an exception when an error occurs.
-A DbException object contains an informational string and an errno. The
-errno can be obtained using <a href="../api_java/get_errno.html">DbException.get_errno</a>. Since DbException
-inherits from the java.Exception, the string portion is available using
-toString().
-<p>Some methods may return non-zero values without issuing an exception.
-This occurs in situations that are not normally considered an error, but
-when some informational status is returned. For example, <a href="../api_java/db_get.html">Db.get</a>
-returns DB_NOTFOUND when a requested key does not appear in the database.
-<h3>Class</h3>
-<a href="../api_java/except_class.html">DbException</a>
-<h1>See Also</h1>
-<a href="../api_java/get_errno.html">DbException.get_errno</a>,
-<a href="../api_java/deadlock_class.html">DbDeadlockException</a>,
-<a href="../api_java/mem_class.html">DbMemoryException</a>
-and
-<a href="../api_java/runrec_class.html">DbRunRecoveryException</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/get_errno.html b/bdb/docs/api_java/get_errno.html
deleted file mode 100644
index 5d3850d1f84..00000000000
--- a/bdb/docs/api_java/get_errno.html
+++ /dev/null
@@ -1,46 +0,0 @@
-<!--$Id: get_errno.so,v 10.8 1999/12/20 08:52:33 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbException.get_errno</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbException.get_errno</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public int get_errno();
-</pre></h3>
-<h1>Description</h1>
-<p>Most methods in the Db classes throw an exception when an error occurs.
-A DbException object contains an informational string and an errno.
-The errno can be obtained using DbException.get_errno.
-Since DbException inherits from the java.Exception, the string
-portion is available using toString().
-<h3>Class</h3>
-<a href="../api_java/except_class.html">DbException</a>
-<h1>See Also</h1>
-<a href="../api_java/get_errno.html">DbException.get_errno</a>,
-<a href="../api_java/deadlock_class.html">DbDeadlockException</a>,
-<a href="../api_java/mem_class.html">DbMemoryException</a>
-and
-<a href="../api_java/runrec_class.html">DbRunRecoveryException</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/java_index.html b/bdb/docs/api_java/java_index.html
deleted file mode 100644
index c36227edeba..00000000000
--- a/bdb/docs/api_java/java_index.html
+++ /dev/null
@@ -1,131 +0,0 @@
-<!--$Id: cxx_index.so,v 10.65 2000/12/21 19:11:27 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Java Interface by Class</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<h1 align=center>Java Interface by Class</h1>
-<p><table border=1 align=center>
-<tr><th>Class</th><th>Method</th><th>Description</th></tr>
-<tr><td><a href="../api_java/dbenv_class.html">DbEnv</a></td><td><br></td><td>Berkeley DB Environment Class</td></tr>
-<tr><td><br></td><td><a href="../api_java/env_close.html">DbEnv.close</a></td><td>Close an environment</td></tr>
-<tr><td><br></td><td><a href="../api_java/env_open.html">DbEnv.open</a></td><td>Open an environment</td></tr>
-<tr><td><br></td><td><a href="../api_java/env_remove.html">DbEnv.remove</a></td><td>Remove an environment</td></tr>
-<tr><td><br></td><td><a href="../api_java/env_set_cachesize.html">DbEnv.set_cachesize</a></td><td>Set the environment cache size</td></tr>
-<tr><td><br></td><td><a href="../api_java/env_set_data_dir.html">DbEnv.set_data_dir</a></td><td>Set the environment data directory</td></tr>
-<tr><td><br></td><td><a href="../api_java/env_set_errcall.html">DbEnv.set_errcall</a></td><td>Set error message callback</td></tr>
-<tr><td><br></td><td><a href="../api_java/env_set_error_stream.html">DbEnv.set_error_stream</a></td><td>Set error message output stream</td></tr>
-<tr><td><br></td><td><a href="../api_java/env_set_errpfx.html">DbEnv.set_errpfx</a></td><td>Set error message prefix</td></tr>
-<tr><td><br></td><td><a href="../api_java/env_set_feedback.html">DbEnv.set_feedback</a></td><td>Set feedback callback</td></tr>
-<tr><td><br></td><td><a href="../api_java/env_set_flags.html">DbEnv.set_flags</a></td><td>Environment configuration</td></tr>
-<tr><td><br></td><td><a href="../api_java/env_set_lg_bsize.html">DbEnv.set_lg_bsize</a></td><td>Set log buffer size</td></tr>
-<tr><td><br></td><td><a href="../api_java/env_set_lg_dir.html">DbEnv.set_lg_dir</a></td><td>Set the environment logging directory</td></tr>
-<tr><td><br></td><td><a href="../api_java/env_set_lg_max.html">DbEnv.set_lg_max</a></td><td>Set log file size</td></tr>
-<tr><td><br></td><td><a href="../api_java/env_set_lk_conflicts.html">DbEnv.set_lk_conflicts</a></td><td>Set lock conflicts matrix</td></tr>
-<tr><td><br></td><td><a href="../api_java/env_set_lk_detect.html">DbEnv.set_lk_detect</a></td><td>Set automatic deadlock detection</td></tr>
-<tr><td><br></td><td><a href="../api_java/env_set_lk_max.html">DbEnv.set_lk_max</a></td><td>Set maximum number of locks (<b>Deprecated</b>)</td></tr>
-<tr><td><br></td><td><a href="../api_java/env_set_lk_max_locks.html">DbEnv.set_lk_max_locks</a></td><td>Set maximum number of locks</td></tr>
-<tr><td><br></td><td><a href="../api_java/env_set_lk_max_lockers.html">DbEnv.set_lk_max_lockers</a></td><td>Set maximum number of lockers</td></tr>
-<tr><td><br></td><td><a href="../api_java/env_set_lk_max_objects.html">DbEnv.set_lk_max_objects</a></td><td>Set maximum number of lock objects</td></tr>
-<tr><td><br></td><td><a href="../api_java/env_set_mp_mmapsize.html">DbEnv.set_mp_mmapsize</a></td><td>Set maximum mapped-in database file size</td></tr>
-<tr><td><br></td><td><a href="../api_java/env_set_mutexlocks.html">DbEnv.set_mutexlocks</a></td><td>Turn off mutual exclusion locking</td></tr>
-<tr><td><br></td><td><a href="../api_java/env_set_pageyield.html">DbEnv.set_pageyield</a></td><td>Yield the processor on each page access</td></tr>
-<tr><td><br></td><td><a href="../api_java/env_set_panicstate.html">DbEnv.set_panicstate</a></td><td>Reset panic state</td></tr>
-<tr><td><br></td><td><a href="../api_java/env_set_rec_init.html">DbEnv.set_recovery_init</a></td><td>Set recovery initialization callback</td></tr>
-<tr><td><br></td><td><a href="../api_java/env_set_region_init.html">DbEnv.set_region_init</a></td><td>Fault in shared regions on initial access</td></tr>
-<tr><td><br></td><td><a href="../api_java/env_set_server.html">DbEnv.set_server</a></td><td>Establish server connection</td></tr>
-<tr><td><br></td><td><a href="../api_java/env_set_shm_key.html">DbEnv.set_shm_key</a></td><td>Set system memory shared segment ID</td></tr>
-<tr><td><br></td><td><a href="../api_java/env_set_tas_spins.html">DbEnv.set_tas_spins</a></td><td>Set the number of test-and-set spins</td></tr>
-<tr><td><br></td><td><a href="../api_java/env_set_tmp_dir.html">DbEnv.set_tmp_dir</a></td><td>Set the environment temporary file directory</td></tr>
-<tr><td><br></td><td><a href="../api_java/env_set_tx_max.html">DbEnv.set_tx_max</a></td><td>Set maximum number of transactions</td></tr>
-<tr><td><br></td><td><a href="../api_java/env_set_tx_recover.html">DbEnv.set_tx_recover</a></td><td>Set transaction abort recover function</td></tr>
-<tr><td><br></td><td><a href="../api_java/env_set_tx_timestamp.html">DbEnv.set_tx_timestamp</a></td><td>Set recovery timestamp</td></tr>
-<tr><td><br></td><td><a href="../api_java/env_set_verbose.html">DbEnv.set_verbose</a></td><td>Set verbose messages</td></tr>
-<tr><td><br></td><td><a href="../api_java/env_strerror.html">DbEnv.strerror</a></td><td>Error strings</td></tr>
-<tr><td><br></td><td><a href="../api_java/lock_detect.html">DbEnv.lock_detect</a></td><td>Perform deadlock detection</td></tr>
-<tr><td><br></td><td><a href="../api_java/lock_get.html">DbEnv.lock_get</a></td><td>Acquire a lock</td></tr>
-<tr><td><br></td><td><a href="../api_java/lock_id.html">DbEnv.lock_id</a></td><td>Acquire a locker ID</td></tr>
-<tr><td><br></td><td><a href="../api_java/lock_stat.html">DbEnv.lock_stat</a></td><td>Return lock subsystem statistics</td></tr>
-<tr><td><br></td><td><a href="../api_java/log_archive.html">DbEnv.log_archive</a></td><td>List log and database files</td></tr>
-<tr><td><br></td><td><a href="../api_java/log_compare.html">DbEnv.log_compare</a></td><td>Compare two Log Sequence Numbers</td></tr>
-<tr><td><br></td><td><a href="../api_java/log_file.html">DbEnv.log_file</a></td><td>Map Log Sequence Numbers to log files</td></tr>
-<tr><td><br></td><td><a href="../api_java/log_flush.html">DbEnv.log_flush</a></td><td>Flush log records</td></tr>
-<tr><td><br></td><td><a href="../api_java/log_get.html">DbEnv.log_get</a></td><td>Get a log record</td></tr>
-<tr><td><br></td><td><a href="../api_java/log_put.html">DbEnv.log_put</a></td><td>Write a log record</td></tr>
-<tr><td><br></td><td><a href="../api_java/log_register.html">DbEnv.log_register</a></td><td>Register a file name with the log manager</td></tr>
-<tr><td><br></td><td><a href="../api_java/log_stat.html">DbEnv.log_stat</a></td><td>Return log subsystem statistics</td></tr>
-<tr><td><br></td><td><a href="../api_java/log_unregister.html">DbEnv.log_unregister</a></td><td>Unregister a file name with the log manager</td></tr>
-<tr><td><br></td><td><a href="../api_java/memp_stat.html">DbEnv.memp_fstat</a></td><td>Return buffer pool statistics.</td></tr>
-<tr><td><br></td><td><a href="../api_java/memp_stat.html">DbEnv.memp_stat</a></td><td>Return buffer pool statistics</td></tr>
-<tr><td><br></td><td><a href="../api_java/memp_trickle.html">DbEnv.memp_trickle</a></td><td>Trickle flush pages from a buffer pool</td></tr>
-<tr><td><br></td><td><a href="../api_java/txn_begin.html">DbEnv.txn_begin</a></td><td>Begin a transaction</td></tr>
-<tr><td><br></td><td><a href="../api_java/txn_checkpoint.html">DbEnv.txn_checkpoint</a></td><td>Checkpoint the transaction subsystem</td></tr>
-<tr><td><br></td><td><a href="../api_java/txn_stat.html">DbEnv.txn_stat</a></td><td>Return transaction subsystem statistics</td></tr>
-<tr><td><br></td><td><a href="../api_java/env_version.html">DbEnv.version</a></td><td>Return version information</td></tr>
-<tr><td><a href="../api_java/db_class.html">Db</a></td><td><br></td><td>Berkeley DB Access Method Class</td></tr>
-<tr><td><br></td><td><a href="../api_java/db_close.html">Db.close</a></td><td>Close a database</td></tr>
-<tr><td><br></td><td><a href="../api_java/db_cursor.html">Db.cursor</a></td><td>Open a cursor into a database</td></tr>
-<tr><td><br></td><td><a href="../api_java/db_del.html">Db.del</a></td><td>Delete items from a database</td></tr>
-<tr><td><br></td><td><a href="../api_java/db_fd.html">Db.fd</a></td><td>Return a file descriptor from a database</td></tr>
-<tr><td><br></td><td><a href="../api_java/db_get.html">Db.get</a></td><td>Get items from a database</td></tr>
-<tr><td><br></td><td><a href="../api_java/db_get_byteswapped.html">Db.get_byteswapped</a></td><td>Return if the underlying database is in host order</td></tr>
-<tr><td><br></td><td><a href="../api_java/db_get_type.html">Db.get_type</a></td><td>Return the database type</td></tr>
-<tr><td><br></td><td><a href="../api_java/db_join.html">Db.join</a></td><td>Perform a database join on cursors</td></tr>
-<tr><td><br></td><td><a href="../api_java/db_key_range.html">Db.key_range</a></td><td>Return estimate of key location</td></tr>
-<tr><td><br></td><td><a href="../api_java/db_open.html">Db.open</a></td><td>Open a database</td></tr>
-<tr><td><br></td><td><a href="../api_java/db_put.html">Db.put</a></td><td>Store items into a database</td></tr>
-<tr><td><br></td><td><a href="../api_java/db_remove.html">Db.remove</a></td><td>Remove a database</td></tr>
-<tr><td><br></td><td><a href="../api_java/db_rename.html">Db.rename</a></td><td>Rename a database</td></tr>
-<tr><td><br></td><td><a href="../api_java/db_set_append_recno.html">Db.set_append_recno</a></td><td>Set record append callback</td></tr>
-<tr><td><br></td><td><a href="../api_java/db_set_bt_compare.html">Db.set_bt_compare</a></td><td>Set a Btree comparison function</td></tr>
-<tr><td><br></td><td><a href="../api_java/db_set_bt_minkey.html">Db.set_bt_minkey</a></td><td>Set the minimum number of keys per Btree page</td></tr>
-<tr><td><br></td><td><a href="../api_java/db_set_bt_prefix.html">Db.set_bt_prefix</a></td><td>Set a Btree prefix comparison function</td></tr>
-<tr><td><br></td><td><a href="../api_java/db_set_cachesize.html">Db.set_cachesize</a></td><td>Set the database cache size</td></tr>
-<tr><td><br></td><td><a href="../api_java/db_set_dup_compare.html">Db.set_dup_compare</a></td><td>Set a duplicate comparison function</td></tr>
-<tr><td><br></td><td><a href="../api_java/db_set_errcall.html">Db.set_errcall</a></td><td>Set error message callback</td></tr>
-<tr><td><br></td><td><a href="../api_java/db_set_errpfx.html">Db.set_errpfx</a></td><td>Set error message prefix</td></tr>
-<tr><td><br></td><td><a href="../api_java/db_set_feedback.html">Db.set_feedback</a></td><td>Set feedback callback</td></tr>
-<tr><td><br></td><td><a href="../api_java/db_set_flags.html">Db.set_flags</a></td><td>General database configuration</td></tr>
-<tr><td><br></td><td><a href="../api_java/db_set_h_ffactor.html">Db.set_h_ffactor</a></td><td>Set the Hash table density</td></tr>
-<tr><td><br></td><td><a href="../api_java/db_set_h_hash.html">Db.set_h_hash</a></td><td>Set a hashing function</td></tr>
-<tr><td><br></td><td><a href="../api_java/db_set_h_nelem.html">Db.set_h_nelem</a></td><td>Set the Hash table size</td></tr>
-<tr><td><br></td><td><a href="../api_java/db_set_lorder.html">Db.set_lorder</a></td><td>Set the database byte order</td></tr>
-<tr><td><br></td><td><a href="../api_java/db_set_pagesize.html">Db.set_pagesize</a></td><td>Set the underlying database page size</td></tr>
-<tr><td><br></td><td><a href="../api_java/db_set_q_extentsize.html">Db.set_q_extentsize</a></td><td>Set Queue database extent size</td></tr>
-<tr><td><br></td><td><a href="../api_java/db_set_re_delim.html">Db.set_re_delim</a></td><td>Set the variable-length record delimiter</td></tr>
-<tr><td><br></td><td><a href="../api_java/db_set_re_len.html">Db.set_re_len</a></td><td>Set the fixed-length record length</td></tr>
-<tr><td><br></td><td><a href="../api_java/db_set_re_pad.html">Db.set_re_pad</a></td><td>Set the fixed-length record pad byte</td></tr>
-<tr><td><br></td><td><a href="../api_java/db_set_re_source.html">Db.set_re_source</a></td><td>Set the backing Recno text file</td></tr>
-<tr><td><br></td><td><a href="../api_java/db_stat.html">Db.stat</a></td><td>Return database statistics</td></tr>
-<tr><td><br></td><td><a href="../api_java/db_sync.html">Db.sync</a></td><td>Flush a database to stable storage</td></tr>
-<tr><td><br></td><td><a href="../api_java/db_upgrade.html">Db.upgrade</a></td><td>Upgrade a database</td></tr>
-<tr><td><br></td><td><a href="../api_java/db_verify.html">Db.verify</a></td><td>Verify/upgrade a database</td></tr>
-<tr><td><a href="../api_java/dbc_class.html">Dbc</a></td><td><br></td><td>Berkeley DB Cursor Class</td></tr>
-<tr><td><br></td><td><a href="../api_java/dbc_close.html">Dbc.close</a></td><td>Close a cursor</td></tr>
-<tr><td><br></td><td><a href="../api_java/dbc_count.html">Dbc.count</a></td><td>Return count of duplicates</td></tr>
-<tr><td><br></td><td><a href="../api_java/dbc_del.html">Dbc.del</a></td><td>Delete by cursor</td></tr>
-<tr><td><br></td><td><a href="../api_java/dbc_dup.html">Dbc.dup</a></td><td>Duplicate a cursor</td></tr>
-<tr><td><br></td><td><a href="../api_java/dbc_get.html">Dbc.get</a></td><td>Retrieve by cursor</td></tr>
-<tr><td><br></td><td><a href="../api_java/dbc_put.html">Dbc.put</a></td><td>Store by cursor</td></tr>
-<tr><td><a href="../api_java/dbt_class.html">Dbt</a></td><td><br></td><td>Key/Data Encoding Class</td></tr>
-<tr><td><a href="../api_java/lock_class.html">DbLock</a></td><td><br></td><td>Lock Class</td></tr>
-<tr><td><br></td><td><a href="../api_java/lock_put.html">DbLock.put</a></td><td>Release a lock</td></tr>
-<tr><td><a href="../api_java/lsn_class.html">DbLsn</a></td><td><br></td><td>Log Sequence Number Class</td></tr>
-<tr><td><a href="../api_java/txn_class.html">DbTxn</a></td><td><br></td><td>Transaction Class</td></tr>
-<tr><td><br></td><td><a href="../api_java/txn_abort.html">DbTxn.abort</a></td><td>Abort a transaction</td></tr>
-<tr><td><br></td><td><a href="../api_java/txn_commit.html">DbTxn.commit</a></td><td>Commit a transaction</td></tr>
-<tr><td><br></td><td><a href="../api_java/txn_id.html">DbTxn.id</a></td><td>Return a transaction ID</td></tr>
-<tr><td><br></td><td><a href="../api_java/txn_prepare.html">DbTxn.prepare</a></td><td>Prepare a transaction for commit</td></tr>
-<tr><td><a href="../api_java/except_class.html">DbException</a></td><td><br></td><td>Exception Class for Berkeley DB Activity</td></tr>
-<tr><td><br></td><td><a href="../api_java/get_errno.html">DbException.get_errno</a></td><td>Get the error value</td></tr>
-<tr><td><a href="../api_java/deadlock_class.html">DbDeadlockException</a></td><td><br></td><td>Exception Class for deadlocks</td></tr>
-<tr><td><a href="../api_java/mem_class.html">DbMemoryException</a></td><td><br></td><td>Exception Class for insufficient memory</td></tr>
-<tr><td><a href="../api_java/runrec_class.html">DbRunRecoveryException</a></td><td><br></td><td>Exception Class for failures requiring recovery</td></tr>
-</table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/java_pindex.html b/bdb/docs/api_java/java_pindex.html
deleted file mode 100644
index 5ac50e4791b..00000000000
--- a/bdb/docs/api_java/java_pindex.html
+++ /dev/null
@@ -1,478 +0,0 @@
-<html>
-<head>
-<title>Berkeley DB: Java Interface Index</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<h1 align=center>Java Interface Index</h1>
-<center>
-<table cellspacing=0 cellpadding=0>
-<tr><td align=right> configuring Berkeley DB </td><td><a href="../ref/build_unix/conf.html#5">1.85</a> API compatibility</td></tr>
-<tr><td align=right> building a utility to dump Berkeley DB </td><td><a href="../ref/build_unix/conf.html#7">1.85</a> databases</td></tr>
-<tr><td align=right> Upgrading to release </td><td><a href="../ref/upgrade.2.0/intro.html#2">2.0</a></td></tr>
-<tr><td align=right> Upgrading to release </td><td><a href="../ref/upgrade.3.0/intro.html#2">3.0</a></td></tr>
-<tr><td align=right> Upgrading to release </td><td><a href="../ref/upgrade.3.1/intro.html#2">3.1</a></td></tr>
-<tr><td align=right> Upgrading to release </td><td><a href="../ref/upgrade.3.2/intro.html#2">3.2</a></td></tr>
-<tr><td align=right> selecting an </td><td><a href="../ref/am_conf/select.html#2">access</a> method</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am_conf/intro.html#2">access</a> methods</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/aix.html#2">AIX</a></td></tr>
-<tr><td align=right> programmatic </td><td><a href="../ref/arch/apis.html#2">APIs</a></td></tr>
-<tr><td align=right> utility to </td><td><a href="../utility/db_archive.html#3">archive</a> log files</td></tr>
-<tr><td align=right> </td><td><a href="../utility/berkeley_db_svc.html#2">berkeley_db_svc</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/intro.html#2">building</a> for UNIX</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/notes.html#2">building</a> for UNIX FAQ</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_vxworks/intro.html#2">building</a> for VxWorks</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_vxworks/faq.html#2">building</a> for VxWorks FAQ</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_win/intro.html#2">building</a> for Win32</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_win/faq.html#2">building</a> for Windows FAQ</td></tr>
-<tr><td align=right> selecting a </td><td><a href="../ref/am_conf/byteorder.html#2">byte</a> order</td></tr>
-<tr><td align=right> </td><td><a href="../ref/program/byteorder.html#2">byte</a> ordering</td></tr>
-<tr><td align=right> configuring the </td><td><a href="../ref/build_unix/conf.html#6">C++</a> API</td></tr>
-<tr><td align=right> flushing the database </td><td><a href="../ref/am/sync.html#2">cache</a></td></tr>
-<tr><td align=right> selecting a </td><td><a href="../ref/am_conf/cachesize.html#2">cache</a> size</td></tr>
-<tr><td align=right> </td><td><a href="../ref/transapp/archival.html#3">catastrophic</a> recovery</td></tr>
-<tr><td align=right>Patches, Updates and </td><td><a href="http://www.sleepycat.com/update/index.html">Change</a> logs</td></tr>
-<tr><td align=right> utility to take </td><td><a href="../utility/db_checkpoint.html#3">checkpoints</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/curclose.html#2">closing</a> a cursor</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/close.html#2">closing</a> a database</td></tr>
-<tr><td align=right> specifying a Btree </td><td><a href="../ref/am_conf/bt_compare.html#2">comparison</a> function</td></tr>
-<tr><td align=right> changing </td><td><a href="../ref/build_unix/flags.html#2">compile</a> or load options</td></tr>
-<tr><td align=right> </td><td><a href="../ref/cam/intro.html#2">Concurrent</a> Data Store</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/conf.html#2">configuring</a> Berkeley DB for UNIX systems</td></tr>
-<tr><td align=right> recovering </td><td><a href="../ref/am/verify.html#4">corrupted</a> databases</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/count.html#2">counting</a> data items for a key</td></tr>
-<tr><td align=right> closing a </td><td><a href="../ref/am/curclose.html#3">cursor</a></td></tr>
-<tr><td align=right> deleting records with a </td><td><a href="../ref/am/curdel.html#3">cursor</a></td></tr>
-<tr><td align=right> duplicating a </td><td><a href="../ref/am/curdup.html#3">cursor</a></td></tr>
-<tr><td align=right> retrieving records with a </td><td><a href="../ref/am/curget.html#3">cursor</a></td></tr>
-<tr><td align=right> storing records with a </td><td><a href="../ref/am/curput.html#3">cursor</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/stability.html#2">cursor</a> stability</td></tr>
-<tr><td align=right> database </td><td><a href="../ref/am/cursor.html#2">cursors</a></td></tr>
-<tr><td align=right>Dbt</td><td><a href="../api_java/dbt_class.html#data">data</a></td></tr>
-<tr><td align=right> utility to upgrade </td><td><a href="../utility/db_upgrade.html#3">database</a> files</td></tr>
-<tr><td align=right> utility to verify </td><td><a href="../utility/db_verify.html#3">database</a> files</td></tr>
-<tr><td align=right> </td><td><a href="../api_java/db_class.html#2">Db</a></td></tr>
-<tr><td align=right> </td><td><a href="../utility/db_archive.html#2">db_archive</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/dbc_class.html#2">Dbc</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/dbc_close.html#2">Dbc.close</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/dbc_count.html#2">Dbc.count</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/dbc_del.html#2">Dbc.del</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/dbc_dup.html#2">Dbc.dup</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/dbc_get.html#2">Dbc.get</a></td></tr>
-<tr><td align=right> </td><td><a href="../utility/db_checkpoint.html#2">db_checkpoint</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/db_close.html#2">Db.close</a></td></tr>
-<tr><td align=right>File naming</td><td><a href="../ref/env/naming.html#DB_CONFIG">DB_CONFIG</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/dbc_put.html#2">Dbc.put</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/db_cursor.html#2">Db.cursor</a></td></tr>
-<tr><td align=right>Dbc.put</td><td><a href="../api_java/dbc_put.html#Db.DB_AFTER">Db.DB_AFTER</a></td></tr>
-<tr><td align=right>Db.verify</td><td><a href="../api_java/db_verify.html#Db.DB_AGGRESSIVE">Db.DB_AGGRESSIVE</a></td></tr>
-<tr><td align=right>Db.put</td><td><a href="../api_java/db_put.html#Db.DB_APPEND">Db.DB_APPEND</a></td></tr>
-<tr><td align=right>DbEnv.log_archive</td><td><a href="../api_java/log_archive.html#Db.DB_ARCH_ABS">Db.DB_ARCH_ABS</a></td></tr>
-<tr><td align=right>DbEnv.log_archive</td><td><a href="../api_java/log_archive.html#Db.DB_ARCH_DATA">Db.DB_ARCH_DATA</a></td></tr>
-<tr><td align=right>DbEnv.log_archive</td><td><a href="../api_java/log_archive.html#Db.DB_ARCH_LOG">Db.DB_ARCH_LOG</a></td></tr>
-<tr><td align=right>Dbc.put</td><td><a href="../api_java/dbc_put.html#Db.DB_BEFORE">Db.DB_BEFORE</a></td></tr>
-<tr><td align=right>Db.stat</td><td><a href="../api_java/db_stat.html#Db.DB_CACHED_COUNTS">Db.DB_CACHED_COUNTS</a></td></tr>
-<tr><td align=right>DbEnv.set_flags</td><td><a href="../api_java/env_set_flags.html#Db.DB_CDB_ALLDB">Db.DB_CDB_ALLDB</a></td></tr>
-<tr><td align=right>DbEnv.log_get</td><td><a href="../api_java/log_get.html#Db.DB_CHECKPOINT">Db.DB_CHECKPOINT</a></td></tr>
-<tr><td align=right>DbEnv.log_put</td><td><a href="../api_java/log_put.html#Db.DB_CHECKPOINT">Db.DB_CHECKPOINT</a></td></tr>
-<tr><td align=right>DbEnv</td><td><a href="../api_java/dbenv_class.html#Db.DB_CLIENT">Db.DB_CLIENT</a></td></tr>
-<tr><td align=right>Db.get</td><td><a href="../api_java/db_get.html#Db.DB_CONSUME">Db.DB_CONSUME</a></td></tr>
-<tr><td align=right>Db.get</td><td><a href="../api_java/db_get.html#Db.DB_CONSUME_WAIT">Db.DB_CONSUME_WAIT</a></td></tr>
-<tr><td align=right>Db.open</td><td><a href="../api_java/db_open.html#Db.DB_CREATE">Db.DB_CREATE</a></td></tr>
-<tr><td align=right>DbEnv.open</td><td><a href="../api_java/env_open.html#Db.DB_CREATE">Db.DB_CREATE</a></td></tr>
-<tr><td align=right>DbEnv.log_put</td><td><a href="../api_java/log_put.html#Db.DB_CURLSN">Db.DB_CURLSN</a></td></tr>
-<tr><td align=right>Dbc.get</td><td><a href="../api_java/dbc_get.html#Db.DB_CURRENT">Db.DB_CURRENT</a></td></tr>
-<tr><td align=right>Dbc.put</td><td><a href="../api_java/dbc_put.html#Db.DB_CURRENT">Db.DB_CURRENT</a></td></tr>
-<tr><td align=right>DbEnv.log_get</td><td><a href="../api_java/log_get.html#Db.DB_CURRENT">Db.DB_CURRENT</a></td></tr>
-<tr><td align=right>Dbt</td><td><a href="../api_java/dbt_class.html#Db.DB_DBT_MALLOC">Db.DB_DBT_MALLOC</a></td></tr>
-<tr><td align=right>Dbt</td><td><a href="../api_java/dbt_class.html#Db.DB_DBT_PARTIAL">Db.DB_DBT_PARTIAL</a></td></tr>
-<tr><td align=right>Dbt</td><td><a href="../api_java/dbt_class.html#Db.DB_DBT_REALLOC">Db.DB_DBT_REALLOC</a></td></tr>
-<tr><td align=right>Dbt</td><td><a href="../api_java/dbt_class.html#Db.DB_DBT_USERMEM">Db.DB_DBT_USERMEM</a></td></tr>
-<tr><td align=right>Db.set_flags</td><td><a href="../api_java/db_set_flags.html#Db.DB_DUP">Db.DB_DUP</a></td></tr>
-<tr><td align=right>Db.set_flags</td><td><a href="../api_java/db_set_flags.html#Db.DB_DUPSORT">Db.DB_DUPSORT</a></td></tr>
-<tr><td align=right>Db.upgrade</td><td><a href="../api_java/db_upgrade.html#Db.DB_DUPSORT">Db.DB_DUPSORT</a></td></tr>
-<tr><td align=right>Db.open</td><td><a href="../api_java/db_open.html#Db.DB_EXCL">Db.DB_EXCL</a></td></tr>
-<tr><td align=right>Dbc.get</td><td><a href="../api_java/dbc_get.html#Db.DB_FIRST">Db.DB_FIRST</a></td></tr>
-<tr><td align=right>DbEnv.log_get</td><td><a href="../api_java/log_get.html#Db.DB_FIRST">Db.DB_FIRST</a></td></tr>
-<tr><td align=right>DbEnv.log_put</td><td><a href="../api_java/log_put.html#Db.DB_FLUSH">Db.DB_FLUSH</a></td></tr>
-<tr><td align=right>DbEnv.remove</td><td><a href="../api_java/env_remove.html#Db.DB_FORCE">Db.DB_FORCE</a></td></tr>
-<tr><td align=right>DbEnv.txn_checkpoint</td><td><a href="../api_java/txn_checkpoint.html#Db.DB_FORCE">Db.DB_FORCE</a></td></tr>
-<tr><td align=right>Db.get</td><td><a href="../api_java/db_get.html#Db.DB_GET_BOTH">Db.DB_GET_BOTH</a></td></tr>
-<tr><td align=right>Dbc.get</td><td><a href="../api_java/dbc_get.html#Db.DB_GET_BOTH">Db.DB_GET_BOTH</a></td></tr>
-<tr><td align=right>Dbc.get</td><td><a href="../api_java/dbc_get.html#Db.DB_GET_RECNO">Db.DB_GET_RECNO</a></td></tr>
-<tr><td align=right>DbEnv.open</td><td><a href="../api_java/env_open.html#Db.DB_INIT_CDB">Db.DB_INIT_CDB</a></td></tr>
-<tr><td align=right>DbEnv.open</td><td><a href="../api_java/env_open.html#Db.DB_INIT_LOCK">Db.DB_INIT_LOCK</a></td></tr>
-<tr><td align=right>DbEnv.open</td><td><a href="../api_java/env_open.html#Db.DB_INIT_LOG">Db.DB_INIT_LOG</a></td></tr>
-<tr><td align=right>DbEnv.open</td><td><a href="../api_java/env_open.html#Db.DB_INIT_MPOOL">Db.DB_INIT_MPOOL</a></td></tr>
-<tr><td align=right>DbEnv.open</td><td><a href="../api_java/env_open.html#Db.DB_INIT_TXN">Db.DB_INIT_TXN</a></td></tr>
-<tr><td align=right>DbEnv.open</td><td><a href="../api_java/env_open.html#Db.DB_JOINENV">Db.DB_JOINENV</a></td></tr>
-<tr><td align=right>Db.join</td><td><a href="../api_java/db_join.html#Db.DB_JOIN_ITEM">Db.DB_JOIN_ITEM</a></td></tr>
-<tr><td align=right>Dbc.get</td><td><a href="../api_java/dbc_get.html#Db.DB_JOIN_ITEM">Db.DB_JOIN_ITEM</a></td></tr>
-<tr><td align=right>Db.join</td><td><a href="../api_java/db_join.html#Db.DB_JOIN_NOSORT">Db.DB_JOIN_NOSORT</a></td></tr>
-<tr><td align=right>Dbc.put</td><td><a href="../api_java/dbc_put.html#Db.DB_KEYFIRST">Db.DB_KEYFIRST</a></td></tr>
-<tr><td align=right>Dbc.put</td><td><a href="../api_java/dbc_put.html#Db.DB_KEYLAST">Db.DB_KEYLAST</a></td></tr>
-<tr><td align=right>Dbc.get</td><td><a href="../api_java/dbc_get.html#Db.DB_LAST">Db.DB_LAST</a></td></tr>
-<tr><td align=right>DbEnv.log_get</td><td><a href="../api_java/log_get.html#Db.DB_LAST">Db.DB_LAST</a></td></tr>
-<tr><td align=right>DbEnv.lock_detect</td><td><a href="../api_java/lock_detect.html#Db.DB_LOCK_CONFLICT">Db.DB_LOCK_CONFLICT</a></td></tr>
-<tr><td align=right>DbEnv.open</td><td><a href="../api_java/env_open.html#Db.DB_LOCKDOWN">Db.DB_LOCKDOWN</a></td></tr>
-<tr><td align=right>DbEnv.lock_get</td><td><a href="../api_java/lock_get.html#Db.DB_LOCK_NOTGRANTED">Db.DB_LOCK_NOTGRANTED</a></td></tr>
-<tr><td align=right>DbEnv.lock_get</td><td><a href="../api_java/lock_get.html#Db.DB_LOCK_NOWAIT">Db.DB_LOCK_NOWAIT</a></td></tr>
-<tr><td align=right>Dbc.get</td><td><a href="../api_java/dbc_get.html#Db.DB_NEXT">Db.DB_NEXT</a></td></tr>
-<tr><td align=right>DbEnv.log_get</td><td><a href="../api_java/log_get.html#Db.DB_NEXT">Db.DB_NEXT</a></td></tr>
-<tr><td align=right>Dbc.get</td><td><a href="../api_java/dbc_get.html#Db.DB_NEXT_DUP">Db.DB_NEXT_DUP</a></td></tr>
-<tr><td align=right>Dbc.get</td><td><a href="../api_java/dbc_get.html#Db.DB_NEXT_NODUP">Db.DB_NEXT_NODUP</a></td></tr>
-<tr><td align=right>Db.put</td><td><a href="../api_java/db_put.html#Db.DB_NODUPDATA">Db.DB_NODUPDATA</a></td></tr>
-<tr><td align=right>Dbc.put</td><td><a href="../api_java/dbc_put.html#Db.DB_NODUPDATA">Db.DB_NODUPDATA</a></td></tr>
-<tr><td align=right>Db.open</td><td><a href="../api_java/db_open.html#Db.DB_NOMMAP">Db.DB_NOMMAP</a></td></tr>
-<tr><td align=right>DbEnv.set_flags</td><td><a href="../api_java/env_set_flags.html#Db.DB_NOMMAP">Db.DB_NOMMAP</a></td></tr>
-<tr><td align=right>Db.verify</td><td><a href="../api_java/db_verify.html#Db.DB_NOORDERCHK">Db.DB_NOORDERCHK</a></td></tr>
-<tr><td align=right>Db.put</td><td><a href="../api_java/db_put.html#Db.DB_NOOVERWRITE">Db.DB_NOOVERWRITE</a></td></tr>
-<tr><td align=right>Db.close</td><td><a href="../api_java/db_close.html#Db.DB_NOSYNC">Db.DB_NOSYNC</a></td></tr>
-<tr><td align=right>Db.open</td><td><a href="../api_java/db_open.html#Db.DB_OLD_VERSION">Db.DB_OLD_VERSION</a></td></tr>
-<tr><td align=right>Db.upgrade</td><td><a href="../api_java/db_upgrade.html#Db.DB_OLD_VERSION">Db.DB_OLD_VERSION</a></td></tr>
-<tr><td align=right>Db.verify</td><td><a href="../api_java/db_verify.html#Db.DB_ORDERCHKONLY">Db.DB_ORDERCHKONLY</a></td></tr>
-<tr><td align=right>Dbc.dup</td><td><a href="../api_java/dbc_dup.html#Db.DB_POSITION">Db.DB_POSITION</a></td></tr>
-<tr><td align=right>Dbc.get</td><td><a href="../api_java/dbc_get.html#Db.DB_PREV">Db.DB_PREV</a></td></tr>
-<tr><td align=right>DbEnv.log_get</td><td><a href="../api_java/log_get.html#Db.DB_PREV">Db.DB_PREV</a></td></tr>
-<tr><td align=right>Dbc.get</td><td><a href="../api_java/dbc_get.html#Db.DB_PREV_NODUP">Db.DB_PREV_NODUP</a></td></tr>
-<tr><td align=right>DbEnv.open</td><td><a href="../api_java/env_open.html#Db.DB_PRIVATE">Db.DB_PRIVATE</a></td></tr>
-<tr><td align=right>Db.open</td><td><a href="../api_java/db_open.html#Db.DB_RDONLY">Db.DB_RDONLY</a></td></tr>
-<tr><td align=right>Db.set_flags</td><td><a href="../api_java/db_set_flags.html#Db.DB_RECNUM">Db.DB_RECNUM</a></td></tr>
-<tr><td align=right>Db.stat</td><td><a href="../api_java/db_stat.html#Db.DB_RECORDCOUNT">Db.DB_RECORDCOUNT</a></td></tr>
-<tr><td align=right>DbEnv.open</td><td><a href="../api_java/env_open.html#Db.DB_RECOVER">Db.DB_RECOVER</a></td></tr>
-<tr><td align=right>DbEnv.set_feedback</td><td><a href="../api_java/env_set_feedback.html#Db.DB_RECOVER">Db.DB_RECOVER</a></td></tr>
-<tr><td align=right>DbEnv.open</td><td><a href="../api_java/env_open.html#Db.DB_RECOVER_FATAL">Db.DB_RECOVER_FATAL</a></td></tr>
-<tr><td align=right>Db.set_flags</td><td><a href="../api_java/db_set_flags.html#Db.DB_RENUMBER">Db.DB_RENUMBER</a></td></tr>
-<tr><td align=right>Db.set_flags</td><td><a href="../api_java/db_set_flags.html#Db.DB_REVSPLITOFF">Db.DB_REVSPLITOFF</a></td></tr>
-<tr><td align=right>Db.get</td><td><a href="../api_java/db_get.html#Db.DB_RMW">Db.DB_RMW</a></td></tr>
-<tr><td align=right>Db.join</td><td><a href="../api_java/db_join.html#Db.DB_RMW">Db.DB_RMW</a></td></tr>
-<tr><td align=right>Dbc.get</td><td><a href="../api_java/dbc_get.html#Db.DB_RMW">Db.DB_RMW</a></td></tr>
-<tr><td align=right>Db.verify</td><td><a href="../api_java/db_verify.html#Db.DB_SALVAGE">Db.DB_SALVAGE</a></td></tr>
-<tr><td align=right>Dbc.get</td><td><a href="../api_java/dbc_get.html#Db.DB_SET">Db.DB_SET</a></td></tr>
-<tr><td align=right>DbEnv.log_get</td><td><a href="../api_java/log_get.html#Db.DB_SET">Db.DB_SET</a></td></tr>
-<tr><td align=right>Dbc.get</td><td><a href="../api_java/dbc_get.html#Db.DB_SET_RANGE">Db.DB_SET_RANGE</a></td></tr>
-<tr><td align=right>Db.get</td><td><a href="../api_java/db_get.html#Db.DB_SET_RECNO">Db.DB_SET_RECNO</a></td></tr>
-<tr><td align=right>Dbc.get</td><td><a href="../api_java/dbc_get.html#Db.DB_SET_RECNO">Db.DB_SET_RECNO</a></td></tr>
-<tr><td align=right>Db.set_flags</td><td><a href="../api_java/db_set_flags.html#Db.DB_SNAPSHOT">Db.DB_SNAPSHOT</a></td></tr>
-<tr><td align=right>DbEnv.open</td><td><a href="../api_java/env_open.html#Db.DB_SYSTEM_MEM">Db.DB_SYSTEM_MEM</a></td></tr>
-<tr><td align=right>Db.open</td><td><a href="../api_java/db_open.html#Db.DB_THREAD">Db.DB_THREAD</a></td></tr>
-<tr><td align=right>DbEnv.open</td><td><a href="../api_java/env_open.html#Db.DB_THREAD">Db.DB_THREAD</a></td></tr>
-<tr><td align=right>Db.open</td><td><a href="../api_java/db_open.html#Db.DB_TRUNCATE">Db.DB_TRUNCATE</a></td></tr>
-<tr><td align=right>DbEnv.set_tx_recover</td><td><a href="../api_java/env_set_tx_recover.html#Db.DB_TXN_ABORT">Db.DB_TXN_ABORT</a></td></tr>
-<tr><td align=right>DbEnv.set_tx_recover</td><td><a href="../api_java/env_set_tx_recover.html#Db.DB_TXN_BACKWARD_ROLL">Db.DB_TXN_BACKWARD_ROLL</a></td></tr>
-<tr><td align=right>DbEnv.set_tx_recover</td><td><a href="../api_java/env_set_tx_recover.html#Db.DB_TXN_FORWARD_ROLL">Db.DB_TXN_FORWARD_ROLL</a></td></tr>
-<tr><td align=right>DbEnv.set_flags</td><td><a href="../api_java/env_set_flags.html#Db.DB_TXN_NOSYNC">Db.DB_TXN_NOSYNC</a></td></tr>
-<tr><td align=right>DbEnv.txn_begin</td><td><a href="../api_java/txn_begin.html#Db.DB_TXN_NOSYNC">Db.DB_TXN_NOSYNC</a></td></tr>
-<tr><td align=right>DbTxn.commit</td><td><a href="../api_java/txn_commit.html#Db.DB_TXN_NOSYNC">Db.DB_TXN_NOSYNC</a></td></tr>
-<tr><td align=right>DbEnv.txn_begin</td><td><a href="../api_java/txn_begin.html#Db.DB_TXN_NOWAIT">Db.DB_TXN_NOWAIT</a></td></tr>
-<tr><td align=right>DbEnv.txn_begin</td><td><a href="../api_java/txn_begin.html#Db.DB_TXN_SYNC">Db.DB_TXN_SYNC</a></td></tr>
-<tr><td align=right>DbTxn.commit</td><td><a href="../api_java/txn_commit.html#Db.DB_TXN_SYNC">Db.DB_TXN_SYNC</a></td></tr>
-<tr><td align=right>Db.set_feedback</td><td><a href="../api_java/db_set_feedback.html#Db.DB_UPGRADE">Db.DB_UPGRADE</a></td></tr>
-<tr><td align=right>DbEnv.open</td><td><a href="../api_java/env_open.html#Db.DB_USE_ENVIRON">Db.DB_USE_ENVIRON</a></td></tr>
-<tr><td align=right>DbEnv.remove</td><td><a href="../api_java/env_remove.html#Db.DB_USE_ENVIRON">Db.DB_USE_ENVIRON</a></td></tr>
-<tr><td align=right>DbEnv.open</td><td><a href="../api_java/env_open.html#Db.DB_USE_ENVIRON_ROOT">Db.DB_USE_ENVIRON_ROOT</a></td></tr>
-<tr><td align=right>DbEnv.remove</td><td><a href="../api_java/env_remove.html#Db.DB_USE_ENVIRON_ROOT">Db.DB_USE_ENVIRON_ROOT</a></td></tr>
-<tr><td align=right>DbEnv.set_verbose</td><td><a href="../api_java/env_set_verbose.html#Db.DB_VERB_CHKPOINT">Db.DB_VERB_CHKPOINT</a></td></tr>
-<tr><td align=right>DbEnv.set_verbose</td><td><a href="../api_java/env_set_verbose.html#Db.DB_VERB_DEADLOCK">Db.DB_VERB_DEADLOCK</a></td></tr>
-<tr><td align=right>DbEnv.set_verbose</td><td><a href="../api_java/env_set_verbose.html#Db.DB_VERB_RECOVERY">Db.DB_VERB_RECOVERY</a></td></tr>
-<tr><td align=right>DbEnv.set_verbose</td><td><a href="../api_java/env_set_verbose.html#Db.DB_VERB_WAITSFOR">Db.DB_VERB_WAITSFOR</a></td></tr>
-<tr><td align=right>Db.set_feedback</td><td><a href="../api_java/db_set_feedback.html#Db.DB_VERIFY">Db.DB_VERIFY</a></td></tr>
-<tr><td align=right>Db.cursor</td><td><a href="../api_java/db_cursor.html#Db.DB_WRITECURSOR">Db.DB_WRITECURSOR</a></td></tr>
-<tr><td align=right>Db</td><td><a href="../api_java/db_class.html#Db.DB_XA_CREATE">Db.DB_XA_CREATE</a></td></tr>
-<tr><td align=right> </td><td><a href="../utility/db_deadlock.html#2">db_deadlock</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/deadlock_class.html#2">DbDeadlockException</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/db_del.html#2">Db.del</a></td></tr>
-<tr><td align=right> </td><td><a href="../utility/db_dump.html#2">db_dump</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/dbenv_class.html#2">DbEnv</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/env_close.html#2">DbEnv.close</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/env_version.html#2">DbEnv.get_version_major</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/lock_detect.html#2">DbEnv.lock_detect</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/lock_get.html#2">DbEnv.lock_get</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/lock_id.html#2">DbEnv.lock_id</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/lock_stat.html#2">DbEnv.lock_stat</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/lock_vec.html#2">DbEnv.lock_vec</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/log_archive.html#2">DbEnv.log_archive</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/log_compare.html#2">DbEnv.log_compare</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/log_file.html#2">DbEnv.log_file</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/log_flush.html#2">DbEnv.log_flush</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/log_get.html#2">DbEnv.log_get</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/log_put.html#2">DbEnv.log_put</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/log_register.html#2">DbEnv.log_register</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/log_stat.html#2">DbEnv.log_stat</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/log_unregister.html#2">DbEnv.log_unregister</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/memp_register.html#2">DbEnv.memp_register</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/memp_stat.html#2">DbEnv.memp_stat</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/memp_sync.html#2">DbEnv.memp_sync</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/memp_trickle.html#2">DbEnv.memp_trickle</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/env_open.html#2">DbEnv.open</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/env_remove.html#2">DbEnv.remove</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/env_set_cachesize.html#2">DbEnv.set_cachesize</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/env_set_data_dir.html#2">DbEnv.set_data_dir</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/env_set_errcall.html#2">DbEnv.set_errcall</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/env_set_error_stream.html#2">DbEnv.set_error_stream</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/env_set_errpfx.html#2">DbEnv.set_errpfx</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/env_set_feedback.html#2">DbEnv.set_feedback</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/env_set_flags.html#2">DbEnv.set_flags</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/env_set_lg_bsize.html#2">DbEnv.set_lg_bsize</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/env_set_lg_dir.html#2">DbEnv.set_lg_dir</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/env_set_lg_max.html#2">DbEnv.set_lg_max</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/env_set_lk_conflicts.html#2">DbEnv.set_lk_conflicts</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/env_set_lk_detect.html#2">DbEnv.set_lk_detect</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/env_set_lk_max.html#2">DbEnv.set_lk_max</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/env_set_lk_max_lockers.html#2">DbEnv.set_lk_max_lockers</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/env_set_lk_max_locks.html#2">DbEnv.set_lk_max_locks</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/env_set_lk_max_objects.html#2">DbEnv.set_lk_max_objects</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/env_set_mp_mmapsize.html#2">DbEnv.set_mp_mmapsize</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/env_set_mutexlocks.html#2">DbEnv.set_mutexlocks</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/env_set_pageyield.html#2">DbEnv.set_pageyield</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/env_set_panicstate.html#2">DbEnv.set_panicstate</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/env_set_rec_init.html#2">DbEnv.set_recovery_init</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/env_set_region_init.html#2">DbEnv.set_region_init</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/env_set_server.html#2">DbEnv.set_server</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/env_set_shm_key.html#2">DbEnv.set_shm_key</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/env_set_tas_spins.html#2">DbEnv.set_tas_spins</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/env_set_tmp_dir.html#2">DbEnv.set_tmp_dir</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/env_set_tx_max.html#2">DbEnv.set_tx_max</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/env_set_tx_recover.html#2">DbEnv.set_tx_recover</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/env_set_tx_timestamp.html#2">DbEnv.set_tx_timestamp</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/env_set_verbose.html#2">DbEnv.set_verbose</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/env_strerror.html#2">DbEnv.strerror</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/txn_begin.html#2">DbEnv.txn_begin</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/txn_checkpoint.html#2">DbEnv.txn_checkpoint</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/txn_stat.html#2">DbEnv.txn_stat</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/except_class.html#2">DbException</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/get_errno.html#2">DbException.get_errno</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/db_fd.html#2">Db.fd</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/db_get.html#2">Db.get</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/db_get_byteswapped.html#2">Db.get_byteswapped</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/db_get_type.html#2">Db.get_type</a></td></tr>
-<tr><td align=right>File naming</td><td><a href="../ref/env/naming.html#DB_HOME">DB_HOME</a></td></tr>
-<tr><td align=right>File naming</td><td><a href="../ref/env/naming.html#db_home">db_home</a></td></tr>
-<tr><td align=right> Db.close </td><td><a href="../api_java/db_close.html#3">DB_INCOMPLETE</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/db_join.html#2">Db.join</a></td></tr>
-<tr><td align=right>Error returns to applications</td><td><a href="../ref/program/errorret.html#DB_KEYEMPTY">DB_KEYEMPTY</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/db_key_range.html#2">Db.key_range</a></td></tr>
-<tr><td align=right> </td><td><a href="../utility/db_load.html#2">db_load</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/lock_class.html#2">DbLock</a></td></tr>
-<tr><td align=right>Error returns to applications</td><td><a href="../ref/program/errorret.html#DB_LOCK_DEADLOCK">DB_LOCK_DEADLOCK</a></td></tr>
-<tr><td align=right>DbEnv.set_lk_detect</td><td><a href="../api_java/env_set_lk_detect.html#DB_LOCK_DEFAULT">DB_LOCK_DEFAULT</a></td></tr>
-<tr><td align=right>Error returns to applications</td><td><a href="../ref/program/errorret.html#DB_LOCK_NOTGRANTED">DB_LOCK_NOTGRANTED</a></td></tr>
-<tr><td align=right>DbEnv.set_lk_detect</td><td><a href="../api_java/env_set_lk_detect.html#DB_LOCK_OLDEST">DB_LOCK_OLDEST</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/lock_put.html#2">DbLock.put</a></td></tr>
-<tr><td align=right>DbEnv.set_lk_detect</td><td><a href="../api_java/env_set_lk_detect.html#DB_LOCK_RANDOM">DB_LOCK_RANDOM</a></td></tr>
-<tr><td align=right>DbEnv.set_lk_detect</td><td><a href="../api_java/env_set_lk_detect.html#DB_LOCK_YOUNGEST">DB_LOCK_YOUNGEST</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/lsn_class.html#2">DbLsn</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/mem_class.html#2">DbMemoryException</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/memp_fclose.html#2">DbMpoolFile.close</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/memp_fget.html#2">DbMpoolFile.get</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/memp_fopen.html#2">DbMpoolFile.open</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/memp_fput.html#2">DbMpoolFile.put</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/memp_fset.html#2">DbMpoolFile.set</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/memp_fsync.html#2">DbMpoolFile.sync</a></td></tr>
-<tr><td align=right>DbEnv.set_server</td><td><a href="../api_java/env_set_server.html#DB_NOSERVER">DB_NOSERVER</a></td></tr>
-<tr><td align=right>DbEnv.set_server</td><td><a href="../api_java/env_set_server.html#DB_NOSERVER_ID">DB_NOSERVER_ID</a></td></tr>
-<tr><td align=right>Error returns to applications</td><td><a href="../ref/program/errorret.html#DB_NOTFOUND">DB_NOTFOUND</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/db_open.html#2">Db.open</a></td></tr>
-<tr><td align=right> </td><td><a href="../utility/db_printlog.html#2">db_printlog</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/db_put.html#2">Db.put</a></td></tr>
-<tr><td align=right> </td><td><a href="../utility/db_recover.html#2">db_recover</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/db_remove.html#2">Db.remove</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/db_rename.html#2">Db.rename</a></td></tr>
-<tr><td align=right>Error returns to applications</td><td><a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/runrec_class.html#2">DbRunRecoveryException</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/db_set_append_recno.html#2">Db.set_append_recno</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/db_set_bt_compare.html#2">Db.set_bt_compare</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/db_set_bt_minkey.html#2">Db.set_bt_minkey</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/db_set_bt_prefix.html#2">Db.set_bt_prefix</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/db_set_cachesize.html#2">Db.set_cachesize</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/db_set_dup_compare.html#2">Db.set_dup_compare</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/db_set_errcall.html#2">Db.set_errcall</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/db_set_errpfx.html#2">Db.set_errpfx</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/db_set_feedback.html#2">Db.set_feedback</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/db_set_flags.html#2">Db.set_flags</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/db_set_h_ffactor.html#2">Db.set_h_ffactor</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/db_set_h_hash.html#2">Db.set_h_hash</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/db_set_h_nelem.html#2">Db.set_h_nelem</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/db_set_lorder.html#2">Db.set_lorder</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/db_set_pagesize.html#2">Db.set_pagesize</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/db_set_q_extentsize.html#2">Db.set_q_extentsize</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/db_set_re_delim.html#2">Db.set_re_delim</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/db_set_re_len.html#2">Db.set_re_len</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/db_set_re_pad.html#2">Db.set_re_pad</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/db_set_re_source.html#2">Db.set_re_source</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/db_stat.html#2">Db.stat</a></td></tr>
-<tr><td align=right> </td><td><a href="../utility/db_stat.html#2">db_stat</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/db_sync.html#2">Db.sync</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/dbt_class.html#2">Dbt</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/txn_class.html#2">DbTxn</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/txn_abort.html#2">DbTxn.abort</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/txn_commit.html#2">DbTxn.commit</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/txn_id.html#2">DbTxn.id</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/txn_prepare.html#2">DbTxn.prepare</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/db_upgrade.html#2">Db.upgrade</a></td></tr>
-<tr><td align=right> </td><td><a href="../utility/db_upgrade.html#2">db_upgrade</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/db_verify.html#2">Db.verify</a></td></tr>
-<tr><td align=right> </td><td><a href="../utility/db_verify.html#2">db_verify</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/lock/dead.html#2">deadlocks</a></td></tr>
-<tr><td align=right> utility to detect </td><td><a href="../utility/db_deadlock.html#3">deadlocks</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/debug/common.html#2">debugging</a> applications</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/delete.html#2">deleting</a> records</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/curdel.html#2">deleting</a> records with a cursor</td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--disable-bigfile">--disable-bigfile</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/program/diskspace.html#2">disk</a> space requirements</td></tr>
-<tr><td align=right> utility to </td><td><a href="../utility/db_dump.html#3">dump</a> databases as text files</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am_conf/dup.html#2">duplicate</a> data items</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/curdup.html#2">duplicating</a> a cursor</td></tr>
-<tr><td align=right> configuring </td><td><a href="../ref/build_unix/conf.html#9">dynamic</a> shared libraries</td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-compat185">--enable-compat185</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-cxx">--enable-cxx</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-debug">--enable-debug</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-debug_rop">--enable-debug_rop</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-debug_wop">--enable-debug_wop</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-diagnostic">--enable-diagnostic</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-dump185">--enable-dump185</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-dynamic">--enable-dynamic</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-java">--enable-java</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-posixmutexes">--enable-posixmutexes</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-rpc">--enable-rpc</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-shared">--enable-shared</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-tcl">--enable-tcl</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-test">--enable-test</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-uimutexes">--enable-uimutexes</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-umrw">--enable-umrw</a></td></tr>
-<tr><td align=right> byte </td><td><a href="../ref/program/byteorder.html#3">endian</a></td></tr>
-<tr><td align=right> database </td><td><a href="../ref/env/create.html#2">environment</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/program/environ.html#2">environment</a> variables</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/error.html#2">error</a> handling</td></tr>
-<tr><td align=right> </td><td><a href="../ref/program/errorret.html#3">error</a> name space</td></tr>
-<tr><td align=right> </td><td><a href="../ref/program/errorret.html#2">error</a> returns</td></tr>
-<tr><td align=right> </td><td><a href="../ref/install/file.html#2">/etc/magic</a></td></tr>
-<tr><td align=right> selecting a Queue </td><td><a href="../ref/am_conf/extentsize.html#2">extent</a> size</td></tr>
-<tr><td align=right> Java </td><td><a href="../ref/java/faq.html#2">FAQ</a></td></tr>
-<tr><td align=right> Tcl </td><td><a href="../ref/tcl/faq.html#2">FAQ</a></td></tr>
-<tr><td align=right> configuring without large </td><td><a href="../ref/build_unix/conf.html#4">file</a> support</td></tr>
-<tr><td align=right> </td><td><a href="../ref/install/file.html#3">file</a> utility</td></tr>
-<tr><td align=right> recovery and </td><td><a href="../ref/transapp/filesys.html#2">filesystem</a> operations</td></tr>
-<tr><td align=right> remote </td><td><a href="../ref/env/remote.html#2">filesystems</a></td></tr>
-<tr><td align=right> page </td><td><a href="../ref/am_conf/h_ffactor.html#2">fill</a> factor</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/freebsd.html#2">FreeBSD</a></td></tr>
-<tr><td align=right> Berkeley DB </td><td><a href="../ref/program/scope.html#3">free-threaded</a> handles</td></tr>
-<tr><td align=right> specifying a database </td><td><a href="../ref/am_conf/h_hash.html#2">hash</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/am_conf/h_nelem.html#2">hash</a> table size</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/hpux.html#2">HP-UX</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/install.html#2">installing</a> Berkeley DB for UNIX systems</td></tr>
-<tr><td align=right> </td><td><a href="../ref/program/compatible.html#2">interface</a> compatibility</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/irix.html#2">IRIX</a></td></tr>
-<tr><td align=right> configuring the </td><td><a href="../ref/build_unix/conf.html#10">Java</a> API</td></tr>
-<tr><td align=right> </td><td><a href="../ref/java/compat.html#2">Java</a> compatibility</td></tr>
-<tr><td align=right> </td><td><a href="../ref/java/conf.html#2">Java</a> configuration</td></tr>
-<tr><td align=right> </td><td><a href="../ref/java/faq.html#3">Java</a> FAQ</td></tr>
-<tr><td align=right> logical </td><td><a href="../ref/am/join.html#2">join</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_java/dbt_class.html#3">key/data</a> pairs</td></tr>
-<tr><td align=right> database </td><td><a href="../ref/program/dbsizes.html#2">limits</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/linux.html#2">Linux</a></td></tr>
-<tr><td align=right> changing compile or </td><td><a href="../ref/build_unix/flags.html#3">load</a> options</td></tr>
-<tr><td align=right> utility to </td><td><a href="../utility/db_load.html#3">load</a> text files into databases</td></tr>
-<tr><td align=right> standard </td><td><a href="../ref/lock/stdmode.html#2">lock</a> modes</td></tr>
-<tr><td align=right> page-level </td><td><a href="../ref/lock/page.html#2">locking</a></td></tr>
-<tr><td align=right> two-phase </td><td><a href="../ref/lock/twopl.html#2">locking</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/lock/nondb.html#2">locking</a> and non-Berkeley DB applications</td></tr>
-<tr><td align=right> </td><td><a href="../ref/lock/config.html#2">locking</a> configuration</td></tr>
-<tr><td align=right> </td><td><a href="../ref/lock/am_conv.html#2">locking</a> conventions</td></tr>
-<tr><td align=right> Berkeley DB Concurrent Data Store </td><td><a href="../ref/lock/cam_conv.html#2">locking</a> conventions</td></tr>
-<tr><td align=right> </td><td><a href="../ref/lock/intro.html#2">locking</a> introduction</td></tr>
-<tr><td align=right> sizing the </td><td><a href="../ref/lock/max.html#2">locking</a> subsystem</td></tr>
-<tr><td align=right> </td><td><a href="../ref/lock/notxn.html#2">locking</a> without transactions</td></tr>
-<tr><td align=right> </td><td><a href="../ref/log/limits.html#2">log</a> file limits</td></tr>
-<tr><td align=right> </td><td><a href="../ref/transapp/logfile.html#2">log</a> file removal</td></tr>
-<tr><td align=right> utility to display </td><td><a href="../utility/db_printlog.html#3">log</a> files as text</td></tr>
-<tr><td align=right> </td><td><a href="../ref/log/config.html#2">logging</a> configuration</td></tr>
-<tr><td align=right> </td><td><a href="../ref/log/intro.html#2">logging</a> introduction</td></tr>
-<tr><td align=right> </td><td><a href="../ref/mp/config.html#2">memory</a> pool configuration</td></tr>
-<tr><td align=right> Berkeley DB library </td><td><a href="../ref/program/namespace.html#2">name</a> spaces</td></tr>
-<tr><td align=right> file </td><td><a href="../ref/env/naming.html#2">naming</a></td></tr>
-<tr><td align=right> retrieving Btree records by </td><td><a href="../ref/am_conf/bt_recnum.html#2">number</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/open.html#2">opening</a> a database</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/osf1.html#2">OSF/1</a></td></tr>
-<tr><td align=right> selecting a </td><td><a href="../ref/am_conf/pagesize.html#2">page</a> size</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/partial.html#2">partial</a> record storage and retrieval</td></tr>
-<tr><td align=right></td><td><a href="http://www.sleepycat.com/update/index.html">Patches,</a> Updates and Change logs</td></tr>
-<tr><td align=right> </td><td><a href="../ref/perl/intro.html#2">Perl</a></td></tr>
-<tr><td align=right> Sleepycat Software's Berkeley DB </td><td><a href="../ref/intro/products.html#2">products</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/qnx.html#2">QNX</a></td></tr>
-<tr><td align=right> logical </td><td><a href="../api_java/dbt_class.html#4">record</a> number format</td></tr>
-<tr><td align=right> logical </td><td><a href="../ref/am_conf/logrec.html#2">record</a> numbers</td></tr>
-<tr><td align=right> managing </td><td><a href="../ref/am_conf/recno.html#2">record-based</a> databases</td></tr>
-<tr><td align=right> logically renumbering </td><td><a href="../ref/am_conf/renumber.html#2">records</a></td></tr>
-<tr><td align=right> utility to </td><td><a href="../utility/db_recover.html#3">recover</a> database environments</td></tr>
-<tr><td align=right> Berkeley DB </td><td><a href="../ref/transapp/reclimit.html#2">recoverability</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/get.html#2">retrieving</a> records</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/curget.html#2">retrieving</a> records with a cursor</td></tr>
-<tr><td align=right> </td><td><a href="../ref/rpc/client.html#2">RPC</a> client</td></tr>
-<tr><td align=right> configuring a </td><td><a href="../ref/build_unix/conf.html#11">RPC</a> client/server</td></tr>
-<tr><td align=right> utility to support </td><td><a href="../utility/berkeley_db_svc.html#3">RPC</a> client/server</td></tr>
-<tr><td align=right> </td><td><a href="../ref/rpc/server.html#2">RPC</a> server</td></tr>
-<tr><td align=right> database </td><td><a href="../ref/am/verify.html#3">salvage</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/sco.html#2">SCO</a></td></tr>
-<tr><td align=right> Berkeley DB handle </td><td><a href="../ref/program/scope.html#2">scope</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/env/security.html#2">security</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/sendmail/intro.html#2">Sendmail</a></td></tr>
-<tr><td align=right> configuring </td><td><a href="../ref/build_unix/conf.html#8">shared</a> libraries</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/shlib.html#2">shared</a> libraries</td></tr>
-<tr><td align=right> application </td><td><a href="../ref/program/appsignals.html#2">signal</a> handling</td></tr>
-<tr><td align=right></td><td><a href="http://www.sleepycat.com/">Sleepycat</a> Software</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/solaris.html#2">Solaris</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/distrib/layout.html#2">source</a> code layout</td></tr>
-<tr><td align=right> cursor </td><td><a href="../ref/am/stability.html#3">stability</a></td></tr>
-<tr><td align=right> database </td><td><a href="../ref/am/stat.html#2">statistics</a></td></tr>
-<tr><td align=right> utility to display database and environment </td><td><a href="../utility/db_stat.html#3">statistics</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/put.html#2">storing</a> records</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/curput.html#2">storing</a> records with a cursor</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/sunos.html#2">SunOS</a></td></tr>
-<tr><td align=right> loading Berkeley DB with </td><td><a href="../ref/tcl/intro.html#2">Tcl</a></td></tr>
-<tr><td align=right> using Berkeley DB with </td><td><a href="../ref/tcl/using.html#2">Tcl</a></td></tr>
-<tr><td align=right> configuring the </td><td><a href="../ref/build_unix/conf.html#12">Tcl</a> API</td></tr>
-<tr><td align=right> </td><td><a href="../ref/tcl/program.html#2">Tcl</a> API programming notes</td></tr>
-<tr><td align=right> </td><td><a href="../ref/tcl/faq.html#3">Tcl</a> FAQ</td></tr>
-<tr><td align=right> configuring the </td><td><a href="../ref/build_unix/conf.html#13">test</a> suite</td></tr>
-<tr><td align=right> running the </td><td><a href="../ref/test/run.html#2">test</a> suite</td></tr>
-<tr><td align=right> running the </td><td><a href="../ref/build_unix/test.html#2">test</a> suite under UNIX</td></tr>
-<tr><td align=right> running the </td><td><a href="../ref/build_win/test.html#2">test</a> suite under Windows</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am_conf/re_source.html#2">text</a> backing files</td></tr>
-<tr><td align=right> loading </td><td><a href="../ref/dumpload/text.html#2">text</a> into databases</td></tr>
-<tr><td align=right> dumping/loading </td><td><a href="../ref/dumpload/utility.html#2">text</a> to/from databases</td></tr>
-<tr><td align=right> building </td><td><a href="../ref/program/mt.html#2">threaded</a> applications</td></tr>
-<tr><td align=right> </td><td><a href="../ref/txn/config.html#2">transaction</a> configuration</td></tr>
-<tr><td align=right> </td><td><a href="../ref/txn/limits.html#2">transaction</a> limits</td></tr>
-<tr><td align=right> administering </td><td><a href="../ref/transapp/admin.html#2">transaction</a> protected applications</td></tr>
-<tr><td align=right> archival in </td><td><a href="../ref/transapp/archival.html#2">transaction</a> protected applications</td></tr>
-<tr><td align=right> checkpoints in </td><td><a href="../ref/transapp/checkpoint.html#2">transaction</a> protected applications</td></tr>
-<tr><td align=right> deadlock detection in </td><td><a href="../ref/transapp/deadlock.html#2">transaction</a> protected applications</td></tr>
-<tr><td align=right> recovery in </td><td><a href="../ref/transapp/recovery.html#2">transaction</a> protected applications</td></tr>
-<tr><td align=right> </td><td><a href="../ref/transapp/throughput.html#2">transaction</a> throughput</td></tr>
-<tr><td align=right> </td><td><a href="../ref/transapp/intro.html#2">Transactional</a> Data Store</td></tr>
-<tr><td align=right> Berkeley DB and </td><td><a href="../ref/txn/intro.html#2">transactions</a></td></tr>
-<tr><td align=right> nested </td><td><a href="../ref/txn/nested.html#2">transactions</a></td></tr>
-<tr><td align=right> configuring Berkeley DB with the </td><td><a href="../ref/xa/config.html#2">Tuxedo</a> System</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/ultrix.html#2">Ultrix</a></td></tr>
-<tr><td align=right> building for </td><td><a href="../ref/build_unix/notes.html#3">UNIX</a> FAQ</td></tr>
-<tr><td align=right> configuring Berkeley DB for </td><td><a href="../ref/build_unix/conf.html#3">UNIX</a> systems</td></tr>
-<tr><td align=right>Patches, </td><td><a href="http://www.sleepycat.com/update/index.html">Updates</a> and Change logs</td></tr>
-<tr><td align=right> utility to </td><td><a href="../utility/db_upgrade.html#4">upgrade</a> database files</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/upgrade.html#2">upgrading</a> databases</td></tr>
-<tr><td align=right> </td><td><a href="../ref/arch/utilities.html#2">utilities</a></td></tr>
-<tr><td align=right> database </td><td><a href="../ref/am/verify.html#2">verification</a></td></tr>
-<tr><td align=right> utility to </td><td><a href="../utility/db_verify.html#4">verify</a> database files</td></tr>
-<tr><td align=right> building for </td><td><a href="../ref/build_vxworks/faq.html#3">VxWorks</a> FAQ</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_vxworks/notes.html#2">VxWorks</a> notes</td></tr>
-<tr><td align=right> running the test suite under </td><td><a href="../ref/build_win/test.html#3">Windows</a></td></tr>
-<tr><td align=right> building for </td><td><a href="../ref/build_win/faq.html#3">Windows</a> FAQ</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_win/notes.html#2">Windows</a> notes</td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--with-tcl=DIR">--with-tcl=DIR</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/xa/intro.html#2">XA</a> Resource Manager</td></tr>
-</table>
-</center>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/lock_class.html b/bdb/docs/api_java/lock_class.html
deleted file mode 100644
index 6705e95bdfd..00000000000
--- a/bdb/docs/api_java/lock_class.html
+++ /dev/null
@@ -1,54 +0,0 @@
-<!--$Id: lock_class.so,v 10.13 1999/12/20 08:52:33 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbLock</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbLock</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public class DbLock extends Object { ... }
-</pre></h3>
-<h1>Description</h1>
-<p>The <a href="../api_java/dbenv_class.html">DbEnv</a> lock methods and the DbLock class are used
-to provide general-purpose locking. While designed to work with the
-other Db classes, they are also useful for more general locking
-purposes. Locks can be shared between processes.
-<p>In most cases, when multiple threads or processes are using locking, the
-deadlock detector, <a href="../utility/db_deadlock.html">db_deadlock</a> should be run.
-<h3>Classes</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>, <a href="../api_java/lock_class.html">DbLock</a>
-<h1>See Also</h1>
-<a href="../api_java/env_set_lk_conflicts.html">DbEnv.set_lk_conflicts</a>,
-<a href="../api_java/env_set_lk_detect.html">DbEnv.set_lk_detect</a>,
-<a href="../api_java/env_set_lk_max_locks.html">DbEnv.set_lk_max_locks</a>,
-<a href="../api_java/env_set_lk_max_lockers.html">DbEnv.set_lk_max_lockers</a>,
-<a href="../api_java/env_set_lk_max_objects.html">DbEnv.set_lk_max_objects</a>,
-<a href="../api_java/env_set_lk_max.html">DbEnv.set_lk_max</a>,
-<a href="../api_java/lock_detect.html">DbEnv.lock_detect</a>,
-<a href="../api_java/lock_get.html">DbEnv.lock_get</a>,
-<a href="../api_java/lock_id.html">DbEnv.lock_id</a>,
-<a href="../api_java/lock_put.html">DbLock.put</a>
-and
-<a href="../api_java/lock_stat.html">DbEnv.lock_stat</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/lock_detect.html b/bdb/docs/api_java/lock_detect.html
deleted file mode 100644
index 6f453ddb8e6..00000000000
--- a/bdb/docs/api_java/lock_detect.html
+++ /dev/null
@@ -1,69 +0,0 @@
-<!--$Id: lock_detect.so,v 10.26 2000/03/17 01:53:59 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.lock_detect</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.lock_detect</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public int lock_detect(int flags, int atype)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv.lock_detect method runs one iteration of the deadlock detector.
-The deadlock detector traverses the lock table, and for each deadlock
-it finds, marks one of the participating transactions for abort.
-<p>The <b>flags</b> value must be set to 0 or by bitwise inclusively <b>OR</b>'ing together one or more
-of the following values.
-<p><dl compact>
-<p><dt><a name="Db.DB_LOCK_CONFLICT">Db.DB_LOCK_CONFLICT</a><dd>Only run the deadlock detector if a lock conflict has occurred since
-the last time that the deadlock detector was run.
-</dl>
-<p>The <b>atype</b> parameter specifies which transaction to abort in the
-case of deadlock. It must be set to one of possible arguments listed for
-the <a href="../api_java/env_set_lk_detect.html">DbEnv.set_lk_detect</a> interface.
-<p>The DbEnv.lock_detect method returns the number of transactions aborted.
-<p>The DbEnv.lock_detect method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p>The DbEnv.lock_detect method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbEnv.lock_detect method may fail and throw
-a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls
-will fail in the same way.
-<h3>Classes</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>, <a href="../api_java/lock_class.html">DbLock</a>
-<h1>See Also</h1>
-<a href="../api_java/env_set_lk_conflicts.html">DbEnv.set_lk_conflicts</a>,
-<a href="../api_java/env_set_lk_detect.html">DbEnv.set_lk_detect</a>,
-<a href="../api_java/env_set_lk_max_locks.html">DbEnv.set_lk_max_locks</a>,
-<a href="../api_java/env_set_lk_max_lockers.html">DbEnv.set_lk_max_lockers</a>,
-<a href="../api_java/env_set_lk_max_objects.html">DbEnv.set_lk_max_objects</a>,
-<a href="../api_java/env_set_lk_max.html">DbEnv.set_lk_max</a>,
-<a href="../api_java/lock_detect.html">DbEnv.lock_detect</a>,
-<a href="../api_java/lock_get.html">DbEnv.lock_get</a>,
-<a href="../api_java/lock_id.html">DbEnv.lock_id</a>,
-<a href="../api_java/lock_put.html">DbLock.put</a>
-and
-<a href="../api_java/lock_stat.html">DbEnv.lock_stat</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/lock_get.html b/bdb/docs/api_java/lock_get.html
deleted file mode 100644
index 42604bc46d9..00000000000
--- a/bdb/docs/api_java/lock_get.html
+++ /dev/null
@@ -1,92 +0,0 @@
-<!--$Id: lock_get.so,v 10.28 2000/04/24 16:33:54 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.lock_get</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.lock_get</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public DbLock lock_get(int locker,
- int flags, Dbt obj, int lock_mode)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv.lock_get method acquires a lock from the lock table, returning
-information about it in
-a DbLock object.
-<p>The <b>locker</b> argument specified to DbEnv.lock_get is an unsigned
-32-bit integer quantity. It represents the entity requesting or releasing
-the lock.
-<p>The <b>flags</b> value must be set to 0 or the following value:
-<p><dl compact>
-<p><dt><a name="Db.DB_LOCK_NOWAIT">Db.DB_LOCK_NOWAIT</a><dd>If a lock cannot be granted because the requested lock conflicts with an
-existing lock, return immediately instead of waiting for the lock to
-become available.
-</dl>
-<p>The <b>obj</b> argument is an untyped byte string that specifies the
-object to be locked or released.
-<p>The <b>mode</b> argument is an index into the environment's lock conflict
-array. See <a href="../api_java/env_set_lk_conflicts.html">DbEnv.set_lk_conflicts</a> and
-<a href="../ref/lock/stdmode.html">Standard Lock Modes</a>
-for a description of that array.
-<p>The DbEnv.lock_get method may
-throw an exception encapsulating
-one of the following values:
-<p><dl compact>
-<p><dt><a name="Db.DB_LOCK_NOTGRANTED">Db.DB_LOCK_NOTGRANTED</a><dd>A lock was requested that could not be immediately granted and the
-<b>flags</b> parameter was set to DB_LOCK_NOWAIT.
-</dl>
-<p>Otherwise, the DbEnv.lock_get method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p>The DbEnv.lock_get method may fail and throw an exception encapsulating a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<p><dl compact>
-<p><dt>ENOMEM<dd>The maximum number of locks has been reached.
-</dl>
-<p>If the operation was selected to resolve a deadlock, the
-DbEnv.lock_get method will fail and
-throw a <a href="../api_java/deadlock_class.html">DbDeadlockException</a> exception.
-<p>The DbEnv.lock_get method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbEnv.lock_get method may fail and throw
-a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls
-will fail in the same way.
-<h3>Classes</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>, <a href="../api_java/lock_class.html">DbLock</a>
-<h1>See Also</h1>
-<a href="../api_java/env_set_lk_conflicts.html">DbEnv.set_lk_conflicts</a>,
-<a href="../api_java/env_set_lk_detect.html">DbEnv.set_lk_detect</a>,
-<a href="../api_java/env_set_lk_max_locks.html">DbEnv.set_lk_max_locks</a>,
-<a href="../api_java/env_set_lk_max_lockers.html">DbEnv.set_lk_max_lockers</a>,
-<a href="../api_java/env_set_lk_max_objects.html">DbEnv.set_lk_max_objects</a>,
-<a href="../api_java/env_set_lk_max.html">DbEnv.set_lk_max</a>,
-<a href="../api_java/lock_detect.html">DbEnv.lock_detect</a>,
-<a href="../api_java/lock_get.html">DbEnv.lock_get</a>,
-<a href="../api_java/lock_id.html">DbEnv.lock_id</a>,
-<a href="../api_java/lock_put.html">DbLock.put</a>
-and
-<a href="../api_java/lock_stat.html">DbEnv.lock_stat</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/lock_id.html b/bdb/docs/api_java/lock_id.html
deleted file mode 100644
index 2fa59317fe9..00000000000
--- a/bdb/docs/api_java/lock_id.html
+++ /dev/null
@@ -1,59 +0,0 @@
-<!--$Id: lock_id.so,v 10.19 2000/03/01 21:41:29 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.lock_id</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.lock_id</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public int lock_id()
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv.lock_id method
-returns a locker ID, which is guaranteed to be unique in the specified lock
-table.
-<p>The DbEnv.lock_id method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p>The DbEnv.lock_id method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbEnv.lock_id method may fail and throw
-a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls
-will fail in the same way.
-<h3>Classes</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>, <a href="../api_java/lock_class.html">DbLock</a>
-<h1>See Also</h1>
-<a href="../api_java/env_set_lk_conflicts.html">DbEnv.set_lk_conflicts</a>,
-<a href="../api_java/env_set_lk_detect.html">DbEnv.set_lk_detect</a>,
-<a href="../api_java/env_set_lk_max_locks.html">DbEnv.set_lk_max_locks</a>,
-<a href="../api_java/env_set_lk_max_lockers.html">DbEnv.set_lk_max_lockers</a>,
-<a href="../api_java/env_set_lk_max_objects.html">DbEnv.set_lk_max_objects</a>,
-<a href="../api_java/env_set_lk_max.html">DbEnv.set_lk_max</a>,
-<a href="../api_java/lock_detect.html">DbEnv.lock_detect</a>,
-<a href="../api_java/lock_get.html">DbEnv.lock_get</a>,
-<a href="../api_java/lock_id.html">DbEnv.lock_id</a>,
-<a href="../api_java/lock_put.html">DbLock.put</a>
-and
-<a href="../api_java/lock_stat.html">DbEnv.lock_stat</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/lock_put.html b/bdb/docs/api_java/lock_put.html
deleted file mode 100644
index fe4eacc28af..00000000000
--- a/bdb/docs/api_java/lock_put.html
+++ /dev/null
@@ -1,61 +0,0 @@
-<!--$Id: lock_put.so,v 10.21 2000/03/01 21:41:29 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbLock.put</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbLock.put</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public native void put(DbEnv env)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>The DbLock.put method releases <b>lock</b> from the lock table.
-<p>The DbLock.put method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p>The DbLock.put method may fail and throw an exception encapsulating a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<p>The DbLock.put method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbLock.put method may fail and throw
-a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls
-will fail in the same way.
-<h3>Classes</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>, <a href="../api_java/lock_class.html">DbLock</a>
-<h1>See Also</h1>
-<a href="../api_java/env_set_lk_conflicts.html">DbEnv.set_lk_conflicts</a>,
-<a href="../api_java/env_set_lk_detect.html">DbEnv.set_lk_detect</a>,
-<a href="../api_java/env_set_lk_max_locks.html">DbEnv.set_lk_max_locks</a>,
-<a href="../api_java/env_set_lk_max_lockers.html">DbEnv.set_lk_max_lockers</a>,
-<a href="../api_java/env_set_lk_max_objects.html">DbEnv.set_lk_max_objects</a>,
-<a href="../api_java/env_set_lk_max.html">DbEnv.set_lk_max</a>,
-<a href="../api_java/lock_detect.html">DbEnv.lock_detect</a>,
-<a href="../api_java/lock_get.html">DbEnv.lock_get</a>,
-<a href="../api_java/lock_id.html">DbEnv.lock_id</a>,
-<a href="../api_java/lock_put.html">DbLock.put</a>
-and
-<a href="../api_java/lock_stat.html">DbEnv.lock_stat</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/lock_stat.html b/bdb/docs/api_java/lock_stat.html
deleted file mode 100644
index 00c3703f528..00000000000
--- a/bdb/docs/api_java/lock_stat.html
+++ /dev/null
@@ -1,94 +0,0 @@
-<!--$Id: lock_stat.so,v 10.30 2000/12/08 20:43:15 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.lock_stat</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.lock_stat</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public DbLockStat lock_stat()
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv.lock_stat method
-creates a DbLockStat object encapsulating a statistical structure.
-The lock region statistics are stored in a DbLockStat object.
-The following data fields are available from the DbLockStat object:
-<p>Statistical structures are created in allocated memory. If <b>db_malloc</b> is non-NULL, it
-is called to allocate the memory, otherwise, the library function
-<b>malloc</b>(3) is used. The function <b>db_malloc</b> must match
-the calling conventions of the <b>malloc</b>(3) library routine.
-Regardless, the caller is responsible for deallocating the returned
-memory. To deallocate returned memory, free the returned memory
-reference, references inside the returned memory do not need to be
-individually freed.
-<p>The lock region statistics are stored in a structure of type
-DB_LOCK_STAT. The following DB_LOCK_STAT fields will be filled in:
-<p><dl compact>
-<dt>public int st_lastid;<dd>The last allocated lock ID.
-<dt>public int st_nmodes;<dd>The number of lock modes.
-<dt>public int st_maxlocks;<dd>The maximum number of locks possible.
-<dt>public int st_maxlockers;<dd>The maximum number of lockers possible.
-<dt>public int st_maxobjects;<dd>The maximum number of objects possible.
-<dt>public int st_nlocks;<dd>The number of current locks.
-<dt>public int st_maxnlocks;<dd>The maximum number of locks at any one time.
-<dt>public int st_nlockers;<dd>The number of current lockers.
-<dt>public int st_maxnlockers;<dd>The maximum number of lockers at any one time.
-<dt>public int st_nobjects;<dd>The number of current objects.
-<dt>public int st_maxnobjects;<dd>The maximum number of objects at any one time.
-<dt>public int st_nrequests;<dd>The total number of locks requested.
-<dt>public int st_nreleases;<dd>The total number of locks released.
-<dt>public int st_nnowaits;<dd>The total number of lock requests that failed because
-<a href="../api_java/lock_vec.html#DB_LOCK_NOWAIT">Db.DB_LOCK_NOWAIT</a> was set.
-<dt>public int st_nconflicts;<dd>The total number of locks not immediately available due to conflicts.
-<dt>public int st_ndeadlocks;<dd>The number of deadlocks detected.
-<dt>public int st_regsize;<dd>The size of the region.
-<dt>public int st_region_wait;<dd>The number of times that a thread of control was forced to wait before
-obtaining the region lock.
-<dt>public int st_region_nowait;<dd>The number of times that a thread of control was able to obtain
-the region lock without waiting.
-</dl>
-<p>The DbEnv.lock_stat method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p>The DbEnv.lock_stat method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbEnv.lock_stat method may fail and throw
-a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls
-will fail in the same way.
-<h3>Classes</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>, <a href="../api_java/lock_class.html">DbLock</a>
-<h1>See Also</h1>
-<a href="../api_java/env_set_lk_conflicts.html">DbEnv.set_lk_conflicts</a>,
-<a href="../api_java/env_set_lk_detect.html">DbEnv.set_lk_detect</a>,
-<a href="../api_java/env_set_lk_max_locks.html">DbEnv.set_lk_max_locks</a>,
-<a href="../api_java/env_set_lk_max_lockers.html">DbEnv.set_lk_max_lockers</a>,
-<a href="../api_java/env_set_lk_max_objects.html">DbEnv.set_lk_max_objects</a>,
-<a href="../api_java/env_set_lk_max.html">DbEnv.set_lk_max</a>,
-<a href="../api_java/lock_detect.html">DbEnv.lock_detect</a>,
-<a href="../api_java/lock_get.html">DbEnv.lock_get</a>,
-<a href="../api_java/lock_id.html">DbEnv.lock_id</a>,
-<a href="../api_java/lock_put.html">DbLock.put</a>
-and
-<a href="../api_java/lock_stat.html">DbEnv.lock_stat</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/lock_vec.html b/bdb/docs/api_java/lock_vec.html
deleted file mode 100644
index 233e036a370..00000000000
--- a/bdb/docs/api_java/lock_vec.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!--$Id: lock_vec.so,v 10.31 2000/12/04 18:05:39 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.lock_vec</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.lock_vec</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-</pre></h3>
-<h1>Description</h1>
-<p>A DbEnv.lock_vec method is not available in the Berkeley DB
-Java API.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/log_archive.html b/bdb/docs/api_java/log_archive.html
deleted file mode 100644
index a842286585d..00000000000
--- a/bdb/docs/api_java/log_archive.html
+++ /dev/null
@@ -1,92 +0,0 @@
-<!--$Id: log_archive.so,v 10.26 2000/05/25 13:47:07 dda Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.log_archive</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.log_archive</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public String[] log_archive(int flags)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv.log_archive method
-returns an array of log or database file names.
-<p>By default, DbEnv.log_archive returns the names of all of the log files
-that are no longer in use (e.g., no longer involved in active transactions),
-and that may safely be archived for catastrophic recovery and then removed
-from the system. If there were no file names to return, the memory location
-referenced by <b>listp</b> will be set to null.
-<p>The <b>flags</b> value must be set to 0 or by bitwise inclusively <b>OR</b>'ing together one or more
-of the following values.
-<p><dl compact>
-<p><dt><a name="Db.DB_ARCH_ABS">Db.DB_ARCH_ABS</a><dd>All pathnames are returned as absolute pathnames,
-instead of relative to the database home directory.
-<p><dt><a name="Db.DB_ARCH_DATA">Db.DB_ARCH_DATA</a><dd>Return the database files that need to be archived in order to recover
-the database from catastrophic failure. If any of the database files
-have not been accessed during the lifetime of the current log files,
-DbEnv.log_archive will not include them in this list. It is also
-possible that some of the files referenced in the log have since been
-deleted from the system.
-<p><dt><a name="Db.DB_ARCH_LOG">Db.DB_ARCH_LOG</a><dd>Return all the log file names regardless of whether or not they are in
-use.
-</dl>
-<p>The Db.DB_ARCH_DATA and Db.DB_ARCH_LOG flags are mutually
-exclusive.
-<p>See the <a href="../utility/db_archive.html">db_archive</a> manual page for more information on database
-archival procedures.
-<p>The DbEnv.log_archive method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Bugs</h1>
-<p>In a threaded application (i.e., one where the environment was created
-with the DB_THREAD flag specified), calling DbEnv.log_archive with the
-DB_ARCH_DATA flag will fail, returning EINVAL. To work around this
-problem, re-open the log explicitly without specifying DB_THREAD. This
-restriction is expected to be removed in a future version of Berkeley DB.
-<h1>Errors</h1>
-<p>The DbEnv.log_archive method may fail and throw an exception encapsulating a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>The log was corrupted.
-</dl>
-<p>The DbEnv.log_archive method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbEnv.log_archive method may fail and throw
-a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls
-will fail in the same way.
-<h3>Class</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_java/env_set_lg_bsize.html">DbEnv.set_lg_bsize</a>,
-<a href="../api_java/env_set_lg_max.html">DbEnv.set_lg_max</a>,
-<a href="../api_java/log_archive.html">DbEnv.log_archive</a>,
-<a href="../api_java/log_compare.html">DbEnv.log_compare</a>,
-<a href="../api_java/log_file.html">DbEnv.log_file</a>,
-<a href="../api_java/log_flush.html">DbEnv.log_flush</a>,
-<a href="../api_java/log_get.html">DbEnv.log_get</a>,
-<a href="../api_java/log_put.html">DbEnv.log_put</a>,
-<a href="../api_java/log_register.html">DbEnv.log_register</a>,
-<a href="../api_java/log_stat.html">DbEnv.log_stat</a>
-and
-<a href="../api_java/log_unregister.html">DbEnv.log_unregister</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/log_compare.html b/bdb/docs/api_java/log_compare.html
deleted file mode 100644
index aba583203e1..00000000000
--- a/bdb/docs/api_java/log_compare.html
+++ /dev/null
@@ -1,52 +0,0 @@
-<!--$Id: log_compare.so,v 10.12 1999/12/20 08:52:30 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.log_compare</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.log_compare</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public static int log_compare(DbLsn lsn0, DbLsn lsn1);
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv.log_compare method allows the caller to compare two
-<a href="../api_java/lsn_class.html">DbLsn</a> objects,
-returning 0 if they are equal, 1 if <b>lsn0</b> is greater than
-<b>lsn1</b>, and -1 if <b>lsn0</b> is less than <b>lsn1</b>.
-<h3>Class</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_java/env_set_lg_bsize.html">DbEnv.set_lg_bsize</a>,
-<a href="../api_java/env_set_lg_max.html">DbEnv.set_lg_max</a>,
-<a href="../api_java/log_archive.html">DbEnv.log_archive</a>,
-<a href="../api_java/log_compare.html">DbEnv.log_compare</a>,
-<a href="../api_java/log_file.html">DbEnv.log_file</a>,
-<a href="../api_java/log_flush.html">DbEnv.log_flush</a>,
-<a href="../api_java/log_get.html">DbEnv.log_get</a>,
-<a href="../api_java/log_put.html">DbEnv.log_put</a>,
-<a href="../api_java/log_register.html">DbEnv.log_register</a>,
-<a href="../api_java/log_stat.html">DbEnv.log_stat</a>
-and
-<a href="../api_java/log_unregister.html">DbEnv.log_unregister</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/log_file.html b/bdb/docs/api_java/log_file.html
deleted file mode 100644
index e85fa46df14..00000000000
--- a/bdb/docs/api_java/log_file.html
+++ /dev/null
@@ -1,77 +0,0 @@
-<!--$Id: log_file.so,v 10.18 2000/03/01 21:41:29 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.log_file</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.log_file</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public String log_file(DbLsn lsn)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv.log_file method maps
-<a href="../api_java/lsn_class.html">DbLsn</a> objects
-to file names,
-returning the name of the file containing the record named by <b>lsn</b>.
-<p>The <b>len</b> argument is the length of the <b>namep</b> buffer in bytes.
-If <b>namep</b> is too short to hold the file name, DbEnv.log_file will
-return ENOMEM.
-(Log file names are normally quite short, on the order of 10 characters.)
-<p>This mapping of
-<a href="../api_java/lsn_class.html">DbLsn</a> objects
-to files is needed for database administration. For example, a
-transaction manager typically records the earliest
-<a href="../api_java/lsn_class.html">DbLsn</a>
-needed for restart, and the database administrator may want to archive
-log files to tape when they contain only
-<a href="../api_java/lsn_class.html">DbLsn</a>
-entries before the earliest one needed for restart.
-<p>The DbEnv.log_file method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p>The DbEnv.log_file method may fail and throw an exception encapsulating a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>ENOMEM<dd>The supplied buffer was too small to hold the log file name.
-</dl>
-<p>The DbEnv.log_file method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbEnv.log_file method may fail and throw
-a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls
-will fail in the same way.
-<h3>Class</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_java/env_set_lg_bsize.html">DbEnv.set_lg_bsize</a>,
-<a href="../api_java/env_set_lg_max.html">DbEnv.set_lg_max</a>,
-<a href="../api_java/log_archive.html">DbEnv.log_archive</a>,
-<a href="../api_java/log_compare.html">DbEnv.log_compare</a>,
-<a href="../api_java/log_file.html">DbEnv.log_file</a>,
-<a href="../api_java/log_flush.html">DbEnv.log_flush</a>,
-<a href="../api_java/log_get.html">DbEnv.log_get</a>,
-<a href="../api_java/log_put.html">DbEnv.log_put</a>,
-<a href="../api_java/log_register.html">DbEnv.log_register</a>,
-<a href="../api_java/log_stat.html">DbEnv.log_stat</a>
-and
-<a href="../api_java/log_unregister.html">DbEnv.log_unregister</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/log_flush.html b/bdb/docs/api_java/log_flush.html
deleted file mode 100644
index 4396d21f7cb..00000000000
--- a/bdb/docs/api_java/log_flush.html
+++ /dev/null
@@ -1,65 +0,0 @@
-<!--$Id: log_flush.so,v 10.18 2000/03/01 21:41:30 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.log_flush</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.log_flush</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public void log_flush(DbLsn lsn)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv.log_flush method guarantees that all log records whose
-<a href="../api_java/lsn_class.html">DbLsn</a> values
-are less than or equal to the <b>lsn</b> argument have been
-written to disk. If <b>lsn</b> is null, all records in the
-log are flushed.
-<p>The DbEnv.log_flush method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p>The DbEnv.log_flush method may fail and throw an exception encapsulating a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<p>The DbEnv.log_flush method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbEnv.log_flush method may fail and throw
-a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls
-will fail in the same way.
-<h3>Class</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_java/env_set_lg_bsize.html">DbEnv.set_lg_bsize</a>,
-<a href="../api_java/env_set_lg_max.html">DbEnv.set_lg_max</a>,
-<a href="../api_java/log_archive.html">DbEnv.log_archive</a>,
-<a href="../api_java/log_compare.html">DbEnv.log_compare</a>,
-<a href="../api_java/log_file.html">DbEnv.log_file</a>,
-<a href="../api_java/log_flush.html">DbEnv.log_flush</a>,
-<a href="../api_java/log_get.html">DbEnv.log_get</a>,
-<a href="../api_java/log_put.html">DbEnv.log_put</a>,
-<a href="../api_java/log_register.html">DbEnv.log_register</a>,
-<a href="../api_java/log_stat.html">DbEnv.log_stat</a>
-and
-<a href="../api_java/log_unregister.html">DbEnv.log_unregister</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/log_get.html b/bdb/docs/api_java/log_get.html
deleted file mode 100644
index 94eed013408..00000000000
--- a/bdb/docs/api_java/log_get.html
+++ /dev/null
@@ -1,117 +0,0 @@
-<!--$Id: log_get.so,v 10.22 2000/03/17 01:53:59 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.log_get</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.log_get</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public void log_get(DbLsn lsn, Dbt data, int flags)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv.log_get method implements a cursor inside of the log,
-retrieving records from the log according to the <b>lsn</b> and
-<b>flags</b> arguments.
-<p>The data field of the <b>data</b> structure is set to the record
-retrieved and the size field indicates the number of bytes in the record.
-See <a href="../api_java/dbt_class.html">Dbt</a> for a description of other fields in the <b>data</b>
-structure. When multiple threads are using the returned log handle
-concurrently, one of the <a href="../api_java/dbt_class.html#DB_DBT_MALLOC">Db.DB_DBT_MALLOC</a>, <a href="../api_java/dbt_class.html#DB_DBT_REALLOC">Db.DB_DBT_REALLOC</a> or
-<a href="../api_java/dbt_class.html#DB_DBT_USERMEM">Db.DB_DBT_USERMEM</a> flags must be specified for any <a href="../api_java/dbt_class.html">Dbt</a> used
-for data retrieval.
-<p>The <b>flags</b> argument must be set to exactly one of the following values:
-<p><dl compact>
-<p><dt><a name="Db.DB_CHECKPOINT">Db.DB_CHECKPOINT</a><dd>The last record written with the DB_CHECKPOINT flag specified to the
-<a href="../api_java/log_put.html">DbEnv.log_put</a> method is returned in the <b>data</b> argument. The
-<b>lsn</b> argument is overwritten with the <a href="../api_java/lsn_class.html">DbLsn</a> of the record
-returned. If no record has been previously written with the DB_CHECKPOINT
-flag specified, the first record in the log is returned.
-<p>If the log is empty, the DbEnv.log_get method will return <a href="../ref/program/errorret.html#DB_NOTFOUND">Db.DB_NOTFOUND</a>.
-<p><dt><a name="Db.DB_FIRST">Db.DB_FIRST</a><dd>The first record from any of the log files found in the log directory
-is returned in the <b>data</b> argument.
-The <b>lsn</b> argument is overwritten with the <a href="../api_java/lsn_class.html">DbLsn</a> of the
-record returned.
-<p>If the log is empty, the DbEnv.log_get method will return <a href="../ref/program/errorret.html#DB_NOTFOUND">Db.DB_NOTFOUND</a>.
-<p><dt><a name="Db.DB_LAST">Db.DB_LAST</a><dd>The last record in the log is returned in the <b>data</b> argument.
-The <b>lsn</b> argument is overwritten with the <a href="../api_java/lsn_class.html">DbLsn</a> of the
-record returned.
-<p>If the log is empty, the DbEnv.log_get method will return <a href="../ref/program/errorret.html#DB_NOTFOUND">Db.DB_NOTFOUND</a>.
-<p><dt><a name="Db.DB_NEXT">Db.DB_NEXT</a><dd>The current log position is advanced to the next record in the log and that
-record is returned in the <b>data</b> argument.
-The <b>lsn</b> argument is overwritten with the <a href="../api_java/lsn_class.html">DbLsn</a> of the
-record returned.
-<p>If the pointer has not been initialized via DB_FIRST, DB_LAST, DB_SET,
-DB_NEXT, or DB_PREV, DbEnv.log_get will return the first record in the log.
-If the last log record has already been returned or the log is empty, the
-DbEnv.log_get method will return <a href="../ref/program/errorret.html#DB_NOTFOUND">Db.DB_NOTFOUND</a>.
-<p>If the log was opened with the DB_THREAD flag set, calls to
-DbEnv.log_get with the DB_NEXT flag set will return EINVAL.
-<p><dt><a name="Db.DB_PREV">Db.DB_PREV</a><dd>The current log position is moved to the previous record in the log and that
-record is returned in the <b>data</b> argument.
-The <b>lsn</b> argument is overwritten with the <a href="../api_java/lsn_class.html">DbLsn</a> of the
-record returned.
-<p>If the pointer has not been initialized via DB_FIRST, DB_LAST, DB_SET,
-DB_NEXT, or DB_PREV,
-DbEnv.log_get will return the last record in the log.
-If the first log record has already been returned or the log is empty, the
-DbEnv.log_get method will return <a href="../ref/program/errorret.html#DB_NOTFOUND">Db.DB_NOTFOUND</a>.
-<p>If the log was opened with the DB_THREAD flag set, calls to
-DbEnv.log_get with the DB_PREV flag set will return EINVAL.
-<p><dt><a name="Db.DB_CURRENT">Db.DB_CURRENT</a><dd>Return the log record currently referenced by the log.
-<p>If the log pointer has not been initialized via DB_FIRST, DB_LAST, DB_SET,
-DB_NEXT, or DB_PREV, or if the log was opened with the DB_THREAD flag set,
-DbEnv.log_get will return EINVAL.
-<p><dt><a name="Db.DB_SET">Db.DB_SET</a><dd>Retrieve the record specified by the <b>lsn</b> argument. If the
-specified <a href="../api_java/lsn_class.html">DbLsn</a> is invalid (e.g., does not appear in the log)
-DbEnv.log_get will return EINVAL.
-</dl>
-<p>Otherwise, the DbEnv.log_get method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p>The DbEnv.log_get method may fail and throw an exception encapsulating a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>The DB_FIRST flag was specified and no log files were found.
-</dl>
-<p>The DbEnv.log_get method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbEnv.log_get method may fail and throw
-a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls
-will fail in the same way.
-<h3>Class</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_java/env_set_lg_bsize.html">DbEnv.set_lg_bsize</a>,
-<a href="../api_java/env_set_lg_max.html">DbEnv.set_lg_max</a>,
-<a href="../api_java/log_archive.html">DbEnv.log_archive</a>,
-<a href="../api_java/log_compare.html">DbEnv.log_compare</a>,
-<a href="../api_java/log_file.html">DbEnv.log_file</a>,
-<a href="../api_java/log_flush.html">DbEnv.log_flush</a>,
-<a href="../api_java/log_get.html">DbEnv.log_get</a>,
-<a href="../api_java/log_put.html">DbEnv.log_put</a>,
-<a href="../api_java/log_register.html">DbEnv.log_register</a>,
-<a href="../api_java/log_stat.html">DbEnv.log_stat</a>
-and
-<a href="../api_java/log_unregister.html">DbEnv.log_unregister</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/log_put.html b/bdb/docs/api_java/log_put.html
deleted file mode 100644
index 03749f20d66..00000000000
--- a/bdb/docs/api_java/log_put.html
+++ /dev/null
@@ -1,83 +0,0 @@
-<!--$Id: log_put.so,v 10.21 2000/03/17 01:53:59 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.log_put</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.log_put</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public void log_put(DbLsn lsn, Dbt data, int flags)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv.log_put method appends records to the log. The <a href="../api_java/lsn_class.html">DbLsn</a> of
-the put record is returned in the <b>lsn</b> argument. The <b>flags</b>
-argument may be set to one of the following values:
-<p><dl compact>
-<p><dt><a name="Db.DB_CHECKPOINT">Db.DB_CHECKPOINT</a><dd>The log should write a checkpoint record, recording any information
-necessary to make the log structures recoverable after a crash.
-<p><dt><a name="Db.DB_CURLSN">Db.DB_CURLSN</a><dd>The <a href="../api_java/lsn_class.html">DbLsn</a> of the next record to be put is returned in the
-<b>lsn</b> argument.
-<p><dt><a name="Db.DB_FLUSH">Db.DB_FLUSH</a><dd>The log is forced to disk after this record is written, guaranteeing
-that all records with <a href="../api_java/lsn_class.html">DbLsn</a> values less than or equal to the
-one being put are on disk before this function returns (this function
-is most often used for a transaction commit, see <a href="../api_java/txn_commit.html">DbTxn.commit</a> for
-more information).
-<p>The caller is responsible for providing any necessary structure to
-<b>data</b>. (For example, in a write-ahead logging protocol, the
-application must understand what part of <b>data</b> is an operation
-code, what part is redo information, and what part is undo information.
-In addition, most transaction managers will store in <b>data</b> the
-<a href="../api_java/lsn_class.html">DbLsn</a> of the previous log record for the same transaction, to
-support chaining back through the transaction's log records during
-undo.)
-</dl>
-<p>The DbEnv.log_put method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p>The <a href="../api_java/log_flush.html">DbEnv.log_flush</a> method may fail and throw an exception encapsulating a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-<p>The record to be logged is larger than the maximum log record.
-</dl>
-<p>The DbEnv.log_put method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbEnv.log_put method may fail and throw
-a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls
-will fail in the same way.
-<h3>Class</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_java/env_set_lg_bsize.html">DbEnv.set_lg_bsize</a>,
-<a href="../api_java/env_set_lg_max.html">DbEnv.set_lg_max</a>,
-<a href="../api_java/log_archive.html">DbEnv.log_archive</a>,
-<a href="../api_java/log_compare.html">DbEnv.log_compare</a>,
-<a href="../api_java/log_file.html">DbEnv.log_file</a>,
-<a href="../api_java/log_flush.html">DbEnv.log_flush</a>,
-<a href="../api_java/log_get.html">DbEnv.log_get</a>,
-<a href="../api_java/log_put.html">DbEnv.log_put</a>,
-<a href="../api_java/log_register.html">DbEnv.log_register</a>,
-<a href="../api_java/log_stat.html">DbEnv.log_stat</a>
-and
-<a href="../api_java/log_unregister.html">DbEnv.log_unregister</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/log_register.html b/bdb/docs/api_java/log_register.html
deleted file mode 100644
index 7d4833c3c1a..00000000000
--- a/bdb/docs/api_java/log_register.html
+++ /dev/null
@@ -1,67 +0,0 @@
-<!--$Id: log_register.so,v 10.27 2000/05/09 14:46:45 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.log_register</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.log_register</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public int log_register(Db dbp, String name)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv.log_register method registers a file name with the specified Berkeley DB
-environment's log manager. The log manager records all file name mappings
-at each checkpoint so that a recovery process can identify the file to
-which a record in the log refers.
-<p>The <b>dbp</b> argument should be a reference to the <a href="../api_java/db_class.html">Db</a> object being
-registered. The <b>name</b> argument should be a file name appropriate
-for opening the file in the environment, during recovery.
-<p>The DbEnv.log_register method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p>The DbEnv.log_register method may fail and throw an exception encapsulating a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<p>The DbEnv.log_register method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbEnv.log_register method may fail and throw
-a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls
-will fail in the same way.
-<h3>Class</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_java/env_set_lg_bsize.html">DbEnv.set_lg_bsize</a>,
-<a href="../api_java/env_set_lg_max.html">DbEnv.set_lg_max</a>,
-<a href="../api_java/log_archive.html">DbEnv.log_archive</a>,
-<a href="../api_java/log_compare.html">DbEnv.log_compare</a>,
-<a href="../api_java/log_file.html">DbEnv.log_file</a>,
-<a href="../api_java/log_flush.html">DbEnv.log_flush</a>,
-<a href="../api_java/log_get.html">DbEnv.log_get</a>,
-<a href="../api_java/log_put.html">DbEnv.log_put</a>,
-<a href="../api_java/log_register.html">DbEnv.log_register</a>,
-<a href="../api_java/log_stat.html">DbEnv.log_stat</a>
-and
-<a href="../api_java/log_unregister.html">DbEnv.log_unregister</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/log_stat.html b/bdb/docs/api_java/log_stat.html
deleted file mode 100644
index 4c51f1095a3..00000000000
--- a/bdb/docs/api_java/log_stat.html
+++ /dev/null
@@ -1,93 +0,0 @@
-<!--$Id: log_stat.so,v 10.23 2000/05/25 13:47:08 dda Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.log_stat</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.log_stat</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public DbLogStat log_stat()
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv.log_stat method
-creates a DbLogStat object encapsulating a statistical structure.
-The log region statistics are stored in a DbLogStat object.
-The following data fields are available from the DbLogStat object:
-<p>Statistical structures are created in allocated memory. If <b>db_malloc</b> is non-NULL, it
-is called to allocate the memory, otherwise, the library function
-<b>malloc</b>(3) is used. The function <b>db_malloc</b> must match
-the calling conventions of the <b>malloc</b>(3) library routine.
-Regardless, the caller is responsible for deallocating the returned
-memory. To deallocate returned memory, free the returned memory
-reference, references inside the returned memory do not need to be
-individually freed.
-<p>The log region statistics are stored in a structure of type DB_LOG_STAT.
-The following DB_LOG_STAT fields will be filled in:
-<p><dl compact>
-<dt>public int st_magic;<dd>The magic number that identifies a file as a log file.
-<dt>public int st_version;<dd>The version of the log file type.
-<dt>public int st_regsize;<dd>The size of the region.
-<dt>public int st_mode;<dd>The mode of any created log files.
-<dt>public int st_lg_bsize;<dd>The in-memory log record cache size.
-<dt>public int st_lg_max;<dd>The maximum size of any individual file comprising the log.
-<dt>public int st_w_mbytes;<dd>The number of megabytes written to this log.
-<dt>public int st_w_bytes;<dd>The number of bytes over and above <b>st_w_mbytes</b> written to this log.
-<dt>public int st_wc_mbytes;<dd>The number of megabytes written to this log since the last checkpoint.
-<dt>public int st_wc_bytes;<dd>The number of bytes over and above <b>st_wc_mbytes</b> written to this log
-since the last checkpoint.
-<dt>public int st_wcount;<dd>The number of times the log has been written to disk.
-<dt>public int st_wcount_fill;<dd>The number of times the log has been written to disk because the
-in-memory log record cache filled up.
-<dt>public int st_scount;<dd>The number of times the log has been flushed to disk.
-<dt>public int st_cur_file;<dd>The current log file number.
-<dt>public int st_cur_offset;<dd>The byte offset in the current log file.
-<dt>public int st_region_wait;<dd>The number of times that a thread of control was forced to wait before
-obtaining the region lock.
-<dt>public int st_region_nowait;<dd>The number of times that a thread of control was able to obtain
-the region lock without waiting.
-</dl>
-<p>The DbEnv.log_stat method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p>The DbEnv.log_stat method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbEnv.log_stat method may fail and throw
-a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls
-will fail in the same way.
-<h3>Class</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_java/env_set_lg_bsize.html">DbEnv.set_lg_bsize</a>,
-<a href="../api_java/env_set_lg_max.html">DbEnv.set_lg_max</a>,
-<a href="../api_java/log_archive.html">DbEnv.log_archive</a>,
-<a href="../api_java/log_compare.html">DbEnv.log_compare</a>,
-<a href="../api_java/log_file.html">DbEnv.log_file</a>,
-<a href="../api_java/log_flush.html">DbEnv.log_flush</a>,
-<a href="../api_java/log_get.html">DbEnv.log_get</a>,
-<a href="../api_java/log_put.html">DbEnv.log_put</a>,
-<a href="../api_java/log_register.html">DbEnv.log_register</a>,
-<a href="../api_java/log_stat.html">DbEnv.log_stat</a>
-and
-<a href="../api_java/log_unregister.html">DbEnv.log_unregister</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/log_unregister.html b/bdb/docs/api_java/log_unregister.html
deleted file mode 100644
index c79c324ee83..00000000000
--- a/bdb/docs/api_java/log_unregister.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!--$Id: log_unregister.so,v 10.21 2000/05/03 22:39:10 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.log_unregister</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.log_unregister</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public void log_unregister(Db dbp)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv.log_unregister method function unregisters the file represented by
-the <b>dbp</b> parameter from the Berkeley DB environment's log manager.
-<p>The DbEnv.log_unregister method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p>The DbEnv.log_unregister method may fail and throw an exception encapsulating a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<p>The DbEnv.log_unregister method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbEnv.log_unregister method may fail and throw
-a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls
-will fail in the same way.
-<h3>Class</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_java/env_set_lg_bsize.html">DbEnv.set_lg_bsize</a>,
-<a href="../api_java/env_set_lg_max.html">DbEnv.set_lg_max</a>,
-<a href="../api_java/log_archive.html">DbEnv.log_archive</a>,
-<a href="../api_java/log_compare.html">DbEnv.log_compare</a>,
-<a href="../api_java/log_file.html">DbEnv.log_file</a>,
-<a href="../api_java/log_flush.html">DbEnv.log_flush</a>,
-<a href="../api_java/log_get.html">DbEnv.log_get</a>,
-<a href="../api_java/log_put.html">DbEnv.log_put</a>,
-<a href="../api_java/log_register.html">DbEnv.log_register</a>,
-<a href="../api_java/log_stat.html">DbEnv.log_stat</a>
-and
-<a href="../api_java/log_unregister.html">DbEnv.log_unregister</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/lsn_class.html b/bdb/docs/api_java/lsn_class.html
deleted file mode 100644
index 891ba8d0cea..00000000000
--- a/bdb/docs/api_java/lsn_class.html
+++ /dev/null
@@ -1,37 +0,0 @@
-<!--$Id: lsn_class.so,v 10.11 1999/12/20 08:52:33 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbLsn</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbLsn</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public class DbLsn extends Object { ... }
-</pre></h3>
-<h1>Description</h1>
-<p>A DbLsn is a <b>log sequence number</b> that is fully
-encapsulated. The class itself has no methods, other than a default
-constructor, so there is no way for the user to manipulate its data
-directly.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/mem_class.html b/bdb/docs/api_java/mem_class.html
deleted file mode 100644
index be9239defad..00000000000
--- a/bdb/docs/api_java/mem_class.html
+++ /dev/null
@@ -1,48 +0,0 @@
-<!--$Id: mem_class.so,v 10.4 2000/09/21 19:58:54 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbMemoryException</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbMemoryException</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public class DbMemoryException extends DbException { ... }
-</pre></h3>
-<h1>Description</h1>
-<p>This manual page describes the DbMemoryException class and
-how it is used by the various Db* classes.
-<p>A DbMemoryException is thrown when there is insufficient memory
-to complete an operation.
-<p>This may or may not be recoverable. An example of where it would be
-recoverable is during a <a href="../api_java/db_get.html">Db.get</a> or <a href="../api_java/dbc_get.html">Dbc.get</a> operation
-with the <a href="../api_java/dbt_class.html">Dbt</a> flags set to <a href="../api_java/dbt_class.html#DB_DBT_USERMEM">Db.DB_DBT_USERMEM</a>.
-<h3>Class</h3>
-<a href="../api_java/except_class.html">DbException</a>
-<h1>See Also</h1>
-<a href="../api_java/get_errno.html">DbException.get_errno</a>,
-<a href="../api_java/deadlock_class.html">DbDeadlockException</a>,
-<a href="../api_java/mem_class.html">DbMemoryException</a>
-and
-<a href="../api_java/runrec_class.html">DbRunRecoveryException</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/memp_fclose.html b/bdb/docs/api_java/memp_fclose.html
deleted file mode 100644
index 5cf196d40dc..00000000000
--- a/bdb/docs/api_java/memp_fclose.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!--$Id: memp_fclose.so,v 10.20 2000/06/13 13:55:49 sue Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbMpoolFile.close</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbMpoolFile.close</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-</pre></h3>
-<h1>Description</h1>
-<p>A DbMpoolFile.close method is not available in the Berkeley DB
-Java API.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/memp_fget.html b/bdb/docs/api_java/memp_fget.html
deleted file mode 100644
index a59b4bbe84d..00000000000
--- a/bdb/docs/api_java/memp_fget.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!--$Id: memp_fget.so,v 10.23 2000/12/04 18:05:39 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbMpoolFile.get</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbMpoolFile.get</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-</pre></h3>
-<h1>Description</h1>
-<p>A DbMpoolFile.get method is not available in the Berkeley DB
-Java API.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/memp_fopen.html b/bdb/docs/api_java/memp_fopen.html
deleted file mode 100644
index e1186d50530..00000000000
--- a/bdb/docs/api_java/memp_fopen.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!--$Id: memp_fopen.so,v 10.28 2000/12/18 21:05:12 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbMpoolFile.open</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbMpoolFile.open</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-</pre></h3>
-<h1>Description</h1>
-<p>A DbMpoolFile.open method is not available in the Berkeley DB
-Java API.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/memp_fput.html b/bdb/docs/api_java/memp_fput.html
deleted file mode 100644
index 64cb4732acc..00000000000
--- a/bdb/docs/api_java/memp_fput.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!--$Id: memp_fput.so,v 10.18 2000/03/01 21:41:30 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbMpoolFile.put</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbMpoolFile.put</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-</pre></h3>
-<h1>Description</h1>
-<p>A DbMpoolFile.put method is not available in the Berkeley DB
-Java API.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/memp_fset.html b/bdb/docs/api_java/memp_fset.html
deleted file mode 100644
index 3ab3ed0eec4..00000000000
--- a/bdb/docs/api_java/memp_fset.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!--$Id: memp_fset.so,v 10.18 2000/03/01 21:41:30 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbMpoolFile.set</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbMpoolFile.set</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-</pre></h3>
-<h1>Description</h1>
-<p>A DbMpoolFile.set method is not available in the Berkeley DB
-Java API.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/memp_fsync.html b/bdb/docs/api_java/memp_fsync.html
deleted file mode 100644
index b610635211f..00000000000
--- a/bdb/docs/api_java/memp_fsync.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!--$Id: memp_fsync.so,v 10.22 2000/09/08 15:20:28 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbMpoolFile.sync</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbMpoolFile.sync</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-</pre></h3>
-<h1>Description</h1>
-<p>A DbMpoolFile.sync method is not available in the Berkeley DB
-Java API.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/memp_register.html b/bdb/docs/api_java/memp_register.html
deleted file mode 100644
index 147b45a2001..00000000000
--- a/bdb/docs/api_java/memp_register.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!--$Id: memp_register.so,v 10.23 2000/05/25 13:47:08 dda Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.memp_register</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.memp_register</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-</pre></h3>
-<h1>Description</h1>
-<p>A DbEnv.memp_register method is not available in the Berkeley DB
-Java API.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/memp_stat.html b/bdb/docs/api_java/memp_stat.html
deleted file mode 100644
index 1314201a5c0..00000000000
--- a/bdb/docs/api_java/memp_stat.html
+++ /dev/null
@@ -1,102 +0,0 @@
-<!--$Id: memp_stat.so,v 10.28 2000/05/25 13:47:08 dda Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.memp_stat</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.memp_stat</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public DbMpoolStat memp_stat()
- throws DbException;
-<p>
-public DbMpoolFStat[] memp_fstat()
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv.memp_stat and <a href="../api_java/memp_stat.html">DbEnv.memp_fstat</a> method create statistical
-structures and return to the caller. The statistics include the number
-of files participating in the pool, the active pages in the pool, and
-information as to how effective the cache has been.
-<p>The DbEnv.memp_stat method creates a DbMpoolStat object containing global
-statistics. The following data fields are available:
-<p><dl compact>
-<dt>public long st_gbytes;<dd>Gigabytes of cache (total cache size is st_gbytes + st_bytes)
-<dt>public long st_bytes;<dd>Bytes of cache (total cache size is st_gbytes + st_bytes)
-<dt>public int st_ncache;<dd>Number of caches.
-<dt>public int st_regsize;<dd>Individual cache size.
-<dt>public int st_cache_hit;<dd>Requested pages found in the cache.
-<dt>public int st_cache_miss;<dd>Requested pages not found in the cache.
-<dt>public int st_map;<dd>Requested pages mapped into the process' address space (there is no
-available information as to whether or not this request caused disk I/O,
-although examining the application page fault rate may be helpful).
-<dt>public int st_page_create;<dd>Pages created in the cache.
-<dt>public int st_page_in;<dd>Pages read into the cache.
-<dt>public int st_page_out;<dd>Pages written from the cache to the backing file.
-<dt>public int st_ro_evict;<dd>Clean pages forced from the cache.
-<dt>public int st_rw_evict;<dd>Dirty pages forced from the cache.
-<dt>public int st_hash_buckets;<dd>Number of hash buckets in buffer hash table.
-<dt>public int st_hash_searches;<dd>Total number of buffer hash table lookups.
-<dt>public int st_hash_longest;<dd>The longest chain ever encountered in buffer hash table lookups.
-<dt>public int st_hash_examined;<dd>Total number of hash elements traversed during hash table lookups.
-<dt>public int st_page_clean;<dd>Clean pages currently in the cache.
-<dt>public int st_page_dirty;<dd>Dirty pages currently in the cache.
-<dt>public int st_page_trickle;<dd>Dirty pages written using the <a href="../api_java/memp_trickle.html">DbEnv.memp_trickle</a> interface.
-<dt>public int st_region_wait;<dd>The number of times that a thread of control was forced to wait before
-obtaining the region lock.
-<dt>public int st_region_nowait;<dd>The number of times that a thread of control was able to obtain
-the region lock without waiting.
-</dl>
-<p>The <a href="../api_java/memp_stat.html">DbEnv.memp_fstat</a> method creates an array of DbMpoolFStat objects
-containing statistics for individual files in the pool. Each
-DbMpoolFStat object contains statistics for an individual DbMpoolFile.
-The following data fields are available for each DbMpoolFStat object:
-<p><dl compact>
-<dt>public String file_name;<dd>The name of the file.
-<dt>public long st_pagesize;<dd>Page size in bytes.
-<dt>public int st_cache_hit;<dd>Requested pages found in the cache.
-<dt>public int st_cache_miss;<dd>Requested pages not found in the cache.
-<dt>public int st_map;<dd>Requested pages mapped into the process' address space.
-<dt>public int st_page_create;<dd>Pages created in the cache.
-<dt>public int st_page_in;<dd>Pages read into the cache.
-<dt>public int st_page_out;<dd>Pages written from the cache to the backing file.
-</dl>
-<p>The DbEnv.memp_stat method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p>The DbEnv.memp_stat method may fail and throw an exception encapsulating a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<p>The DbEnv.memp_stat method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbEnv.memp_stat method may fail and throw
-a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls
-will fail in the same way.
-<h3>Class</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_java/memp_stat.html">DbEnv.memp_fstat</a>,
-<a href="../api_java/memp_stat.html">DbEnv.memp_stat</a>
-and
-<a href="../api_java/memp_trickle.html">DbEnv.memp_trickle</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/memp_sync.html b/bdb/docs/api_java/memp_sync.html
deleted file mode 100644
index 6c729b8f570..00000000000
--- a/bdb/docs/api_java/memp_sync.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!--$Id: memp_sync.so,v 10.25 2000/09/08 15:20:28 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.memp_sync</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.memp_sync</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-</pre></h3>
-<h1>Description</h1>
-<p>A DbEnv.memp_sync method is not available in the Berkeley DB
-Java API.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/memp_trickle.html b/bdb/docs/api_java/memp_trickle.html
deleted file mode 100644
index 0eeae97d5c2..00000000000
--- a/bdb/docs/api_java/memp_trickle.html
+++ /dev/null
@@ -1,60 +0,0 @@
-<!--$Id: memp_trickle.so,v 10.21 2000/03/01 21:41:30 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.memp_trickle</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.memp_trickle</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public int memp_trickle(int pct)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv.memp_trickle method ensures that at least <b>pct</b> percent of
-the pages in the shared memory pool are clean by writing dirty pages to
-their backing files.
-The number of pages that were written to reach the correct percentage is
-returned.
-<p>The purpose of the DbEnv.memp_trickle function is to enable a memory
-pool manager to ensure that a page is always available for reading in new
-information without having to wait for a write.
-<p>The DbEnv.memp_trickle method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p>The DbEnv.memp_trickle method may fail and throw an exception encapsulating a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<p>The DbEnv.memp_trickle method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbEnv.memp_trickle method may fail and throw
-a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls
-will fail in the same way.
-<h3>Class</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>
-<h1>See Also</h1>
-<a href="../api_java/memp_stat.html">DbEnv.memp_fstat</a>,
-<a href="../api_java/memp_stat.html">DbEnv.memp_stat</a>
-and
-<a href="../api_java/memp_trickle.html">DbEnv.memp_trickle</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/pindex.src b/bdb/docs/api_java/pindex.src
deleted file mode 100644
index 2dd85859dcf..00000000000
--- a/bdb/docs/api_java/pindex.src
+++ /dev/null
@@ -1,249 +0,0 @@
-__APIREL__/api_java/db_class.html#2 @Db
-__APIREL__/api_java/db_class.html#Db.DB_XA_CREATE Db@Db.DB_XA_CREATE
-__APIREL__/api_java/dbc_class.html#2 @Dbc
-__APIREL__/api_java/dbenv_class.html#2 @DbEnv
-__APIREL__/api_java/dbenv_class.html#Db.DB_CLIENT DbEnv@Db.DB_CLIENT
-__APIREL__/api_java/dbt_class.html#2 @Dbt
-__APIREL__/api_java/dbt_class.html#3 @key/data pairs
-__APIREL__/api_java/dbt_class.html#data Dbt@data
-__APIREL__/api_java/dbt_class.html#Db.DB_DBT_MALLOC Dbt@Db.DB_DBT_MALLOC
-__APIREL__/api_java/dbt_class.html#Db.DB_DBT_REALLOC Dbt@Db.DB_DBT_REALLOC
-__APIREL__/api_java/dbt_class.html#Db.DB_DBT_USERMEM Dbt@Db.DB_DBT_USERMEM
-__APIREL__/api_java/dbt_class.html#Db.DB_DBT_PARTIAL Dbt@Db.DB_DBT_PARTIAL
-__APIREL__/api_java/dbt_class.html#4 logical @record number format
-__APIREL__/api_java/deadlock_class.html#2 @DbDeadlockException
-__APIREL__/api_java/env_set_error_stream.html#2 @DbEnv.set_error_stream
-__APIREL__/api_java/except_class.html#2 @DbException
-__APIREL__/api_java/get_errno.html#2 @DbException.get_errno
-__APIREL__/api_java/lock_class.html#2 @DbLock
-__APIREL__/api_java/lsn_class.html#2 @DbLsn
-__APIREL__/api_java/mem_class.html#2 @DbMemoryException
-__APIREL__/api_java/runrec_class.html#2 @DbRunRecoveryException
-__APIREL__/api_java/txn_class.html#2 @DbTxn
-__APIREL__/api_java/db_close.html#2 @Db.close
-__APIREL__/api_java/db_close.html#Db.DB_NOSYNC Db.close@Db.DB_NOSYNC
-__APIREL__/api_java/db_close.html#3 Db.close @DB_INCOMPLETE
-__APIREL__/api_java/db_cursor.html#2 @Db.cursor
-__APIREL__/api_java/db_cursor.html#Db.DB_WRITECURSOR Db.cursor@Db.DB_WRITECURSOR
-__APIREL__/api_java/db_del.html#2 @Db.del
-__APIREL__/api_java/db_fd.html#2 @Db.fd
-__APIREL__/api_java/db_get.html#2 @Db.get
-__APIREL__/api_java/db_get.html#Db.DB_CONSUME Db.get@Db.DB_CONSUME
-__APIREL__/api_java/db_get.html#Db.DB_CONSUME_WAIT Db.get@Db.DB_CONSUME_WAIT
-__APIREL__/api_java/db_get.html#Db.DB_GET_BOTH Db.get@Db.DB_GET_BOTH
-__APIREL__/api_java/db_get.html#Db.DB_SET_RECNO Db.get@Db.DB_SET_RECNO
-__APIREL__/api_java/db_get.html#Db.DB_RMW Db.get@Db.DB_RMW
-__APIREL__/api_java/db_get_byteswapped.html#2 @Db.get_byteswapped
-__APIREL__/api_java/db_get_type.html#2 @Db.get_type
-__APIREL__/api_java/db_join.html#2 @Db.join
-__APIREL__/api_java/db_join.html#Db.DB_JOIN_NOSORT Db.join@Db.DB_JOIN_NOSORT
-__APIREL__/api_java/db_join.html#Db.DB_JOIN_ITEM Db.join@Db.DB_JOIN_ITEM
-__APIREL__/api_java/db_join.html#Db.DB_RMW Db.join@Db.DB_RMW
-__APIREL__/api_java/db_key_range.html#2 @Db.key_range
-__APIREL__/api_java/db_open.html#2 @Db.open
-__APIREL__/api_java/db_open.html#Db.DB_CREATE Db.open@Db.DB_CREATE
-__APIREL__/api_java/db_open.html#Db.DB_EXCL Db.open@Db.DB_EXCL
-__APIREL__/api_java/db_open.html#Db.DB_NOMMAP Db.open@Db.DB_NOMMAP
-__APIREL__/api_java/db_open.html#Db.DB_RDONLY Db.open@Db.DB_RDONLY
-__APIREL__/api_java/db_open.html#Db.DB_THREAD Db.open@Db.DB_THREAD
-__APIREL__/api_java/db_open.html#Db.DB_TRUNCATE Db.open@Db.DB_TRUNCATE
-__APIREL__/api_java/db_open.html#Db.DB_OLD_VERSION Db.open@Db.DB_OLD_VERSION
-__APIREL__/api_java/db_put.html#2 @Db.put
-__APIREL__/api_java/db_put.html#Db.DB_APPEND Db.put@Db.DB_APPEND
-__APIREL__/api_java/db_put.html#Db.DB_NODUPDATA Db.put@Db.DB_NODUPDATA
-__APIREL__/api_java/db_put.html#Db.DB_NOOVERWRITE Db.put@Db.DB_NOOVERWRITE
-__APIREL__/api_java/db_remove.html#2 @Db.remove
-__APIREL__/api_java/db_rename.html#2 @Db.rename
-__APIREL__/api_java/db_set_append_recno.html#2 @Db.set_append_recno
-__APIREL__/api_java/db_set_bt_compare.html#2 @Db.set_bt_compare
-__APIREL__/api_java/db_set_bt_minkey.html#2 @Db.set_bt_minkey
-__APIREL__/api_java/db_set_bt_prefix.html#2 @Db.set_bt_prefix
-__APIREL__/api_java/db_set_cachesize.html#2 @Db.set_cachesize
-__APIREL__/api_java/db_set_dup_compare.html#2 @Db.set_dup_compare
-__APIREL__/api_java/db_set_errcall.html#2 @Db.set_errcall
-__APIREL__/api_java/db_set_errpfx.html#2 @Db.set_errpfx
-__APIREL__/api_java/db_set_feedback.html#2 @Db.set_feedback
-__APIREL__/api_java/db_set_feedback.html#Db.DB_UPGRADE Db.set_feedback@Db.DB_UPGRADE
-__APIREL__/api_java/db_set_feedback.html#Db.DB_VERIFY Db.set_feedback@Db.DB_VERIFY
-__APIREL__/api_java/db_set_flags.html#2 @Db.set_flags
-__APIREL__/api_java/db_set_flags.html#Db.DB_DUP Db.set_flags@Db.DB_DUP
-__APIREL__/api_java/db_set_flags.html#Db.DB_DUPSORT Db.set_flags@Db.DB_DUPSORT
-__APIREL__/api_java/db_set_flags.html#Db.DB_RECNUM Db.set_flags@Db.DB_RECNUM
-__APIREL__/api_java/db_set_flags.html#Db.DB_REVSPLITOFF Db.set_flags@Db.DB_REVSPLITOFF
-__APIREL__/api_java/db_set_flags.html#Db.DB_DUP Db.set_flags@Db.DB_DUP
-__APIREL__/api_java/db_set_flags.html#Db.DB_DUPSORT Db.set_flags@Db.DB_DUPSORT
-__APIREL__/api_java/db_set_flags.html#Db.DB_RENUMBER Db.set_flags@Db.DB_RENUMBER
-__APIREL__/api_java/db_set_flags.html#Db.DB_SNAPSHOT Db.set_flags@Db.DB_SNAPSHOT
-__APIREL__/api_java/db_set_h_ffactor.html#2 @Db.set_h_ffactor
-__APIREL__/api_java/db_set_h_hash.html#2 @Db.set_h_hash
-__APIREL__/api_java/db_set_h_nelem.html#2 @Db.set_h_nelem
-__APIREL__/api_java/db_set_lorder.html#2 @Db.set_lorder
-__APIREL__/api_java/db_set_pagesize.html#2 @Db.set_pagesize
-__APIREL__/api_java/db_set_q_extentsize.html#2 @Db.set_q_extentsize
-__APIREL__/api_java/db_set_re_delim.html#2 @Db.set_re_delim
-__APIREL__/api_java/db_set_re_len.html#2 @Db.set_re_len
-__APIREL__/api_java/db_set_re_pad.html#2 @Db.set_re_pad
-__APIREL__/api_java/db_set_re_source.html#2 @Db.set_re_source
-__APIREL__/api_java/db_stat.html#2 @Db.stat
-__APIREL__/api_java/db_stat.html#Db.DB_CACHED_COUNTS Db.stat@Db.DB_CACHED_COUNTS
-__APIREL__/api_java/db_stat.html#Db.DB_RECORDCOUNT Db.stat@Db.DB_RECORDCOUNT
-__APIREL__/api_java/db_sync.html#2 @Db.sync
-__APIREL__/api_java/db_upgrade.html#2 @Db.upgrade
-__APIREL__/api_java/db_upgrade.html#Db.DB_DUPSORT Db.upgrade@Db.DB_DUPSORT
-__APIREL__/api_java/db_upgrade.html#Db.DB_OLD_VERSION Db.upgrade@Db.DB_OLD_VERSION
-__APIREL__/api_java/db_verify.html#2 @Db.verify
-__APIREL__/api_java/db_verify.html#Db.DB_SALVAGE Db.verify@Db.DB_SALVAGE
-__APIREL__/api_java/db_verify.html#Db.DB_AGGRESSIVE Db.verify@Db.DB_AGGRESSIVE
-__APIREL__/api_java/db_verify.html#Db.DB_NOORDERCHK Db.verify@Db.DB_NOORDERCHK
-__APIREL__/api_java/db_verify.html#Db.DB_ORDERCHKONLY Db.verify@Db.DB_ORDERCHKONLY
-__APIREL__/api_java/dbc_close.html#2 @Dbc.close
-__APIREL__/api_java/dbc_count.html#2 @Dbc.count
-__APIREL__/api_java/dbc_del.html#2 @Dbc.del
-__APIREL__/api_java/dbc_dup.html#2 @Dbc.dup
-__APIREL__/api_java/dbc_dup.html#Db.DB_POSITION Dbc.dup@Db.DB_POSITION
-__APIREL__/api_java/dbc_get.html#2 @Dbc.get
-__APIREL__/api_java/dbc_get.html#Db.DB_CURRENT Dbc.get@Db.DB_CURRENT
-__APIREL__/api_java/dbc_get.html#Db.DB_FIRST Dbc.get@Db.DB_FIRST
-__APIREL__/api_java/dbc_get.html#Db.DB_LAST Dbc.get@Db.DB_LAST
-__APIREL__/api_java/dbc_get.html#Db.DB_GET_BOTH Dbc.get@Db.DB_GET_BOTH
-__APIREL__/api_java/dbc_get.html#Db.DB_GET_RECNO Dbc.get@Db.DB_GET_RECNO
-__APIREL__/api_java/dbc_get.html#Db.DB_JOIN_ITEM Dbc.get@Db.DB_JOIN_ITEM
-__APIREL__/api_java/dbc_get.html#Db.DB_NEXT Dbc.get@Db.DB_NEXT
-__APIREL__/api_java/dbc_get.html#Db.DB_PREV Dbc.get@Db.DB_PREV
-__APIREL__/api_java/dbc_get.html#Db.DB_NEXT_DUP Dbc.get@Db.DB_NEXT_DUP
-__APIREL__/api_java/dbc_get.html#Db.DB_NEXT_NODUP Dbc.get@Db.DB_NEXT_NODUP
-__APIREL__/api_java/dbc_get.html#Db.DB_PREV_NODUP Dbc.get@Db.DB_PREV_NODUP
-__APIREL__/api_java/dbc_get.html#Db.DB_SET Dbc.get@Db.DB_SET
-__APIREL__/api_java/dbc_get.html#Db.DB_SET_RANGE Dbc.get@Db.DB_SET_RANGE
-__APIREL__/api_java/dbc_get.html#Db.DB_SET_RECNO Dbc.get@Db.DB_SET_RECNO
-__APIREL__/api_java/dbc_get.html#Db.DB_RMW Dbc.get@Db.DB_RMW
-__APIREL__/api_java/dbc_put.html#2 @Dbc.put
-__APIREL__/api_java/dbc_put.html#Db.DB_AFTER Dbc.put@Db.DB_AFTER
-__APIREL__/api_java/dbc_put.html#Db.DB_BEFORE Dbc.put@Db.DB_BEFORE
-__APIREL__/api_java/dbc_put.html#Db.DB_CURRENT Dbc.put@Db.DB_CURRENT
-__APIREL__/api_java/dbc_put.html#Db.DB_KEYFIRST Dbc.put@Db.DB_KEYFIRST
-__APIREL__/api_java/dbc_put.html#Db.DB_KEYLAST Dbc.put@Db.DB_KEYLAST
-__APIREL__/api_java/dbc_put.html#Db.DB_NODUPDATA Dbc.put@Db.DB_NODUPDATA
-__APIREL__/api_java/env_close.html#2 @DbEnv.close
-__APIREL__/api_java/env_open.html#2 @DbEnv.open
-__APIREL__/api_java/env_open.html#Db.DB_JOINENV DbEnv.open@Db.DB_JOINENV
-__APIREL__/api_java/env_open.html#Db.DB_INIT_CDB DbEnv.open@Db.DB_INIT_CDB
-__APIREL__/api_java/env_open.html#Db.DB_INIT_LOCK DbEnv.open@Db.DB_INIT_LOCK
-__APIREL__/api_java/env_open.html#Db.DB_INIT_LOG DbEnv.open@Db.DB_INIT_LOG
-__APIREL__/api_java/env_open.html#Db.DB_INIT_MPOOL DbEnv.open@Db.DB_INIT_MPOOL
-__APIREL__/api_java/env_open.html#Db.DB_INIT_TXN DbEnv.open@Db.DB_INIT_TXN
-__APIREL__/api_java/env_open.html#Db.DB_RECOVER DbEnv.open@Db.DB_RECOVER
-__APIREL__/api_java/env_open.html#Db.DB_RECOVER_FATAL DbEnv.open@Db.DB_RECOVER_FATAL
-__APIREL__/api_java/env_open.html#Db.DB_USE_ENVIRON DbEnv.open@Db.DB_USE_ENVIRON
-__APIREL__/api_java/env_open.html#Db.DB_USE_ENVIRON_ROOT DbEnv.open@Db.DB_USE_ENVIRON_ROOT
-__APIREL__/api_java/env_open.html#Db.DB_CREATE DbEnv.open@Db.DB_CREATE
-__APIREL__/api_java/env_open.html#Db.DB_LOCKDOWN DbEnv.open@Db.DB_LOCKDOWN
-__APIREL__/api_java/env_open.html#Db.DB_PRIVATE DbEnv.open@Db.DB_PRIVATE
-__APIREL__/api_java/env_open.html#Db.DB_SYSTEM_MEM DbEnv.open@Db.DB_SYSTEM_MEM
-__APIREL__/api_java/env_open.html#Db.DB_THREAD DbEnv.open@Db.DB_THREAD
-__APIREL__/api_java/env_remove.html#2 @DbEnv.remove
-__APIREL__/api_java/env_remove.html#Db.DB_FORCE DbEnv.remove@Db.DB_FORCE
-__APIREL__/api_java/env_remove.html#Db.DB_USE_ENVIRON DbEnv.remove@Db.DB_USE_ENVIRON
-__APIREL__/api_java/env_remove.html#Db.DB_USE_ENVIRON_ROOT DbEnv.remove@Db.DB_USE_ENVIRON_ROOT
-__APIREL__/api_java/env_set_cachesize.html#2 @DbEnv.set_cachesize
-__APIREL__/api_java/env_set_data_dir.html#2 @DbEnv.set_data_dir
-__APIREL__/api_java/env_set_errcall.html#2 @DbEnv.set_errcall
-__APIREL__/api_java/env_set_errpfx.html#2 @DbEnv.set_errpfx
-__APIREL__/api_java/env_set_feedback.html#2 @DbEnv.set_feedback
-__APIREL__/api_java/env_set_feedback.html#Db.DB_RECOVER DbEnv.set_feedback@Db.DB_RECOVER
-__APIREL__/api_java/env_set_flags.html#2 @DbEnv.set_flags
-__APIREL__/api_java/env_set_flags.html#Db.DB_CDB_ALLDB DbEnv.set_flags@Db.DB_CDB_ALLDB
-__APIREL__/api_java/env_set_flags.html#Db.DB_NOMMAP DbEnv.set_flags@Db.DB_NOMMAP
-__APIREL__/api_java/env_set_flags.html#Db.DB_TXN_NOSYNC DbEnv.set_flags@Db.DB_TXN_NOSYNC
-__APIREL__/api_java/env_set_lg_bsize.html#2 @DbEnv.set_lg_bsize
-__APIREL__/api_java/env_set_lg_dir.html#2 @DbEnv.set_lg_dir
-__APIREL__/api_java/env_set_lg_max.html#2 @DbEnv.set_lg_max
-__APIREL__/api_java/env_set_lk_conflicts.html#2 @DbEnv.set_lk_conflicts
-__APIREL__/api_java/env_set_lk_detect.html#2 @DbEnv.set_lk_detect
-__APIREL__/api_java/env_set_lk_detect.html#DB_LOCK_DEFAULT DbEnv.set_lk_detect@DB_LOCK_DEFAULT
-__APIREL__/api_java/env_set_lk_detect.html#DB_LOCK_OLDEST DbEnv.set_lk_detect@DB_LOCK_OLDEST
-__APIREL__/api_java/env_set_lk_detect.html#DB_LOCK_RANDOM DbEnv.set_lk_detect@DB_LOCK_RANDOM
-__APIREL__/api_java/env_set_lk_detect.html#DB_LOCK_YOUNGEST DbEnv.set_lk_detect@DB_LOCK_YOUNGEST
-__APIREL__/api_java/env_set_lk_max.html#2 @DbEnv.set_lk_max
-__APIREL__/api_java/env_set_lk_max_locks.html#2 @DbEnv.set_lk_max_locks
-__APIREL__/api_java/env_set_lk_max_lockers.html#2 @DbEnv.set_lk_max_lockers
-__APIREL__/api_java/env_set_lk_max_objects.html#2 @DbEnv.set_lk_max_objects
-__APIREL__/api_java/env_set_mp_mmapsize.html#2 @DbEnv.set_mp_mmapsize
-__APIREL__/api_java/env_set_mutexlocks.html#2 @DbEnv.set_mutexlocks
-__APIREL__/api_java/env_set_pageyield.html#2 @DbEnv.set_pageyield
-__APIREL__/api_java/env_set_panicstate.html#2 @DbEnv.set_panicstate
-__APIREL__/api_java/env_set_rec_init.html#2 @DbEnv.set_recovery_init
-__APIREL__/api_java/env_set_region_init.html#2 @DbEnv.set_region_init
-__APIREL__/api_java/env_set_server.html#2 @DbEnv.set_server
-__APIREL__/api_java/env_set_server.html#DB_NOSERVER DbEnv.set_server@DB_NOSERVER
-__APIREL__/api_java/env_set_server.html#DB_NOSERVER_ID DbEnv.set_server@DB_NOSERVER_ID
-__APIREL__/api_java/env_set_shm_key.html#2 @DbEnv.set_shm_key
-__APIREL__/api_java/env_set_tas_spins.html#2 @DbEnv.set_tas_spins
-__APIREL__/api_java/env_set_tmp_dir.html#2 @DbEnv.set_tmp_dir
-__APIREL__/api_java/env_set_tx_max.html#2 @DbEnv.set_tx_max
-__APIREL__/api_java/env_set_tx_recover.html#2 @DbEnv.set_tx_recover
-__APIREL__/api_java/env_set_tx_recover.html#Db.DB_TXN_BACKWARD_ROLL DbEnv.set_tx_recover@Db.DB_TXN_BACKWARD_ROLL
-__APIREL__/api_java/env_set_tx_recover.html#Db.DB_TXN_FORWARD_ROLL DbEnv.set_tx_recover@Db.DB_TXN_FORWARD_ROLL
-__APIREL__/api_java/env_set_tx_recover.html#Db.DB_TXN_ABORT DbEnv.set_tx_recover@Db.DB_TXN_ABORT
-__APIREL__/api_java/env_set_tx_timestamp.html#2 @DbEnv.set_tx_timestamp
-__APIREL__/api_java/env_set_verbose.html#2 @DbEnv.set_verbose
-__APIREL__/api_java/env_set_verbose.html#Db.DB_VERB_CHKPOINT DbEnv.set_verbose@Db.DB_VERB_CHKPOINT
-__APIREL__/api_java/env_set_verbose.html#Db.DB_VERB_DEADLOCK DbEnv.set_verbose@Db.DB_VERB_DEADLOCK
-__APIREL__/api_java/env_set_verbose.html#Db.DB_VERB_RECOVERY DbEnv.set_verbose@Db.DB_VERB_RECOVERY
-__APIREL__/api_java/env_set_verbose.html#Db.DB_VERB_WAITSFOR DbEnv.set_verbose@Db.DB_VERB_WAITSFOR
-__APIREL__/api_java/env_strerror.html#2 @DbEnv.strerror
-__APIREL__/api_java/env_version.html#2 @DbEnv.get_version_major
-__APIREL__/api_java/lock_detect.html#2 @DbEnv.lock_detect
-__APIREL__/api_java/lock_detect.html#Db.DB_LOCK_CONFLICT DbEnv.lock_detect@Db.DB_LOCK_CONFLICT
-__APIREL__/api_java/lock_get.html#2 @DbEnv.lock_get
-__APIREL__/api_java/lock_get.html#Db.DB_LOCK_NOWAIT DbEnv.lock_get@Db.DB_LOCK_NOWAIT
-__APIREL__/api_java/lock_get.html#Db.DB_LOCK_NOTGRANTED DbEnv.lock_get@Db.DB_LOCK_NOTGRANTED
-__APIREL__/api_java/lock_id.html#2 @DbEnv.lock_id
-__APIREL__/api_java/lock_put.html#2 @DbLock.put
-__APIREL__/api_java/lock_stat.html#2 @DbEnv.lock_stat
-__APIREL__/api_java/lock_vec.html#2 @DbEnv.lock_vec
-__APIREL__/api_java/log_archive.html#2 @DbEnv.log_archive
-__APIREL__/api_java/log_archive.html#Db.DB_ARCH_ABS DbEnv.log_archive@Db.DB_ARCH_ABS
-__APIREL__/api_java/log_archive.html#Db.DB_ARCH_DATA DbEnv.log_archive@Db.DB_ARCH_DATA
-__APIREL__/api_java/log_archive.html#Db.DB_ARCH_LOG DbEnv.log_archive@Db.DB_ARCH_LOG
-__APIREL__/api_java/log_compare.html#2 @DbEnv.log_compare
-__APIREL__/api_java/log_file.html#2 @DbEnv.log_file
-__APIREL__/api_java/log_flush.html#2 @DbEnv.log_flush
-__APIREL__/api_java/log_get.html#2 @DbEnv.log_get
-__APIREL__/api_java/log_get.html#Db.DB_CHECKPOINT DbEnv.log_get@Db.DB_CHECKPOINT
-__APIREL__/api_java/log_get.html#Db.DB_FIRST DbEnv.log_get@Db.DB_FIRST
-__APIREL__/api_java/log_get.html#Db.DB_LAST DbEnv.log_get@Db.DB_LAST
-__APIREL__/api_java/log_get.html#Db.DB_NEXT DbEnv.log_get@Db.DB_NEXT
-__APIREL__/api_java/log_get.html#Db.DB_PREV DbEnv.log_get@Db.DB_PREV
-__APIREL__/api_java/log_get.html#Db.DB_CURRENT DbEnv.log_get@Db.DB_CURRENT
-__APIREL__/api_java/log_get.html#Db.DB_SET DbEnv.log_get@Db.DB_SET
-__APIREL__/api_java/log_put.html#2 @DbEnv.log_put
-__APIREL__/api_java/log_put.html#Db.DB_CHECKPOINT DbEnv.log_put@Db.DB_CHECKPOINT
-__APIREL__/api_java/log_put.html#Db.DB_CURLSN DbEnv.log_put@Db.DB_CURLSN
-__APIREL__/api_java/log_put.html#Db.DB_FLUSH DbEnv.log_put@Db.DB_FLUSH
-__APIREL__/api_java/log_register.html#2 @DbEnv.log_register
-__APIREL__/api_java/log_stat.html#2 @DbEnv.log_stat
-__APIREL__/api_java/log_unregister.html#2 @DbEnv.log_unregister
-__APIREL__/api_java/memp_fclose.html#2 @DbMpoolFile.close
-__APIREL__/api_java/memp_fget.html#2 @DbMpoolFile.get
-__APIREL__/api_java/memp_fopen.html#2 @DbMpoolFile.open
-__APIREL__/api_java/memp_fput.html#2 @DbMpoolFile.put
-__APIREL__/api_java/memp_fset.html#2 @DbMpoolFile.set
-__APIREL__/api_java/memp_fsync.html#2 @DbMpoolFile.sync
-__APIREL__/api_java/memp_register.html#2 @DbEnv.memp_register
-__APIREL__/api_java/memp_stat.html#2 @DbEnv.memp_stat
-__APIREL__/api_java/memp_sync.html#2 @DbEnv.memp_sync
-__APIREL__/api_java/memp_trickle.html#2 @DbEnv.memp_trickle
-__APIREL__/api_java/txn_abort.html#2 @DbTxn.abort
-__APIREL__/api_java/txn_begin.html#2 @DbEnv.txn_begin
-__APIREL__/api_java/txn_begin.html#Db.DB_TXN_NOSYNC DbEnv.txn_begin@Db.DB_TXN_NOSYNC
-__APIREL__/api_java/txn_begin.html#Db.DB_TXN_NOWAIT DbEnv.txn_begin@Db.DB_TXN_NOWAIT
-__APIREL__/api_java/txn_begin.html#Db.DB_TXN_SYNC DbEnv.txn_begin@Db.DB_TXN_SYNC
-__APIREL__/api_java/txn_checkpoint.html#2 @DbEnv.txn_checkpoint
-__APIREL__/api_java/txn_checkpoint.html#Db.DB_FORCE DbEnv.txn_checkpoint@Db.DB_FORCE
-__APIREL__/api_java/txn_commit.html#2 @DbTxn.commit
-__APIREL__/api_java/txn_commit.html#Db.DB_TXN_NOSYNC DbTxn.commit@Db.DB_TXN_NOSYNC
-__APIREL__/api_java/txn_commit.html#Db.DB_TXN_SYNC DbTxn.commit@Db.DB_TXN_SYNC
-__APIREL__/api_java/txn_id.html#2 @DbTxn.id
-__APIREL__/api_java/txn_prepare.html#2 @DbTxn.prepare
-__APIREL__/api_java/txn_stat.html#2 @DbEnv.txn_stat
diff --git a/bdb/docs/api_java/runrec_class.html b/bdb/docs/api_java/runrec_class.html
deleted file mode 100644
index 31fd07b9493..00000000000
--- a/bdb/docs/api_java/runrec_class.html
+++ /dev/null
@@ -1,50 +0,0 @@
-<!--$Id: runrec_class.so,v 10.7 2000/09/21 19:58:54 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbRunRecoveryException</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbRunRecoveryException</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public class DbRunRecoveryException extends DbException { ... }
-</pre></h3>
-<h1>Description</h1>
-<p>This manual page describes the DbRunRecoveryException class and
-how it is used by the various Db* classes.
-<p>Errors can occur in the Berkeley DB library where the only solution is to shut
-down the application and run recovery. (For example, if Berkeley DB is unable
-to write log records to disk because there is insufficient disk space.)
-When a fatal error occurs in Berkeley DB, methods will throw a
-DbRunRecoveryException, at which point all subsequent database
-calls will also fail in the same way. When this occurs, recovery should
-be performed.
-<h3>Class</h3>
-<a href="../api_java/except_class.html">DbException</a>
-<h1>See Also</h1>
-<a href="../api_java/get_errno.html">DbException.get_errno</a>,
-<a href="../api_java/deadlock_class.html">DbDeadlockException</a>,
-<a href="../api_java/mem_class.html">DbMemoryException</a>
-and
-<a href="../api_java/runrec_class.html">DbRunRecoveryException</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/txn_abort.html b/bdb/docs/api_java/txn_abort.html
deleted file mode 100644
index 48f4ddf0784..00000000000
--- a/bdb/docs/api_java/txn_abort.html
+++ /dev/null
@@ -1,65 +0,0 @@
-<!--$Id: txn_abort.so,v 10.25 2000/12/31 19:26:21 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbTxn.abort</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbTxn.abort</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public void abort()
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>The DbTxn.abort method causes an abnormal termination of the
-transaction. The log is played backwards and any necessary recovery
-operations are initiated through the <b>recover</b> function specified
-to <a href="../api_java/env_open.html">DbEnv.open</a>. After the log processing is completed, all locks
-held by the transaction are released. As is the case for
-<a href="../api_java/txn_commit.html">DbTxn.commit</a>, applications that require strict two-phase locking
-should not explicitly release any locks.
-<p>In the case of nested transactions, aborting a parent transaction causes
-all children (unresolved or not) of the parent transaction to be aborted.
-<p>Once the DbTxn.abort method returns, the <a href="../api_java/txn_class.html">DbTxn</a> handle may not
-be accessed again.
-<p>The DbTxn.abort method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p>The DbTxn.abort method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbTxn.abort method may fail and throw
-a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls
-will fail in the same way.
-<h3>Classes</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>, <a href="../api_java/txn_class.html">DbTxn</a>
-<h1>See Also</h1>
-<a href="../api_java/env_set_tx_max.html">DbEnv.set_tx_max</a>,
-<a href="../api_java/env_set_tx_timestamp.html">DbEnv.set_tx_timestamp</a>,
-<a href="../api_java/txn_abort.html">DbTxn.abort</a>,
-<a href="../api_java/txn_begin.html">DbEnv.txn_begin</a>,
-<a href="../api_java/txn_checkpoint.html">DbEnv.txn_checkpoint</a>,
-<a href="../api_java/txn_commit.html">DbTxn.commit</a>,
-<a href="../api_java/txn_id.html">DbTxn.id</a>,
-<a href="../api_java/txn_prepare.html">DbTxn.prepare</a>
-and
-<a href="../api_java/txn_stat.html">DbEnv.txn_stat</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/txn_begin.html b/bdb/docs/api_java/txn_begin.html
deleted file mode 100644
index f81e86aeaae..00000000000
--- a/bdb/docs/api_java/txn_begin.html
+++ /dev/null
@@ -1,93 +0,0 @@
-<!--$Id: txn_begin.so,v 10.37 2001/01/11 17:47:12 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.txn_begin</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.txn_begin</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public DbTxn txn_begin(DbTxn parent, int flags)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv.txn_begin method creates a new transaction in the environment
-and returns a <a href="../api_java/txn_class.html">DbTxn</a> that uniquely identifies it.
-<p>If the <b>parent</b> argument is non-null, the new transaction will
-be a nested transaction, with the transaction indicated by
-<b>parent</b> as its parent. Transactions may be
-nested to any level.
-<p>The <b>flags</b> parameter must be set to 0 or one of the following
-values:
-<p><dl compact>
-<p><dt><a name="Db.DB_TXN_NOSYNC">Db.DB_TXN_NOSYNC</a><dd>Do not synchronously flush the log when this transaction commits or
-prepares. This means the transaction will exhibit the ACI (atomicity,
-consistency and isolation) properties, but not D (durability), i.e.,
-database integrity will be maintained but it is possible that this
-transaction may be undone during recovery instead of being redone.
-<p>This behavior may be set for an entire Berkeley DB environment as part of the
-<a href="../api_java/env_set_flags.html">DbEnv.set_flags</a> interface.
-<p><dt><a name="Db.DB_TXN_NOWAIT">Db.DB_TXN_NOWAIT</a><dd>If a lock is unavailable for any Berkeley DB operation performed in the context
-of this transaction, return immediately instead of blocking on the lock.
-The error return in the case will be <a href="../ref/program/errorret.html#DB_LOCK_NOTGRANTED">Db.DB_LOCK_NOTGRANTED</a>.
-<p><dt><a name="Db.DB_TXN_SYNC">Db.DB_TXN_SYNC</a><dd>Synchronously flush the log when this transaction commits or prepares.
-This means the transaction will exhibit all of the ACID (atomicity,
-consistency and isolation and durability) properties.
-<p>This behavior is the default for Berkeley DB environments unless the
-<a href="../api_java/env_open.html#DB_TXN_NOSYNC">Db.DB_TXN_NOSYNC</a> flag was specified to the <a href="../api_java/env_set_flags.html">DbEnv.set_flags</a>
-interface.
-</dl>
-<p><b>Note: An transaction may not span threads,
-i.e., each transaction must begin and end in the same thread, and each
-transaction may only be used by a single thread.</b>
-<p><b>Note: cursors may not span transactions, i.e., each cursor must be opened
-and closed within a single transaction.</b>
-<p><b>Note: a parent transaction may not issue any Berkeley DB operations, except for
-DbEnv.txn_begin, <a href="../api_java/txn_abort.html">DbTxn.abort</a> and <a href="../api_java/txn_commit.html">DbTxn.commit</a>, while it has
-active child transactions (child transactions that have not yet been
-committed or aborted).</b>
-<p>The DbEnv.txn_begin method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p>The DbEnv.txn_begin method may fail and throw an exception encapsulating a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>ENOMEM<dd>The maximum number of concurrent transactions has been reached.
-</dl>
-<p>The DbEnv.txn_begin method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbEnv.txn_begin method may fail and throw
-a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls
-will fail in the same way.
-<h3>Classes</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>, <a href="../api_java/txn_class.html">DbTxn</a>
-<h1>See Also</h1>
-<a href="../api_java/env_set_tx_max.html">DbEnv.set_tx_max</a>,
-<a href="../api_java/env_set_tx_timestamp.html">DbEnv.set_tx_timestamp</a>,
-<a href="../api_java/txn_abort.html">DbTxn.abort</a>,
-<a href="../api_java/txn_begin.html">DbEnv.txn_begin</a>,
-<a href="../api_java/txn_checkpoint.html">DbEnv.txn_checkpoint</a>,
-<a href="../api_java/txn_commit.html">DbTxn.commit</a>,
-<a href="../api_java/txn_id.html">DbTxn.id</a>,
-<a href="../api_java/txn_prepare.html">DbTxn.prepare</a>
-and
-<a href="../api_java/txn_stat.html">DbEnv.txn_stat</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/txn_checkpoint.html b/bdb/docs/api_java/txn_checkpoint.html
deleted file mode 100644
index f2bc7528aba..00000000000
--- a/bdb/docs/api_java/txn_checkpoint.html
+++ /dev/null
@@ -1,74 +0,0 @@
-<!--$Id: txn_checkpoint.so,v 10.25 2000/09/08 15:20:28 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.txn_checkpoint</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.txn_checkpoint</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-int
-public int txn_checkpoint(int kbyte, int min, int flags)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv.txn_checkpoint method flushes the underlying memory pool,
-writes a checkpoint record to the log and then flushes the log.
-<p>If either <b>kbyte</b> or <b>min</b> is non-zero, the checkpoint is only
-done if there has been activity since the last checkpoint and either
-more than <b>min</b> minutes have passed since the last checkpoint,
-or if more than <b>kbyte</b> kilobytes of log data have been written since
-the last checkpoint.
-<p>The <b>flags</b> parameter must be set to 0 or one of the following
-values:
-<p><dl compact>
-<p><dt><a name="Db.DB_FORCE">Db.DB_FORCE</a><dd>Force a checkpoint record even if there has been no activity since the
-last checkpoint.
-</dl>
-<p>The DbEnv.txn_checkpoint method throws an exception that encapsulates a non-zero error value on
-failure, and returns <a href="../api_c/memp_fsync.html#DB_INCOMPLETE">Db.DB_INCOMPLETE</a> if there were pages that needed to be
-written to complete the checkpoint but that <a href="../api_java/memp_sync.html">DbEnv.memp_sync</a> was unable
-to write immediately.
-<h1>Errors</h1>
-<p>The DbEnv.txn_checkpoint method may fail and throw an exception encapsulating a non-zero error for the following conditions:
-<p><dl compact>
-<p><dt>EINVAL<dd>An invalid flag value or parameter was specified.
-</dl>
-<p>The DbEnv.txn_checkpoint method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbEnv.txn_checkpoint method may fail and throw
-a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls
-will fail in the same way.
-<h3>Classes</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>, <a href="../api_java/txn_class.html">DbTxn</a>
-<h1>See Also</h1>
-<a href="../api_java/env_set_tx_max.html">DbEnv.set_tx_max</a>,
-<a href="../api_java/env_set_tx_timestamp.html">DbEnv.set_tx_timestamp</a>,
-<a href="../api_java/txn_abort.html">DbTxn.abort</a>,
-<a href="../api_java/txn_begin.html">DbEnv.txn_begin</a>,
-<a href="../api_java/txn_checkpoint.html">DbEnv.txn_checkpoint</a>,
-<a href="../api_java/txn_commit.html">DbTxn.commit</a>,
-<a href="../api_java/txn_id.html">DbTxn.id</a>,
-<a href="../api_java/txn_prepare.html">DbTxn.prepare</a>
-and
-<a href="../api_java/txn_stat.html">DbEnv.txn_stat</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/txn_class.html b/bdb/docs/api_java/txn_class.html
deleted file mode 100644
index ab386172bff..00000000000
--- a/bdb/docs/api_java/txn_class.html
+++ /dev/null
@@ -1,58 +0,0 @@
-<!--$Id: txn_class.so,v 10.13 2000/12/04 18:05:39 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbTxn</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbTxn</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public class DbTxn extends Object { ... }
-</pre></h3>
-<h1>Description</h1>
-<p>This manual page describes the specific details of the DbTxn class.
-<p>The <a href="../api_java/dbenv_class.html">DbEnv</a> transaction methods and the DbTxn class provide
-transaction semantics. Full transaction support is provided by a
-collection of modules that provide interfaces to the services required
-for transaction processing. These services are recovery, concurrency
-control and the management of shared data.
-<p>Transaction semantics can be applied to the access methods described in
-Db through method call parameters.
-<p>The model intended for transactional use (and the one that is used by
-the access methods) is write-ahead logging to record both before- and
-after-images. Locking follows a two-phase protocol, with all locks being
-released at transaction commit.
-<h3>Classes</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>, <a href="../api_java/txn_class.html">DbTxn</a>
-<h1>See Also</h1>
-<a href="../api_java/env_set_tx_max.html">DbEnv.set_tx_max</a>,
-<a href="../api_java/env_set_tx_timestamp.html">DbEnv.set_tx_timestamp</a>,
-<a href="../api_java/txn_abort.html">DbTxn.abort</a>,
-<a href="../api_java/txn_begin.html">DbEnv.txn_begin</a>,
-<a href="../api_java/txn_checkpoint.html">DbEnv.txn_checkpoint</a>,
-<a href="../api_java/txn_commit.html">DbTxn.commit</a>,
-<a href="../api_java/txn_id.html">DbTxn.id</a>,
-<a href="../api_java/txn_prepare.html">DbTxn.prepare</a>
-and
-<a href="../api_java/txn_stat.html">DbEnv.txn_stat</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/txn_commit.html b/bdb/docs/api_java/txn_commit.html
deleted file mode 100644
index 53aa0df4622..00000000000
--- a/bdb/docs/api_java/txn_commit.html
+++ /dev/null
@@ -1,85 +0,0 @@
-<!--$Id: txn_commit.so,v 10.27 2000/12/31 19:26:21 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbTxn.commit</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbTxn.commit</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public void commit(u_int32_t flags)
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>The DbTxn.commit method ends the transaction. In the case of nested
-transactions, if the transaction is a parent transaction, committing
-the parent transaction causes all unresolved children of the parent to
-be committed.
-<p>In the case of nested transactions, if the transaction is a child
-transaction, its locks are not released, but are acquired by its parent.
-While the commit of the child transaction will succeed, the actual
-resolution of the child transaction is postponed until the parent
-transaction is committed or aborted, i.e., if its parent transaction
-commits, it will be committed, and if its parent transaction aborts, it
-will be aborted.
-<p>The <b>flags</b> parameter must be set to 0 or one of the following
-values:
-<p><dl compact>
-<p><dt><a name="Db.DB_TXN_NOSYNC">Db.DB_TXN_NOSYNC</a><dd>Do not synchronously flush the log. This means the transaction will
-exhibit the ACI (atomicity, consistency and isolation) properties, but
-not D (durability), i.e., database integrity will be maintained but it is
-possible that this transaction may be undone during recovery instead of
-being redone.
-<p>This behavior may be set for an entire Berkeley DB environment as part of the
-<a href="../api_java/env_set_flags.html">DbEnv.set_flags</a> interface.
-<p><dt><a name="Db.DB_TXN_SYNC">Db.DB_TXN_SYNC</a><dd>Synchronously flush the log. This means the transaction will exhibit
-all of the ACID (atomicity, consistency and isolation and durability)
-properties.
-<p>This behavior is the default for Berkeley DB environments unless the
-<a href="../api_java/env_open.html#DB_TXN_NOSYNC">Db.DB_TXN_NOSYNC</a> flag was specified to the <a href="../api_java/env_set_flags.html">DbEnv.set_flags</a>
-or <a href="../api_java/txn_begin.html">DbEnv.txn_begin</a> interfaces.
-</dl>
-<p>Once the DbTxn.commit method returns, the <a href="../api_java/txn_class.html">DbTxn</a> handle may not
-be accessed again. If DbTxn.commit encounters an error, the
-transaction and all child transactions of the transaction are aborted.
-<p>The DbTxn.commit method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p>The DbTxn.commit method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbTxn.commit method may fail and throw
-a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls
-will fail in the same way.
-<h3>Classes</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>, <a href="../api_java/txn_class.html">DbTxn</a>
-<h1>See Also</h1>
-<a href="../api_java/env_set_tx_max.html">DbEnv.set_tx_max</a>,
-<a href="../api_java/env_set_tx_timestamp.html">DbEnv.set_tx_timestamp</a>,
-<a href="../api_java/txn_abort.html">DbTxn.abort</a>,
-<a href="../api_java/txn_begin.html">DbEnv.txn_begin</a>,
-<a href="../api_java/txn_checkpoint.html">DbEnv.txn_checkpoint</a>,
-<a href="../api_java/txn_commit.html">DbTxn.commit</a>,
-<a href="../api_java/txn_id.html">DbTxn.id</a>,
-<a href="../api_java/txn_prepare.html">DbTxn.prepare</a>
-and
-<a href="../api_java/txn_stat.html">DbEnv.txn_stat</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/txn_id.html b/bdb/docs/api_java/txn_id.html
deleted file mode 100644
index 89fc62a37b6..00000000000
--- a/bdb/docs/api_java/txn_id.html
+++ /dev/null
@@ -1,51 +0,0 @@
-<!--$Id: txn_id.so,v 10.12 1999/12/20 08:52:32 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbTxn.id</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbTxn.id</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public int id()
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>The DbTxn.id method returns the unique transaction id associated with the
-specified transaction. Locking calls made on behalf of this transaction
-should use the value returned from DbTxn.id as the locker parameter
-to the <a href="../api_java/lock_get.html">DbEnv.lock_get</a> or <a href="../api_java/lock_vec.html">DbEnv.lock_vec</a> calls.
-<h3>Classes</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>, <a href="../api_java/txn_class.html">DbTxn</a>
-<h1>See Also</h1>
-<a href="../api_java/env_set_tx_max.html">DbEnv.set_tx_max</a>,
-<a href="../api_java/env_set_tx_timestamp.html">DbEnv.set_tx_timestamp</a>,
-<a href="../api_java/txn_abort.html">DbTxn.abort</a>,
-<a href="../api_java/txn_begin.html">DbEnv.txn_begin</a>,
-<a href="../api_java/txn_checkpoint.html">DbEnv.txn_checkpoint</a>,
-<a href="../api_java/txn_commit.html">DbTxn.commit</a>,
-<a href="../api_java/txn_id.html">DbTxn.id</a>,
-<a href="../api_java/txn_prepare.html">DbTxn.prepare</a>
-and
-<a href="../api_java/txn_stat.html">DbEnv.txn_stat</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/txn_prepare.html b/bdb/docs/api_java/txn_prepare.html
deleted file mode 100644
index 09feae726d6..00000000000
--- a/bdb/docs/api_java/txn_prepare.html
+++ /dev/null
@@ -1,65 +0,0 @@
-<!--$Id: txn_prepare.so,v 10.17 2000/12/31 19:26:21 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbTxn.prepare</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbTxn.prepare</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public void prepare()
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>The DbTxn.prepare method initiates the beginning of a two-phase commit.
-<p>In a distributed transaction environment, Berkeley DB can be used as a local
-transaction manager. In this case, the distributed transaction manager
-must send <i>prepare</i> messages to each local manager. The local
-manager must then issue a DbTxn.prepare and await its successful
-return before responding to the distributed transaction manager. Only
-after the distributed transaction manager receives successful responses
-from all of its <i>prepare</i> messages should it issue any
-<i>commit</i> messages.
-<p>In the case of nested transactions, preparing a parent transaction
-causes all unresolved children of the parent transaction to be prepared.
-<p>The DbTxn.prepare method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p>The DbTxn.prepare method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbTxn.prepare method may fail and throw
-a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls
-will fail in the same way.
-<h3>Classes</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>, <a href="../api_java/txn_class.html">DbTxn</a>
-<h1>See Also</h1>
-<a href="../api_java/env_set_tx_max.html">DbEnv.set_tx_max</a>,
-<a href="../api_java/env_set_tx_timestamp.html">DbEnv.set_tx_timestamp</a>,
-<a href="../api_java/txn_abort.html">DbTxn.abort</a>,
-<a href="../api_java/txn_begin.html">DbEnv.txn_begin</a>,
-<a href="../api_java/txn_checkpoint.html">DbEnv.txn_checkpoint</a>,
-<a href="../api_java/txn_commit.html">DbTxn.commit</a>,
-<a href="../api_java/txn_id.html">DbTxn.id</a>,
-<a href="../api_java/txn_prepare.html">DbTxn.prepare</a>
-and
-<a href="../api_java/txn_stat.html">DbEnv.txn_stat</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_java/txn_stat.html b/bdb/docs/api_java/txn_stat.html
deleted file mode 100644
index cb033ccde82..00000000000
--- a/bdb/docs/api_java/txn_stat.html
+++ /dev/null
@@ -1,95 +0,0 @@
-<!--$Id: txn_stat.so,v 10.27 2000/05/25 13:47:08 dda Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: DbEnv.txn_stat</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>DbEnv.txn_stat</h1>
-</td>
-<td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>
-import com.sleepycat.db.*;
-<p>
-public DbTxnStat txn_stat()
- throws DbException;
-</pre></h3>
-<h1>Description</h1>
-<p>The DbEnv.txn_stat method
-creates a DbTxnStat object encapsulating a statistical structure.
-The transaction region statistics are stored in a DbTxnStat object.
-The following data fields are available from the DbTxnStat object:
-<p>Statistical structures are created in allocated memory. If <b>db_malloc</b> is non-NULL, it
-is called to allocate the memory, otherwise, the library function
-<b>malloc</b>(3) is used. The function <b>db_malloc</b> must match
-the calling conventions of the <b>malloc</b>(3) library routine.
-Regardless, the caller is responsible for deallocating the returned
-memory. To deallocate returned memory, free the returned memory
-reference, references inside the returned memory do not need to be
-individually freed.
-<p>The transaction region statistics are stored in a structure of type
-DB_TXN_STAT. The following DB_TXN_STAT fields will be filled in:
-<p><dl compact>
-<dt>public <a href="../api_java/lsn_class.html">DbLsn</a> st_last_ckp;<dd>The LSN of the last checkpoint.
-<dt>public <a href="../api_java/lsn_class.html">DbLsn</a> st_pending_ckp;<dd>The LSN of any checkpoint that is currently in progress. If
-<b>st_pending_ckp</b> is the same as <b>st_last_ckp</b> there
-is no checkpoint in progress.
-<dt>public long st_time_ckp;<dd>The time the last completed checkpoint finished (as the number of seconds
-since the Epoch, returned by the IEEE/ANSI Std 1003.1 (POSIX) <b>time</b> interface).
-<dt>public int st_last_txnid;<dd>The last transaction ID allocated.
-<dt>public int st_maxtxns;<dd>The maximum number of active transactions possible.
-<dt>public int st_nactive;<dd>The number of transactions that are currently active.
-<dt>public int st_maxnactive;<dd>The maximum number of active transactions at any one time.
-<dt>public int st_nbegins;<dd>The number of transactions that have begun.
-<dt>public int st_naborts;<dd>The number of transactions that have aborted.
-<dt>public int st_ncommits;<dd>The number of transactions that have committed.
-<dt>public int st_regsize;<dd>The size of the region.
-<dt>public int st_region_wait;<dd>The number of times that a thread of control was forced to wait before
-obtaining the region lock.
-<dt>public int st_region_nowait;<dd>The number of times that a thread of control was able to obtain
-the region lock without waiting.
-<dt>public Active st_txnarray[];<dd>The array of active transactions. Each element of the array is an object
-of type DbTxnStat.Active, a top level inner class, that has the following
-fields:
-<p><dl compact>
-<p><dt>public int txnid;<dd>The Transaction ID.
-<dt>public DbLsn lsn;<dd>The Lsn of the begin record.
-</dl>
-</dl>
-<p>The DbEnv.txn_stat method throws an exception that encapsulates a non-zero error value on
-failure.
-<h1>Errors</h1>
-<p>The DbEnv.txn_stat method may fail and throw an exception for errors specified for other Berkeley DB and C library or system methods.
-If a catastrophic error has occurred, the DbEnv.txn_stat method may fail and throw
-a <a href="../api_java/runrec_class.html">DbRunRecoveryException</a>, in which case all subsequent Berkeley DB calls
-will fail in the same way.
-<h3>Classes</h3>
-<a href="../api_java/dbenv_class.html">DbEnv</a>, <a href="../api_java/txn_class.html">DbTxn</a>
-<h1>See Also</h1>
-<a href="../api_java/env_set_tx_max.html">DbEnv.set_tx_max</a>,
-<a href="../api_java/env_set_tx_timestamp.html">DbEnv.set_tx_timestamp</a>,
-<a href="../api_java/txn_abort.html">DbTxn.abort</a>,
-<a href="../api_java/txn_begin.html">DbEnv.txn_begin</a>,
-<a href="../api_java/txn_checkpoint.html">DbEnv.txn_checkpoint</a>,
-<a href="../api_java/txn_commit.html">DbTxn.commit</a>,
-<a href="../api_java/txn_id.html">DbTxn.id</a>,
-<a href="../api_java/txn_prepare.html">DbTxn.prepare</a>
-and
-<a href="../api_java/txn_stat.html">DbEnv.txn_stat</a>.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_java/java_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_tcl/db_close.html b/bdb/docs/api_tcl/db_close.html
deleted file mode 100644
index eaae3165588..00000000000
--- a/bdb/docs/api_tcl/db_close.html
+++ /dev/null
@@ -1,59 +0,0 @@
-<!--$Id: db_close.so,v 11.10 1999/12/20 08:52:33 bostic Exp $-->
-<!--$Id: m4.tcl,v 11.17 2000/04/24 17:31:11 sue Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db close</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1><i>db</i> <b>close</b></h1>
-</td>
-<td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>db close
- [-nosync]
-</pre></h3>
-<h1>Description</h1>
-<p>The <i>db</i> <b>close</b> command flushes any cached database information to
-disk, closes any open cursors, frees any allocated resources, and closes
-any underlying files. Since key/data pairs are cached in memory, failing
-to sync the file with the <i>db</i> <b>close</b> or <i>db</i> <b>sync</b> command may
-result in inconsistent or lost information.
-<p>The options are as follows:
-<p><dl compact>
-<p><dt>-nosync<dd>Do not flush cached information to disk.
-<p>The -nosync flag is a dangerous option. It should only be set if the
-application is doing logging (with transactions) so that the database is
-recoverable after a system or application crash, or if the database is
-always generated from scratch after any system or application crash.
-<p>It is important to understand that flushing cached information to disk
-only minimizes the window of opportunity for corrupted data. While
-unlikely, it is possible for database corruption to happen if a system or
-application crash occurs while writing data to the database. To ensure
-that database corruption never occurs, applications must either: use
-transactions and logging with automatic recovery, use logging and
-application-specific recovery, or edit a copy of the database, and, once
-all applications using the database have successfully called
-<i>db</i> <b>close</b>, atomically replace the original database with the updated
-copy.
-</dl>
-<p>Once <i>db</i> <b>close</b> has been called, regardless of its return, the DB
-handle may not be accessed again.
-<p>The <i>db</i> <b>close</b> command returns 0 on success, and in the case of error, a Tcl error
-is thrown.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_tcl/db_count.html b/bdb/docs/api_tcl/db_count.html
deleted file mode 100644
index 123c030ccff..00000000000
--- a/bdb/docs/api_tcl/db_count.html
+++ /dev/null
@@ -1,38 +0,0 @@
-<!--$Id: db_count.so,v 11.1 2000/02/02 18:23:19 sue Exp $-->
-<!--$Id: m4.tcl,v 11.17 2000/04/24 17:31:11 sue Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db count</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1><i>db</i> <b>count</b></h1>
-</td>
-<td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>db count key
-</pre></h3>
-<h1>Description</h1>
-<p>The <i>db</i> <b>count</b> command returns a count of the number
-of duplicate data items for the key given.
-If the key does not exist, a value of 0 is returned.
-If there are no duplicates, or the database does not support
-duplicates, but a key/data pair exists, a value of 1 is returned.
-If an error occurs, a Berkeley DB error message is returned or a Tcl error is
-thrown.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_tcl/db_cursor.html b/bdb/docs/api_tcl/db_cursor.html
deleted file mode 100644
index 79187650dda..00000000000
--- a/bdb/docs/api_tcl/db_cursor.html
+++ /dev/null
@@ -1,42 +0,0 @@
-<!--$Id: db_cursor.so,v 11.10 1999/12/20 08:52:33 bostic Exp $-->
-<!--$Id: m4.tcl,v 11.17 2000/04/24 17:31:11 sue Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db cursor</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1><i>db</i> <b>cursor</b></h1>
-</td>
-<td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>db cursor
- [-txn txnid]
-</pre></h3>
-<h1>Description</h1>
-<p>The <i>db</i> <b>cursor</b> command creates a database cursor. The returned
-cursor handle is bound to a Tcl command of the form <b>dbN.cX</b>, where
-X is an integer starting at 0 (e.g., db0.c0 and db0.c1). It is through
-this Tcl command that the script accesses the cursor methods.
-<p>The options are as follows:
-<p><dl compact>
-<p><dt>-txn txnid<dd>If the file is being accessed under transaction protection, the
-<b>txnid</b> parameter is a transaction handle returned from <i>env</i> <b>txn</b>.
-</dl>
-<p>In the case of error, a Tcl error is thrown.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_tcl/db_del.html b/bdb/docs/api_tcl/db_del.html
deleted file mode 100644
index b3340312ab2..00000000000
--- a/bdb/docs/api_tcl/db_del.html
+++ /dev/null
@@ -1,47 +0,0 @@
-<!--$Id: db_del.so,v 11.10 2000/03/15 16:43:04 sue Exp $-->
-<!--$Id: m4.tcl,v 11.17 2000/04/24 17:31:11 sue Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db del</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1><i>db</i> <b>del</b></h1>
-</td>
-<td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>db del
- [-glob]
- [-txn txnid]
- key
-</pre></h3>
-<h1>Description</h1>
-<p>The <i>db</i> <b>del</b> command removes key/data pairs from the database.
-<p>In the presence of duplicate key values, all records associated with the
-designated key will be discarded.
-<p>The options are as follows:
-<p><dl compact>
-<p><dt>-glob<dd>The specified key is a wildcard pattern, and all keys matching that
-pattern are discarded from the database. The pattern is a simple
-wildcard, any characters after the wildcard character are ignored.
-<p><dt>-txn txnid<dd>If the file is being accessed under transaction protection, the
-<b>txnid</b> parameter is a transaction handle returned from <i>env</i> <b>txn</b>.
-</dl>
-<p>The <i>db</i> <b>del</b> command returns 0 on success, and in the case of error, a Tcl error
-is thrown.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_tcl/db_get.html b/bdb/docs/api_tcl/db_get.html
deleted file mode 100644
index 391f156529a..00000000000
--- a/bdb/docs/api_tcl/db_get.html
+++ /dev/null
@@ -1,98 +0,0 @@
-<!--$Id: db_get.so,v 11.13 2000/11/28 20:12:30 bostic Exp $-->
-<!--$Id: m4.tcl,v 11.17 2000/04/24 17:31:11 sue Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db get</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1><i>db</i> <b>get</b></h1>
-</td>
-<td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>db get
- [-consume]
- [-consume_wait]
- [-glob]
- [-partial {doff dlen}]
- [-recno]
- [-rmw]
- [-txn txnid]
- key
-db get
- -get_both
- [-partial {doff dlen}]
- [-rmw]
- [-txn txnid]
- key data
-</pre></h3>
-<h1>Description</h1>
-<p>The <i>db</i> <b>get</b> command returns key/data pairs from the database.
-<p>In the presence of duplicate key values, <i>db</i> <b>get</b> will return all
-duplicate items. Duplicates are sorted by insert order except where this
-order has been overridden by cursor operations.
-<p>The options are as follows:
-<p><dl compact>
-<p><dt>-consume<dd>Return the record number and data from the available record closest to
-the head of the queue and delete the record. The cursor will be
-positioned on the deleted record. A record is available if it is not
-deleted and is not currently locked. The underlying database must be
-of type Queue for <b>-consume</b> to be specified.
-<p><dt>-consume_wait<dd>The same as the <b>-consume</b> flag except that if the Queue database
-is empty, the thread of control will wait until there is data in the
-queue before returning. The underlying database must be of type Queue
-for <b>-consume_wait</b> to be specified.
-<p><dt>-get_both key data<dd>Retrieve the key/data pair only if both the key and data match the
-arguments.
-<p><dt>-glob<dd>Return all keys matching the given key, where the key is a simple wildcard
-pattern. Where it is used, it replaces the use of the key with the given
-pattern of a set of keys. Any characters after the wildcard character
-are ignored. For example, in a database of last names, the
-command "db0 get Jones" will return all of the "Jones" in the database,
-and the command "db0 get -glob Jo*" will return both "Jones" and "Johnson"
-from the database. The command "db0 get -glob *" will return all of the
-key/data pairs in the database.
-<p><dt>-partial {doff dlen}<dd>The <b>dlen</b> bytes starting <b>doff</b> bytes from the beginning of
-the retrieved data record are returned as if they comprised the entire
-record. If any or all of the specified bytes do not exist in the record,
-the command is successful and the existing bytes or 0 bytes are
-returned.
-<p><dt>-recno<dd>Retrieve the specified numbered key/data pair from a database. For
-<b>-recno</b> to be specified, the specified key must be a record number
-and the underlying database must be of type Recno or Queue, or of type
-Btree that was created with the <b>-recnum</b> option.
-<p><dt>-rmw<dd>Acquire write locks instead of read locks when doing the retrieval.
-Setting this flag may decrease the likelihood of deadlock during a
-read-modify-write cycle by immediately acquiring the write lock during
-the read part of the cycle so that another thread of control acquiring a
-read lock for the same item, in its own read-modify-write cycle, will not
-result in deadlock.
-<p>As the <i>db</i> <b>get</b> command will not hold locks across Berkeley DB interface
-calls in non-transactional environments, the <b>-rmw</b> argument to the
-<i>db</i> <b>get</b> call is only meaningful in the presence of transactions.
-<p><dt>-txn txnid<dd>If the file is being accessed under transaction protection, the
-<b>txnid</b> parameter is a transaction handle returned from <i>env</i> <b>txn</b>.
-</dl>
-<p>If the underlying database is a Queue or Recno database, then the given
-key will be interpreted by Tcl as an integer. For all other database
-types, the key is interpreted by Tcl as a byte array unless indicated
-by a given option.
-<p>A list of key/data pairs is returned. In the error case that no matching
-key exists, an empty list is returned. In all other cases, a Tcl error
-is thrown.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_tcl/db_get_join.html b/bdb/docs/api_tcl/db_get_join.html
deleted file mode 100644
index e2ede7e47d4..00000000000
--- a/bdb/docs/api_tcl/db_get_join.html
+++ /dev/null
@@ -1,45 +0,0 @@
-<!--$Id: db_get_join.so,v 11.15 2000/12/04 18:05:39 bostic Exp $-->
-<!--$Id: m4.tcl,v 11.17 2000/04/24 17:31:11 sue Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db get_join</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1><i>db</i> <b>get_join</b></h1>
-</td>
-<td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>db get_join
- [-txn txnid]
- {<i>db</i> key}
- {<i>db</i> key}
- ...
-</pre></h3>
-<h1>Description</h1>
-<p>The <i>db</i> <b>get_join</b> command performs the cursor operations required to
-join the specified keys and returns a list of joined {key data} pairs.
-See <a href="../ref/am/join.html">Logical join</a> for more information on
-the underlying requirements for joining.
-<p>The options are as follows:
-<p><dl compact>
-<p><dt>-txn txnid<dd>If the file is being accessed under transaction protection, the
-<b>txnid</b> parameter is a transaction handle returned from <i>env</i> <b>txn</b>.
-</dl>
-<p>In the case of error, a Tcl error is thrown.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_tcl/db_get_type.html b/bdb/docs/api_tcl/db_get_type.html
deleted file mode 100644
index 75fac1e78ae..00000000000
--- a/bdb/docs/api_tcl/db_get_type.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!--$Id: db_get_type.so,v 11.9 1999/12/20 08:52:34 bostic Exp $-->
-<!--$Id: m4.tcl,v 11.17 2000/04/24 17:31:11 sue Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db get_type</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1><i>db</i> <b>get_type</b></h1>
-</td>
-<td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>db get_type
-</pre></h3>
-<h1>Description</h1>
-<p>The <i>db</i> <b>get_type</b> command returns the underlying database type,
-returning one of "btree", "hash", "queue" or "recno".
-<p>In the case of error, a Tcl error is thrown.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_tcl/db_is_byteswapped.html b/bdb/docs/api_tcl/db_is_byteswapped.html
deleted file mode 100644
index 6a196eddf73..00000000000
--- a/bdb/docs/api_tcl/db_is_byteswapped.html
+++ /dev/null
@@ -1,37 +0,0 @@
-<!--$Id: db_is_byteswapped.so,v 11.10 1999/12/20 08:52:34 bostic Exp $-->
-<!--$Id: m4.tcl,v 11.17 2000/04/24 17:31:11 sue Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db is_byteswapped</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1><i>db</i> <b>is_byteswapped</b></h1>
-</td>
-<td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>db is_byteswapped
-</pre></h3>
-<h1>Description</h1>
-<p>The <i>db</i> <b>is_byteswapped</b> command returns 0 if the underlying database
-files were created on an architecture of the same byte order as the
-current one, and 1 if they were not (i.e., big-endian on a little-endian
-machine or vice-versa). This value may be used to determine if application
-data needs to be adjusted for this architecture or not.
-<p>In the case of error, a Tcl error is thrown.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_tcl/db_join.html b/bdb/docs/api_tcl/db_join.html
deleted file mode 100644
index ba3f0a2e5cb..00000000000
--- a/bdb/docs/api_tcl/db_join.html
+++ /dev/null
@@ -1,48 +0,0 @@
-<!--$Id: db_join.so,v 11.16 2000/12/04 18:05:39 bostic Exp $-->
-<!--$Id: m4.tcl,v 11.17 2000/04/24 17:31:11 sue Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db join</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1><i>db</i> <b>join</b></h1>
-</td>
-<td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>db join
- <i>db.cX</i>
- <i>db.cY</i>
- <i>db.cZ</i>
- ...
-</pre></h3>
-<h1>Description</h1>
-<p>The <i>db</i> <b>join</b> command joins the specified cursors and returns a
-cursor handle that can be used to iterate through the joined {key data}
-pairs. The returned cursor handle is bound to a Tcl command of the form
-<b>dbN.cX</b>, where X is an integer starting at 0 (e.g., db0.c0 and
-db0.c1). It is through this Tcl command that the script accesses the
-cursor methods.
-<p>The returned join cursor has limited cursor functionality and only the
-<i>dbc</i> <b>get</b> and <i>dbc</i> <b>close</b> commands will succeed.
-<p>See <a href="../ref/am/join.html">Logical join</a> for more information on
-the underlying requirements for joining.
-<p>In a transaction protected environment, all of the cursors listed must
-have been created within the same transaction.
-<p>In the case of error, a Tcl error is thrown.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_tcl/db_open.html b/bdb/docs/api_tcl/db_open.html
deleted file mode 100644
index 4f7b651e552..00000000000
--- a/bdb/docs/api_tcl/db_open.html
+++ /dev/null
@@ -1,300 +0,0 @@
-<!--$Id: db_open.so,v 11.18 2000/11/27 18:14:47 sue Exp $-->
-<!--$Id: m4.tcl,v 11.17 2000/04/24 17:31:11 sue Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: berkdb open</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1><b>berkdb open</b></h1>
-</td>
-<td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>berkdb open
- [-btree | -hash | -recno | -queue | -unknown]
- [-cachesize {gbytes bytes ncache}]
- [-create]
- [-delim delim]
- [-dup]
- [-dupsort]
- [-env env]
- [-errfile filename]
- [-excl]
- [-extent size]
- [-ffactor density]
- [-len len]
- [-mode mode]
- [-nelem size]
- [-pad pad]
- [-pagesize pagesize]
- [-rdonly]
- [-recnum]
- [-renumber]
- [-snapshot]
- [-source file]
- [-truncate]
- [-upgrade]
- [--]
- [file [database]]
-</pre></h3>
-<h1>Description</h1>
-<p>The <b>berkdb open</b> command opens, and optionally creates, a database.
-The returned database handle is bound to a Tcl command of the form
-<b>dbN</b>, where N is an integer starting at 0 (e.g., db0 and db1).
-It is through this Tcl command that the script accesses the database
-methods.
-<p>The options are as follows:
-<p><dl compact>
-<p><dt>-btree<dd>Open/create a database of type Btree. The Btree format
-is a representation of a sorted, balanced tree structure.
-<p><dt>-hash<dd>Open/create a database of type Hash. The Hash format is
-an extensible, dynamic hashing scheme.
-<p><dt>-queue<dd>Open/create a database of type Queue. The Queue format
-supports fast access to fixed-length records accessed by sequentially or
-logical record number.
-<p><dt>-recno<dd>Open/create a database of type Recno. The Recno format
-supports fixed- or variable-length records, accessed sequentially or by
-logical record number, and optionally retrieved from a flat text file.
-<p><dt>-unknown<dd>The database is of an unknown type, and must already exist.
-<p><dt>-cachesize {gbytes bytes ncache}<dd>Set the size of the database's shared memory buffer pool, i.e., the cache,
-to <b>gbytes</b> gigabytes plus <b>bytes</b>. The cache should be the
-size of the normal working data set of the application, with some small
-amount of additional memory for unusual situations. (Note, the working
-set is not the same as the number of simultaneously referenced pages, and
-should be quite a bit larger!)
-<p>The default cache size is 256KB, and may not be specified as less than
-20KB. Any cache size less than 500MB is automatically increased by 25%
-to account for buffer pool overhead, cache sizes larger than 500MB are
-used as specified.
-<p>It is possible to specify caches to Berkeley DB that are large enough so that
-they cannot be allocated contiguously on some architectures, e.g., some
-releases of Solaris limit the amount of memory that may be allocated
-contiguously by a process. If <b>ncache</b> is 0 or 1, the cache will
-be allocated contiguously in memory. If it is greater than 1, the cache
-will be broken up into <b>ncache</b> equally sized separate pieces of
-memory.
-<p>For information on tuning the Berkeley DB cache size, see
-<a href="../ref/am_conf/cachesize.html">Selecting a cache size</a>.
-<p>As databases opened within Berkeley DB environments use the cache specified to
-the environment, it is an error to attempt to set a cache in a database
-created within an environment.
-<p><dt>-create<dd>Create any underlying files, as necessary. If the files do not already
-exist and the <b>-create</b> argument is not specified, the call will
-fail.
-<p><dt>-delim delim<dd>Set the delimiting byte used to mark the end of a record in the backing
-source file for the Recno access method.
-<p>This byte is used for variable length records, if the <b>-source</b>
-argument file is specified. If the <b>-source</b> argument file is
-specified and no delimiting byte was specified, &lt;newline&gt;
-characters (i.e. ASCII 0x0a) are interpreted as end-of-record markers.
-<p><dt>-dup<dd>Permit duplicate data items in the tree, i.e. insertion when the key of the
-key/data pair being inserted already exists in the tree will be successful.
-The ordering of duplicates in the tree is determined by the order of
-insertion, unless the ordering is otherwise specified by use of a cursor or
-a duplicate comparison function.
-<p>It is an error to specify both <b>-dup</b> and <b>-recnum</b>.
-<p><dt>-dupsort<dd>Sort duplicates within a set of data items. A default, lexical comparison
-will be used. Specifying that duplicates are to be sorted changes the
-behavior of the <i>db</i> <b>put</b> operation as well as the <i>dbc</i> <b>put</b>
-operation when the <b>-keyfirst</b>, <b>-keylast</b> and
-<b>-current</b> options are specified.
-<p><dt>-env env<dd>If no <b>-env</b> argument is given, the database is standalone, i.e.,
-it is not part of any Berkeley DB environment.
-<p>If a <b>-env</b> argument is given, the database is created within the
-specified Berkeley DB environment. The database access methods automatically
-make calls to the other subsystems in Berkeley DB based on the enclosing
-environment. For example, if the environment has been configured to use
-locking, then the access methods will automatically acquire the correct
-locks when reading and writing pages of the database.
-<p><dt>-errfile filename<dd>
-<p>When an error occurs in the Berkeley DB library, a Berkeley DB error or an error
-return value is returned by the function. In some cases, however, the
-errno value may be insufficient to completely describe the cause of the
-error especially during initial application debugging.
-<p>The <b>-errfile</b> argument is used to enhance the mechanism for
-reporting error messages to the application by specifying a file to be
-used for displaying additional Berkeley DB error messages. In some cases, when
-an error occurs, Berkeley DB will output an additional error message to the
-specified file reference.
-<p>The error message will consist of a Tcl command name and a colon (":"),
-an error string, and a trailing &lt;newline&gt; character. If the
-database was opened in an environment the Tcl command name will be the
-environment name (e.g., env0), otherwise it will be the database command
-name (e.g., db0).
-<p>This error logging enhancement does not slow performance or significantly
-increase application size, and may be run during normal operation as well
-as during application debugging.
-<p>For database handles opened inside of Berkeley DB environments, specifying the
-<b>-errfile</b> argument affects the entire environment and is equivalent
-to specifying the same argument to the <b>berkdb env</b> command.
-<p><dt>-excl<dd>Return an error if the file already exists. Underlying filesystem
-primitives are used to implement this flag. For this reason it is only
-applicable to the physical database file and cannot be used to test if a
-database in a file already exists.
-<p><dt>-extent size<dd>Set the size of the extents of the Queue database, The size is specified
-as the number of pages in an extent.
-Each extent is created as a separate physical file. If no extent size
-is set, the default behavior is to create only
-a single underlying database file.
-<p>For information on tuning the extent size, see
-<a href="../ref/am_conf/extentsize.html">Selecting a extent size</a>.
-<p><dt>-ffactor density<dd>Set the desired density within the hash table.
-<p>The density is an approximation of the number of keys allowed to
-accumulate in any one bucket
-<p><dt>-len len<dd>For the Queue access method, specify that the records are of length
-<b>len</b>.
-<p>For the Recno access method, specify that the records are fixed-length,
-not byte delimited, and are of length <b>len</b>.
-<p>Any records added to the database that are less than <b>len</b> bytes
-long are automatically padded (see the <b>-pad</b> argument for more
-information).
-<p>Any attempt to insert records into the database that are greater than
-<b>len</b> bytes long will cause the call to fail immediately and return
-an error.
-<p><dt>-mode mode<dd>
-<p>On UNIX systems, or in IEEE/ANSI Std 1003.1 (POSIX) environments, all files created by the access methods
-are created with mode <b>mode</b> (as described in <b>chmod</b>(2)) and
-modified by the process' umask value at the time of creation (see
-<b>umask</b>(2)). The group ownership of created files is based on
-the system and directory defaults, and is not further specified by Berkeley DB.
-If <b>mode</b> is 0, files are created readable and writeable by both
-owner and group. On Windows systems, the mode argument is ignored.
-<p><dt>-nelem size<dd>Set an estimate of the final size of the hash table.
-<p>If not set or set too low, hash tables will still expand gracefully as
-keys are entered, although a slight performance degradation may be
-noticed.
-<p><dt>-pad pad<dd>Set the padding character for short, fixed-length records for the Queue
-and Recno access methods.
-<p>If no pad character is specified, &lt;space&gt; characters (i.e.,
-ASCII 0x20) are used for padding.
-<p><dt>-pagesize pagesize<dd>Set the size of the pages used to hold items in the database, in bytes.
-The minimum page size is 512 bytes and the maximum page size is 64K bytes.
-If the page size is not explicitly set, one is selected based on the
-underlying filesystem I/O block size. The automatically selected size
-has a lower limit of 512 bytes and an upper limit of 16K bytes.
-<p>For information on tuning the Berkeley DB page size, see
-<a href="../ref/am_conf/pagesize.html">Selecting a page size</a>.
-<p><dt>-rdonly<dd>Open the database for reading only. Any attempt to modify items in the
-database will fail regardless of the actual permissions of any underlying
-files.
-<p><dt>-recnum<dd>Support retrieval from the Btree using record numbers.
-<p>Logical record numbers in Btree databases are mutable in the face of
-record insertion or deletion. See the <b>-renumber</b> argument for
-further discussion.
-<p>Maintaining record counts within a Btree introduces a serious point of
-contention, namely the page locations where the record counts are stored. In
-addition, the entire tree must be locked during both insertions and
-deletions, effectively single-threading the tree for those operations.
-Specifying <b>-recnum</b> can result in serious performance degradation
-for some applications and data sets.
-<p>It is an error to specify both <b>-dup</b> and <b>-recnum</b>.
-<p><dt>-renumber<dd>Specifying the <b>-renumber</b> argument causes the logical record
-numbers to be mutable, and change as records are added to and deleted from
-the database. For example, the deletion of record number 4 causes records
-numbered 5 and greater to be renumbered downward by 1. If a cursor was
-positioned to record number 4 before the deletion, it will reference the
-new record number 4, if any such record exists, after the deletion. If a
-cursor was positioned after record number 4 before the deletion, it will
-be shifted downward 1 logical record, continuing to reference the same
-record as it did before.
-<p>Using the <i>db</i> <b>put</b> or <i>dbc</i> <b>put</b> interfaces to create new records will
-cause the creation of multiple records if the record number is more than one
-greater than the largest record currently in the database. For example,
-creating record 28, when record 25 was previously the last record in the
-database, will create records 26 and 27 as well as 28.
-<p>If a created record is not at the end of the database, all records following
-the new record will be automatically renumbered upward by 1. For example,
-the creation of a new record numbered 8 causes records numbered 8 and
-greater to be renumbered upward by 1. If a cursor was positioned to record
-number 8 or greater before the insertion, it will be shifted upward 1
-logical record, continuing to reference the same record as it did before.
-<p>For these reasons, concurrent access to a Recno database with the
-<b>-renumber</b> flag specified may be largely meaningless, although it
-is supported.
-<p><dt>-snapshot<dd>This argument specifies that any specified <b>-source</b> file be read
-in its entirety when the database is opened. If this argument is not
-specified, the <b>-source</b> file may be read lazily.
-<p><dt>-source file<dd>Set the underlying source file for the Recno access method. The purpose
-of the <b>-source</b> file is to provide fast access and modification
-to databases that are normally stored as flat text files.
-<p>If the <b>-source</b> argument is give, it specifies an underlying flat
-text database file that is read to initialize a transient record number
-index. In the case of variable length records, the records are separated
-as specified by <b>-delim</b>. For example, standard UNIX byte stream
-files can be interpreted as a sequence of variable length records
-separated by &lt;newline&gt; characters.
-<p>In addition, when cached data would normally be written back to the
-underlying database file (e.g., the <i>db</i> <b>close</b> or <i>db</i> <b>sync</b>
-commands are called), the in-memory copy of the database will be written
-back to the <b>-source</b> file.
-<p>By default, the backing source file is read lazily, i.e., records are not
-read from the file until they are requested by the application.
-<b>If multiple processes (not threads) are accessing a Recno database
-concurrently and either inserting or deleting records, the backing source
-file must be read in its entirety before more than a single process
-accesses the database, and only that process should specify the backing
-source argument as part of the <b>berkdb open</b> call. See the <b>-snapshot</b>
-argument for more information.</b>
-<p><b>Reading and writing the backing source file specified by <b>-source</b>
-cannot be transactionally protected because it involves filesystem
-operations that are not part of the Berkeley DB transaction methodology.</b>
-For this reason, if a temporary database is used to hold the records,
-i.e., no <b>file</b> argument was specified to the <b>berkdb open</b> call,
-it is possible to lose the contents of the <b>-file</b> file, e.g., if
-the system crashes at the right instant. If a file is used to hold the
-database, i.e., a file name was specified as the <b>file</b> argument
-to <b>berkdb open</b>, normal database recovery on that file can be used to
-prevent information loss, although it is still possible that the contents
-of <b>-source</b> will be lost if the system crashes.
-<p>The <b>-source</b> file must already exist (but may be zero-length) when
-<b>berkdb open</b> is called.
-<p>It is not an error to specify a read-only <b>-source</b> file when
-creating a database, nor is it an error to modify the resulting database.
-However, any attempt to write the changes to the backing source file using
-either the <i>db</i> <b>close</b> or <i>db</i> <b>sync</b> commands will fail, of course.
-Specify the <b>-nosync</b> argument to the <i>db</i> <b>close</b> command will
-stop it from attempting to write the changes to the backing file, instead,
-they will be silently discarded.
-<p>For all of the above reasons, the <b>-source</b> file is generally used
-to specify databases that are read-only for Berkeley DB applications, and that
-are either generated on the fly by software tools, or modified using a
-different mechanism, e.g., a text editor.
-<p><dt>-truncate<dd>Physically truncate the underlying file, discarding all previous databases
-it might have held. Underlying filesystem primitives are used to
-implement this flag. For this reason it is only applicable to the
-physical file and cannot be used to discard databases within a file.
-<p>The <b>-truncate</b> argument cannot be transaction protected, and it is
-an error to specify it in a transaction protected environment.
-<p><dt>-upgrade<dd>Upgrade the database represented by <b>file</b>, if necessary.
-<p><b>Note: Database upgrades are done in place and are
-destructive, e.g., if pages need to be allocated and no disk space is
-available, the database may be left corrupted. Backups should be made
-before databases are upgraded. See <a href="../ref/am/upgrade.html">Upgrading databases</a> for more information.</b>
-<p><dt>--<dd>Mark the end of the command arguments.
-<p><dt>file<dd>The name of a single physical file on disk that will be used to back the
-database.
-<p><dt>database<dd>The <b>database</b> argument allows applications to have multiple
-databases inside of a single physical file. This is useful when the
-databases are both numerous and reasonably small, in order to avoid
-creating a large number of underlying files. It is an error to attempt
-to open a second database file that was not initially created using a
-<b>database</b> name.
-</dl>
-<p>The <b>berkdb open</b> command returns a database handle on success.
-<p>In the case of error, a Tcl error is thrown.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_tcl/db_put.html b/bdb/docs/api_tcl/db_put.html
deleted file mode 100644
index 2311a3c97ac..00000000000
--- a/bdb/docs/api_tcl/db_put.html
+++ /dev/null
@@ -1,74 +0,0 @@
-<!--$Id: db_put.so,v 11.10 2000/06/12 17:50:01 sue Exp $-->
-<!--$Id: m4.tcl,v 11.17 2000/04/24 17:31:11 sue Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db put</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1><i>db</i> <b>put</b></h1>
-</td>
-<td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>db put
- -append
- [-partial {doff dlen}]
- [-txn txnid]
- data
-db put
- [-nooverwrite]
- [-partial {doff dlen}]
- [-txn txnid]
- key data
-</pre></h3>
-<h1>Description</h1>
-<p>The <i>db</i> <b>put</b> command stores the specified key/data pair into the
-database.
-<p>The options are as follows:
-<p><dl compact>
-<p><dt>-append<dd>Append the data item to the end of the database. For the <b>-append</b>
-option to be specified, the underlying database must be a Queue or Recno
-database. The record number allocated to the record is returned on
-success.
-<p><dt>-nooverwrite<dd>Enter the new key/data pair only if the key does not already appear in
-the database.
-<p><dt>-partial {doff dlen}<dd>
-<p>The <b>dlen</b> bytes starting <b>doff</b> bytes from the beginning of
-the specified key's data record are replaced by the data specified by the
-data and size structure elements. If <b>dlen</b> is smaller than the
-length of the supplied data, the record will grow, and if <b>dlen</b> is
-larger than the length of the supplied data, the record will shrink. If
-the specified bytes do not exist, the record will be extended using nul
-bytes as necessary, and the <i>db</i> <b>put</b> call will succeed.
-<p>It is an error to attempt a partial put using the <i>db</i> <b>put</b> command in a database
-that supports duplicate records. Partial puts in databases supporting
-duplicate records must be done using a <i>dbc</i> <b>put</b> command.
-<p>It is an error to attempt a partial put with differing <b>dlen</b> and
-supplied data length values in Queue or Recno databases with fixed-length
-records.
-<p><dt>-txn txnid<dd>If the file is being accessed under transaction protection, the
-<b>txnid</b> parameter is a transaction handle returned from <i>env</i> <b>txn</b>.
-</dl>
-<p>The <i>db</i> <b>put</b> command returns either 0 or a record number for success
-(the record number is returned if the <b>-append</b> option was specified).
-If an error occurs, a Berkeley DB error message is returned or a Tcl error is
-thrown.
-<p>If the underlying database is a Queue or Recno database, then the given
-key will be interpreted by Tcl as an integer. For all other database
-types, the key is interpreted by Tcl as a byte array.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_tcl/db_remove.html b/bdb/docs/api_tcl/db_remove.html
deleted file mode 100644
index e45f3bc4970..00000000000
--- a/bdb/docs/api_tcl/db_remove.html
+++ /dev/null
@@ -1,49 +0,0 @@
-<!--$Id: db_remove.so,v 11.6 2000/03/22 21:56:10 bostic Exp $-->
-<!--$Id: m4.tcl,v 11.17 2000/04/24 17:31:11 sue Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: berkdb dbremove</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1><b>berkdb dbremove</b></h1>
-</td>
-<td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>berkdb dbremove
- [-env env]
- [--]
- file
- [database]
-</pre></h3>
-<h1>Description</h1>
-<p>Remove the Berkeley DB database specified by the database name <b>file</b> and
-[database] name arguments. If no <b>database</b> is specified,
-the physical file represented by <b>file</b> is removed, incidentally
-removing all databases that it contained.
-<p>No reference count of database use is maintained by Berkeley DB. Applications
-should not remove databases that are currently in use.
-<p>The options are as follows:
-<p><dl compact>
-<p><dt>-env env<dd>If a <b>-env</b> argument is given, the database in the specified Berkeley DB
-environment is removed.
-<p><dt>--<dd>Mark the end of the command arguments.
-</dl>
-<p>The <b>berkdb dbremove</b> command returns 0 on success, and in the case of error, a Tcl error
-is thrown.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_tcl/db_rename.html b/bdb/docs/api_tcl/db_rename.html
deleted file mode 100644
index 75707d92a25..00000000000
--- a/bdb/docs/api_tcl/db_rename.html
+++ /dev/null
@@ -1,50 +0,0 @@
-<!--$Id: db_rename.so,v 11.1 2000/04/24 17:31:12 sue Exp $-->
-<!--$Id: m4.tcl,v 11.17 2000/04/24 17:31:11 sue Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: berkdb dbrename</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1><b>berkdb dbrename</b></h1>
-</td>
-<td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>berkdb rename
- [-env env]
- [--]
- file
- [database
- newname]
-</pre></h3>
-<h1>Description</h1>
-<p>Renames the Berkeley DB database specified by the database name <b>file</b> and
-[database] name arguments to the new name given.
-If no <b>database</b> is specified,
-the physical file represented by <b>file</b> is renamed.
-<p>No reference count of database use is maintained by Berkeley DB. Applications
-should not rename databases that are currently in use.
-<p>The options are as follows:
-<p><dl compact>
-<p><dt>-env env<dd>If a <b>-env</b> argument is given, the database in the specified Berkeley DB
-environment is renamed.
-<p><dt>--<dd>Mark the end of the command arguments.
-</dl>
-<p>The <b>berkdb dbrename</b> command returns 0 on success, and in the case of error, a Tcl error
-is thrown.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_tcl/db_stat.html b/bdb/docs/api_tcl/db_stat.html
deleted file mode 100644
index 494226dfd31..00000000000
--- a/bdb/docs/api_tcl/db_stat.html
+++ /dev/null
@@ -1,41 +0,0 @@
-<!--$Id: db_stat.so,v 11.9 1999/12/20 08:52:35 bostic Exp $-->
-<!--$Id: m4.tcl,v 11.17 2000/04/24 17:31:11 sue Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db stat</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1><i>db</i> <b>stat</b></h1>
-</td>
-<td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>db stat
- [-recordcount]
-</pre></h3>
-<h1>Description</h1>
-<p>The <i>db</i> <b>stat</b> command returns a list of name/value pairs comprising
-the statistics of the database.
-<p>The options are as follows:
-<p><dl compact>
-<p><dt>-recordcount<dd>Return the number of records in the database. The <b>-recordcount</b>
-option may only be specified for Recno databases, or Btree databases where
-the underlying database was created with the <b>-recnum</b> option.
-</dl>
-<p>In the case of error, a Tcl error is thrown.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_tcl/db_sync.html b/bdb/docs/api_tcl/db_sync.html
deleted file mode 100644
index f0e61b45a4d..00000000000
--- a/bdb/docs/api_tcl/db_sync.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!--$Id: db_sync.so,v 11.9 1999/12/20 08:52:35 bostic Exp $-->
-<!--$Id: m4.tcl,v 11.17 2000/04/24 17:31:11 sue Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db sync</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1><i>db</i> <b>sync</b></h1>
-</td>
-<td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>db sync
-</pre></h3>
-<h1>Description</h1>
-<p>The <i>db</i> <b>sync</b> command function flushes any database cached
-information to disk.
-<p>See <i>db</i> <b>close</b> for a discussion of Berkeley DB and cached data.
-<p>The <i>db</i> <b>sync</b> command returns 0 on success, and in the case of error, a Tcl error
-is thrown.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_tcl/dbc_close.html b/bdb/docs/api_tcl/dbc_close.html
deleted file mode 100644
index f3a63b4c559..00000000000
--- a/bdb/docs/api_tcl/dbc_close.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!--$Id: dbc_close.so,v 11.10 1999/12/20 08:52:35 bostic Exp $-->
-<!--$Id: m4.tcl,v 11.17 2000/04/24 17:31:11 sue Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db close</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1><i>dbc</i> <b>close</b></h1>
-</td>
-<td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>dbc close
-</pre></h3>
-<h1>Description</h1>
-<p>The <i>dbc</i> <b>close</b> command discards the cursor.
-<p>Once <i>dbc</i> <b>close</b> has been called, regardless of its return, the
-cursor handle may not be used again.
-<p>The <i>dbc</i> <b>close</b> command returns 0 on success, and in the case of error, a Tcl error
-is thrown.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_tcl/dbc_del.html b/bdb/docs/api_tcl/dbc_del.html
deleted file mode 100644
index 11264eeea09..00000000000
--- a/bdb/docs/api_tcl/dbc_del.html
+++ /dev/null
@@ -1,38 +0,0 @@
-<!--$Id: dbc_del.so,v 11.10 1999/12/20 08:52:35 bostic Exp $-->
-<!--$Id: m4.tcl,v 11.17 2000/04/24 17:31:11 sue Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db del</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1><i>dbc</i> <b>del</b></h1>
-</td>
-<td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>dbc del
-</pre></h3>
-<h1>Description</h1>
-<p>The <i>dbc</i> <b>del</b> command deletes the key/data pair currently referenced
-by the cursor.
-<p>The cursor position is unchanged after a delete, and subsequent calls to
-cursor commands expecting the cursor to reference an existing key will
-fail.
-<p>The <i>dbc</i> <b>del</b> command returns 0 on success, and in the case of error, a Tcl error
-is thrown.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_tcl/dbc_dup.html b/bdb/docs/api_tcl/dbc_dup.html
deleted file mode 100644
index 85b2bfb086e..00000000000
--- a/bdb/docs/api_tcl/dbc_dup.html
+++ /dev/null
@@ -1,46 +0,0 @@
-<!--$Id: dbc_dup.so,v 11.4 1999/12/20 08:52:35 bostic Exp $-->
-<!--$Id: m4.tcl,v 11.17 2000/04/24 17:31:11 sue Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db dup</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1><i>dbc</i> <b>dup</b></h1>
-</td>
-<td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>dbc dup
- [-position]
-</pre></h3>
-<h1>Description</h1>
-<p>The <i>dbc</i> <b>dup</b> command duplicates the cursor, creates a new cursor
-that uses the same transaction and locker ID as the original cursor. This
-is useful when an application is using locking and requires two or more
-cursors in the same thread of control.
-<p>The options are as follows:
-<p><dl compact>
-<p><dt>-position<dd>The newly created cursor is initialized to reference the same position in
-the database as the original cursor and hold the same locks. If the
-<b>-position</b> flag is not specified, then the created cursor is
-uninitialized and will behave like a cursor newly created using the
-<i>db</i> <b>cursor</b> command.
-</dl>
-<p>The <i>dbc</i> <b>dup</b> command returns 0 on success, and in the case of error, a Tcl error
-is thrown.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_tcl/dbc_get.html b/bdb/docs/api_tcl/dbc_get.html
deleted file mode 100644
index d16e51bdf9f..00000000000
--- a/bdb/docs/api_tcl/dbc_get.html
+++ /dev/null
@@ -1,168 +0,0 @@
-<!--$Id: dbc_get.so,v 11.16 2000/11/28 20:12:30 bostic Exp $-->
-<!--$Id: m4.tcl,v 11.17 2000/04/24 17:31:11 sue Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db get</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1><i>dbc</i> <b>get</b></h1>
-</td>
-<td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>dbc get
- [-current]
- [-first]
- [-get_recno]
- [-join_item]
- [-last]
- [-next]
- [-nextdup]
- [-nextnodup]
- [-partial {offset length}]
- [-prev]
- [-prevnodup]
- [-rmw]
-dbc get
- [-partial {offset length}]
- [-rmw]
- [-set]
- [-set_range]
- [-set_recno]
- key
-dbc get
- -get_both
- [-partial {offset length}]
- [-rmw]
- key data
-</pre></h3>
-<h1>Description</h1>
-<p>The <i>dbc</i> <b>get</b> command returns a list of {key value} pairs, except in
-the case of the <b>-get_recno</b> and <b>-join_item</b> options. In
-the case of the <b>-get_recno</b> option, <i>dbc</i> <b>get</b> returns a list
-of the record number. In the case of the <b>-join_item</b> option,
-<i>dbc</i> <b>get</b> returns a list containing the joined key.
-<p>The options are as follows:
-<p><dl compact>
-<p><dt>-current<dd>Return the key/data pair currently referenced by the cursor.
-<p>If the cursor key/data pair was deleted, <i>dbc</i> <b>get</b> will return an
-empty list.
-<p><dt>-first<dd>The cursor is set to reference the first key/data pair of the database, and
-that pair is returned. In the presence of duplicate key values, the first
-data item in the set of duplicates is returned.
-<p>If the database is a Queue or Recno database, <i>dbc</i> <b>get</b> using the
-<b>-first</b> option will skip any keys that exist but were never
-explicitly created by the application or were created and later deleted.
-<p>If the database is empty, <i>dbc</i> <b>get</b> will return an empty list.
-<p><dt>-last<dd>The cursor is set to reference the last key/data pair of the database, and
-that pair is returned. In the presence of duplicate key values, the last
-data item in the set of duplicates is returned.
-<p>If the database is a Queue or Recno database, <i>dbc</i> <b>get</b> using the
-<b>-last</b> option will skip any keys that exist but were never
-explicitly created by the application or were created and later deleted.
-<p>If the database is empty, <i>dbc</i> <b>get</b> will return an empty list.
-<p><dt>-next<dd>If the cursor is not yet initialized, the <b>-next</b> option is
-identical to <b>-first</b>.
-<p>Otherwise, the cursor is moved to the next key/data pair of the database,
-and that pair is returned. In the presence of duplicate key values, the
-value of the key may not change.
-<p>If the database is a Queue or Recno database, <i>dbc</i> <b>get</b> using the
-<b>-next</b> option will skip any keys that exist but were never
-explicitly created by the application or were created and later deleted.
-<p>If the cursor is already on the last record in the database, <i>dbc</i> <b>get</b>
-will return an empty list.
-<p><dt>-nextdup<dd>If the next key/data pair of the database is a duplicate record for the
-current key/data pair, the cursor is moved to the next key/data pair of the
-database, and that pair is returned. Otherwise, <i>dbc</i> <b>get</b> will return
-an empty list.
-<p><dt>-nextnodup<dd>If the cursor is not yet initialized, the <b>-nextnodup</b> option is
-identical to <b>-first</b>.
-<p>Otherwise, the cursor is moved to the next non-duplicate
-key/data pair of the database, and that pair is returned.
-<p>If no non-duplicate key/data pairs occur after the cursor
-position in the database, <i>dbc</i> <b>get</b> will return an empty list.
-<p><dt>-prev<dd>If the cursor is not yet initialized, <b>-prev</b> is identical to
-<b>-last</b>.
-<p>Otherwise, the cursor is moved to the previous key/data pair of the
-database, and that pair is returned. In the presence of duplicate key
-values, the value of the key may not change.
-<p>If the database is a Queue or Recno database, <i>dbc</i> <b>get</b> using the
-<b>-prev</b> flag will skip any keys that exist but were never explicitly
-created by the application or were created and later deleted.
-<p>If the cursor is already on the first record in the database,
-<i>dbc</i> <b>get</b> will return an empty list.
-<p><dt>-prevnodup<dd>If the cursor is not yet initialized, the <b>-prevnodup</b> option is
-identical to <b>-last</b>.
-<p>Otherwise, the cursor is moved to the previous non-duplicate
-key/data pair of the database, and that pair is returned.
-<p>If no non-duplicate key/data pairs occur before the cursor
-position in the database, <i>dbc</i> <b>get</b> will return an empty list.
-<p><dt>-set<dd>Move the cursor to the specified key/data pair of the database, and return
-the datum associated with the given key.
-<p>In the presence of duplicate key values, <i>dbc</i> <b>get</b> will return the
-first data item for the given key.
-<p>If the database is a Queue or Recno database and the requested key exists,
-but was never explicitly created by the application or was later deleted,
-<i>dbc</i> <b>get</b> will return an empty list.
-<p>If no matching keys are found, <i>dbc</i> <b>get</b> will return an empty list.
-<p><dt>-set_range<dd>The <b>-set_range</b> option is identical to the <b>-set</b> option,
-except that the key is returned as well as the data item, and, in the case
-of the Btree access method, the returned key/data pair is the smallest
-key greater than or equal to the specified key (as determined by the
-comparison function), permitting partial key matches and range searches.
-<p><dt>-get_both<dd>The <b>-get_both</b> option is identical to the <b>-set</b> option,
-except that both the key and the data arguments must be matched by the
-key and data item in the database.
-<p>For <b>-get_both</b> to be specified, the underlying database must be of
-type Btree or Hash.
-<p><dt>-set_recno<dd>Move the cursor to the specific numbered record of the database, and
-return the associated key/data pair. The key
-must be a record number.
-<p>For the <b>-set_recno</b> option to be specified, the underlying database
-must be of type Btree and it must have been created with the <b>-recnum</b>
-option.
-<p><dt>-get_recno<dd>Return a list of the record number associated with the current cursor
-position. No key argument should be specified.
-<p>For <b>-get_recno</b> to be specified, the underlying database must be
-of type Btree and it must have been created with the <b>-recnum</b>
-option.
-<p><dt>-join_item<dd>Do not use the data value found in all of the cursors as a lookup key for
-the primary database, but simply return it in the key parameter instead.
-The data parameter is left unchanged.
-<p>For <b>-join_item</b> to be specified, the cursor must have been created
-by the <i>db</i> <b>join</b> command.
-<p><dt>-partial {offset length}<dd>The <b>dlen</b> bytes starting <b>doff</b> bytes from the beginning of
-the retrieved data record are returned as if they comprised the entire
-record. If any or all of the specified bytes do not exist in the record,
-the command is successful and the existing bytes or 0 bytes are
-returned.
-<p><dt>-rmw<dd>Acquire write locks instead of read locks when doing the retrieval. Setting
-this flag may decrease the likelihood of deadlock during a read-modify-write
-cycle by immediately acquiring the write lock during the read part of the
-cycle so that another thread of control acquiring a read lock for the same
-item, in its own read-modify-write cycle, will not result in deadlock.
-</dl>
-<p>If a key is specified, and
-if the underlying database is a Queue or Recno database, then the given
-key will be interpreted by Tcl as an integer. For all other database
-types, the key is interpreted by Tcl as a byte array unless indicated
-by a given option.
-<p>In the normal error case of attempting to retrieve a key that does not
-exist an empty list is returned.
-<p>In the case of error, a Tcl error is thrown.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_tcl/dbc_put.html b/bdb/docs/api_tcl/dbc_put.html
deleted file mode 100644
index bd791ab94d2..00000000000
--- a/bdb/docs/api_tcl/dbc_put.html
+++ /dev/null
@@ -1,133 +0,0 @@
-<!--$Id: dbc_put.so,v 11.12 2000/06/12 17:50:01 sue Exp $-->
-<!--$Id: m4.tcl,v 11.17 2000/04/24 17:31:11 sue Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: dbc put</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1><i>dbc</i> <b>put</b></h1>
-</td>
-<td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>dbc put
- [-after]
- [-before]
- [-current]
- [-partial {doff dlen}]
- data
-dbc put
- [-keyfirst]
- [-keylast]
- [-partial {doff dlen}]
- key data
-</pre></h3>
-<h1>Description</h1>
-<p>The <i>dbc</i> <b>put</b> command stores the specified key/data pair into the
-database.
-<p>The options are as follows:
-<p><dl compact>
-<p><dt>-after<dd>In the case of the Btree and Hash access methods, insert the data element
-as a duplicate element of the key referenced by the cursor. The new
-element appears immediately after the current cursor position. It is an
-error to specify <b>-after</b> if the underlying Btree or Hash database
-was not created with the <b>-dup</b> option. No key argument should be
-specified.
-<p>In the case of the Recno access method, it is an error to specify
-<b>-after</b> option if the underlying Recno database was not created
-with the <b>-renumber</b> option. If the <b>-renumber</b> option was
-specified, a new key is created, all records after the inserted item are
-automatically renumbered, and the key of the new record is returned in
-the structure referenced by the parameter key. The initial value of the
-key parameter is ignored. See <b>berkdb open</b> for more information.
-<p>In the case of the Queue access method, it is always an error to specify
-<b>-after</b>.
-<p>If the current cursor record has already been deleted and the underlying
-access method is Hash, <i>dbc</i> <b>put</b> will throw a Tcl error. If the
-underlying access method is Btree or Recno, the operation will succeed.
-<p><dt>-before<dd>In the case of the Btree and Hash access methods, insert the data element
-as a duplicate element of the key referenced by the cursor. The new
-element appears immediately before the current cursor position. It is an
-error to specify <b>-before</b> if the underlying Btree or Hash database
-was not created with the <b>-dup</b> option. No key argument should be
-specified.
-<p>In the case of the Recno access method, it is an error to specify
-<b>-before</b> if the underlying Recno database was not created with the
-<b>-before</b> option. If the <b>-before</b> option was specified, a
-new key is created, the current record and all records after it are
-automatically renumbered, and the key of the new record is returned in
-the structure referenced by the parameter key. The initial value of the
-key parameter is ignored. See <b>berkdb open</b> for more information.
-<p>In the case of the Queue access method, it is always an error to specify
-<b>-before</b>.
-<p>If the current cursor record has already been deleted and the underlying
-access method is Hash, <i>dbc</i> <b>put</b> will throw a Tcl error. If the
-underlying access method is Btree or Recno, the operation will succeed.
-<p><dt>-current<dd>Overwrite the data of the key/data pair referenced by the cursor with the
-specified data item. No key argument should be specified.
-<p>If the <b>-dupsort</b> option was specified to <b>berkdb open</b> and the
-data item of the current referenced key/data pair does not compare
-equally to the data parameter, <i>dbc</i> <b>put</b> will throw a Tcl error.
-<p>If the current cursor record has already been deleted and the underlying
-access method is Hash, <i>dbc</i> <b>put</b> will throw a Tcl error. If the
-underlying access method is Btree, Queue or Recno, the operation will
-succeed.
-<p><dt>-keyfirst<dd>In the case of the Btree and Hash access methods, insert the specified
-key/data pair into the database.
-<p>If the key already exists in the database, and the <b>-dupsort</b> option
-was specified to <b>berkdb open</b>, the inserted data item is added in its
-sorted location. If the key already exists in the database, and the
-<b>-dupsort</b> option was not specified, the inserted data item is added
-as the first of the data items for that key.
-<p>The <b>-keyfirst</b> option may not be specified to the Queue or Recno
-access methods.
-<p><dt>-keylast<dd>In the case of the Btree and Hash access methods, insert the specified
-key/data pair into the database.
-<p>If the key already exists in the database, and the <b>-dupsort</b> option
-was specified to <b>berkdb open</b>, the inserted data item is added in its
-sorted location. If the key already exists in the database, and the
-<b>-dupsort</b> option was not specified, the inserted data item is added
-as the last of the data items for that key.
-<p>The <b>-keylast</b> option may not be specified to the Queue or Recno
-access methods.
-<p><dt>-partial {doff dlen}<dd>
-<p>The <b>dlen</b> bytes starting <b>doff</b> bytes from the beginning of
-the specified key's data record are replaced by the data specified by the
-data and size structure elements. If <b>dlen</b> is smaller than the
-length of the supplied data, the record will grow, and if <b>dlen</b> is
-larger than the length of the supplied data, the record will shrink. If
-the specified bytes do not exist, the record will be extended using nul
-bytes as necessary, and the <i>dbc</i> <b>put</b> call will succeed.
-<p>It is an error to attempt a partial put using the <i>dbc</i> <b>put</b> command in a database
-that supports duplicate records. Partial puts in databases supporting
-duplicate records must be done using a <i>dbc</i> <b>put</b> command.
-<p>It is an error to attempt a partial put with differing <b>dlen</b> and
-supplied data length values in Queue or Recno databases with fixed-length
-records.
-</dl>
-<p>If a key is specified, and
-if the underlying database is a Queue or Recno database, then the given
-key will be interpreted by Tcl as an integer. For all other database
-types, the key is interpreted by Tcl as a byte array.
-<p>If <i>dbc</i> <b>put</b> fails for any reason, the state of the cursor will be
-unchanged. If <i>dbc</i> <b>put</b> succeeds and an item is inserted into the
-database, the cursor is always positioned to reference the newly inserted
-item.
-<p>The <i>dbc</i> <b>put</b> command returns 0 on success, and in the case of error, a Tcl error
-is thrown.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_tcl/env_close.html b/bdb/docs/api_tcl/env_close.html
deleted file mode 100644
index 719ad2160ad..00000000000
--- a/bdb/docs/api_tcl/env_close.html
+++ /dev/null
@@ -1,42 +0,0 @@
-<!--$Id: env_close.so,v 11.10 1999/12/20 08:52:35 bostic Exp $-->
-<!--$Id: m4.tcl,v 11.17 2000/04/24 17:31:11 sue Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: env close</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1><i>env</i> <b>close</b></h1>
-</td>
-<td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>env close
-</pre></h3>
-<h1>Description</h1>
-<p>Close the Berkeley DB environment, freeing any allocated resources and closing
-any underlying subsystems.
-<p>This does not imply closing any databases that were opened in the
-environment.
-<p>Where the environment was initialized with the <b>-lock</b> option,
-calling <i>env</i> <b>close</b> does not release any locks still held by the
-closing process, providing functionality for long-lived locks.
-<p>Once <i>env</i> <b>close</b> has been called the <b>env</b> handle may not be
-accessed again.
-<p>The <i>env</i> <b>close</b> command returns 0 on success, and in the case of error, a Tcl error
-is thrown.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_tcl/env_open.html b/bdb/docs/api_tcl/env_open.html
deleted file mode 100644
index 1c5bafee4b9..00000000000
--- a/bdb/docs/api_tcl/env_open.html
+++ /dev/null
@@ -1,168 +0,0 @@
-<!--$Id: env_open.so,v 11.21 2000/06/05 15:17:24 sue Exp $-->
-<!--$Id: m4.tcl,v 11.17 2000/04/24 17:31:11 sue Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: berkdb env</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1><b>berkdb env</b></h1>
-</td>
-<td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>berkdb env
- [-cachesize {gbytes bytes ncache}]
- [-create]
- [-data_dir dirname]
- [-errfile filename]
- [-home directory]
- [-log_dir dirname]
- [-mode mode]
- [-private]
- [-recover]
- [-recover_fatal]
- [-shm_key shmid]
- [-system_mem]
- [-tmp_dir dirname]
- [-txn [nosync]]
- [-txn_max max]
- [-use_environ]
- [-use_environ_root]
-</pre></h3>
-<h1>Description</h1>
-<p>The <b>berkdb env</b> command opens, and optionally creates, a database
-environment. The returned environment handle is bound to a Tcl command
-of the form <b>envN</b>, where N is an integer starting at 0 (e.g., env0
-and env1). It is through this Tcl command that the script accesses the
-environment methods.
-The command automatically initializes the shared memory buffer pool subsystem.
-This subsystem is used whenever the application is
-using any Berkeley DB access method.
-<p>The options are as follows:
-<p><dl compact>
-<p><dt>-cachesize {gbytes bytes ncache}<dd>Set the size of the database's shared memory buffer pool, i.e., the cache,
-to <b>gbytes</b> gigabytes plus <b>bytes</b>. The cache should be the
-size of the normal working data set of the application, with some small
-amount of additional memory for unusual situations. (Note, the working
-set is not the same as the number of simultaneously referenced pages, and
-should be quite a bit larger!)
-<p>The default cache size is 256KB, and may not be specified as less than
-20KB. Any cache size less than 500MB is automatically increased by 25%
-to account for buffer pool overhead, cache sizes larger than 500MB are
-used as specified.
-<p>It is possible to specify caches to Berkeley DB that are large enough so that
-they cannot be allocated contiguously on some architectures, e.g., some
-releases of Solaris limit the amount of memory that may be allocated
-contiguously by a process. If <b>ncache</b> is 0 or 1, the cache will
-be allocated contiguously in memory. If it is greater than 1, the cache
-will be broken up into <b>ncache</b> equally sized separate pieces of
-memory.
-<p>For information on tuning the Berkeley DB cache size, see
-<a href="../ref/am_conf/cachesize.html">Selecting a cache size</a>.
-<p><dt>-create<dd>Cause Berkeley DB subsystems to create any underlying files, as necessary.
-<p><dt>-data_dir dirname<dd>Specify the environment's data directory as described in
-<a href="../ref/env/naming.html">Berkeley DB File Naming</a>.
-<p><dt>-errfile filename<dd>
-<p>When an error occurs in the Berkeley DB library, a Berkeley DB error or an error
-return value is returned by the function. In some cases, however, the
-errno value may be insufficient to completely describe the cause of the
-error especially during initial application debugging.
-<p>The <b>-errfile</b> argument is used to enhance the mechanism for
-reporting error messages to the application by specifying a file to be
-used for displaying additional Berkeley DB error messages. In some cases, when
-an error occurs, Berkeley DB will output an additional error message to the
-specified file reference.
-<p>The error message will consist of the environment command name (e.g., env0)
-and a colon (":"), an error string, and a trailing &lt;newline&gt;
-character.
-<p>This error logging enhancement does not slow performance or significantly
-increase application size, and may be run during normal operation as well
-as during application debugging.
-<p><dt>-home directory<dd>The <b>-home</b> argument is described in
-<a href="../ref/env/naming.html">Berkeley DB File Naming</a>.
-<p><dt>-log_dir dirname<dd>Specify the environment's logging file directory as described in
-<a href="../ref/env/naming.html">Berkeley DB File Naming</a>.
-<p><dt>-mode mode<dd>
-<p>On UNIX systems, or in IEEE/ANSI Std 1003.1 (POSIX) environments, all files created by Berkeley DB
-are created with mode <b>mode</b> (as described in <b>chmod</b>(2)) and
-modified by the process' umask value at the time of creation (see
-<b>umask</b>(2)). The group ownership of created files is based on
-the system and directory defaults, and is not further specified by Berkeley DB.
-If <b>mode</b> is 0, files are created readable and writeable by both
-owner and group. On Windows systems, the mode argument is ignored.
-<p><dt>-private<dd>Specify that the environment will only be accessed by a single process
-(although that process may be multi-threaded). This flag has two effects
-on the Berkeley DB environment. First, all underlying data structures are
-allocated from per-process memory instead of from shared memory that is
-potentially accessible to more than a single process. Second, mutexes
-are only configured to work between threads.
-<p>This flag should not be specified if more than a single process is
-accessing the environment, as it is likely to cause database corruption
-and unpredictable behavior, e.g., if both a server application and the
-Berkeley DB utility <a href="../utility/db_stat.html">db_stat</a> will access the environment, the
-<b>-private</b> option should not be specified.
-<p><dt>-recover<dd>Run normal recovery on this environment before opening it for normal use.
-If this flag is set, the <b>-create</b> option must also be set since
-the regions will be removed and recreated.
-<p><dt>-recover_fatal<dd>Run catastrophic recovery on this environment before opening it for
-normal use. If this flag is set, the <b>-create</b> option must also be
-set since the regions will be removed and recreated.
-<p><dt>-shm_key key<dd>Specify a base segment ID for Berkeley DB environment shared memory regions
-created in system memory on systems supporting X/Open-style shared memory
-interfaces, e.g., UNIX systems supporting shmget(2) and related System V
-IPC interfaces. See <a href="../ref/env/region.html">Shared Memory
-Regions</a> for more information.
-<p><dt>-system_mem<dd>Allocate memory from system shared memory instead of memory backed by the
-filesystem. See <a href="../ref/env/region.html">Shared Memory Regions</a>
-for more information.
-<p><dt>-tmp_dir dirname<dd>Specify the environment's tmp directory as described in
-<a href="../ref/env/naming.html">Berkeley DB File Naming</a>.
-<p><dt>-txn [nosync]<dd>Initialize the transaction subsystem. This subsystem is used when
-recovery and atomicity of multiple operations and recovery are important.
-The <b>-txn</b> option implies the initialization of the logging
-and locking subsystems as well.
-<p>If the optional <b>nosync</b> argument is specified, the log will not be
-synchronously flushed on transaction commit or prepare. This means that
-transactions exhibit the ACI (atomicity, consistency and isolation)
-properties, but not D (durability), i.e., database integrity will be
-maintained but it is possible that some number of the most recently
-committed transactions may be undone during recovery instead of being
-redone.
-<p>The number of transactions that are potentially at risk is governed by
-how often the log is checkpointed (see <a href="../utility/db_checkpoint.html">db_checkpoint</a> for more
-information) and how many log updates can fit on a single log page.
-<p><dt>-txn_max max<dd>Set the maximum number of simultaneous transactions that are supported
-by the environment. This bounds the size of backing files. When there
-are more than the specified number of concurrent transactions, calls to
-<i>env</i> <b>txn</b> will fail (until some active transactions complete).
-<p><dt>-use_environ<dd>The Berkeley DB process' environment may be permitted to specify information to
-be used when naming files; see <a href="../ref/env/naming.html">Berkeley DB
-File Naming</a>. As permitting users to specify which files are used can
-create security problems, environment information will be used in file
-naming for all users only if the <b>-use_environ</b> flag is set.
-<p><dt>-use_environ_root<dd>The Berkeley DB process' environment may be permitted to specify information
-to be used when naming files; see <a href="../ref/env/naming.html">Berkeley DB
-File Naming</a>. As permitting users to specify which files are used can
-create security problems, if the <b>-use_environ_root</b> flag is set,
-environment information will be used for file naming only for users with
-appropriate permissions (e.g., on IEEE/ANSI Std 1003.1 (POSIX) systems, users with a
-user-ID of 0).
-</dl>
-<p>The <b>berkdb env</b> command returns an environment handle on success.
-<p>In the case of error, a Tcl error is thrown.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_tcl/env_remove.html b/bdb/docs/api_tcl/env_remove.html
deleted file mode 100644
index ca90595f83a..00000000000
--- a/bdb/docs/api_tcl/env_remove.html
+++ /dev/null
@@ -1,70 +0,0 @@
-<!--$Id: env_remove.so,v 11.13 2000/02/19 20:57:57 bostic Exp $-->
-<!--$Id: m4.tcl,v 11.17 2000/04/24 17:31:11 sue Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: berkdb envremove</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1><b>berkdb envremove</b></h1>
-</td>
-<td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>berkdb envremove
- [-data_dir directory]
- [-force]
- [-home directory]
- [-log_dir directory]
- [-tmp_dir directory]
- [-use_environ]
- [-use_environ_root]
-</pre></h3>
-<h1>Description</h1>
-<p>Remove a Berkeley DB environment.
-<p>The options are as follows:
-<p><dl compact>
-<p><dt>-data_dir dirname<dd>Specify the environment's data directory as described in
-<a href="../ref/env/naming.html">Berkeley DB File Naming</a>.
-<p><dt>-force<dd>If there are processes that have called <b>berkdb env</b> without calling
-<i>env</i> <b>close</b> (i.e., there are processes currently using the
-environment), <b>berkdb envremove</b> will fail without further action, unless
-the <b>-force</b> flag is set, in which case <b>berkdb envremove</b> will
-attempt to remove the environment regardless of any processes still using
-it.
-<p><dt>-home directory<dd>The <b>-home</b> argument is described in
-<a href="../ref/env/naming.html">Berkeley DB File Naming</a>.
-<p><dt>-log_dir dirname<dd>Specify the environment's log directory as described in
-<a href="../ref/env/naming.html">Berkeley DB File Naming</a>.
-<p><dt>-tmp_dir dirname<dd>Specify the environment's tmp directory as described in
-<a href="../ref/env/naming.html">Berkeley DB File Naming</a>.
-<p><dt>-use_environ<dd>The Berkeley DB process' environment may be permitted to specify information to
-be used when naming files; see <a href="../ref/env/naming.html">Berkeley DB
-File Naming</a>. As permitting users to specify which files are used can
-create security problems, environment information will be used in file
-naming for all users only if the <b>-use_environ</b> flag is set.
-<p><dt>-use_environ_root<dd>The Berkeley DB process' environment may be permitted to specify information
-to be used when naming files; see <a href="../ref/env/naming.html">Berkeley DB
-File Naming</a>. As permitting users to specify which files are used can
-create security problems, if the <b>-use_environ_root</b> flag is set,
-environment information will be used for file naming only for users with
-appropriate permissions (e.g., on IEEE/ANSI Std 1003.1 (POSIX) systems, users with a
-user-ID of 0).
-</dl>
-<p>The <b>berkdb envremove</b> command returns 0 on success, and in the case of error, a Tcl error
-is thrown.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_tcl/pindex.src b/bdb/docs/api_tcl/pindex.src
deleted file mode 100644
index 668f53d25f8..00000000000
--- a/bdb/docs/api_tcl/pindex.src
+++ /dev/null
@@ -1,27 +0,0 @@
-__APIREL__/api_tcl/db_close.html#2 @db close
-__APIREL__/api_tcl/db_count.html#2 @db count
-__APIREL__/api_tcl/db_cursor.html#2 @db cursor
-__APIREL__/api_tcl/db_del.html#2 @db del
-__APIREL__/api_tcl/db_get.html#2 @db get
-__APIREL__/api_tcl/db_get_join.html#2 @db get_join
-__APIREL__/api_tcl/db_get_type.html#2 @db get_type
-__APIREL__/api_tcl/db_is_byteswapped.html#2 @db is_byteswapped
-__APIREL__/api_tcl/db_join.html#2 @db join
-__APIREL__/api_tcl/db_open.html#2 @berkdb open
-__APIREL__/api_tcl/db_put.html#2 @db put
-__APIREL__/api_tcl/db_rename.html#2 @berkdb dbrename
-__APIREL__/api_tcl/db_remove.html#2 @berkdb dbremove
-__APIREL__/api_tcl/db_stat.html#2 @db stat
-__APIREL__/api_tcl/db_sync.html#2 @db sync
-__APIREL__/api_tcl/dbc_close.html#2 @db close
-__APIREL__/api_tcl/dbc_del.html#2 @db del
-__APIREL__/api_tcl/dbc_dup.html#2 @db dup
-__APIREL__/api_tcl/dbc_get.html#2 @db get
-__APIREL__/api_tcl/dbc_put.html#2 @dbc put
-__APIREL__/api_tcl/env_close.html#2 @env close
-__APIREL__/api_tcl/env_open.html#2 @berkdb env
-__APIREL__/api_tcl/env_remove.html#2 @berkdb envremove
-__APIREL__/api_tcl/txn.html#2 @env txn
-__APIREL__/api_tcl/txn_abort.html#2 @txn abort
-__APIREL__/api_tcl/txn_commit.html#2 @txn commit
-__APIREL__/api_tcl/version.html#2 @berkdb version
diff --git a/bdb/docs/api_tcl/tcl_index.html b/bdb/docs/api_tcl/tcl_index.html
deleted file mode 100644
index a31c6fc82a1..00000000000
--- a/bdb/docs/api_tcl/tcl_index.html
+++ /dev/null
@@ -1,49 +0,0 @@
-<!--$Id: tcl_index.so,v 11.13 2000/04/24 17:31:12 sue Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Tcl Interface</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<h1 align=center>Tcl Interface</h1>
-<!--$Id: m4.tcl,v 11.17 2000/04/24 17:31:11 sue Exp $-->
-<p><table border=1 align=center>
-<tr><th>Tcl Command</th><th>Description</th></tr>
-<tr><td><a href="../api_tcl/db_remove.html"><b>berkdb dbremove</b></a></td><td>Remove a database</td></tr>
-<tr><td><a href="../api_tcl/db_rename.html"><b>berkdb dbrename</b></a></td><td>Rename a database</td></tr>
-<tr><td><a href="../api_tcl/env_open.html"><b>berkdb env</b></a></td><td>Create an environment handle</td></tr>
-<tr><td><a href="../api_tcl/env_remove.html"><b>berkdb envremove</b></a></td><td>Remove an environment</td></tr>
-<tr><td><a href="../api_tcl/db_open.html"><b>berkdb open</b></a></td><td>Create a database handle</td></tr>
-<tr><td><a href="../api_tcl/version.html"><b>berkdb version</b></a></td><td>Return version information</td></tr>
-<tr><td><br></td><td><br></td></tr>
-<tr><td><a href="../api_tcl/env_close.html"><i>env</i> <b>close</b></a></td><td>Close an environment</td></tr>
-<tr><td><a href="../api_tcl/txn.html"><i>env</i> <b>txn</b></a></td><td>Begin a transaction</td></tr>
-<tr><td><br></td><td><br></td></tr>
-<tr><td><a href="../api_tcl/db_close.html"><i>db</i> <b>close</b></a></td><td>Close a database</td></tr>
-<tr><td><a href="../api_tcl/db_count.html"><i>db</i> <b>count</b></a></td><td>Return a count of a key's data items</td></tr>
-<tr><td><a href="../api_tcl/db_cursor.html"><i>db</i> <b>cursor</b></a></td><td>Open a cursor into a database</td></tr>
-<tr><td><a href="../api_tcl/db_del.html"><i>db</i> <b>del</b></a></td><td>Delete items from a database</td></tr>
-<tr><td><a href="../api_tcl/db_get.html"><i>db</i> <b>get</b></a></td><td>Get items from a database</td></tr>
-<tr><td><a href="../api_tcl/db_get_join.html"><i>db</i> <b>get_join</b></a></td><td>Get items from a database join</td></tr>
-<tr><td><a href="../api_tcl/db_get_type.html"><i>db</i> <b>get_type</b></a></td><td>Return the database type</td></tr>
-<tr><td><a href="../api_tcl/db_is_byteswapped.html"><i>db</i> <b>is_byteswapped</b></a></td><td>Return if the underlying database is in host order</td></tr>
-<tr><td><a href="../api_tcl/db_join.html"><i>db</i> <b>join</b></a></td><td>Perform a database join on cursors</td></tr>
-<tr><td><a href="../api_tcl/db_put.html"><i>db</i> <b>put</b></a></td><td>Store items into a database</td></tr>
-<tr><td><a href="../api_tcl/db_stat.html"><i>db</i> <b>stat</b></a></td><td>Return database statistics</td></tr>
-<tr><td><a href="../api_tcl/db_sync.html"><i>db</i> <b>sync</b></a></td><td>Flush a database to stable storage</td></tr>
-<tr><td><br></td><td><br></td></tr>
-<tr><td><a href="../api_tcl/dbc_close.html"><i>dbc</i> <b>close</b></a></td><td>Close a cursor</td></tr>
-<tr><td><a href="../api_tcl/dbc_del.html"><i>dbc</i> <b>del</b></a></td><td>Delete by cursor</td></tr>
-<tr><td><a href="../api_tcl/dbc_dup.html"><i>dbc</i> <b>dup</b></a></td><td>Duplicate a cursor</td></tr>
-<tr><td><a href="../api_tcl/dbc_get.html"><i>dbc</i> <b>get</b></a></td><td>Retrieve by cursor</td></tr>
-<tr><td><a href="../api_tcl/dbc_put.html"><i>dbc</i> <b>put</b></a></td><td>Store by cursor</td></tr>
-<tr><td><br></td><td><br></td></tr>
-<tr><td><a href="../api_tcl/txn_abort.html"><i>txn</i> <b>abort</b></a></td><td>Abort a transaction</td></tr>
-<tr><td><a href="../api_tcl/txn_commit.html"><i>txn</i> <b>commit</b></a></td><td>Commit a transaction</td></tr>
-</table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_tcl/tcl_pindex.html b/bdb/docs/api_tcl/tcl_pindex.html
deleted file mode 100644
index c82153bad43..00000000000
--- a/bdb/docs/api_tcl/tcl_pindex.html
+++ /dev/null
@@ -1,258 +0,0 @@
-<html>
-<head>
-<title>Berkeley DB: Tcl Interface Index</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<h1 align=center>Tcl Interface Index</h1>
-<center>
-<table cellspacing=0 cellpadding=0>
-<tr><td align=right> configuring Berkeley DB </td><td><a href="../ref/build_unix/conf.html#5">1.85</a> API compatibility</td></tr>
-<tr><td align=right> building a utility to dump Berkeley DB </td><td><a href="../ref/build_unix/conf.html#7">1.85</a> databases</td></tr>
-<tr><td align=right> Upgrading to release </td><td><a href="../ref/upgrade.2.0/intro.html#2">2.0</a></td></tr>
-<tr><td align=right> Upgrading to release </td><td><a href="../ref/upgrade.3.0/intro.html#2">3.0</a></td></tr>
-<tr><td align=right> Upgrading to release </td><td><a href="../ref/upgrade.3.1/intro.html#2">3.1</a></td></tr>
-<tr><td align=right> Upgrading to release </td><td><a href="../ref/upgrade.3.2/intro.html#2">3.2</a></td></tr>
-<tr><td align=right> selecting an </td><td><a href="../ref/am_conf/select.html#2">access</a> method</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am_conf/intro.html#2">access</a> methods</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/aix.html#2">AIX</a></td></tr>
-<tr><td align=right> programmatic </td><td><a href="../ref/arch/apis.html#2">APIs</a></td></tr>
-<tr><td align=right> utility to </td><td><a href="../utility/db_archive.html#3">archive</a> log files</td></tr>
-<tr><td align=right> </td><td><a href="../api_tcl/db_remove.html#2">berkdb</a> dbremove</td></tr>
-<tr><td align=right> </td><td><a href="../api_tcl/db_rename.html#2">berkdb</a> dbrename</td></tr>
-<tr><td align=right> </td><td><a href="../api_tcl/env_open.html#2">berkdb</a> env</td></tr>
-<tr><td align=right> </td><td><a href="../api_tcl/env_remove.html#2">berkdb</a> envremove</td></tr>
-<tr><td align=right> </td><td><a href="../api_tcl/db_open.html#2">berkdb</a> open</td></tr>
-<tr><td align=right> </td><td><a href="../api_tcl/version.html#2">berkdb</a> version</td></tr>
-<tr><td align=right> </td><td><a href="../utility/berkeley_db_svc.html#2">berkeley_db_svc</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/intro.html#2">building</a> for UNIX</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/notes.html#2">building</a> for UNIX FAQ</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_vxworks/intro.html#2">building</a> for VxWorks</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_vxworks/faq.html#2">building</a> for VxWorks FAQ</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_win/intro.html#2">building</a> for Win32</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_win/faq.html#2">building</a> for Windows FAQ</td></tr>
-<tr><td align=right> selecting a </td><td><a href="../ref/am_conf/byteorder.html#2">byte</a> order</td></tr>
-<tr><td align=right> </td><td><a href="../ref/program/byteorder.html#2">byte</a> ordering</td></tr>
-<tr><td align=right> configuring the </td><td><a href="../ref/build_unix/conf.html#6">C++</a> API</td></tr>
-<tr><td align=right> flushing the database </td><td><a href="../ref/am/sync.html#2">cache</a></td></tr>
-<tr><td align=right> selecting a </td><td><a href="../ref/am_conf/cachesize.html#2">cache</a> size</td></tr>
-<tr><td align=right> </td><td><a href="../ref/transapp/archival.html#3">catastrophic</a> recovery</td></tr>
-<tr><td align=right>Patches, Updates and </td><td><a href="http://www.sleepycat.com/update/index.html">Change</a> logs</td></tr>
-<tr><td align=right> utility to take </td><td><a href="../utility/db_checkpoint.html#3">checkpoints</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/curclose.html#2">closing</a> a cursor</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/close.html#2">closing</a> a database</td></tr>
-<tr><td align=right> specifying a Btree </td><td><a href="../ref/am_conf/bt_compare.html#2">comparison</a> function</td></tr>
-<tr><td align=right> changing </td><td><a href="../ref/build_unix/flags.html#2">compile</a> or load options</td></tr>
-<tr><td align=right> </td><td><a href="../ref/cam/intro.html#2">Concurrent</a> Data Store</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/conf.html#2">configuring</a> Berkeley DB for UNIX systems</td></tr>
-<tr><td align=right> recovering </td><td><a href="../ref/am/verify.html#4">corrupted</a> databases</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/count.html#2">counting</a> data items for a key</td></tr>
-<tr><td align=right> closing a </td><td><a href="../ref/am/curclose.html#3">cursor</a></td></tr>
-<tr><td align=right> deleting records with a </td><td><a href="../ref/am/curdel.html#3">cursor</a></td></tr>
-<tr><td align=right> duplicating a </td><td><a href="../ref/am/curdup.html#3">cursor</a></td></tr>
-<tr><td align=right> retrieving records with a </td><td><a href="../ref/am/curget.html#3">cursor</a></td></tr>
-<tr><td align=right> storing records with a </td><td><a href="../ref/am/curput.html#3">cursor</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/stability.html#2">cursor</a> stability</td></tr>
-<tr><td align=right> database </td><td><a href="../ref/am/cursor.html#2">cursors</a></td></tr>
-<tr><td align=right> utility to upgrade </td><td><a href="../utility/db_upgrade.html#3">database</a> files</td></tr>
-<tr><td align=right> utility to verify </td><td><a href="../utility/db_verify.html#3">database</a> files</td></tr>
-<tr><td align=right> </td><td><a href="../api_tcl/db_close.html#2">db</a> close</td></tr>
-<tr><td align=right> </td><td><a href="../api_tcl/dbc_close.html#2">db</a> close</td></tr>
-<tr><td align=right> </td><td><a href="../api_tcl/db_count.html#2">db</a> count</td></tr>
-<tr><td align=right> </td><td><a href="../api_tcl/db_cursor.html#2">db</a> cursor</td></tr>
-<tr><td align=right> </td><td><a href="../api_tcl/db_del.html#2">db</a> del</td></tr>
-<tr><td align=right> </td><td><a href="../api_tcl/dbc_del.html#2">db</a> del</td></tr>
-<tr><td align=right> </td><td><a href="../api_tcl/dbc_dup.html#2">db</a> dup</td></tr>
-<tr><td align=right> </td><td><a href="../api_tcl/db_get.html#2">db</a> get</td></tr>
-<tr><td align=right> </td><td><a href="../api_tcl/dbc_get.html#2">db</a> get</td></tr>
-<tr><td align=right> </td><td><a href="../api_tcl/db_get_join.html#2">db</a> get_join</td></tr>
-<tr><td align=right> </td><td><a href="../api_tcl/db_get_type.html#2">db</a> get_type</td></tr>
-<tr><td align=right> </td><td><a href="../api_tcl/db_is_byteswapped.html#2">db</a> is_byteswapped</td></tr>
-<tr><td align=right> </td><td><a href="../api_tcl/db_join.html#2">db</a> join</td></tr>
-<tr><td align=right> </td><td><a href="../api_tcl/db_put.html#2">db</a> put</td></tr>
-<tr><td align=right> </td><td><a href="../api_tcl/db_stat.html#2">db</a> stat</td></tr>
-<tr><td align=right> </td><td><a href="../api_tcl/db_sync.html#2">db</a> sync</td></tr>
-<tr><td align=right> </td><td><a href="../utility/db_archive.html#2">db_archive</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_tcl/dbc_put.html#2">dbc</a> put</td></tr>
-<tr><td align=right> </td><td><a href="../utility/db_checkpoint.html#2">db_checkpoint</a></td></tr>
-<tr><td align=right>File naming</td><td><a href="../ref/env/naming.html#DB_CONFIG">DB_CONFIG</a></td></tr>
-<tr><td align=right> </td><td><a href="../utility/db_deadlock.html#2">db_deadlock</a></td></tr>
-<tr><td align=right> </td><td><a href="../utility/db_dump.html#2">db_dump</a></td></tr>
-<tr><td align=right>File naming</td><td><a href="../ref/env/naming.html#DB_HOME">DB_HOME</a></td></tr>
-<tr><td align=right>File naming</td><td><a href="../ref/env/naming.html#db_home">db_home</a></td></tr>
-<tr><td align=right>Error returns to applications</td><td><a href="../ref/program/errorret.html#DB_KEYEMPTY">DB_KEYEMPTY</a></td></tr>
-<tr><td align=right> </td><td><a href="../utility/db_load.html#2">db_load</a></td></tr>
-<tr><td align=right>Error returns to applications</td><td><a href="../ref/program/errorret.html#DB_LOCK_DEADLOCK">DB_LOCK_DEADLOCK</a></td></tr>
-<tr><td align=right>Error returns to applications</td><td><a href="../ref/program/errorret.html#DB_LOCK_NOTGRANTED">DB_LOCK_NOTGRANTED</a></td></tr>
-<tr><td align=right>Error returns to applications</td><td><a href="../ref/program/errorret.html#DB_NOTFOUND">DB_NOTFOUND</a></td></tr>
-<tr><td align=right> </td><td><a href="../utility/db_printlog.html#2">db_printlog</a></td></tr>
-<tr><td align=right> </td><td><a href="../utility/db_recover.html#2">db_recover</a></td></tr>
-<tr><td align=right>Error returns to applications</td><td><a href="../ref/program/errorret.html#DB_RUNRECOVERY">DB_RUNRECOVERY</a></td></tr>
-<tr><td align=right> </td><td><a href="../utility/db_stat.html#2">db_stat</a></td></tr>
-<tr><td align=right> </td><td><a href="../utility/db_upgrade.html#2">db_upgrade</a></td></tr>
-<tr><td align=right> </td><td><a href="../utility/db_verify.html#2">db_verify</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/lock/dead.html#2">deadlocks</a></td></tr>
-<tr><td align=right> utility to detect </td><td><a href="../utility/db_deadlock.html#3">deadlocks</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/debug/common.html#2">debugging</a> applications</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/delete.html#2">deleting</a> records</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/curdel.html#2">deleting</a> records with a cursor</td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--disable-bigfile">--disable-bigfile</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/program/diskspace.html#2">disk</a> space requirements</td></tr>
-<tr><td align=right> utility to </td><td><a href="../utility/db_dump.html#3">dump</a> databases as text files</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am_conf/dup.html#2">duplicate</a> data items</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/curdup.html#2">duplicating</a> a cursor</td></tr>
-<tr><td align=right> configuring </td><td><a href="../ref/build_unix/conf.html#9">dynamic</a> shared libraries</td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-compat185">--enable-compat185</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-cxx">--enable-cxx</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-debug">--enable-debug</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-debug_rop">--enable-debug_rop</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-debug_wop">--enable-debug_wop</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-diagnostic">--enable-diagnostic</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-dump185">--enable-dump185</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-dynamic">--enable-dynamic</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-java">--enable-java</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-posixmutexes">--enable-posixmutexes</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-rpc">--enable-rpc</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-shared">--enable-shared</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-tcl">--enable-tcl</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-test">--enable-test</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-uimutexes">--enable-uimutexes</a></td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--enable-umrw">--enable-umrw</a></td></tr>
-<tr><td align=right> byte </td><td><a href="../ref/program/byteorder.html#3">endian</a></td></tr>
-<tr><td align=right> </td><td><a href="../api_tcl/env_close.html#2">env</a> close</td></tr>
-<tr><td align=right> </td><td><a href="../api_tcl/txn.html#2">env</a> txn</td></tr>
-<tr><td align=right> database </td><td><a href="../ref/env/create.html#2">environment</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/program/environ.html#2">environment</a> variables</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/error.html#2">error</a> handling</td></tr>
-<tr><td align=right> </td><td><a href="../ref/program/errorret.html#3">error</a> name space</td></tr>
-<tr><td align=right> </td><td><a href="../ref/program/errorret.html#2">error</a> returns</td></tr>
-<tr><td align=right> </td><td><a href="../ref/install/file.html#2">/etc/magic</a></td></tr>
-<tr><td align=right> selecting a Queue </td><td><a href="../ref/am_conf/extentsize.html#2">extent</a> size</td></tr>
-<tr><td align=right> Java </td><td><a href="../ref/java/faq.html#2">FAQ</a></td></tr>
-<tr><td align=right> Tcl </td><td><a href="../ref/tcl/faq.html#2">FAQ</a></td></tr>
-<tr><td align=right> configuring without large </td><td><a href="../ref/build_unix/conf.html#4">file</a> support</td></tr>
-<tr><td align=right> </td><td><a href="../ref/install/file.html#3">file</a> utility</td></tr>
-<tr><td align=right> recovery and </td><td><a href="../ref/transapp/filesys.html#2">filesystem</a> operations</td></tr>
-<tr><td align=right> remote </td><td><a href="../ref/env/remote.html#2">filesystems</a></td></tr>
-<tr><td align=right> page </td><td><a href="../ref/am_conf/h_ffactor.html#2">fill</a> factor</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/freebsd.html#2">FreeBSD</a></td></tr>
-<tr><td align=right> Berkeley DB </td><td><a href="../ref/program/scope.html#3">free-threaded</a> handles</td></tr>
-<tr><td align=right> specifying a database </td><td><a href="../ref/am_conf/h_hash.html#2">hash</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/am_conf/h_nelem.html#2">hash</a> table size</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/hpux.html#2">HP-UX</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/install.html#2">installing</a> Berkeley DB for UNIX systems</td></tr>
-<tr><td align=right> </td><td><a href="../ref/program/compatible.html#2">interface</a> compatibility</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/irix.html#2">IRIX</a></td></tr>
-<tr><td align=right> configuring the </td><td><a href="../ref/build_unix/conf.html#10">Java</a> API</td></tr>
-<tr><td align=right> </td><td><a href="../ref/java/compat.html#2">Java</a> compatibility</td></tr>
-<tr><td align=right> </td><td><a href="../ref/java/conf.html#2">Java</a> configuration</td></tr>
-<tr><td align=right> </td><td><a href="../ref/java/faq.html#3">Java</a> FAQ</td></tr>
-<tr><td align=right> logical </td><td><a href="../ref/am/join.html#2">join</a></td></tr>
-<tr><td align=right> database </td><td><a href="../ref/program/dbsizes.html#2">limits</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/linux.html#2">Linux</a></td></tr>
-<tr><td align=right> changing compile or </td><td><a href="../ref/build_unix/flags.html#3">load</a> options</td></tr>
-<tr><td align=right> utility to </td><td><a href="../utility/db_load.html#3">load</a> text files into databases</td></tr>
-<tr><td align=right> standard </td><td><a href="../ref/lock/stdmode.html#2">lock</a> modes</td></tr>
-<tr><td align=right> page-level </td><td><a href="../ref/lock/page.html#2">locking</a></td></tr>
-<tr><td align=right> two-phase </td><td><a href="../ref/lock/twopl.html#2">locking</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/lock/nondb.html#2">locking</a> and non-Berkeley DB applications</td></tr>
-<tr><td align=right> </td><td><a href="../ref/lock/config.html#2">locking</a> configuration</td></tr>
-<tr><td align=right> </td><td><a href="../ref/lock/am_conv.html#2">locking</a> conventions</td></tr>
-<tr><td align=right> Berkeley DB Concurrent Data Store </td><td><a href="../ref/lock/cam_conv.html#2">locking</a> conventions</td></tr>
-<tr><td align=right> </td><td><a href="../ref/lock/intro.html#2">locking</a> introduction</td></tr>
-<tr><td align=right> sizing the </td><td><a href="../ref/lock/max.html#2">locking</a> subsystem</td></tr>
-<tr><td align=right> </td><td><a href="../ref/lock/notxn.html#2">locking</a> without transactions</td></tr>
-<tr><td align=right> </td><td><a href="../ref/log/limits.html#2">log</a> file limits</td></tr>
-<tr><td align=right> </td><td><a href="../ref/transapp/logfile.html#2">log</a> file removal</td></tr>
-<tr><td align=right> utility to display </td><td><a href="../utility/db_printlog.html#3">log</a> files as text</td></tr>
-<tr><td align=right> </td><td><a href="../ref/log/config.html#2">logging</a> configuration</td></tr>
-<tr><td align=right> </td><td><a href="../ref/log/intro.html#2">logging</a> introduction</td></tr>
-<tr><td align=right> </td><td><a href="../ref/mp/config.html#2">memory</a> pool configuration</td></tr>
-<tr><td align=right> Berkeley DB library </td><td><a href="../ref/program/namespace.html#2">name</a> spaces</td></tr>
-<tr><td align=right> file </td><td><a href="../ref/env/naming.html#2">naming</a></td></tr>
-<tr><td align=right> retrieving Btree records by </td><td><a href="../ref/am_conf/bt_recnum.html#2">number</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/open.html#2">opening</a> a database</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/osf1.html#2">OSF/1</a></td></tr>
-<tr><td align=right> selecting a </td><td><a href="../ref/am_conf/pagesize.html#2">page</a> size</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/partial.html#2">partial</a> record storage and retrieval</td></tr>
-<tr><td align=right></td><td><a href="http://www.sleepycat.com/update/index.html">Patches,</a> Updates and Change logs</td></tr>
-<tr><td align=right> </td><td><a href="../ref/perl/intro.html#2">Perl</a></td></tr>
-<tr><td align=right> Sleepycat Software's Berkeley DB </td><td><a href="../ref/intro/products.html#2">products</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/qnx.html#2">QNX</a></td></tr>
-<tr><td align=right> logical </td><td><a href="../ref/am_conf/logrec.html#2">record</a> numbers</td></tr>
-<tr><td align=right> managing </td><td><a href="../ref/am_conf/recno.html#2">record-based</a> databases</td></tr>
-<tr><td align=right> logically renumbering </td><td><a href="../ref/am_conf/renumber.html#2">records</a></td></tr>
-<tr><td align=right> utility to </td><td><a href="../utility/db_recover.html#3">recover</a> database environments</td></tr>
-<tr><td align=right> Berkeley DB </td><td><a href="../ref/transapp/reclimit.html#2">recoverability</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/get.html#2">retrieving</a> records</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/curget.html#2">retrieving</a> records with a cursor</td></tr>
-<tr><td align=right> </td><td><a href="../ref/rpc/client.html#2">RPC</a> client</td></tr>
-<tr><td align=right> configuring a </td><td><a href="../ref/build_unix/conf.html#11">RPC</a> client/server</td></tr>
-<tr><td align=right> utility to support </td><td><a href="../utility/berkeley_db_svc.html#3">RPC</a> client/server</td></tr>
-<tr><td align=right> </td><td><a href="../ref/rpc/server.html#2">RPC</a> server</td></tr>
-<tr><td align=right> database </td><td><a href="../ref/am/verify.html#3">salvage</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/sco.html#2">SCO</a></td></tr>
-<tr><td align=right> Berkeley DB handle </td><td><a href="../ref/program/scope.html#2">scope</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/env/security.html#2">security</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/sendmail/intro.html#2">Sendmail</a></td></tr>
-<tr><td align=right> configuring </td><td><a href="../ref/build_unix/conf.html#8">shared</a> libraries</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/shlib.html#2">shared</a> libraries</td></tr>
-<tr><td align=right> application </td><td><a href="../ref/program/appsignals.html#2">signal</a> handling</td></tr>
-<tr><td align=right></td><td><a href="http://www.sleepycat.com/">Sleepycat</a> Software</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/solaris.html#2">Solaris</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/distrib/layout.html#2">source</a> code layout</td></tr>
-<tr><td align=right> cursor </td><td><a href="../ref/am/stability.html#3">stability</a></td></tr>
-<tr><td align=right> database </td><td><a href="../ref/am/stat.html#2">statistics</a></td></tr>
-<tr><td align=right> utility to display database and environment </td><td><a href="../utility/db_stat.html#3">statistics</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/put.html#2">storing</a> records</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/curput.html#2">storing</a> records with a cursor</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/sunos.html#2">SunOS</a></td></tr>
-<tr><td align=right> loading Berkeley DB with </td><td><a href="../ref/tcl/intro.html#2">Tcl</a></td></tr>
-<tr><td align=right> using Berkeley DB with </td><td><a href="../ref/tcl/using.html#2">Tcl</a></td></tr>
-<tr><td align=right> configuring the </td><td><a href="../ref/build_unix/conf.html#12">Tcl</a> API</td></tr>
-<tr><td align=right> </td><td><a href="../ref/tcl/program.html#2">Tcl</a> API programming notes</td></tr>
-<tr><td align=right> </td><td><a href="../ref/tcl/faq.html#3">Tcl</a> FAQ</td></tr>
-<tr><td align=right> configuring the </td><td><a href="../ref/build_unix/conf.html#13">test</a> suite</td></tr>
-<tr><td align=right> running the </td><td><a href="../ref/test/run.html#2">test</a> suite</td></tr>
-<tr><td align=right> running the </td><td><a href="../ref/build_unix/test.html#2">test</a> suite under UNIX</td></tr>
-<tr><td align=right> running the </td><td><a href="../ref/build_win/test.html#2">test</a> suite under Windows</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am_conf/re_source.html#2">text</a> backing files</td></tr>
-<tr><td align=right> loading </td><td><a href="../ref/dumpload/text.html#2">text</a> into databases</td></tr>
-<tr><td align=right> dumping/loading </td><td><a href="../ref/dumpload/utility.html#2">text</a> to/from databases</td></tr>
-<tr><td align=right> building </td><td><a href="../ref/program/mt.html#2">threaded</a> applications</td></tr>
-<tr><td align=right> </td><td><a href="../ref/txn/config.html#2">transaction</a> configuration</td></tr>
-<tr><td align=right> </td><td><a href="../ref/txn/limits.html#2">transaction</a> limits</td></tr>
-<tr><td align=right> administering </td><td><a href="../ref/transapp/admin.html#2">transaction</a> protected applications</td></tr>
-<tr><td align=right> archival in </td><td><a href="../ref/transapp/archival.html#2">transaction</a> protected applications</td></tr>
-<tr><td align=right> checkpoints in </td><td><a href="../ref/transapp/checkpoint.html#2">transaction</a> protected applications</td></tr>
-<tr><td align=right> deadlock detection in </td><td><a href="../ref/transapp/deadlock.html#2">transaction</a> protected applications</td></tr>
-<tr><td align=right> recovery in </td><td><a href="../ref/transapp/recovery.html#2">transaction</a> protected applications</td></tr>
-<tr><td align=right> </td><td><a href="../ref/transapp/throughput.html#2">transaction</a> throughput</td></tr>
-<tr><td align=right> </td><td><a href="../ref/transapp/intro.html#2">Transactional</a> Data Store</td></tr>
-<tr><td align=right> Berkeley DB and </td><td><a href="../ref/txn/intro.html#2">transactions</a></td></tr>
-<tr><td align=right> nested </td><td><a href="../ref/txn/nested.html#2">transactions</a></td></tr>
-<tr><td align=right> configuring Berkeley DB with the </td><td><a href="../ref/xa/config.html#2">Tuxedo</a> System</td></tr>
-<tr><td align=right> </td><td><a href="../api_tcl/txn_abort.html#2">txn</a> abort</td></tr>
-<tr><td align=right> </td><td><a href="../api_tcl/txn_commit.html#2">txn</a> commit</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_unix/ultrix.html#2">Ultrix</a></td></tr>
-<tr><td align=right> building for </td><td><a href="../ref/build_unix/notes.html#3">UNIX</a> FAQ</td></tr>
-<tr><td align=right> configuring Berkeley DB for </td><td><a href="../ref/build_unix/conf.html#3">UNIX</a> systems</td></tr>
-<tr><td align=right>Patches, </td><td><a href="http://www.sleepycat.com/update/index.html">Updates</a> and Change logs</td></tr>
-<tr><td align=right> utility to </td><td><a href="../utility/db_upgrade.html#4">upgrade</a> database files</td></tr>
-<tr><td align=right> </td><td><a href="../ref/am/upgrade.html#2">upgrading</a> databases</td></tr>
-<tr><td align=right> </td><td><a href="../ref/arch/utilities.html#2">utilities</a></td></tr>
-<tr><td align=right> database </td><td><a href="../ref/am/verify.html#2">verification</a></td></tr>
-<tr><td align=right> utility to </td><td><a href="../utility/db_verify.html#4">verify</a> database files</td></tr>
-<tr><td align=right> building for </td><td><a href="../ref/build_vxworks/faq.html#3">VxWorks</a> FAQ</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_vxworks/notes.html#2">VxWorks</a> notes</td></tr>
-<tr><td align=right> running the test suite under </td><td><a href="../ref/build_win/test.html#3">Windows</a></td></tr>
-<tr><td align=right> building for </td><td><a href="../ref/build_win/faq.html#3">Windows</a> FAQ</td></tr>
-<tr><td align=right> </td><td><a href="../ref/build_win/notes.html#2">Windows</a> notes</td></tr>
-<tr><td align=right>Configuring Berkeley DB</td><td><a href="../ref/build_unix/conf.html#--with-tcl=DIR">--with-tcl=DIR</a></td></tr>
-<tr><td align=right> </td><td><a href="../ref/xa/intro.html#2">XA</a> Resource Manager</td></tr>
-</table>
-</center>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_tcl/txn.html b/bdb/docs/api_tcl/txn.html
deleted file mode 100644
index 4e66a96a6ae..00000000000
--- a/bdb/docs/api_tcl/txn.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!--$Id: txn.so,v 11.12 2000/02/19 20:57:57 bostic Exp $-->
-<!--$Id: m4.tcl,v 11.17 2000/04/24 17:31:11 sue Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: env txn</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1><i>env</i> <b>txn</b></h1>
-</td>
-<td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>env txn
- [-nosync]
- [-nowait]
- [-parent txnid]
- [-sync]
-</pre></h3>
-<h1>Description</h1>
-<p>The <i>env</i> <b>txn</b> command begins a transaction. The returned transaction
-handle is bound to a Tcl command of the form <b>env.txnX</b>, where X
-is an integer starting at 0 (e.g., env0.txn0 and env0.txn1). It is
-through this Tcl command that the script accesses the transaction methods.
-<p>The options are as follows:
-<p><dl compact>
-<p><dt>-nosync<dd>Do not synchronously flush the log when this transaction commits or
-prepares. This means the transaction will exhibit the ACI (atomicity,
-consistency and isolation) properties, but not D (durability), i.e.,
-database integrity will be maintained but it is possible that this
-transaction may be undone during recovery instead of being redone.
-<p>This behavior may be set for an entire Berkeley DB environment as part of
-the <b>berkdb env</b> interface.
-<p><dt>-nowait<dd>If a lock is unavailable for any Berkeley DB operation performed in the context
-of this transaction, throw a Tcl error immediately instead of blocking on
-the lock.
-<p><dt>-parent txnid<dd>Create the new transaction as a nested transaction, with the specified
-transaction indicated as its parent. Transactions may be nested to any
-level.
-<p><dt>-sync<dd>Synchronously flush the log when this transaction commits or prepares. This
-means the transaction will exhibit all of the ACID (atomicity, consistency
-and isolation and durability) properties.
-<p>This behavior is the default for Berkeley DB environments unless the
-<b>-nosync</b> option was specified to the <b>berkdb env</b> interface.
-</dl>
-<p>The <i>env</i> <b>txn</b> command returns a transaction handle on success.
-<p>In the case of error, a Tcl error is thrown.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_tcl/txn_abort.html b/bdb/docs/api_tcl/txn_abort.html
deleted file mode 100644
index 8b147883f6d..00000000000
--- a/bdb/docs/api_tcl/txn_abort.html
+++ /dev/null
@@ -1,45 +0,0 @@
-<!--$Id: txn_abort.so,v 11.12 2000/06/28 14:30:15 bostic Exp $-->
-<!--$Id: m4.tcl,v 11.17 2000/04/24 17:31:11 sue Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: txn abort</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1><i>txn</i> <b>abort</b></h1>
-</td>
-<td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>txn abort
-</pre></h3>
-<h1>Description</h1>
-<p>The <i>txn</i> <b>abort</b> command causes an abnormal termination of the
-transaction.
-<p>The log is played backwards and any necessary recovery operations are
-performed. After recovery is completed, all locks held by the
-transaction are acquired by the parent transaction in the case of a
-nested transaction or released in the case of a non-nested transaction.
-As is the case for <i>txn</i> <b>commit</b>, applications that require strict
-two-phase locking should not explicitly release any locks.
-<p>In the case of nested transactions, aborting the parent transaction
-causes all children of that transaction to be aborted.
-<p>Once <i>txn</i> <b>abort</b> has been called, regardless of its return, the
-<b>txn</b> handle may not be accessed again.
-<p>The <i>txn</i> <b>abort</b> command returns 0 on success, and in the case of error, a Tcl error
-is thrown.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_tcl/txn_commit.html b/bdb/docs/api_tcl/txn_commit.html
deleted file mode 100644
index acd1f2d1b29..00000000000
--- a/bdb/docs/api_tcl/txn_commit.html
+++ /dev/null
@@ -1,68 +0,0 @@
-<!--$Id: txn_commit.so,v 11.14 2000/06/28 14:30:15 bostic Exp $-->
-<!--$Id: m4.tcl,v 11.17 2000/04/24 17:31:11 sue Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: txn commit</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1><i>txn</i> <b>commit</b></h1>
-</td>
-<td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>txn commit
- [-nosync]
- [-sync]
-</pre></h3>
-<h1>Description</h1>
-<p>The <i>txn</i> <b>commit</b> command ends the transaction.
-<p>In the case of nested transactions, if the transaction is a parent
-transaction with unresolved (neither committed or aborted) child
-transactions, the child transactions are aborted and the commit of the
-parent will succeed.
-<p>In the case of nested transactions, if the transaction is a child
-transaction, its locks are not released, but are acquired by its parent.
-While the commit of the child transaction will succeed, the actual
-resolution of the child transaction is postponed until the parent
-transaction is committed or aborted, i.e., if its parent transaction
-commits, it will be committed, and if its parent transaction aborts, it
-will be aborted.
-<p>If the <b>-nosync</b> option is not specified, a commit log record is
-written and flushed to disk, as are all previously written log records.
-<p>The options are as follows:
-<p><dl compact>
-<p><dt>-nosync<dd>Do not synchronously flush the log. This means the transaction will
-exhibit the ACI (atomicity, consistency and isolation) properties, but
-not D (durability), i.e., database integrity will be maintained but it is
-possible that this transaction may be undone during recovery instead of
-being redone.
-<p>This behavior may be set for an entire Berkeley DB environment as part of
-the <b>berkdb env</b> interface.
-<p><dt>-sync<dd>Synchronously flush the log. This means the transaction will exhibit all of
-the ACID (atomicity, consistency and isolation and durability) properties.
-<p>This behavior is the default for Berkeley DB environments unless the
-<b>-nosync</b> option was specified to the <b>berkdb env</b> or
-<i>env</i> <b>txn</b> interfaces.
-</dl>
-<p>Once <i>txn</i> <b>commit</b> has been called, regardless of its return, the
-<b>txn</b> handle may not be accessed again. If <i>txn</i> <b>commit</b>
-encounters an error, then this transaction and all child transactions
-of this transaction are aborted.
-<p>The <i>txn</i> <b>commit</b> command returns 0 on success, and in the case of error, a Tcl error
-is thrown.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/api_tcl/version.html b/bdb/docs/api_tcl/version.html
deleted file mode 100644
index ab4b901f1e9..00000000000
--- a/bdb/docs/api_tcl/version.html
+++ /dev/null
@@ -1,39 +0,0 @@
-<!--$Id: version.so,v 11.10 1999/12/20 08:52:35 bostic Exp $-->
-<!--$Id: m4.tcl,v 11.17 2000/04/24 17:31:11 sue Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: berkdb version</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1><b>berkdb version</b></h1>
-</td>
-<td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>berkdb version
- [-string]
-</pre></h3>
-<h1>Description</h1>
-<p>Return a list of the form {major minor patch} for the major, minor and
-patch levels of the underlying Berkeley DB release.
-<p>The options are as follows:
-<p><dl compact>
-<p><dt>-string<dd>Return a string with formatted Berkeley DB version information.
-</dl>
-<p>In the case of error, a Tcl error is thrown.
-</tt>
-<table><tr><td><br></td><td width="1%">
-<a href="../api_tcl/tcl_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/images/api.gif b/bdb/docs/images/api.gif
deleted file mode 100644
index dafd5772a14..00000000000
--- a/bdb/docs/images/api.gif
+++ /dev/null
Binary files differ
diff --git a/bdb/docs/images/next.gif b/bdb/docs/images/next.gif
deleted file mode 100644
index 667ee061a9f..00000000000
--- a/bdb/docs/images/next.gif
+++ /dev/null
Binary files differ
diff --git a/bdb/docs/images/prev.gif b/bdb/docs/images/prev.gif
deleted file mode 100644
index 11dfc5256ee..00000000000
--- a/bdb/docs/images/prev.gif
+++ /dev/null
Binary files differ
diff --git a/bdb/docs/images/ps.gif b/bdb/docs/images/ps.gif
deleted file mode 100644
index 0f565bc1db7..00000000000
--- a/bdb/docs/images/ps.gif
+++ /dev/null
Binary files differ
diff --git a/bdb/docs/images/ref.gif b/bdb/docs/images/ref.gif
deleted file mode 100644
index 75be9c1f348..00000000000
--- a/bdb/docs/images/ref.gif
+++ /dev/null
Binary files differ
diff --git a/bdb/docs/images/sleepycat.gif b/bdb/docs/images/sleepycat.gif
deleted file mode 100644
index 5e768f74f2b..00000000000
--- a/bdb/docs/images/sleepycat.gif
+++ /dev/null
Binary files differ
diff --git a/bdb/docs/index.html b/bdb/docs/index.html
deleted file mode 100644
index ad638e776c9..00000000000
--- a/bdb/docs/index.html
+++ /dev/null
@@ -1,75 +0,0 @@
-<!--$Id: index.html,v 1.11 2000/11/22 21:40:34 bostic Exp $-->
-<html>
-<head>
-<title>Berkeley DB (Version: 3.2.9)</title>
-</head>
-<body bgcolor=white>
-
-<p align=center>
-<img src="images/sleepycat.gif" alt="Sleepycat Software Inc.">
-<p align=right>
-<font size="+1">... <i>the embedded database company</i></font><sup>tm</sup>
-
-<p><br>
-<p><br>
-<center><h1><b>Berkeley DB</b></h1></center>
-
-<p>
-<table align=center cellpadding=4 border=2>
-<tr>
- <th align=center width="50%">Interface Documentation</th>
- <th align=center width="50%">Building Berkeley DB</th>
-</tr><tr valign=top>
- <td>
- <a href="api_c/c_index.html">C API</a><br>
- <a href="api_c/c_pindex.html">C API Index</a><br>
- <p>
- <a href="api_cxx/cxx_index.html">C++ API</a><br>
- <a href="api_cxx/cxx_pindex.html">C++ API Index</a><br>
- <p>
- <a href="api_java/java_index.html">Java API</a><br>
- <a href="api_java/java_pindex.html">Java API Index</a><br>
- <p>
- <a href="api_tcl/tcl_index.html">Tcl API</a><br>
- </td><td>
- <a href="ref/build_unix/intro.html">Building for UNIX and QNX systems</a><br>
- <p>
- <a href="ref/build_win/intro.html">Building for Win32 platforms</a><br>
- <p>
- <a href="ref/build_vxworks/intro.html">Building for VxWorks platforms</a><br>
- <p>
- <a href="ref/upgrade.3.2/intro.html">Upgrading Applications to the 3.2 release</a><br>
- </td>
-
-</tr><tr valign=top>
- <th align=center>Additional Documentation</th>
- <th align=center>Company and Product Information</th>
-</tr><tr valign=top>
- <td>
- <a href="utility/index.html">Supporting Utilities</a><br>
- <p>
- <a href="ref/toc.html">Programmer's Tutorial and Reference Guide</a><br>
- </td><td>
- <a href="sleepycat/contact.html">Contacting Sleepycat Software</a><br>
- <a href="ref/intro/products.html">Commercial Product List</a><br>
- <a href="sleepycat/license.html">License</a><br>
- <a href="http://www.sleepycat.com/update/index.html">Release Patches and Change Logs</a><br>
- <a href="http://www.sleepycat.com">Sleepycat Software Home Page</a><br>
- </td>
-</tr>
-
-</table>
-
-<p>
-<center><b>
-Version 3.2.9, January 24, 2001<br>
-Copyright 1997-2000 Sleepycat Software, Inc. All Rights Reserved
-</b></center>
-
-<p><br>
-<p><br>
-<p><br>
-<p><h5><a href="sleepycat/legal.html">Legal Notices</a></h5>
-
-</body>
-</html>
diff --git a/bdb/docs/ref/am/close.html b/bdb/docs/ref/am/close.html
deleted file mode 100644
index 04b8beacb6a..00000000000
--- a/bdb/docs/ref/am/close.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!--$Id: close.so,v 10.15 2000/12/18 21:05:13 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Closing a database</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td>
-<td width="1%"><a href="../../ref/am/stat.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am/cursor.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Closing a database</h1>
-<p>The <a href="../../api_c/db_close.html">DB-&gt;close</a> function is the standard interface for closing the database.
-By default, <a href="../../api_c/db_close.html">DB-&gt;close</a> also flushes all modified records from the
-database cache to disk.
-<p>There is one flag that you can set to customize <a href="../../api_c/db_close.html">DB-&gt;close</a>:
-<p><dl compact>
-<p><dt><a href="../../api_c/db_close.html#DB_NOSYNC">DB_NOSYNC</a><dd>Do not flush cached information to disk.
-</dl>
-<b>It is important to understand that flushing cached information
-to disk only minimizes the window of opportunity for corrupted data, it
-does not eliminate the possibility.</b>
-<p>While unlikely, it is possible for database corruption to happen if a
-system or application crash occurs while writing data to the database. To
-ensure that database corruption never occurs, applications must either:
-<ul type=disc>
-<li>Use transactions and logging with automatic recovery.
-<li>Use logging and application-specific recovery.
-<li>Edit a copy of the database, and, once all applications
-using the database have successfully called <a href="../../api_c/db_close.html">DB-&gt;close</a>, use
-system operations (e.g., the POSIX rename system call) to atomically
-replace the original database with the updated copy.
-</ul>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/am/stat.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am/cursor.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/am/count.html b/bdb/docs/ref/am/count.html
deleted file mode 100644
index 92282641b6b..00000000000
--- a/bdb/docs/ref/am/count.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!--$Id: count.so,v 1.3 2000/12/18 21:05:13 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Data item count</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td>
-<td width="1%"><a href="../../ref/am/join.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am/curclose.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Data item count</h1>
-<p>Once a cursor has been initialized to reference a particular key in the
-database, it can be used to determine the number of data items that are
-stored for any particular key. The <a href="../../api_c/dbc_count.html">DBcursor-&gt;c_count</a> method returns
-this number of data items. The returned value is always one, unless
-the database supports duplicate data items, in which case it may be any
-number of items.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/am/join.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am/curclose.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/am/curclose.html b/bdb/docs/ref/am/curclose.html
deleted file mode 100644
index 52ccfeb8cd5..00000000000
--- a/bdb/docs/ref/am/curclose.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!--$Id: curclose.so,v 10.12 2000/12/13 16:48:13 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Closing a cursor</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a> <a name="3"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td>
-<td width="1%"><a href="../../ref/am/count.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am/stability.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Closing a cursor</h1>
-<p>The <a href="../../api_c/dbc_close.html">DBcursor-&gt;c_close</a> function is the standard interface for closing a cursor,
-after which the cursor may no longer be used. Although cursors are
-implicitly closed when the database they point to are closed, it is good
-programming practice to explicitly close cursors. In addition, in
-transactional systems, cursors may not exist outside of a transaction and
-so must be explicitly closed.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/am/count.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am/stability.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/am/curdel.html b/bdb/docs/ref/am/curdel.html
deleted file mode 100644
index b0fe8f9573f..00000000000
--- a/bdb/docs/ref/am/curdel.html
+++ /dev/null
@@ -1,26 +0,0 @@
-<!--$Id: curdel.so,v 10.11 2000/03/18 21:43:07 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Deleting records with a cursor</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a> <a name="3"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td>
-<td width="1%"><a href="../../ref/am/curput.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am/curdup.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Deleting records with a cursor</h1>
-<p>The <a href="../../api_c/dbc_del.html">DBcursor-&gt;c_del</a> function is the standard interface for deleting records from
-the database using a cursor. The <a href="../../api_c/dbc_del.html">DBcursor-&gt;c_del</a> function deletes the record
-currently referenced by the cursor. In all cases, the cursor position is
-unchanged after a delete.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/am/curput.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am/curdup.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/am/curdup.html b/bdb/docs/ref/am/curdup.html
deleted file mode 100644
index 6c609b2e545..00000000000
--- a/bdb/docs/ref/am/curdup.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!--$Id: curdup.so,v 11.5 2000/12/19 14:45:39 sue Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Duplicating a cursor</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a> <a name="3"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td>
-<td width="1%"><a href="../../ref/am/curdel.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am/join.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Duplicating a cursor</h1>
-<p>Once a cursor has been initialized (e.g., by a call to <a href="../../api_c/dbc_get.html">DBcursor-&gt;c_get</a>),
-it can be thought of as identifying a particular location in a database.
-The <a href="../../api_c/dbc_dup.html">DBcursor-&gt;c_dup</a> function permits an application to create a new cursor that
-has the same locking and transactional information as the cursor from
-which it is copied, and which optionally refers to the same position in
-the database.
-<p>In order to maintain a cursor position when an application is using
-locking, locks are maintained on behalf of the cursor until the cursor is
-closed. In cases when an application is using locking without
-transactions, cursor duplication is often required to avoid
-self-deadlocks. For further details, refer to
-<a href="../../ref/lock/am_conv.html">Access method locking conventions</a>.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/am/curdel.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am/join.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/am/curget.html b/bdb/docs/ref/am/curget.html
deleted file mode 100644
index 129fa272bbd..00000000000
--- a/bdb/docs/ref/am/curget.html
+++ /dev/null
@@ -1,74 +0,0 @@
-<!--$Id: curget.so,v 10.14 2000/12/18 21:05:13 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Retrieving records with a cursor</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a> <a name="3"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td>
-<td width="1%"><a href="../../ref/am/cursor.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am/curput.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Retrieving records with a cursor</h1>
-<p>The <a href="../../api_c/dbc_get.html">DBcursor-&gt;c_get</a> function is the standard interface for retrieving records from
-the database with a cursor. The <a href="../../api_c/dbc_get.html">DBcursor-&gt;c_get</a> function takes a flag which
-controls how the cursor is positioned within the database and returns the
-key/data item associated with that positioning. Similar to
-<a href="../../api_c/db_get.html">DB-&gt;get</a>, <a href="../../api_c/dbc_get.html">DBcursor-&gt;c_get</a> may also take a supplied key and retrieve
-the data associated with that key from the database. There are several
-flags that you can set to customize retrieval.
-<h3>Cursor position flags</h3>
-<p><dl compact>
-<p><dt><a href="../../api_c/dbc_get.html#DB_FIRST">DB_FIRST</a>, <a href="../../api_c/dbc_get.html#DB_LAST">DB_LAST</a><dd>Return the first (last) record in the database.
-<p><dt><a href="../../api_c/dbc_get.html#DB_NEXT">DB_NEXT</a>, <a href="../../api_c/dbc_get.html#DB_PREV">DB_PREV</a><dd>Return the next (previous) record in the database.
-<p><dt><a href="../../api_c/dbc_get.html#DB_NEXT_DUP">DB_NEXT_DUP</a><dd>Return the next record in the database, if it is a duplicate data item
-for the current key.
-<p><dt><a href="../../api_c/dbc_get.html#DB_NEXT_NODUP">DB_NEXT_NODUP</a>, <a href="../../api_c/dbc_get.html#DB_PREV_NODUP">DB_PREV_NODUP</a><dd>Return the next (previous) record in the database that is not a
-duplicate data item for the current key.
-<p><dt><a href="../../api_c/dbc_get.html#DB_CURRENT">DB_CURRENT</a><dd>Return the record from the database currently referenced by the
-cursor.
-</dl>
-<h3>Retrieving specific key/data pairs</h3>
-<p><dl compact>
-<p><dt><a href="../../api_c/dbc_get.html#DB_SET">DB_SET</a><dd>Return the record from the database that matches the supplied key. In
-the case of duplicates the first duplicate is returned and the cursor
-is positioned at the beginning of the duplicate list. The user can then
-traverse the duplicate entries for the key.
-<p><dt><a href="../../api_c/dbc_get.html#DB_SET_RANGE">DB_SET_RANGE</a><dd>Return the smallest record in the database greater than or equal to the
-supplied key. This functionality permits partial key matches and range
-searches in the Btree access method.
-<p><dt><a href="../../api_c/db_get.html#DB_GET_BOTH">DB_GET_BOTH</a><dd>Return the record from the database that matches both the supplied key
-and data items. This is particularly useful when there are large
-numbers of duplicate records for a key, as it allows the cursor to
-easily be positioned at the correct place for traversal of some part of
-a large set of duplicate records.
-</dl>
-<h3>Retrieving based on record numbers</h3>
-<p><dl compact>
-<p><dt><a href="../../api_c/db_get.html#DB_SET_RECNO">DB_SET_RECNO</a><dd>If the underlying database is a Btree, and was configured so that it is
-possible to search it by logical record number, retrieve a specific
-record based on a record number argument.
-<p><dt><a href="../../api_c/dbc_get.html#DB_GET_RECNO">DB_GET_RECNO</a><dd>If the underlying database is a Btree, and was configured so that it is
-possible to search it by logical record number, return the record number
-for the record referenced by the cursor.
-</dl>
-<h3>Special-purpose flags</h3>
-<p><dl compact>
-<p><dt><a href="../../api_c/db_get.html#DB_CONSUME">DB_CONSUME</a><dd>Read-and-delete: the first record (the head) of the queue is returned and
-deleted. The underlying database must be a Queue.
-<p><dt><a href="../../api_c/dbc_get.html#DB_RMW">DB_RMW</a><dd>Read-modify-write: acquire write locks instead of read locks during
-retrieval. This can enhance performance in threaded applications by
-reducing the chance of deadlock.
-</dl>
-<p>In all cases, the cursor is repositioned by a <a href="../../api_c/dbc_get.html">DBcursor-&gt;c_get</a> operation
-to point to the newly-returned key/data pair in the database.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/am/cursor.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am/curput.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/am/curput.html b/bdb/docs/ref/am/curput.html
deleted file mode 100644
index 0d5ef2725af..00000000000
--- a/bdb/docs/ref/am/curput.html
+++ /dev/null
@@ -1,40 +0,0 @@
-<!--$Id: curput.so,v 10.12 2000/12/04 18:05:41 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Storing records with a cursor</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a> <a name="3"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td>
-<td width="1%"><a href="../../ref/am/curget.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am/curdel.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Storing records with a cursor</h1>
-<p>The <a href="../../api_c/dbc_put.html">DBcursor-&gt;c_put</a> function is the standard interface for storing records into
-the database with a cursor. In general, <a href="../../api_c/dbc_put.html">DBcursor-&gt;c_put</a> takes a key and
-inserts the associated data into the database, at a location controlled
-by a specified flag.
-<p>There are several flags that you can set to customize storage:
-<p><dl compact>
-<p><dt><a href="../../api_c/dbc_put.html#DB_AFTER">DB_AFTER</a><dd>Create a new record, immediately after the record currently referenced by
-the cursor.
-<p><dt><a href="../../api_c/dbc_put.html#DB_BEFORE">DB_BEFORE</a><dd>Create a new record, immediately before the record currently referenced by
-the cursor.
-<p><dt><a href="../../api_c/dbc_put.html#DB_CURRENT_PUT">DB_CURRENT</a><dd>Replace the data part of the record currently referenced by the cursor.
-<p><dt><a href="../../api_c/dbc_put.html#DB_KEYFIRST">DB_KEYFIRST</a><dd>Create a new record as the first of the duplicate records for the
-supplied key.
-<p><dt><a href="../../api_c/dbc_put.html#DB_KEYLAST">DB_KEYLAST</a><dd>Create a new record, as the last of the duplicate records for the supplied
-key.
-</dl>
-<p>In all cases, the cursor is repositioned by a <a href="../../api_c/dbc_put.html">DBcursor-&gt;c_put</a> operation
-to point to the newly inserted key/data pair in the database.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/am/curget.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am/curdel.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/am/cursor.html b/bdb/docs/ref/am/cursor.html
deleted file mode 100644
index 529285b4a78..00000000000
--- a/bdb/docs/ref/am/cursor.html
+++ /dev/null
@@ -1,41 +0,0 @@
-<!--$Id: cursor.so,v 10.15 2000/12/18 21:05:13 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Database cursors</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td>
-<td width="1%"><a href="../../ref/am/close.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am/curget.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Database cursors</h1>
-<p>A database cursor is a reference to a single key/data pair in the
-database. It supports traversal of the database and is the only way to
-access individual duplicate data items. Cursors are used for operating
-on collections of records, for iterating over a database, and for saving
-handles to individual records, so that they can be modified after they
-have been read.
-<p>The <a href="../../api_c/db_cursor.html">DB-&gt;cursor</a> function is the standard interface for opening a cursor
-into a database. Upon return the cursor is uninitialized, positioning
-occurs as part of the first cursor operation.
-<p>Once a database cursor has been opened, there are a set of access method
-operations that can be performed. Each of these operations is performed
-using a method referenced from the returned cursor handle.
-<p><dl compact>
-<dt><a href="../../api_c/dbc_close.html">DBcursor-&gt;c_close</a><dd>Close the cursor
-<dt><a href="../../api_c/dbc_del.html">DBcursor-&gt;c_del</a><dd>Delete a record
-<dt><a href="../../api_c/dbc_dup.html">DBcursor-&gt;c_dup</a><dd>Duplicate a cursor
-<dt><a href="../../api_c/dbc_get.html">DBcursor-&gt;c_get</a><dd>Retrieve a record
-<dt><a href="../../api_c/dbc_put.html">DBcursor-&gt;c_put</a><dd>Store a record
-</dl>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/am/close.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am/curget.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/am/delete.html b/bdb/docs/ref/am/delete.html
deleted file mode 100644
index 8ab612fa428..00000000000
--- a/bdb/docs/ref/am/delete.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!--$Id: delete.so,v 10.14 2000/03/18 21:43:08 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Deleting records</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td>
-<td width="1%"><a href="../../ref/am/put.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am/sync.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Deleting records</h1>
-<p>The <a href="../../api_c/db_del.html">DB-&gt;del</a> function is the standard interface for deleting records from
-the database. In general, <a href="../../api_c/db_del.html">DB-&gt;del</a> takes a key and deletes the
-data item associated with it from the database.
-<p>If the database has been configured to support duplicate records, the
-<a href="../../api_c/db_del.html">DB-&gt;del</a> function will remove all of the duplicate records. To remove
-individual duplicate records, you must use a Berkeley DB cursor interface.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/am/put.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am/sync.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/am/error.html b/bdb/docs/ref/am/error.html
deleted file mode 100644
index 737e6d66217..00000000000
--- a/bdb/docs/ref/am/error.html
+++ /dev/null
@@ -1,61 +0,0 @@
-<!--$Id: error.so,v 10.14 2000/12/18 21:05:13 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Error support</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td>
-<td width="1%"><a href="../../ref/am/verify.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/arch/bigpic.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Error support</h1>
-<p>Berkeley DB offers programmatic support for displaying error return values.
-<p>The <a href="../../api_c/env_strerror.html">db_strerror</a> interface returns a pointer to the error
-message corresponding to any Berkeley DB error return, similar to the ANSI C
-strerror interface, but is able to handle both system error returns and
-Berkeley DB specific return values.
-<p>For example:
-<p><blockquote><pre>int ret;
-if ((ret = dbp-&gt;put(dbp, NULL, &key, &data, 0)) != 0) {
- fprintf(stderr, "put failed: %s\n", db_strerror(ret));
- return (1);
-}
-</pre></blockquote>
-<p>There are also two additional error interfaces, <a href="../../api_c/db_err.html">DB-&gt;err</a> and
-<a href="../../api_c/db_err.html">DB-&gt;errx</a>. These interfaces work like the ANSI C X3.159-1989 (ANSI C) printf
-interface, taking a printf-style format string and argument list, and
-writing a message constructed from the format string and arguments.
-<p>The <a href="../../api_c/db_err.html">DB-&gt;err</a> function appends the standard error string to the constructed
-message, the <a href="../../api_c/db_err.html">DB-&gt;errx</a> function does not. These interfaces provide simpler
-ways of displaying Berkeley DB error messages. For example, if your application
-tracks session IDs in a variable called session_id, it can include that
-information in its error messages:
-<p>Error messages can additionally be configured to always include a prefix
-(e.g., the program name) using the <a href="../../api_c/db_set_errpfx.html">DB-&gt;set_errpfx</a> interface.
-<p><blockquote><pre>#define DATABASE "access.db"
-int ret;
-dbp-&gt;errpfx(dbp, argv0);
-if ((ret =
- dbp-&gt;open(dbp, DATABASE, DB_BTREE, DB_CREATE, 0664)) != 0) {
- dbp-&gt;err(dbp, ret, "%s", DATABASE);
- dbp-&gt;errx(dbp,
- "contact your system administrator: session ID was %d",
- session_id);
- return (1);
-}
-</pre></blockquote>
-<p>For example, if the program was called my_app, and the open call returned
-an EACCESS system error, the error messages shown would appear as follows:
-<p><blockquote><pre>my_app: access.db: Permission denied.
-my_app: contact your system administrator: session ID was 14</pre></blockquote>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/am/verify.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/arch/bigpic.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/am/get.html b/bdb/docs/ref/am/get.html
deleted file mode 100644
index fda7a8eb2e6..00000000000
--- a/bdb/docs/ref/am/get.html
+++ /dev/null
@@ -1,39 +0,0 @@
-<!--$Id: get.so,v 10.15 2000/12/18 21:05:13 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Retrieving records</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td>
-<td width="1%"><a href="../../ref/am/upgrade.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am/put.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Retrieving records</h1>
-<p>The <a href="../../api_c/db_get.html">DB-&gt;get</a> function is the standard interface for retrieving records from
-the database. In general, <a href="../../api_c/db_get.html">DB-&gt;get</a> takes a key and returns the
-associated data from the database.
-<p>There are a few flags that you can set to customize retrieval:
-<p><dl compact>
-<p><dt><a href="../../api_c/db_get.html#DB_GET_BOTH">DB_GET_BOTH</a><dd>Search for a matching key and data item, i.e., only return success if both
-the key and the data items match those stored in the database.
-<p><dt><a href="../../api_c/dbc_get.html#DB_RMW">DB_RMW</a><dd>Read-modify-write: acquire write locks instead of read locks during
-retrieval. This can enhance performance in threaded applications by
-reducing the chance of deadlock.
-<p><dt><a href="../../api_c/db_get.html#DB_SET_RECNO">DB_SET_RECNO</a><dd>If the underlying database is a Btree, and was configured so that it
-is possible to search it by logical record number, retrieve a specific
-record.
-</dl>
-<p>If the database has been configured to support duplicate records,
-<a href="../../api_c/db_get.html">DB-&gt;get</a> will always return the first data item in the duplicate
-set.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/am/upgrade.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am/put.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/am/join.html b/bdb/docs/ref/am/join.html
deleted file mode 100644
index 9d4dcdd0949..00000000000
--- a/bdb/docs/ref/am/join.html
+++ /dev/null
@@ -1,184 +0,0 @@
-<!--$Id: join.so,v 10.21 2000/12/18 21:05:13 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Logical join</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td>
-<td width="1%"><a href="../../ref/am/curdup.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am/count.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Logical join</h1>
-<p>A logical join is a method of retrieving data from a primary database
-using criteria stored in a set of secondary indexes. A logical join
-requires that your data be organized as a primary database which
-contains the primary key and primary data field, and a set of secondary
-indexes. Each of the secondary indexes is indexed by a different
-secondary key, and, for each key in a secondary index, there is a set
-of duplicate data items that match the primary keys in the primary
-database.
-<p>For example, let's assume the need for an application that will return
-the names of stores in which one can buy fruit of a given color. We
-would first construct a primary database that lists types of fruit as
-the key item, and the store where you can buy them as the data item:
-<p><blockquote><pre><b>Primary key:</b> <b>Primary data:</b>
-apple Convenience Store
-blueberry Farmer's Market
-peach Shopway
-pear Farmer's Market
-raspberry Shopway
-strawberry Farmer's Market</pre></blockquote>
-<p>We would then create a secondary index with the key <b>color</b>, and,
-as the data items, the names of fruits of different colors.
-<p><blockquote><pre><b>Secondary key:</b> <b>Secondary data:</b>
-blue blueberry
-red apple
-red raspberry
-red strawberry
-yellow peach
-yellow pear</pre></blockquote>
-<p>This secondary index would allow an application to look up a color, and
-then use the data items to look up the stores where the colored fruit
-could be purchased. For example, by first looking up <b>blue</b>,
-the data item <b>blueberry</b> could be used as the lookup key in the
-primary database, returning <b>Farmer's Market</b>.
-<p>Your data must be organized in the following manner in order to use the
-<a href="../../api_c/db_join.html">DB-&gt;join</a> function:
-<p><ol>
-<p><li>The actual data should be stored in the database represented by the
-DB object used to invoke this function. Generally, this
-DB object is called the <i>primary</i>.
-<p><li>Secondary indexes should be stored in separate databases, whose keys
-are the values of the secondary indexes and whose data items are the
-primary keys corresponding to the records having the designated
-secondary key value. It is acceptable (and expected) that there may be
-duplicate entries in the secondary indexes.
-<p>These duplicate entries should be sorted for performance reasons, although
-it is not required. For more information see the <a href="../../api_c/db_set_flags.html#DB_DUPSORT">DB_DUPSORT</a> flag
-to the <a href="../../api_c/db_set_flags.html">DB-&gt;set_flags</a> function.
-</ol>
-<p>What the <a href="../../api_c/db_join.html">DB-&gt;join</a> function does is review a list of secondary keys, and,
-when it finds a data item that appears as a data item for all of the
-secondary keys, it uses that data items as a lookup into the primary
-database, and returns the associated data item.
-<p>If there were a another secondary index that had as its key the
-<b>cost</b> of the fruit, a similar lookup could be done on stores
-where inexpensive fruit could be purchased:
-<p><blockquote><pre><b>Secondary key:</b> <b>Secondary data:</b>
-expensive blueberry
-expensive peach
-expensive pear
-expensive strawberry
-inexpensive apple
-inexpensive pear
-inexpensive raspberry</pre></blockquote>
-<p>The <a href="../../api_c/db_join.html">DB-&gt;join</a> function provides logical join functionality. While not
-strictly cursor functionality, in that it is not a method off a cursor
-handle, it is more closely related to the cursor operations than to the
-standard DB operations.
-<p>It is also possible to do lookups based on multiple criteria in a single
-operation, e.g., it is possible to look up fruits that are both red and
-expensive in a single operation. If the same fruit appeared as a data
-item in both the color and expense indexes, then that fruit name would
-be used as the key for retrieval from the primary index, and would then
-return the store where expensive, red fruit could be purchased.
-<h3>Example</h3>
-<p>Consider the following three databases:
-<p><dl compact>
-<p><dt>personnel<dd><ul type=disc>
-<li>key = SSN
-<li>data = record containing name, address, phone number, job title
-</ul>
-<p><dt>lastname<dd><ul type=disc>
-<li>key = lastname
-<li>data = SSN
-</ul>
-<p><dt>jobs<dd><ul type=disc>
-<li>key = job title
-<li>data = SSN
-</ul>
-</dl>
-<p>Consider the following query:
-<p><blockquote><pre>Return the personnel records of all people named smith with the job
-title manager.</pre></blockquote>
-<p>This query finds are all the records in the primary database (personnel)
-for whom the criteria <b>lastname=smith and job title=manager</b> is
-true.
-<p>Assume that all databases have been properly opened and have the handles:
-pers_db, name_db, job_db. We also assume that we have an active
-transaction referenced by the handle txn.
-<p><blockquote><pre>DBC *name_curs, *job_curs, *join_curs;
-DBC *carray[3];
-DBT key, data;
-int ret, tret;
-<p>
-name_curs = NULL;
-job_curs = NULL;
-memset(&key, 0, sizeof(key));
-memset(&data, 0, sizeof(data));
-<p>
-if ((ret =
- name_db-&gt;cursor(name_db, txn, &name_curs)) != 0)
- goto err;
-key.data = "smith";
-key.size = sizeof("smith");
-if ((ret =
- name_curs-&gt;c_get(name_curs, &key, &data, DB_SET)) != 0)
- goto err;
-<p>
-if ((ret = job_db-&gt;cursor(job_db, txn, &job_curs)) != 0)
- goto err;
-key.data = "manager";
-key.size = sizeof("manager");
-if ((ret =
- job_curs-&gt;c_get(job_curs, &key, &data, DB_SET)) != 0)
- goto err;
-<p>
-carray[0] = name_curs;
-carray[1] = job_curs;
-carray[2] = NULL;
-<p>
-if ((ret =
- pers_db-&gt;join(pers_db, carray, &join_curs, 0)) != 0)
- goto err;
-while ((ret =
- join_curs-&gt;c_get(join_curs, &key, &data, 0)) == 0) {
- /* Process record returned in key/data. */
-}
-<p>
-/*
- * If we exited the loop because we ran out of records,
- * then it has completed successfully.
- */
-if (ret == DB_NOTFOUND)
- ret = 0;
-<p>
-err:
-if (join_curs != NULL &&
- (tret = join_curs-&gt;c_close(join_curs)) != 0 && ret == 0)
- ret = tret;
-if (name_curs != NULL &&
- (tret = name_curs-&gt;c_close(name_curs)) != 0 && ret == 0)
- ret = tret;
-if (job_curs != NULL &&
- (tret = job_curs-&gt;c_close(job_curs)) != 0 && ret == 0)
- ret = tret;
-<p>
-return (ret);
-</pre></blockquote>
-<p>The name cursor is positioned at the beginning of the duplicate list
-for <b>smith</b> and the job cursor is placed at the beginning of
-the duplicate list for <b>manager</b>. The join cursor is returned
-from the logical join call. This code then loops over the join cursor
-getting the personnel records of each one until there are no more.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/am/curdup.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am/count.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/am/open.html b/bdb/docs/ref/am/open.html
deleted file mode 100644
index 01c45339ed8..00000000000
--- a/bdb/docs/ref/am/open.html
+++ /dev/null
@@ -1,47 +0,0 @@
-<!--$Id: open.so,v 10.15 2000/12/18 21:05:14 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Opening a database</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td>
-<td width="1%"><a href="../../ref/am/ops.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am/opensub.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Opening a database</h1>
-<p>The <a href="../../api_c/db_open.html">DB-&gt;open</a> function is the standard interface for opening a database,
-and takes five arguments:
-<p><dl compact>
-<p><dt>file<dd>The name of the file to be opened.
-<p><dt>database<dd>An optional database name.
-<p><dt>type<dd>The type of database to open. This value will be one of the four access
-methods Berkeley DB supports: DB_BTREE, DB_HASH, DB_QUEUE or DB_RECNO, or the
-special value DB_UNKNOWN, which allows you to open an existing file
-without knowing its type.
-<p><dt>mode<dd>The permissions to give to any created file.
-</dl>
-<p>There are a few flags that you can set to customize open:
-<p><dl compact>
-<p><dt><a href="../../api_c/env_open.html#DB_CREATE">DB_CREATE</a><dd>Create the underlying database and any necessary physical files.
-<p><dt><a href="../../api_c/env_open.html#DB_NOMMAP">DB_NOMMAP</a><dd>Do not map this database into process memory.
-<p><dt><a href="../../api_c/db_open.html#DB_RDONLY">DB_RDONLY</a><dd>Treat the data base as readonly.
-<p><dt><a href="../../api_c/env_open.html#DB_THREAD">DB_THREAD</a><dd>The returned handle is free-threaded, that is, it can be used
-simultaneously by multiple threads within the process.
-<p><dt><a href="../../api_c/db_open.html#DB_TRUNCATE">DB_TRUNCATE</a><dd>Physically truncate the underlying database file, discarding all
-databases it contained. Underlying filesystem primitives are used to
-implement this flag. For this reason it is only applicable to the
-physical file and cannot be used to discard individual databases from
-within physical files.
-<p><dt><a href="../../api_c/db_set_feedback.html#DB_UPGRADE">DB_UPGRADE</a><dd>Upgrade the database format as necessary.
-</dl>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/am/ops.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am/opensub.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/am/opensub.html b/bdb/docs/ref/am/opensub.html
deleted file mode 100644
index 066ca4b7933..00000000000
--- a/bdb/docs/ref/am/opensub.html
+++ /dev/null
@@ -1,64 +0,0 @@
-<!--$Id: opensub.so,v 10.6 2000/12/18 21:05:14 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Opening multiple databases in a single file</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td>
-<td width="1%"><a href="../../ref/am/open.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am/upgrade.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Opening multiple databases in a single file</h1>
-<p>Applications may create multiple databases within a single physical
-file. This is useful when the databases are both numerous and
-reasonably small, in order to avoid creating a large number of
-underlying files, or when it is desirable to include secondary index
-databases in the same file as the primary index database. Multiple
-databases are an administrative convenience and using them is unlikely
-to effect database performance. To open or create a file that will
-include more than a single database, specify a database name when
-calling the <a href="../../api_c/db_open.html">DB-&gt;open</a> method.
-<p>Physical files do not need to be comprised of a single type of database,
-and databases in a file may be of any type (e.g., Btree, Hash or Recno),
-except for Queue databases. Queue databases must be created one per file
-and cannot share a file with any other database type. There is no limit
-on the number of databases that may be created in a single file other than
-the standard Berkeley DB file size and disk space limitations.
-<p>It is an error to attempt to open a second database in a file that was
-not initially created using a database name, that is, the file must
-initially be specified as capable of containing multiple databases for a
-second database to be created in it.
-<p>It is not an error to open a file that contains multiple databases without
-specifying a database name, however the database type should be specified
-as DB_UNKNOWN and the database must be opened read-only. The handle that
-is returned from such a call is a handle on a database whose key values
-are the names of the databases stored in the database file and whose data
-values are opaque objects. No keys or data values may be modified or
-stored using this database handle.
-<p>Storing multiple databases in a single file is almost identical to
-storing each database in its own separate file. The one crucial
-difference is how locking and the underlying memory pool services must
-to be configured. As an example, consider two databases instantiated
-in two different physical files. If access to each separate database
-is single-threaded, there is no reason to perform any locking of any
-kind, and the two databases may be read and written simultaneously.
-Further, there would be no requirement to create a shared database
-environment in which to open the databases. Because multiple databases
-in a file exist in a single physical file, opening two databases in the
-same file requires that locking be enabled, unless access to the
-databases is known to be single-threaded, that is, only one of the
-databases is ever accessed at a time. (As the locks for the two
-databases can only conflict during page allocation, this additional
-locking is unlikely to effect performance.) Further, the databases must
-share an underlying memory pool so that per-physical-file information
-is updated correctly.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/am/open.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am/upgrade.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/am/ops.html b/bdb/docs/ref/am/ops.html
deleted file mode 100644
index 5daaddd7496..00000000000
--- a/bdb/docs/ref/am/ops.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!--$Id: ops.so,v 10.16 2000/12/18 21:05:14 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Access method operations</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td>
-<td width="1%"><a href="../../ref/am_conf/renumber.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am/open.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Access method operations</h1>
-<p>Once a database handle has been created using <a href="../../api_c/db_create.html">db_create</a>, there
-are several standard access method operations. Each of these operations
-is performed using a method that is referenced from the returned handle.
-The operations are as follows:
-<p><dl compact>
-<p><dt><a href="../../api_c/db_close.html">DB-&gt;close</a><dd>Close the database
-<dt><a href="../../api_c/db_cursor.html">DB-&gt;cursor</a><dd>Open a cursor into the database
-<dt><a href="../../api_c/db_del.html">DB-&gt;del</a><dd>Delete a record
-<dt><a href="../../api_c/db_get.html">DB-&gt;get</a><dd>Retrieve a record
-<dt><a href="../../api_c/db_open.html">DB-&gt;open</a><dd>Open a database
-<dt><a href="../../api_c/db_put.html">DB-&gt;put</a><dd>Store a record
-<dt><a href="../../api_c/db_stat.html">DB-&gt;stat</a><dd>Return statistics about the database
-<dt><a href="../../api_c/db_sync.html">DB-&gt;sync</a><dd>Flush the underlying cache
-<dt><a href="../../api_c/db_upgrade.html">DB-&gt;upgrade</a><dd>Upgrade a database
-</dl>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/am_conf/renumber.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am/open.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/am/partial.html b/bdb/docs/ref/am/partial.html
deleted file mode 100644
index 7f3af8f68df..00000000000
--- a/bdb/docs/ref/am/partial.html
+++ /dev/null
@@ -1,134 +0,0 @@
-<!--$Id: partial.so,v 10.18 2000/12/18 21:05:14 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Partial record storage and retrieval</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td>
-<td width="1%"><a href="../../ref/am/stability.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am/verify.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Partial record storage and retrieval</h1>
-<p>It is possible to both store and retrieve parts of data items in all
-Berkeley DB access methods. This is done by setting the
-<a href="../../api_c/dbt.html#DB_DBT_PARTIAL">DB_DBT_PARTIAL</a> flag in the <a href="../../api_c/dbt.html">DBT</a> structure passed to the
-Berkeley DB interface.
-<p>The <a href="../../api_c/dbt.html#DB_DBT_PARTIAL">DB_DBT_PARTIAL</a> flag is based on the values of two fields
-of the <a href="../../api_c/dbt.html">DBT</a> structure, <b>dlen</b> and <b>doff</b>. The value
-of <b>dlen</b> is the number of bytes of the record in which the
-application is interested. The value of <b>doff</b> is the offset from
-the beginning of the data item where those bytes start.
-<p>For example, if the data item were <b>ABCDEFGHIJKL</b>, a <b>doff</b>
-value of 3 would indicate that the bytes of interest started at
-<b>D</b>, and a <b>dlen</b> value of 4 would indicate that the bytes
-of interest were <b>DEFG</b>.
-<p>When retrieving a data item from a database, the <b>dlen</b> bytes
-starting <b>doff</b> bytes from the beginning of the record are
-returned, as if they comprised the entire record. If any or all of the
-specified bytes do not exist in the record, the retrieval is still
-successful and any existing bytes (and nul bytes for any non-existent
-bytes) are returned.
-<p>When storing a data item into the database, the <b>dlen</b> bytes
-starting <b>doff</b> bytes from the beginning of the specified key's
-data record are replaced by the data specified by the <b>data</b> and
-<b>size</b> fields. If <b>dlen</b> is smaller than <b>size</b>, the
-record will grow, and if <b>dlen</b> is larger than <b>size</b>, the
-record will shrink. If the specified bytes do not exist, the record will
-be extended using nul bytes as necessary, and the store call will still
-succeed.
-<p>The following are various examples of the put case for the
-<a href="../../api_c/dbt.html#DB_DBT_PARTIAL">DB_DBT_PARTIAL</a> flag. In all examples, the initial data item is 20
-bytes in length:
-<p><b>ABCDEFGHIJ0123456789</b>
-<p><ol>
-<p><li><p><blockquote><pre>size = 20
-doff = 0
-dlen = 20
-data = abcdefghijabcdefghij
-<p>
-Result: The 20 bytes at offset 0 are replaced by the 20 bytes of data,
-i.e., the entire record is replaced.
-<p>
-ABCDEFGHIJ0123456789 -&gt; abcdefghijabcdefghij
-</pre></blockquote>
-<p><li><p><blockquote><pre>size = 10
-doff = 20
-dlen = 0
-data = abcdefghij
-<p>
-Result: The 0 bytes at offset 20 are replaced by the 10 bytes of data,
-i.e., the record is extended by 10 bytes.
-<p>
-ABCDEFGHIJ0123456789 -&gt; ABCDEFGHIJ0123456789abcdefghij
-</pre></blockquote>
-<p><li><p><blockquote><pre>size = 10
-doff = 10
-dlen = 5
-data = abcdefghij
-<p>
-Result: The 5 bytes at offset 10 are replaced by the 10 bytes of data.
-<p>
-ABCDEFGHIJ0123456789 -&gt; ABCDEFGHIJabcdefghij56789
-</pre></blockquote>
-<p><li><p><blockquote><pre>size = 10
-doff = 10
-dlen = 0
-data = abcdefghij
-<p>
-Result: The 0 bytes at offset 10 are replaced by the 10 bytes of data,
-i.e., 10 bytes are inserted into the record.
-<p>
-ABCDEFGHIJ0123456789 -&gt; ABCDEFGHIJabcdefghij0123456789
-</pre></blockquote>
-<p><li><p><blockquote><pre>size = 10
-doff = 2
-dlen = 15
-data = abcdefghij
-<p>
-Result: The 15 bytes at offset 2 are replaced by the 10 bytes of data.
-<p>
-ABCDEFGHIJ0123456789 -&gt; ABabcdefghij789
-</pre></blockquote>
-<p><li><p><blockquote><pre>size = 10
-doff = 0
-dlen = 0
-data = abcdefghij
-<p>
-Result: The 0 bytes at offset 0 are replaced by the 10 bytes of data,
-i.e., the 10 bytes are inserted at the beginning of the record.
-<p>
-ABCDEFGHIJ0123456789 -&gt; abcdefghijABCDEFGHIJ0123456789
-</pre></blockquote>
-<p><li><p><blockquote><pre>size = 0
-doff = 0
-dlen = 10
-data = ""
-<p>
-Result: The 10 bytes at offset 0 are replaced by the 0 bytes of data,
-i.e., the first 10 bytes of the record are discarded.
-<p>
-ABCDEFGHIJ0123456789 -&gt; 0123456789
-</pre></blockquote>
-<p><li><p><blockquote><pre>size = 10
-doff = 25
-dlen = 0
-data = abcdefghij
-<p>
-Result: The 0 bytes at offset 25 are replaced by the 10 bytes of data,
-i.e., 10 bytes are inserted into the record past the end of the current
-data (\0 represents a nul byte).
-<p>
-ABCDEFGHIJ0123456789 -&gt; ABCDEFGHIJ0123456789\0\0\0\0\0abcdefghij
-</pre></blockquote>
-</ol>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/am/stability.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am/verify.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/am/put.html b/bdb/docs/ref/am/put.html
deleted file mode 100644
index 993dcbeb068..00000000000
--- a/bdb/docs/ref/am/put.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!--$Id: put.so,v 10.14 2000/03/18 21:43:08 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Storing records</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td>
-<td width="1%"><a href="../../ref/am/get.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am/delete.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Storing records</h1>
-<p>The <a href="../../api_c/db_put.html">DB-&gt;put</a> function is the standard interface for storing records into
-the database. In general, <a href="../../api_c/db_put.html">DB-&gt;put</a> takes a key and stores the
-associated data into the database.
-<p>There are a few flags that you can set to customize storage:
-<p><dl compact>
-<p><dt><a href="../../api_c/db_put.html#DB_APPEND">DB_APPEND</a><dd>Simply append the data to the end of the database, treating the database
-much like a simple log. This flag is only valid for the Queue and Recno
-access methods.
-<p><dt><a href="../../api_c/db_put.html#DB_NOOVERWRITE">DB_NOOVERWRITE</a><dd>Only store the data item if the key does not already appear in the database.
-</dl>
-<p>If the database has been configured to support duplicate records, the
-<a href="../../api_c/db_put.html">DB-&gt;put</a> function will add the new data value at the end of the duplicate
-set. If the database supports sorted duplicates, the new data value is
-inserted at the correct sorted location.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/am/get.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am/delete.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/am/stability.html b/bdb/docs/ref/am/stability.html
deleted file mode 100644
index b5f6d23864d..00000000000
--- a/bdb/docs/ref/am/stability.html
+++ /dev/null
@@ -1,49 +0,0 @@
-<!--$Id: stability.so,v 10.20 2000/12/13 16:48:13 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Cursor Stability</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a> <a name="3"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Transaction Subsystem</dl></h3></td>
-<td width="1%"><a href="../../ref/am/curclose.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am/partial.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Cursor Stability</h1>
-<p>In the absence of locking, no guarantees are made about the stability of
-cursors in different processes or threads. However, the Btree, Queue
-and Recno access methods guarantee that cursor operations, interspersed
-with other cursor or non-cursor operations in the same thread of control
-will always return keys in order and will return each non-deleted key/data
-pair exactly once. Because the Hash access method uses a dynamic hashing
-algorithm, it cannot guarantee any form of stability in the presence of
-inserts and deletes unless locking is performed.
-<p>If locking was specified when the Berkeley DB file was opened, but transactions
-are not in effect, the access methods provide repeatable reads with
-respect to the cursor. That is, a <a href="../../api_c/dbc_get.html#DB_CURRENT">DB_CURRENT</a> call on the cursor
-is guaranteed to return the same record as was returned on the last call
-to the cursor.
-<p>With the exception of the Queue access method, in the presence of
-transactions, all access method calls between a call to <a href="../../api_c/txn_begin.html">txn_begin</a>
-and a call to <a href="../../api_c/txn_abort.html">txn_abort</a> or <a href="../../api_c/txn_commit.html">txn_commit</a> provide degree 3
-consistency (serializable transactions).
-<p>The Queue access method permits phantom records to appear between calls.
-That is, deleted records are not locked, therefore another transaction may
-replace a deleted record between two calls to retrieve it. The record would
-not appear in the first call but would be seen by the second call.
-<p>For all access methods, a cursor scan of the database performed within
-the context of a transaction is guaranteed to return each key/data pair
-once and only once, except in the following case. If, while performing
-a cursor scan using the Hash access method, the transaction performing
-the scan inserts a new pair into the database, it is possible that duplicate
-key/data pairs will be returned.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/am/curclose.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am/partial.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/am/stat.html b/bdb/docs/ref/am/stat.html
deleted file mode 100644
index 3042ccfee00..00000000000
--- a/bdb/docs/ref/am/stat.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!--$Id: stat.so,v 10.17 2000/12/18 21:05:14 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Database statistics</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td>
-<td width="1%"><a href="../../ref/am/sync.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am/close.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Database statistics</h1>
-<p>The <a href="../../api_c/db_stat.html">DB-&gt;stat</a> function is the standard interface for obtaining database
-statistics. Generally, <a href="../../api_c/db_stat.html">DB-&gt;stat</a> returns a set of statistics
-about the underlying database, e.g., the number of key/data pairs in
-the database, how the database was originally configured, and so on.
-<p>There are two flags that you can set to customize the returned statistics:
-<p><dl compact>
-<p><dt><a href="../../api_c/db_stat.html#DB_CACHED_COUNTS">DB_CACHED_COUNTS</a><dd>Request an approximate key and key/data pair count. As obtaining an
-exact count can be very performance intensive for large databases,
-it is possible to request a previously cached count. Obviously, the
-cached count is only an approximate count, and may be out-of-date.
-<p><dt><a href="../../api_c/db_stat.html#DB_RECORDCOUNT">DB_RECORDCOUNT</a><dd>If the database is a Queue or Recno database, or a Btree database that
-was configured so that it is possible to search it by logical record
-number, return only a count of the records in the database.
-</dl>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/am/sync.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am/close.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/am/sync.html b/bdb/docs/ref/am/sync.html
deleted file mode 100644
index 3d1d61e6231..00000000000
--- a/bdb/docs/ref/am/sync.html
+++ /dev/null
@@ -1,38 +0,0 @@
-<!--$Id: sync.so,v 10.15 2000/12/18 21:05:14 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Flushing the database cache</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td>
-<td width="1%"><a href="../../ref/am/delete.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am/stat.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Flushing the database cache</h1>
-<p>The <a href="../../api_c/db_sync.html">DB-&gt;sync</a> function is the standard interface for flushing all modified
-records from the database cache to disk.
-<p><b>It is important to understand that flushing cached information
-to disk only minimizes the window of opportunity for corrupted data, it
-does not eliminate the possibility.</b>
-<p>While unlikely, it is possible for database corruption to happen if a
-system or application crash occurs while writing data to the database. To
-ensure that database corruption never occurs, applications must either:
-<ul type=disc>
-<li>Use transactions and logging with automatic recovery.
-<li>Use logging and application-specific recovery.
-<li>Edit a copy of the database, and, once all applications
-using the database have successfully called <a href="../../api_c/db_close.html">DB-&gt;close</a>, use
-system operations (e.g., the POSIX rename system call) to atomically
-replace the original database with the updated copy.
-</ul>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/am/delete.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am/stat.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/am/upgrade.html b/bdb/docs/ref/am/upgrade.html
deleted file mode 100644
index 21fa87a1eab..00000000000
--- a/bdb/docs/ref/am/upgrade.html
+++ /dev/null
@@ -1,50 +0,0 @@
-<!--$Id: upgrade.so,v 10.14 2000/12/21 18:37:08 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Upgrading databases</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Method Operations</dl></h3></td>
-<td width="1%"><a href="../../ref/am/opensub.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am/get.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Upgrading databases</h1>
-<p>When upgrading to a new release of Berkeley DB, it may be necessary to upgrade
-the on-disk format of already-created database files. <b>Berkeley DB
-database upgrades are done in place, and so are potentially
-destructive.</b> This means that if the system crashes during the upgrade
-procedure, or if the upgrade procedure runs out of disk space, the
-databases may be left in an inconsistent and unrecoverable state. To
-guard against failure, the procedures outlined in
-<a href="../../ref/upgrade/process.html">Upgrading Berkeley DB installations</a>
-should be carefully followed. If you are not performing catastrophic
-archival as part of your application upgrade process, you should at
-least copy your database to archival media, verify that your archival
-media is error-free and readable, and that copies of your backups are
-stored off-site!
-<p>The actual database upgrade is done using the <a href="../../api_c/db_upgrade.html">DB-&gt;upgrade</a>
-method, or by dumping the database using the old version of the Berkeley DB
-software and reloading it using the current version.
-<p>After an upgrade, Berkeley DB applications must be recompiled to use the new
-Berkeley DB library before they can access an upgraded database.
-<b>There is no guarantee that applications compiled against
-previous releases of Berkeley DB will work correctly with an upgraded database
-format. Nor is there any guarantee that applications compiled against
-newer releases of Berkeley DB will work correctly with the previous database
-format.</b> We do guarantee that any archived database may be upgraded
-using a current Berkeley DB software release and the <a href="../../api_c/db_upgrade.html">DB-&gt;upgrade</a>
-method, and there is no need to step-wise upgrade the database using
-intermediate releases of Berkeley DB. Sites should consider archiving
-appropriate copies of their application or application sources if they
-may need to access archived databases without first upgrading them.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/am/opensub.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am/get.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/am/verify.html b/bdb/docs/ref/am/verify.html
deleted file mode 100644
index 5c975dd8c58..00000000000
--- a/bdb/docs/ref/am/verify.html
+++ /dev/null
@@ -1,50 +0,0 @@
-<!--$Id: verify.so,v 10.3 2000/12/18 21:05:14 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Database verification and salvage</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a> <a name="3"><!--meow--></a> <a name="4"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td>
-<td width="1%"><a href="../../ref/am/partial.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am/error.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Database verification and salvage</h1>
-<p>The <a href="../../api_c/db_verify.html">DB-&gt;verify</a> method is the standard interface for verifying
-that a file, and any databases it may contain, are uncorrupted. In
-addition, the method may optionally be called with a file stream
-argument to which all key/data pairs found in the database are output.
-There are two modes for finding key/data pairs to be output:
-<p><ol>
-<p><li>If the <a href="../../api_c/db_verify.html#DB_SALVAGE">DB_SALVAGE</a> flag is specified, the key/data pairs in the
-database are output. When run in this mode, the database is assumed to
-be largely uncorrupted. For example, the <a href="../../api_c/db_verify.html">DB-&gt;verify</a> method will
-search for pages that are no longer linked into the database, and will
-output key/data pairs from such pages. However, key/data items that
-have been marked as deleted in the database will not be output, as the
-page structures are generally trusted in this mode.
-<p><li>If both the <a href="../../api_c/db_verify.html#DB_SALVAGE">DB_SALVAGE</a> and <a href="../../api_c/db_verify.html#DB_AGGRESSIVE">DB_AGGRESSIVE</a> flags are
-specified, all possible key/data pairs are output. When run in this mode,
-the database is assumed to be seriously corrupted. For example, key/data
-pairs that have been deleted will re-appear in the output. In addition,
-because pages may have been subsequently re-used and modified during
-normal database operations after the key/data pairs were deleted, it is
-not uncommon for apparently corrupted key/data pairs to be output in this
-mode, even when there is no corruption in the underlying database. The
-output will almost always have to be edited by hand or other means before
-the data is ready for re-load into another database. We recommend that
-<a href="../../api_c/db_verify.html#DB_SALVAGE">DB_SALVAGE</a> be tried first, and <a href="../../api_c/db_verify.html#DB_AGGRESSIVE">DB_AGGRESSIVE</a> only tried
-if the output from that first attempt is obviously missing data items or
-the data is sufficiently valuable that human review of the output is
-preferable to any kind of data loss.
-</ol>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/am/partial.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am/error.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/am_conf/bt_compare.html b/bdb/docs/ref/am_conf/bt_compare.html
deleted file mode 100644
index bf824ca3597..00000000000
--- a/bdb/docs/ref/am_conf/bt_compare.html
+++ /dev/null
@@ -1,85 +0,0 @@
-<!--$Id: bt_compare.so,v 10.20 2000/09/10 13:42:12 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Btree comparison</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td>
-<td width="1%"><a href="../../ref/am_conf/malloc.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_conf/bt_prefix.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Btree comparison</h1>
-<p>The Btree data structure is a sorted, balanced tree structure storing
-associated key/data pairs. By default, the sort order is lexicographical,
-with shorter keys collating before longer keys. The user can specify the
-sort order for the Btree by using the <a href="../../api_c/db_set_bt_compare.html">DB-&gt;set_bt_compare</a> function.
-<p>Sort routines are passed pointers to keys as arguments. The keys are
-represented as <a href="../../api_c/dbt.html">DBT</a> structures. The routine must return an integer
-less than, equal to, or greater than zero if the first argument is
-considered to be respectively less than, equal to, or greater than the
-second argument. The only fields that the routines may examine in the
-<a href="../../api_c/dbt.html">DBT</a> structures are <b>data</b> and <b>size</b> fields.
-<p>An example routine that might be used to sort integer keys in the database
-is as follows:
-<p><blockquote><pre>int
-compare_int(dbp, a, b)
- DB *dbp;
- const DBT *a, *b;
-{
- int ai, bi;
-<p>
- /*
- * Returns:
- * &lt; 0 if a &lt; b
- * = 0 if a = b
- * &gt; 0 if a &gt; b
- */
- memcpy(&ai, a-&gt;data, sizeof(int));
- memcpy(&bi, b-&gt;data, sizeof(int));
- return (ai - bi);
-}
-</pre></blockquote>
-<p>Note that the data must first be copied into memory that is appropriately
-aligned, as Berkeley DB does not guarantee any kind of alignment of the
-underlying data, including for comparison routines. When writing
-comparison routines, remember that databases created on machines of
-different architectures may have different integer byte orders, for which
-your code may need to compensate.
-<p>An example routine that might be used to sort keys based on the first
-five bytes of the key (ignoring any subsequent bytes) is as follows:
-<p><blockquote><pre>int
-compare_dbt(dbp, a, b)
- DB *dbp;
- const DBT *a, *b;
-{
- u_char *p1, *p2;
-<p>
- /*
- * Returns:
- * &lt; 0 if a &lt; b
- * = 0 if a = b
- * &gt; 0 if a &gt; b
- */
- for (p1 = a-&gt;data, p2 = b-&gt;data, len = 5; len--; ++p1, ++p2)
- if (*p1 != *p2)
- return ((long)*p1 - (long)*p2);
- return (0);
-}</pre></blockquote>
-<p>All comparison functions must cause the keys in the database to be
-well-ordered. The most important implication of being well-ordered is
-that the key relations must be transitive, that is, if key A is less
-than key B, and key B is less than key C, then the comparison routine
-must also return that key A is less than key C. In addition, comparisons
-will only be able to return 0 when comparing full length keys; partial
-key comparisons must always return a result less than or greater than 0.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/am_conf/malloc.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_conf/bt_prefix.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/am_conf/bt_minkey.html b/bdb/docs/ref/am_conf/bt_minkey.html
deleted file mode 100644
index f80ecf1dfb8..00000000000
--- a/bdb/docs/ref/am_conf/bt_minkey.html
+++ /dev/null
@@ -1,53 +0,0 @@
-<!--$Id: bt_minkey.so,v 10.14 2000/03/18 21:43:08 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Minimum keys per page</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td>
-<td width="1%"><a href="../../ref/am_conf/bt_prefix.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_conf/bt_recnum.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Minimum keys per page</h1>
-<p>The number of keys stored on each page affects the size of a Btree and
-how it is maintained. Therefore, it also affects the retrieval and search
-performance of the tree. For each Btree, Berkeley DB computes a maximum key
-and data size. This size is a function of the page size and the fact that
-at least two key/data pairs must fit on any Btree page. Whenever key or
-data items exceed the calculated size, they are stored on overflow pages
-instead of in the standard Btree leaf pages.
-<p>Applications may use the <a href="../../api_c/db_set_bt_minkey.html">DB-&gt;set_bt_minkey</a> function to change the minimum
-number of keys that must fit on a Btree page from two to another value.
-Altering this value in turn alters the on-page maximum size, and can be
-used to force key and data items which would normally be stored in the
-Btree leaf pages onto overflow pages.
-<p>Some data sets can benefit from this tuning. For example, consider an
-application using large page sizes, with a data set almost entirely
-consisting of small key and data items, but with a few large items. By
-setting the minimum number of keys that must fit on a page, the
-application can force the outsized items to be stored on overflow pages.
-That in turn can potentially keep the tree more compact, that is, with
-fewer internal levels to traverse during searches.
-<p>The following calculation is similar to the one performed by the Btree
-implementation. (The <b>minimum_keys</b> value is multiplied by 2
-because each key/data pair requires 2 slots on a Btree page.)
-<p><blockquote><pre>maximum_size = page_size / (minimum_keys * 2)</pre></blockquote>
-<p>Using this calculation, if the page size is 8KB and the default
-<b>minimum_keys</b> value of 2 is used, then any key or data items
-larger than 2KB will be forced to an overflow page. If an application
-were to specify a <b>minimum_key</b> value of 100, then any key or data
-items larger than roughly 40 bytes would be forced to overflow pages.
-<p>It is important to remember that accesses to overflow pages do not perform
-as well as accesses to the standard Btree leaf pages, and so setting the
-value incorrectly can result in overusing overflow pages and decreasing
-the application's overall performance.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/am_conf/bt_prefix.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_conf/bt_recnum.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/am_conf/bt_prefix.html b/bdb/docs/ref/am_conf/bt_prefix.html
deleted file mode 100644
index 621de75fa6b..00000000000
--- a/bdb/docs/ref/am_conf/bt_prefix.html
+++ /dev/null
@@ -1,66 +0,0 @@
-<!--$Id: bt_prefix.so,v 10.17 2000/07/04 18:28:27 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Btree prefix comparison</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td>
-<td width="1%"><a href="../../ref/am_conf/bt_compare.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_conf/bt_minkey.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Btree prefix comparison</h1>
-<p>The Berkeley DB Btree implementation maximizes the number of keys that can be
-stored on an internal page by storing only as many bytes of each key as
-are necessary to distinguish it from adjacent keys. The prefix comparison
-routine is what determines this minimum number of bytes (i.e., the length
-of the unique prefix), that must be stored. A prefix comparison function
-for the Btree can be specified by calling <a href="../../api_c/db_set_bt_prefix.html">DB-&gt;set_bt_prefix</a>.
-<p>The prefix comparison routine must be compatible with the overall
-comparison function of the Btree, since what distinguishes any two keys
-depends entirely on the function used to compare them. This means that
-if a prefix comparison routine is specified by the application, a
-compatible overall comparison routine must also have been specified.
-<p>Prefix comparison routines are passed pointers to keys as arguments. The
-keys are represented as <a href="../../api_c/dbt.html">DBT</a> structures. The prefix comparison
-function must return the number of bytes of the second key argument that
-are necessary to determine if it is greater than the first key argument.
-If the keys are equal, the length of the second key should be returned.
-The only fields that the routines may examine in the <a href="../../api_c/dbt.html">DBT</a>
-structures are <b>data</b> and <b>size</b> fields.
-<p>An example prefix comparison routine follows:
-<p><blockquote><pre>u_int32_t
-compare_prefix(dbp, a, b)
- DB *dbp;
- const DBT *a, *b;
-{
- size_t cnt, len;
- u_int8_t *p1, *p2;
-<p>
- cnt = 1;
- len = a-&gt;size &gt; b-&gt;size ? b-&gt;size : a-&gt;size;
- for (p1 =
- a-&gt;data, p2 = b-&gt;data; len--; ++p1, ++p2, ++cnt)
- if (*p1 != *p2)
- return (cnt);
- /*
- * They match up to the smaller of the two sizes.
- * Collate the longer after the shorter.
- */
- if (a-&gt;size &lt; b-&gt;size)
- return (a-&gt;size + 1);
- if (b-&gt;size &lt; a-&gt;size)
- return (b-&gt;size + 1);
- return (b-&gt;size);
-}</pre></blockquote>
-<p>The usefulness of this functionality is data dependent, but in some data
-sets can produce significantly reduced tree sizes and faster search times.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/am_conf/bt_compare.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_conf/bt_minkey.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/am_conf/bt_recnum.html b/bdb/docs/ref/am_conf/bt_recnum.html
deleted file mode 100644
index cdf8970e553..00000000000
--- a/bdb/docs/ref/am_conf/bt_recnum.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!--$Id: bt_recnum.so,v 10.18 2000/12/04 18:05:41 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Retrieving Btree records by number</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td>
-<td width="1%"><a href="../../ref/am_conf/bt_minkey.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_conf/h_ffactor.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Retrieving Btree records by number</h1>
-<p>The Btree access method optionally supports retrieval by logical record
-numbers). To configure a Btree to support record numbers, call the
-<a href="../../api_c/db_set_flags.html">DB-&gt;set_flags</a> function with the <a href="../../api_c/db_set_flags.html#DB_RECNUM">DB_RECNUM</a> flag.
-<p>Configuring a Btree for record numbers should not be done lightly.
-While often useful, it requires that storing items into the database
-be single-threaded, which can severely impact application throughput.
-Generally it should be avoided in trees with a need for high write
-concurrency.
-<p>To determine a key's record number, use the <a href="../../api_c/dbc_get.html#DB_GET_RECNO">DB_GET_RECNO</a> flag
-to the <a href="../../api_c/dbc_get.html">DBcursor-&gt;c_get</a> function.
-<p>To retrieve by record number, use the <a href="../../api_c/db_get.html#DB_SET_RECNO">DB_SET_RECNO</a> flag to the
-<a href="../../api_c/db_get.html">DB-&gt;get</a> and <a href="../../api_c/dbc_get.html">DBcursor-&gt;c_get</a> functions.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/am_conf/bt_minkey.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_conf/h_ffactor.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/am_conf/byteorder.html b/bdb/docs/ref/am_conf/byteorder.html
deleted file mode 100644
index e0eef8a45f0..00000000000
--- a/bdb/docs/ref/am_conf/byteorder.html
+++ /dev/null
@@ -1,38 +0,0 @@
-<!--$Id: byteorder.so,v 10.16 2000/03/18 21:43:08 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Selecting a byte order</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td>
-<td width="1%"><a href="../../ref/am_conf/cachesize.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_conf/dup.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Selecting a byte order</h1>
-<p>The database files created by Berkeley DB can be created in either little- or
-big-endian formats.
-<p>The byte order used for the underlying database can be specified by
-calling the <a href="../../api_c/db_set_lorder.html">DB-&gt;set_lorder</a> function. If no order is selected, the
-native format of the machine on which the database is created will be
-used.
-<p>Berkeley DB databases are architecture independent, and any format database can
-be used on a machine with a different native format. In this case, as
-each page that is read into or written from the cache must be converted
-to or from the host format, and databases with non-native formats will
-incur a performance penalty for the run-time conversion.
-<p><b>It is important to note that the Berkeley DB access methods do no data
-conversion for application specified data. Key/data pairs written on a
-little-endian format architecture will be returned to the application
-exactly as they were written when retrieved on a big-endian format
-architecture.</b>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/am_conf/cachesize.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_conf/dup.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/am_conf/cachesize.html b/bdb/docs/ref/am_conf/cachesize.html
deleted file mode 100644
index d0534767fb0..00000000000
--- a/bdb/docs/ref/am_conf/cachesize.html
+++ /dev/null
@@ -1,86 +0,0 @@
-<!--$Id: cachesize.so,v 10.18 2000/03/18 21:43:08 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Selecting a cache size</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td>
-<td width="1%"><a href="../../ref/am_conf/pagesize.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_conf/byteorder.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Selecting a cache size</h1>
-<p>The size of the cache used for the underlying database can be specified
-by calling the <a href="../../api_c/db_set_cachesize.html">DB-&gt;set_cachesize</a> function.
-Choosing a cache size is, unfortunately, an art. Your cache must be at
-least large enough for your working set plus some overlap for unexpected
-situations.
-<p>When using the Btree access method, you must have a cache big enough for
-the minimum working set for a single access. This will include a root
-page, one or more internal pages (depending on the depth of your tree),
-and a leaf page. If your cache is any smaller than that, each new page
-will force out the least-recently-used page, and Berkeley DB will re-read the
-root page of the tree anew on each database request.
-<p>If your keys are of moderate size (a few tens of bytes) and your pages
-are on the order of 4K to 8K, most Btree applications
-will be only three levels. For
-example, using 20 byte keys with 20 bytes of data associated with each
-key, a 8KB page can hold roughly 400 keys and 200 key/data pairs, so a
-fully populated three-level Btree will hold 32 million key/data pairs,
-and a tree with only a 50% page-fill factor will still hold 16 million
-key/data pairs. We rarely expect trees to exceed five levels, although
-Berkeley DB will support trees up to 255 levels.
-<p>The rule-of-thumb is that cache is good, and more cache is better.
-Generally, applications benefit from increasing the cache size up to a
-point, at which the performance will stop improving as the cache size
-increases. When this point is reached, one of two things have happened:
-either the cache is large enough that the application is almost never
-having to retrieve information from disk, or, your application is doing
-truly random accesses, and therefore increasing size of the cache doesn't
-significantly increase the odds of finding the next requested information
-in the cache. The latter is fairly rare -- almost all applications show
-some form of locality of reference.
-<p>That said, it is important not to increase your cache size beyond the
-capabilities of your system, as that will result in reduced performance.
-Under many operating systems, tying down enough virtual memory will cause
-your memory and potentially your program to be swapped. This is
-especially likely on systems without unified OS buffer caches and virtual
-memory spaces, as the buffer cache was allocated at boot time and so
-cannot be adjusted based on application requests for large amounts of
-virtual memory.
-<p>For example, even if accesses are truly random within a Btree, your
-access pattern will favor internal pages to leaf pages, so your cache
-should be large enough to hold all internal pages. In the steady state,
-this requires at most one I/O per operation to retrieve the appropriate
-leaf page.
-<p>You can use the <a href="../../utility/db_stat.html">db_stat</a> utility to monitor the effectiveness of
-your cache. The following output is excerpted from the output of that
-utility's <b>-m</b> option:
-<p><blockquote><pre>prompt: db_stat -m
-131072 Cache size (128K).
-4273 Requested pages found in the cache (97%).
-134 Requested pages not found in the cache.
-18 Pages created in the cache.
-116 Pages read into the cache.
-93 Pages written from the cache to the backing file.
-5 Clean pages forced from the cache.
-13 Dirty pages forced from the cache.
-0 Dirty buffers written by trickle-sync thread.
-130 Current clean buffer count.
-4 Current dirty buffer count.
-</pre></blockquote>
-<p>The statistics for this cache say that there have been 4,273 requests of
-the cache, and only 116 of those requests required an I/O from disk. This
-means that the cache is working well, yielding a 97% cache hit rate. The
-<a href="../../utility/db_stat.html">db_stat</a> utility will present these statistics both for the cache
-as a whole and for each file within the cache separately.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/am_conf/pagesize.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_conf/byteorder.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/am_conf/dup.html b/bdb/docs/ref/am_conf/dup.html
deleted file mode 100644
index eec5302cb2f..00000000000
--- a/bdb/docs/ref/am_conf/dup.html
+++ /dev/null
@@ -1,71 +0,0 @@
-<!--$Id: dup.so,v 10.21 2000/12/18 21:05:14 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Duplicate data items</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td>
-<td width="1%"><a href="../../ref/am_conf/byteorder.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_conf/malloc.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Duplicate data items</h1>
-<p>The Btree and Hash access methods support the creation of multiple data
-items for a single key item. By default, multiple data items are not
-permitted, and each database store operation will overwrite any previous
-data item for that key. To configure Berkeley DB for duplicate data items, call
-the <a href="../../api_c/db_set_flags.html">DB-&gt;set_flags</a> function with the <a href="../../api_c/db_set_flags.html#DB_DUP">DB_DUP</a> flag.
-<p>By default, Berkeley DB stores duplicates in the order in which they were added,
-that is, each new duplicate data item will be stored after any already
-existing data items. This default behavior can be overridden by using
-the <a href="../../api_c/dbc_put.html">DBcursor-&gt;c_put</a> function and one of the <a href="../../api_c/dbc_put.html#DB_AFTER">DB_AFTER</a>, <a href="../../api_c/dbc_put.html#DB_BEFORE">DB_BEFORE</a>
-<a href="../../api_c/dbc_put.html#DB_KEYFIRST">DB_KEYFIRST</a> or <a href="../../api_c/dbc_put.html#DB_KEYLAST">DB_KEYLAST</a> flags. Alternatively, Berkeley DB
-may be configured to sort duplicate data items as described below.
-<p>When stepping through the database sequentially, duplicate data items will
-be returned individually, as a key/data pair, where the key item only
-changes after the last duplicate data item has been returned. For this
-reason, duplicate data items cannot be accessed using the
-<a href="../../api_c/db_get.html">DB-&gt;get</a> function, as it always returns the first of the duplicate data
-items. Duplicate data items should be retrieved using the Berkeley DB cursor
-interface, <a href="../../api_c/dbc_get.html">DBcursor-&gt;c_get</a>.
-<p>There is an interface flag that permits applications to request the
-following data item only if it <b>is</b> a duplicate data item of the
-current entry, see <a href="../../api_c/dbc_get.html#DB_NEXT_DUP">DB_NEXT_DUP</a> for more information. There is an
-interface flag that permits applications to request the following data
-item only if it <b>is not</b> a duplicate data item of the current
-entry, see <a href="../../api_c/dbc_get.html#DB_NEXT_NODUP">DB_NEXT_NODUP</a> and <a href="../../api_c/dbc_get.html#DB_PREV_NODUP">DB_PREV_NODUP</a> for more
-information.
-<p>It is also possible to maintain duplicate records in sorted order. Sorting
-duplicates will significantly increase performance when searching them
-and performing logical joins, common operations when creating secondary
-indexes. To configure Berkeley DB to sort duplicate data items, the application
-must call the <a href="../../api_c/db_set_flags.html">DB-&gt;set_flags</a> function with the <a href="../../api_c/db_set_flags.html#DB_DUPSORT">DB_DUPSORT</a> flag (in
-addition to the <a href="../../api_c/db_set_flags.html#DB_DUP">DB_DUP</a> flag). In addition, a custom sorting
-function may be specified using the <a href="../../api_c/db_set_dup_compare.html">DB-&gt;set_dup_compare</a> function. If the
-<a href="../../api_c/db_set_flags.html#DB_DUPSORT">DB_DUPSORT</a> flag is given, but no comparison routine is specified,
-then Berkeley DB defaults to the same lexicographical sorting used for Btree
-keys, with shorter items collating before longer items.
-<p>If the duplicate data items are unsorted, applications may store identical
-duplicate data items, or, for those that just like the way it sounds,
-<i>duplicate duplicates</i>.
-<p><b>In this release it is an error to attempt to store identical
-duplicate data items when duplicates are being stored in a sorted order.</b>
-This restriction is expected to be lifted in a future release. There is
-an interface flag that permits applications to disallow storing duplicate
-data items when the database has been configured for sorted duplicates,
-see <a href="../../api_c/db_put.html#DB_NODUPDATA">DB_NODUPDATA</a> for more information. Applications not wanting
-to permit duplicate duplicates in databases configured for sorted
-duplicates should begin using the <a href="../../api_c/db_put.html#DB_NODUPDATA">DB_NODUPDATA</a> flag immediately.
-<p>For further information on how searching and insertion behaves in the
-presence of duplicates (sorted or not), see the <a href="../../api_c/db_get.html">DB-&gt;get</a>,
-<a href="../../api_c/db_put.html">DB-&gt;put</a>, <a href="../../api_c/dbc_get.html">DBcursor-&gt;c_get</a> and <a href="../../api_c/dbc_put.html">DBcursor-&gt;c_put</a> documentation.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/am_conf/byteorder.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_conf/malloc.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/am_conf/extentsize.html b/bdb/docs/ref/am_conf/extentsize.html
deleted file mode 100644
index 15d940c152d..00000000000
--- a/bdb/docs/ref/am_conf/extentsize.html
+++ /dev/null
@@ -1,38 +0,0 @@
-<!--$Id: extentsize.so,v 1.2 2000/11/20 21:45:19 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Selecting a Queue extent size</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td>
-<td width="1%"><a href="../../ref/am_conf/recno.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_conf/re_source.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Selecting a Queue extent size</h1>
-<p>In Queue databases, records are allocated sequentially and directly
-mapped to an offset within the file storage for the database. As
-records are deleted from the Queue, pages will become empty and will
-not be reused in normal queue operations. To facilitate the reclamation
-of disk space a Queue may be partitioned into extents. Each extent is
-kept in a separate physical file. Extent files are automatically
-created as needed and destroyed when they are emptied of records.
-<p>The extent size specifies the number of pages that make up each extent.
-By default, if no extent size is specified, the Queue resides in a
-single file and disk space is not reclaimed. In choosing an extent size
-there is a tradeoff between the amount of disk space used and the
-overhead of creating and deleting files. If the extent size is too
-small, the system will pay a performance penalty, creating and deleting
-files frequently. In addition, if the active part of the queue spans
-many files, all those files will need to be open at the same time,
-consuming system and process file resources.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/am_conf/recno.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_conf/re_source.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/am_conf/h_ffactor.html b/bdb/docs/ref/am_conf/h_ffactor.html
deleted file mode 100644
index 6c30f0fc39e..00000000000
--- a/bdb/docs/ref/am_conf/h_ffactor.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<!--$Id: h_ffactor.so,v 10.11 2000/03/18 21:43:08 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Page fill factor</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td>
-<td width="1%"><a href="../../ref/am_conf/bt_recnum.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_conf/h_hash.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Page fill factor</h1>
-<p>The density, or page fill factor, is an approximation of the number of
-keys allowed to accumulate in any one bucket, determining when the hash
-table grows or shrinks. If you know the average sizes of the keys and
-data in your dataset, setting the fill factor can enhance performance.
-A reasonable rule to use to compute fill factor is:
-<p><blockquote><pre>(pagesize - 32) / (average_key_size + average_data_size + 8)</pre></blockquote>
-<p>The desired density within the hash table can be specified by calling
-the <a href="../../api_c/db_set_h_ffactor.html">DB-&gt;set_h_ffactor</a> function. If no density is specified, one will
-be selected dynamically as pages are filled.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/am_conf/bt_recnum.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_conf/h_hash.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/am_conf/h_hash.html b/bdb/docs/ref/am_conf/h_hash.html
deleted file mode 100644
index d42edee1c07..00000000000
--- a/bdb/docs/ref/am_conf/h_hash.html
+++ /dev/null
@@ -1,39 +0,0 @@
-<!--$Id: h_hash.so,v 10.12 2000/07/04 18:28:27 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Specifying a database hash</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td>
-<td width="1%"><a href="../../ref/am_conf/h_ffactor.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_conf/h_nelem.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Specifying a database hash</h1>
-<p>The database hash determines in which bucket a particular key will reside.
-The goal of hashing keys is to distribute keys equally across the database
-pages, therefore it is important that the hash function work well with
-the specified keys so that the resulting bucket usage is relatively
-uniform. A hash function that does not work well can effectively turn
-into a sequential list.
-<p>No hash performs equally well on all possible data sets. It is possible
-that applications may find that the default hash function performs poorly
-with a particular set of keys. The distribution resulting from the hash
-function can be checked using <a href="../../utility/db_stat.html">db_stat</a> utility. By comparing the
-number of hash buckets and the number of keys, one can decide if the entries
-are hashing in a well-distributed manner.
-<p>The hash function for the hash table can be specified by calling the
-<a href="../../api_c/db_set_h_hash.html">DB-&gt;set_h_hash</a> function. If no hash function is specified, a default
-function will be used. Any application-specified hash function must
-take a reference to a DB object, a pointer to a byte string and
-its length, as arguments and return an unsigned, 32-bit hash value.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/am_conf/h_ffactor.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_conf/h_nelem.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/am_conf/h_nelem.html b/bdb/docs/ref/am_conf/h_nelem.html
deleted file mode 100644
index 8c510d6db04..00000000000
--- a/bdb/docs/ref/am_conf/h_nelem.html
+++ /dev/null
@@ -1,32 +0,0 @@
-<!--$Id: h_nelem.so,v 10.12 2000/03/18 21:43:08 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Hash table size</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td>
-<td width="1%"><a href="../../ref/am_conf/h_hash.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_conf/recno.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Hash table size</h1>
-<p>When setting up the hash database, knowing the expected number of elements
-that will be stored in the hash table is useful. This value can be used
-by the Hash access method implementation to more accurately construct the
-necessary number of buckets that the database will eventually require.
-<p>The anticipated number of elements in the hash table can be specified by
-calling the <a href="../../api_c/db_set_h_nelem.html">DB-&gt;set_h_nelem</a> function. If not specified, or set too low,
-hash tables will expand gracefully as keys are entered, although a slight
-performance degradation may be noticed. In order for the estimated number
-of elements to be a useful value to Berkeley DB, the <a href="../../api_c/db_set_h_ffactor.html">DB-&gt;set_h_ffactor</a> function
-must also be called to set the page fill factor.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/am_conf/h_hash.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_conf/recno.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/am_conf/intro.html b/bdb/docs/ref/am_conf/intro.html
deleted file mode 100644
index 15fed60f612..00000000000
--- a/bdb/docs/ref/am_conf/intro.html
+++ /dev/null
@@ -1,45 +0,0 @@
-<!--$Id: intro.so,v 10.22 2000/12/18 21:05:14 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: What are the available access methods?</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td>
-<td width="1%"><a href="../../ref/simple_tut/close.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_conf/select.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>What are the available access methods?</h1>
-<p>Berkeley DB currently offers four access methods: Btree, Hash, Queue and Recno.
-<h3>Btree</h3>
-<p>The Btree access method is an implementation of a sorted, balanced tree
-structure. Searches, insertions, and deletions in the tree all take O(log
-base_b N) time, where base_b is the average number of keys per page, and
-N is the total number of keys stored. Often, inserting ordered data into
-Btree implementations results in pages that are only half-full. Berkeley DB
-makes ordered (or inverse ordered) insertion the best case, resulting in
-nearly full-page space utilization.
-<h3>Hash</h3>
-<p>The Hash access method data structure is an implementation of Extended
-Linear Hashing, as described in "Linear Hashing: A New Tool for File and
-Table Addressing", Witold Litwin, <i>Proceedings of the 6th
-International Conference on Very Large Databases (VLDB)</i>, 1980.
-<h3>Queue</h3>
-<p>The Queue access method stores fixed-length records with logical record
-numbers as keys. It is designed for fast inserts at the tail and has a
-special cursor consume operation that deletes and returns a record from
-the head of the queue. The Queue access method uses record level locking.
-<h3>Recno</h3>
-<p>The Recno access method stores both fixed and variable-length records with
-logical record numbers as keys, optionally backed by a flat text (byte
-stream) file.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/simple_tut/close.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_conf/select.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/am_conf/logrec.html b/bdb/docs/ref/am_conf/logrec.html
deleted file mode 100644
index fd9fb0141d6..00000000000
--- a/bdb/docs/ref/am_conf/logrec.html
+++ /dev/null
@@ -1,45 +0,0 @@
-<!--$Id: logrec.so,v 10.23 2000/12/04 18:05:41 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Logical record numbers</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td>
-<td width="1%"><a href="../../ref/am_conf/select.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_conf/pagesize.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Logical record numbers</h1>
-<p>The Berkeley DB Btree, Queue and Recno access methods can operate on logical
-record numbers. In all cases for the Queue and Recno access methods,
-and in some cases with the Btree access method, a record number is
-specified to reference a specific key/data pair. In the case of Btree
-supporting duplicate data items, the logical record number refers to a
-key and all of its data items.
-<p>Record numbers are 32-bit unsigned types, which limits the number of
-logical records in a database to 4,294,967,296. The first record in the
-database is record number 1.
-<p>Record numbers in Recno databases can be configured to run in either
-mutable or fixed mode: mutable, where logical record numbers change as
-records are deleted or inserted, and fixed, where record numbers never
-change regardless of the database operation. Record numbers in Btree
-databases are always mutable, and as records are deleted or inserted, the
-logical record number for other records in the database can change. See
-<a href="../../ref/am_conf/renumber.html">Logically renumbering records</a> for
-more information.
-<p>Record numbers in Queue databases are always fixed, and never change
-regardless of the database operation.
-<p>Configuring Btree databases to support record numbers can severely limit
-the throughput of applications with multiple concurrent threads writing
-the database, because locations used to store record counts often become
-hot spots that many different threads all need to update.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/am_conf/select.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_conf/pagesize.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/am_conf/malloc.html b/bdb/docs/ref/am_conf/malloc.html
deleted file mode 100644
index 12e57383c5e..00000000000
--- a/bdb/docs/ref/am_conf/malloc.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<!--$Id: malloc.so,v 10.19 2000/03/18 21:43:09 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Non-local memory allocation</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td>
-<td width="1%"><a href="../../ref/am_conf/dup.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_conf/bt_compare.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Non-local memory allocation</h1>
-<p>Berkeley DB can allocate memory for returned key/data pairs which then becomes
-the responsibility of the application. See <a href="../../api_c/dbt.html#DB_DBT_MALLOC">DB_DBT_MALLOC</a> or
-<a href="../../api_c/dbt.html#DB_DBT_REALLOC">DB_DBT_REALLOC</a> for further information.
-<p>On systems where there may be multiple library versions of malloc (notably
-Windows NT), the Berkeley DB library could allocate memory from a different heap
-than the application will use to free it. To avoid this problem, the
-allocation routine to be used for allocating such key/data items can be
-specified by calling the <a href="../../api_c/db_set_malloc.html">DB-&gt;set_malloc</a> or
-<a href="../../api_c/db_set_realloc.html">DB-&gt;set_realloc</a> functions. If no allocation function is specified, the
-underlying C library functions are used.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/am_conf/dup.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_conf/bt_compare.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/am_conf/pagesize.html b/bdb/docs/ref/am_conf/pagesize.html
deleted file mode 100644
index 41cab5ec439..00000000000
--- a/bdb/docs/ref/am_conf/pagesize.html
+++ /dev/null
@@ -1,66 +0,0 @@
-<!--$Id: pagesize.so,v 10.20 2000/03/18 21:43:09 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Selecting a page size</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td>
-<td width="1%"><a href="../../ref/am_conf/logrec.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_conf/cachesize.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Selecting a page size</h1>
-<p>The size of the pages used in the underlying database can be specified by
-calling the <a href="../../api_c/db_set_pagesize.html">DB-&gt;set_pagesize</a> function. The minimum page size is 512 bytes
-and the maximum page size is 64K bytes, and must be a power of two. If
-no page size is specified by the application, a page size is selected
-based on the underlying filesystem I/O block size. (A page size selected
-in this way has a lower limit of 512 bytes and an upper limit of 16K
-bytes.)
-<p>There are four issues to consider when selecting a pagesize: overflow
-record sizes, locking, I/O efficiency, and recoverability.
-<p>First, the page size implicitly sets the size of an overflow record.
-Overflow records are key or data items that are too large to fit on a
-normal database page because of their size, and are therefore stored in
-overflow pages. Overflow pages are pages that exist outside of the normal
-database structure. For this reason, there is often a significant
-performance penalty associated with retrieving or modifying overflow
-records. Selecting a page size that is too small, and which forces the
-creation of large numbers of overflow pages, can seriously impact the
-performance of an application.
-<p>Second, in the Btree, Hash and Recno Access Methods, the finest-grained
-lock that Berkeley DB acquires is for a page. (The Queue Access Method
-generally acquires record-level locks rather than page-level locks.)
-Selecting a page size that is too large, and which causes threads or
-processes to wait because other threads of control are accessing or
-modifying records on the same page, can impact the performance of your
-application.
-<p>Third, the page size specifies the granularity of I/O from the database
-to the operating system. Berkeley DB will give a page-sized unit of bytes to
-the operating system to be scheduled for writing to the disk. For many
-operating systems, there is an internal <b>block size</b> which is used
-as the granularity of I/O from the operating system to the disk. If the
-page size is smaller than the block size, the operating system may be
-forced to read a block from the disk, copy the page into the buffer it
-read, and then write out the block to disk. Obviously, it will be much
-more efficient for Berkeley DB to write filesystem-sized blocks to the operating
-system and for the operating system to write those same blocks to the
-disk. Selecting a page size that is too small, and which causes the
-operating system to coalesce or otherwise manipulate Berkeley DB pages, can
-impact the performance of your application. Alternatively, selecting a
-page size that is too large may cause Berkeley DB and the operating system to
-write more data than is strictly necessary.
-<p>Fourth, when using the Berkeley DB Transactional Data Store product, the page size may affect the errors
-from which your database can recover See
-<a href="../../ref/transapp/reclimit.html">Berkeley DB Recoverability</a> for more
-information.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/am_conf/logrec.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_conf/cachesize.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/am_conf/re_source.html b/bdb/docs/ref/am_conf/re_source.html
deleted file mode 100644
index 2095a96983a..00000000000
--- a/bdb/docs/ref/am_conf/re_source.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!--$Id: re_source.so,v 10.14 2000/11/20 21:45:19 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Flat-text backing files</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td>
-<td width="1%"><a href="../../ref/am_conf/extentsize.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_conf/renumber.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Flat-text backing files</h1>
-<p>It is possible to back any Recno database (either fixed or variable
-length) with a flat-text source file. This provides fast read (and
-potentially write) access to databases that are normally created and
-stored as flat-text files. The backing source file may be specified by
-calling the <a href="../../api_c/db_set_re_source.html">DB-&gt;set_re_source</a> function.
-<p>The backing source file will be read to initialize the database. In the
-case of variable length records, the records are assumed to be separated
-as described for the <a href="../../api_c/db_set_re_delim.html">DB-&gt;set_re_delim</a> function interface. For example,
-standard UNIX byte stream files can be interpreted as a sequence of
-variable length records separated by ASCII newline characters. This is
-the default.
-<p>When cached data would normally be written back to the underlying database
-file (e.g., <a href="../../api_c/db_close.html">DB-&gt;close</a> or <a href="../../api_c/db_sync.html">DB-&gt;sync</a> functions are called), the
-in-memory copy of the database will be written back to the backing source
-file.
-<p>The backing source file must already exist (but may be zero-length) when
-<a href="../../api_c/db_open.html">DB-&gt;open</a> is called. By default, the backing source file is read
-lazily, i.e., records are not read from the backing source file until they
-are requested by the application. If multiple processes (not threads) are
-accessing a Recno database concurrently and either inserting or deleting
-records, the backing source file must be read in its entirety before more
-than a single process accesses the database, and only that process should
-specify the backing source file as part of the <a href="../../api_c/db_open.html">DB-&gt;open</a> call.
-This can be accomplished by calling the <a href="../../api_c/db_set_flags.html">DB-&gt;set_flags</a> function with the
-<a href="../../api_c/db_set_flags.html#DB_SNAPSHOT">DB_SNAPSHOT</a> flag.
-<p>Reading and writing the backing source file cannot be transactionally
-protected because it involves filesystem operations that are not part of
-the Berkeley DB transaction methodology. For this reason, if a temporary
-database is used to hold the records (a NULL was specified as the file
-argument to <a href="../../api_c/db_open.html">DB-&gt;open</a>), <b>it is possible to lose the
-contents of the backing source file if the system crashes at the right
-instant</b>. If a permanent file is used to hold the database (a file name
-was specified as the file argument to <a href="../../api_c/db_open.html">DB-&gt;open</a>), normal database
-recovery on that file can be used to prevent information loss. It is
-still possible that the contents of the backing source file itself will
-be corrupted or lost if the system crashes.
-<p>For all of the above reasons, the backing source file is generally used
-to specify databases that are read-only for Berkeley DB applications, and that
-are either generated on the fly by software tools, or modified using a
-different mechanism such as a text editor.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/am_conf/extentsize.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_conf/renumber.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/am_conf/recno.html b/bdb/docs/ref/am_conf/recno.html
deleted file mode 100644
index 1a7128e0e75..00000000000
--- a/bdb/docs/ref/am_conf/recno.html
+++ /dev/null
@@ -1,69 +0,0 @@
-<!--$Id: recno.so,v 11.10 2000/12/04 18:05:41 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Managing record-based databases</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td>
-<td width="1%"><a href="../../ref/am_conf/h_nelem.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_conf/extentsize.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Managing record-based databases</h1>
-<p>When using fixed- or variable-length record-based databases, particularly
-with flat-text backing files, there are several items that the user can
-control. The Recno access method can be used to store either variable-
-or fixed-length data items. By default, the Recno access method stores
-variable-length data items. The Queue access method can only store
-fixed-length data items.
-<h3>Record Delimiters</h3>
-<p>When using the Recno access method to store variable-length records,
-records read from any backing source file are separated by a specific
-byte value which marks the end of one record and the beginning of the
-next. This delimiting value is ignored except when reading records from
-a backing source file, that is, records may be stored into the database
-that include the delimiter byte. However, if such records are written
-out to the backing source file and the backing source file is
-subsequently read into a database, the records will be split where
-delimiting bytes were found.
-<p>For example, UNIX text files can usually be interpreted as a sequence of
-variable-length records separated by ASCII newline characters. This byte
-value (ASCII 0x0a) is the default delimiter. Applications may specify a
-different delimiting byte using the <a href="../../api_c/db_set_re_delim.html">DB-&gt;set_re_delim</a> interface.
-If no backing source file is being used, there is no reason to set the
-delimiting byte value.
-<h3>Record Length</h3>
-<p>When using the Recno or Queue access methods to store fixed-length
-records, the record length must be specified. Since the Queue access
-method always uses fixed-length records, the user must always set the
-record length prior to creating the database. Setting the record length
-is what causes the Recno access method to store fixed-length, not
-variable-length, records.
-<p>The length of the records is specified by calling the
-<a href="../../api_c/db_set_re_len.html">DB-&gt;set_re_len</a> function. The default length of the records is 0 bytes.
-Any record read from a backing source file or otherwise stored in the
-database that is shorter than the declared length will automatically be
-padded as described for the <a href="../../api_c/db_set_re_pad.html">DB-&gt;set_re_pad</a> function. Any record stored
-that is longer than the declared length results in an error. For
-further information on backing source files, see
-<a href="../../ref/am_conf/re_source.html">Flat-text backing files</a>.
-<h3>Record Padding Byte Value</h3>
-<p>When storing fixed-length records in a Queue or Recno database, a pad
-character may be specified by calling the <a href="../../api_c/db_set_re_pad.html">DB-&gt;set_re_pad</a> function. Any
-record read from the backing source file or otherwise stored in the
-database that is shorter than the expected length will automatically be
-padded with this byte value. If fixed-length records are specified but
-no pad value is specified, a space character (0x20 in the ASCII
-character set) will be used. For further information on backing source
-files, see <a href="../../ref/am_conf/re_source.html">Flat-text backing
-files</a>.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/am_conf/h_nelem.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_conf/extentsize.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/am_conf/renumber.html b/bdb/docs/ref/am_conf/renumber.html
deleted file mode 100644
index 7c3594dff66..00000000000
--- a/bdb/docs/ref/am_conf/renumber.html
+++ /dev/null
@@ -1,80 +0,0 @@
-<!--$Id: renumber.so,v 10.23 2000/12/18 21:05:14 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Logically renumbering records</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td>
-<td width="1%"><a href="../../ref/am_conf/re_source.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am/ops.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Logically renumbering records</h1>
-<p>Records stored in the Queue and Recno access methods are accessed by
-logical record number. In all cases in Btree databases, and optionally
-in Recno databases (see the <a href="../../api_c/db_set_flags.html">DB-&gt;set_flags</a> function and the
-<a href="../../api_c/db_set_flags.html#DB_RENUMBER">DB_RENUMBER</a> flag for more information), record numbers are
-mutable. This means that the record numbers may change as records are
-added to and deleted from the database. The deletion of record number
-4 causes any records numbered 5 and higher to be renumbered downward by
-1; the addition of a new record after record number 4 causes any
-records numbered 5 and higher to be renumbered upward by 1. In all
-cases in Queue databases, and by default in Recno databases, record
-numbers are not mutable, and the addition or deletion of records to the
-database will not cause already-existing record numbers to change. For
-this reason, new records cannot be inserted between already-existing
-records in databases with immutable record numbers.
-<p>Cursors pointing into a Btree database or a Recno database with mutable
-record numbers maintain a reference to a specific record, rather than
-a record number, that is, the record they reference does not change as
-other records are added or deleted. For example, if a database contains
-three records with the record numbers 1, 2, and 3, and the data items
-"A", "B", and "C", respectively, the deletion of record number 2 ("B")
-will cause the record "C" to be renumbered downward to record number 2.
-A cursor positioned at record number 3 ("C") will be adjusted and
-continue to point to "C" after the deletion. Similarly, a cursor
-previously referencing the now deleted record number 2 will be
-positioned between the new record numbers 1 and 2, and an insertion
-using that cursor will appear between those records. In this manner
-records can be added and deleted to a database without disrupting the
-sequential traversal of the database by a cursor.
-<p>Only cursors created using a single DB handle can adjust each
-other's position in this way, however. If multiple DB handles
-have a renumbering Recno database open simultaneously (as when multiple
-processes share a single database environment), a record referred to by
-one cursor could change underfoot if a cursor created using another
-DB handle inserts or deletes records into the database. For
-this reason, applications using Recno databases with mutable record
-numbers will usually make all accesses to the database using a single
-DB handle and cursors created from that handle, or will
-otherwise single-thread access to the database, e.g., by using the
-Berkeley DB Concurrent Data Store product.
-<p>In any Queue or Recno databases, creating new records will cause the
-creation of multiple records if the record number being created is more
-than one greater than the largest record currently in the database. For
-example, creating record number 28, when record 25 was previously the
-last record in the database, will implicitly create records 26 and 27
-as well as 28. All first, last, next and previous cursor operations
-will automatically skip over these implicitly created records. So, if
-record number 5 is the only record the application has created,
-implicitly creating records 1 through 4, the <a href="../../api_c/dbc_get.html">DBcursor-&gt;c_get</a> interface
-with the <a href="../../api_c/dbc_get.html#DB_FIRST">DB_FIRST</a> flag will return record number 5, not record
-number 1. Attempts to explicitly retrieve implicitly created records
-by their record number will result in a special error return,
-<a href="../../ref/program/errorret.html#DB_KEYEMPTY">DB_KEYEMPTY</a>.
-<p>In any Berkeley DB database, attempting to retrieve a deleted record, using
-a cursor positioned on the record, results in a special error return,
-<a href="../../ref/program/errorret.html#DB_KEYEMPTY">DB_KEYEMPTY</a>. In addition, when using Queue databases or Recno
-databases with immutable record numbers, attempting to retrieve a deleted
-record by its record number will also result in the <a href="../../ref/program/errorret.html#DB_KEYEMPTY">DB_KEYEMPTY</a>
-return.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/am_conf/re_source.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am/ops.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/am_conf/select.html b/bdb/docs/ref/am_conf/select.html
deleted file mode 100644
index 3838b34673e..00000000000
--- a/bdb/docs/ref/am_conf/select.html
+++ /dev/null
@@ -1,116 +0,0 @@
-<!--$Id: select.so,v 10.23 2000/03/18 21:43:09 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Selecting an access method</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Access Methods</dl></h3></td>
-<td width="1%"><a href="../../ref/am_conf/intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_conf/logrec.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Selecting an access method</h1>
-<p>The Berkeley DB access method implementation unavoidably interacts with each
-application's data set, locking requirements and data access patterns.
-For this reason, one access method may result in dramatically better
-performance for an application than another one. Applications whose data
-could be stored in more than one access method may want to benchmark their
-performance using the different candidates.
-<p>One of the strengths of Berkeley DB is that it provides multiple access methods
-with almost identical interfaces to the different access methods. This
-means that it is simple to modify an application to use a different access
-method. Applications can easily benchmark the different Berkeley DB access
-methods against each other for their particular data set and access pattern.
-<p>Most applications choose between using the Btree or Hash access methods
-or between using the Queue and Recno access methods, because each of the
-two pairs offer similar functionality.
-<h3>Hash or Btree?</h3>
-<p>The Hash and Btree access methods should be used when logical record
-numbers are not the primary key used for data access. (If logical record
-numbers are a secondary key used for data access, the Btree access method
-is a possible choice, as it supports simultaneous access by a key and a
-record number.)
-<p>Keys in Btrees are stored in sorted order and the relationship between
-them is defined by that sort order. For this reason, the Btree access
-method should be used when there is any locality of reference among keys.
-Locality of reference means that accessing one particular key in the
-Btree implies that the application is more likely to access keys near to
-the key being accessed, where "near" is defined by the sort order. For
-example, if keys are timestamps, and it is likely that a request for an
-8AM timestamp will be followed by a request for a 9AM timestamp, the
-Btree access method is generally the right choice. Or, for example, if
-the keys are names, and the application will want to review all entries
-with the same last name, the Btree access method is again a good choice.
-<p>There is little difference in performance between the Hash and Btree
-access methods on small data sets, where all, or most of, the data set
-fits into the cache. However, when a data set is large enough that
-significant numbers of data pages no longer fit into the cache, then the
-Btree locality of reference described above becomes important for
-performance reasons. For example, there is no locality of reference for
-the Hash access method, and so key "AAAAA" is as likely to be stored on
-the same data page with key "ZZZZZ" as with key "AAAAB". In the Btree
-access method, because items are sorted, key "AAAAA" is far more likely
-to be near key "AAAAB" than key "ZZZZZ". So, if the application exhibits
-locality of reference in its data requests, then the Btree page read into
-the cache to satisfy a request for key "AAAAA" is much more likely to be
-useful to satisfy subsequent requests from the application than the Hash
-page read into the cache to satisfy the same request. This means that
-for applications with locality of reference, the cache is generally much
-"hotter" for the Btree access method than the Hash access method, and
-the Btree access method will make many fewer I/O calls.
-<p>However, when a data set becomes even larger, the Hash access method can
-outperform the Btree access method. The reason for this is that Btrees
-contain more metadata pages than Hash databases. The data set can grow
-so large that metadata pages begin to dominate the cache for the Btree
-access method. If this happens, the Btree can be forced to do an I/O
-for each data request because the probability that any particular data
-page is already in the cache becomes quite small. Because the Hash access
-method has fewer metadata pages, its cache stays "hotter" longer in the
-presence of large data sets. In addition, once the data set is so large
-that both the Btree and Hash access methods are almost certainly doing
-an I/O for each random data request, the fact that Hash does not have to
-walk several internal pages as part of a key search becomes a performance
-advantage for the Hash access method as well.
-<p>Application data access patterns strongly affect all of these behaviors,
-for example, accessing the data by walking a cursor through the database
-will greatly mitigate the large data set behavior describe above because
-each I/O into the cache will satisfy a fairly large number of subsequent
-data requests.
-<p>In the absence of information on application data and data access
-patterns, for small data sets either the Btree or Hash access methods
-will suffice. For data sets larger than the cache, we normally recommend
-using the Btree access method. If you have truly large data, then the
-Hash access method may be a better choice. The <a href="../../utility/db_stat.html">db_stat</a> utility
-is a useful tool for monitoring how well your cache is performing.
-<h3>Queue or Recno?</h3>
-<p>The Queue or Recno access methods should be used when logical record
-numbers are the primary key used for data access. The advantage of the
-Queue access method is that it performs record level locking and for this
-reason supports significantly higher levels of concurrency than the Recno
-access method. The advantage of the Recno access method is that it
-supports a number of additional features beyond those supported by the
-Queue access method, such as variable-length records and support for
-backing flat-text files.
-<p>Logical record numbers can be mutable or fixed: mutable, where logical
-record numbers can change as records are deleted or inserted, and fixed,
-where record numbers never change regardless of the database operation.
-It is possible to store and retrieve records based on logical record
-numbers in the Btree access method. However, those record numbers are
-always mutable, and as records are deleted or inserted, the logical record
-number for other records in the database will change. The Queue access
-method always runs in fixed mode, and logical record numbers never change
-regardless of the database operation. The Recno access method can be
-configured to run in either mutable or fixed mode.
-<p>In addition, the Recno access method provides support for databases whose
-permanent storage is a flat text file and the database is used as a fast,
-temporary storage area while the data is being read or modified.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/am_conf/intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_conf/logrec.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/arch/apis.html b/bdb/docs/ref/arch/apis.html
deleted file mode 100644
index d1ae91b5a74..00000000000
--- a/bdb/docs/ref/arch/apis.html
+++ /dev/null
@@ -1,74 +0,0 @@
-<!--$Id: apis.so,v 10.26 2000/03/18 21:43:09 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Programmatic APIs</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Architecture</dl></h3></td>
-<td width="1%"><a href="../../ref/arch/progmodel.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/arch/script.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Programmatic APIs</h1>
-<p>The Berkeley DB subsystems can be accessed through interfaces from multiple
-languages. The standard library interface is ANSI C. Applications can
-also use Berkeley DB via C++ or Java, as well as from scripting languages.
-Environments can be shared among applications written using any of theses
-APIs. For example, you might have a local server written in C or C++, a
-script for an administrator written in Perl or Tcl, and a web based user
-interface written in Java, all sharing a single database environment.
-<h3>C</h3>
-<p>The Berkeley DB library is written entirely in ANSI C. C applications use a
-single include file:
-<p><blockquote><pre>#include &lt;db.h&gt;</pre></blockquote>
-<h3>C++</h3>
-<p>The C++ classes provide a thin wrapper around the C API, with the major
-advantages being improved encapsulation and an optional exception
-mechanism for errors. C++ applications use a single include file:
-<p><blockquote><pre>#include &lt;db_cxx.h&gt;</pre></blockquote>
-<p>The classes and methods are named in a fashion that directly corresponds
-to structures and functions in the C interface. Likewise, arguments to
-methods appear in the same order as the C interface, except to remove the
-explicit <b>this</b> pointer. The #defines used for flags are identical
-between the C and C++ interfaces.
-<p>As a rule, each C++ object has exactly one structure from the underlying
-C API associated with it. The C structure is allocated with each
-constructor call and deallocated with each destructor call. Thus, the
-rules the user needs to follow in allocating and deallocating structures
-are the same between the C and C++ interfaces.
-<p>To ensure portability to many platforms, both new and old, Berkeley DB makes as
-few assumptions as possible about the C++ compiler and library. For
-example, it does not expect STL, templates or namespaces to be available.
-The newest C++ feature used is exceptions, which are used liberally to
-transmit error information. Even the use of exceptions can be disabled
-at runtime.
-<h3>JAVA</h3>
-<p>The Java classes provide a layer around the C API that is almost identical
-to the C++ layer. The classes and methods are, for the most part
-identical to the C++ layer. Db constants and #defines are represented as
-"static final int" values. Error conditions are communicated as Java
-exceptions.
-<p>As in C++, each Java object has exactly one structure from the underlying
-C API associated with it. The Java structure is allocated with each
-constructor or open call, but is deallocated only by the Java garbage
-collector. Because the timing of garbage collection is not predictable,
-applications should take care to do a close when finished with any object
-that has a close method.
-<h3>Dbm/Ndbm, Hsearch</h3>
-<p>Berkeley DB supports the standard UNIX interfaces <a href="../../api_c/dbm.html">dbm</a> (or its
-<a href="../../api_c/dbm.html">ndbm</a> variant) and <a href="../../api_c/hsearch.html">hsearch</a>. After including a new header
-file and recompiling, <a href="../../api_c/dbm.html">dbm</a> programs will run orders of magnitude
-faster and their underlying databases can grow as large as necessary.
-Historic <a href="../../api_c/dbm.html">dbm</a> applications fail when some number of entries were
-inserted into the database, where the number depends on the effectiveness
-of the hashing function on the particular data set.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/arch/progmodel.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/arch/script.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/arch/bigpic.gif b/bdb/docs/ref/arch/bigpic.gif
deleted file mode 100644
index 48c52aed5a2..00000000000
--- a/bdb/docs/ref/arch/bigpic.gif
+++ /dev/null
Binary files differ
diff --git a/bdb/docs/ref/arch/bigpic.html b/bdb/docs/ref/arch/bigpic.html
deleted file mode 100644
index 6c945744e83..00000000000
--- a/bdb/docs/ref/arch/bigpic.html
+++ /dev/null
@@ -1,114 +0,0 @@
-<!--$Id: bigpic.so,v 8.21 2000/12/18 21:05:14 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: The big picture</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Architecture</dl></h3></td>
-<td width="1%"><a href="../../ref/am/error.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/arch/progmodel.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>The big picture</h1>
-<p>The previous chapters in this Reference Guide have described applications
-that use the Berkeley DB Access Methods for fast data storage and retrieval.
-The applications we describe here and in subsequent chapters are similar
-in nature to the Access Method applications, but they are also fully
-recoverable in the face of application or system failure.
-<p>Application code that only uses the Berkeley DB Access Methods might appear as
-follows:
-<p><blockquote><pre>switch (ret = dbp-&gt;put(dbp, NULL, &key, &data, 0)) {
-case 0:
- printf("db: %s: key stored.\n", (char *)key.data);
- break;
-default:
- dbp-&gt;err(dbp, ret, "dbp-&gt;put");
- exit (1);
-}</pre></blockquote>
-<p>The underlying Berkeley DB architecture that supports this is:
-<p align=center><img src="smallpic.gif" alt="small">
-<p>As you can see from this diagram, the application makes calls into the
-Access Methods, and the Access Methods use the underlying shared memory
-buffer cache to hold recently used file pages in main memory.
-<p>When applications require recoverability, then their calls to the Access
-Methods must be wrapped in calls to the transaction subsystem. The
-application must inform Berkeley DB where to begin and end transactions, and
-must be prepared for the possibility that an operation may fail at any
-particular time, causing the transaction to abort.
-<p>An example of transaction protected code might appear as follows:
-<p><blockquote><pre>retry: if ((ret = txn_begin(dbenv, NULL, &tid)) != 0) {
- dbenv-&gt;err(dbenv, ret, "txn_begin");
- exit (1);
- }
-<p>
- switch (ret = dbp-&gt;put(dbp, tid, &key, &data, 0)) {
- case DB_LOCK_DEADLOCK:
- (void)txn_abort(tid);
- goto retry;
- case 0:
- printf("db: %s: key stored.\n", (char *)key.data);
- break;
- default:
- dbenv-&gt;err(dbenv, ret, "dbp-&gt;put");
- exit (1);
- }
-<p>
- if ((ret = txn_commit(tid)) != 0) {
- dbenv-&gt;err(dbenv, ret, "txn_commit");
- exit (1);
- }</pre></blockquote>
-<p>In this example, the same operation is being done as before, however, it
-is wrapped in transaction calls. The transaction is started with
-<a href="../../api_c/txn_begin.html">txn_begin</a>, and finished with <a href="../../api_c/txn_commit.html">txn_commit</a>. If the operation
-fails due to a deadlock, then the transaction is aborted using
-<a href="../../api_c/txn_abort.html">txn_abort</a>, after which the operation may be retried.
-<p>There are actually five major subsystems in Berkeley DB, as follows:
-<p><dl compact>
-<p><dt>The Access Methods<dd>The Access Method subsystem provides general-purpose support for creating
-and accessing database files formatted as Btrees, Hashed files, and
-Fixed- and Variable-length records. These modules are useful in the
-absence of transactions for applications that need fast, formatted file
-support. See <a href="../../api_c/db_open.html">DB-&gt;open</a> and <a href="../../api_c/db_cursor.html">DB-&gt;cursor</a> for more
-information. These functions were already discussed in detail in the
-previous chapters.
-<p><dt>The Memory Pool<dd>The memory pool subsystem is the general-purpose shared memory buffer pool
-used by Berkeley DB. This is the shared memory cache that allows multiple
-processes and threads within processes to share access to databases. This
-module is useful outside of the Berkeley DB package for processes that require
-portable, page-oriented, cached, shared file access.
-<p><dt>Transactions<dd>The transaction subsystem allows a group of database changes to be
-treated as an atomic unit so that either all of the changes are done, or
-none of the changes are done. The transaction subsystem implements the
-Berkeley DB transaction model. This module is useful outside of the Berkeley DB
-package for processes that want to transaction protect their own data
-modifications.
-<p><dt>Locking<dd>The locking subsystem is the general-purpose lock manager used by Berkeley DB.
-This module is useful outside of the Berkeley DB package for processes that
-require a portable, fast, configurable lock manager.
-<p><dt>Logging<dd>The logging subsystem is the write-ahead logging used to support the Berkeley DB
-transaction model. It is largely specific to the Berkeley DB package, and
-unlikely to be useful elsewhere except as a supporting module for the
-Berkeley DB transaction subsystem.
-</dl>
-<p>Here is a more complete picture of the Berkeley DB library:
-<p align=center><img src="bigpic.gif" alt="large">
-<p>In this example, the application makes calls to the Access Methods and to
-the transaction subsystem. The Access Methods and transaction subsystem
-in turn make calls into the Buffer Pool, Locking and Logging subsystems
-on behalf of the application.
-<p>While the underlying subsystems can each be called independently. For
-example, the Buffer Pool subsystem can be used apart from the rest of
-Berkeley DB by applications simply wanting a shared memory buffer pool, or
-the Locking subsystem may be called directly by applications that are
-doing their own locking outside of Berkeley DB. However, this usage is fairly
-rare, and most applications will either use only the Access Methods, or
-the Access Methods wrapped in calls to the transaction interfaces.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/am/error.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/arch/progmodel.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/arch/progmodel.html b/bdb/docs/ref/arch/progmodel.html
deleted file mode 100644
index 04284f4f37e..00000000000
--- a/bdb/docs/ref/arch/progmodel.html
+++ /dev/null
@@ -1,41 +0,0 @@
-<!--$Id: progmodel.so,v 10.25 2000/03/18 21:43:09 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Programming model</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Architecture</dl></h3></td>
-<td width="1%"><a href="../../ref/arch/bigpic.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/arch/apis.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Programming model</h1>
-<p>The Berkeley DB distribution is a database library, where the library is linked
-into the address space of the code which uses it. The code using Berkeley DB
-may be an application or it may be a server providing functionality to a
-number of clients via some form of inter-process or remote-process
-communication (IPC/RPC).
-<p>In the application model, one or more applications link the Berkeley DB library
-directly into their address spaces. There may be many threads of control
-in this model, as Berkeley DB supports locking for both multiple processes and
-for multiple threads within a process. This model provides significantly
-faster access to the database functionality, but implies trust among all
-threads of control sharing the database environment as they will have the
-ability to read, write and potentially corrupt each other's data.
-<p>In the client-server model, developers write a database server application
-that accepts requests via some form of IPC and issues calls to the Berkeley DB
-interfaces based on those requests. In this model, the database server
-is the only application linking the Berkeley DB library into its address space.
-The client-server model trades performance for protection, as it does not
-require that the applications share a protection domain with the server,
-but IPC/RPC is slower than a function call. Of course, in addition, this
-model greatly simplifies the creation of network client-server applications.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/arch/bigpic.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/arch/apis.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/arch/script.html b/bdb/docs/ref/arch/script.html
deleted file mode 100644
index 411cff4600c..00000000000
--- a/bdb/docs/ref/arch/script.html
+++ /dev/null
@@ -1,29 +0,0 @@
-<!--$Id: script.so,v 10.12 2000/03/18 21:43:09 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Scripting languages</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Architecture</dl></h3></td>
-<td width="1%"><a href="../../ref/arch/apis.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/arch/utilities.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Scripting languages</h1>
-<h3>Perl</h3>
-<p>Two Perl APIs are distributed with the Berkeley DB release. The Perl interface
-to Berkeley DB version 1.85 is called DB_File. The Perl interface to Berkeley DB
-version 2 is called BerkeleyDB. See <a href="../../ref/perl/intro.html">Using Berkeley DB with Perl</a> for more information.
-<h3>Tcl</h3>
-<p>A Tcl API is distributed with the Berkeley DB release. See
-<a href="../../ref/tcl/intro.html">Using Berkeley DB with Tcl</a> for more
-information.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/arch/apis.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/arch/utilities.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/arch/smallpic.gif b/bdb/docs/ref/arch/smallpic.gif
deleted file mode 100644
index 5eb7ae8da58..00000000000
--- a/bdb/docs/ref/arch/smallpic.gif
+++ /dev/null
Binary files differ
diff --git a/bdb/docs/ref/arch/utilities.html b/bdb/docs/ref/arch/utilities.html
deleted file mode 100644
index 72bfe52b21c..00000000000
--- a/bdb/docs/ref/arch/utilities.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!--$Id: utilities.so,v 10.23 2000/05/23 20:57:50 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Supporting utilities</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Architecture</dl></h3></td>
-<td width="1%"><a href="../../ref/arch/script.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/env/intro.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Supporting utilities</h1>
-<p>There are several stand-alone utilities that provide supporting
-functionality for the Berkeley DB environment:
-<p><dl compact>
-<p><dt><a href="../../utility/berkeley_db_svc.html">berkeley_db_svc</a><dd>The <a href="../../utility/berkeley_db_svc.html">berkeley_db_svc</a> utility is the Berkeley DB RPC server, providing
-standard server functionality for client. applications.
-<p><dt><a href="../../utility/db_archive.html">db_archive</a><dd>The <a href="../../utility/db_archive.html">db_archive</a> utility supports database backup, archival and log
-file administration. It facilitates log reclamation and the creation of
-database snapshots. Generally, some form of log archival must be done if
-a database environment has been configured for logging or transactions.
-<p><dt><a href="../../utility/db_checkpoint.html">db_checkpoint</a><dd>The <a href="../../utility/db_checkpoint.html">db_checkpoint</a> utility runs as a daemon process, monitoring
-the database log and periodically issuing checkpoints. It facilitates
-log reclamation and the creation of database snapshots. Generally, some
-form of database checkpointing must be done if a database environment has
-been configured for transactions.
-<p><dt><a href="../../utility/db_deadlock.html">db_deadlock</a><dd>The <a href="../../utility/db_deadlock.html">db_deadlock</a> utility runs as a daemon process, periodically
-traversing the database lock structures and aborting transactions when it
-detects a deadlock. Generally, some form of deadlock detection must be
-done if a database environment has been configured for locking.
-<p><dt><a href="../../utility/db_dump.html">db_dump</a><dd>The <a href="../../utility/db_dump.html">db_dump</a> utility writes a copy of the database to a flat-text
-file in a portable format.
-<p><dt><a href="../../utility/db_load.html">db_load</a><dd>The <a href="../../utility/db_load.html">db_load</a> utility reads the flat-text file produced by
-<a href="../../utility/db_dump.html">db_dump</a> and loads it into a database file.
-<p><dt><a href="../../utility/db_printlog.html">db_printlog</a><dd>The <a href="../../utility/db_printlog.html">db_printlog</a> utility displays the contents of Berkeley DB log files
-in a human-readable and parseable format.
-<p><dt><a href="../../utility/db_recover.html">db_recover</a><dd>The <a href="../../utility/db_recover.html">db_recover</a> utility runs after an unexpected Berkeley DB or system
-failure to restore the database to a consistent state. Generally, some
-form of database recovery must be done if databases are being modified.
-<p><dt><a href="../../utility/db_stat.html">db_stat</a> <dd>The <a href="../../utility/db_stat.html">db_stat</a> utility displays statistics for databases and database
-environments.
-<p><dt><a href="../../utility/db_upgrade.html">db_upgrade</a><dd>The <a href="../../utility/db_upgrade.html">db_upgrade</a> utility provides a command-line interface for
-upgrading underlying database formats.
-<p><dt><a href="../../utility/db_verify.html">db_verify</a><dd>The <a href="../../utility/db_verify.html">db_verify</a> utility provides a command-line interface for
-verifying the database format.
-</dl>
-<p>All of the functionality implemented for these utilities is also available
-as part of the standard Berkeley DB API. This means that threaded applications
-can easily create a thread that calls the same Berkeley DB functions as do the
-utilities. This often simplifies an application environment by removing
-the necessity for multiple processes to negotiate database and database
-environment creation and shutdown.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/arch/script.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/env/intro.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/build_unix/aix.html b/bdb/docs/ref/build_unix/aix.html
deleted file mode 100644
index 102e1a01fbe..00000000000
--- a/bdb/docs/ref/build_unix/aix.html
+++ /dev/null
@@ -1,60 +0,0 @@
-<!--$Id: aix.so,v 11.11 2000/05/04 17:11:19 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: AIX</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Building Berkeley DB for UNIX systems</dl></h3></td>
-<td width="1%"><a href="../../ref/build_unix/notes.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_unix/freebsd.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>AIX</h1>
-<p><ol>
-<p><li><b>I can't compile and run multi-threaded applications.</b>
-<p>Special compile-time flags are required when compiling threaded
-applications on AIX. If you are compiling a threaded application,
-you must compile with the _THREAD_SAFE flag and load with specific
-libraries, e.g., "-lc_r". Specifying the compiler name with a
-trailing "_r" usually performs the right actions for the system.
-<p><blockquote><pre>xlc_r ...
-cc -D_THREAD_SAFE -lc_r ...</pre></blockquote>
-<p>The Berkeley DB library will automatically build with the correct options.
-<hr size=1 noshade>
-<p><li><b>I can't run using the <a href="../../api_c/env_open.html#DB_SYSTEM_MEM">DB_SYSTEM_MEM</a> option to
-<a href="../../api_c/env_open.html">DBENV-&gt;open</a>.</b>
-<p>AIX 4.1 only allows applications to map 10 system shared memory segments.
-In AIX 4.3 this has been raised to 256K segments, but only if you set the
-environment variable "export EXTSHM=ON".
-<hr size=1 noshade>
-<p><li><b>I can't create database files larger than 1GB on AIX.</b>
-<p>Berkeley DB does not include large-file support for AIX systems by default.
-Sleepycat Software has been told that the following changes will add
-large-file support on the AIX 4.2 and later releases, but we have not
-tested them ourselves.
-<p>Add the following lines to the <b>db_config.h</b> file in your build
-directory:
-<p><blockquote><pre>#ifdef HAVE_FILE_OFFSET_BITS
-#define _LARGE_FILES /* AIX specific. */
-#endif</pre></blockquote>
-<p>Change the source code for <b>os/os_open.c</b> to always specify the
-<b>O_LARGEFILE</b> flag to the <b>open</b>(2) system call.
-<p>Recompile Berkeley DB from scratch.
-<p>Note that the documentation for the IBM Visual Age compiler states that
-it does not not support the 64-bit filesystem APIs necessary for creating
-large files, and that the ibmcxx product must be used instead. We have
-not heard if the GNU gcc compiler supports the 64-bit APIs or not.
-<p>Finally, to create large files under AIX, the filesystem has to be
-configured to support large files and the system wide user hard-limit for
-file sizes has to be greater than 1GB.
-</ol>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/build_unix/notes.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_unix/freebsd.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/build_unix/conf.html b/bdb/docs/ref/build_unix/conf.html
deleted file mode 100644
index 289e9559e3a..00000000000
--- a/bdb/docs/ref/build_unix/conf.html
+++ /dev/null
@@ -1,143 +0,0 @@
-<!--$Id: conf.so,v 10.33 2000/12/04 18:05:41 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Configuring Berkeley DB</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a> <a name="3"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Building Berkeley DB for UNIX systems</dl></h3></td>
-<td width="1%"><a href="../../ref/build_unix/intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_unix/flags.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Configuring Berkeley DB</h1>
-<p>There are several options that you can specify when configuring Berkeley DB.
-While only the Berkeley DB specific ones are described here, most of the
-standard GNU autoconf options are available and supported. To see a
-complete list of the options, specify the --help flag to the configure
-program.
-<p>The Berkeley DB specific options are as follows:
-<p><dl compact>
- <a name="4"><!--meow--></a>
-<p><dt><a name="--disable-bigfile">--disable-bigfile</a><dd>Some systems, notably versions of HP/UX and Solaris, require special
-compile-time options in order to create files larger than 2^32 bytes.
-These options are automatically enabled when Berkeley DB is compiled. For this
-reason, binaries built on current versions of these systems may not run
-on earlier versions of the system, as the library and system calls
-necessary for large files are not available. To disable building with
-these compile-time options, enter --disable-bigfile as an argument to
-configure.
- <a name="5"><!--meow--></a>
-<p><dt><a name="--enable-compat185">--enable-compat185</a><dd>To compile or load Berkeley DB 1.85 applications against this release of the
-Berkeley DB library, enter --enable-compat185 as an argument to configure.
-This will include Berkeley DB 1.85 API compatibility code in the library.
- <a name="6"><!--meow--></a>
-<p><dt><a name="--enable-cxx">--enable-cxx</a><dd>To build the Berkeley DB C++ API, enter --enable-cxx as an argument to
-configure.
-<p><dt><a name="--enable-debug">--enable-debug</a><dd>To build Berkeley DB with <b>-g</b> as a compiler flag and with <b>DEBUG</b>
-#defined during compilation, enter --enable-debug as an argument to
-configure. This will create a Berkeley DB library with debugging symbols, as
-well as load various routines that can be called from a debugger to
-display pages, cursor queues and so forth. This option should not be
-specified when configuring to build production binaries, although there
-shouldn't be any significant performance degradation.
-<p><dt><a name="--enable-debug_rop">--enable-debug_rop</a><dd>To build Berkeley DB to output log records for read operations, enter
---enable-debug_rop as an argument to configure. This option should not
-be specified when configuring to build production binaries, as you will
-lose a significant amount of performance.
-<p><dt><a name="--enable-debug_wop">--enable-debug_wop</a><dd>To build Berkeley DB to output log records for write operations, enter
---enable-debug_wop as an argument to configure. This option should not
-be specified when configuring to build production binaries, as you will
-lose a significant amount of performance.
-<p><dt><a name="--enable-diagnostic">--enable-diagnostic</a><dd>To build Berkeley DB with debugging run-time sanity checks, enter
---enable-diagnostic as an argument to configure. This will cause a
-number of special checks to be performed when Berkeley DB is running. This
-option should not be specified when configuring to build production
-binaries, as you will lose a significant amount of performance.
- <a name="7"><!--meow--></a>
-<p><dt><a name="--enable-dump185">--enable-dump185</a><dd>To convert Berkeley DB 1.85 (or earlier) databases to this release of Berkeley DB,
-enter --enable-dump185 as an argument to configure. This will build the
-<a href="../../utility/db_dump.html">db_dump185</a> utility which can dump Berkeley DB 1.85 and 1.86 databases
-in a format readable by the Berkeley DB <a href="../../utility/db_load.html">db_load</a> utility.
-<p>The system libraries with which you are loading the <a href="../../utility/db_dump.html">db_dump185</a>
-utility must already contain the Berkeley DB 1.85 library routines for this to
-work, as the Berkeley DB distribution does not include them. If you are using
-a non-standard library for the Berkeley DB 1.85 library routines, you will have
-to change the Makefile that the configuration step creates to load the
-<a href="../../utility/db_dump.html">db_dump185</a> utility with that library.
- <a name="8"><!--meow--></a>
- <a name="9"><!--meow--></a>
-<p><dt><a name="--enable-dynamic">--enable-dynamic</a><dd>To build a dynamic shared library version of Berkeley DB, instead of the default
-static library, specify --enable-dynamic. Dynamic libraries are built
-using <a href="http://www.gnu.org/software/libtool/libtool.html">the
-GNU Project's Libtool</a> distribution, which supports shared library builds
-on many, although not all, systems.
-<p>Berkeley DB can be configured to build either a static or a dynamic library,
-but not both at once. You should not attempt to build both library
-types in the same directory, as they have incompatible object file
-formats. To build both static and dynamic libraries, create two
-separate build directories, and configure and build them separately.
- <a name="10"><!--meow--></a>
-<p><dt><a name="--enable-java">--enable-java</a><dd>To build the Berkeley DB Java API, enter --enable-java as an argument to
-configure. To build Java, you must also configure the option
---enable-dynamic. Before configuring, you must set your PATH environment
-variable to include javac. Note, it is not sufficient to include a
-symbolic link to javac in your PATH, because the configuration process
-uses the location of javac to determine the location of the Java include
-files (e.g., jni.h). On some systems additional include directories may
-be needed to process jni.h, see <a href="flags.html">Changing compile or load
-options</a> for more information.
-<p><dt><a name="--enable-posixmutexes">--enable-posixmutexes</a><dd>To force Berkeley DB to use the POSIX pthread mutex interfaces for underlying
-mutex support, enter --enable-posixmutexes as an argument to configure.
-The Berkeley DB library requires that the POSIX pthread implementation support
-mutexes shared between multiple processes, as described for the
-pthread_condattr_setpshared and pthread_mutexattr_setpshared interfaces.
-In addition, this configuration option requires that Berkeley DB be linked with
-the -lpthread library. On systems where POSIX mutexes are the preferred
-mutex support (e.g., HP-UX), they will be selected automatically.
- <a name="11"><!--meow--></a>
-<p><dt><a name="--enable-rpc">--enable-rpc</a><dd>To build the Berkeley DB RPC client code and server utility, enter --enable-rpc
-as an argument to configure. The --enable-rpc option requires that RPC
-libraries already be installed on your system.
-<p><dt><a name="--enable-shared">--enable-shared</a><dd>The --enable-shared configure argument is an alias for --enable-dynamic.
- <a name="12"><!--meow--></a>
-<p><dt><a name="--enable-tcl">--enable-tcl</a><dd>To build the Berkeley DB Tcl API, enter --enable-tcl as an argument to
-configure. This configuration option expects to find Tcl's tclConfig.sh
-file in the <b>/usr/local/lib</b> directory. See the --with-tcl
-option for instructions on specifying a non-standard location for the
-Tcl installation. See <a href="../../ref/tcl/intro.html">Loading Berkeley DB
-with Tcl</a> for information on sites from which you can download Tcl and
-which Tcl versions are compatible with Berkeley DB. To configure the Berkeley DB
-Tcl API, you must also specify the --enable-dynamic option.
- <a name="13"><!--meow--></a>
-<p><dt><a name="--enable-test">--enable-test</a><dd>To build the Berkeley DB test suite, enter --enable-test as an argument to
-configure. To run the Berkeley DB test suite, you must also specify the
---enable-dynamic and --enable-tcl options.
-<p><dt><a name="--enable-uimutexes">--enable-uimutexes</a><dd>To force Berkeley DB to use the UNIX International (UI) mutex interfaces for
-underlying mutex support, enter --enable-uimutexes as an argument to
-configure. This configuration option requires that Berkeley DB be linked with
-the -lthread library. On systems where UI mutexes are the preferred mutex
-support, (e.g., SCO's UnixWare 2), they will be selected automatically.
-<p><dt><a name="--enable-umrw">--enable-umrw</a><dd>Rational Software's Purify product and other run-time tools complain
-about uninitialized reads/writes of structure fields whose only purpose
-is padding, as well as when heap memory that was never initialized is
-written to disk. Specify the --enable-umrw option during configuration
-to mask these errors. This option should not be specified when
-configuring to build production binaries, as you will lose a significant
-amount of performance.
-<p><dt><a name="--with-tcl=DIR">--with-tcl=DIR</a><dd>To build the Berkeley DB Tcl API, enter --with-tcl=DIR, replacing DIR with
-the directory in which the Tcl tclConfig.sh file may be found. See
-<a href="../../ref/tcl/intro.html">Loading Berkeley DB with Tcl</a> for information
-on sites from which you can download Tcl and which Tcl versions are
-compatible with Berkeley DB. To configure the Berkeley DB Tcl API, you must also
-specify the --enable-dynamic option.
-</dl>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/build_unix/intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_unix/flags.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/build_unix/flags.html b/bdb/docs/ref/build_unix/flags.html
deleted file mode 100644
index 5b70b3d8d64..00000000000
--- a/bdb/docs/ref/build_unix/flags.html
+++ /dev/null
@@ -1,60 +0,0 @@
-<!--$Id: flags.so,v 10.6 2000/12/01 00:19:10 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Changing compile or load options</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a> <a name="3"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Building Berkeley DB for UNIX systems</dl></h3></td>
-<td width="1%"><a href="../../ref/build_unix/conf.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_unix/install.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Changing compile or load options</h1>
-<p>You can specify compiler and/or compile and load time flags by using
-environment variables during Berkeley DB configuration. For example, if you
-want to use a specific compiler, specify the CC environment variable
-before running configure:
-<p><blockquote><pre>prompt: env CC=gcc ../dist/configure</pre></blockquote>
-<p>Using anything other than the native compiler will almost certainly mean
-that you'll want to check the flags specified to the compiler and
-loader, too.
-<p>To specify debugging and optimization options for the C compiler,
-use the CFLAGS environment variable:
-<p><blockquote><pre>prompt: env CFLAGS=-O2 ../dist/configure</pre></blockquote>
-<p>To specify header file search directories and other miscellaneous options
-for the C preprocessor and compiler, use the CPPFLAGS environment variable:
-<p><blockquote><pre>prompt: env CPPFLAGS=-I/usr/contrib/include ../dist/configure</pre></blockquote>
-<p>To specify debugging and optimization options for the C++ compiler,
-use the CXXFLAGS environment variable:
-<p><blockquote><pre>prompt: env CXXFLAGS=-Woverloaded-virtual ../dist/configure</pre></blockquote>
-<p>To specify miscellaneous options or additional library directories for
-the linker, use the LDFLAGS environment variable:
-<p><blockquote><pre>prompt: env LDFLAGS="-N32 -L/usr/local/lib" ../dist/configure</pre></blockquote>
-<p>If you want to specify additional libraries, set the LIBS environment
-variable before running configure. For example:
-<p><blockquote><pre>prompt: env LIBS="-lposix -lsocket" ../dist/configure</pre></blockquote>
-<p>would specify two additional libraries to load, "posix" and "socket".
-<p>Make sure that you prepend -L to any library directory names and that you
-prepend -I to any include file directory names! Also, if the arguments
-you specify contain blank or tab characters, be sure to quote them as
-shown above, i.e. with single or double quotes around the values you're
-specifying for LIBS.
-<p>The env command is available on most systems, and simply sets one or more
-environment variables before running a command. If the env command is
-not available to you, you can set the environment variables in your shell
-before running configure. For example, in sh or ksh, you could do:
-<p><blockquote><pre>prompt: LIBS="-lposix -lsocket" ../dist/configure</pre></blockquote>
-<p>and in csh or tcsh, you could do:
-<p><blockquote><pre>prompt: setenv LIBS "-lposix -lsocket"
-prompt: ../dist/configure</pre></blockquote>
-<p>See your command shell's manual page for further information.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/build_unix/conf.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_unix/install.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/build_unix/freebsd.html b/bdb/docs/ref/build_unix/freebsd.html
deleted file mode 100644
index 3d3ff81161c..00000000000
--- a/bdb/docs/ref/build_unix/freebsd.html
+++ /dev/null
@@ -1,57 +0,0 @@
-<!--$Id: freebsd.so,v 11.12 2000/03/18 21:43:10 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: FreeBSD</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Building Berkeley DB for UNIX systems</dl></h3></td>
-<td width="1%"><a href="../../ref/build_unix/aix.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_unix/hpux.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>FreeBSD</h1>
-<p><ol>
-<p><li><b>I can't compile and run multi-threaded applications.</b>
-<p>Special compile-time flags are required when compiling threaded
-applications on FreeBSD. If you are compiling a threaded application,
-you must compile with the _THREAD_SAFE and -pthread flags:
-<p><blockquote><pre>cc -D_THREAD_SAFE -pthread ...</pre></blockquote>
-<p>The Berkeley DB library will automatically build with the correct options.
-<hr size=1 noshade>
-<p><li><b>I get occasional failures when running RPC-based programs under FreeBSD clients.</b>
-<p>There is a known bug in the XDR implementation in the FreeBSD C library,
-from Version 2.2 up to version 4.0-RELEASE, that causes certain sized
-messages to fail and return a zero-filled reply to the client. A bug
-report (#16028) has been filed with FreeBSD. The following patch is the
-FreeBSD fix:
-<p><blockquote><pre>*** /usr/src/lib/libc/xdr/xdr_rec.c.orig Mon Jan 10 10:20:42 2000
---- /usr/src/lib/libc/xdr/xdr_rec.c Wed Jan 19 10:53:45 2000
-***************
-*** 558,564 ****
- * but we don't have any way to be certain that they aren't
- * what the client actually intended to send us.
- */
-! if ((header & (~LAST_FRAG)) == 0)
- return(FALSE);
- rstrm-&gt;fbtbc = header & (~LAST_FRAG);
- return (TRUE);
---- 558,564 ----
- * but we don't have any way to be certain that they aren't
- * what the client actually intended to send us.
- */
-! if (header == 0)
- return(FALSE);
- rstrm-&gt;fbtbc = header & (~LAST_FRAG);
- return (TRUE);
-</pre></blockquote>
-</ol>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/build_unix/aix.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_unix/hpux.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/build_unix/hpux.html b/bdb/docs/ref/build_unix/hpux.html
deleted file mode 100644
index 3fc50d73cc9..00000000000
--- a/bdb/docs/ref/build_unix/hpux.html
+++ /dev/null
@@ -1,89 +0,0 @@
-<!--$Id: hpux.so,v 11.11 2000/12/14 17:04:02 krinsky Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: HP-UX</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Building Berkeley DB for UNIX systems</dl></h3></td>
-<td width="1%"><a href="../../ref/build_unix/freebsd.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_unix/irix.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>HP-UX</h1>
-<p><ol>
-<p><li><b>I can't specify the <a href="../../api_c/env_open.html#DB_SYSTEM_MEM">DB_SYSTEM_MEM</a> flag to <a href="../../api_c/env_open.html">DBENV-&gt;open</a>.</b>
-<p>The <b>shmget</b>(2) interfaces are not always used on HP-UX, even
-though they exist, as anonymous memory allocated using <b>shmget</b>(2)
-cannot be used to store the standard HP-UX msemaphore semaphores. For
-this reason, it may not be possible to specify the <a href="../../api_c/env_open.html#DB_SYSTEM_MEM">DB_SYSTEM_MEM</a>
-flag on some versions of HP-UX. (We have only seen this problem on HP-UX
-10.XX, so the simplest workaround may be to upgrade your HP-UX release.)
-<hr size=1 noshade>
-<p><li><b>I can't specify both the <a href="../../api_c/env_open.html#DB_PRIVATE">DB_PRIVATE</a> and <a href="../../api_c/env_open.html#DB_THREAD">DB_THREAD</a>
-flags to <a href="../../api_c/env_open.html">DBENV-&gt;open</a>.</b>
-<p>It is not possible to store the standard HP-UX msemaphore semaphores in
-memory returned by <b>malloc</b>(3) in some versions of HP-UX. For
-this reason, it may not be possible to specify both the <a href="../../api_c/env_open.html#DB_PRIVATE">DB_PRIVATE</a>
-and <a href="../../api_c/env_open.html#DB_THREAD">DB_THREAD</a> flags on some versions of HP-UX. (We have only seen
-this problem on HP-UX 10.XX, so the simplest workaround may be to upgrade
-your HP-UX release.)
-<hr size=1 noshade>
-<p><li><b>During configuration I see a message that large file support has
-been turned off.</b>
-<p>Some HP-UX system include files redefine "open" when big-file support (the
-HAVE_FILE_OFFSET_BITS and _FILE_OFFSET_BITS #defines) is enabled. This
-causes problems when compiling for C++, where "open" is a legal
-identifier, used in the Berkeley DB C++ API. For this reason, we automatically
-turn off big-file support when Berkeley DB is configured with a C++ API. This
-should not be a problem for applications unless there is a need to create
-databases larger than 2GB.
-<hr size=1 noshade>
-<p><li><b>I can't compile and run multi-threaded applications.</b>
-<p>Special compile-time flags are required when compiling threaded
-applications on HP-UX. If you are compiling a threaded application, you
-must compile with the _REENTRANT flag:
-<p><blockquote><pre>cc -D_REENTRANT ...</pre></blockquote>
-<p>The Berkeley DB library will automatically build with the correct options.
-<hr size=1 noshade>
-<p><li><b>An ENOMEM error is returned from <a href="../../api_c/env_open.html">DBENV-&gt;open</a> or
-<a href="../../api_c/env_remove.html">DBENV-&gt;remove</a>.</b>
-<p>Due to the constraints of the PA-RISC memory architecture, HP-UX does not
-allow a process to map a file into its address space multiple times.
-For this reason, each Berkeley DB environment may be opened only once by a
-process on HP-UX, i.e., calls to <a href="../../api_c/env_open.html">DBENV-&gt;open</a> will fail if the
-specified Berkeley DB environment has been opened and not subsequently closed.
-<hr size=1 noshade>
-<p><li><b>When compiling with gcc, I see the following error:
-<p><blockquote><pre>#error "Large Files (ILP32) not supported in strict ANSI mode."</pre></blockquote></b>
-<p>We believe this is an error in the HP-UX include files, but we don't
-really understand it. The only workaround we have found is to add
--D__STDC_EXT__ to the C preprocessor defines as part of compilation.
-<hr size=1 noshade>
-<p><li><b>When using the Tcl or Perl APIs (including running the test suite) I
-see the error "Can't shl_load() a library containing Thread Local Storage".</b>
-<p>This problem happens when HP-UX has been configured to use pthread mutex
-locking and an attempt is made to call Berkeley DB using the Tcl or Perl APIs. We
-have never found any way to fix this problem as part of the Berkeley DB build
-process. To work around the problem, rebuild tclsh or perl and modify its build
-process to explicitly link it against the HP-UX pthread library (currently
-/usr/lib/libpthread.a).
-<hr size=1 noshade>
-<p><li><b>When running an executable that has been dynamically linked
-against the Berkeley DB library, I see the error "Can't find path for shared library"
-even though I've correctly set the SHLIB_PATH environment variable.</b>
-<p>By default, some versions of HP-UX ignore the dynamic library search path
-specified by the SHLIB_PATH environment variable. To work around this, specify
-the "+s" flag to ld when linking, or run
-<p><blockquote><pre>chatr +s enable -l /full/path/to/libdb-3.2.sl ...</pre></blockquote>
-<p>on the executable that is not working.
-</ol>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/build_unix/freebsd.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_unix/irix.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/build_unix/install.html b/bdb/docs/ref/build_unix/install.html
deleted file mode 100644
index 7beb6f705f3..00000000000
--- a/bdb/docs/ref/build_unix/install.html
+++ /dev/null
@@ -1,60 +0,0 @@
-<!--$Id: install.so,v 10.12 2000/12/01 00:19:10 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Installing Berkeley DB</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Building Berkeley DB for UNIX systems</dl></h3></td>
-<td width="1%"><a href="../../ref/build_unix/flags.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_unix/shlib.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Installing Berkeley DB</h1>
-<p>Berkeley DB installs the following files into the following locations, with the
-following default values:
-<p><table border=1 align=center>
-<tr><th>Configuration Variables</th><th>Default value</th></tr>
-<tr><td>--prefix</td><td>/usr/local/BerkeleyDB.<b>Major</b>.<b>Minor</b></td></tr>
-<tr><td>--exec_prefix</td><td>$(prefix)</td></tr>
-<tr><td>--bindir</td><td>$(exec_prefix)/bin</td></tr>
-<tr><td>--includedir</td><td>$(prefix)/include</td></tr>
-<tr><td>--libdir</td><td>$(exec_prefix)/lib</td></tr>
-<tr><td>docdir</td><td>$(prefix)/docs</td></tr>
-<tr><th>Files</th><th>Default location</th></tr>
-<tr><td>include files</td><td>$(includedir)</td></tr>
-<tr><td>libraries</td><td>$(libdir)</td></tr>
-<tr><td>utilities</td><td>$(bindir)</td></tr>
-<tr><td>documentation</td><td>$(docdir)</td></tr>
-</table>
-<p>With one exception, this follows the GNU Autoconf and GNU Coding
-Standards installation guidelines, please see that documentation for
-more information and rationale.
-<p>The single exception is the Berkeley DB documentation. The Berkeley DB
-documentation is provided in HTML format, not in UNIX-style man or GNU
-info format. For this reason, Berkeley DB configuration does not support
-<b>--infodir</b> or <b>--mandir</b>. To change the default
-installation location for the Berkeley DB documentation, modify the Makefile
-variable, <b>docdir</b>.
-<p>To move the entire installation tree to somewhere besides
-<b>/usr/local</b>, change the value of <b>prefix</b>.
-<p>To move the binaries and libraries to a different location, change the
-value of <b>exec_prefix</b>. The values of <b>includedir</b> and
-<b>libdir</b> may be similarly changed.
-<p>Any of these values except for <b>docdir</b> may be set as part
-of configuration:
-<p><blockquote><pre>prompt: ../dist/configure --bindir=/usr/local/bin</pre></blockquote>
-<p>Any of these values, including <b>docdir</b>, may be changed when doing
-the install itself:
-<p><blockquote><pre>prompt: make prefix=/usr/contrib/bdb install</pre></blockquote>
-<p>The Berkeley DB installation process will attempt to create any directories that
-do not already exist on the system.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/build_unix/flags.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_unix/shlib.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/build_unix/intro.html b/bdb/docs/ref/build_unix/intro.html
deleted file mode 100644
index b2c0d613bfd..00000000000
--- a/bdb/docs/ref/build_unix/intro.html
+++ /dev/null
@@ -1,60 +0,0 @@
-<!--$Id: intro.so,v 10.18 2000/12/04 18:05:41 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Building for UNIX</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Building Berkeley DB for UNIX systems</dl></h3></td>
-<td width="1%"><a href="../../ref/debug/common.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_unix/conf.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Building for UNIX</h1>
-<p>The Berkeley DB distribution builds up to four separate libraries: the base C
-API Berkeley DB library and the optional C++, Java and Tcl API libraries. For
-portability reasons each library is standalone and contains the full Berkeley DB
-support necessary to build applications, that is, the C++ API Berkeley DB
-library does not require any other Berkeley DB libraries to build and run C++
-applications.
-<p>The Berkeley DB distribution uses the Free Software Foundation's
-<a href="http://sourceware.cygnus.com/autoconf">autoconf</a> and
-<a href="http://www.gnu.org/software/libtool/libtool.html">libtool</a>
-tools to build on UNIX platforms. In general, the standard configuration
-and installation options for these tools apply to the Berkeley DB distribution.
-<p>To perform the default UNIX build of Berkeley DB, first change to the
-<b>build_unix</b> directory, and then enter the following two commands:
-<p><blockquote><pre>../dist/configure
-make</pre></blockquote>
-<p>This will build the Berkeley DB library.
-<p>To install the Berkeley DB library, enter:
-<p><blockquote><pre>make install</pre></blockquote>
-<p>To rebuild Berkeley DB, enter:
-<p><blockquote><pre>make clean
-make</pre></blockquote>
-<p>If you change your mind about how Berkeley DB is to be configured, you must start
-from scratch by entering:
-<p><blockquote><pre>make realclean
-../dist/configure
-make</pre></blockquote>
-<p>To build multiple UNIX versions of Berkeley DB in the same source tree, create a
-new directory at the same level as the build_unix directory, and then
-configure and build in that directory:
-<p><blockquote><pre>mkdir build_bsdos3.0
-cd build_bsdos3.0
-../dist/configure
-make</pre></blockquote>
-<p>If you have trouble with any of these commands, please send email to the
-addresses found in the Sleepycat Software contact information. In that
-email, please provide a complete copy of the commands that you entered
-and any output, along with a copy of any <b>config.log</b> or
-<b>config.cache</b> files created during configuration.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/debug/common.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_unix/conf.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/build_unix/irix.html b/bdb/docs/ref/build_unix/irix.html
deleted file mode 100644
index af31b6e6811..00000000000
--- a/bdb/docs/ref/build_unix/irix.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!--$Id: irix.so,v 11.4 2000/03/18 21:43:10 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: IRIX</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Building Berkeley DB for UNIX systems</dl></h3></td>
-<td width="1%"><a href="../../ref/build_unix/hpux.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_unix/linux.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>IRIX</h1>
-<p><ol>
-<p><li><b>I can't compile and run multi-threaded applications.</b>
-<p>Special compile-time flags are required when compiling threaded
-applications on IRIX. If you are compiling a threaded application, you
-must compile with the _SGI_MP_SOURCE flag:
-<p><blockquote><pre>cc -D_SGI_MP_SOURCE ...</pre></blockquote>
-<p>The Berkeley DB library will automatically build with the correct options.
-</ol>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/build_unix/hpux.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_unix/linux.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/build_unix/linux.html b/bdb/docs/ref/build_unix/linux.html
deleted file mode 100644
index b6e2b93fb14..00000000000
--- a/bdb/docs/ref/build_unix/linux.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!--$Id: linux.so,v 11.4 2000/03/18 21:43:10 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Linux</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Building Berkeley DB for UNIX systems</dl></h3></td>
-<td width="1%"><a href="../../ref/build_unix/irix.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_unix/osf1.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Linux</h1>
-<p><ol>
-<p><li><b>I can't compile and run multi-threaded applications.</b>
-<p>Special compile-time flags are required when compiling threaded
-applications on Linux. If you are compiling a threaded application, you
-must compile with the _REENTRANT flag:
-<p><blockquote><pre>cc -D_REENTRANT ...</pre></blockquote>
-<p>The Berkeley DB library will automatically build with the correct options.
-</ol>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/build_unix/irix.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_unix/osf1.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/build_unix/notes.html b/bdb/docs/ref/build_unix/notes.html
deleted file mode 100644
index dcb975e3c9e..00000000000
--- a/bdb/docs/ref/build_unix/notes.html
+++ /dev/null
@@ -1,138 +0,0 @@
-<!--$Id: notes.so,v 10.42 2001/01/09 18:49:53 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Architecture independent FAQs</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a> <a name="3"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Building Berkeley DB for UNIX systems</dl></h3></td>
-<td width="1%"><a href="../../ref/build_unix/test.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_unix/aix.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Architecture independent FAQs</h1>
-<p><ol>
-<p><li><b>When compiling with gcc, I get unreferenced symbols, e.g.,:
-<p><blockquote><pre>symbol __muldi3: referenced symbol not found
-symbol __cmpdi2: referenced symbol not found</pre></blockquote></b>
-<p>On systems where they're available (e.g., HP-UX, Solaris), Berkeley DB uses
-64-bit integral types. As far as we can tell, some versions of gcc
-don't support these types. The simplest workaround is to reconfigure
-Berkeley DB using the --disable-bigfile configuration option, and then rebuild.
-<hr size=1 noshade>
-<p><li><b>My C++ program traps during a failure in a DB call on my
-gcc-based system.</b>
-<p>We believe there are some severe bugs in the implementation of exceptions
-for some gcc compilers. Exceptions require some interaction between
-compiler, assembler, runtime libraries, and we're not sure exactly what
-is at fault, but one failing combination is gcc 2.7.2.3 running on SuSE
-Linux 6.0. The problem on this system can be seen with a rather simple
-test case of an exception thrown from a shared library and caught in the
-main program.
-<p>A variation of this problem seems to occur on AIX, although we believe it
-does not necessarily involve shared libraries on that platform.
-<p>If you see a trap that occurs when an exception might be thrown by the DB
-runtime, we suggest that you use static libraries instead of dynamic
-(shared) libraries. See the documentation for configuration. If this
-doesn't work, and you have a choice of compilers, try using a more recent
-gcc or a non-gcc based compiler to build Berkeley DB.
-<p>Finally, you can disable the use of exceptions in the C++ runtime for
-Berkeley DB by using the <a href="../../api_c/db_create.html#DB_CXX_NO_EXCEPTIONS">DB_CXX_NO_EXCEPTIONS</a> flag with
-<a href="../../api_c/env_create.html">db_env_create</a> or <a href="../../api_c/db_create.html">db_create</a>. When this flag is on, all
-C++ methods fail by returning an error code rather than throwing an
-exception.
-<hr size=1 noshade>
-<p><li><b>I get unexpected results and database corruption when running
-threaded programs.</b>
-<p><b>I get error messages that mutex (e.g., pthread_mutex_XXX or
-mutex_XXX) functions are undefined when linking applications with Berkeley DB.</b>
-<p>On some architectures, the Berkeley DB library uses the ISO POSIX standard
-pthreads and UNIX International (UI) threads interfaces for underlying
-mutex support, e.g., Solaris and HP-UX. You can specify compilers,
-compiler flags or link with the appropriate thread library when loading
-your application, to resolve the undefined references:
-<p><blockquote><pre>cc ... -lpthread ...
-cc ... -lthread ...
-xlc_r ...
-cc ... -mt ...</pre></blockquote>
-<p>See the appropriate architecture-specific Reference Guide pages for more
-information.
-<p>On systems where more than one type of mutex is available, it may be
-necessary for applications to use the same threads package from which
-Berkeley DB draws its mutexes, e.g., if Berkeley DB was built to use the POSIX
-pthreads mutex calls for mutex support, the application may need to be
-written to use the POSIX pthreads interfaces for its threading model.
-While this is only conjecture at this time and we know of no systems that
-actually have this requirement, it's not unlikely that some exist.
-<p>In a few cases, Berkeley DB can be configured to use specific underlying mutex
-interfaces. You can use the <a href="../../ref/build_unix/conf.html#--enable-posixmutexes">--enable-posixmutexes</a> and
-<a href="../../ref/build_unix/conf.html#--enable-uimutexes">--enable-uimutexes</a> configuration options to specify the POSIX and Unix
-International (UI) threads packages. This should not, however, be
-necessary in most cases.
-<p>In some cases, it is vitally important to make sure that you load
-the correct library. For example, on Solaris systems, there are POSIX
-pthread interfaces in the C library, and so applications can link Berkeley DB
-using only C library and not see any undefined symbols. However, the C
-library POSIX pthread mutex support is insufficient for Berkeley DB and Berkeley DB
-cannot detect that fact. Similar errors can arise when applications
-(e.g., tclsh) use dlopen to dynamically load Berkeley DB as a library.
-<p>If you are seeing problems in this area after you've confirmed that you're
-linking with the correct libraries, there are two other things you can
-try. First, if your platform supports inter-library dependencies, we
-recommend that you change the Berkeley DB Makefile to specify the appropriate
-threads library when creating the Berkeley DB dynamic library, as an
-inter-library dependency. Second, if your application is using dlopen to
-dynamically load Berkeley DB, specify the appropriate thread library on the link
-line when you load the application itself.
-<hr size=1 noshade>
-<p><li><b>I get core dumps when running programs that fork children.</b>
-<p>Berkeley DB handles should not be shared across process forks, each forked
-child should acquire its own Berkeley DB handles.
-<hr size=1 noshade>
-<p><li><b>I get reports of uninitialized memory reads and writes when
-running software analysis tools (e.g., Rational Software Corp.'s Purify
-tool).</b>
-<p>For performance reasons, Berkeley DB does not write the unused portions of
-database pages or fill in unused structure fields. To turn off these
-errors when running software analysis tools, build with the
---enable-umrw configuration option.
-<hr size=1 noshade>
-<p><li><b>Berkeley DB programs or the test suite fail unexpectedly.</b>
-<p>The Berkeley DB architecture does not support placing the shared memory regions
-on remote filesystems, e.g., the Network File System (NFS) or the Andrew
-File System (AFS). For this reason, the shared memory regions (normally
-located in the database home directory) must reside on a local filesystem.
-See <a href="../../ref/env/region.html">Shared Memory Regions</a> for more
-information.
-<p>With respect to running the test suite, always check to make sure that
-TESTDIR is not on a remote mounted filesystem.
-<hr size=1 noshade>
-<p><li><b>The <a href="../../utility/db_dump.html">db_dump185</a> utility fails to build.</b>
-<p>The <a href="../../utility/db_dump.html">db_dump185</a> utility is the utility that supports conversion
-of Berkeley DB 1.85 and earlier databases to current database formats. If
-the errors look something like:
-<p><blockquote><pre>cc -o db_dump185 db_dump185.o
-ld:
-Unresolved:
-dbopen</pre></blockquote>
-<p>it means that the Berkeley DB 1.85 code was not found in the standard
-libraries. To build <a href="../../utility/db_dump.html">db_dump185</a>, the Berkeley DB version 1.85 code
-must have already been built and installed on the system. If the Berkeley DB
-1.85 header file is not found in a standard place, or the library is
-not part of the standard libraries used for loading, you will need to
-edit your Makefile, and change the lines:
-<p><blockquote><pre>DB185INC=
-DB185LIB=</pre></blockquote>
-<p>So that the system Berkeley DB 1.85 header file and library are found, e.g.,
-<p><blockquote><pre>DB185INC=/usr/local/include
-DB185LIB=-ldb185</pre></blockquote>
-</ol>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/build_unix/test.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_unix/aix.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/build_unix/osf1.html b/bdb/docs/ref/build_unix/osf1.html
deleted file mode 100644
index 42ac8e767ef..00000000000
--- a/bdb/docs/ref/build_unix/osf1.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!--$Id: osf1.so,v 11.6 2000/10/30 20:46:06 sue Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: OSF/1</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Building Berkeley DB for UNIX systems</dl></h3></td>
-<td width="1%"><a href="../../ref/build_unix/linux.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_unix/qnx.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>OSF/1</h1>
-<p><ol>
-<p><li><b>I can't compile and run multi-threaded applications.</b>
-<p>Special compile-time flags are required when compiling threaded
-applications on OSF/1. If you are compiling a threaded application, you
-must compile with the _REENTRANT flag:
-<p><blockquote><pre>cc -D_REENTRANT ...</pre></blockquote>
-<p>The Berkeley DB library will automatically build with the correct options.
-</ol>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/build_unix/linux.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_unix/qnx.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/build_unix/qnx.html b/bdb/docs/ref/build_unix/qnx.html
deleted file mode 100644
index 29c90dc98cb..00000000000
--- a/bdb/docs/ref/build_unix/qnx.html
+++ /dev/null
@@ -1,58 +0,0 @@
-<!--$Id: qnx.so,v 11.5 2000/11/29 15:03:24 sue Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: QNX</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Building Berkeley DB for UNIX systems</dl></h3></td>
-<td width="1%"><a href="../../ref/build_unix/osf1.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_unix/sco.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>QNX</h1>
-<p><ol>
-<p><li><b>To what versions of QNX has DB been ported?</b>
-<p>Berkeley DB has been ported to the QNX Neutrino technology which is commonly
-referred to as QNX RTP (Real-Time Platform). Berkeley DB has not been
-ported to earlier versions of QNX, such as QNX 4.25.
-<p><li><b>What is the impact of QNX's use of <b>shm_open</b>(2) for
-shared memory regions?</b>
-<p>QNX requires the use of the POSIX <b>shm_open</b>(2) and
-<b>shm_unlink</b>(2) calls for shared memory regions that will later
-be mapped into memory using <b>mmap</b>(2). QNX's implementation
-of the shared memory functions requires that the name given must begin
-with a slash, and that no other slash may appear in the name.
-<p>In order to comply with those requirements and allow relative pathnames
-to find the same environment, Berkeley DB uses only the last component of the
-home directory path and the name of the shared memory file, separated
-by a colon, as the name specified to the shared memory functions. For
-example, if an application specifies a home directory of
-<b>/home/db/DB_DIR</b>, Berkeley DB will use <b>/DB_DIR:__db.001</b> as
-the name for the shared memory area argument to <b>shm_open</b>(2).
-<p>The impact of this decision is that the last component of all
-environment home directory pathnames on QNX must be unique with respect
-to each other. Additionally, Berkeley DB requires that environments use home
-directories for QNX in order to generate a reasonable entry in the
-shared memory area.
-<p><li><b>What are the implications of QNX's requirement to use
-<b>shm_open</b>(2) in order to use <b>mmap</b>(2)?</b>
-<p>QNX requires that files mapped with <b>mmap</b>(2) be opened using
-<b>shm_open</b>(2). There are other places in addition to the
-environment shared memory regions, where Berkeley DB tries to memory map files
-if it can.
-<p>The memory pool subsystem normally attempts to use <b>mmap</b>(2)
-even when using private memory, as indicated by the <a href="../../api_c/env_open.html#DB_PRIVATE">DB_PRIVATE</a>
-flag to <a href="../../api_c/env_open.html">DBENV-&gt;open</a>. In the case of QNX, if an application is
-using private memory, Berkeley DB will not attempt to map the memory and will
-instead use the local cache.
-</ol>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/build_unix/osf1.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_unix/sco.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/build_unix/sco.html b/bdb/docs/ref/build_unix/sco.html
deleted file mode 100644
index dda8e6d1d01..00000000000
--- a/bdb/docs/ref/build_unix/sco.html
+++ /dev/null
@@ -1,29 +0,0 @@
-<!--$Id: sco.so,v 11.7 2000/10/30 20:46:06 sue Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: SCO</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Building Berkeley DB for UNIX systems</dl></h3></td>
-<td width="1%"><a href="../../ref/build_unix/qnx.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_unix/solaris.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>SCO</h1>
-<p><ol>
-<p><li><b>If I build with gcc, programs like db_dump, db_stat core dump immediately
-when invoked.</b>
-<p>We suspect gcc or the runtime loader may have a bug, but we haven't
-tracked it down. If you want to use gcc, we suggest building static
-libraries.
-</ol>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/build_unix/qnx.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_unix/solaris.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/build_unix/shlib.html b/bdb/docs/ref/build_unix/shlib.html
deleted file mode 100644
index 2819651cd1d..00000000000
--- a/bdb/docs/ref/build_unix/shlib.html
+++ /dev/null
@@ -1,94 +0,0 @@
-<!--$Id: shlib.so,v 10.9 2000/03/18 21:43:10 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Dynamic shared libraries</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Building Berkeley DB for UNIX systems</dl></h3></td>
-<td width="1%"><a href="../../ref/build_unix/install.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_unix/test.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Dynamic shared libraries</h1>
-<p><b>Warning</b>: the following information is intended to be generic and
-is likely to be correct for most UNIX systems. Unfortunately, dynamic
-shared libraries are not standard between UNIX systems, so there may be
-information here that is not correct for your system. If you have
-problems, consult your compiler and linker manual pages or your system
-administrator.
-<p>The Berkeley DB dynamic shared libraries are created with the name
-libdb-<b>major</b>.<b>minor</b>.so, where <b>major</b> is the major
-version number and <b>minor</b> is the minor version number. Other
-shared libraries are created if Java and Tcl support are enabled,
-specifically libdb_java-<b>major</b>.<b>minor</b>.so and
-libdb_tcl-<b>major</b>.<b>minor</b>.so.
-<p>On most UNIX systems, when any shared library is created, the linker
-stamps it with a "SONAME". In the case of Berkeley DB, the SONAME is
-libdb-<b>major</b>.<b>minor</b>.so. It is important to realize that
-applications linked against a shared library remember the SONAMEs of the
-libraries they use and not the underlying names in the filesystem.
-<p>When the Berkeley DB shared library is installed, links are created in the
-install lib directory so that libdb-<b>major</b>.<b>minor</b>.so,
-libdb-<b>major</b>.so and libdb.so all reference the same library. This
-library will have an SONAME of libdb-<b>major</b>.<b>minor</b>.so.
-<p>Any previous versions of the Berkeley DB libraries that are present in the
-install directory (such as libdb-2.7.so or libdb-2.so) are left unchanged.
-(Removing or moving old shared libraries is one drastic way to identify
-applications that have been linked against those vintage releases.)
-<p>Once you have installed the Berkeley DB libraries, unless they are installed in
-a directory where the linker normally looks for shared libraries, you will
-need to specify the installation directory as part of compiling and
-linking against Berkeley DB. Consult your system manuals or system
-administrator for ways to specify a shared library directory when
-compiling and linking applications with the Berkeley DB libraries. Many systems
-support environment variables (e.g., LD_LIBRARY_PATH, LD_RUN_PATH) ), or
-system configuration files (e.g., /etc/ld.so.conf) for this purpose.
-<p><b>Warning</b>: some UNIX installations may have an already existing
-<b>/usr/lib/libdb.so</b>, and this library may be an incompatible
-version of Berkeley DB.
-<p>We recommend that applications link against libdb.so (e.g., using -ldb).
-Even though the linker uses the file named libdb.so, the executable file
-for the application remembers the library's SONAME
-(libdb-<b>major</b>.<b>minor</b>.so). This has the effect of marking
-the applications with the versions they need at link time. Because
-applications locate their needed SONAMEs when they are executed, all
-previously linked applications will continue to run using the library they
-were linked with, even when a new version of Berkeley DB is installed and the
-file <b>libdb.so</b> is replaced with a new version.
-<p>Applications that know they are using features specific to a particular
-Berkeley DB release can be linked to that release. For example, an application
-wanting to link to Berkeley DB major release "3" can link using -ldb-3, and
-applications that know about a particular minor release number can specify
-both major and minor release numbers, for example, -ldb-3.5.
-<p>If you want to link with Berkeley DB before performing library installation,
-the "make" command will have created a shared library object in the
-<b>.libs</b> subdirectory of the build directory, such as
-<b>build_unix/.libs/libdb-major.minor.so</b>. If you want to link a
-file against this library, with, for example, a major number of "3" and
-a minor number of "5", you should be able to do something like:
-<p><blockquote><pre>cc -L BUILD_DIRECTORY/.libs -o testprog testprog.o -ldb-3.5
-env LD_LIBRARY_PATH="BUILD_DIRECTORY/.libs:$LD_LIBRARY_PATH" ./testprog</pre></blockquote>
-<p>where <b>BUILD_DIRECTORY</b> is the full directory path to the directory
-where you built Berkeley DB.
-<p>The libtool program (which is configured in the build_unix directory) can
-be used to set the shared library path and run a program. For example,
-<p><blockquote><pre>libtool gdb db_dump</pre></blockquote>
-<p>runs the gdb debugger on the db_dump utility after setting the appropriate
-paths. Libtool may not know what to do with arbitrary commands (it is
-hardwired to recognize "gdb" and some other commands). If it complains
-the mode argument will usually resolve the problem:
-<p><blockquote><pre>libtool --mode=execute my_debugger db_dump</pre></blockquote>
-<p>On most systems, using libtool in this way is exactly equivalent to
-setting the LD_LIBRARY_PATH environment variable and then executing the
-program. On other systems, using libtool has the virtue of knowing about
-any other details on systems that don't behave in this typical way.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/build_unix/install.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_unix/test.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/build_unix/solaris.html b/bdb/docs/ref/build_unix/solaris.html
deleted file mode 100644
index 8239537a825..00000000000
--- a/bdb/docs/ref/build_unix/solaris.html
+++ /dev/null
@@ -1,90 +0,0 @@
-<!--$Id: solaris.so,v 11.14 2000/09/13 17:22:20 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Solaris</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Building Berkeley DB for UNIX systems</dl></h3></td>
-<td width="1%"><a href="../../ref/build_unix/sco.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_unix/sunos.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Solaris</h1>
-<p><ol>
-<p><li><b>I can't compile and run multi-threaded applications.</b>
-<p>Special compile-time flags and additional libraries are required when
-compiling threaded applications on Solaris. If you are compiling a
-threaded application, you must compile with the D_REENTRANT flag and link
-with the libpthread.a or libthread.a libraries:
-<p><blockquote><pre>cc -mt ...
-cc -D_REENTRANT ... -lthread
-cc -D_REENTRANT ... -lpthread</pre></blockquote>
-<p>The Berkeley DB library will automatically build with the correct options.
-<hr size=1 noshade>
-<p><li><b>I've installed gcc on my Solaris system, but configuration
-fails because the compiler doesn't work.</b>
-<p>On some versions of Solaris, there is a cc executable in the user's path,
-but all it does is display an error message and fail:
-<p><blockquote><pre>% which cc
-/usr/ucb/cc
-% cc
-/usr/ucb/cc: language optional software package not installed</pre></blockquote>
-<p>As Berkeley DB always uses the native compiler in preference to gcc, this is a
-fatal error. If the error message you're seeing is:
-<p><blockquote><pre>checking whether the C compiler (cc -O ) works... no
-configure: error: installation or configuration problem: C compiler cannot create executables.</pre></blockquote>
-<p>then this may be the problem you're seeing. The simplest workaround is
-to set your CC environment variable to the system compiler, e.g.:
-<p><blockquote><pre>env CC=gcc ../dist/configure</pre></blockquote>
-<p>and reconfigure.
-<p>If you are using the --configure-cxx option, you may also want to specify
-a C++ compiler, e.g.:
-<p><blockquote><pre>env CC=gcc CCC=g++ ../dist/configure</pre></blockquote>
-<hr size=1 noshade>
-<p><li><b>I get the error
-"libc internal error: _rmutex_unlock: rmutex not held", followed by a core
-dump, when running threaded or JAVA programs.</b>
-<p>This is a known bug in Solaris 2.5 and it is fixed by Sun patch 103187-25.
-<hr size=1 noshade>
-<p><li><b>I get error reports of non-existent files, corrupted metadata
-pages and core dumps.</b>
-<p>Solaris 7 contains a bug in the threading libraries (-lpthread, -lthread)
-which causes the wrong version of the pwrite routine to be linked into
-the application if the thread library is linked in after the the C
-library. The result will be that the pwrite function is called rather
-than the pwrite64. To work around the problem, use an explicit link order
-when creating your application.
-<p>Sun Microsystems is tracking this problem with Bug Id's 4291109 and 4267207,
-and patch 106980-09 to Solaris 7 fixes the problem.
-<p><blockquote><pre>Bug Id: 4291109
-Duplicate of: 4267207
-Category: library
-Subcategory: libthread
-State: closed
-Synopsis: pwrite64 mapped to pwrite
-Description:
-When libthread is linked after libc, there is a table of functions in
-libthread that gets "wired into" libc via _libc_threads_interface().
-The table in libthread is wrong in both Solaris 7 and on28_35 for the
-TI_PWRITE64 row (see near the end).</pre></blockquote>
-<hr size=1 noshade>
-<p><li><b>During configuration I see a message that large file support has
-been turned off.</b>
-<p>The Solaris 8 system include files redefine "open" when big-file support (the
-HAVE_FILE_OFFSET_BITS and _FILE_OFFSET_BITS #defines) is enabled. This
-causes problems when compiling for C++, where "open" is a legal
-identifier, used in the Berkeley DB C++ API. For this reason, we automatically
-turn off big-file support when Berkeley DB is configured with a C++ API. This
-should not be a problem for applications unless there is a need to create
-databases larger than 2GB.
-</ol>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/build_unix/sco.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_unix/sunos.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/build_unix/sunos.html b/bdb/docs/ref/build_unix/sunos.html
deleted file mode 100644
index cecccaefb94..00000000000
--- a/bdb/docs/ref/build_unix/sunos.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!--$Id: sunos.so,v 11.4 2000/03/18 21:43:10 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: SunOS</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Building Berkeley DB for UNIX systems</dl></h3></td>
-<td width="1%"><a href="../../ref/build_unix/solaris.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_unix/ultrix.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>SunOS</h1>
-<p><ol>
-<p><li><b>I can't specify the <a href="../../api_c/env_open.html#DB_SYSTEM_MEM">DB_SYSTEM_MEM</a> flag to <a href="../../api_c/env_open.html">DBENV-&gt;open</a>.</b>
-<p>The <b>shmget</b>(2) interfaces are not used on SunOS releases prior
-to 5.0, even though they apparently exist, as the distributed include
-files did not allow them to be compiled. For this reason, it will not be
-possible to specify the <a href="../../api_c/env_open.html#DB_SYSTEM_MEM">DB_SYSTEM_MEM</a> flag those versions of
-SunOS.
-</ol>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/build_unix/solaris.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_unix/ultrix.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/build_unix/test.html b/bdb/docs/ref/build_unix/test.html
deleted file mode 100644
index 9ae398980f6..00000000000
--- a/bdb/docs/ref/build_unix/test.html
+++ /dev/null
@@ -1,49 +0,0 @@
-<!--$Id: test.so,v 10.19 2000/06/28 14:33:57 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Running the test suite under UNIX</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Building Berkeley DB for UNIX systems</dl></h3></td>
-<td width="1%"><a href="../../ref/build_unix/shlib.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_unix/notes.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Running the test suite under UNIX</h1>
-<p>The Berkeley DB test suite is built if you specify --enable-test as an
-argument when configuring Berkeley DB.
-<p>Before running the tests for the first time, you may need to edit the
-<b>include.tcl</b> file in your build directory. The Berkeley DB
-configuration assumes you intend to use the version of the tclsh utility
-included in the Tcl installation with which Berkeley DB was configured to run
-the test suite, and further assumes that the test suite will be run with
-the libraries pre-built in the Berkeley DB build directory. If either of these
-assumptions are incorrect, you will need to edit the <b>include.tcl</b>
-file and change the line that reads:
-<p><blockquote><pre>set tclsh_path ...</pre></blockquote>
-<p>to correctly specify the full path to the version of tclsh with which you
-are going to run the test suite. You may also need to change the line
-that reads:
-<p><blockquote><pre>set test_path ...</pre></blockquote>
-<p>to correctly specify the path from the directory where you are running
-the test suite to the location of the Berkeley DB Tcl API library you built.
-It may not be necessary that this be a full path if you have configured
-your system's dynamic shared library mechanisms to search the directory
-where you built or installed the Tcl library.
-<p>All Berkeley DB tests are run from within <b>tclsh</b>. After starting tclsh,
-you must source the file <b>test.tcl</b> in the test directory. For
-example, if you built in the <b>build_unix</b> directory of the
-distribution, this would be done using the command:
-<p><blockquote><pre>% source ../test/test.tcl</pre></blockquote>
-<p>Once you have executed that command and the "%" prompt has returned
-without errors, you are ready to run tests in the test suite.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/build_unix/shlib.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_unix/notes.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/build_unix/ultrix.html b/bdb/docs/ref/build_unix/ultrix.html
deleted file mode 100644
index e71946c8825..00000000000
--- a/bdb/docs/ref/build_unix/ultrix.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!--$Id: ultrix.so,v 11.4 2000/03/18 21:43:10 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Ultrix</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Building Berkeley DB for UNIX systems</dl></h3></td>
-<td width="1%"><a href="../../ref/build_unix/sunos.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_win/intro.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Ultrix</h1>
-<p><ol>
-<p><li><b>Configuration complains that mmap(2) interfaces aren't being used.</b>
-<p>The <b>mmap</b>(2) interfaces are not used on Ultrix, even though
-they exist, as they are known to not work correctly.
-</ol>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/build_unix/sunos.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_win/intro.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/build_vxworks/faq.html b/bdb/docs/ref/build_vxworks/faq.html
deleted file mode 100644
index cea733d7fb2..00000000000
--- a/bdb/docs/ref/build_vxworks/faq.html
+++ /dev/null
@@ -1,85 +0,0 @@
-<!--$Id: faq.so,v 1.12 2000/12/21 18:33:43 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: VxWorks FAQ</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a> <a name="3"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Building Berkeley DB for VxWorks systems</dl></h3></td>
-<td width="1%"><a href="../../ref/build_vxworks/notes.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade/process.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>VxWorks FAQ</h1>
-<p><ol>
-<p><li><b>Can I run the test suite under VxWorks?</b>
-<p>The test suite requires the Berkeley DB Tcl library. In turn, this library
-requires Tcl 8.1 or greater. In order to run the test suite, you would
-need to port Tcl 8.1 or greater to VxWorks. The Tcl shell included in
-<i>windsh</i> is not adequate for two reasons. First, it is based on
-Tcl 8.0. Second, it does not include the necessary Tcl components for
-adding a Tcl extension.
-<p><li><b>Are all Berkeley DB features available for VxWorks?</b>
-<p>All Berkeley DB features are available for VxWorks with the exception of the
-<a href="../../api_c/db_open.html#DB_TRUNCATE">DB_TRUNCATE</a> flag for <a href="../../api_c/db_open.html">DB-&gt;open</a>. The underlying mechanism
-needed for that flag is not available consistently across different file
-systems for VxWorks.
-<p><li><b>Are there any constraints using particular file system drivers?</b>
-<p>There are constraints using the dosFs file systems with Berkeley DB. Namely,
-you must configure your dosFs file system to support long file names if
-you are using Berkeley DB logging in your application. The VxWorks' dosFs
-1.0 file system, by default, uses the old MS-DOS 8.3 file naming
-constraints, restricting to 8 character file names with a 3 character
-extension. If you have configured with VxWorks' dosFs 2.0 you should
-be compatible with Windows FAT32 filesystems which supports long
-filenames.
-<p><li><b>Are there any dependencies on particular file system drivers?</b>
-<p>There is one dependency on specifics of file system drivers in the port
-of Berkeley DB to VxWorks. Berkeley DB synchronizes data using the FIOSYNC function
-to ioctl() (another option would have been to use the FIOFLUSH function
-instead). The FIOSYNC function was chosen because the NFS client driver,
-nfsDrv, only supports it and doesn't support FIOFLUSH. All local file
-systems, as of VxWorks 5.4, support FIOSYNC with the exception of
-rt11fsLib, which only supports FIOFLUSH. To use rt11fsLib, you will need
-to modify the os/os_fsync.c file to use the FIOFLUSH function; note that
-rt11fsLib cannot work with NFS clients.
-<p><li><b>Are there any known file system problems?</b>
-<p>During the course of our internal testing we came across two problems
-with the dosFs 2.0 file system that warranted patches from Wind River Systems.
-You should ask Wind River Systems for the patches to these
-problems if you encounter them.
-<p>The first problem is that files will seem to disappear. You should
-look at <b>SPR 31480</b> in the Wind River Systems' Support pages for
-a more detailed description of this problem.
-<p>The second problem is a semaphore deadlock within the dosFs file system
-code. Looking at a stack trace via CrossWind, you will see two or more of
-your application's tasks waiting in semaphore code within dosFs. The patch
-for this problem is under <b>SPR 33221</b> at Wind River Systems.
-<p><li><b>Are there any file systems I cannot use?</b>
-<p>The Target Server File System (TSFS) uses the netDrv driver. This driver
-does not support any ioctl that allows flushing to the disk and therefore
-cannot be used with Berkeley DB.
-<p><li><b>Why aren't the utility programs part of the project?</b>
-<p>The utility programs, in their Unix-style form, are not ported to VxWorks.
-The reasoning is the utility programs are essentially wrappers for the
-specific Berkeley DB interface they call. Their interface and generic model
-are not the appropriate paradigm for VxWorks. It is most likely that
-specific applications will want to spawn tasks that call the appropriate
-Berkeley DB function to perform the actions of some utility programs, using
-VxWorks native functions. For example, an application that spawns several
-tasks that all may operate on the same database would also want to spawn
-a task that calls <a href="../../api_c/lock_detect.html">lock_detect</a> for deadlock detection, but specific
-to the environment used for that application.
-<p><li><b>What VxWorks primitives are used for mutual exclusion in Berkeley DB?</b>
-<p>Mutexes inside of Berkeley DB use the basic binary semaphores in VxWorks. The
-mutexes are created using the FIFO queue type.
-</ol>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/build_vxworks/notes.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade/process.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/build_vxworks/intro.html b/bdb/docs/ref/build_vxworks/intro.html
deleted file mode 100644
index 593b8a1e64c..00000000000
--- a/bdb/docs/ref/build_vxworks/intro.html
+++ /dev/null
@@ -1,86 +0,0 @@
-<!--$Id: intro.so,v 1.7 2000/08/10 17:54:49 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Building for VxWorks</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Building Berkeley DB for VxWorks systems</dl></h3></td>
-<td width="1%"><a href="../../ref/build_win/faq.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_vxworks/notes.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Building for VxWorks</h1>
-<p>The build_vxworks directory in the Berkeley DB distribution contains a workspace
-and project files for Tornado 2.0.
-<p><table border=1 align=center>
-<tr><th>File</th><th>Description</th></tr>
-<tr> <td align=center>Berkeley DB.wsp</td> <td align=center>Berkeley DB Workspace file</td> </tr>
-<tr> <td align=center>Berkeley DB.wpj</td> <td align=center>Berkeley DB Project file</td> </tr>
-<tr> <td align=center>ex_*/*.wpj</td> <td align=center>Example programs project files</td> </tr>
-</table>
-<h3>Building With Tornado 2.0</h3>
-<p>Open the workspace <b>Berkeley DB.wsp</b>. The list of projects
-in this workspace will be shown. These projects were created for
-the x86 BSP for VxWorks.
-<p>The remainder of this document assumes you already have a
-VxWorks target and a target server, both up and running.
-<p>First, you'll need to set the include directories.
-To do this, go to the <i>Builds</i> tab for the workspace.
-Open up <i>Berkeley DB Builds</i>. You will see several different
-builds, containing different configurations. All of the projects
-in the Berkeley DB workspace are created to be downloadable applications.
-<p><table border=1 align=center>
-<tr><th>Build</th><th>Description</th></tr>
-<tr> <td align=left>PENTIUM_RPCdebug</td> <td align=left>x86 BSP with RPC and debugging</td> </tr>
-<tr> <td align=left>PENTIUM_RPCnodebug</td> <td align=left>x86 BSP with RPC no debugging</td> </tr>
-<tr> <td align=left>PENTIUM_debug</td> <td align=left>x86 BSP no RPC with debugging</td> </tr>
-<tr> <td align=left>PENTIUM_nodebug</td> <td align=left>x86 BSP no RPC no debugging</td> </tr>
-<tr> <td align=left>SIMSPARCSOLARISgnu</td> <td align=left>VxSim BSP no RPC with debugging</td> </tr>
-</table>
-<p>You will have to add a new build specification if you are using a
-different BSP or wish to customize further. For instance, if you have
-the Power PC (PPC) BSP, you will need to add a new build for the PPC tool
-chain. To do so, select the "Builds" tab and then select the Berkeley DB
-project name and right click. Choose the <i>New Build...</i>
-selection and create the new build target. For your new build target,
-you will need to decide if you want it configured to support RPC and
-whether it should be built for debugging. See the properties of the
-Pentium builds for how to configure for each case. After you have added
-this build you still need to correctly configure the include directories
-as described below.
-<p>Select the build you are interested in and right click. Choose the
-<i>Properties...</i> selection. At this point, a tabbed dialogue
-should appear. In this new window, choose the <i>C/C++ compiler</i>
-tab. In the edit box, you need to modify the full pathname of the
-<i>build_vxworks</i> subdirectory of Berkeley DB, followed by the full
-pathname of the <i>include</i> subdirectory of Berkeley DB. Then click
-OK.
-<p>If the architecture for this new build has the most significant byte
-first, you will also need to edit the <i>db_config.h</i> file in
-the build directory and define <b>WORDS_BIGENDIAN</b>.
-<p>To build and download the Berkeley DB downloadable application for the first time
-requires several steps:
-<p><ol>
-<p><li>Select the build you are interested in and right click.
-Choose the <i>Set ... as Active Build</i> selection.
-<p><li>Select the build you are interested in and right click.
-Choose the <i>Dependencies ...</i> selection.
-Run dependencies over all files in the Berkeley DB project.
-<p><li>Select the build you are interested in and right click.
-Choose the <i>Rebuild All (Berkeley DB.out)</i> selection.
-<p><li>Select the Berkeley DB project name and right click.
-Choose the <i>Download 'Berkeley DB.out'</i> selection.
-</ol>
-<p>You will need to repeat this procedure for
-all builds you are interested in building, as well as for
-all of the example project builds you wish to run.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/build_win/faq.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_vxworks/notes.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/build_vxworks/notes.html b/bdb/docs/ref/build_vxworks/notes.html
deleted file mode 100644
index 83de255119b..00000000000
--- a/bdb/docs/ref/build_vxworks/notes.html
+++ /dev/null
@@ -1,56 +0,0 @@
-<!--$Id: notes.so,v 1.6 2000/08/09 15:45:52 sue Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: VxWorks notes</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Building Berkeley DB for VxWorks systems</dl></h3></td>
-<td width="1%"><a href="../../ref/build_vxworks/intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_vxworks/faq.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>VxWorks notes</h1>
-<p>Berkeley DB currently disallows the DB_TRUNC flag to <a href="../../api_c/db_open.html">DB-&gt;open</a>.
-The operations this flag represent are not fully supported under
-VxWorks 5.4.
-<p>The memory on VxWorks is always resident and fully shared among all tasks
-running on the target. For this reason, the <a href="../../api_c/env_open.html#DB_SYSTEM_MEM">DB_SYSTEM_MEM</a> flag
-is implied for any application that does not specify the
-<a href="../../api_c/env_open.html#DB_PRIVATE">DB_PRIVATE</a> flag. Additionally, applications must use a
-segment ID to ensure different applications do not overwrite each other's
-database environments.
-See the <a href="../../api_c/env_set_shm_key.html">DBENV-&gt;set_shm_key</a> function for more information.
-Also, the <a href="../../api_c/env_open.html#DB_LOCKDOWN">DB_LOCKDOWN</a> flag has no effect.
-<p>The <a href="../../api_c/db_sync.html">DB-&gt;sync</a> function is implemented using an ioctl call into the
-file system driver with the FIOSYNC command. Most, but not all, file
-system drivers support this call. Berkeley DB requires the use of a file system
-supporting FIOSYNC.
-<h3>Building and Running the Example Programs</h3>
-<p>Each example program can be downloaded and run by calling the function
-equivalent to the example's name. You may have to edit the pathname to
-the environments and database names in the examples' sources. The
-examples included are:
-<p><table border=1 align=center>
-<tr><th>Name</th><th>Description</th></tr>
-<tr> <td align=left>ex_access</td> <td align=left>Simple access method example.</td> </tr>
-<tr> <td align=left>ex_btrec</td> <td align=left>Example using Btree and record numbers.</td> </tr>
-<tr> <td align=left>ex_dbclient</td> <td align=left>Example running an RPC client. Takes a hostname as an argument, e.g.,
-<i>ex_dbclient "myhost"</i>.</td> </tr>
-<tr> <td align=left>ex_env</td> <td align=left>Example using an environment.</td> </tr>
-<tr> <td align=left>ex_mpool</td> <td align=left>Example using mpools.</td> </tr>
-<tr> <td align=left>ex_tpcb</td> <td align=left>Example using transactions. This example requires two invocations both
-taking an integer identifier as an argument. This identifier allows for
-multiple sets of databases to be used within the same environment. The
-first is to initialize the databases, e.g., <i>ex_tpcb_init 1</i>. The
-second is to run the program on those databases, e.g., <i>ex_tpcb 1</i>.</td> </tr>
-</table>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/build_vxworks/intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_vxworks/faq.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/build_win/faq.html b/bdb/docs/ref/build_win/faq.html
deleted file mode 100644
index 2c185b6daa2..00000000000
--- a/bdb/docs/ref/build_win/faq.html
+++ /dev/null
@@ -1,49 +0,0 @@
-<!--$Id: faq.so,v 10.20 2000/06/28 15:43:27 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Windows FAQ</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a> <a name="3"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Building Berkeley DB for Windows systems</dl></h3></td>
-<td width="1%"><a href="../../ref/build_win/notes.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_vxworks/intro.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Windows FAQ</h1>
-<p><ol>
-<p><li><b>My Win* C/C++ application crashes in the Berkeley DB library when Berkeley DB calls
-fprintf (or some other standard C library function).</b>
-<p>You should be using the "Debug Multithreaded DLL" compiler option in
-your application when you link with the
-build_win32/Debug/libdb32d.lib library (this .lib file
-is actually a stub for libdb32d.DLL). To check this
-setting in Visual C++, choose the "Project/Settings" menu item, and
-under the tab marked "C/C++", select "Code Generation" and see the box
-marked "Use runtime library". This should be set to "Debug
-Multithreaded DLL". If your application is linked against the static
-library, build_win32/Debug/libdb32sd.lib, then you
-will want to set "Use runtime library" to "Debug Multithreaded".
-<p>Setting this option incorrectly can cause multiple versions of the
-standard libraries to be linked into your application (one on behalf
-of your application, and one on behalf of the Berkeley DB library). That
-violates assumptions made by these libraries, and traps can result.
-<p><li><b>Why are the build options for DB_DLL marked as "Use MFC in a Shared DLL"?
-Does Berkeley DB use MFC?</b>
-<p>Berkeley DB does not use MFC at all. It does however, call malloc and free and
-other facilities provided by the Microsoft C runtime library. We've found
-in our work that many applications and libraries are built assuming MFC,
-and specifying this for Berkeley DB solves various interoperation issues, and
-guarantees that the right runtime libraries are selected. Note that since
-we do not use MFC facilities, the MFC library DLL is not marked as a
-dependency for libdb.dll, but the appropriate Microsoft C runtime is.
-</ol>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/build_win/notes.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_vxworks/intro.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/build_win/intro.html b/bdb/docs/ref/build_win/intro.html
deleted file mode 100644
index 6f5e0d4bbf4..00000000000
--- a/bdb/docs/ref/build_win/intro.html
+++ /dev/null
@@ -1,143 +0,0 @@
-<!--"@(#)intro.so 10.26 (Sleepycat) 11/18/99"-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Building for Win32</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Building Berkeley DB for Win32 platforms</dl></h3></td>
-<td width="1%"><a href="../../ref/build_unix/ultrix.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_win/test.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Building for Win32</h1>
-<p>The build_win32 directory in the Berkeley DB distribution contains project files
-for both MSVC 5.0 and 6.0:
-<p><table border=1 align=center>
-<tr><th>Project File</th><th>Description</th></tr>
-<tr> <td align=center>Berkeley_DB.dsw</td> <td align=center>Visual C++ 5.0 project (compatible with 6.0)</td> </tr>
-<tr> <td align=center>*.dsp</td> <td align=center>Visual C++ 5.0 subprojects (compatible with 6.0
-)</td> </tr>
-</table>
-<p>These project files can be used to build Berkeley DB for any Win32 platform:
-Windows 2000, Windows NT, Windows 98 and Windows 95.
-<h3>Building With Visual C++ 6.0</h3>
-<p>Open the file <b>Berkeley_DB.dsw</b>. You will be told that the project
-was generated by a previous version of Developer Studio, and asked if you
-want to convert the project. Select Yes, and all projects will be
-converted. Then continue on with the instructions for building with
-Visual C++ 5.0.
-<p>Note that when you build a release version, you may receive a warning
-about an unknown compiler option <i>/Ob2</i>. This is apparently a
-flaw in the project conversion for Visual C++ and can be ignored.
-<p>Each release of Berkeley DB is built and tested with this procedure using
-Microsoft Visual C++ 6.0, Standard Edition.
-<h3>Building With Visual C++ 5.0</h3>
-<p>Open the file <b>Berkeley_DB.dsw</b>. This workspace includes a number
-of subprojects needed to build Berkeley DB.
-<p>First, you'll need to set the include directories. To do this, select
-<i>Options...</i> from the <i>Tools</i> pull-down menu. At this
-point, a tabbed dialogue should appear. In this new window, choose the
-<i>Directories</i> tab. For the <i>Platform</i>, select
-<i>Win32</i> and for <i>Show directories for</i> select
-<i>Include files</i>. Below these options in the list of directories,
-you should add two directories: the full pathname of the
-<i>build_win32</i> subdirectory of Berkeley DB, followed by the full
-pathname of the <i>include</i> subdirectory of Berkeley DB. Then click OK.
-<p>Then, select <i>Active Project Configuration</i> under the
-<i>Build</i> pull-down menu. For a debug version of the libraries,
-tools and examples, select <i>db_buildall - Win32 Debug</i>.
-Results from this build are put into <b>build_win32/Debug</b>.
-For a release version, select <i>db_buildall - Win32 Release</i>;
-results are put into <b>build_win32/Release</b>.
-For a debug version that has all tools and examples built with
-static libraries, select <i>db_buildall - Win32 Debug Static</i>;
-results are put into <b>build_win32/Debug_static</b>.
-For a release version of the same,
-select <i>db_buildall - Win32 Release Static</i>;
-results are put into <b>build_win32/Release_static</b>.
-Finally, to build, select <i>Build db_buildall.exe</i> under the
-<i>Build</i> pull-down menu.
-<p>When building your application, you should normally use compile options
-"debug multithreaded dll" and link against
-<b>build_win32/Debug/libdb32d.lib</b>. If you want
-to link against a static (non-DLL) version of the library, use the
-"debug multithreaded" compile options and link against
-<b>build_win32/Debug_static/libdb32sd.lib</b>. You can
-also build using a release version of the libraries and tools, which will be
-placed in <b>build_win32/Release/libdb32.lib</b>.
-The static version will be in
-<b>build_win32/Release_static/libdb32s.lib</b>.
-<p>Each release of Berkeley DB is maintained, built and tested using Microsoft
-Visual C++ 5.0 and 6.0.
-<h3>Including the C++ API</h3>
-<p>C++ support is built automatically on Win32.
-<h3>Including the Java API</h3>
-<p>Java support is not built automatically. The following instructions
-assume you have installed the Sun Java Development Kit in
-<b>d:/java</b>. Of course, if you've installed elsewhere, or have
-different Java software, you will need to adjust the pathnames
-accordingly. First, use the instructions above for Visual C++ 5.0 or 6.0
-to open the Tools/Options tabbed dialog for adding include directories.
-In addition to the directories specified above, add
-<b>d:/java/include</b> and <b>d:/java/include/win32</b>. These are
-the directories needed when including <b>jni.h</b>. Now, before
-clicking OK, under <i>Show directories for</i>, choose
-<i>Executable files</i>. Add <b>d:/java/bin</b>. That directory
-is needed to find javac. Now select OK.
-<p>Select <i>Active Project Configuration</i> under the
-<i>Build</i> pull-down menu. Choose <i>db_java - Win32
-Release</i>. To build, select <i>Build
-libdb_java32.dll</i> under the <i>Build</i> pull-down
-menu. This builds the Java support library for Berkeley DB and compiles all
-the java files, placing the class files in the <b>java/classes</b>
-subdirectory of Berkeley DB. Set your environment variable CLASSPATH to
-include this directory, your environment variable PATH to include the
-<b>build_win32/Release</b> subdirectory, and as a test, try running
-the command:
-<p><blockquote><pre>java com.sleepycat.examples.AccessExample</pre></blockquote>
-<h3>Including the Tcl API</h3>
-<p>Tcl support is not built automatically. See
-<a href="../../ref/tcl/intro.html">Loading Berkeley DB with Tcl</a> for information
-on sites from which you can download Tcl and which Tcl versions are
-compatible with Berkeley DB.
-<p>The Tcl library must be built as the same build type as the Berkeley DB
-library (both Release or both Debug). We have found that the binary
-release of Tcl can be used with the Release configuration of Berkeley DB, but
-for the Debug configuration, you will need to need to build Tcl from
-sources. Before building Tcl, you will need to modify its makefile to
-make sure you are building a debug version, including thread support.
-This is because the set of DLLs linked into the Tcl executable must
-match the corresponding set of DLLs used by Berkeley DB.
-<p>These notes assume Tcl is installed as <b>d:/tcl</b>, but you can
-change that if you wish. If you run using a different version of Tcl
-than the one currently being used by Sleepycat Software, you will need
-to change the name of the Tcl library used in the build (e.g.,
-tcl83d.lib) to the appropriate name. See
-Projects-&gt;Settings-&gt;Link in the db_tcl subproject.
-<p>Use the instructions above for
-Visual C++ 5.0 or 6.0 to open the <i>Tools/Options</i> tabbed dialog
-for adding include directories. In addition to the directories specified
-above, add <b>d:/tcl/include</b>. This is the directory that contains
-<b>tcl.h</b>.
-Then, in that same dialog, show directories for "Library Files".
-Add <b>d:/tcl/lib</b> (or whatever directory contains
-<b>tcl83d.lib</b> in your distribution) to the list. Now select OK.
-<p>Select <i>Active Project Configuration</i> under the
-<i>Build</i> pull-down menu. Choose <i>db_tcl - Win32
-Release</i>. To build, select <i>Build
-libdb_tcl32.dll</i> under the <i>Build</i> pull-down
-menu. This builds the Tcl support library for Berkeley DB, placing the result
-into <b>build_win32/Release/libdb_tcl32.dll</b>.
-Selecting an Active Configuration of <i>db_tcl - Win32 Debug</i>
-will build a debug version, placing the result into
-<b>build_win32/Debug/libdb_tcl32d.dll</b>.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/build_unix/ultrix.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_win/test.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/build_win/notes.html b/bdb/docs/ref/build_win/notes.html
deleted file mode 100644
index 483b101ecc2..00000000000
--- a/bdb/docs/ref/build_win/notes.html
+++ /dev/null
@@ -1,56 +0,0 @@
-<!--$Id: notes.so,v 10.17 2000/11/02 16:46:11 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Windows notes</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Building Berkeley DB for Windows systems</dl></h3></td>
-<td width="1%"><a href="../../ref/build_win/test.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_win/faq.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Windows notes</h1>
-<ul type=disc>
-<li>Various Berkeley DB interfaces take a <b>mode</b> argument, intended to specify
-the underlying file permissions for created files. Berkeley DB currently ignores
-this argument on Windows systems.
-<p>It would be possible to construct a set of security attributes to pass to
-<b>CreateFile</b> that accurately represents the mode. In the worst
-case, this would involve looking up user and all group names and creating
-an entry for each. Alternatively, we could call the <b>_chmod</b>
-(partial emulation) function after file creation, although this leaves us
-with an obvious race.
-<p>Practically speaking, however, these efforts would be largely meaningless
-on FAT, the most common file system, which only has a "readable" and
-"writeable" flag, applying to all users.
-<li>When using the <a href="../../api_c/env_open.html#DB_SYSTEM_MEM">DB_SYSTEM_MEM</a> flag, Berkeley DB shared regions are
-created without ACLs, which means that the regions are only accessible
-to a single user. If wider sharing is appropriate (e.g., both user
-applications and Windows/NT service applications need to access the
-Berkeley DB regions), the Berkeley DB code will need to be modified to create the
-shared regions with the correct ACLs. Alternatively, by not specifying
-the <a href="../../api_c/env_open.html#DB_SYSTEM_MEM">DB_SYSTEM_MEM</a> flag, file-system backed regions will be
-created instead, and the permissions on those files may be directly
-specified through the <a href="../../api_c/env_open.html">DBENV-&gt;open</a> interface.
-<li>On Windows/9X, files opened by multiple processes do not share data
-correctly. For this reason, the <a href="../../api_c/env_open.html#DB_SYSTEM_MEM">DB_SYSTEM_MEM</a> flag is implied
-for any application that does not specify the <a href="../../api_c/env_open.html#DB_PRIVATE">DB_PRIVATE</a> flag,
-causing the system paging file to be used for sharing data. However,
-paging file memory is freed on last close, implying that multiple
-processes sharing an environment must arrange for at least one process
-to always have the environment open, or, alternatively, that any process
-joining the environment be prepared to re-create it. If a shared
-environment is closed by all processes, a subsequent open without
-specifying the <a href="../../api_c/env_open.html#DB_CREATE">DB_CREATE</a> flag will result in the return of a
-system EAGAIN error code.
-</ul>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/build_win/test.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_win/faq.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/build_win/test.html b/bdb/docs/ref/build_win/test.html
deleted file mode 100644
index e3230ca84a4..00000000000
--- a/bdb/docs/ref/build_win/test.html
+++ /dev/null
@@ -1,77 +0,0 @@
-<!--$Id: test.so,v 10.29 2001/01/17 14:42:57 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Running the test suite under Windows</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a> <a name="3"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Building Berkeley DB for Windows systems</dl></h3></td>
-<td width="1%"><a href="../../ref/build_win/intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_win/notes.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Running the test suite under Windows</h1>
-<p>To build the test suite on Win32 platforms you will need to configure
-Tcl support. You will also need sufficient main memory and disk.
-Something around 100MB of disk will be sufficient. For memory, 32MB is
-too small, we recommend at least 64MB.
-<h3>Building the software needed by the tests</h3>
-<p>There exist bugs in some versions of Tcl that may cause the test suite
-to hang on Windows/NT 4.0. Tcl version 8.4 (currently available as an
-alpha release) has fixed the problem, or there are patches available
-for Tcl 8.3.2 (see bug #119188 in the Tcl SourceForge database). Note
-that if you want to run the test suite against a Debug version of Berkeley DB,
-you need to build a debug version of Tcl. This involves building Tcl
-from its source.
-<p>To build, perform the following steps. Note that steps #1, #4 and #5
-are part of the normal build process for building Berkeley DB; #2, #3 are part
-of including the Tcl API.
-<p><ol>
-<p><li>Open the <b>build_win32/Berkeley_DB.dsw</b> workspace.
-<p><li>Add the pathname for the Tcl include subdirectory to your
-include path. To do this, under the "Tools" menu item, select "Options".
-In the dialog, select the "Directories" tab, and choose directories
-for "Include Files". Add <b>d:/tcl/include</b> (or whatever directory
-contains <b>tcl.h</b> in your distribution) to the list.
-<p><li>Add the pathname for the Tcl library subdirectory to your
-library path. To do this, under the "Tools" menu item, select "Options".
-In the dialog, select the "Directories" tab, and choose directories for
-"Library Files". Add <b>d:/tcl/lib</b> (or whatever directory contains
-<b>tcl83d.lib</b> in your distribution) to the list.
-<p><li>Set the active configuration to db_test -- Debug. To set an
-active configuration, under the "Build" menu item in the IDE, select "Set
-Active Configuration". Then choose "db_test -- Debug".
-<p><li>Build. The IDE menu for this is called "build dbkill.exe",
-even though dbkill is just one of the things that is built.
-This step builds the base Berkeley DB .dll, tcl support,
-and various tools that are needed by the test suite.
-</ol>
-<h3>Running the test suite under Windows</h3>
-<p>Before running the tests for the first time, you must edit the file
-<b>include.tcl</b> in your build directory and change the line
-that reads:
-<p><blockquote><pre>set tclsh_path SET_YOUR_TCLSH_PATH</pre></blockquote>
-<p>You will want to use the location of the <b>tclsh</b> program. For
-example, if Tcl is installed as <b>d:/tcl</b>, this line should be:
-<p><blockquote><pre>set tclsh_path d:/tcl/bin/tclsh83d.exe</pre></blockquote>
-<p>Then, in a shell of your choice enter the following commands:
-<p><ol>
-<p><li>cd build_win32
-<p><li>run <b>d:/tcl/bin/tclsh83d.exe</b>, or the equivalent name of
-the Tcl shell for your distribution.
-<p>You should get a "%" prompt.
-<p><li>% source ../test/test.tcl.
-<p>You should get a "%" prompt with no errors.
-</ol>
-<p>You are now ready to run tests in the test suite, see
-<a href="../../ref/test/run.html">Running the test suite</a> for more
-information.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/build_win/intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_win/notes.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/cam/intro.html b/bdb/docs/ref/cam/intro.html
deleted file mode 100644
index 7a02ea87f93..00000000000
--- a/bdb/docs/ref/cam/intro.html
+++ /dev/null
@@ -1,72 +0,0 @@
-<!--$Id: intro.so,v 10.21 2001/01/18 19:50:57 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Building Berkeley DB Concurrent Data Store applications</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Berkeley DB Concurrent Data Store Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/env/error.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/transapp/intro.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Building Berkeley DB Concurrent Data Store applications</h1>
-<p>It is often desirable to have concurrent read-write access to a database
-when there is no need for full recoverability or transaction semantics.
-For this class of applications, Berkeley DB provides an interface supporting
-deadlock free, multiple-reader/single writer access to the database.
-This means that, at any instant in time, there may be either multiple
-readers accessing data or a single writer modifying data. The
-application is entirely unaware of which is happening, and Berkeley DB
-implements the necessary locking and blocking to ensure this behavior.
-<p>In order to create Berkeley DB Concurrent Data Store applications, you must first initialize an
-environment by calling <a href="../../api_c/env_open.html">DBENV-&gt;open</a>. You must specify the
-<a href="../../api_c/env_open.html#DB_INIT_CDB">DB_INIT_CDB</a> and <a href="../../api_c/env_open.html#DB_INIT_MPOOL">DB_INIT_MPOOL</a> flags to that interface.
-It is an error to specify any of the other <a href="../../api_c/env_open.html">DBENV-&gt;open</a> subsystem
-or recovery configuration flags, e.g., <a href="../../api_c/env_open.html#DB_INIT_LOCK">DB_INIT_LOCK</a>,
-<a href="../../api_c/env_open.html#DB_INIT_TXN">DB_INIT_TXN</a> or <a href="../../api_c/env_open.html#DB_RECOVER">DB_RECOVER</a>.
-<p>All databases must, of course, be created in this environment, by using
-the <a href="../../api_c/db_create.html">db_create</a> interface and specifying the correct environment
-as an argument.
-<p>The Berkeley DB access method calls used to support concurrent access are
-unchanged from the normal access method calls, with one exception: the
-<a href="../../api_c/db_cursor.html">DB-&gt;cursor</a> interface. In Berkeley DB Concurrent Data Store, each cursor must encapsulate
-the idea of being used for read-only access or for read-write access.
-There may only be one read-write cursor active at any one time. When your
-application creates a cursor, if that cursor will ever be used for
-writing, the <a href="../../api_c/db_cursor.html#DB_WRITECURSOR">DB_WRITECURSOR</a> flag must be specified when the cursor
-is created.
-<p>No deadlock detector needs to be run in a Berkeley DB Concurrent Data Store database environment.
-<p>Only a single thread of control may write the database at a time. For
-this reason care must be taken to ensure that applications do not
-inadvertently block themselves causing the application to hang, unable
-to proceed. Some common mistakes include:
-<p><ol>
-<p><li>Leaving a cursor open while issuing a <a href="../../api_c/db_put.html">DB-&gt;put</a> or <a href="../../api_c/db_del.html">DB-&gt;del</a>
-access method call.
-<p><li>Attempting to open a cursor for read-write access while already holding
-a cursor open for read-write access.
-<p><li>Not testing Berkeley DB error return codes (if any cursor operation returns an
-unexpected error, that cursor should be closed).
-<p><li>By default, Berkeley DB Concurrent Data Store does locking on a per-database basis. For this reason,
-accessing multiple databases in different orders in different threads
-or processes, or leaving cursors open on one database while accessing
-another database, can cause an application to hang. If this behavior
-is a requirement for the application, Berkeley DB can be configured to do
-locking on an environment wide basis. See the <a href="../../api_c/env_set_flags.html#DB_CDB_ALLDB">DB_CDB_ALLDB</a> flag
-of the <a href="../../api_c/env_set_flags.html">DBENV-&gt;set_flags</a> function for more information.
-</ol>
-<p>Note that it is correct operation for two different threads of control
-(actual threads or processes) to have multiple read-write cursors open,
-or for one thread to issue a <a href="../../api_c/db_put.html">DB-&gt;put</a> call while another thread
-has a read-write cursor open, and it is only a problem if these things
-are done within a single thread of control.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/env/error.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/transapp/intro.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/debug/common.html b/bdb/docs/ref/debug/common.html
deleted file mode 100644
index 6374307f133..00000000000
--- a/bdb/docs/ref/debug/common.html
+++ /dev/null
@@ -1,109 +0,0 @@
-<!--$Id: common.so,v 10.13 2000/12/05 18:04:26 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Common errors</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Debugging Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/debug/printlog.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_unix/intro.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Common errors</h1>
-<p>This page outlines some of the most common problems that people encounter
-and some suggested courses of action.
-<p><dl compact>
-<p><dt><b>Symptom:</b><dd>Core dumps or garbage returns from random Berkeley DB operations.
-<p><dt>Possible Cause:<dd>Failure to zero out DBT structure before issuing request.
-<p><dt>Fix:<dd>Before using a <a href="../../api_c/dbt.html">DBT</a>, you must initialize all its elements
-to 0 and then set the ones you are using explicitly.
-<p><dt><b>Symptom:</b><dd>Random crashes and/or database corruption.
-<p><dt>Possible Cause:<dd>Running multiple threads, but did not specify <a href="../../api_c/env_open.html#DB_THREAD">DB_THREAD</a>
-to <a href="../../api_c/db_open.html">DB-&gt;open</a> or <a href="../../api_c/env_open.html">DBENV-&gt;open</a>.
-<p><dt>Fix:<dd>Any time you are sharing a handle across multiple threads, you must
-specify <a href="../../api_c/env_open.html#DB_THREAD">DB_THREAD</a> when you open that handle.
-<p><dt><b>Symptom:</b><dd><a href="../../api_c/env_open.html">DBENV-&gt;open</a> returns EINVAL.
-<p><dt>Possible Cause:<dd>The environment home directory is a remote mounted filesystem.
-<p><dt>Fix:<dd>Use a locally mounted filesystem instead.
-<p><dt><b>Symptom:</b><dd><a href="../../api_c/db_get.html">DB-&gt;get</a> calls are returning EINVAL.
-<p><dt>Possible Cause:<dd>The application is running with threads, but did not specify the
-<a href="../../api_c/dbt.html#DB_DBT_MALLOC">DB_DBT_MALLOC</a>, <a href="../../api_c/dbt.html#DB_DBT_REALLOC">DB_DBT_REALLOC</a> or <a href="../../api_c/dbt.html#DB_DBT_USERMEM">DB_DBT_USERMEM</a>
-flags in the <a href="../../api_c/dbt.html">DBT</a> structures used in the call.
-<p><dt>Fix:<dd>When running with threaded handles (i.e., specifying <a href="../../api_c/env_open.html#DB_THREAD">DB_THREAD</a>
-to <a href="../../api_c/env_open.html">DBENV-&gt;open</a> or <a href="../../api_c/db_open.html">DB-&gt;open</a>), you must specify one of those
-flags for all <a href="../../api_c/dbt.html">DBT</a> structures in which Berkeley DB is returning data.
-<p><dt><b>Symptom:</b><dd>Running multiple threads or processes, and the database appears to be
-getting corrupted.
-<p><dt>Possible Cause:<dd>Locking is not enabled.
-<p><dt>Fix:<dd>Make sure that you are acquiring locks in your access methods. You
-must specify <a href="../../api_c/env_open.html#DB_INIT_LOCK">DB_INIT_LOCK</a> to your <a href="../../api_c/env_open.html">DBENV-&gt;open</a> call and then
-pass that environment to <a href="../../api_c/db_open.html">DB-&gt;open</a>.
-<p><dt><b>Symptom:</b><dd>Locks are accumulating or threads and/or processes are
-deadlocking even though there is no concurrent access to the database.
-<p><dt>Possible Cause:<dd>Failure to close a cursor.
-<p><dt>Fix:<dd>Cursors retain locks between calls. Everywhere the application uses
-a cursor, the cursor should be explicitly closed as soon as possible after
-it is used.
-<p><dt><b>Symptom:</b><dd>The system locks up.
-<p><dt>Possible Cause:<dd>Application not checking for <a href="../../ref/program/errorret.html#DB_LOCK_DEADLOCK">DB_LOCK_DEADLOCK</a>.
-<p><dt>Fix:<dd>Unless you are using the Concurrent Data Store product, whenever you
-have multiple threads and/or processes and at least one of them is
-writing, you have the potential for deadlock. As a result, you must
-test for the <a href="../../ref/program/errorret.html#DB_LOCK_DEADLOCK">DB_LOCK_DEADLOCK</a> return on every Berkeley DB call. In
-general, updates should take place in a transaction or you might leave
-the database in an inconsistent state. Reads may take place outside
-the context of a transaction under common conditions.
-<p>Whenever you get a <a href="../../ref/program/errorret.html#DB_LOCK_DEADLOCK">DB_LOCK_DEADLOCK</a> return, you should:
-<p><ol>
-<p><li>If you are running in a transaction, abort the transaction, first closing
-any cursors opened in the transaction.
-<p><li>If you are not running in a transaction, simply close the cursor that got
-the <a href="../../ref/program/errorret.html#DB_LOCK_DEADLOCK">DB_LOCK_DEADLOCK</a> (if it was a cursor operation) and retry.
-</ol>
-<p>See <a href="../../ref/transapp/put.html">Recoverability and deadlock
-avoidance</a> for further information.
-<p><dt><b>Symptom:</b><dd>An inordinately high number of deadlocks.
-<p><dt>Possible Cause:<dd>Read-Modify-Write pattern without using the RMW flag.
-<p><dt>Fix:<dd>If you frequently read a piece of data, modify it and then write
-it, you may be inadvertently causing a large number of deadlocks. Try
-specifying the <a href="../../api_c/dbc_get.html#DB_RMW">DB_RMW</a> flag on your get calls.
-<p>Or, if the application is doing a large number of updates in a small
-database, turning off Btree splits may help (see <a href="../../api_c/db_set_flags.html#DB_REVSPLITOFF">DB_REVSPLITOFF</a>
-for more information.)
-<p><dt><b>Symptom:</b><dd>I run recovery and it exits cleanly, but my database changes are missing.
-<p><dt>Possible Cause:<dd>Failure to enable logging and transactions in the database environment,
-failure to specify DB_ENV handle when creating DB handle,
-transaction handle not passed to Berkeley DB interface, failure to commit
-transaction.
-<p><dt>Fix:<dd>Make sure that the environment and database handles are properly
-created, and that the application passes the transaction handle returned
-by <a href="../../api_c/txn_begin.html">txn_begin</a> to the appropriate Berkeley DB interfaces, and that each
-transaction is eventually committed.
-<p><dt><b>Symptom:</b><dd>Recovery fails.
-<p><dt>Possible Cause:<dd>A database was updated in a transactional environment both with and
-without transactional handles.
-<p><dt>Fix:<dd>If any database write operation is done using a transaction handle,
-every write operation must be done in the context of a transaction.
-<p><dt><b>Symptom:</b><dd>A database environment locks up, sometimes gradually.
-<p><dt>Possible Cause:<dd>A thread of control exited unexpectedly, holding Berkeley DB resources.
-<p><dt>Fix:<dd>Whenever a thread of control exits holding Berkeley DB resources, all threads
-of control must exit the database environment, and recovery must be run.
-<p><dt><b>Symptom:</b><dd>A database environment locks up, sometimes gradually.
-<p><dt>Possible Cause:<dd>Cursors are not being closed before transaction abort.
-<p><dt>Fix:<dd>Before an application aborts a transaction, any cursors opened within
-the context of that transaction must be closed.
-<p><dt><b>Symptom:</b><dd>Transaction abort or recovery fail, or database corruption occurs.
-<p><dt>Possible Cause:<dd>Log files were removed before it was safe.
-<p><dt>Fix:<dd>Do not remove any log files from a database environment until Berkeley DB
-declares it safe.
-</dl>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/debug/printlog.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/build_unix/intro.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/debug/compile.html b/bdb/docs/ref/debug/compile.html
deleted file mode 100644
index 504d5d3ecd6..00000000000
--- a/bdb/docs/ref/debug/compile.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!--$Id: compile.so,v 10.10 2000/12/01 20:15:25 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Compile-time configuration</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Debugging</dl></h3></td>
-<td width="1%"><a href="../../ref/debug/intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/debug/runtime.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Compile-time configuration</h1>
-<p>There are two compile-time configuration options that assist in debugging
-Berkeley DB and Berkeley DB applications.
-<p><dl compact>
-<p><dt>--enable-debug<dd>If you want to build Berkeley DB with <b>-g</b> as the C and C++ compiler
-flag, enter --enable-debug as an argument to configure. This will create
-Berkeley DB with debugging symbols, as well as load various Berkeley DB routines
-that can be called directly from a debugger to display database page
-content, cursor queues and so forth. (Note that the <b>-O</b>
-optimization flag will still be specified. To compile with only the
-<b>-g</b>, explicitly set the <b>CFLAGS</b> environment variable
-before configuring.)
-<p><dt>--enable-diagnostic<dd>If you want to build Berkeley DB with debugging run-time sanity checks and with
-DIAGNOSTIC #defined during compilation, enter --enable-diagnostic as an
-argument to configure. This will cause a number of special checks to be
-performed when Berkeley DB is running. This flag should not be defined when
-configuring to build production binaries, as it degrades performance.
-<p>In addition, when compiling Berkeley DB for use in run-time memory consistency
-checkers, in particular, programs that look for reads and writes of
-uninitialized memory, use --enable-diagnostic as an argument to configure.
-This guarantees that Berkeley DB will completely initialize allocated pages
-rather than only initializing the minimum necessary amount.
-</dl>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/debug/intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/debug/runtime.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/debug/intro.html b/bdb/docs/ref/debug/intro.html
deleted file mode 100644
index 0ea0afcfb22..00000000000
--- a/bdb/docs/ref/debug/intro.html
+++ /dev/null
@@ -1,58 +0,0 @@
-<!--$Id: intro.so,v 10.15 2000/12/04 18:05:41 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Introduction</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Debugging Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/install/file.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/debug/compile.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Introduction</h1>
-<p>As Berkeley DB is an embedded library, debugging applications that use Berkeley DB
-is both harder and easier than debugging a separate server. Debugging
-can be harder, because, when a problem arises, it is not always readily
-apparent whether the problem is in the application, in the database
-library, or is a result of an unexpected interaction between the two.
-Debugging can be easier, as it is easier to track down a problem when
-you can review a stack trace rather than deciphering inter-process
-communication messages. This chapter is intended to assist you in
-debugging applications and in reporting bugs to us in a manner such that
-we can provide you with the correct answer or fix as quickly as
-possible.
-<p>When you encounter a problem, there are a few general actions you can
-take:
-<p><dl compact>
-<p><dt>Review the Berkeley DB error output<dd>If an error output mechanism has been configured in the Berkeley DB
-environment, additional run-time error messages are made available to
-the applications. If you are not using an environment, it is well worth
-modifying your application to create one so that you can get more
-detailed error messages. See <a href="runtime.html">Run-time error
-information</a> for more information on configuring Berkeley DB to output these
-error messages.
-<p><dt>Review <a href="../../api_c/env_set_verbose.html">DBENV-&gt;set_verbose</a><dd>Check the list of flags for the <a href="../../api_c/env_set_verbose.html">DBENV-&gt;set_verbose</a> function, and
-see if any of them will produce additional information that might help
-understand the problem.
-<p><dt>Add run-time diagnostics<dd>You can configure and build Berkeley DB to perform run-time diagnostics.
-(These checks are not done by default as they can seriously impact
-performance. See <a href="compile.html">Compile-time configuration</a> for more
-information.
-<p><dt>Apply all available patches<dd>Before reporting a problem to Sleepycat Software, please upgrade to the
-latest Sleepycat Software release of Berkeley DB, if possible, or at least
-make sure you have applied any updates available for your release from
-the <a href="http://www.sleepycat.com/update/index.html">Sleepycat
-Software web site</a>.
-<p><dt>Run the test suite<dd>If you are seeing repeated failures, or failures of simple test cases,
-run the Berkeley DB test suite to determine if the distribution of Berkeley DB you
-are using was built and configured correctly.
-</dl>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/install/file.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/debug/compile.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/debug/printlog.html b/bdb/docs/ref/debug/printlog.html
deleted file mode 100644
index e533a88d21c..00000000000
--- a/bdb/docs/ref/debug/printlog.html
+++ /dev/null
@@ -1,160 +0,0 @@
-<!--$Id: printlog.so,v 10.20 2000/12/01 20:15:25 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Reviewing Berkeley DB log files</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Debugging Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/debug/runtime.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/debug/common.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Reviewing Berkeley DB log files</h1>
-<p>If you are running with transactions and logging, the <a href="../../utility/db_printlog.html">db_printlog</a>
-utility can be a useful debugging aid. The <a href="../../utility/db_printlog.html">db_printlog</a> utility
-will display the contents of your log files in a human readable (and
-machine-processable) format.
-<p>The <a href="../../utility/db_printlog.html">db_printlog</a> utility will attempt to display any and all
-logfiles present in a designated db_home directory. For each log record,
-<a href="../../utility/db_printlog.html">db_printlog</a> will display a line of the form:
-<p><blockquote><pre>[22][28]db_big: rec: 43 txnid 80000963 prevlsn [21][10483281]</pre></blockquote>
-<p>The opening numbers in square brackets are the log sequence number (LSN)
-of the log record being displayed. The first number indicates the log
-file in which the record appears, and the second number indicates the
-offset in that file of the record.
-<p>The first character string identifies the particular log operation being
-reported. The log records corresponding to particular operations are
-described below. The rest of the line consists of name/value pairs.
-<p>The rec field indicates the record type (this is used to dispatch records
-in the log to appropriate recovery functions).
-<p>The txnid field identifies the transaction for which this record was
-written. A txnid of 0 means that the record was written outside the
-context of any transaction. You will see these most frequently for
-checkpoints.
-<p>Finally, the prevlsn contains the LSN of the last record for this
-transaction. By following prevlsn fields, you can accumulate all the
-updates for a particular transaction. During normal abort processing,
-this field is used to quickly access all the records for a particular
-transaction.
-<p>After the initial line identifying the record type, each field of the log
-record is displayed, one item per line. There are several fields that
-appear in many different records and a few fields that appear only in
-some records.
-<p>The list below presents each log record type currently produced with a brief
-description of the operation they describe.
-<!--START LOG RECORD TYPES-->
-<p><table border=1>
-<tr><th>Log Record Type</th><th>Description</th></tr>
-<tr><td>bam_adj</td><td>Used when we insert/remove an index into/from the page header of a Btree page.</td></tr>
-<tr><td>bam_cadjust</td><td>Keeps track of record counts in a Btree or Recno database.</td></tr>
-<tr><td>bam_cdel</td><td>Used to mark a record on a page as deleted.</td></tr>
-<tr><td>bam_curadj</td><td>Used to adjust a cursor location when a nearby record changes in a Btree database.</td></tr>
-<tr><td>bam_pg_alloc</td><td>Indicates that we allocated a page to a Btree.</td></tr>
-<tr><td>bam_pg_free</td><td>Indicates that we freed a page in the Btree (freed pages are added to a freelist and reused).</td></tr>
-<tr><td>bam_rcuradj</td><td>Used to adjust a cursor location when a nearby record changes in a Recno database.</td></tr>
-<tr><td>bam_repl</td><td>Describes a replace operation on a record.</td></tr>
-<tr><td>bam_root</td><td>Describes an assignment of a root page.</td></tr>
-<tr><td>bam_rsplit</td><td>Describes a reverse page split.</td></tr>
-<tr><td>bam_split</td><td>Describes a page split.</td></tr>
-<tr><td>crdel_delete</td><td>Describes the removal of a Berkeley DB file.</td></tr>
-<tr><td>crdel_fileopen</td><td>Describes a Berkeley DB file create attempt.</td></tr>
-<tr><td>crdel_metapage</td><td>Describes the creation of a meta-data page for a new file.</td></tr>
-<tr><td>crdel_metasub</td><td>Describes the creation of a meta data page for a subdatabase.</td></tr>
-<tr><td>crdel_rename</td><td>Describes a file rename operation.</td></tr>
-<tr><td>db_addrem</td><td>Add or remove an item from a page of duplicates.</td></tr>
-<tr><td>db_big</td><td>Add an item to an overflow page (overflow pages contain items too large to place on the main page)</td></tr>
-<tr><td>db_debug</td><td>Log debugging message.</td></tr>
-<tr><td>db_noop</td><td>This marks an operation that did nothing but update the LSN on a page.</td></tr>
-<tr><td>db_ovref</td><td>Increment or decrement the reference count for a big item.</td></tr>
-<tr><td>db_relink</td><td>Fix prev/next chains on duplicate pages because a page was added or removed.</td></tr>
-<tr><td>ham_chgpg</td><td>Used to adjust a cursor location when a Hash page is removed, and its elements are moved to a different Hash page.</td></tr>
-<tr><td>ham_copypage</td><td>Used when we empty a bucket page, but there are overflow pages for the bucket; one needs to be copied back into the actual bucket.</td></tr>
-<tr><td>ham_curadj</td><td>Used to adjust a cursor location when a nearby record changes in a Hash database.</td></tr>
-<tr><td>ham_groupalloc</td><td>Allocate some number of contiguous pages to the Hash database.</td></tr>
-<tr><td>ham_insdel</td><td>Insert/Delete an item on a Hash page.</td></tr>
-<tr><td>ham_metagroup</td><td>Update the metadata page to reflect the allocation of a sequence of contiguous pages.</td></tr>
-<tr><td>ham_newpage</td><td>Adds or removes overflow pages from a Hash bucket.</td></tr>
-<tr><td>ham_replace</td><td>Handle updates to records that are on the main page.</td></tr>
-<tr><td>ham_splitdata</td><td>Record the page data for a split.</td></tr>
-<tr><td>log_register</td><td>Records an open of a file (mapping the file name to a log-id that is used in subsequent log operations).</td></tr>
-<tr><td>qam_add</td><td>Describes the actual addition of a new record to a Queue.</td></tr>
-<tr><td>qam_del</td><td>Delete a record in a Queue.</td></tr>
-<tr><td>qam_delete</td><td>Remove a Queue extent file.</td></tr>
-<tr><td>qam_inc</td><td>Increments the maximum record number allocated in a Queue indicating that we've allocated another space in the file.</td></tr>
-<tr><td>qam_incfirst</td><td>Increments the record number that refers to the first record in the database.</td></tr>
-<tr><td>qam_mvptr</td><td>Indicates that we changed the reference to either or both of the first and current records in the file.</td></tr>
-<tr><td>qam_rename</td><td>Rename a Queue extent file.</td></tr>
-<tr><td>txn_child</td><td>Commit a child transaction.</td></tr>
-<tr><td>txn_ckp</td><td>Transaction checkpoint.</td></tr>
-<tr><td>txn_regop</td><td>Logs a regular (non-child) transaction commit.</td></tr>
-<tr><td>txn_xa_regop</td><td>Logs a prepare message.</td></tr>
-</table>
-<!--END LOG RECORD TYPES-->
-<h3>Augmenting the Log for Debugging</h3>
-<p>When debugging applications, it is sometimes useful to log, not only the
-actual operations that modify pages, but also the underlying Berkeley DB
-functions being executed. This form of logging can add significant bulk
-to your log, but can permit debugging application errors that are almost
-impossible to find any other way. To turn on these log messages, specify
-the --enable-debug_rop and --enable-debug_wop configuration options when
-configuring Berkeley DB. See <a href="../../ref/build_unix/conf.html">Configuring
-Berkeley DB</a> for more information.
-<h3>Extracting Committed Transactions and Transaction Status</h3>
-<p>Sometimes it is useful to use the human-readable log output to determine
-which transactions committed and aborted. The awk script, commit.awk,
-found in the db_printlog directory of the Berkeley DB distribution allows you
-to do just that. The command:
-<p><blockquote><pre>awk -f commit.awk log_output</pre></blockquote>
-where log_output is the output of db_printlog will display a list of
-the transaction IDs of all committed transactions found in the log.
-<p>If you need a complete list of both committed and aborted transactions,
-then the script status.awk will produce that. The syntax is:
-<p><blockquote><pre>awk -f status.awk log_output</pre></blockquote>
-<h3>Extracting Transaction Histories</h3>
-<p>Another useful debugging aid is to print out the complete history of a
-transaction. The awk script txn.awk, allows you to do that. The
-command line:
-<p><blockquote><pre>awk -f txn.awk TXN=txnlist log_output</pre></blockquote>
-where log_output is the output of <a href="../../utility/db_printlog.html">db_printlog</a> and txnlist is
-a comma-separated list of transaction IDs, will display all log records
-associated with the designated transaction ids.
-<h3>Extracting File Histories</h3>
-<p>The awk script fileid.awk, allows you to extract all log records that
-affect particular files. The syntax for the fileid.awk script is:
-<p><blockquote><pre>awk -f fileid.awk PGNO=fids log_output</pre></blockquote>
-<p>where log_output is the output of db_printlog and fids is a
-comma-separated list of fileids. The script will output all log
-records that reference the designated file.
-<h3>Extracting Page Histories</h3>
-<p>The awk script pgno.awk, allows you to extract all log records that
-affect particular pages. As currently designed, however, it will
-extract records of all files with the designated page number, so this
-script is most useful in conjunction with the fileid script. The syntax
-for the pgno.awk script is:
-<p><blockquote><pre>awk -f pgno.awk PGNO=pgnolist log_output</pre></blockquote>
-<p>where log_output is the output of db_printlog and pgnolist is a
-comma-separated list of page numbers. The script will output all log
-records that reference the designated page numbers.
-<h3>Other log processing tools</h3>
-<p>The awk script count.awk will print out the number of log records
-encountered that belonged to some transaction (that is the number of log
-records excluding those for checkpoints and non-transaction protected
-operations).
-<p>The script range.awk will extract a subset of a log. This is useful
-when the output of <a href="../../utility/db_printlog.html">db_printlog</a> is too large to be reasonably
-manipulated with an editor or other tool.
-<p>The syntax for range.awk is:
-<p><blockquote><pre>awk -f range.awk START_FILE=sf START_OFFSET=so END_FILE=ef END_OFFSET=eo log_output</pre></blockquote>
-<p>where the <b>sf</b> and <b>so</b> represent the log sequence number
-(LSN) of the beginning of the sublog you wish to extract and <b>ef</b>
-and <b>eo</b> represent the LSN of the end of the sublog you wish to
-extract.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/debug/runtime.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/debug/common.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/debug/runtime.html b/bdb/docs/ref/debug/runtime.html
deleted file mode 100644
index 40fec7e82dd..00000000000
--- a/bdb/docs/ref/debug/runtime.html
+++ /dev/null
@@ -1,47 +0,0 @@
-<!--$Id: runtime.so,v 10.16 2000/12/01 20:15:25 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Run-time error information</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Debugging</dl></h3></td>
-<td width="1%"><a href="../../ref/debug/compile.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/debug/printlog.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Run-time error information</h1>
-<p>Normally, when an error occurs in the Berkeley DB library, an integer value
-(either a Berkeley DB specific value, or a system <b>errno</b> value) is
-returned by the function. In some cases, however, this value may be
-insufficient to completely describe the cause of the error, especially
-during initial application debugging.
-<p>There are four interfaces intended to provide applications with
-additional run-time error information. They are
-<a href="../../api_c/env_set_errcall.html">DBENV-&gt;set_errcall</a>, <a href="../../api_c/env_set_errfile.html">DBENV-&gt;set_errfile</a>,
-<a href="../../api_c/env_set_errpfx.html">DBENV-&gt;set_errpfx</a> and <a href="../../api_c/env_set_verbose.html">DBENV-&gt;set_verbose</a>.
-<p>If the environment is configured with these interfaces, many Berkeley DB errors
-will result in additional information being written to a file or passed
-as an argument to an application function.
-<p>The Berkeley DB error reporting facilities do not slow performance or
-significantly increase application size, and may be run during normal
-operation as well as during debugging. Where possible, we recommend that
-these options always be configured and the output saved in the filesystem.
-We have found that that this often saves time when debugging installation
-or other system integration problems.
-<p>In addition, there are three routines to assist applications in
-displaying their own error messages: <a href="../../api_c/env_strerror.html">db_strerror</a>,
-<a href="../../api_c/db_err.html">DBENV-&gt;err</a> and <a href="../../api_c/db_err.html">DBENV-&gt;errx</a>. The first is a superset of
-the ANSI C strerror interface, and returns a descriptive string for
-any error return from the Berkeley DB library. The <a href="../../api_c/db_err.html">DBENV-&gt;err</a> and
-<a href="../../api_c/db_err.html">DBENV-&gt;errx</a> functions use the error message configuration options
-described above to format and display error messages to appropriate
-output devices.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/debug/compile.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/debug/printlog.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/distrib/layout.html b/bdb/docs/ref/distrib/layout.html
deleted file mode 100644
index b851f62a04c..00000000000
--- a/bdb/docs/ref/distrib/layout.html
+++ /dev/null
@@ -1,74 +0,0 @@
-<!--$Id: layout.so,v 10.25 2000/12/22 15:35:32 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Source code layout</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Distribution</dl></h3></td>
-<td width="1%"><a href="../../ref/test/faq.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/refs/refs.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Source code layout</h1>
-<p><table border=1 align=center>
-<tr><th>Directory</th><th>Description</th></tr>
-<tr><td>LICENSE</td><td>Berkeley DB Copyright</td></tr>
-<tr><td>btree</td><td>Btree access method source code.</td></tr>
-<tr><td>build_unix</td><td>UNIX build directory.</td></tr>
-<tr><td>build_vxworks</td><td>VxWorks build directory.</td></tr>
-<tr><td>build_win32</td><td>Windows build directory.</td></tr>
-<tr><td>clib</td><td>C library replacement functions.</td></tr>
-<tr><td>common</td><td>Common Berkeley DB functions.</td></tr>
-<tr><td>cxx</td><td>C++ API.</td></tr>
-<tr><td>db</td><td>Berkeley DB database interfaces.</td></tr>
-<tr><td>db185</td><td>Berkeley DB version 1.85 compatibility API</td></tr>
-<tr><td>db_archive</td><td>The db_archive utility.</td></tr>
-<tr><td>db_checkpoint</td><td>The db_checkpoint utility.</td></tr>
-<tr><td>db_deadlock</td><td>The db_deadlock utility.</td></tr>
-<tr><td>db_dump</td><td>The db_dump utility.</td></tr>
-<tr><td>db_dump185</td><td>The db_dump185 utility.</td></tr>
-<tr><td>db_load</td><td>The db_load utility.</td></tr>
-<tr><td>db_printlog</td><td>The db_printlog debugging utility.</td></tr>
-<tr><td>db_recover</td><td>The db_recover utility.</td></tr>
-<tr><td>db_stat</td><td>The db_stat utility.</td></tr>
-<tr><td>db_upgrade</td><td>The db_upgrade utility.</td></tr>
-<tr><td>db_verify</td><td>The db_verify utility.</td></tr>
-<tr><td>dbm</td><td>The dbm/ndbm compatibility APIs.</td></tr>
-<tr><td>dist</td><td>Berkeley DB administration/distribution tools.</td></tr>
-<tr><td>docs</td><td>Documentation.</td></tr>
-<tr><td>env</td><td>Berkeley DB environment interfaces.</td></tr>
-<tr><td>examples_c</td><td>C API example programs.</td></tr>
-<tr><td>examples_cxx</td><td>C++ API example programs.</td></tr>
-<tr><td>examples_java</td><td>Java API example programs.</td></tr>
-<tr><td>hash</td><td>Hash access method.</td></tr>
-<tr><td>hsearch</td><td>The hsearch compatibility API.</td></tr>
-<tr><td>include</td><td>Include files.</td></tr>
-<tr><td>java</td><td>Java API.</td></tr>
-<tr><td>libdb_java</td><td>The libdb_java shared library.</td></tr>
-<tr><td>lock</td><td>Lock manager.</td></tr>
-<tr><td>log</td><td>Log manager.</td></tr>
-<tr><td>mp</td><td>Shared memory buffer pool.</td></tr>
-<tr><td>mutex</td><td>Mutexes.</td></tr>
-<tr><td>os</td><td>POSIX 1003.1 operating-system specific functionality.</td></tr>
-<tr><td>os_vxworks</td><td>VxWorks operating-system specific functionality.</td></tr>
-<tr><td>os_win32</td><td>Windows operating-system specific functionality.</td></tr>
-<tr><td>perl.BerkeleyDB</td><td>BerkeleyDB Perl module.</td></tr>
-<tr><td>perl.DB_File</td><td>DB_File Perl module.</td></tr>
-<tr><td>qam</td><td>Queue access method source code.</td></tr>
-<tr><td>rpc_client</td><td>RPC client interface.</td></tr>
-<tr><td>rpc_server</td><td>RPC server utility.</td></tr>
-<tr><td>tcl</td><td>Tcl API.</td></tr>
-<tr><td>test</td><td>Test suite.</td></tr>
-<tr><td>txn</td><td>Transaction manager.</td></tr>
-<tr><td>xa</td><td>X/Open Distributed Transaction Processing XA interface.</td></tr>
-</table>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/test/faq.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/refs/refs.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/dumpload/format.html b/bdb/docs/ref/dumpload/format.html
deleted file mode 100644
index fd52e530a02..00000000000
--- a/bdb/docs/ref/dumpload/format.html
+++ /dev/null
@@ -1,69 +0,0 @@
-<!--$Id: format.so,v 10.14 2000/03/22 21:56:11 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Dump output formats</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Dumping and Reloading</dl></h3></td>
-<td width="1%"><a href="../../ref/dumpload/utility.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/dumpload/text.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Dump output formats</h1>
-<p>There are two output formats used by <a href="../../utility/db_dump.html">db_dump</a> and <a href="../../utility/db_dump.html">db_dump185</a>.
-<p>In both output formats, the first few lines of the output contain header
-information describing the underlying access method, filesystem page size
-and other bookkeeping information.
-<p>The header information starts with a single line VERSION=N, where N is
-the version number of the dump output format.
-<p>The header information is then output in name=value pairs, where name may
-be any of the keywords listed in the <a href="../../utility/db_load.html">db_load</a> manual page, and
-value will be its value. While this header information can be manually
-edited before the database is reloaded, there is rarely any reason to do
-so, as all of this information can also be specified or overridden by
-command-line arguments to <a href="../../utility/db_load.html">db_load</a>.
-<p>The header information ends with single line HEADER=END.
-<p>Following the header information are the key/data pairs from the database.
-If the database being dumped is of type Btree or Hash, or if the
-<b>-k</b> option as been specified, the output will be paired lines of
-text, where the first line of the pair is the key item, and the second
-line of the pair is its corresponding data item. If the database being
-dumped is of type Queue or Recno and the <b>-k</b> has not been
-specified, the output will be lines of text, where each line is the next
-data item for the database. Each of these lines will be preceded by a
-single space.
-<p>If the <b>-p</b> option to <a href="../../utility/db_dump.html">db_dump</a> or <a href="../../utility/db_dump.html">db_dump185</a> was
-specified, the key/data lines will consist of single characters
-representing any characters from the database that are <i>printing
-characters</i> and backslash (<b>\</b>) escaped characters
-for any that were not. Backslash characters appearing in the output mean
-one of two things: if the backslash character precedes another backslash
-character, it means that a literal backslash character occurred in the
-key or data item. If the backslash character precedes any other
-character, the next two characters must be interpreted as hexadecimal
-specification of a single character, e.g., <b>\0a</b> is
-a newline character in the ASCII character set.
-<p>Although some care should be exercised, it is perfectly reasonable to use
-standard text editors and tools to edit databases dumped using the
-<b>-p</b> option before re-loading them using the <a href="../../utility/db_load.html">db_load</a>
-utility.
-<p>Note that the definition of a printing character may vary from system to
-system, and so database representations created using the <b>-p</b>
-option may be less portable than those created without it.
-<p>If the <b>-p</b> option to <a href="../../utility/db_dump.html">db_dump</a> or <a href="../../utility/db_dump.html">db_dump185</a> is
-not specified, each output line will consist of paired hexadecimal values,
-e.g., the line <b>726f6f74</b> is the string <b>root</b> in the ASCII
-character set.
-<p>In all output formats, the key and data items are ended by a single line
-DATA=END.
-<p>Where multiple databases have been dumped from a file, the overall output
-will repeat, i.e., a new set of headers and a new set of data items.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/dumpload/utility.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/dumpload/text.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/dumpload/text.html b/bdb/docs/ref/dumpload/text.html
deleted file mode 100644
index 569980a1957..00000000000
--- a/bdb/docs/ref/dumpload/text.html
+++ /dev/null
@@ -1,32 +0,0 @@
-<!--$Id: text.so,v 10.14 2000/12/04 20:49:18 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Loading text into databases</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Dumping and Reloading</dl></h3></td>
-<td width="1%"><a href="../../ref/dumpload/format.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/install/file.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Loading text into databases</h1>
-<p>The <a href="../../utility/db_load.html">db_load</a> utility can be used to load text into databases.
-The <b>-T</b> option permits non-database applications to create
-flat-text files that are then loaded into databases for fast,
-highly-concurrent access. For example, the following command loads the
-standard UNIX <b>/etc/passwd</b> file into a database, with the login
-name as the key item and the entire password entry as the data item:
-<p><blockquote><pre>awk -F: '{print $1; print $0}' &lt; /etc/passwd |\
- sed 's/\\/\\\\/g' | db_load -T -t hash passwd.db</pre></blockquote>
-<p>Note that backslash characters naturally occurring in the text are escaped
-to avoid interpretation as escape characters by <a href="../../utility/db_load.html">db_load</a>.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/dumpload/format.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/install/file.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/dumpload/utility.html b/bdb/docs/ref/dumpload/utility.html
deleted file mode 100644
index f9cb51c11a9..00000000000
--- a/bdb/docs/ref/dumpload/utility.html
+++ /dev/null
@@ -1,45 +0,0 @@
-<!--$Id: utility.so,v 10.15 2000/12/04 20:49:18 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: The db_dump and db_load utilities</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Dumping and Reloading</dl></h3></td>
-<td width="1%"><a href="../../ref/sendmail/intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/dumpload/format.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>The db_dump and db_load utilities</h1>
-<p>There are three utilities used for dumping and loading Berkeley DB
-databases: <a href="../../utility/db_dump.html">db_dump</a>, <a href="../../utility/db_dump.html">db_dump185</a> and <a href="../../utility/db_load.html">db_load</a>.
-<p>The <a href="../../utility/db_dump.html">db_dump</a> and <a href="../../utility/db_dump.html">db_dump185</a> utilities dump Berkeley DB
-databases into a flat-text representation of the data that can
-be read by <a href="../../utility/db_load.html">db_load</a>. The only difference between them
-is that <a href="../../utility/db_dump.html">db_dump</a> reads Berkeley DB version 2 and greater
-database formats, while <a href="../../utility/db_dump.html">db_dump185</a> reads Berkeley DB version
-1.85 and 1.86 database formats.
-<p>The <a href="../../utility/db_load.html">db_load</a> utility reads either the output format used
-by the dump utilities or, optionally, a flat-text representation
-created using other tools, and stores it into a Berkeley DB database.
-<p>Dumping and reloading Hash databases that use user-defined hash functions
-will result in new databases that use the default hash function. While
-using the default hash function may not be optimal for the new database,
-it will continue to work correctly.
-<p>Dumping and reloading Btree databases that use user-defined prefix or
-comparison functions will result in new databases that use the default
-prefix and comparison functions. In which case it is quite likely that
-applications will be unable to retrieve records, and possible that the
-load process itself will fail.
-<p>The only available workaround for either Hash or Btree databases is to
-modify the sources for the <a href="../../utility/db_load.html">db_load</a> utility to load the database
-using the correct hash, prefix and comparison functions.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/sendmail/intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/dumpload/format.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/env/create.html b/bdb/docs/ref/env/create.html
deleted file mode 100644
index 374c7a6e005..00000000000
--- a/bdb/docs/ref/env/create.html
+++ /dev/null
@@ -1,73 +0,0 @@
-<!--$Id: create.so,v 10.23 2000/12/04 18:05:41 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Creating an Environment</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Environment</dl></h3></td>
-<td width="1%"><a href="../../ref/env/intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/env/naming.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Creating an Environment</h1>
-<p>The <a href="../../api_c/env_open.html">DBENV-&gt;open</a> function is the standard function for creating or
-joining a database environment. Transaction-protected or multi-process
-applications should call <a href="../../api_c/env_open.html">DBENV-&gt;open</a> before making any other calls
-to the Berkeley DB library. Applications must obtain an environment handle from
-the <a href="../../api_c/env_create.html">db_env_create</a> function before calling <a href="../../api_c/env_open.html">DBENV-&gt;open</a>.
-There are a large number of options that you can set to customize
-<a href="../../api_c/env_open.html">DBENV-&gt;open</a> for your environment. These options fall into four
-broad categories:
-<p><dl compact>
-<p><dt>Subsystem Initialization:<dd>These flags indicate which Berkeley DB subsystems will be initialized for the
-environment, and, what operations will happen automatically when
-databases are accessed within the environment. The flags include
-<a href="../../api_c/env_open.html#DB_JOINENV">DB_JOINENV</a>, <a href="../../api_c/env_open.html#DB_INIT_CDB">DB_INIT_CDB</a>, <a href="../../api_c/env_open.html#DB_INIT_LOCK">DB_INIT_LOCK</a>,
-<a href="../../api_c/env_open.html#DB_INIT_LOG">DB_INIT_LOG</a>, <a href="../../api_c/env_open.html#DB_INIT_MPOOL">DB_INIT_MPOOL</a> and <a href="../../api_c/env_open.html#DB_INIT_TXN">DB_INIT_TXN</a>.
-The <a href="../../api_c/env_open.html#DB_INIT_CDB">DB_INIT_CDB</a> flag does initialization for Berkeley DB Concurrent Data Store
-applications, see <a href="../../ref/cam/intro.html">Building Berkeley DB Concurrent Data Store
-applications</a> for more information. The rest of the flags initialize
-a single subsystem, e.g., when <a href="../../api_c/env_open.html#DB_INIT_LOCK">DB_INIT_LOCK</a> is specified,
-applications reading and writing databases opened in this environment
-will be using locking to ensure that they do not overwrite each other's
-changes.
-<p><dt>Recovery options:<dd>These flags indicate what recovery is to be performed on the environment
-before it is opened for normal use, and include <a href="../../api_c/env_open.html#DB_RECOVER">DB_RECOVER</a> and
-<a href="../../api_c/env_open.html#DB_RECOVER_FATAL">DB_RECOVER_FATAL</a>.
-<p><dt>Naming options:<dd>These flags modify how file naming happens in the environment, and include
-<a href="../../api_c/env_open.html#DB_USE_ENVIRON">DB_USE_ENVIRON</a> and <a href="../../api_c/env_open.html#DB_USE_ENVIRON_ROOT">DB_USE_ENVIRON_ROOT</a>.
-<p><dt>Miscellaneous:<dd>Finally, there are a number of miscellaneous flags such as <a href="../../api_c/env_open.html#DB_CREATE">DB_CREATE</a>
-which causes underlying files to be created as necessary. See the
-<a href="../../api_c/env_open.html">DBENV-&gt;open</a> manual pages for further information.
-</dl>
-<p>Most applications either specify only the <a href="../../api_c/env_open.html#DB_INIT_MPOOL">DB_INIT_MPOOL</a> flag or
-they specify all four subsystem initialization flags
-(<a href="../../api_c/env_open.html#DB_INIT_MPOOL">DB_INIT_MPOOL</a>, <a href="../../api_c/env_open.html#DB_INIT_LOCK">DB_INIT_LOCK</a>, <a href="../../api_c/env_open.html#DB_INIT_LOG">DB_INIT_LOG</a> and
-<a href="../../api_c/env_open.html#DB_INIT_TXN">DB_INIT_TXN</a>). The former configuration is for applications that
-simply want to use the basic Access Method interfaces with a shared
-underlying buffer pool, but don't care about recoverability after
-application or system failure. The latter is for applications that need
-recoverability. There are situations where other combinations of the
-initialization flags make sense, but they are rare.
-<p>The <a href="../../api_c/env_open.html#DB_RECOVER">DB_RECOVER</a> flag is specified by applications that want to
-perform any necessary database recovery when they start running, i.e., if
-there was a system or application failure the last time they ran, they
-want the databases to be made consistent before they start running again.
-It is not an error to specify this flag when no recovery needs to be
-done.
-<p>The <a href="../../api_c/env_open.html#DB_RECOVER_FATAL">DB_RECOVER_FATAL</a> flag is more special-purpose. It performs
-catastrophic database recovery, and normally requires that some initial
-arrangements be made, i.e., archived log files be brought back into the
-filesystem. Applications should not normally specify this flag. Instead,
-under these rare conditions, the <a href="../../utility/db_recover.html">db_recover</a> utility should be
-used.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/env/intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/env/naming.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/env/error.html b/bdb/docs/ref/env/error.html
deleted file mode 100644
index 1a79d8fe550..00000000000
--- a/bdb/docs/ref/env/error.html
+++ /dev/null
@@ -1,57 +0,0 @@
-<!--$Id: error.so,v 10.13 2001/01/11 15:23:14 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Error support</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Environment</dl></h3></td>
-<td width="1%"><a href="../../ref/env/open.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/cam/intro.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Error support</h1>
-<p>Berkeley DB offers programmatic support for displaying error return values.
-The <a href="../../api_c/env_strerror.html">db_strerror</a> interface returns a pointer to the error
-message corresponding to any Berkeley DB error return, similar to the ANSI C
-strerror interface, but able to handle both system error returns and
-Berkeley DB specific return values.
-<p>For example:
-<p><blockquote><pre>int ret;
-if ((ret = dbenv-&gt;set_cachesize(dbenv, 0, 32 * 1024)) != 0) {
- fprintf(stderr, "set_cachesize failed: %s\n", db_strerror(ret));
- return (1);
-}</pre></blockquote>
-<p>There are also two additional error functions, <a href="../../api_c/db_err.html">DBENV-&gt;err</a> and
-<a href="../../api_c/db_err.html">DBENV-&gt;errx</a>. These functions work like the ANSI C printf
-interface, taking a printf-style format string and argument list, and
-writing a message constructed from the format string and arguments.
-<p>The <a href="../../api_c/db_err.html">DBENV-&gt;err</a> function appends the standard error string to the
-constructed message and the <a href="../../api_c/db_err.html">DBENV-&gt;errx</a> function does not.
-<p>Error messages can be configured always to include a prefix (e.g., the
-program name) using the <a href="../../api_c/env_set_errpfx.html">DBENV-&gt;set_errpfx</a> interface.
-<p>These functions provide simpler ways of displaying Berkeley DB error messages:
-<p><blockquote><pre>int ret;
-dbenv-&gt;set_errpfx(dbenv, argv0);
-if ((ret = dbenv-&gt;open(dbenv, home, NULL,
- DB_CREATE | DB_INIT_LOG | DB_INIT_TXN | DB_USE_ENVIRON))
- != 0) {
- dbenv-&gt;err(dbenv, ret, "open: %s", home);
- dbenv-&gt;errx(dbenv,
- "contact your system administrator: session ID was %d",
- session_id);
- return (1);
-}</pre></blockquote>
-<p>For example, if the program was called "my_app", attempting to open an
-environment home directory in "/tmp/home", and the open call returned a
-permission error, the error messages shown would look like:
-<p><blockquote><pre>my_app: open: /tmp/home: Permission denied.
-my_app: contact your system administrator: session ID was 2</pre></blockquote>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/env/open.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/cam/intro.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/env/intro.html b/bdb/docs/ref/env/intro.html
deleted file mode 100644
index a555c2f0f9e..00000000000
--- a/bdb/docs/ref/env/intro.html
+++ /dev/null
@@ -1,56 +0,0 @@
-<!--$Id: intro.so,v 10.25 2000/03/18 21:43:12 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Introduction</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Environment</dl></h3></td>
-<td width="1%"><a href="../../ref/arch/utilities.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/env/create.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Introduction</h1>
-<p>A Berkeley DB environment is an encapsulation of one or more databases, log
-files and shared information about the database environment such as shared
-memory buffer cache pages.
-<p>The simplest way to administer a Berkeley DB application environment is to
-create a single <b>home</b> directory that stores the files for the
-applications that will share the environment. The environment home
-directory must be created before any Berkeley DB applications are run. Berkeley DB
-itself never creates the environment home directory. The environment can
-then be identified by the name of that directory.
-<p>An environment may be shared by any number of applications as well as by
-any number of threads within the applications. It is possible for an
-environment to include resources from other directories on the system,
-and applications often choose to distribute resources to other directories
-or disks for performance or other reasons. However, by default, the
-databases, shared regions (the locking, logging, memory pool, and
-transaction shared memory areas) and log files will be stored in a single
-directory hierarchy.
-<p>It is important to realize that all applications sharing a database
-environment implicitly trust each other. They have access to each other's
-data as it resides in the shared regions and they will share resources
-such as buffer space and locks. At the same time, any applications using
-the same databases <b>must</b> share an environment if consistency is
-to be maintained between them.
-<p>The Berkeley DB environment is created and described by the <a href="../../api_c/env_create.html">db_env_create</a>
-and <a href="../../api_c/env_open.html">DBENV-&gt;open</a> interfaces. In situations where customization is
-desired, such as storing log files on a separate disk drive, applications
-must describe the customization by either creating an environment
-configuration file in the environment home directory or by arguments
-passed to the <a href="../../api_c/env_open.html">DBENV-&gt;open</a> interface. See the documentation on that
-function for details on this procedure.
-<p>Once an environment has been created, database files specified using
-relative pathnames will be named relative to the home directory. Using
-pathnames relative to the home directory allows the entire environment
-to be easily moved to facilitate restoring and recovering a database in
-a different directory or on a different system.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/arch/utilities.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/env/create.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/env/naming.html b/bdb/docs/ref/env/naming.html
deleted file mode 100644
index fd575396210..00000000000
--- a/bdb/docs/ref/env/naming.html
+++ /dev/null
@@ -1,145 +0,0 @@
-<!--$Id: naming.so,v 10.36 2001/01/09 15:36:10 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: File naming</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Environment</dl></h3></td>
-<td width="1%"><a href="../../ref/env/create.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/env/security.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>File naming</h1>
-<p>The most important task of the environment is to structure file naming
-within Berkeley DB.
-<p>Each of the locking, logging, memory pool and transaction subsystems of
-Berkeley DB require shared memory regions, backed by the filesystem. Further,
-cooperating applications (or multiple invocations of the same application)
-must agree on the location of the shared memory regions and other files
-used by the Berkeley DB subsystems, the log files used by the logging subsystem,
-and, of course, the data files. Although it is possible to specify full
-pathnames to all Berkeley DB functions, this is cumbersome and requires
-that applications be recompiled when database files are moved.
-<p>Applications are normally expected to specify a single directory home for
-their database. This can be done easily in the call to <a href="../../api_c/env_open.html">DBENV-&gt;open</a>
-by specifying a value for the <b>db_home</b> argument. There are more
-complex configurations where it may be desirable to override
-<b>db_home</b> or provide supplementary path information.
-<h3>Specifying file naming to Berkeley DB</h3>
-<p>The following describes the possible ways in which file naming information
-may be specified to the Berkeley DB library. The specific circumstances and
-order in which these ways are applied are described in a subsequent
-paragraph.
-<p><dl compact>
-<p><dt><b><a name="db_home">db_home</a></b><dd>If the <b>db_home</b> argument to <a href="../../api_c/env_open.html">DBENV-&gt;open</a> is non-NULL, its
-value may be used as the database home, and files named relative to its
-path.
-<p><dt><a name="DB_HOME">DB_HOME</a><dd>If the DB_HOME environment variable is set when <a href="../../api_c/env_open.html">DBENV-&gt;open</a> is
-called, its value may be used as the database home, and files named
-relative to its path.
-<p>The DB_HOME environment variable is intended to permit users and system
-administrators to override application and installation defaults, e.g.:
-<p><blockquote><pre>env DB_HOME=/database/my_home application</pre></blockquote>
-<p>Application writers are encouraged to support the <b>-h</b> option
-found in the supporting Berkeley DB utilities to let users specify a database
-home.
-<p><dt>DB_ENV methods<dd>There are three DB_ENV methods that affect file naming. The
-<a href="../../api_c/env_set_data_dir.html">DBENV-&gt;set_data_dir</a> function specifies a directory to search for database
-files. The <a href="../../api_c/env_set_lg_dir.html">DBENV-&gt;set_lg_dir</a> function specifies a directory in which to
-create logging files. The <a href="../../api_c/env_set_tmp_dir.html">DBENV-&gt;set_tmp_dir</a> function specifies a
-directory in which to create backing temporary files. These methods are
-intended to permit applications to customize file location for a database.
-For example, an application writer can place data files and log files in
-different directories, or instantiate a new log directory each time the
-application runs.
-<p><dt><a name="DB_CONFIG">DB_CONFIG</a><dd>The same information specified to the above DB_ENV methods may also
-be specified using a configuration file. If an environment home directory
-has been specified (either by the application specifying a non-NULL
-<b>db_home</b> argument to <a href="../../api_c/env_open.html">DBENV-&gt;open</a>, or by the application
-setting the DB_USE_ENVIRON or DB_USE_ENVIRON_ROOT flags and the DB_HOME
-environment variable being set), any file named <b>DB_CONFIG</b> in the
-database home directory will be read for lines of the format <b>NAME
-VALUE</b>.
-<p>The characters delimiting the two parts of the entry may be one or more
-whitespace characters, and trailing whitespace characters are discarded.
-All empty lines or lines whose first character is a whitespace or hash
-(<b>#</b>) character will be ignored. Each line must specify both
-the NAME and the VALUE of the pair. The specific NAME VALUE pairs are
-documented in the manual <a href="../../api_c/env_set_data_dir.html">DBENV-&gt;set_data_dir</a>,
-<a href="../../api_c/env_set_lg_dir.html">DBENV-&gt;set_lg_dir</a> and <a href="../../api_c/env_set_tmp_dir.html">DBENV-&gt;set_tmp_dir</a> pages.
-<p>The DB_CONFIG configuration file is intended to permit systems to
-customize file location for an environment independent of applications
-using that database. For example, a database administrator can move the
-database log and data files to a different location without application
-recompilation.
-</dl>
-<h3>File name resolution in Berkeley DB</h3>
-<p>The following describes the specific circumstances and order in which the
-different ways of specifying file naming information are applied. Berkeley DB
-file name processing proceeds sequentially through the following steps:
-<p><dl compact>
-<p><dt>absolute pathnames<dd>If the file name specified to a Berkeley DB function is an absolute pathname,
-that file name is used without modification by Berkeley DB.
-<p>On UNIX systems, an absolute pathname is defined as any pathname that
-begins with a leading slash (<b>/</b>).
-<p>On Windows systems, an absolute pathname is any pathname that begins with
-a leading slash or leading backslash (<b>\</b>), or any
-pathname beginning with a single alphabetic character, a colon and a
-leading slash or backslash, e.g., <b>C:/tmp</b>.
-<p><dt>DB_ENV methods, DB_CONFIG<dd>If a relevant configuration string (e.g., set_data_dir), is specified
-either by calling a DB_ENV method or as a line in the DB_CONFIG
-configuration file, the VALUE from the <b>NAME VALUE</b> pair is
-prepended to the current file name. If the resulting file name is an
-absolute pathname, the file name is used without further modification by
-Berkeley DB.
-<p><dt><b>db_home</b><dd>If the application specified a non-NULL <b>db_home</b> argument to
-<a href="../../api_c/env_open.html">DBENV-&gt;open</a> its value is prepended to the current file name. If
-the resulting file name is an absolute pathname, the file name is used
-without further modification by Berkeley DB.
-<p><dt>DB_HOME<dd>If the <b>db_home</b> argument is null, the DB_HOME environment variable
-was set and the application has set the appropriate DB_USE_ENVIRON or
-DB_USE_ENVIRON_ROOT environment variable, its value is prepended to the
-current file name. If the resulting file name is an absolute pathname,
-the file name is used without further modification by Berkeley DB.
-<p><dt>(nothing)<dd>Finally, all file names are interpreted relative to the current working
-directory of the process.
-</dl>
-<p>The common model for a Berkeley DB environment is one where only the DB_HOME
-environment variable, or the <b>db_home</b> argument, is specified. In
-this case, all data file names are relative to that directory, and all
-files created by the Berkeley DB subsystems will be created in that directory.
-<p>The more complex model for a transaction environment might be one where
-a database home is specified, using either the DB_HOME environment
-variable or the <b>db_home</b> argument to <a href="../../api_c/env_open.html">DBENV-&gt;open</a>, and then
-the data directory and logging directory are set to the relative path
-names of directories underneath the environment home.
-<h3>Examples</h3>
-Store all files in the directory <b>/a/database</b>:
-<p><blockquote><pre>DBENV-&gt;open(DBENV, "/a/database", ...);</pre></blockquote>
-Create temporary backing files in <b>/b/temporary</b>, and all other files
-in <b>/a/database</b>:
-<p><blockquote><pre>DBENV-&gt;set_tmp_dir(DBENV, "/b/temporary");
-DBENV-&gt;open(DBENV, "/a/database", ...);</pre></blockquote>
-Store data files in <b>/a/database/datadir</b>, log files in
-<b>/a/database/logdir</b>, and all other files in the directory
-<b>/a/database</b>:
-<p><blockquote><pre>DBENV-&gt;set_lg_dir("logdir");
-DBENV-&gt;set_data_dir("datadir");
-DBENV-&gt;open(DBENV, "/a/database", ...);</pre></blockquote>
-<p>Store data files in <b>/a/database/data1</b> and <b>/b/data2</b>, and
-all other files in the directory <b>/a/database</b>. Any data files
-that are created will be created in <b>/b/data2</b>, because it is the
-first DB_DATA_DIR directory specified:
-<p><blockquote><pre>DBENV-&gt;set_data_dir(DBENV, "/b/data2");
-DBENV-&gt;set_data_dir(DBENV, "data1");
-DBENV-&gt;open(DBENV, "/a/database", ...);</pre></blockquote>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/env/create.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/env/security.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/env/open.html b/bdb/docs/ref/env/open.html
deleted file mode 100644
index f13675c7365..00000000000
--- a/bdb/docs/ref/env/open.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!--$Id: open.so,v 10.14 2000/03/18 21:43:12 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Opening databases within the environment</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Environment</dl></h3></td>
-<td width="1%"><a href="../../ref/env/remote.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/env/error.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Opening databases within the environment</h1>
-<p>Once the environment has been created, database handles may be created
-and then opened within the environment. This is done by calling the
-<a href="../../api_c/db_create.html">db_create</a> interface and specifying the appropriate environment
-as an argument.
-<p>File naming, database operations and error handling will all be done as
-specified for the environment, e.g., if the <a href="../../api_c/env_open.html#DB_INIT_LOCK">DB_INIT_LOCK</a> or
-<a href="../../api_c/env_open.html#DB_INIT_CDB">DB_INIT_CDB</a> flags were specified when the environment was created
-or joined, database operations will automatically perform all necessary
-locking operations for the application.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/env/remote.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/env/error.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/env/region.html b/bdb/docs/ref/env/region.html
deleted file mode 100644
index 0dfa19672e5..00000000000
--- a/bdb/docs/ref/env/region.html
+++ /dev/null
@@ -1,66 +0,0 @@
-<!--$Id: region.so,v 10.23 2000/08/09 15:45:52 sue Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Shared Memory Regions</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Environment</dl></h3></td>
-<td width="1%"><a href="../../ref/env/security.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/env/remote.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Shared Memory Regions</h1>
-<p>Each of the Berkeley DB subsystems within an environment is described by one or
-more regions. The regions contain all of the per-process and per-thread
-shared information, including mutexes, that comprise a Berkeley DB environment.
-These regions are created in one of three areas, depending on the flags
-specified to the <a href="../../api_c/env_open.html">DBENV-&gt;open</a> function:
-<p><ol>
-<p><li>If the <a href="../../api_c/env_open.html#DB_PRIVATE">DB_PRIVATE</a> flag is specified to <a href="../../api_c/env_open.html">DBENV-&gt;open</a>, regions
-are created in per-process heap memory, i.e., memory returned by
-<b>malloc</b>(3). In this case, the Berkeley DB environment may only be
-accessed by a single process, although that process may be
-multi-threaded.
-<p><li>If the <a href="../../api_c/env_open.html#DB_SYSTEM_MEM">DB_SYSTEM_MEM</a> flag is specified to <a href="../../api_c/env_open.html">DBENV-&gt;open</a>,
-regions are created in system memory. When regions are created in system
-memory, the Berkeley DB environment may be accessed by both multiple processes
-and multiple threads within processes.
-<p>The system memory used by Berkeley DB is potentially useful past the lifetime
-of any particular process. Therefore, additional cleanup may be necessary
-after an application fails, as there may be no way for Berkeley DB to ensure
-that system resources backing the shared memory regions are returned to
-the system.
-<p>The system memory that is used is architecture-dependent. For example,
-on systems supporting X/Open-style shared memory interfaces, e.g., UNIX
-systems, the <b>shmget</b>(2) and related System V IPC interfaces are
-used. Additionally, VxWorks systems use system memory.
-In these cases, an initial segment ID must be specified by the
-application to ensure that applications do not overwrite each other's
-database environments, and so that the number of segments created does
-not grow without bound. See the <a href="../../api_c/env_set_shm_key.html">DBENV-&gt;set_shm_key</a> function for more
-information.
-<p><li>If no memory-related flags are specified to <a href="../../api_c/env_open.html">DBENV-&gt;open</a>, then
-memory backed by the filesystem is used to store the regions. On UNIX
-systems, the Berkeley DB library will use the POSIX mmap interface. If mmap is
-not available, the UNIX shmget interfaces will be used, assuming they are
-available.
-</ol>
-<p>Any files created in the filesystem to back the regions are created in
-the environment home directory specified to the <a href="../../api_c/env_open.html">DBENV-&gt;open</a> call.
-These files are named __db.###, e.g., __db.001, __db.002 and so on.
-When region files are backed by the filesystem, one file per region is
-created. When region files are backed by system memory, a single file
-will still be created, as there must be a well-known name in the
-filesystem so that multiple processes can locate the system shared memory
-that is being used by the environment.
-<p>Statistics about the shared memory regions in the environment can be
-displayed using the <b>-e</b> option to the <a href="../../utility/db_stat.html">db_stat</a> utility.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/env/security.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/env/remote.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/env/remote.html b/bdb/docs/ref/env/remote.html
deleted file mode 100644
index 3cd44a539bc..00000000000
--- a/bdb/docs/ref/env/remote.html
+++ /dev/null
@@ -1,48 +0,0 @@
-<!--$Id: remote.so,v 11.5 2000/03/18 21:43:12 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Remote filesystems</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Environment</dl></h3></td>
-<td width="1%"><a href="../../ref/env/region.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/env/open.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Remote filesystems</h1>
-<p>When regions are backed by the filesystem, it is a common error to attempt
-to create Berkeley DB environments backed by remote file systems such as the
-Network File System (NFS) or the Andrew File System (AFS). Remote
-filesystems rarely support mapping files into process memory, and even
-more rarely support correct semantics for mutexes after the attempt
-succeeds. For this reason, we strongly recommend that the database
-environment directory reside in a local filesystem.
-<p>For remote file systems that do allow system files to be mapped into
-process memory, home directories accessed via remote file systems cannot
-be used simultaneously from multiple clients. None of the commercial
-remote file systems available today implement coherent, distributed shared
-memory for remote-mounted files. As a result, different machines will
-see different versions of these shared regions and the system behavior is
-undefined.
-<p>Databases, log files and temporary files may be placed on remote
-filesystems, <b>as long as the remote filesystem fully supports
-standard POSIX filesystem semantics</b>, although the application may incur
-a performance penalty for doing so. Obviously, NFS-mounted databases
-cannot be accessed from more than one Berkeley DB environment (and therefore
-from more than one system), at a time since no Berkeley DB database may be
-accessed from more than one Berkeley DB environment at a time.
-<p><dl compact>
-<p><dt>Linux note:<dd>Some Linux releases are known to not support complete semantics for the
-POSIX fsync call on NFS-mounted filesystems. No Berkeley DB files should be
-placed on NFS-mounted filesystems on these systems.
-</dl>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/env/region.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/env/open.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/env/security.html b/bdb/docs/ref/env/security.html
deleted file mode 100644
index 84dab59b260..00000000000
--- a/bdb/docs/ref/env/security.html
+++ /dev/null
@@ -1,54 +0,0 @@
-<!--$Id: security.so,v 10.15 2000/05/23 21:12:06 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Security</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Environment</dl></h3></td>
-<td width="1%"><a href="../../ref/env/naming.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/env/region.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Security</h1>
-<p>The following are security issues that should be considered when writing
-Berkeley DB applications:
-<p><dl compact>
-<p><dt>Database environment permissions<dd>The directory used as the Berkeley DB database environment should have its
-permissions set to ensure that files in the environment are not accessible
-to users without appropriate permissions. Applications which add to the
-user's permissions (e.g., UNIX setuid or setgid applications), must be
-carefully checked to not permit illegal use of those permissions such
-as general file access in the environment directory.
-<p><dt>Environment variables<dd>Setting the <a href="../../api_c/env_open.html#DB_USE_ENVIRON">DB_USE_ENVIRON</a> and <a href="../../api_c/env_open.html#DB_USE_ENVIRON_ROOT">DB_USE_ENVIRON_ROOT</a> flags
-and allowing the use of environment variables during file naming can be
-dangerous. Setting those flags in Berkeley DB applications with additional
-permissions (e.g., UNIX setuid or setgid applications) could potentially
-allow users to read and write databases to which they would not normally
-have access.
-<p><dt>File permissions<dd>By default, Berkeley DB always creates files readable and writeable by the owner
-and the group (i.e., S_IRUSR, S_IWUSR, S_IRGRP and S_IWGRP, or octal mode
-0660 on historic UNIX systems). The group ownership of created files is
-based on the system and directory defaults, and is not further specified
-by Berkeley DB.
-<p><dt>Temporary backing files<dd>If an unnamed database is created and the cache is too small to hold the
-database in memory, Berkeley DB will create a temporary physical file to enable
-it to page the database to disk as needed. In this case, environment
-variables such as <b>TMPDIR</b> may be used to specify the location of
-that temporary file. While temporary backing files are created readable
-and writeable by the owner only (i.e., S_IRUSR and S_IWUSR, or octal mode
-0600 on historic UNIX systems), some filesystems may not sufficiently
-protect temporary files created in random directories from improper
-access. Applications storing sensitive data in unnamed databases should
-use the <a href="../../api_c/env_set_tmp_dir.html">DBENV-&gt;set_tmp_dir</a> method to specify a temporary directory
-with known permissions, to be absolutely safe.
-</dl>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/env/naming.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/env/region.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/install/file.html b/bdb/docs/ref/install/file.html
deleted file mode 100644
index 2ecb240e242..00000000000
--- a/bdb/docs/ref/install/file.html
+++ /dev/null
@@ -1,37 +0,0 @@
-<!--$Id: file.so,v 10.16 2000/12/04 18:05:42 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: File utility /etc/magic information</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a> <a name="3"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>System Installation Notes</dl></h3></td>
-<td width="1%"><a href="../../ref/dumpload/text.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/debug/intro.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>File utility /etc/magic information</h1>
-<p>The <b>file</b>(1) utility is a UNIX utility that examines and
-classifies files, based on information found in its database of file
-types, the /etc/magic file. The following information may be added
-to your system's /etc/magic file to enable <b>file</b>(1) to
-correctly identify Berkeley DB database files.
-<p>The <b>file</b>(1) utility <b>magic</b>(5) information for the
-standard System V UNIX implementation of the <b>file</b>(1) utility
-is included in the Berkeley DB distribution for both
-<a href="magic.s5.be.txt">big-endian</a> (e.g., Sparc) and
-<a href="magic.s5.le.txt">little-endian</a> (e.g., x86) architectures.
-<p>The <b>file</b>(1) utility <b>magic</b>(5) information for
-Release 3.X of Ian Darwin's implementation of the file utility (as
-distributed by FreeBSD and most Linux distributions) is included in the
-Berkeley DB distribution. This <a href="magic.txt">magic.txt</a> information
-is correct for both big-endian and little-endian architectures.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/dumpload/text.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/debug/intro.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/install/magic.s5.be.txt b/bdb/docs/ref/install/magic.s5.be.txt
deleted file mode 100644
index 1b8fcc1089e..00000000000
--- a/bdb/docs/ref/install/magic.s5.be.txt
+++ /dev/null
@@ -1,87 +0,0 @@
-# Berkeley DB
-# $Id: magic.s5.be.txt,v 10.4 2000/07/07 21:02:22 krinsky Exp $
-#
-# System V /etc/magic files: big-endian version.
-#
-# Hash 1.85/1.86 databases store metadata in network byte order.
-# Btree 1.85/1.86 databases store the metadata in host byte order.
-# Hash and Btree 2.X and later databases store the metadata in host byte order.
-
-0 long 0x00053162 Berkeley DB 1.85/1.86 (Btree,
->4 long 0x00000002 version 2,
->4 long 0x00000003 version 3,
->0 long 0x00053162 native byte-order)
-
-0 long 0x62310500 Berkeley DB 1.85/1.86 (Btree,
->4 long 0x02000000 version 2,
->4 long 0x03000000 version 3,
->0 long 0x62310500 little-endian)
-
-12 long 0x00053162 Berkeley DB (Btree,
->16 long 0x00000004 version 4,
->16 long 0x00000005 version 5,
->16 long 0x00000006 version 6,
->16 long 0x00000007 version 7,
->16 long 0x00000008 version 8,
->16 long 0x00000009 version 9,
->12 long 0x00053162 native byte-order)
-
-12 long 0x62310500 Berkeley DB (Btree,
->16 long 0x04000000 version 4,
->16 long 0x05000000 version 5,
->16 long 0x06000000 version 6,
->16 long 0x07000000 version 7,
->16 long 0x08000000 version 8,
->16 long 0x09000000 version 9,
->12 long 0x62310500 little-endian)
-
-0 long 0x00061561 Berkeley DB
->4 long >2 1.86
->4 long <3 1.85
->0 long 0x00061561 (Hash,
->4 long 2 version 2,
->4 long 3 version 3,
->8 long 0x000004D2 little-endian)
->8 long 0x000010E1 native byte-order)
-
-12 long 0x00061561 Berkeley DB (Hash,
->16 long 0x00000004 version 4,
->16 long 0x00000005 version 5,
->16 long 0x00000006 version 6,
->16 long 0x00000007 version 7,
->16 long 0x00000008 version 8,
->16 long 0x00000009 version 9,
->12 long 0x00061561 native byte-order)
-
-12 long 0x61150600 Berkeley DB (Hash,
->16 long 0x04000000 version 4,
->16 long 0x05000000 version 5,
->16 long 0x06000000 version 6,
->16 long 0x07000000 version 7,
->16 long 0x08000000 version 8,
->16 long 0x09000000 version 9,
->12 long 0x61150600 little-endian)
-
-12 long 0x00042253 Berkeley DB (Queue,
->16 long 0x00000001 version 1,
->16 long 0x00000002 version 2,
->16 long 0x00000003 version 3,
->16 long 0x00000004 version 4,
->16 long 0x00000005 version 5,
->16 long 0x00000006 version 6,
->16 long 0x00000007 version 7,
->16 long 0x00000008 version 8,
->16 long 0x00000009 version 9,
->12 long 0x00042253 native byte-order)
-
-12 long 0x53220400 Berkeley DB (Queue,
->16 long 0x01000000 version 1,
->16 long 0x02000000 version 2,
->16 long 0x03000000 version 3,
->16 long 0x04000000 version 4,
->16 long 0x05000000 version 5,
->16 long 0x06000000 version 6,
->16 long 0x07000000 version 7,
->16 long 0x08000000 version 8,
->16 long 0x09000000 version 9,
->12 long 0x53220400 little-endian)
diff --git a/bdb/docs/ref/install/magic.s5.le.txt b/bdb/docs/ref/install/magic.s5.le.txt
deleted file mode 100644
index c8871fedf9a..00000000000
--- a/bdb/docs/ref/install/magic.s5.le.txt
+++ /dev/null
@@ -1,87 +0,0 @@
-# Berkeley DB
-# $Id: magic.s5.le.txt,v 10.4 2000/07/07 21:02:22 krinsky Exp $
-#
-# System V /etc/magic files: little-endian version.
-#
-# Hash 1.85/1.86 databases store metadata in network byte order.
-# Btree 1.85/1.86 databases store the metadata in host byte order.
-# Hash and Btree 2.X and later databases store the metadata in host byte order.
-
-0 long 0x00053162 Berkeley DB 1.85/1.86 (Btree,
->4 long 0x00000002 version 2,
->4 long 0x00000003 version 3,
->0 long 0x00053162 native byte-order)
-
-0 long 0x62310500 Berkeley DB 1.85/1.86 (Btree,
->4 long 0x02000000 version 2,
->4 long 0x03000000 version 3,
->0 long 0x62310500 big-endian)
-
-12 long 0x00053162 Berkeley DB (Btree,
->16 long 0x00000004 version 4,
->16 long 0x00000005 version 5,
->16 long 0x00000006 version 6,
->16 long 0x00000007 version 7,
->16 long 0x00000008 version 8,
->16 long 0x00000009 version 9,
->12 long 0x00053162 native byte-order)
-
-12 long 0x62310500 Berkeley DB (Btree,
->16 long 0x04000000 version 4,
->16 long 0x05000000 version 5,
->16 long 0x06000000 version 6,
->16 long 0x07000000 version 7,
->16 long 0x08000000 version 8,
->16 long 0x09000000 version 9,
->12 long 0x62310500 big-endian)
-
-0 long 0x61150600 Berkeley DB
->4 long >0x02000000 1.86
->4 long <0x03000000 1.85
->0 long 0x00061561 (Hash,
->4 long 0x02000000 version 2,
->4 long 0x03000000 version 3,
->8 long 0xD2040000 native byte-order)
->8 long 0xE1100000 big-endian)
-
-12 long 0x00061561 Berkeley DB (Hash,
->16 long 0x00000004 version 4,
->16 long 0x00000005 version 5,
->16 long 0x00000006 version 6,
->16 long 0x00000007 version 7,
->16 long 0x00000008 version 8,
->16 long 0x00000009 version 9,
->12 long 0x00061561 native byte-order)
-
-12 long 0x61150600 Berkeley DB (Hash,
->16 long 0x04000000 version 4,
->16 long 0x05000000 version 5,
->16 long 0x06000000 version 6,
->16 long 0x07000000 version 7,
->16 long 0x08000000 version 8,
->16 long 0x09000000 version 9,
->12 long 0x61150600 big-endian)
-
-12 long 0x00042253 Berkeley DB (Queue,
->16 long 0x00000001 version 1,
->16 long 0x00000002 version 2,
->16 long 0x00000003 version 3,
->16 long 0x00000004 version 4,
->16 long 0x00000005 version 5,
->16 long 0x00000006 version 6,
->16 long 0x00000007 version 7,
->16 long 0x00000008 version 8,
->16 long 0x00000009 version 9,
->12 long 0x00042253 native byte-order)
-
-12 long 0x53220400 Berkeley DB (Queue,
->16 long 0x01000000 version 1,
->16 long 0x02000000 version 2,
->16 long 0x03000000 version 3,
->16 long 0x04000000 version 4,
->16 long 0x05000000 version 5,
->16 long 0x06000000 version 6,
->16 long 0x07000000 version 7,
->16 long 0x08000000 version 8,
->16 long 0x09000000 version 9,
->12 long 0x53220400 big-endian)
diff --git a/bdb/docs/ref/install/magic.txt b/bdb/docs/ref/install/magic.txt
deleted file mode 100644
index c28329f4078..00000000000
--- a/bdb/docs/ref/install/magic.txt
+++ /dev/null
@@ -1,56 +0,0 @@
-# Berkeley DB
-# $Id: magic.txt,v 10.10 2000/07/07 21:02:22 krinsky Exp $
-#
-# Ian Darwin's file /etc/magic files: big/little-endian version.
-#
-# Hash 1.85/1.86 databases store metadata in network byte order.
-# Btree 1.85/1.86 databases store the metadata in host byte order.
-# Hash and Btree 2.X and later databases store the metadata in host byte order.
-
-0 long 0x00061561 Berkeley DB
->8 belong 4321
->>4 belong >2 1.86
->>4 belong <3 1.85
->>4 belong >0 (Hash, version %d, native byte-order)
->8 belong 1234
->>4 belong >2 1.86
->>4 belong <3 1.85
->>4 belong >0 (Hash, version %d, little-endian)
-
-0 belong 0x00061561 Berkeley DB
->8 belong 4321
->>4 belong >2 1.86
->>4 belong <3 1.85
->>4 belong >0 (Hash, version %d, big-endian)
->8 belong 1234
->>4 belong >2 1.86
->>4 belong <3 1.85
->>4 belong >0 (Hash, version %d, native byte-order)
-
-0 long 0x00053162 Berkeley DB 1.85/1.86
->4 long >0 (Btree, version %d, native byte-order)
-0 belong 0x00053162 Berkeley DB 1.85/1.86
->4 belong >0 (Btree, version %d, big-endian)
-0 lelong 0x00053162 Berkeley DB 1.85/1.86
->4 lelong >0 (Btree, version %d, little-endian)
-
-12 long 0x00061561 Berkeley DB
->16 long >0 (Hash, version %d, native byte-order)
-12 belong 0x00061561 Berkeley DB
->16 belong >0 (Hash, version %d, big-endian)
-12 lelong 0x00061561 Berkeley DB
->16 lelong >0 (Hash, version %d, little-endian)
-
-12 long 0x00053162 Berkeley DB
->16 long >0 (Btree, version %d, native byte-order)
-12 belong 0x00053162 Berkeley DB
->16 belong >0 (Btree, version %d, big-endian)
-12 lelong 0x00053162 Berkeley DB
->16 lelong >0 (Btree, version %d, little-endian)
-
-12 long 0x00042253 Berkeley DB
->16 long >0 (Queue, version %d, native byte-order)
-12 belong 0x00042253 Berkeley DB
->16 belong >0 (Queue, version %d, big-endian)
-12 lelong 0x00042253 Berkeley DB
->16 lelong >0 (Queue, version %d, little-endian)
diff --git a/bdb/docs/ref/intro/data.html b/bdb/docs/ref/intro/data.html
deleted file mode 100644
index e9d6ead064d..00000000000
--- a/bdb/docs/ref/intro/data.html
+++ /dev/null
@@ -1,54 +0,0 @@
-<!--$Id: data.so,v 10.1 2000/09/22 18:23:58 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: An introduction to data management</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Introduction</dl></h3></td>
-<td width="1%"><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/intro/terrain.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>An introduction to data management</h1>
-<p>Cheap, powerful computing and networking have created countless new
-applications that could not have existed a decade ago. The advent of
-the World-Wide Web, and its influence in driving the Internet into homes
-and businesses, is one obvious example. Equally important, though, is
-the from large, general-purpose desktop and server computers
-toward smaller, special-purpose devices with built-in processing and
-communications services.
-<p>As computer hardware has spread into virtually every corner of our
-lives, of course, software has followed. Software developers today are
-building applications not just for conventional desktop and server
-environments, but also for handheld computers, home appliances,
-networking hardware, cars and trucks, factory floor automation systems,
-and more.
-<p>While these operating environments are diverse, the problems that
-software engineers must solve in them are often strikingly similar. Most
-systems must deal with the outside world, whether that means
-communicating with users or controlling machinery. As a result, most
-need some sort of I/O system. Even a simple, single-function system
-generally needs to handle multiple tasks, and so needs some kind of
-operating system to schedule and manage control threads. Also, many
-computer systems must store and retrieve data to track history, record
-configuration settings, or manage access.
-<p>Data management can be very simple. In some cases, just recording
-configuration in a flat text file is enough. More often, though,
-programs need to store and search a large amount of data, or
-structurally complex data. Database management systems are tools that
-programmers can use to do this work quickly and efficiently using
-off-the-shelf software.
-<p>Of course, database management systems have been around for a long time.
-Data storage is a problem dating back to the earliest days of computing.
-Software developers can choose from hundreds of good,
-commercially-available database systems. The problem is selecting the
-one that best solves the problems that their applications face.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/intro/terrain.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/intro/dbis.html b/bdb/docs/ref/intro/dbis.html
deleted file mode 100644
index 10c4abd9585..00000000000
--- a/bdb/docs/ref/intro/dbis.html
+++ /dev/null
@@ -1,159 +0,0 @@
-<!--$Id: dbis.so,v 10.5 2001/01/19 17:30:29 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: What is Berkeley DB?</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Introduction</dl></h3></td>
-<td width="1%"><a href="../../ref/intro/terrain.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/intro/dbisnot.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>What is Berkeley DB?</h1>
-<p>So far, we've discussed database systems in general terms. It's time
-now to consider Berkeley DB in particular and see how it fits into the
-framework we have introduced. The key question is, what kinds of
-applications should use Berkeley DB?
-<p>Berkeley DB is an open source embedded database library that provides
-scalable, high-performance, transaction-protected data management
-services to applications. Berkeley DB provides a simple function-call API
-for data access and management.
-<p>By "open source," we mean that Berkeley DB is distributed under a license that
-conforms to the <a href="http://www.opensource.org/osd.html">Open
-Source Definition</a>. This license guarantees that Berkeley DB is freely
-available for use and redistribution in other open source products.
-<a href="http://www.sleepycat.com">Sleepycat Software</a> sells
-commercial licenses for redistribution in proprietary applications, but
-in all cases the complete source code for Berkeley DB is freely available for
-download and use.
-<p>Berkeley DB is embedded because it links directly into the application. It
-runs in the same address space as the application. As a result, no
-inter-process communication, either over the network or between
-processes on the same machine, is required for database operations.
-Berkeley DB provides a simple function-call API for a number of programming
-languages, including C, C++, Java, Perl, Tcl, Python, and PHP. All
-database operations happen inside the library. Multiple processes, or
-multiple threads in a single process, can all use the database at the
-same time as each uses the Berkeley DB library. Low-level services like
-locking, transaction logging, shared buffer management, memory
-management, and so on are all handled transparently by the library.
-<p>The library is extremely portable. It runs under almost all UNIX and
-Linux variants, Windows, and a number of embedded real-time operating
-systems. It runs on both 32-bit and 64-bit systems.
-It has been deployed on high-end
-Internet servers, desktop machines, and on palmtop computers, set-top
-boxes, in network switches, and elsewhere. Once Berkeley DB is linked into
-the application, the end user generally does not know that there's a
-database present at all.
-<p>Berkeley DB is scalable in a number of respects. The database library itself
-is quite compact (under 300 kilobytes of text space on common
-architectures), but it can manage databases up to 256 terabytes in size.
-It also supports high concurrency, with thousands of users operating on
-the same database at the same time. Berkeley DB is small enough to run in
-tightly constrained embedded systems, but can take advantage of
-gigabytes of memory and terabytes of disk on high-end server machines.
-<p>Berkeley DB generally outperforms relational and object-oriented database
-systems in embedded applications for a couple of reasons. First, because
-the library runs in the same address space, no inter-process
-communication is required for database operations. The cost of
-communicating between processes on a single machine, or among machines
-on a network, is much higher than the cost of making a function call.
-Second, because Berkeley DB uses a simple function-call interface for all
-operations, there is no query language to parse, and no execution plan
-to produce.
-<h3>Data Access Services</h3>
-<p>Berkeley DB applications can choose the storage structure that best suits the
-application. Berkeley DB supports hash tables, B-trees, simple
-record-number-based storage, and persistent queues. Programmers can
-create tables using any of these storage structures, and can mix
-operations on different kinds of tables in a single application.
-<p>Hash tables are generally good for very large databases that need
-predictable search and update times for random-access records. Hash
-tables allow users to ask, "Does this key exist?" or to fetch a record
-with a known key. Hash tables do not allow users to ask for records
-with keys that are close to a known key.
-<p>B-trees are better for range-based searches, as when the application
-needs to find all records with keys between some starting and ending
-value. B-trees also do a better job of exploiting <i>locality
-of reference</i>. If the application is likely to touch keys near each
-other at the same time, the B-trees work well. The tree structure keeps
-keys that are close together near one another in storage, so fetching
-nearby values usually doesn't require a disk access.
-<p>Record-number-based storage is natural for applications that need
-to store and fetch records, but that do not have a simple way to
-generate keys of their own. In a record number table, the record
-number is the key for the record. Berkeley DB will can generate these
-record numbers automatically.
-<p>Queues are well-suited for applications that create records, and then
-must deal with those records in creation order. A good example is
-on-line purchasing systems. Orders can enter the system at any time,
-but should generally be filled in the order in which they were placed.
-<h3>Data management services</h3>
-<p>Berkeley DB offers important data management services, including concurrency,
-transactions, and recovery. All of these services work on all of the
-storage structures.
-<p>Many users can work on the same database concurrently. Berkeley DB handles
-locking transparently, ensuring that two users working on the same
-record do not interfere with one another.
-<p>The library provides strict ACID transaction semantics. Some systems
-allow the user to relax, for example, the isolation guarantees that the
-database system makes. Berkeley DB ensures that all applications can see only
-committed updates.
-<p>Multiple operations can be grouped into a single transaction, and can
-be committed or rolled back atomically. Berkeley DB uses a technique called
-<i>two-phase locking</i> to be sure that concurrent transactions
-are isolated from one another, and a technique called
-<i>write-ahead logging</i> to guarantee that committed changes
-survive application, system, or hardware failures.
-<p>When an application starts up, it can ask Berkeley DB to run recovery.
-Recovery restores the database to a clean state, with all committed
-changes present, even after a crash. The database is guaranteed to be
-consistent and all committed changes are guaranteed to be present when
-recovery completes.
-<p>An application can specify, when it starts up, which data management
-services it will use. Some applications need fast,
-single-user, non-transactional B-tree data storage. In that case, the
-application can disable the locking and transaction systems, and will
-not incur the overhead of locking or logging. If an application needs
-to support multiple concurrent users, but doesn't need transactions, it
-can turn on locking without transactions. Applications that need
-concurrent, transaction-protected database access can enable all of the
-subsystems.
-<p>In all these cases, the application uses the same function-call API to
-fetch and update records.
-<h3>Design</h3>
-<p>Berkeley DB was designed to provide industrial-strength database services to
-application developers, without requiring them to become database
-experts. It is a classic C-library style <i>toolkit</i>, providing
-a broad base of functionality to application writers. Berkeley DB was designed
-by programmers, for programmers: its modular design surfaces simple,
-orthogonal interfaces to core services, and it provides mechanism (for
-example, good thread support) without imposing policy (for example, the
-use of threads is not required). Just as importantly, Berkeley DB allows
-developers to balance performance against the need for crash recovery
-and concurrent use. An application can use the storage structure that
-provides the fastest access to its data and can request only the degree
-of logging and locking that it needs.
-<p>Because of the tool-based approach and separate interfaces for each
-Berkeley DB subsystem, you can support a complete transaction environment for
-other system operations. Berkeley DB even allows you to wrap transactions
-around the standard UNIX file read and write operations! Further, Berkeley DB
-was designed to interact correctly with the native system's toolset, a
-feature no other database package offers. For example, Berkeley DB supports
-hot backups (database backups while the database is in use), using
-standard UNIX system utilities, e.g., dump, tar, cpio, pax or even cp.
-<p>Finally, because scripting language interfaces are available for Berkeley DB
-(notably Tcl and Perl), application writers can build incredibly powerful
-database engines with little effort. You can build transaction-protected
-database applications using your favorite scripting languages, an
-increasingly important feature in a world using CGI scripts to deliver
-HTML.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/intro/terrain.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/intro/dbisnot.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/intro/dbisnot.html b/bdb/docs/ref/intro/dbisnot.html
deleted file mode 100644
index a55fa71763e..00000000000
--- a/bdb/docs/ref/intro/dbisnot.html
+++ /dev/null
@@ -1,146 +0,0 @@
-<!--$Id: dbisnot.so,v 10.3 2000/12/14 20:52:03 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: What is Berkeley DB not?</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Introduction</dl></h3></td>
-<td width="1%"><a href="../../ref/intro/dbis.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/intro/need.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>What is Berkeley DB not?</h1>
-<p>In contrast to most other database systems, Berkeley DB provides relatively
-simple data access services.
-<p>Records in Berkeley DB are (<i>key</i>, <i>value</i>) pairs. Berkeley DB
-supports only a few logical operations on records. They are:
-<ul type=disc>
-<li>Insert a record in a table.
-<li>Delete a record from a table.
-<li>Find a record in a table by looking up its key.
-<li>Update a record that has already been found.
-</ul>
-<p>Notice that Berkeley DB never operates on the value part of a record.
-Values are simply payload, to be
-stored with keys and reliably delivered back to the application on
-demand.
-<p>Both keys and values can be arbitrary bit strings, either fixed-length
-or variable-length. As a result, programmers can put native programming
-language data structures into the database without converting them to
-a foreign record format first. Storage and retrieval are very simple,
-but the application needs to know what the structure of a key and a
-value is in advance. It cannot ask Berkeley DB, because Berkeley DB doesn't know.
-<p>This is an important feature of Berkeley DB, and one worth considering more
-carefully. On the one hand, Berkeley DB cannot provide the programmer with
-any information on the contents or structure of the values that it
-stores. The application must understand the keys and values that it
-uses. On the other hand, there is literally no limit to the data types
-that can be store in a Berkeley DB database. The application never needs to
-convert its own program data into the data types that Berkeley DB supports.
-Berkeley DB is able to operate on any data type the application uses, no
-matter how complex.
-<p>Because both keys and values can be up to four gigabytes in length, a
-single record can store images, audio streams, or other large data
-values. Large values are not treated specially in Berkeley DB. They are
-simply broken into page-sized chunks, and reassembled on demand when
-the application needs them. Unlike some other database systems, Berkeley DB
-offers no special support for binary large objects (BLOBs).
-<h3>Not a relational database</h3>
-<p>Berkeley DB is not a relational database.
-<p>First, Berkeley DB does not support SQL queries. All access to data is through
-the Berkeley DB API. Developers must learn a new set of interfaces in order
-to work with Berkeley DB. Although the interfaces are fairly simple, they are
-non-standard.
-<p>SQL support is a double-edged sword. One big advantage of relational
-databases is that they allow users to write simple declarative queries
-in a high-level language. The database system knows everything about
-the data and can carry out the command. This means that it's simple to
-search for data in new ways, and to ask new questions of the database.
-No programming is required.
-<p>On the other hand, if a programmer can predict in advance how an
-application will access data, then writing a low-level program to get
-and store records can be faster. It eliminates the overhead of query
-parsing, optimization, and execution. The programmer must understand
-the data representation, and must write the code to do the work, but
-once that's done, the application can be very fast.
-<p>Second, Berkeley DB has no notion of <i>schema</i> in the way that
-relational systems do. Schema is the structure of records in tables,
-and the relationships among the tables in the database. For example, in
-a relational system the programmer can create a record from a fixed menu
-of data types. Because the record types are declared to the system, the
-relational engine can reach inside records and examine individual values
-in them. In addition, programmers can use SQL to declare relationships
-among tables, and to create indexes on tables. Relational engines
-usually maintain these relationships and indexes automatically.
-<p>In Berkeley DB, the key and value in a record are opaque
-to Berkeley DB. They may have a rich
-internal structure, but the library is unaware of it. As a result, Berkeley DB
-cannot decompose the value part of a record into its constituent parts,
-and cannot use those parts to find values of interest. Only the
-application, which knows the data structure, can do that.
-<p>Berkeley DB does allow programmers to create indexes on tables, and to use
-those indexes to speed up searches. However, the programmer has no way
-to tell the library how different tables and indexes are related. The
-application needs to make sure that they all stay consistent. In the
-case of indexes in particular, if the application puts a new record into
-a table, it must also put a new record in the index for it. It's
-generally simple to write a single function to make the required
-updates, but it is work that relational systems do automatically.
-<p>Berkeley DB is not a relational system. Relational database systems are
-semantically rich and offer high-level database access. Compared to such
-systems, Berkeley DB is a high-performance, transactional library for record
-storage. It's possible to build a relational system on top of Berkeley DB. In
-fact, the popular MySQL relational system uses Berkeley DB for
-transaction-protected table management, and takes care of all the SQL
-parsing and execution. It uses Berkeley DB for the storage level, and provides
-the semantics and access tools.
-<h3>Not an object-oriented database</h3>
-<p>Object-oriented databases are designed for very tight integration with
-object-oriented programming languages. Berkeley DB is written entirely in the
-C programming language. It includes language bindings for C++, Java,
-and other languages, but the library has no information about the
-objects created in any object-oriented application. Berkeley DB never makes
-method calls on any application object. It has no idea what methods are
-defined on user objects, and cannot see the public or private members
-of any instance. The key and value part of all records are opaque to
-Berkeley DB.
-<p>Berkeley DB cannot automatically page in referenced objects, as some
-object-oriented databases do. The object-oriented application programmer
-must decide what records are required, and must fetch them by making
-method calls on Berkeley DB objects.
-<h3>Not a network database</h3>
-<p>Berkeley DB does not support network-style navigation among records, as
-network databases do. Records in a Berkeley DB table may move around over
-time, as new records are added to the table and old ones are deleted.
-Berkeley DB is able to do fast searches for records based on keys, but there
-is no way to create a persistent physical pointer to a record.
-Applications can only refer to records by key, not by address.
-<h3>Not a database server</h3>
-<p>Berkeley DB is not a standalone database server. It is a library, and runs in
-the address space of the application that uses it. If more than one
-application links in Berkeley DB, then all can use the same database at the
-same time; the library handles coordination among the applications, and
-guarantees that they do not interfere with one another.
-<p>Recent releases of Berkeley DB allow programmers to compile the library as a
-standalone process, and to use RPC stubs to connect to it and to carry
-out operations. However, there are some important limitations to this
-feature. The RPC stubs provide exactly the same API that the library
-itself does. There is no higher-level access provided by the standalone
-process. Tuning the standalone process is difficult, since Berkeley DB does
-no threading in the library (applications can be threaded, but the
-library never creates a thread on its own).
-<p>It is possible to build a server application that uses Berkeley DB for data
-management. For example, many commercial and open source Lightweight
-Directory Access Protocol (LDAP) servers use Berkeley DB for record storage.
-LDAP clients connect to these servers over the network. Individual
-servers make calls through the Berkeley DB API to find records and return them
-to clients. On its own, however, Berkeley DB is not a server.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/intro/dbis.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/intro/need.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/intro/distrib.html b/bdb/docs/ref/intro/distrib.html
deleted file mode 100644
index a5ff52263c2..00000000000
--- a/bdb/docs/ref/intro/distrib.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!--$Id: distrib.so,v 10.16 2000/09/22 18:23:58 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: What does the Berkeley DB distribution include?</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Introduction</dl></h3></td>
-<td width="1%"><a href="../../ref/intro/what.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/intro/where.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>What does the Berkeley DB distribution include?</h1>
-<p>The Berkeley DB distribution includes complete source code for the Berkeley DB
-library, including all three Berkeley DB products and their supporting
-utilities, as well as complete documentation in HTML format.
-<p>The distribution does not include pre-built binaries or libraries, or
-hard-copy documentation. Pre-built libraries and binaries for some
-architecture/compiler combinations are available as part of Sleepycat
-Software's Berkeley DB support services.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/intro/what.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/intro/where.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/intro/need.html b/bdb/docs/ref/intro/need.html
deleted file mode 100644
index 771dd98908c..00000000000
--- a/bdb/docs/ref/intro/need.html
+++ /dev/null
@@ -1,60 +0,0 @@
-<!--$Id: need.so,v 10.2 2000/12/08 23:59:06 mao Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Do you need Berkeley DB?</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Introduction</dl></h3></td>
-<td width="1%"><a href="../../ref/intro/dbisnot.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/intro/what.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Do you need Berkeley DB?</h1>
-<p>Berkeley DB is an ideal database system for applications that need fast,
-scalable, and reliable embedded database management. For applications
-that need different services, however, it can be a poor choice.
-<p>First, do you need the ability to access your data in ways you cannot
-predict in advance? If your users want to be able to enter SQL
-queries to perform
-complicated searches that you cannot program into your application to
-begin with, then you should consider a relational engine instead. Berkeley DB
-requires a programmer to write code in order to run a new kind of query.
-<p>On the other hand, if you can predict your data access patterns up front
--- and in particular if you need fairly simple key/value lookups -- then
-Berkeley DB is a good choice. The queries can be coded up once, and will then
-run very quickly because there is no SQL to parse and execute.
-<p>Second, are there political arguments for or against a standalone
-relational server? If you're building an application for your own use
-and have a relational system installed with administrative support
-already, it may be simpler to use that than to build and learn Berkeley DB.
-On the other hand, if you'll be shipping many copies of your application
-to customers, and don't want your customers to have to buy, install,
-and manage a separate database system, then Berkeley DB may be a better
-choice.
-<p>Third, are there any technical advantages to an embedded database? If
-you're building an application that will run unattended for long periods
-of time, or for end users who are not sophisticated administrators, then
-a separate server process may be too big a burden. It will require
-separate installation and management, and if it creates new ways for
-the application to fail, or new complexities to master in the field,
-then Berkeley DB may be a better choice.
-<p>The fundamental question is, how closely do your requirements match the
-Berkeley DB design? Berkeley DB was conceived and built to provide fast, reliable,
-transaction-protected record storage. The library itself was never
-intended to provide interactive query support, graphical reporting
-tools, or similar services that some other database systems provide. We
-have tried always to err on the side of minimalism and simplicity. By
-keeping the library small and simple, we create fewer opportunities for
-bugs to creep in, and we guarantee that the database system stays fast,
-because there is very little code to execute. If your application needs
-that set of features, then Berkeley DB is almost certainly the best choice
-for you.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/intro/dbisnot.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/intro/what.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/intro/products.html b/bdb/docs/ref/intro/products.html
deleted file mode 100644
index ce04135f03a..00000000000
--- a/bdb/docs/ref/intro/products.html
+++ /dev/null
@@ -1,69 +0,0 @@
-<!--$Id: products.so,v 10.13 2000/12/04 18:05:42 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Sleepycat Software's Berkeley DB products</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Introduction</dl></h3></td>
-<td width="1%"><a href="../../ref/intro/where.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/simple_tut/intro.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Sleepycat Software's Berkeley DB products</h1>
-<p>Sleepycat Software licenses three different products that use the Berkeley DB
-technology. Each product offers a distinct level of database support.
-It is not possible to mix-and-match products, that is, each application
-or group of applications must use the same Berkeley DB product.
-<p>All three products are included in the single Open Source distribution of
-Berkeley DB from Sleepycat Software, and building that distribution
-automatically builds all three products. Each product adds services, and
-new interfaces, to the product that precedes it in the list. As a result,
-developers can download Berkeley DB and build an application that does only
-single-user, read-only database access, and later add support for more
-users and more complex database access patterns.
-<p>Users who distribute Berkeley DB must ensure that they are licensed for the
-Berkeley DB interfaces they use. Information on licensing is available directly
-from Sleepycat Software.
-<h3>Berkeley DB Data Store</h3>
-<p>The Berkeley DB Data Store product is an embeddable, high-performance data store. It
-supports multiple concurrent threads of control to read information
-managed by Berkeley DB. When updates are required, only a single process may
-be using the database. That process may be multi-threaded, but only one
-thread of control should be allowed to update the database at any time.
-The Berkeley DB Data Store does no locking, and so provides no guarantees of correct
-behavior if more than one thread of control is updating the database at
-a time.
-<p>The Berkeley DB Data Store product includes the <a href="../../api_c/db_create.html">db_create</a> interface, the
-DB handle methods, and the methods returned by <a href="../../api_c/db_cursor.html">DB-&gt;cursor</a>.
-<p>The Berkeley DB Data Store is intended for use in single-user or read-only applications
-that can guarantee that no more than one thread of control will ever
-update the database at any time.
-<h3>Berkeley DB Concurrent Data Store</h3>
-<p>The Berkeley DB Concurrent Data Store product adds multiple-reader, single writer capabilities to
-the Berkeley DB Data Store product, supporting applications that need concurrent updates
-and do not want to implement their own locking protocols. The additional
-interfaces included with the Berkeley DB Concurrent Data Store product are <a href="../../api_c/env_create.html">db_env_create</a>, the
-<a href="../../api_c/env_open.html">DBENV-&gt;open</a> method (using the <a href="../../api_c/env_open.html#DB_INIT_CDB">DB_INIT_CDB</a> flag), and the
-<a href="../../api_c/env_close.html">DBENV-&gt;close</a> method.
-<p>Berkeley DB Concurrent Data Store is intended for applications that require occasional write access
-to a database that is largely used for reading.
-<h3>Berkeley DB Transactional Data Store</h3>
-<p>The Berkeley DB Transactional Data Store product adds full transactional support and recoverability
-to the Berkeley DB Data Store product. This product includes all of the interfaces
-in the Berkeley DB library.
-<p>Berkeley DB Transactional Data Store is intended for applications that require industrial-strength
-database services, including good performance under high-concurrency
-workloads with a mixture of readers and writers, the ability to commit
-or roll back multiple changes to the database at a single instant, and
-the guarantee that even in the event of a catastrophic system or hardware
-failure, any committed database changes will be preserved.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/intro/where.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/simple_tut/intro.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/intro/terrain.html b/bdb/docs/ref/intro/terrain.html
deleted file mode 100644
index f2a7089135c..00000000000
--- a/bdb/docs/ref/intro/terrain.html
+++ /dev/null
@@ -1,248 +0,0 @@
-<!--$Id: terrain.so,v 10.3 2000/12/14 20:52:03 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Mapping the terrain: theory and practice</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Introduction</dl></h3></td>
-<td width="1%"><a href="../../ref/intro/data.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/intro/dbis.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Mapping the terrain: theory and practice</h1>
-<p>The first step in selecting a database system is figuring out what the
-choices are. Decades of research and real-world deployment have produced
-countless systems. We need to organize them somehow to reduce the number
-of options.
-<p>One obvious way to group systems is to use the common labels that
-vendors apply to them. The buzzwords here include "network,"
-"relational," "object-oriented," and "embedded," with some
-cross-fertilization like "object-relational" and "embedded network".
-Understanding the buzzwords is important. Each has some grounding in
-theory, but has also evolved into a practical label for categorizing
-systems that work in a certain way.
-<p>All database systems, regardless of the buzzwords that apply to them,
-provide a few common services. All of them store data, for example.
-We'll begin by exploring the common services that all systems provide,
-and then examine the differences among the different kinds of systems.
-<h3>Data access and data management</h3>
-<p>Fundamentally, database systems provide two services.
-<p>The first service is <i>data access</i>. Data access means adding
-new data to the database (inserting), finding data of interest
-(searching), changing data already stored (updating), and removing data
-from the database (deleting). All databases provide these services. How
-they work varies from category to category, and depends on the record
-structure that the database supports.
-<p>Each record in a database is a collection of values. For example, the
-record for a Web site customer might include a name, email address,
-shipping address, and payment information. Records are usually stored
-in tables. Each table holds records of the same kind. For example, the
-<b>customer</b> table at an e-commerce Web site might store the
-customer records for every person who shopped at the site. Often,
-database records have a different structure from the structures or
-instances supported by the programming language in which an application
-is written. As a result, working with records can mean:
-<ul type=disc>
-<li>using database operations like searches and updates on records; and
-<li>converting between programming language structures and database record
-types in the application.
-</ul>
-<p>The second service is <i>data management</i>. Data management is
-more complicated than data access. Providing good data management
-services is the hard part of building a database system. When you
-choose a database system to use in an application you build, making sure
-it supports the data management services you need is critical.
-<p>Data management services include allowing multiple users to work on the
-database simultaneously (concurrency), allowing multiple records to be
-changed instantaneously (transactions), and surviving application and
-system crashes (recovery). Different database systems offer different
-data management services. Data management services are entirely
-independent of the data access services listed above. For example,
-nothing about relational database theory requires that the system
-support transactions, but most commercial relational systems do.
-<p>Concurrency means that multiple users can operate on the database at
-the same time. Support for concurrency ranges from none (single-user
-access only) to complete (many readers and writers working
-simultaneously).
-<p>Transactions permit users to make multiple changes appear at once. For
-example, a transfer of funds between bank accounts needs to be a
-transaction because the balance in one account is reduced and the
-balance in the other increases. If the reduction happened before the
-increase, than a poorly-timed system crash could leave the customer
-poorer; if the bank used the opposite order, then the same system crash
-could make the customer richer. Obviously, both the customer and the
-bank are best served if both operations happen at the same instant.
-<p>Transactions have well-defined properties in database systems. They are
-<i>atomic</i>, so that the changes happen all at once or not at all.
-They are <i>consistent</i>, so that the database is in a legal state
-when the transaction begins and when it ends. They are typically
-<i>isolated</i>, which means that any other users in the database
-cannot interfere with them while they are in progress. And they are
-<i>durable</i>, so that if the system or application crashes after
-a transaction finishes, the changes are not lost. Together, the
-properties of <i>atomicity</i>, <i>consistency</i>,
-<i>isolation</i>, and <i>durability</i> are known as the ACID
-properties.
-<p>As is the case for concurrency, support for transactions varies among
-databases. Some offer atomicity without making guarantees about
-durability. Some ignore isolatability, especially in single-user
-systems; there's no need to isolate other users from the effects of
-changes when there are no other users.
-<p>Another important data management service is recovery. Strictly
-speaking, recovery is a procedure that the system carries out when it
-starts up. The purpose of recovery is to guarantee that the database is
-complete and usable. This is most important after a system or
-application crash, when the database may have been damaged. The recovery
-process guarantees that the internal structure of the database is good.
-Recovery usually means that any completed transactions are checked, and
-any lost changes are reapplied to the database. At the end of the
-recovery process, applications can use the database as if there had been
-no interruption in service.
-<p>Finally, there are a number of data management services that permit
-copying of data. For example, most database systems are able to import
-data from other sources, and to export it for use elsewhere. Also, most
-systems provide some way to back up databases and to restore in the
-event of a system failure that damages the database. Many commercial
-systems allow <i>hot backups</i>, so that users can back up
-databases while they are in use. Many applications must run without
-interruption, and cannot be shut down for backups.
-<p>A particular database system may provide other data management services.
-Some provide browsers that show database structure and contents. Some
-include tools that enforce data integrity rules, such as the rule that
-no employee can have a negative salary. These data management services
-are not common to all systems, however. Concurrency, recovery, and
-transactions are the data management services that most database vendors
-support.
-<p>Deciding what kind of database to use means understanding the data
-access and data management services that your application needs. Berkeley DB
-is an embedded database that supports fairly simple data access with a
-rich set of data management services. To highlight its strengths and
-weaknesses, we can compare it to other database system categories.
-<h3>Relational databases</h3>
-<p>Relational databases are probably the best-known database variant,
-because of the success of companies like Oracle. Relational databases
-are based on the mathematical field of set theory. The term "relation"
-is really just a synonym for "set" -- a relation is just a set of
-records or, in our terminology, a table. One of the main innovations in
-early relational systems was to insulate the programmer from the
-physical organization of the database. Rather than walking through
-arrays of records or traversing pointers, programmers make statements
-about tables in a high-level language, and the system executes those
-statements.
-<p>Relational databases operate on <i>tuples</i>, or records, composed
-of values of several different data types, including integers, character
-strings, and others. Operations include searching for records whose
-values satisfy some criteria, updating records, and so on.
-<p>Virtually all relational databases use the Structured Query Language,
-or SQL. This language permits people and computer programs to work with
-the database by writing simple statements. The database engine reads
-those statements and determines how to satisfy them on the tables in
-the database.
-<p>SQL is the main practical advantage of relational database systems.
-Rather than writing a computer program to find records of interest, the
-relational system user can just type a query in a simple syntax, and
-let the engine do the work. This gives users enormous flexibility; they
-do not need to decide in advance what kind of searches they want to do,
-and they do not need expensive programmers to find the data they need.
-Learning SQL requires some effort, but it's much simpler than a
-full-blown high-level programming language for most purposes. And there
-are a lot of programmers who have already learned SQL.
-<h3>Object-oriented databases</h3>
-<p>Object-oriented databases are less common than relational systems, but
-are still fairly widespread. Most object-oriented databases were
-originally conceived as persistent storage systems closely wedded to
-particular high-level programming languages like C++. With the spread
-of Java, most now support more than one programming language, but
-object-oriented database systems fundamentally provide the same class
-and method abstractions as do object-oriented programming languages.
-<p>Many object-oriented systems allow applications to operate on objects
-uniformly, whether they are in memory or on disk. These systems create
-the illusion that all objects are in memory all the time. The advantage
-to object-oriented programmers who simply want object storage and
-retrieval is clear. They need never be aware of whether an object is in
-memory or not. The application simply uses objects, and the database
-system moves them between disk and memory transparently. All of the
-operations on an object, and all its behavior, are determined by the
-programming language.
-<p>Object-oriented databases aren't nearly as widely deployed as relational
-systems. In order to attract developers who understand relational
-systems, many of the object-oriented systems have added support for
-query languages very much like SQL. In practice, though, object-oriented
-databases are mostly used for persistent storage of objects in C++ and
-Java programs.
-<h3>Network databases</h3>
-<p>The "network model" is a fairly old technique for managing and
-navigating application data. Network databases are designed to make
-pointer traversal very fast. Every record stored in a network database
-is allowed to contain pointers to other records. These pointers are
-generally physical addresses, so fetching the referenced record just
-means reading it from disk by its disk address.
-<p>Network database systems generally permit records to contain integers,
-floating point numbers, and character strings, as well as references to
-other records. An application can search for records of interest. After
-retrieving a record, the application can fetch any referenced record
-quickly.
-<p>Pointer traversal is fast because most network systems use physical disk
-addresses as pointers. When the application wants to fetch a record,
-the database system uses the address to fetch exactly the right string
-of bytes from the disk. This requires only a single disk access in all
-cases. Other systems, by contrast, often must do more than one disk read
-to find a particular record.
-<p>The key advantage of the network model is also its main drawback. The
-fact that pointer traversal is so fast means that applications that do
-it will run well. On the other hand, storing pointers all over the
-database makes it very hard to reorganize the database. In effect, once
-you store a pointer to a record, it is difficult to move that record
-elsewhere. Some network databases handle this by leaving forwarding
-pointers behind, but this defeats the speed advantage of doing a single
-disk access in the first place. Other network databases find, and fix,
-all the pointers to a record when it moves, but this makes
-reorganization very expensive. Reorganization is often necessary in
-databases, since adding and deleting records over time will consume
-space that cannot be reclaimed without reorganizing. Without periodic
-reorganization to compact network databases, they can end up with a
-considerable amount of wasted space.
-<h3>Clients and servers</h3>
-<p>Database vendors have two choices for system architecture. They can
-build a server to which remote clients connect, and do all the database
-management inside the server. Alternatively, they can provide a module
-that links directly into the application, and does all database
-management locally. In either case, the application developer needs
-some way of communicating with the database (generally, an Application
-Programming Interface (API) that does work in the process or that
-communicates with a server to get work done).
-<p>Almost all commercial database products are implemented as servers, and
-applications connect to them as clients. Servers have several features
-that make them attractive.
-<p>First, because all of the data is managed by a separate process, and
-possibly on a separate machine, it's easy to isolate the database server
-from bugs and crashes in the application.
-<p>Second, because some database products (particularly relational engines)
-are quite large, splitting them off as separate server processes keeps
-applications small, which uses less disk space and memory. Relational
-engines include code to parse SQL statements, to analyze them and
-produce plans for execution, to optimize the plans, and to execute
-them.
-<p>Finally, by storing all the data in one place and managing it with a
-single server, it's easier for organizations to back up, protect, and
-set policies on their databases. The enterprise databases for large
-companies often have several full-time administrators caring for them,
-making certain that applications run quickly, granting and denying
-access to users, and making backups.
-<p>However, centralized administration can be a disadvantage in some cases.
-In particular, if a programmer wants to build an application that uses
-a database for storage of important information, then shipping and
-supporting the application is much harder. The end user needs to install
-and administer a separate database server, and the programmer must
-support not just one product, but two. Adding a server process to the
-application creates new opportunity for installation mistakes and
-run-time problems.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/intro/data.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/intro/dbis.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/intro/what.html b/bdb/docs/ref/intro/what.html
deleted file mode 100644
index c8d12069a57..00000000000
--- a/bdb/docs/ref/intro/what.html
+++ /dev/null
@@ -1,53 +0,0 @@
-<!--$Id: what.so,v 10.22 2000/09/22 18:23:59 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: What other services does Berkeley DB provide?</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Introduction</dl></h3></td>
-<td width="1%"><a href="../../ref/intro/need.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/intro/distrib.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>What other services does Berkeley DB provide?</h1>
-<p>Berkeley DB also provides core database services to developers. These
-services include:
-<p><dl compact>
-<p><dt>Page cache management:<dd>The page cache provides fast access to a cache of database pages,
-handling the I/O associated with the cache to ensure that dirty pages
-are written back to the file system and that new pages are allocated on
-demand. Applications may use the Berkeley DB shared memory buffer manager to
-serve their own files and pages.
-<p><dt>Transactions and logging:<dd>The transaction and logging systems provide recoverability and atomicity
-for multiple database operations. The transaction system uses two-phase
-locking and write-ahead logging protocols to ensure that database
-operations may be undone or redone in the case of application or system
-failure. Applications may use Berkeley DB transaction and logging subsystems
-to protect their own data structures and operations from application or
-system failure.
-<p><dt>Locking:<dd>The locking system provides multiple reader or single writer access to
-objects. The Berkeley DB access methods use the locking system to acquire
-the right to read or write database pages. Applications may use the
-Berkeley DB locking subsystem to support their own locking needs.
-</dl>
-<p>By combining the page cache, transaction, locking, and logging systems,
-Berkeley DB provides the same services found in much larger, more complex and
-more expensive database systems. Berkeley DB supports multiple simultaneous
-readers and writers and guarantees that all changes are recoverable, even
-in the case of a catastrophic hardware failure during a database update.
-<p>Developers may select some or all of the core database services for any
-access method or database. Therefore, it is possible to choose the
-appropriate storage structure and the right degrees of concurrency and
-recoverability for any application. In addition, some of the systems
-(e.g., the locking subsystem) can be called separately from the Berkeley DB
-access method. As a result, developers can integrate non-database
-objects into their transactional applications using Berkeley DB.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/intro/need.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/intro/distrib.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/intro/where.html b/bdb/docs/ref/intro/where.html
deleted file mode 100644
index 45d0dc3ae99..00000000000
--- a/bdb/docs/ref/intro/where.html
+++ /dev/null
@@ -1,39 +0,0 @@
-<!--$Id: where.so,v 10.27 2000/12/04 18:05:42 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Where does Berkeley DB run?</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Introduction</dl></h3></td>
-<td width="1%"><a href="../../ref/intro/distrib.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/intro/products.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Where does Berkeley DB run?</h1>
-<p>Berkeley DB requires only underlying IEEE/ANSI Std 1003.1 (POSIX) system calls and can be
-ported easily to new architectures by adding stub routines to connect
-the native system interfaces to the Berkeley DB POSIX-style system calls.
-<p>Berkeley DB will autoconfigure and run on almost any modern UNIX system, and
-even on most historical UNIX platforms. See
-<a href="../../ref/build_unix/intro.html">Building for UNIX systems</a> for
-more information.
-<p>The Berkeley DB distribution includes support for QNX Neutrino. See
-<a href="../../ref/build_unix/intro.html">Building for UNIX systems</a> for
-more information.
-<p>The Berkeley DB distribution includes support for VxWorks, via a workspace
-and project files for Tornado 2.0. See
-<a href="../../ref/build_vxworks/intro.html">Building for VxWorks</a> for more
-information.
-<p>The Berkeley DB distribution includes support for Windows/95, Windows/98,
-Windows/NT and Windows/2000, via the MSVC 5 and 6 development
-environments. See <a href="../../ref/build_win/intro.html">Building for
-Windows systems</a> for more information.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/intro/distrib.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/intro/products.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/java/compat.html b/bdb/docs/ref/java/compat.html
deleted file mode 100644
index 4619ec55794..00000000000
--- a/bdb/docs/ref/java/compat.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!--$Id: compat.so,v 10.11 2000/12/04 18:05:42 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Compatibility</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Java API</dl></h3></td>
-<td width="1%"><a href="../../ref/java/conf.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/java/program.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Compatibility</h1>
-<p>The Berkeley DB Java API has been tested with the
-<a href="http://www.javasoft.com">Sun Microsystems JDK 1.1.3</a> on SunOS
-5.5, and Sun's JDK 1.1.7, JDK 1.2.2 and JDK 1.3.0 on Linux and
-Windows/NT. It should work with any JDK 1.1, 1.2 or 1.3 (the latter
-two are known as Java 2) compatible environment. IBM's VM 1.3.0 has
-also been tested on Linux.
-<p>The primary requirement of the Berkeley DB Java API is that the target Java
-environment supports JNI (Java Native Interface), rather than another
-method for allowing native C/C++ code to interface to Java. The JNI was
-new in JDK 1.1, but is the most likely interface to be implemented across
-multiple platforms. However, using the JNI means that Berkeley DB will not be
-compatible with Microsoft Visual J++.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/java/conf.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/java/program.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/java/conf.html b/bdb/docs/ref/java/conf.html
deleted file mode 100644
index b7eedcaedba..00000000000
--- a/bdb/docs/ref/java/conf.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<!--$Id: conf.so,v 10.16 2000/12/04 21:21:51 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Configuration</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Java API</dl></h3></td>
-<td width="1%"><a href="../../ref/rpc/server.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/java/compat.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Configuration</h1>
-<p>Building the Berkeley DB java classes, the examples and the native support
-library is integrated into the normal build process. See
-<a href="../../ref/build_unix/conf.html#--enable-java">Configuring
-Berkeley DB</a> and <a href="../../ref/build_win/intro.html">Building for Windows</a>
-for more information.
-<p>We expect that you've already installed the Java JDK or equivalent on
-your system. For the sake of discussion, we'll assume it is in a
-directory called db-VERSION, e.g., you extracted Berkeley DB version 2.3.12
-and you did not change the top-level directory name. The files related
-to Java are in two subdirectories of db-VERSION: java, the java source
-files, and libdb_java, the C++ files that provide the "glue" between
-java and Berkeley DB. The directory tree looks like this:
-<p><blockquote><pre> db-VERSION
- / \
- java libdb_java
- | |
- src ...
- |
- com
- |
- sleepycat
- / \
- db examples
- | |
- ... ...
-</pre></blockquote>
-<p>This naming conforms to the emerging standard for naming java packages.
-When the java code is built, it is placed into a <b>classes</b>
-subdirectory that is parallel to the <b>src</b> subdirectory.
-<p>For your application to use Berkeley DB successfully, you must set your
-CLASSPATH environment variable to include db-VERSION/java/classes as
-well as the classes in your java distribution. On UNIX, CLASSPATH is
-a colon separated list of directories; on Windows it is separated by
-semicolons. Alternatively, you can set your CLASSPATH to include
-db-VERSION/java/classes/db.jar which is created as a result of the
-build. The db.jar file contains the classes in com.sleepycat.db, it
-does not contain any classes in com.sleepycat.examples.
-<p>On Windows, you will want to set your PATH variable to include:
-<p><blockquote><pre>db-VERSION\build_win32\Release</pre></blockquote>
-<p>On UNIX, you will want to set the LD_LIBRARY_PATH environment variable
-to include the Berkeley DB library installation directory. Of course, the
-standard install directory may have been changed for your site, see your
-system administrator for details. Regardless, if you get a:
-<p><blockquote><pre>java.lang.UnsatisfiedLinkError</pre></blockquote>
-<p>exception when you run, chances are you do not have the library search
-path configured correctly. Different Java interpreters provide
-different error messages if the CLASSPATH value is incorrect, a typical
-error is:
-<p><blockquote><pre>java.lang.NoClassDefFoundError</pre></blockquote>
-<p>To ensure that everything is running correctly, you may want to try a
-simple test from the example programs in:
-<p><blockquote><pre>db-VERSION/java/src/com/sleepycat/examples</pre></blockquote>
-<p>For example, the sample program:
-<p><blockquote><pre>% java com.sleepycat.examples.AccessExample</pre></blockquote>
-<p>will prompt for text input lines which are then stored in a Btree
-database named "access.db" in your current directory. Try giving it a
-few lines of input text and then end-of-file. Before it exits, you
-should see a list of the lines you entered display with data items.
-This is a simple check to make sure the fundamental configuration is
-working correctly.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/rpc/server.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/java/compat.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/java/faq.html b/bdb/docs/ref/java/faq.html
deleted file mode 100644
index 75b9e9f3bdb..00000000000
--- a/bdb/docs/ref/java/faq.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<!--$Id: faq.so,v 1.2 2001/01/09 20:55:54 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Frequently Asked Questions</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a> <a name="3"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Java API</dl></h3></td>
-<td width="1%"><a href="../../ref/java/program.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/perl/intro.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Frequently Asked Questions</h1>
-<p><ol>
-<p><li><b>During one of the first calls to the Berkeley DB Java API, a
-DbException is thrown with a "Bad file number" or "Bad file descriptor"
-message.</b>
-<p>There are known large-file support bugs under JNI in various releases
-of the JDK. Please upgrade to the latest release of the JDK, and, if
-that does not help, disable big file support using the --disable-bigfile
-configuration option.
-</ol>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/java/program.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/perl/intro.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/java/program.html b/bdb/docs/ref/java/program.html
deleted file mode 100644
index c454a0910ee..00000000000
--- a/bdb/docs/ref/java/program.html
+++ /dev/null
@@ -1,72 +0,0 @@
-<!--$Id: program.so,v 10.21 2001/01/09 18:57:28 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Java Programming Notes</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Programmer Notes</dl></h3></td>
-<td width="1%"><a href="../../ref/java/compat.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/java/faq.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Java Programming Notes</h1>
-<p>The Java API closely parallels the Berkeley DB C++ and C interfaces. If you
-are currently using either of those APIs, there will be very little to
-surprise you in the Java API. We have even taken care to make the names
-of classes, constants, methods and arguments identical, where possible,
-across all three APIs.
-<p><ol>
-<p><li>The Java runtime does not automatically close Berkeley DB objects on
-finalization. There are a couple reasons for this. One is that
-finalization is generally run only when garbage collection occurs and
-there is no guarantee that this occurs at all, even on exit. Allowing
-specific Berkeley DB actions to occur in ways that cannot be replicated seems
-wrong. Secondly, finalization of objects may happen in an arbitrary
-order, so we would have to do extra bookkeeping to make sure everything
-was closed in the proper order. The best word of advice is to always
-do a close() for any matching open() call. Specifically, the Berkeley DB
-package requires that you explicitly call close on each individual
-<a href="../../api_java/db_class.html">Db</a> and <a href="../../api_java/dbc_class.html">Dbc</a> object that you opened. Your database
-activity may not be synchronized to disk unless you do so.
-<p><li>Some methods in the Java API have no return type, and throw a
-<a href="../../api_java/except_class.html">DbException</a> when an severe error arises. There are some notable
-methods that do have a return value, and can also throw an exception.
-<a href="../../api_java/db_get.html">Db.get</a> and <a href="../../api_java/dbc_get.html">Dbc.get</a> both return 0 when a get succeeds,
-<a href="../../ref/program/errorret.html#DB_NOTFOUND">Db.DB_NOTFOUND</a> when the key is not found, and throw an error when
-there is a severe error. This approach allows the programmer to check
-for typical data driven errors by watching return values without special
-casing exceptions.
-<p>An object of type <a href="../../api_java/deadlock_class.html">DbDeadlockException</a> is thrown when a deadlock
-would occur.
-<p>An object of type <a href="../../api_java/mem_class.html">DbMemoryException</a> is thrown when the system
-cannot provide enough memory to complete the operation (the ENOMEM
-system error on UNIX).
-<p>An object of type <a href="../../api_java/runrec_class.html">DbRunRecoveryException</a>, a subclass of
-<a href="../../api_java/except_class.html">DbException</a>, is thrown when there is an error that requires a
-recovery of the database, using <a href="../../utility/db_recover.html">db_recover</a>.
-<p><li>There is no class corresponding to the C++ DbMpoolFile class in the Berkeley DB
-Java API. There is a subset of the memp_XXX methods in the <a href="../../api_java/dbenv_class.html">DbEnv</a>
-class. This has been provided to allow you to perform certain
-administrative actions on underlying memory pools opened as a consequence
-of <a href="../../api_java/env_open.html">DbEnv.open</a>. Direct access to other memory pool functionality
-is not appropriate for the Java environment.
-<p><li>Berkeley DB always turns on the <a href="../../api_java/env_open.html#DB_THREAD">Db.DB_THREAD</a> flag since threads
-are expected in Java.
-<p><li>If there are embedded null strings in the <b>curslist</b> argument for
-<a href="../../api_java/db_join.html">Db.join</a>, they will be treated as the end of the list of
-cursors, even though you may have allocated a longer array. Fill in
-all the strings in your array unless you intend to cut it short.
-<p><li>The callback installed for <a href="../../api_java/env_set_errcall.html">DbEnv.set_errcall</a> will run in the same
-thread as the caller to <a href="../../api_java/env_set_errcall.html">DbEnv.set_errcall</a>. Make sure that thread
-remains running until your application exits or <a href="../../api_java/env_close.html">DbEnv.close</a> is
-called.
-</ol>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/java/compat.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/java/faq.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/lock/am_conv.html b/bdb/docs/ref/lock/am_conv.html
deleted file mode 100644
index 7dbe3e73d47..00000000000
--- a/bdb/docs/ref/lock/am_conv.html
+++ /dev/null
@@ -1,129 +0,0 @@
-<!--$Id: am_conv.so,v 10.16 2000/03/18 21:43:13 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Access method locking conventions</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Locking Subsystem</dl></h3></td>
-<td width="1%"><a href="../../ref/lock/twopl.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/lock/cam_conv.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Access method locking conventions</h1>
-<p>All the Berkeley DB access methods follow the same conventions for locking
-database objects. Applications that do their own locking and also do
-locking via the access methods must be careful to adhere to these
-conventions.
-<p>Whenever a Berkeley DB database is opened, the DB handle is
-assigned a unique locker ID. Unless transactions are specified,
-that ID is used as the locker for all calls that the Berkeley DB methods
-make to the lock subsystem. In order to lock a file, pages in
-the file, or records in the file, we must create a unique ID that
-can be used as the object to be locked in calls to the lock manager.
-Under normal operation, that object is a 28-byte value, created by
-the concatenation of a unique file identifier, a page or record number,
-and an object type (page or record).
-<p>In a transaction-protected environment, database create and delete
-operations are recoverable and single-threaded. This single-threading is
-achieved using a single lock for the entire environment that must be
-acquired before beginning a create or delete operation. In this case,
-the object on which Berkeley DB will lock is a 32-bit unsigned integer with a
-value of 0.
-<p>If applications are using the lock subsystem directly while they are also
-using locking via the access methods, they must take care not to
-inadvertently lock objects that happen to be equal to the unique file IDs
-used to lock files. This is most easily accomplished by using a locker
-ID of a different length than the values used by Berkeley DB.
-<p>All of the access methods other than Queue use a simple
-multiple-reader/single writer page locking scheme. The standard
-read/write locks (<b>DB_LOCK_READ</b> and <b>DB_LOCK_WRITE</b>) and
-conflict matrix, as described in <a href="../../ref/lock/stdmode.html">Standard lock modes</a> are used. An operation that returns data (e.g.,
-<a href="../../api_c/db_get.html">DB-&gt;get</a>, <a href="../../api_c/dbc_get.html">DBcursor-&gt;c_get</a>) obtains a read lock on all the pages
-accessed while locating the requested record. When an update operation
-is requested (e.g., <a href="../../api_c/db_put.html">DB-&gt;put</a>, <a href="../../api_c/dbc_del.html">DBcursor-&gt;c_del</a>), the page containing
-the updated (or new) data is write locked. As read-modify-write cycles
-are quite common and are deadlock prone under normal circumstances, the
-Berkeley DB interfaces allow the application to specify the <a href="../../api_c/dbc_get.html#DB_RMW">DB_RMW</a> flag,
-which causes operations to immediately obtain a writelock, even though
-they are only reading the data. While this may reduce concurrency
-somewhat, it reduces the probability of deadlock.
-<p>The Queue access method does not hold long term page locks.
-Instead, page locks are held only long enough to locate records or to change
-metadata on a page, and record locks are held for the appropriate duration.
-In the presence of transactions, record locks are held until transaction
-commit.
-For Berkeley DB operations, record locks are held until operation
-completion and for DBC operations, record locks are held until
-subsequent records are returned or the cursor is closed.
-<p>Under non-transaction operation, the access methods do not normally hold
-locks across calls to the Berkeley DB interfaces. The one exception to this
-rule is when cursors are used. As cursors maintain a position in a file,
-they must hold locks across calls and will, in fact, hold locks until the
-cursor is closed. Furthermore, each cursor is assigned its own unique
-locker ID when it is created, so cursor operations can conflict with one
-another. (Each cursor is assigned its own locker ID because Berkeley DB handles
-may be shared by multiple threads of control. The Berkeley DB library cannot
-identify which operations are performed by which threads of control, and
-it must ensure that two different threads of control are not
-simultaneously modifying the same data structure. By assigning each
-cursor its own locker, two threads of control sharing a handle cannot
-inadvertently interfere with each other.
-<p>This has important implications. If a single thread of control opens two
-cursors or uses a combination of cursor and non-cursor operations, these
-operations are performed on behalf of different lockers. Conflicts that
-arise between these different lockers may not cause actual deadlocks, but
-can, in fact, permanently block the thread of control. For example,
-assume that an application creates a cursor and uses it to read record A.
-Now assume a second cursor is opened and the application attempts to write
-record A using the second cursor. Unfortunately, the first cursor has a
-read lock so the second cursor cannot obtain its write lock. However,
-that read lock is held by the same thread of control, so if we block
-waiting for the write lock, the read lock can never be released. This
-might appear to be a deadlock from the application's perspective, but
-Berkeley DB cannot identify it as such because it has no knowledge of which
-lockers belong to which threads of control. For this reason, application
-designers are encouraged to close cursors as soon as they are done with
-them.
-<p>Complicated operations that require multiple cursors (or combinations of
-cursor and non-cursor operations) can be performed in two ways. First,
-they may be performed within a transaction, in which case all operations
-lock on behalf of the designated locker ID. Alternatively, the
-<a href="../../api_c/dbc_dup.html">DBcursor-&gt;c_dup</a> function duplicates a cursor, using the same locker ID as
-the originating cursor. There is no way to achieve this duplication
-functionality through the DB handle calls, but any DB call can be
-implemented by one or more calls through a cursor.
-<p>When the access methods use transactions, many of these problems disappear.
-The transaction ID is used as the locker ID for all operations performed
-on behalf of the transaction. This means that the application may open
-multiple cursors on behalf of the same transaction and these cursors will
-all share a common locker ID. This is safe because transactions cannot
-span threads of control, so the library knows that two cursors in the same
-transaction cannot modify the database concurrently.
-<p>As mentioned earlier, most of the Berkeley DB access methods use page level
-locking. During Btree traversal, lock-coupling is used to traverse the
-tree. Note that the tree traversal that occurs during an update operation
-can also use lock-coupling; it is not necessary to retain locks on
-internal Btree pages even if the item finally referenced will be updated.
-Even in the presence of transactions, locks obtained on internal pages of
-the Btree may be safely released as the traversal proceeds. This greatly
-improves concurrency. The only time internal locks become crucial is when
-internal pages are split or merged. When traversing duplicate data items
-for a key, the lock on the key value also acts as a lock on all duplicates
-of that key. Therefore, two conflicting threads of control cannot access
-the same duplicate set simultaneously.
-<p>The Recno access method uses a Btree as its underlying data
-representation and follows similar locking conventions. However, as the
-Recno access method must keep track of the number of children for all
-internal pages, it must obtain write locks on all internal pages during
-read and write operations. In the presence of transactions, these locks
-are not released until transaction commit.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/lock/twopl.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/lock/cam_conv.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/lock/cam_conv.html b/bdb/docs/ref/lock/cam_conv.html
deleted file mode 100644
index b37914890bc..00000000000
--- a/bdb/docs/ref/lock/cam_conv.html
+++ /dev/null
@@ -1,53 +0,0 @@
-<!--$Id: cam_conv.so,v 10.10 2000/03/18 21:43:13 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Berkeley DB Concurrent Data Store locking conventions</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Locking Subsystem</dl></h3></td>
-<td width="1%"><a href="../../ref/lock/am_conv.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/lock/dead.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Berkeley DB Concurrent Data Store locking conventions</h1>
-<p>The Berkeley DB Concurrent Data Store product has a different set of conventions for locking. It
-provides multiple reader/single writer semantics, but not per-page locking
-or transaction recoverability. As such, it does its locking entirely at
-the interface to the access methods.
-<p>The object it locks is the file, identified by its unique file number.
-The locking matrix is not one of the two standard lock modes, instead,
-we use a four-lock set, consisting of:
-<p><dl compact>
-<p><dt>DB_LOCK_NG<dd>not granted (always 0)
-<dt>DB_LOCK_READ<dd>read (shared)
-<dt>DB_LOCK_WRITE<dd>write (exclusive)
-<dt>DB_LOCK_IWRITE<dd>intention-to-write (shared with NG and READ, but conflicts with WRITE and IWRITE)
-</dl>
-<p>The IWRITE lock is used for cursors that will be used for updating (IWRITE
-locks are implicitly obtained for write operations through the Berkeley DB
-handles, e.g., <a href="../../api_c/db_put.html">DB-&gt;put</a>, <a href="../../api_c/db_del.html">DB-&gt;del</a>). While the cursor is
-reading, the IWRITE lock is held, but as soon as the cursor is about to
-modify the database, the IWRITE is upgraded to a WRITE lock. This upgrade
-blocks until all readers have exited the database. Because only one
-IWRITE lock is allowed at any one time, no two cursors can ever try to
-upgrade to a WRITE lock at the same time, and therefore deadlocks are
-prevented, which is essential as Berkeley DB Concurrent Data Store does not include deadlock
-detection and recovery.
-<p>Applications that need to lock compatibly with Berkeley DB Concurrent Data Store must obey the
-following rules:
-<p><ol>
-<p><li>Use only lock modes DB_LOCK_NG, DB_LOCK_READ, DB_LOCK_WRITE,
-DB_LOCK_IWRITE.
-<p><li>Never attempt to acquire a WRITE lock on an object that is
-already locked with a READ lock.
-</ol>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/lock/am_conv.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/lock/dead.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/lock/config.html b/bdb/docs/ref/lock/config.html
deleted file mode 100644
index cc0b5248149..00000000000
--- a/bdb/docs/ref/lock/config.html
+++ /dev/null
@@ -1,46 +0,0 @@
-<!--$Id: config.so,v 10.15 2000/12/08 20:43:16 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Configuring locking</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Locking Subsystem</dl></h3></td>
-<td width="1%"><a href="../../ref/lock/dead.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/lock/max.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Configuring locking</h1>
-<p>The <a href="../../api_c/env_set_lk_detect.html">DBENV-&gt;set_lk_detect</a> function specifies that the deadlock detector
-should be run whenever a lock blocks. This option provides for rapid
-detection of deadlocks at the expense of potentially frequent
-invocations of the deadlock detector. On a fast processor with a highly
-contentious application, where response time is critical, this is a good
-choice. An argument to the <a href="../../api_c/env_set_lk_detect.html">DBENV-&gt;set_lk_detect</a> function indicates which
-transaction to abort when a deadlock is detected. It can take on any
-one of the following values:
-<p><dl compact>
-<p><dt><a href="../../api_c/env_set_lk_detect.html#DB_LOCK_YOUNGEST">DB_LOCK_YOUNGEST</a><dd>Abort the most recently started transaction.
-<dt><a href="../../api_c/env_set_lk_detect.html#DB_LOCK_OLDEST">DB_LOCK_OLDEST</a><dd>Abort the longest lived transaction.
-<dt><a href="../../api_c/env_set_lk_detect.html#DB_LOCK_RANDOM">DB_LOCK_RANDOM</a><dd>Abort whatever transaction the deadlock detector happens to find first.
-<dt><a href="../../api_c/env_set_lk_detect.html#DB_LOCK_DEFAULT">DB_LOCK_DEFAULT</a><dd>Use the default policy (currently DB_RANDOM).
-</dl>
-<p>In general, <a href="../../api_c/env_set_lk_detect.html#DB_LOCK_DEFAULT">DB_LOCK_DEFAULT</a> is probably the correct choice. If
-an application has long-running transactions, then
-<a href="../../api_c/env_set_lk_detect.html#DB_LOCK_YOUNGEST">DB_LOCK_YOUNGEST</a> will guarantee that transactions eventually
-complete, but it may do so at the expense of a large number of aborts.
-<p>The alternative to using the <a href="../../api_c/env_set_lk_detect.html">DBENV-&gt;set_lk_detect</a> interface is
-to run the deadlock detector manually, using the Berkeley DB
-<a href="../../api_c/lock_detect.html">lock_detect</a> interface.
-<p>The <a href="../../api_c/env_set_lk_conflicts.html">DBENV-&gt;set_lk_conflicts</a> function allows you to specify your own locking
-conflicts matrix. This is an advanced configuration option, and rarely
-necessary.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/lock/dead.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/lock/max.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/lock/dead.html b/bdb/docs/ref/lock/dead.html
deleted file mode 100644
index bb77e982285..00000000000
--- a/bdb/docs/ref/lock/dead.html
+++ /dev/null
@@ -1,93 +0,0 @@
-<!--$Id: dead.so,v 10.13 2000/03/18 21:43:14 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Deadlocks and deadlock avoidance</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Locking Subsystem</dl></h3></td>
-<td width="1%"><a href="../../ref/lock/cam_conv.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/lock/config.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Deadlocks and deadlock avoidance</h1>
-<p>Practically any application that uses locking may deadlock.
-In nearly all cases, in order to recover from a deadlock, transactions
-must be used, so that an operation that deadlocks mid-way through can
-be undone, leaving the database in a consistent state.
-As the access methods may perform updates on multiple pages during a
-single API call, transactions are necessary even when the application
-makes only single update calls into the database.
-The only exception to this rule is when all the threads accessing
-the database are doing so read-only or when the Concurrent Data Store
-product is used; this product guarantees deadlock-free operation at the
-expense of reduced concurrency.
-Since deadlocks cannot be prevented, Berkeley DB provides the ability to detect
-deadlocks and recover from them gracefully.
-<p>Deadlocks occur when two or more threads of control are blocked waiting
-on each other's forward progress. Consider two transactions, each of
-which wants to modify items A and B. Assume that transaction 1 modifies
-first A and then B, but transaction 2 modifies B then A. Now, assume
-that transaction 1 obtains its writelock on A, but before it obtains its
-writelock on B, it is descheduled and transaction 2 runs. Transaction 2
-successfully acquires its writelock on B, but then blocks when it tries
-to obtain its writelock on A, because transaction 1 already holds a
-writelock on it. This is a deadlock. Transaction 1 cannot make forward
-progress until Transaction 2 releases its lock on B, but Transaction 2
-cannot make forward progress until Transaction 1 releases its lock on A.
-<p>The <a href="../../api_c/lock_detect.html">lock_detect</a> function runs an instance of the Berkeley DB deadlock
-detector. The <a href="../../utility/db_deadlock.html">db_deadlock</a> utility performs deadlock detection by
-calling <a href="../../api_c/lock_detect.html">lock_detect</a> at regular intervals. When a deadlock exists
-in the system, all of the threads of control involved in the deadlock are,
-by definition, waiting on a lock. The deadlock detector examines the
-state of the lock manager and identifies a deadlock, and selects one of
-the participants to abort. (See <a href="../../ref/lock/config.html">Configuring locking</a> for a discussion of how a participant is selected).
-The lock on which the selected participant is waiting is identified such
-that the <a href="../../api_c/lock_get.html">lock_get</a> (or <a href="../../api_c/lock_vec.html">lock_vec</a>) call in which that lock
-was requested will receive an error return of <a href="../../ref/program/errorret.html#DB_LOCK_DEADLOCK">DB_LOCK_DEADLOCK</a>.
-In the access methods, this error return is propagated back through the
-Berkeley DB interface as DB_LOCK_DEADLOCK.
-<p>When an application receives an DB_LOCK_DEADLOCK, the correct action is
-to abort the current transaction, and optionally retry it. Transaction
-support is necessary for recovery from deadlocks. When a deadlock occurs,
-the database may be left in an inconsistent or corrupted state, and any
-database changes already accomplished must be undone before the
-application can proceed further.
-<p>The deadlock detector identifies deadlocks by looking for a cycle in what
-is commonly referred to as its "waits-for" graph. More precisely, the
-deadlock detector reads through the lock table, and finds each object
-currently locked. Each object has a list of transactions or operations
-(hereafter called lockers) that currently hold locks on the object and
-possibly a list of waiting lockers, waiting on the lockers holding it.
-Each object creates one or more partial orderings of lockers. That is,
-for a particular object, every waiting locker comes after every holding
-locker, because that holding locker must release its lock before the
-waiting locker can make forward progress. Conceptually, after each object
-has been examined, the partial orderings are topologically sorted (see
-tsort). If this topological sort reveals any cycles, then the lockers
-forming the cycle are involved in a deadlock. One of the lockers is
-selected for abortion.
-<p>It is possible that aborting a single transaction involved in a deadlock
-is not enough to allow other transactions to make forward progress.
-In this case, the deadlock detector will be called repeatedly.
-Unfortunately, at the time a transaction is selected for abortion,
-there is not enough information available to determine if aborting
-that single transaction will allow forward progress or not. Since
-most applications have few deadlocks, Berkeley DB takes the conservative
-approach, aborting as few transactions as may be necessary to resolve
-the existing deadlocks. In particular, for each unique cycle found
-in the waits-for graph described in the previous paragraph, only one
-transaction is selected for abortion. However, if there are multiple
-cycles, then one transaction from each cycle is selected for abortion.
-Only after the aborting transactions have received the deadlock return
-and aborted their transactions, can it be determined if it is necessary
-to abort other transactions in order to allow forward progress.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/lock/cam_conv.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/lock/config.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/lock/intro.html b/bdb/docs/ref/lock/intro.html
deleted file mode 100644
index b5c85af05b0..00000000000
--- a/bdb/docs/ref/lock/intro.html
+++ /dev/null
@@ -1,89 +0,0 @@
-<!--$Id: intro.so,v 10.16 2000/03/18 21:43:14 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Berkeley DB and locking</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Locking Subsystem</dl></h3></td>
-<td width="1%"><a href="../../ref/program/runtime.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/lock/page.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Berkeley DB and locking</h1>
-<p>The lock subsystem provides interprocess and intraprocess concurrency
-control mechanisms. While the locking system is used extensively by the
-Berkeley DB access methods and transaction system, it may also be used as a
-stand-alone subsystem to provide concurrency control to any set of
-designated resources.
-<p>The lock subsystem is created, initialized, and opened by calls to
-<a href="../../api_c/env_open.html">DBENV-&gt;open</a> with the <a href="../../api_c/env_open.html#DB_INIT_LOCK">DB_INIT_LOCK</a> or <a href="../../api_c/env_open.html#DB_INIT_CDB">DB_INIT_CDB</a>
-flags specified.
-<p>The <a href="../../api_c/lock_detect.html">lock_detect</a> function provides the programmatic interface to
-the Berkeley DB deadlock detector. Whenever two threads of control issue lock
-requests that are not carefully ordered or that require upgrading locks
-(obtaining write locks on objects that are already read-locked), the
-possibility for deadlock arises. A deadlock occurs when two or more
-threads of control are blocked, waiting for actions that another one of
-these blocked threads must take. For example, assume that threads one
-and two have each obtained read locks on object A. Now suppose that both
-threads wish to obtain write locks on object A. Neither thread can be
-granted its writelock (because of the other thread's readlock). Both
-threads block and will never unblock because the event for which they are
-waiting can never happen.
-<p>The deadlock detector examines all the locks held in the environment and
-identifies situations where no thread can make forward progress. It then
-selects one of the participants in the deadlock (according to the argument
-that was specified to <a href="../../api_c/env_set_lk_detect.html">DBENV-&gt;set_lk_detect</a>) and forces it to return
-the value DB_LOCK_DEADLOCK, which indicates that a deadlock occurred.
-The thread receiving such an error should abort its current transaction,
-or simply release all its locks if it is not running in a transaction,
-and retry the operation.
-<p>The <a href="../../api_c/lock_vec.html">lock_vec</a> interface is used to acquire and release locks.
-<p>Two additional interfaces, <a href="../../api_c/lock_get.html">lock_get</a> and <a href="../../api_c/lock_put.html">lock_put</a>, are
-provided. These interfaces are simpler front-ends to the <a href="../../api_c/lock_vec.html">lock_vec</a>
-functionality, where <a href="../../api_c/lock_get.html">lock_get</a> acquires a lock, and
-<a href="../../api_c/lock_put.html">lock_put</a> releases a lock that was acquired using <a href="../../api_c/lock_get.html">lock_get</a>
-or <a href="../../api_c/lock_vec.html">lock_vec</a>.
-<p>It is up to the application to specify lockers and objects appropriately.
-When used with the Berkeley DB access methods, these lockers and objects are
-handled completely internally, but an application using the lock manager
-directly must either use the same conventions as the access methods or
-define its own convention to which it adheres. If the application is
-using the access methods with locking at the same time that it is calling
-the lock manager directly, the application must follow a convention that
-is compatible with the access methods' use of the locking subsystem. See
-<a href="../../ref/lock/am_conv.html">Access method locking conventions</a>
-for more information.
-<p>The <a href="../../api_c/lock_id.html">lock_id</a> function returns a unique ID which may safely be used
-as the locker parameter to the <a href="../../api_c/lock_vec.html">lock_vec</a> interface. The access
-methods use <a href="../../api_c/lock_id.html">lock_id</a> to generate unique lockers for the cursors
-associated with a database.
-<p>The <a href="../../api_c/lock_vec.html">lock_vec</a> function performs any number of lock operations
-atomically. It also provides the ability to release all locks held by a
-particular locker and release all the locks on a particular object.
-Performing multiple lock operations atomically is useful in performing
-Btree traversals where you want to acquire a lock on a child page and once
-acquired, immediately release the lock on its parent (this is
-traditionally referred to as "lock-coupling"). Using <a href="../../api_c/lock_vec.html">lock_vec</a>
-instead of separate calls to <a href="../../api_c/lock_put.html">lock_put</a> and <a href="../../api_c/lock_get.html">lock_get</a> reduces
-the synchronization overhead between multiple threads or processes.
-<p>The three interfaces, <a href="../../api_c/lock_get.html">lock_get</a>, <a href="../../api_c/lock_put.html">lock_put</a> and <a href="../../api_c/lock_vec.html">lock_vec</a>,
-are fully compatible, and may be used interchangeably.
-<p>All locks explicitly requested by an application should be released via
-calls to <a href="../../api_c/lock_put.html">lock_put</a> or <a href="../../api_c/lock_vec.html">lock_vec</a>.
-<p>The <a href="../../api_c/lock_stat.html">lock_stat</a> function returns information about the status of
-the lock subsystem. It is the programmatic interface used by the
-<a href="../../utility/db_stat.html">db_stat</a> utility.
-<p>The locking subsystem is closed by the call to <a href="../../api_c/env_close.html">DBENV-&gt;close</a>.
-<p>Finally, the entire locking subsystem may be discarded using the
-<a href="../../api_c/env_remove.html">DBENV-&gt;remove</a> interface.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/program/runtime.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/lock/page.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/lock/max.html b/bdb/docs/ref/lock/max.html
deleted file mode 100644
index 23622909035..00000000000
--- a/bdb/docs/ref/lock/max.html
+++ /dev/null
@@ -1,88 +0,0 @@
-<!--$Id: max.so,v 10.2 2000/12/21 19:11:28 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Configuring locking: sizing the system</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Locking Subsystem</dl></h3></td>
-<td width="1%"><a href="../../ref/lock/config.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/lock/nondb.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Configuring locking: sizing the system</h1>
-<p>The lock system is sized using the following three functions:
-<p><blockquote><pre><a href="../../api_c/env_set_lk_max_locks.html">DBENV-&gt;set_lk_max_locks</a>
-<a href="../../api_c/env_set_lk_max_lockers.html">DBENV-&gt;set_lk_max_lockers</a>
-<a href="../../api_c/env_set_lk_max_objects.html">DBENV-&gt;set_lk_max_objects</a></pre></blockquote>
-<p>The <a href="../../api_c/env_set_lk_max_locks.html">DBENV-&gt;set_lk_max_locks</a>, <a href="../../api_c/env_set_lk_max_lockers.html">DBENV-&gt;set_lk_max_lockers</a>
-and <a href="../../api_c/env_set_lk_max_objects.html">DBENV-&gt;set_lk_max_objects</a> functions specify, respectively, the
-maximum number of locks, lockers and locked objects supported by the
-lock subsystem. The maximum number of locks is the number of locks that
-can be simultaneously requested in the system. The maximum number of
-lockers is the number of lockers that can simultaneously request locks
-in the system. The maximum number of lock objects is the number of
-objects that can simultaneously be locked in the system. Selecting
-appropriate values requires an understanding of your application and
-its databases. If the values are too small, then requests for locks in
-an application will fail. If the values are too large, then the locking
-subsystem will consume more resources than is necessary. It is better
-to err in the direction of allocating too many locks, lockers and
-objects as increasing the number of locks does not require large amounts
-of additional resources.
-<p>The recommended algorithm for selecting the maximum number of locks,
-lockers and lock objects, is to run the application under stressful
-conditions and then review the lock system's statistics to determine
-the maximum number of locks, lockers and lock objects that were used.
-Then, double these values for safety. However, in some large
-applications, finer granularity of control is necessary in order to
-minimize the size of the lock subsystem.
-<p>The maximum number of lockers can be estimated as follows:
-<ul type=disc>
-<li>If the
-database environment is configured to use transactions, then the maximum
-number of lockers needed is the number of simultaneously active
-transactions and child transactions (where a child transaction is active
-until its parent commits or aborts, not until it commits or aborts).
-<li>If the database environment is not configured to use transactions, then
-the maximum number of lockers needed is the number of simultaneous
-non-cursor operations plus an additional locker for every simultaneously
-open cursor.
-</ul>
-<p>The maximum number of lock objects needed can be estimated as follows:
-<ul type=disc>
-<li>For Btree and Recno access methods, you will need, at a minimum, one
-lock object per level of the database tree. (Unless keys are quite
-large with respect to the page size, neither Recno nor Btree database
-trees should ever be deeper than five levels.) Then, you will need one
-lock object for each leaf page of the database tree that will be
-simultaneously accessed.
-<li>For the Queue access method you will need one lock object per record
-that is simultaneously accessed. To this, add one lock object per page
-that will be simultaneously accessed. (Since the Queue access method
-uses fixed-length records, and the database page size is known, it is
-possible to calculate the number of pages and therefore, lock objects,
-required.) Deleted records skipped by a <a href="../../api_c/dbc_get.html#DB_NEXT">DB_NEXT</a> or
-<a href="../../api_c/dbc_get.html#DB_PREV">DB_PREV</a> operation do not require a separate lock object.
-Further, if your application is using transactions, then no database
-operation will ever use more than three lock objects at any time.
-<li>For the Hash access method you only need a single lock object.
-</ul>
-<p>For all access methods, you should then add an additional lock object
-per database, for the database's metadata page.
-<p>The maximum number of locks required by an application cannot be easily
-estimated. It is possible to calculate a maximum number of locks by
-multiplying the maximum number of lockers, times the maximum number of
-lock objects, times two (two for the two possible lock modes for each
-object, read and write). However, this is a pessimal value, and real
-applications are unlikely to actually need that many locks. Review of
-the lock subsystem statistics is the best way to determine this value.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/lock/config.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/lock/nondb.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/lock/nondb.html b/bdb/docs/ref/lock/nondb.html
deleted file mode 100644
index 4fb37d6d7b0..00000000000
--- a/bdb/docs/ref/lock/nondb.html
+++ /dev/null
@@ -1,50 +0,0 @@
-<!--$Id: nondb.so,v 10.10 2000/12/08 20:43:16 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Locking and non-Berkeley DB applications</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Locking Subsystem</dl></h3></td>
-<td width="1%"><a href="../../ref/lock/max.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/log/intro.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Locking and non-Berkeley DB applications</h1>
-<p>The locking subsystem is useful outside the context of Berkeley DB. It can be
-used to manage concurrent access to any collection of either ephemeral or
-persistent objects. That is, the lock region can persist across
-invocations of an application, so it can be used to provide long-term
-locking (e.g., conference room scheduling).
-<p>In order to use the locking subsystem in such a general way, the
-applications must adhere to a convention for naming objects and lockers.
-Consider the conference room scheduling problem described above. Assume
-there are three conference rooms and that we wish to schedule them in
-half-hour intervals.
-<p>The scheduling application must then select a way to identify each
-conference room/time slot combination. In this case, we could describe
-the objects being locker as bytestrings consisting of the conference room
-name, the date on which it is needed, and the beginning of the appropriate
-half-hour slot.
-<p>Lockers are 32-bit numbers, so we might choose to use the User ID of the
-individual running the scheduling program. To schedule half-hour slots,
-all the application need do is issue a <a href="../../api_c/lock_get.html">lock_get</a> call for the
-appropriate locker/object pair. To schedule a longer slot, the
-application would issue a <a href="../../api_c/lock_vec.html">lock_vec</a> call with one <a href="../../api_c/lock_get.html">lock_get</a>
-operation per half-hour up to the total length. If the <a href="../../api_c/lock_vec.html">lock_vec</a>
-call fails, the application would have to release the parts of the time
-slot that were obtained.
-<p>To cancel a reservation, the application would make the appropriate
-<a href="../../api_c/lock_put.html">lock_put</a> calls. To reschedule a reservation, the <a href="../../api_c/lock_get.html">lock_get</a>
-and <a href="../../api_c/lock_put.html">lock_put</a> calls could all be made inside of a single
-<a href="../../api_c/lock_vec.html">lock_vec</a> call. The output of <a href="../../api_c/lock_stat.html">lock_stat</a> could be
-post-processed into a human-readable schedule of conference room use.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/lock/max.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/log/intro.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/lock/notxn.html b/bdb/docs/ref/lock/notxn.html
deleted file mode 100644
index 16b00cf66bf..00000000000
--- a/bdb/docs/ref/lock/notxn.html
+++ /dev/null
@@ -1,46 +0,0 @@
-<!--$Id: notxn.so,v 10.10 2000/03/18 21:43:14 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Locking without transactions</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Locking Subsystem</dl></h3></td>
-<td width="1%"><a href="../../ref/lock/stdmode.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/lock/twopl.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Locking without transactions</h1>
-<p>If an application runs with locking specified, but not transactions (e.g.,
-<a href="../../api_c/env_open.html">DBENV-&gt;open</a> is called with <a href="../../api_c/env_open.html#DB_INIT_LOCK">DB_INIT_LOCK</a> or
-<a href="../../api_c/env_open.html#DB_INIT_CDB">DB_INIT_CDB</a> specified, but not <a href="../../api_c/env_open.html#DB_INIT_TXN">DB_INIT_TXN</a>), locks are
-normally acquired during each Berkeley DB operation and released before the
-operation returns to the caller. The only exception is in the case of
-cursor operations. As cursors identify a particular position in a file,
-a cursor must retain a read-lock across cursor calls to make sure that
-that position is uniquely identifiable during the next cursor call,
-because an operation using <a href="../../api_c/dbc_get.html#DB_CURRENT">DB_CURRENT</a> must reference the same
-record as the previous cursor call. Such cursor locks cannot be released
-until either the cursor is reset using the <a href="../../api_c/db_get.html#DB_GET_BOTH">DB_GET_BOTH</a>,
-<a href="../../api_c/dbc_get.html#DB_SET">DB_SET</a>, <a href="../../api_c/dbc_get.html#DB_SET_RANGE">DB_SET_RANGE</a>, <a href="../../api_c/dbc_put.html#DB_KEYFIRST">DB_KEYFIRST</a>, or
-<a href="../../api_c/dbc_put.html#DB_KEYLAST">DB_KEYLAST</a> functionality, in which case a new cursor lock is
-established, or the cursor is closed. As a result, application designers
-are encouraged to close cursors as soon as possible.
-<p>It is important to realize that concurrent applications that use locking
-must ensure that two concurrent threads do not interfere with each other.
-However, as Btree and Hash access method page splits can occur at any
-time, there is virtually no way to guarantee that an application which
-writes the database cannot deadlock. Applications running without the
-protection of transactions may deadlock, and when they do so, can leave
-the database in an inconsistent state. Applications that need concurrent
-access, but not transactions, are more safely implemented using the Berkeley DB Concurrent Data Store
-Product.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/lock/stdmode.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/lock/twopl.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/lock/page.html b/bdb/docs/ref/lock/page.html
deleted file mode 100644
index a7e43b3af66..00000000000
--- a/bdb/docs/ref/lock/page.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!--$Id: page.so,v 10.12 2000/03/18 21:43:14 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Page locks</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Locking Subsystem</dl></h3></td>
-<td width="1%"><a href="../../ref/lock/intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/lock/stdmode.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Page locks</h1>
-<p>Under normal operation, the access methods use page locking. The pagesize
-of a database is set when the database is created and may be specified by
-calling the <a href="../../api_c/db_set_pagesize.html">DB-&gt;set_pagesize</a> function. If not specified, the Berkeley DB
-package tries to select a pagesize that will provide the best I/O
-performance by setting the page size equal to the block size of the
-underlying file system.
-<p>In the Btree access method, Berkeley DB uses a technique called lock coupling
-to improve concurrency. The traversal of a Btree requires reading a page,
-searching that page to determine which page to search next and then
-repeating this process on the next page. Once a page has been searched,
-it will never be accessed again for this operation, unless a page split
-is required. To improve concurrency in the tree, once the next page to
-read/search has been determined, that page is locked, and then atomically
-(i.e., without relinquishing control of the lock manager) the original
-page lock is released.
-<p>As the Recno access method is built upon Btree, it too uses lock coupling
-for read operations. However, as the Recno access method must maintain
-a count of records on its internal pages, it cannot lock couple during
-write operations. Instead, it retains write locks on all internal pages
-during every update operation. For this reason, it is not possible to
-have high concurrency in the Recno access method in the presence of write
-operations.
-<p>The Queue access method only uses short term page locks. That is, a page
-lock is released prior to requesting another page lock. Record locks are
-used for transaction isolation. The provides a high degree of concurrency
-for write operations. A metadata page is used to keep track of the head
-and tail of the queue. This page is never locked during other locking or
-I/O operations.
-<p>The Hash access method does not have such traversal issues, but because
-it implements dynamic hashing, it must always refer to its metadata while
-computing a hash function. This metadata is stored on a special page in
-the hash database. This page must therefore be read locked on every
-operation. Fortunately, it need only be write locked when new pages are
-allocated to the file, which happens in three cases: 1) a hash bucket
-becomes full and needs to split, 2) a key or data item is too large to
-fit on a normal page, and 3) the number of duplicate items for a fixed
-key becomes sufficiently large that they are moved to an auxiliary page.
-In this case, the access method must obtain a write lock on the metadata
-page, thus requiring that all readers be blocked from entering the tree
-until the update completes.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/lock/intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/lock/stdmode.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/lock/stdmode.html b/bdb/docs/ref/lock/stdmode.html
deleted file mode 100644
index ca1cd6b0bdd..00000000000
--- a/bdb/docs/ref/lock/stdmode.html
+++ /dev/null
@@ -1,61 +0,0 @@
-<!--$Id: stdmode.so,v 10.20 2000/03/18 21:43:14 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Standard lock modes</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Locking Subsystem</dl></h3></td>
-<td width="1%"><a href="../../ref/lock/page.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/lock/notxn.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Standard lock modes</h1>
-<p>The Berkeley DB locking protocol is described by a conflict matrix. A conflict
-matrix is an n x n array where n is the number of different lock modes
-supported, and the (i, j)th entry of the array indicates whether a lock of
-mode i conflicts with a lock of mode j.
-<p>The Berkeley DB include files declare two commonly used conflict arrays:
-<p><dl compact>
-<p><dt>const u_int8_t db_rw_conflicts[ ];<dd>This is a conflict matrix for a simple scheme using shared and exclusive
-lock modes.
-<p><dt>const u_int8_t db_riw_conflicts[ ];<dd>This is a conflict matrix that involves various intent lock modes (e.g.,
-intent shared) that are used for multigranularity locking.
-</dl>
-<p>The number of modes associated with each matrix are DB_LOCK_RW_N and
-DB_LOCK_RIW_N, respectively.
-<p>In addition, the Berkeley DB include file defines the type <b>db_lockmode_t</b>,
-which is the type of the lock modes used with the standard tables above:
-<p><dl compact>
-<p><dt>DB_LOCK_NG<dd>not granted (always 0)
-<p><dt>DB_LOCK_READ<dd>read (shared)
-<p><dt>DB_LOCK_WRITE<dd>write (exclusive)
-</dl>
-<p>As an example, consider the basic multiple-reader/single writer conflict
-matrix described by <b>db_rw_conflicts</b>. In the following
-example (and in the appropriate file), a 1 represents a conflict (i.e.,
-do not grant the lock if the indicated lock is held) and a 0 indicates
-that it is OK to grant the lock.
-<p>The rows indicate the lock that is held and the columns indicate the lock
-that is requested.
-<p><blockquote><pre> Notheld Read Write
-Notheld 0 0 0
-Read* 0 0 1
-Write** 0 1 1
-</pre></blockquote>
-<p><dl compact>
-<p><dt>*<dd>In this case, suppose that there is a read lock held on an object. A new
-request for a read lock would be granted, but a request for a write lock
-would not.
-<p><dt>**<dd>In this case, suppose that there is a write lock held on an object. A
-new request for either a read or write lock would be denied.
-</dl>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/lock/page.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/lock/notxn.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/lock/twopl.html b/bdb/docs/ref/lock/twopl.html
deleted file mode 100644
index 6cf112c0979..00000000000
--- a/bdb/docs/ref/lock/twopl.html
+++ /dev/null
@@ -1,50 +0,0 @@
-<!--$Id: twopl.so,v 10.7 2000/03/18 21:43:14 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Locking with transactions: two-phase locking</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Locking Subsystem</dl></h3></td>
-<td width="1%"><a href="../../ref/lock/notxn.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/lock/am_conv.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Locking with transactions: two-phase locking</h1>
-<p>Berkeley DB uses a locking protocol called two-phase locking. This is the
-traditional protocol used in conjunction with lock-based transaction
-systems.
-<p>In a two-phase locking (2PL) system, transactions are broken up into two
-distinct phases. During the first phase, the transaction only acquires
-locks. During the second phase, the transaction only releases locks.
-More formally, once a transaction releases a lock, it may not acquire any
-additional locks. Practically, this translates into a system where locks
-are acquired as they are needed throughout a transaction and retained
-until the transaction ends, either by committing or aborting. In Berkeley DB,
-locks are released during <a href="../../api_c/txn_abort.html">txn_abort</a> or <a href="../../api_c/txn_commit.html">txn_commit</a>. The
-only exception to this protocol occurs when we use lock-coupling to
-traverse a data structure. If the locks are held only for traversal
-purposes, then the locks may be released before transaction commit or
-abort.
-<p>For applications, the implications of 2PL are that long-running
-transactions will hold locks for a long time. When designing
-applications, lock contention should be considered. In order to reduce
-the probability of deadlock and achieve the best level of concurrency
-possible, the following guidelines are helpful.
-<p><ol>
-<p><li>When accessing multiple databases, design all transactions so
-that they access the files in the same order.
-<p><li>If possible, access your most hotly contested resources last
-(so that their locks are held for the shortest time possible).
-<p><li>If possible, use nested transactions to protect the parts of
-your transaction most likely to deadlock.
-</ol>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/lock/notxn.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/lock/am_conv.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/log/config.html b/bdb/docs/ref/log/config.html
deleted file mode 100644
index f3c94889312..00000000000
--- a/bdb/docs/ref/log/config.html
+++ /dev/null
@@ -1,40 +0,0 @@
-<!--$Id: config.so,v 10.16 2001/01/18 20:31:37 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Configuring logging</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Logging Subsystem</dl></h3></td>
-<td width="1%"><a href="../../ref/log/intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/log/limits.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Configuring logging</h1>
-<p>The two aspects of logging that may be configured are the size of log
-files on disk and the size of the log buffer in memory. The
-<a href="../../api_c/env_set_lg_max.html">DBENV-&gt;set_lg_max</a> interface specifies the individual log file
-size for all of the applications sharing the Berkeley DB environment. Setting
-the log file size is largely a matter of convenience, and a reflection
-of the application's preferences in backup media and frequency.
-However, setting the log file size too low can potentially cause
-problems as it would be possible to run out of log sequence numbers,
-which requires a full archival and application restart to reset. See
-the <a href="../../ref/log/limits.html">Log file limits</a> section for more
-information.
-<p>The <a href="../../api_c/env_set_lg_bsize.html">DBENV-&gt;set_lg_bsize</a> interface specifies the size of the
-in-memory log buffer, in bytes. Log information is stored in memory
-until the buffer fills up or transaction commit forces the buffer to be
-written to disk. Larger buffer sizes can significantly increase
-throughput in the presence of long running transactions, highly
-concurrent applications, or transactions producing large amounts of
-data. By default, the buffer is 32KB.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/log/intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/log/limits.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/log/intro.html b/bdb/docs/ref/log/intro.html
deleted file mode 100644
index 0c41c17efa0..00000000000
--- a/bdb/docs/ref/log/intro.html
+++ /dev/null
@@ -1,58 +0,0 @@
-<!--$Id: intro.so,v 10.16 2001/01/18 20:31:37 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Berkeley DB and logging</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Logging Subsystem</dl></h3></td>
-<td width="1%"><a href="../../ref/lock/nondb.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/log/config.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Berkeley DB and logging</h1>
-<p>The logging subsystem is the logging facility used by Berkeley DB. It is
-largely Berkeley DB specific, although it is potentially useful outside of
-the Berkeley DB package for applications wanting write-ahead logging support.
-Applications wanting to use the log for purposes other than logging file
-modifications based on a set of open file descriptors will almost
-certainly need to make source code modifications to the Berkeley DB code
-base.
-<p>A log can be shared by any number of threads of control. The
-<a href="../../api_c/env_open.html">DBENV-&gt;open</a> interface is used to open a log. When the log is no
-longer in use, it should be closed, using the <a href="../../api_c/env_close.html">DBENV-&gt;close</a>
-interface.
-<p>Individual log entries are identified by log sequence numbers. Log
-sequence numbers are stored in an opaque object, a <a href="../../api_c/db_lsn.html">DB_LSN</a>.
-<p>The <a href="../../api_c/log_put.html">log_put</a> interface is used to append new log records to the
-log. Optionally, the <a href="../../api_c/log_put.html#DB_CHECKPOINT">DB_CHECKPOINT</a> flag can be used to output
-a checkpoint log record (indicating that the log is consistent to that
-point and recoverable after a system or application failure), as well
-as open-file information. The <a href="../../api_c/log_get.html">log_get</a> interface is used to
-retrieve log records from the log.
-<p>There are additional interfaces for integrating the log subsystem with a
-transaction processing system:
-<p><dl compact>
-<p><dt><a href="../../api_c/log_register.html">log_register</a> and <a href="../../api_c/log_unregister.html">log_unregister</a><dd>These interfaces associate files with identification numbers. These
-identification numbers are logged so that transactional recovery
-correctly associates log records with the appropriate files.
-<p><dt><a href="../../api_c/log_flush.html">log_flush</a><dd>Flushes the log up to a particular log sequence number.
-<p><dt><a href="../../api_c/log_compare.html">log_compare</a><dd>Allows applications to compare any two log sequence numbers.
-<p><dt><a href="../../api_c/log_file.html">log_file</a> <dd>Maps a log sequence number to the specific log file which contains it.
-<p><dt><a href="../../api_c/log_archive.html">log_archive</a><dd>Returns various sets of log file names. These interfaces are used for
-database administration, e.g., to determine if log files may safely be
-removed from the system.
-<p><dt><a href="../../api_c/log_stat.html">log_stat</a> <dd>The display <a href="../../utility/db_stat.html">db_stat</a> utility uses the <a href="../../api_c/log_stat.html">log_stat</a> interface
-to display statistics about the log.
-<p><dt><a href="../../api_c/env_remove.html">DBENV-&gt;remove</a><dd>The log meta-information (but not the log files themselves) may be
-removed using the <a href="../../api_c/env_remove.html">DBENV-&gt;remove</a> interface.
-</dl>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/lock/nondb.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/log/config.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/log/limits.html b/bdb/docs/ref/log/limits.html
deleted file mode 100644
index d34e5a81339..00000000000
--- a/bdb/docs/ref/log/limits.html
+++ /dev/null
@@ -1,47 +0,0 @@
-<!--$Id: limits.so,v 10.23 2001/01/18 20:31:37 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Log file limits</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Logging Subsystem</dl></h3></td>
-<td width="1%"><a href="../../ref/log/config.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/mp/intro.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Log file limits</h1>
-<p>Log file names and sizes impose a limit on how long databases may be
-used in a Berkeley DB database environment. It is quite unlikely that an
-application will reach this limit, however, if the limit is reached,
-the Berkeley DB environment's databases must be dumped and reloaded.
-<p>The log file name consists of <b>log.</b> followed by 10 digits, with
-a maximum of 2,000,000,000 log files. Consider an application performing
-6000 transactions per second, for 24 hours a day, logged into 10MB log
-files, where each transaction is logging approximately 500 bytes of data.
-The calculation:
-<p><blockquote><pre>(10 * 2^20 * 2000000000) / (6000 * 500 * 365 * 60 * 60 * 24) = ~221</pre></blockquote>
-<p>indicates that the system will run out of log file names in roughly 221
-years.
-<p>There is no way to reset the log file name space in Berkeley DB. If your
-application is reaching the end of its log file name space, you must:
-<p><ol>
-<p><li>Archive your databases as if to prepare for catastrophic failure (see
-<a href="../../utility/db_archive.html">db_archive</a> for more information).
-<p><li>Dump and re-load all your databases (see <a href="../../utility/db_dump.html">db_dump</a> and
-<a href="../../utility/db_load.html">db_load</a> for more information).
-<p><li>Remove all of the log files from the database environment. Note, this
-is the only situation where all of the log files are removed from an
-environment, in all other cases at least a single log file is
-retained.
-<p><li>Restart your application.
-</ol>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/log/config.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/mp/intro.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/mp/config.html b/bdb/docs/ref/mp/config.html
deleted file mode 100644
index cf311516de3..00000000000
--- a/bdb/docs/ref/mp/config.html
+++ /dev/null
@@ -1,55 +0,0 @@
-<!--$Id: config.so,v 10.17 2000/10/03 17:17:35 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Configuring the memory pool</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Memory Pool Subsystem</dl></h3></td>
-<td width="1%"><a href="../../ref/mp/intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/txn/intro.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Configuring the memory pool</h1>
-<p>There are two interfaces used for configuring the memory pool.
-<p>The most important tuning parameter for almost all applications, including
-Berkeley DB applications, is the size of the pool. There are two ways to
-specify the pool size. First, calling the <a href="../../api_c/env_set_cachesize.html">DBENV-&gt;set_cachesize</a> function
-specifies the pool size for all of the applications sharing the Berkeley DB
-environment. Second, by calling the <a href="../../api_c/db_set_cachesize.html">DB-&gt;set_cachesize</a> function. The
-latter only specifies a pool size for the specific database. Note, it is
-meaningless to call <a href="../../api_c/db_set_cachesize.html">DB-&gt;set_cachesize</a> for a database opened inside
-of a Berkeley DB environment, since the environment pool size will override any
-pool size specified for a single database. For information on tuning the
-Berkeley DB cache size, see <a href="../../ref/am_conf/cachesize.html">Selecting
-a cache size</a>.
-<p>The second memory pool configuration interface specifies the maximum size
-of backing files to map into the process address space instead of copying
-pages through the local cache. Only read-only database files can be
-mapped into process memory. Because of the requirements of the Berkeley DB
-transactional implementation, log records describing database changes must
-be written to disk before the actual database changes. As mapping
-read-write database files into process memory would permit the underlying
-operating system to write modified database changes at will, it is not
-supported.
-<p>Mapping files into the process address space can result in
-better-than-usual performance, as available virtual memory is normally
-much larger than the local cache, and page faults are faster than page
-copying on many systems. However, in the presence of limited virtual
-memory it can cause resource starvation, and in the presence of large
-databases, it can result in immense process sizes.
-<p>To specify that no files are to be mapped into the process address space,
-specify the <a href="../../api_c/env_open.html#DB_NOMMAP">DB_NOMMAP</a> flag to the <a href="../../api_c/env_set_flags.html">DBENV-&gt;set_flags</a> interface.
-To specify that any individual file should not be mapped into the process
-address space, specify the <a href="../../api_c/env_open.html#DB_NOMMAP">DB_NOMMAP</a> flag to the
-<a href="../../api_c/memp_fopen.html">memp_fopen</a> interface. To limit the size of files mapped into the
-process address space, use the <a href="../../api_c/env_set_mp_mmapsize.html">DBENV-&gt;set_mp_mmapsize</a> function.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/mp/intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/txn/intro.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/mp/intro.html b/bdb/docs/ref/mp/intro.html
deleted file mode 100644
index 2b52a5775ce..00000000000
--- a/bdb/docs/ref/mp/intro.html
+++ /dev/null
@@ -1,59 +0,0 @@
-<!--$Id: intro.so,v 10.15 2001/01/18 20:31:37 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Berkeley DB and the memory pool</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Memory Pool Subsystem</dl></h3></td>
-<td width="1%"><a href="../../ref/log/limits.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/mp/config.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Berkeley DB and the memory pool</h1>
-<p>The memory pool subsystem is the general-purpose shared memory buffer pool
-used by Berkeley DB. This module is useful outside of the Berkeley DB package for
-processes that require page-oriented, cached, shared file access.
-<p>A memory pool is a shared memory cache shared by any number of processes
-and threads within processes. The <a href="../../api_c/env_open.html">DBENV-&gt;open</a> interface opens, and
-optionally creates, a memory pool. When that pool is no longer in use,
-it should be closed, using the <a href="../../api_c/env_close.html">DBENV-&gt;close</a> interface.
-<p>The <a href="../../api_c/memp_fopen.html">memp_fopen</a> interface opens an underlying file within the
-memory pool. When that file is no longer in use, it should be closed,
-using the <a href="../../api_c/memp_fclose.html">memp_fclose</a> interface. The <a href="../../api_c/memp_fget.html">memp_fget</a> interface
-is used to retrieve pages from files in the pool. All retrieved pages
-must be subsequently returned using the <a href="../../api_c/memp_fput.html">memp_fput</a> interface. At
-the time that pages are returned, they may be marked <b>dirty</b>, which
-causes them to be written to the backing disk file before being discarded
-from the pool. If there is insufficient room to bring a new page in the
-pool, a page is selected to be discarded from the pool. If that page is
-dirty, it is first written to the backing file. The page is selected
-using a somewhat modified least-recently-used algorithm. Pages in files
-may also be explicitly marked clean or dirty using the <a href="../../api_c/memp_fset.html">memp_fset</a>
-interface. All dirty pages in the pool from any underlying file may also
-be flushed as a group using the <a href="../../api_c/memp_fsync.html">memp_fsync</a> interface.
-<p>There are additional interfaces for manipulating the entire memory pool:
-<ul type=disc>
-<li>It is possible to gradually flush buffers from the pool in order to
-maintain a consistent percentage of clean buffers in the pool using the
-<a href="../../api_c/memp_trickle.html">memp_trickle</a> interface.
-<li>The <a href="../../utility/db_stat.html">db_stat</a> utility uses the <a href="../../api_c/memp_stat.html">memp_stat</a> interface to
-display statistics about the efficiency of the pool.
-<li>As some conversion may be necessary when pages are read or written the
-<a href="../../api_c/memp_register.html">memp_register</a> function allows applications to specify automatic
-input and output processing in these cases.
-<li>There is one additional interface that is intended for manipulating the
-memory pool, but which is specific to database systems. The
-<a href="../../api_c/memp_sync.html">memp_sync</a> interface flushes dirty pages from all files held in
-the pool up to a specified database log sequence number.
-<li>Finally, the entire pool may be discarded using the <a href="../../api_c/env_remove.html">DBENV-&gt;remove</a>
-interface.
-</ul>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/log/limits.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/mp/config.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/perl/intro.html b/bdb/docs/ref/perl/intro.html
deleted file mode 100644
index da5d93a6af7..00000000000
--- a/bdb/docs/ref/perl/intro.html
+++ /dev/null
@@ -1,42 +0,0 @@
-<!--$Id: intro.so,v 10.24 2001/01/09 18:57:28 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Using Berkeley DB with Perl</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Perl</dl></h3></td>
-<td width="1%"><a href="../../ref/java/faq.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/tcl/intro.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Using Berkeley DB with Perl</h1>
-<p>The original Perl module for Berkeley DB was DB_File, which was written to
-interface to Berkeley DB version 1.85. The newer Perl module for Berkeley DB is
-BerkeleyDB, which was written to interface to version 2.0 and subsequent
-releases. Because Berkeley DB version 2.X has a compatibility API for version
-1.85, you can (and should!) build DB_File using version 2.X of Berkeley DB,
-although DB_File will still only support the 1.85 functionality.
-<p>DB_File is distributed with the standard Perl source distribution (look
-in the directory "ext/DB_File"). You can find both DB_File and BerkeleyDB
-on CPAN, the Comprehensive Perl Archive Network of mirrored FTP sites.
-The master CPAN site is
-<a href="ftp://ftp.funet.fi/">ftp://ftp.funet.fi/</a>.
-<p>Versions of both BerkeleyDB and DB_File that are known to work correctly
-with each release of Berkeley DB are included in the distributed Berkeley DB source
-tree, in the subdirectories <b>perl.BerkeleyDB</b> and
-<b>perl.DB_File</b>. Each of those directories contains a
-<b>README</b> file with instructions on installing and using those
-modules.
-<p>The Perl interface is not maintained by Sleepycat Software. Questions
-about the DB_File and BerkeleyDB modules are best asked on the Usenet
-newsgroup comp.lang.perl.modules.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/java/faq.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/tcl/intro.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/pindex.src b/bdb/docs/ref/pindex.src
deleted file mode 100644
index 0e122ceb29e..00000000000
--- a/bdb/docs/ref/pindex.src
+++ /dev/null
@@ -1,212 +0,0 @@
-__APIREL__/ref/am/close.html#2 @closing a database
-__APIREL__/ref/am/count.html#2 @counting data items for a key
-__APIREL__/ref/am/curclose.html#2 @closing a cursor
-__APIREL__/ref/am/curclose.html#3 closing a @cursor
-__APIREL__/ref/am/curdel.html#2 @deleting records with a cursor
-__APIREL__/ref/am/curdel.html#3 deleting records with a @cursor
-__APIREL__/ref/am/curdup.html#2 @duplicating a cursor
-__APIREL__/ref/am/curdup.html#3 duplicating a @cursor
-__APIREL__/ref/am/curget.html#2 @retrieving records with a cursor
-__APIREL__/ref/am/curget.html#3 retrieving records with a @cursor
-__APIREL__/ref/am/curput.html#2 @storing records with a cursor
-__APIREL__/ref/am/curput.html#3 storing records with a @cursor
-__APIREL__/ref/am/cursor.html#2 database @cursors
-__APIREL__/ref/am/delete.html#2 @deleting records
-__APIREL__/ref/am/error.html#2 @error handling
-__APIREL__/ref/am/get.html#2 @retrieving records
-__APIREL__/ref/am/join.html#2 logical @join
-__APIREL__/ref/am/open.html#2 @opening a database
-__APIREL__/ref/am/partial.html#2 @partial record storage and retrieval
-__APIREL__/ref/am/put.html#2 @storing records
-__APIREL__/ref/am/stability.html#2 @cursor stability
-__APIREL__/ref/am/stability.html#3 cursor @stability
-__APIREL__/ref/am/stat.html#2 database @statistics
-__APIREL__/ref/am/sync.html#2 flushing the database @cache
-__APIREL__/ref/am/upgrade.html#2 @upgrading databases
-__APIREL__/ref/am/verify.html#2 database @verification
-__APIREL__/ref/am/verify.html#3 database @salvage
-__APIREL__/ref/am/verify.html#4 recovering @corrupted databases
-__APIREL__/ref/am_conf/bt_compare.html#2 specifying a Btree @comparison function
-__APIREL__/ref/am_conf/bt_recnum.html#2 retrieving Btree records by @number
-__APIREL__/ref/am_conf/byteorder.html#2 selecting a @byte order
-__APIREL__/ref/am_conf/cachesize.html#2 selecting a @cache size
-__APIREL__/ref/am_conf/dup.html#2 @duplicate data items
-__APIREL__/ref/am_conf/extentsize.html#2 selecting a Queue @extent size
-__APIREL__/ref/am_conf/h_ffactor.html#2 page @fill factor
-__APIREL__/ref/am_conf/h_hash.html#2 specifying a database @hash
-__APIREL__/ref/am_conf/h_nelem.html#2 @hash table size
-__APIREL__/ref/am_conf/intro.html#2 @access methods
-__APIREL__/ref/am_conf/logrec.html#2 logical @record numbers
-__APIREL__/ref/am_conf/pagesize.html#2 selecting a @page size
-__APIREL__/ref/am_conf/re_source.html#2 @text backing files
-__APIREL__/ref/am_conf/recno.html#2 managing @record-based databases
-__APIREL__/ref/am_conf/renumber.html#2 logically renumbering @records
-__APIREL__/ref/am_conf/select.html#2 selecting an @access method
-__APIREL__/ref/arch/apis.html#2 programmatic @APIs
-__APIREL__/ref/arch/utilities.html#2 @utilities
-__APIREL__/ref/build_unix/aix.html#2 @AIX
-__APIREL__/ref/build_unix/conf.html#2 @configuring Berkeley DB for UNIX systems
-__APIREL__/ref/build_unix/conf.html#3 configuring Berkeley DB for @UNIX systems
-__APIREL__/ref/build_unix/conf.html#4 configuring without large @file support
-__APIREL__/ref/build_unix/conf.html#--disable-bigfile Configuring Berkeley DB@--disable-bigfile
-__APIREL__/ref/build_unix/conf.html#5 configuring Berkeley DB @1.85 API compatibility
-__APIREL__/ref/build_unix/conf.html#--enable-compat185 Configuring Berkeley DB@--enable-compat185
-__APIREL__/ref/build_unix/conf.html#6 configuring the @C++ API
-__APIREL__/ref/build_unix/conf.html#--enable-cxx Configuring Berkeley DB@--enable-cxx
-__APIREL__/ref/build_unix/conf.html#--enable-debug Configuring Berkeley DB@--enable-debug
-__APIREL__/ref/build_unix/conf.html#--enable-debug_rop Configuring Berkeley DB@--enable-debug_rop
-__APIREL__/ref/build_unix/conf.html#--enable-debug_wop Configuring Berkeley DB@--enable-debug_wop
-__APIREL__/ref/build_unix/conf.html#--enable-diagnostic Configuring Berkeley DB@--enable-diagnostic
-__APIREL__/ref/build_unix/conf.html#7 building a utility to dump Berkeley DB @1.85 databases
-__APIREL__/ref/build_unix/conf.html#--enable-dump185 Configuring Berkeley DB@--enable-dump185
-__APIREL__/ref/build_unix/conf.html#8 configuring @shared libraries
-__APIREL__/ref/build_unix/conf.html#9 configuring @dynamic shared libraries
-__APIREL__/ref/build_unix/conf.html#--enable-dynamic Configuring Berkeley DB@--enable-dynamic
-__APIREL__/ref/build_unix/conf.html#10 configuring the @Java API
-__APIREL__/ref/build_unix/conf.html#--enable-java Configuring Berkeley DB@--enable-java
-__APIREL__/ref/build_unix/conf.html#--enable-posixmutexes Configuring Berkeley DB@--enable-posixmutexes
-__APIREL__/ref/build_unix/conf.html#11 configuring a @RPC client/server
-__APIREL__/ref/build_unix/conf.html#--enable-rpc Configuring Berkeley DB@--enable-rpc
-__APIREL__/ref/build_unix/conf.html#--enable-shared Configuring Berkeley DB@--enable-shared
-__APIREL__/ref/build_unix/conf.html#12 configuring the @Tcl API
-__APIREL__/ref/build_unix/conf.html#--enable-tcl Configuring Berkeley DB@--enable-tcl
-__APIREL__/ref/build_unix/conf.html#13 configuring the @test suite
-__APIREL__/ref/build_unix/conf.html#--enable-test Configuring Berkeley DB@--enable-test
-__APIREL__/ref/build_unix/conf.html#--enable-uimutexes Configuring Berkeley DB@--enable-uimutexes
-__APIREL__/ref/build_unix/conf.html#--enable-umrw Configuring Berkeley DB@--enable-umrw
-__APIREL__/ref/build_unix/conf.html#--with-tcl=DIR Configuring Berkeley DB@--with-tcl=DIR
-__APIREL__/ref/build_unix/flags.html#2 changing @compile or load options
-__APIREL__/ref/build_unix/flags.html#3 changing compile or @load options
-__APIREL__/ref/build_unix/freebsd.html#2 @FreeBSD
-__APIREL__/ref/build_unix/hpux.html#2 @HP-UX
-__APIREL__/ref/build_unix/install.html#2 @installing Berkeley DB for UNIX systems
-__APIREL__/ref/build_unix/intro.html#2 @building for UNIX
-__APIREL__/ref/build_unix/irix.html#2 @IRIX
-__APIREL__/ref/build_unix/linux.html#2 @Linux
-__APIREL__/ref/build_unix/notes.html#2 @building for UNIX FAQ
-__APIREL__/ref/build_unix/notes.html#3 building for @UNIX FAQ
-__APIREL__/ref/build_unix/osf1.html#2 @OSF/1
-__APIREL__/ref/build_unix/qnx.html#2 @QNX
-__APIREL__/ref/build_unix/sco.html#2 @SCO
-__APIREL__/ref/build_unix/shlib.html#2 @shared libraries
-__APIREL__/ref/build_unix/solaris.html#2 @Solaris
-__APIREL__/ref/build_unix/sunos.html#2 @SunOS
-__APIREL__/ref/build_unix/test.html#2 running the @test suite under UNIX
-__APIREL__/ref/build_unix/ultrix.html#2 @Ultrix
-__APIREL__/ref/build_vxworks/faq.html#2 @building for VxWorks FAQ
-__APIREL__/ref/build_vxworks/faq.html#3 building for @VxWorks FAQ
-__APIREL__/ref/build_vxworks/intro.html#2 @building for VxWorks
-__APIREL__/ref/build_vxworks/notes.html#2 @VxWorks notes
-__APIREL__/ref/build_win/faq.html#2 @building for Windows FAQ
-__APIREL__/ref/build_win/faq.html#3 building for @Windows FAQ
-__APIREL__/ref/build_win/intro.html#2 @building for Win32
-__APIREL__/ref/build_win/notes.html#2 @Windows notes
-__APIREL__/ref/build_win/test.html#2 running the @test suite under Windows
-__APIREL__/ref/build_win/test.html#3 running the test suite under @Windows
-__APIREL__/ref/cam/intro.html#2 @Concurrent Data Store
-__APIREL__/ref/debug/common.html#2 @debugging applications
-__APIREL__/ref/distrib/layout.html#2 @source code layout
-__APIREL__/ref/dumpload/text.html#2 loading @text into databases
-__APIREL__/ref/dumpload/utility.html#2 dumping/loading @text to/from databases
-__APIREL__/ref/env/create.html#2 database @environment
-__APIREL__/ref/env/naming.html#2 file @naming
-__APIREL__/ref/env/naming.html#db_home File naming@db_home
-__APIREL__/ref/env/naming.html#DB_HOME File naming@DB_HOME
-__APIREL__/ref/env/naming.html#DB_CONFIG File naming@DB_CONFIG
-__APIREL__/ref/env/remote.html#2 remote @filesystems
-__APIREL__/ref/env/security.html#2 @security
-__APIREL__/ref/intro/products.html#2 Sleepycat Software's Berkeley DB @products
-__APIREL__/ref/install/file.html#2 @/etc/magic
-__APIREL__/ref/install/file.html#3 @file utility
-__APIREL__/ref/java/compat.html#2 @Java compatibility
-__APIREL__/ref/java/conf.html#2 @Java configuration
-__APIREL__/ref/java/faq.html#2 Java @FAQ
-__APIREL__/ref/java/faq.html#3 @Java FAQ
-__APIREL__/ref/lock/am_conv.html#2 @locking conventions
-__APIREL__/ref/lock/cam_conv.html#2 Berkeley DB Concurrent Data Store @locking conventions
-__APIREL__/ref/lock/config.html#2 @locking configuration
-__APIREL__/ref/lock/dead.html#2 @deadlocks
-__APIREL__/ref/lock/intro.html#2 @locking introduction
-__APIREL__/ref/lock/max.html#2 sizing the @locking subsystem
-__APIREL__/ref/lock/nondb.html#2 @locking and non-Berkeley DB applications
-__APIREL__/ref/lock/notxn.html#2 @locking without transactions
-__APIREL__/ref/lock/page.html#2 page-level @locking
-__APIREL__/ref/lock/stdmode.html#2 standard @lock modes
-__APIREL__/ref/lock/twopl.html#2 two-phase @locking
-__APIREL__/ref/log/config.html#2 @logging configuration
-__APIREL__/ref/log/intro.html#2 @logging introduction
-__APIREL__/ref/log/limits.html#2 @log file limits
-__APIREL__/ref/mp/config.html#2 @memory pool configuration
-__APIREL__/ref/perl/intro.html#2 @Perl
-__APIREL__/ref/program/appsignals.html#2 application @signal handling
-__APIREL__/ref/program/byteorder.html#2 @byte ordering
-__APIREL__/ref/program/byteorder.html#3 byte @endian
-__APIREL__/ref/program/compatible.html#2 @interface compatibility
-__APIREL__/ref/program/dbsizes.html#2 database @limits
-__APIREL__/ref/program/diskspace.html#2 @disk space requirements
-__APIREL__/ref/program/environ.html#2 @environment variables
-__APIREL__/ref/program/errorret.html#2 @error returns
-__APIREL__/ref/program/errorret.html#3 @error name space
-__APIREL__/ref/program/errorret.html#DB_NOTFOUND Error returns to applications@DB_NOTFOUND
-__APIREL__/ref/program/errorret.html#DB_KEYEMPTY Error returns to applications@DB_KEYEMPTY
-__APIREL__/ref/program/errorret.html#DB_LOCK_DEADLOCK Error returns to applications@DB_LOCK_DEADLOCK
-__APIREL__/ref/program/errorret.html#DB_LOCK_NOTGRANTED Error returns to applications@DB_LOCK_NOTGRANTED
-__APIREL__/ref/program/errorret.html#DB_RUNRECOVERY Error returns to applications@DB_RUNRECOVERY
-__APIREL__/ref/program/mt.html#2 building @threaded applications
-__APIREL__/ref/program/namespace.html#2 Berkeley DB library @name spaces
-__APIREL__/ref/program/scope.html#2 Berkeley DB handle @scope
-__APIREL__/ref/program/scope.html#3 Berkeley DB @free-threaded handles
-__APIREL__/ref/rpc/client.html#2 @RPC client
-__APIREL__/ref/rpc/server.html#2 @RPC server
-__APIREL__/ref/sendmail/intro.html#2 @Sendmail
-__APIREL__/ref/tcl/intro.html#2 loading Berkeley DB with @Tcl
-__APIREL__/ref/tcl/faq.html#2 Tcl @FAQ
-__APIREL__/ref/tcl/faq.html#3 @Tcl FAQ
-__APIREL__/ref/tcl/program.html#2 @Tcl API programming notes
-__APIREL__/ref/tcl/using.html#2 using Berkeley DB with @Tcl
-__APIREL__/ref/test/run.html#2 running the @test suite
-__APIREL__/ref/transapp/admin.html#2 administering @transaction protected applications
-__APIREL__/ref/transapp/archival.html#2 archival in @transaction protected applications
-__APIREL__/ref/transapp/archival.html#3 @catastrophic recovery
-__APIREL__/ref/transapp/checkpoint.html#2 checkpoints in @transaction protected applications
-__APIREL__/ref/transapp/deadlock.html#2 deadlock detection in @transaction protected applications
-__APIREL__/ref/transapp/filesys.html#2 recovery and @filesystem operations
-__APIREL__/ref/transapp/intro.html#2 @Transactional Data Store
-__APIREL__/ref/transapp/logfile.html#2 @log file removal
-__APIREL__/ref/transapp/reclimit.html#2 Berkeley DB @recoverability
-__APIREL__/ref/transapp/recovery.html#2 recovery in @transaction protected applications
-__APIREL__/ref/transapp/throughput.html#2 @transaction throughput
-__APIREL__/ref/txn/config.html#2 @transaction configuration
-__APIREL__/ref/txn/intro.html#2 Berkeley DB and @transactions
-__APIREL__/ref/txn/limits.html#2 @transaction limits
-__APIREL__/ref/txn/nested.html#2 nested @transactions
-__APIREL__/ref/upgrade.2.0/intro.html#2 Upgrading to release @2.0
-__APIREL__/ref/upgrade.3.0/intro.html#2 Upgrading to release @3.0
-__APIREL__/ref/upgrade.3.1/intro.html#2 Upgrading to release @3.1
-__APIREL__/ref/upgrade.3.2/intro.html#2 Upgrading to release @3.2
-__APIREL__/ref/xa/config.html#2 configuring Berkeley DB with the @Tuxedo System
-__APIREL__/ref/xa/intro.html#2 @XA Resource Manager
-__APIREL__/utility/berkeley_db_svc.html#2 @berkeley_db_svc
-__APIREL__/utility/berkeley_db_svc.html#3 utility to support @RPC client/server
-__APIREL__/utility/db_archive.html#2 @db_archive
-__APIREL__/utility/db_archive.html#3 utility to @archive log files
-__APIREL__/utility/db_checkpoint.html#2 @db_checkpoint
-__APIREL__/utility/db_checkpoint.html#3 utility to take @checkpoints
-__APIREL__/utility/db_deadlock.html#2 @db_deadlock
-__APIREL__/utility/db_deadlock.html#3 utility to detect @deadlocks
-__APIREL__/utility/db_dump.html#2 @db_dump
-__APIREL__/utility/db_dump.html#3 utility to @dump databases as text files
-__APIREL__/utility/db_load.html#2 @db_load
-__APIREL__/utility/db_load.html#3 utility to @load text files into databases
-__APIREL__/utility/db_printlog.html#2 @db_printlog
-__APIREL__/utility/db_printlog.html#3 utility to display @log files as text
-__APIREL__/utility/db_recover.html#2 @db_recover
-__APIREL__/utility/db_recover.html#3 utility to @recover database environments
-__APIREL__/utility/db_stat.html#2 @db_stat
-__APIREL__/utility/db_stat.html#3 utility to display database and environment @statistics
-__APIREL__/utility/db_upgrade.html#2 @db_upgrade
-__APIREL__/utility/db_upgrade.html#3 utility to upgrade @database files
-__APIREL__/utility/db_upgrade.html#4 utility to @upgrade database files
-__APIREL__/utility/db_verify.html#2 @db_verify
-__APIREL__/utility/db_verify.html#3 utility to verify @database files
-__APIREL__/utility/db_verify.html#4 utility to @verify database files
diff --git a/bdb/docs/ref/program/appsignals.html b/bdb/docs/ref/program/appsignals.html
deleted file mode 100644
index 2b1d99bd6f3..00000000000
--- a/bdb/docs/ref/program/appsignals.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!--$Id: appsignals.so,v 10.25 2000/07/15 15:49:07 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Application signal handling</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Programmer Notes</dl></h3></td>
-<td width="1%"><a href="../../ref/xa/faq.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/program/errorret.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Application signal handling</h1>
-<p>When applications using Berkeley DB receive signals, it is important that they
-exit gracefully, discarding any Berkeley DB locks that they may hold. This is
-normally done by setting a flag when a signal arrives, and then checking
-for that flag periodically within the application. As Berkeley DB is not
-reentrant, the signal handler should not attempt to release locks and/or
-close the database handles itself. Reentering Berkeley DB is not guaranteed to
-work correctly and the results are undefined.
-<p>If an application exits holding a lock, the situation is no different
-than if the application crashed, and all applications participating in
-the database environment must be shutdown, and then recovery must be
-performed. If this is not done, databases may be left in an
-inconsistent state or locks the application held may cause unresolvable
-deadlocks inside the environment, causing applications to hang.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/xa/faq.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/program/errorret.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/program/byteorder.html b/bdb/docs/ref/program/byteorder.html
deleted file mode 100644
index 6569ba88b27..00000000000
--- a/bdb/docs/ref/program/byteorder.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<!--$Id: byteorder.so,v 10.20 2000/03/18 21:43:15 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Byte ordering</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a> <a name="3"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Programmer Notes</dl></h3></td>
-<td width="1%"><a href="../../ref/program/dbsizes.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/program/diskspace.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Byte ordering</h1>
-<p>The database files created by Berkeley DB can be created in either little or
-big-endian formats. By default, the native format of the machine on which
-the database is created will be used. Any format database can be used on
-a machine with a different native format, although it is possible that
-the application will incur a performance penalty for the run-time
-conversion.
-<p>No user-specified data is converted in any way at all. Key or data items
-stored on machines of one format will be returned to the application
-exactly as stored on machines of another format.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/program/dbsizes.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/program/diskspace.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/program/compatible.html b/bdb/docs/ref/program/compatible.html
deleted file mode 100644
index 72db97a5c36..00000000000
--- a/bdb/docs/ref/program/compatible.html
+++ /dev/null
@@ -1,32 +0,0 @@
-<!--$Id: compatible.so,v 10.29 2000/07/25 16:31:19 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Compatibility with historic interfaces</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Programmer Notes</dl></h3></td>
-<td width="1%"><a href="../../ref/program/diskspace.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/program/recimp.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Compatibility with historic interfaces</h1>
-<p>The Berkeley DB version 2 library provides backward compatible interfaces for
-the historic UNIX <a href="../../api_c/dbm.html">dbm</a>, <a href="../../api_c/dbm.html">ndbm</a> and <a href="../../api_c/hsearch.html">hsearch</a>
-interfaces. It also provides a backward compatible interface for the
-historic Berkeley DB 1.85 release.
-<p>Berkeley DB version 2 does not provide database compatibility for any of the
-above interfaces, and existing databases must be converted manually. To
-convert existing databases from the Berkeley DB 1.85 format to the Berkeley DB version
-2 format, review the <a href="../../utility/db_dump.html">db_dump185</a> and <a href="../../utility/db_load.html">db_load</a> information.
-No utilities are provided to convert UNIX <a href="../../api_c/dbm.html">dbm</a>, <a href="../../api_c/dbm.html">ndbm</a> or
-<a href="../../api_c/hsearch.html">hsearch</a> databases.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/program/diskspace.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/program/recimp.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/program/copy.html b/bdb/docs/ref/program/copy.html
deleted file mode 100644
index 80b6f942a78..00000000000
--- a/bdb/docs/ref/program/copy.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<!--$Id: copy.so,v 10.4 2000/03/18 21:43:15 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Copying databases</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Programmer Notes</dl></h3></td>
-<td width="1%"><a href="../../ref/program/namespace.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/program/version.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Copying databases</h1>
-<p>Because file identification cookies (e.g., file names, device and inode
-numbers, volume and file IDs, etc.) are not necessarily unique or
-maintained across system reboots, each Berkeley DB database file contains a
-20-byte file identification bytestring that is stored in the first page
-of the database at a page byte offset of 36 bytes. When multiple
-processes or threads open the same database file in Berkeley DB, it is this
-bytestring that is used to ensure that the same underlying pages are
-updated in the shared memory buffer pool no matter which Berkeley DB handle is
-used for the operation.
-<p>It is usually a bad idea to physically copy a database to a new name. In
-the few cases where copying is the best solution for your application,
-you must guarantee there are never two different databases with the same
-file identification bytestring in the memory pool at the same time.
-Copying databases is further complicated by the fact that the shared
-memory buffer pool does not discard all cached copies of pages for a
-database when the database is logically closed, that is, when
-<a href="../../api_c/db_close.html">DB-&gt;close</a> is called. Nor is there a Berkeley DB interface to explicitly
-discard pages from the shared memory buffer pool for any particular
-database.
-<p>Before copying a database, you must ensure that all modified pages have
-been written from the memory pool cache to the backing database file.
-This is done using the <a href="../../api_c/db_sync.html">DB-&gt;sync</a> or <a href="../../api_c/db_close.html">DB-&gt;close</a> interfaces.
-<p>Before using a copy of a database from Berkeley DB, you must ensure that all
-pages from any database with the same bytestring have been removed from
-the memory pool cache. If the environment in which you intend to open
-the copy of the database potentially has pages from files with identical
-bytestrings to the copied database (which is likely to be the case), there
-are a few possible solutions:
-<p><ol>
-<p><li>Remove the environment, either explicitly or by calling <a href="../../api_c/env_remove.html">DBENV-&gt;remove</a>.
-Note, this will not allow you to access both the original and copy of the
-database at the same time.
-<p><li>Overwrite the bytestring in the copied database with a new bytestring.
-This allows you to access both the original and copy of the database at
-the same time.
-<p><li>Create a new file that will have a new bytestring. The simplest
-way to create a new file that will have a new bytestring is to call the
-<a href="../../utility/db_dump.html">db_dump</a> utility to dump out the contents of the database, and then
-use the <a href="../../utility/db_load.html">db_load</a> utility to load the dumped output into a new file
-name. This allows you to access both the original and copy of the
-database at the same time.
-</ol>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/program/namespace.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/program/version.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/program/dbsizes.html b/bdb/docs/ref/program/dbsizes.html
deleted file mode 100644
index 69b45868d71..00000000000
--- a/bdb/docs/ref/program/dbsizes.html
+++ /dev/null
@@ -1,45 +0,0 @@
-<!--$Id: dbsizes.so,v 10.22 2000/03/18 21:43:16 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Database limits</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Programmer Notes</dl></h3></td>
-<td width="1%"><a href="../../ref/program/version.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/program/byteorder.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Database limits</h1>
-<p>The largest database file that Berkeley DB can handle depends on the page size
-selected by the application. Berkeley DB stores database file page numbers as
-unsigned 32-bit numbers and database file page sizes as unsigned 16-bit
-numbers. Using the maximum database page size of 65536, this results in
-a maximum database file size of 2<sup>48</sup> (256 terabytes). The
-minimum database page size is 512 bytes, which results in a minimum
-maximum database size of 2<sup>41</sup> (2 terabytes).
-<p>The largest database file Berkeley DB can support is potentially further limited
-if the host system does not have filesystem support for files larger than
-2<sup>32</sup>, including the ability to seek to absolute offsets within
-those files.
-<p>The largest key or data item that Berkeley DB can support is largely limited
-by available memory. Specifically, while key and data byte strings may
-be of essentially unlimited length, any one of them must fit into
-available memory so that it can be returned to the application. As some
-of the Berkeley DB interfaces return both key and data items to the application,
-those interfaces will require that any key/data pair fit simultaneously
-into memory. Further, as the access methods may need to compare key and
-data items with other key and data items, it may be a requirement that
-any two key or two data items fit into available memory. Finally, when
-writing applications supporting transactions, it may be necessary to have
-an additional copy of any data item in memory for logging purposes.
-<p>The maximum Btree depth is 255.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/program/version.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/program/byteorder.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/program/diskspace.html b/bdb/docs/ref/program/diskspace.html
deleted file mode 100644
index fb8425d8a26..00000000000
--- a/bdb/docs/ref/program/diskspace.html
+++ /dev/null
@@ -1,145 +0,0 @@
-<!--$Id: diskspace.so,v 10.9 2000/03/22 21:56:11 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Disk space requirements</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Programmer Notes</dl></h3></td>
-<td width="1%"><a href="../../ref/program/byteorder.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/program/compatible.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Disk space requirements</h1>
-<p>It is possible to estimate the total database size based on the size of
-the data. Simply put, the following calculations attempt to figure out
-how many bytes you will need to hold a set of data and then how many pages
-it will take to actually store it on disk.
-<p>Space freed by deleting key/data pairs from a Btree or Hash database is
-never returned to the filesystem, although it is reused where possible.
-This means that the Btree and Hash databases are grow-only. If enough
-keys are deleted from a database that shrinking the underlying file is
-desirable, you should create a new database and insert the records from
-the old one into it.
-<p>These are rough estimates at best. For example, they do not take into
-account overflow records, filesystem metadata information, or real-life
-situations where the sizes of key and data items are wildly variable, and
-the page-fill factor changes over time.
-<h3>Btree</h3>
-<p>The formulas for the Btree access method are as follows:
-<p><blockquote><pre>useful-bytes-per-page = (page-size - page-overhead) * page-fill-factor
-<p>
-bytes-of-data = n-records *
- (bytes-per-entry + page-overhead-for-two-entries)
-<p>
-n-pages-of-data = bytes-of-data / bytes-per-page
-<p>
-total-pages-on-disk = n-pages-of-data * page-size
-</pre></blockquote>
-<p>The <b>useful-bytes-per-page</b> is a measure of the bytes on each page
-that will actually hold the application data. It is computed as the total
-number of bytes on the page that are available to hold application data,
-corrected by the percentage of the page that is likely to contain data.
-The reason for this correction is that the percentage of a page that
-contains application data can vary from close to 50% after a page split,
-to almost 100% if the entries in the database were inserted in sorted
-order. Obviously, the <b>page-fill-factor</b> can drastically alter
-the amount of disk space required to hold any particular data set. The
-page-fill factor of any existing database can be displayed using the
-<a href="../../utility/db_stat.html">db_stat</a> utility.
-<p>As an example, using an 8K page size, with an 85% page-fill factor, there
-are 6941 bytes of useful space on each page:
-<p><blockquote><pre>6941 = (8192 - 26) * .85</pre></blockquote>
-<p>The total <b>bytes-of-data</b> is an easy calculation: it is the number
-of key/data pairs plus the overhead required to store each pair on a page.
-The overhead to store a single item on a Btree page is 5 bytes. So,
-assuming 60,000,000 key/data pairs, each of which is 8 bytes long, there
-are 1440000000 bytes, or roughly 1.34GB, of total data:
-<p><blockquote><pre>1560000000 = 60000000 * ((8 * 2) + (5 * 2))</pre></blockquote>
-<p>The total pages of data, <b>n-pages-of-data</b>, is the
-<b>bytes-of-data</b> divided by the <b>useful-bytes-per-page</b>. In
-the example, there are 224751 pages of data.
-<p><blockquote><pre>224751 = 1560000000 / 6941</pre></blockquote>
-<p>The total bytes of disk space for the database is <b>n-pages-of-data</b>
-multiplied by the <b>page-size</b>. In the example, the result is
-1841160192 bytes, or roughly 1.71GB.
-<p><blockquote><pre>1841160192 = 224751 * 8192</pre></blockquote>
-<h3>Hash</h3>
-<p>The formulas for the Hash access method are as follows:
-<p><blockquote><pre>useful-bytes-per-page = (page-size - page-overhead)
-<p>
-bytes-of-data = n-records *
- (bytes-per-entry + page-overhead-for-two-entries)
-<p>
-n-pages-of-data = bytes-of-data / bytes-per-page
-<p>
-total-pages-on-disk = n-pages-of-data * page-size
-</pre></blockquote>
-<p>The <b>useful-bytes-per-page</b> is a measure of the bytes on each page
-that will actually hold the application data. It is computed as the total
-number of bytes on the page that are available to hold application data.
-If the application has explicitly set a page fill factor, then pages will
-not necessarily be kept full. For databases with a preset fill factor,
-see the calculation below. The page-overhead for Hash databases is 26
-bytes and the page-overhead-for-two-entries is 6 bytes.
-<p>As an example, using an 8K page size, there are 8166 bytes of useful space
-on each page:
-<p><blockquote><pre>8166 = (8192 - 26)</pre></blockquote>
-<p>The total <b>bytes-of-data</b> is an easy calculation: it is the number
-of key/data pairs plus the overhead required to store each pair on a page.
-In this case that's 6 bytes per pair. So, assuming 60,000,000 key/data
-pairs, each of which is 8 bytes long, there are 1320000000 bytes, or
-roughly 1.23GB, of total data:
-<p><blockquote><pre>1320000000 = 60000000 * ((16 + 6))</pre></blockquote>
-<p>The total pages of data, <b>n-pages-of-data</b>, is the
-<b>bytes-of-data</b> divided by the <b>useful-bytes-per-page</b>. In
-this example, there are 161646 pages of data.
-<p><blockquote><pre>161646 = 1320000000 / 8166</pre></blockquote>
-<p>The total bytes of disk space for the database is <b>n-pages-of-data</b>
-multiplied by the <b>page-size</b>. In the example, the result is
-1324204032 bytes, or roughly 1.23GB.
-<p><blockquote><pre>1324204032 = 161646 * 8192</pre></blockquote>
-<p>Now, let's assume that the application specified a fill factor explicitly.
-The fill factor indicates the target number of items to place on a single
-page (a fill factor might reduce the utilization of each page, but it can
-be useful in avoiding splits and preventing buckets from becoming too
-large. Using our estimates above, each item is 22 bytes (16 + 6) and
-there are 8166 useful bytes on a page (8192 - 26). That means that, on
-average, you can fit 371 pairs per page.
-<p><blockquote><pre>371 = 8166 / 22</pre></blockquote>
-<p>However, let's assume that the application designer knows that while most
-items are 8 bytes, they can sometimes be as large as 10 and it's very
-important to avoid overflowing buckets and splitting. Then, the
-application might specify a fill factor of 314.
-<p><blockquote><pre>314 = 8166 / 26</pre></blockquote>
-<p>With a fill factor of 314, then the formula for computing database size
-is:
-<p><blockquote><pre>npages = npairs / pairs-per-page</pre></blockquote>
-<p>or 191082.
-<p><blockquote><pre>191082 = 60000000 / 314</pre></blockquote>
-<p>At 191082 pages, the total database size would be 1565343744 or 1.46GB.
-<p><blockquote><pre>1565343744 = 191082 * 8192 </pre></blockquote>
-<p>There are a few additional caveats with respect to Hash databases. This
-discussion assumes that the hash function does a good job of evenly
-distributing keys among hash buckets. If the function does not do this,
-you may find your table growing significantly larger than you expected.
-Secondly, in order to provide support for Hash databases co-existing with
-other databases in a single file, pages within a Hash database are
-allocated in power-of-2 chunks. That means that a Hash database with 65
-buckets will take up as much space as a Hash database with 128 buckets;
-each time the Hash database grows beyond its current power-of-two number
-of buckets, it allocates space for the next power-of-two buckets. This
-space may be sparsely allocated in the file system, but the files will
-appear to be their full size. Finally, because of this need for
-contiguous allocation, overflow pages and duplicate pages can be allocated
-only at specific points in the file, and this too can lead to sparse hash
-tables.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/program/byteorder.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/program/compatible.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/program/environ.html b/bdb/docs/ref/program/environ.html
deleted file mode 100644
index 7f56109b5d7..00000000000
--- a/bdb/docs/ref/program/environ.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!--$Id: environ.so,v 10.17 2000/03/18 21:43:16 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Environment variables</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Programmer Notes</dl></h3></td>
-<td width="1%"><a href="../../ref/program/errorret.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/program/mt.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Environment variables</h1>
-<p>The Berkeley DB library uses the following environment variables:
-<p><dl compact>
-<p><dt>DB_HOME<dd>If the environment variable DB_HOME is set, it is used as part of
-<a href="../../ref/env/naming.html">File Naming</a>.
-Note, for the DB_HOME variable to take effect, either the
-<a href="../../api_c/env_open.html#DB_USE_ENVIRON">DB_USE_ENVIRON</a> or <a href="../../api_c/env_open.html#DB_USE_ENVIRON_ROOT">DB_USE_ENVIRON_ROOT</a> flags must be
-specified to <a href="../../api_c/env_open.html">DBENV-&gt;open</a>.
-<p><dt>TMPDIR, TEMP, TMP, TempFolder<dd>The TMPDIR, TEMP, TMP and TempFolder environment variables are all
-checked as locations in which to create temporary files. See
-<a href="../../api_c/env_set_tmp_dir.html">DBENV-&gt;set_tmp_dir</a> for more information.
-</dl>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/program/errorret.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/program/mt.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/program/errorret.html b/bdb/docs/ref/program/errorret.html
deleted file mode 100644
index fc6ad650d3e..00000000000
--- a/bdb/docs/ref/program/errorret.html
+++ /dev/null
@@ -1,108 +0,0 @@
-<!--$Id: errorret.so,v 10.34 2000/12/31 19:26:21 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Error returns to applications</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Programmer Notes</dl></h3></td>
-<td width="1%"><a href="../../ref/program/appsignals.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/program/environ.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Error returns to applications</h1>
-<p>Except for the historic <a href="../../api_c/dbm.html">dbm</a>, <a href="../../api_c/dbm.html">ndbm</a> and <a href="../../api_c/hsearch.html">hsearch</a>
-interfaces, Berkeley DB does not use the global variable <b>errno</b> to
-return error values. The return values for all Berkeley DB functions are
-grouped into three categories:
-<p><dl compact>
-<p><dt>0<dd>A return value of 0 indicates that the operation was successful.
-<p><dt>&gt; 0<dd>A return value that is greater than 0 indicates that there was a system
-error. The <b>errno</b> value returned by the system is returned by
-the function, e.g., when a Berkeley DB function is unable to allocate memory,
-the return value from the function will be ENOMEM.
-<p><dt>&lt; 0<dd>A return value that is less than 0 indicates a condition that was not
-a system failure, but was not an unqualified success, either. For
-example, a routine to retrieve a key/data pair from the database may
-return DB_NOTFOUND when the key/data pair does not appear in
-the database, as opposed to the value of 0, which would be returned if
-the key/data pair were found in the database.
-<p> <a name="3"><!--meow--></a>
-All values returned by Berkeley DB functions are less than 0 in order to avoid
-conflict with possible values of <b>errno</b>. Specifically, Berkeley DB
-reserves all values from -30,800 to -30,999 to itself as possible error
-values. There are a few Berkeley DB interfaces where it is possible for an
-application function to be called by a Berkeley DB function and subsequently
-fail with an application-specific return. Such failure returns will be
-passed back to the function that originally called a Berkeley DB interface.
-To avoid ambiguity as to the cause of the error, error values separate
-from the Berkeley DB error name space should be used.
-</dl>
-While possible error returns are specified by each individual function's
-manual page, there are a few error returns that deserve special mention:
-<h3><a name="DB_NOTFOUND">DB_NOTFOUND</a> and <a name="DB_KEYEMPTY">DB_KEYEMPTY</a></h3>
-<p>There are two special return values that are similar in meaning, and that
-are returned in similar situations, and therefore might be confused:
-DB_NOTFOUND and DB_KEYEMPTY.
-<p>The DB_NOTFOUND error return indicates that the requested key/data
-pair did not exist in the database or that start- or end-of-file has been
-reached.
-<p>The DB_KEYEMPTY error return indicates that the requested key/data
-pair logically exists but was never explicitly created by the application
-(the Recno and Queue access methods will automatically create key/data
-pairs under some circumstances; see <a href="../../api_c/db_open.html">DB-&gt;open</a> for more
-information), or that the requested key/data pair was deleted and never
-re-created. In addition, the Queue access method will return
-DB_KEYEMPTY for records which were created as part of a
-transaction which was later aborted, and never re-created.
-<h3><a name="DB_LOCK_DEADLOCK">DB_LOCK_DEADLOCK</a></h3>
-<p>When multiple threads of control are modifying the database, there is
-normally the potential for deadlock. In Berkeley DB, deadlock is signified by
-an error return from the Berkeley DB function of the value
-DB_LOCK_DEADLOCK. Whenever a Berkeley DB function returns
-DB_LOCK_DEADLOCK, the enclosing transaction should be aborted.
-<p>Any Berkeley DB function that attempts to acquire locks can potentially return
-DB_LOCK_DEADLOCK. Practically speaking, the safest way to deal
-with applications that can deadlock is to handle an
-DB_LOCK_DEADLOCK return from any Berkeley DB access method call.
-<h3><a name="DB_LOCK_NOTGRANTED">DB_LOCK_NOTGRANTED</a></h3>
-<p>When multiple threads of control are modifying the database, there is
-normally the potential for deadlock. In order to avoid deadlock,
-applications may specify, on a per-transaction basis, that if a lock is
-unavailable, the Berkeley DB operation should return immediately instead of
-waiting on the lock. The error return in this case will be
-DB_LOCK_NOTGRANTED. Whenever a Berkeley DB function returns
-DB_LOCK_NOTGRANTED, the enclosing transaction should be aborted.
-<h3><a name="DB_RUNRECOVERY">DB_RUNRECOVERY</a></h3>
-<p>There exists a class of errors that Berkeley DB considers fatal to an entire
-Berkeley DB environment. An example of this type of error is a corrupted
-database, or a log write failure because the disk is out of free space.
-The only way to recover from these failures is to have all threads of
-control exit the Berkeley DB environment, run recovery of the environment, and
-re-enter Berkeley DB. (It is not strictly necessary that the processes exit,
-although that is the only way to recover system resources, such as file
-descriptors and memory, allocated by Berkeley DB.)
-<p>When this type of error is encountered, the error value
-DB_RUNRECOVERY is returned. This error can be returned by any
-Berkeley DB interface. Once DB_RUNRECOVERY is returned by any
-interface, it will be returned from all subsequent Berkeley DB calls made by
-any threads or processes participating in the environment.
-<p>Optionally, applications may also specify a fatal-error callback function
-using the <a href="../../api_c/env_set_paniccall.html">DBENV-&gt;set_paniccall</a> function. This callback function will be
-called with two arguments: a reference to the DB_ENV structure associated
-with the environment, and the <b>errno</b> value associated with the
-underlying error that caused the problem.
-<p>Applications can handle such fatal errors in one of two ways: by checking
-for DB_RUNRECOVERY as part of their normal Berkeley DB error return
-checking, similarly to DB_LOCK_DEADLOCK or any other error, or,
-in applications that have no cleanup processing of their own, by simply
-exiting the application when the callback function is called.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/program/appsignals.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/program/environ.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/program/extending.html b/bdb/docs/ref/program/extending.html
deleted file mode 100644
index 6f276d8dca5..00000000000
--- a/bdb/docs/ref/program/extending.html
+++ /dev/null
@@ -1,242 +0,0 @@
-<!--$Id: extending.so,v 10.32 2000/07/25 16:31:19 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Application-specific logging and recovery</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Programmer Notes</dl></h3></td>
-<td width="1%"><a href="../../ref/program/recimp.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/program/runtime.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Application-specific logging and recovery</h1>
-<p>Berkeley DB includes tools to assist in the development of application-specific
-logging and recovery. Specifically, given a description of the
-information to be logged, these tools will automatically create logging
-functions (functions that take the values as parameters and construct a
-single record that is written to the log), read functions (functions that
-read a log record and unmarshall the values into a structure that maps
-onto the values you chose to log), a print function (for debugging),
-templates for the recovery functions, and automatic dispatching to your
-recovery functions.
-<h3>Defining Application-Specific Operations</h3>
-<p>Log records are described in files named XXX.src, where "XXX" is a
-unique prefix. The prefixes currently used in the Berkeley DB package are
-btree, crdel, db, hash, log, qam, and txn. These files contain interface
-definition language descriptions for each type of log record that
-is supported.
-<p>All lines beginning with a hash character in <b>.src</b> files are
-treated as comments.
-<p>The first non-comment line in the file should begin with the keyword
-PREFIX followed by a string that will be prepended to every function.
-Frequently, the PREFIX is either identical or similar to the name of the
-<b>.src</b> file.
-<p>The rest of the file consists of one or more log record descriptions.
-Each log record description begins with the line:
-<p><blockquote><pre>BEGIN RECORD_NAME RECORD_NUMBER</pre></blockquote>
-<p>and ends with the line:
-<p><blockquote><pre>END</pre></blockquote>
-<p>The RECORD_NAME keyword should be replaced with a unique record name for
-this log record. Record names must only be unique within <b>.src</b>
-files.
-<p>The RECORD_NUMBER keyword should be replaced with a record number. Record
-numbers must be unique for an entire application, that is, both
-application-specific and Berkeley DB log records must have unique values.
-Further, as record numbers are stored in log files, which often must be
-portable across application releases, no record number should ever be
-re-used. The record number space below 10,000 is reserved for Berkeley DB
-itself, applications should choose record number values equal to or
-greater than 10,000.
-<p>Between the BEGIN and END statements, there should be one line for each
-data item that will be logged in this log record. The format of these
-lines is as follows:
-<p><blockquote><pre>ARG | DBT | POINTER variable_name variable_type printf_format</pre></blockquote>
-<p>The keyword ARG indicates that the argument is a simple parameter of the
-type specified. The keyword DBT indicates that the argument is a DBT
-containing a length and pointer. The keyword PTR indicates that the
-argument is a pointer to the data type specified and that the entire type
-should be logged.
-<p>The variable name is the field name within the structure that will be used
-to reference this item. The variable type is the C type of the variable,
-and the printf format should be "s", for string, "d" for signed integral
-type, or "u" for unsigned integral type.
-<h3>Automatically Generated Functions</h3>
-<p>For each log record description found in the file, the following structure
-declarations and #defines will be created in the file PREFIX_auto.h.
-<p><blockquote><pre><p>
-#define DB_PREFIX_RECORD_TYPE /* Integer ID number */
-<p>
-typedef struct _PREFIX_RECORD_TYPE_args {
- /*
- * These three fields are generated for every record.
- */
- u_int32_t type; /* Record type used for dispatch. */
-<p>
- /*
- * Transaction id that identifies the transaction on whose
- * behalf the record is being logged.
- */
- DB_TXN *txnid;
-<p>
- /*
- * The LSN returned by the previous call to log for
- * this transaction.
- */
- DB_LSN *prev_lsn;
-<p>
- /*
- * The rest of the structure contains one field for each of
- * the entries in the record statement.
- */
-};</pre></blockquote>
-<p>The DB_PREFIX_RECORD_TYPE will be described in terms of a value
-DB_PREFIX_BEGIN, which should be specified by the application writer in
-terms of the library provided DB_user_BEGIN macro (this is the value of
-the first identifier available to users outside the access method system).
-<p>In addition to the PREFIX_auto.h file, a file named PREFIX_auto.c is
-created, containing the following functions for each record type:
-<p><dl compact>
-<p><dt>The log function, with the following parameters:<dd><p><dl compact>
-<p><dt>dbenv<dd>The environment handle returned by <a href="../../api_c/env_create.html">db_env_create</a>.
-<p><dt>txnid<dd>The transaction identifier returned by <a href="../../api_c/txn_begin.html">txn_begin</a>.
-<p><dt>lsnp<dd>A pointer to storage for an LSN into which the LSN of the new log record
-will be returned.
-<p><dt>syncflag<dd>A flag indicating if the record must be written synchronously. Valid
-values are 0 and <a href="../../api_c/log_put.html#DB_FLUSH">DB_FLUSH</a>.
-</dl>
-<p>The log function marshalls the parameters into a buffer and calls
-<a href="../../api_c/log_put.html">log_put</a> on that buffer returning 0 on success and 1 on failure.
-<p><dt>The read function with the following parameters:<dd>
-<p><dl compact>
-<p><dt>recbuf<dd>A buffer.
-<p><dt>argp<dd>A pointer to a structure of the appropriate type.
-</dl>
-<p>The read function takes a buffer and unmarshalls its contents into a
-structure of the appropriate type. It returns 0 on success and non-zero
-on error. After the fields of the structure have been used, the pointer
-returned from the read function should be freed.
-<p><dt>The recovery function with the following parameters:<dd><p><dl compact>
-<p><dt>dbenv<dd>The handle returned from the <a href="../../api_c/env_create.html">db_env_create</a> call which identifies
-the environment in which recovery is running.
-<p><dt>rec<dd>The <b>rec</b> parameter is the record being recovered.
-<p><dt>lsn<dd>The log sequence number of the record being recovered.
-<p><dt>op<dd>A parameter of type db_recops which indicates what operation is being run
-(DB_TXN_OPENFILES, DB_TXN_ABORT, DB_TXN_BACKWARD_ROLL, DB_TXN_FORWARD_ROLL).
-<p><dt>info<dd>A structure passed by the dispatch function. It is used to contain a list
-of committed transactions and information about files that may have been
-deleted.
-</dl>
-<p>The recovery function is called on each record read from the log during
-system recovery or transaction abort.
-<p>The recovery function is created in the file PREFIX_rtemp.c since it
-contains templates for recovery functions. The actual recovery functions
-must be written manually, but the templates usually provide a good starting
-point.
-<p><dt>The print function:<dd>The print function takes the same parameters as the recover function so
-that it is simple to dispatch both to simple print functions as well as
-to the actual recovery functions. This is useful for debugging purposes
-and is used by the <a href="../../utility/db_printlog.html">db_printlog</a> utility to produce a human-readable
-version of the log. All parameters except the <b>rec</b> and
-<b>lsnp</b> parameters are ignored. The <b>rec</b> parameter contains
-the record to be printed.
-</dl>
-One additional function, an initialization function,
-is created for each <b>.src</b> file.
-<p><dl compact>
-<p><dt>The initialization function has the following parameters:<dd><p><dl compact>
-<p><dt>dbenv<dd>The environment handle returned by <a href="../../api_c/env_create.html">db_env_create</a>.
-</dl>
-<p>The recovery initialization function registers each log record type
-declared with the recovery system, so that the appropriate function is
-called during recovery.
-</dl>
-<h3>Using Automatically Generated Routines</h3>
-<p>Applications use the automatically generated functions as follows:
-<p><ol>
-<p><li>When the application starts,
-call the <a href="../../api_c/env_set_rec_init.html">DBENV-&gt;set_recovery_init</a> with your recovery
-initialization function so that the initialization function is called
-at the appropriate time.
-<p><li>Issue a <a href="../../api_c/txn_begin.html">txn_begin</a> call before any operations you wish
-to be transaction protected.
-<p><li>Before accessing any data, issue the appropriate lock call to
-lock the data (either for reading or writing).
-<p><li>Before modifying any data that is transaction protected, issue
-a call to the appropriate log function.
-<p><li>Issue a <a href="../../api_c/txn_commit.html">txn_commit</a> to save all of the changes or a
-<a href="../../api_c/txn_abort.html">txn_abort</a> to cancel all of the modifications.
-</ol>
-<p>The recovery functions (described below) can be called in two cases:
-<p><ol>
-<p><li>From the recovery daemon upon system failure, with op set to
-DB_TXN_FORWARD_ROLL or DB_TXN_BACKWARD_ROLL.
-<p><li>From <a href="../../api_c/txn_abort.html">txn_abort</a>, if it is called to abort a transaction, with
-op set to DB_TXN_ABORT.
-</ol>
-<p>For each log record type you declare, you must write the appropriate
-function to undo and redo the modifications. The shell of these functions
-will be generated for you automatically, but you must fill in the details.
-<p>Your code should be able to detect whether the described modifications
-have been applied to the data or not. The function will be called with
-the "op" parameter set to DB_TXN_ABORT when a transaction that wrote the
-log record aborts and with DB_TXN_FORWARD_ROLL and DB_TXN_BACKWARD_ROLL
-during recovery. The actions for DB_TXN_ABORT and DB_TXN_BACKWARD_ROLL
-should generally be the same. For example, in the access methods, each
-page contains the log sequence number of the most recent log record that
-describes a modification to the page. When the access method changes a
-page it writes a log record describing the change and including the the
-LSN that was on the page before the change. This LSN is referred to as
-the previous LSN. The recovery functions read the page described by a
-log record and compare the log sequence number (LSN) on the page to the
-LSN they were passed. If the page LSN is less than the passed LSN and
-the operation is undo, no action is necessary (because the modifications
-have not been written to the page). If the page LSN is the same as the
-previous LSN and the operation is redo, then the actions described are
-reapplied to the page. If the page LSN is equal to the passed LSN and
-the operation is undo, the actions are removed from the page; if the page
-LSN is greater than the passed LSN and the operation is redo, no further
-action is necessary. If the action is a redo and the LSN on the page is
-less than the previous LSN in the log record this is an error, since this
-could only happen if some previous log record was not processed.
-<p>Please refer to the internal recovery functions in the Berkeley DB library
-(found in files named XXX_rec.c) for examples of how recovery functions
-should work.
-<h3>Non-conformant Logging</h3>
-<p>If your application cannot conform to the default logging and recovery
-structure, then you will have to create your own logging and recovery
-functions explicitly.
-<p>First, you must decide how you will dispatch your records. Encapsulate
-this algorithm in a dispatch function that is passed to <a href="../../api_c/env_open.html">DBENV-&gt;open</a>.
-The arguments for the dispatch function are as follows:
-<p><dl compact>
-<p><dt>dbenv<dd>The environment handle returned by <a href="../../api_c/env_create.html">db_env_create</a>.
-<p><dt>rec<dd>The record being recovered.
-<p><dt>lsn<dd>The log sequence number of the record to be recovered.
-<p><dt>op<dd>Indicates what operation of recovery is needed (openfiles, abort, forward roll
-or backward roll).
-<p><dt>info<dd>An opaque value passed to your function during system recovery.
-</dl>
-<p>When you abort a transaction, <a href="../../api_c/txn_abort.html">txn_abort</a> will read the last log
-record written for the aborting transaction and will then call your
-dispatch function. It will continue looping, calling the dispatch
-function on the record whose LSN appears in the lsn parameter of the
-dispatch call (until a NULL LSN is placed in that field). The dispatch
-function will be called with the op set to DB_TXN_ABORT.
-<p>Your dispatch function can do any processing necessary. See the code
-in db/db_dispatch.c for an example dispatch function (that is based on
-the assumption that the transaction ID, previous LSN, and record type
-appear in every log record written).
-<p>If you do not use the default recovery system, you will need to construct
-your own recovery process based on the recovery program provided in
-db_recover/db_recover.c. Note that your recovery functions will need to
-correctly process the log records produced by calls to <a href="../../api_c/txn_begin.html">txn_begin</a>
-and <a href="../../api_c/txn_commit.html">txn_commit</a>.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/program/recimp.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/program/runtime.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/program/mt.html b/bdb/docs/ref/program/mt.html
deleted file mode 100644
index 31110920aa9..00000000000
--- a/bdb/docs/ref/program/mt.html
+++ /dev/null
@@ -1,95 +0,0 @@
-<!--$Id: mt.so,v 10.37 2000/12/04 18:05:42 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Building multi-threaded applications</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Programmer Notes</dl></h3></td>
-<td width="1%"><a href="../../ref/program/environ.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/program/scope.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Building multi-threaded applications</h1>
-<p>The Berkeley DB library is not itself multi-threaded. The library was
-deliberately architected to not use threads internally because of the
-portability problems that using threads within the library would
-introduce.
-<p>Berkeley DB supports multi-threaded applications with the caveat that it loads
-and calls functions that are commonly available in C language environments.
-Other than this usage, Berkeley DB has no static data and maintains no local
-context between calls to Berkeley DB functions.
-<p>Environment and database object handles returned from Berkeley DB library
-functions are free-threaded. No other object handles returned from
-the Berkeley DB library are free-threaded.
-<p>The following rules should be observed when using threads to
-access the Berkeley DB library:
-<p><ol>
-<p><li>The <a href="../../api_c/env_open.html#DB_THREAD">DB_THREAD</a> flag must be specified to the <a href="../../api_c/env_open.html">DBENV-&gt;open</a>
-and <a href="../../api_c/db_open.html">DB-&gt;open</a> functions if the Berkeley DB handles returned by those interfaces
-will be used in the context of more than one thread. Setting the
-<a href="../../api_c/env_open.html#DB_THREAD">DB_THREAD</a> flag inconsistently may result in database corruption.
-<p>Threading is assumed in the Java API, so no special flags are required,
-and Berkeley DB functions will always behave as if the <a href="../../api_c/env_open.html#DB_THREAD">DB_THREAD</a> flag
-was specified.
-<p>Only a single thread may call the <a href="../../api_c/env_close.html">DBENV-&gt;close</a> or <a href="../../api_c/db_close.html">DB-&gt;close</a> functions
-for a returned environment or database handle.
-<p>No other Berkeley DB handles are free-threaded, for example, cursors and
-transactions may not span threads as their returned handles are not
-free-threaded.
-<p><li>When using the non-cursor Berkeley DB calls to retrieve key/data items (e.g.,
-<a href="../../api_c/db_get.html">DB-&gt;get</a>), the memory referenced by the pointer stored into the
-Dbt is only valid until the next call to Berkeley DB using the DB handle
-returned by <a href="../../api_c/db_open.html">DB-&gt;open</a>. This includes any use of the returned
-DB handle, including by another thread of control within the
-process.
-<p>For this reason, if the <a href="../../api_c/env_open.html#DB_THREAD">DB_THREAD</a> handle was specified to the
-<a href="../../api_c/db_open.html">DB-&gt;open</a> function, either <a href="../../api_c/dbt.html#DB_DBT_MALLOC">DB_DBT_MALLOC</a>, <a href="../../api_c/dbt.html#DB_DBT_REALLOC">DB_DBT_REALLOC</a>
-or <a href="../../api_c/dbt.html#DB_DBT_USERMEM">DB_DBT_USERMEM</a> must be specified in the <a href="../../api_c/dbt.html">DBT</a> when
-performing any non-cursor key or data retrieval.
-<p><li>The <a href="../../api_c/dbc_get.html#DB_CURRENT">DB_CURRENT</a>, <a href="../../api_c/dbc_get.html#DB_NEXT">DB_NEXT</a> and <a href="../../api_c/dbc_get.html#DB_PREV">DB_PREV</a> flags to the
-<a href="../../api_c/log_get.html">log_get</a> function may not be used by a free-threaded handle. If
-such calls are necessary, a thread should explicitly create a unique
-environment handle by separately calling <a href="../../api_c/env_open.html">DBENV-&gt;open</a> without
-specifying <a href="../../api_c/env_open.html#DB_THREAD">DB_THREAD</a>.
-<p><li>Each database operation (i.e., any call to a function underlying the
-handles returned by <a href="../../api_c/db_open.html">DB-&gt;open</a> and <a href="../../api_c/db_cursor.html">DB-&gt;cursor</a>) is normally
-performed on behalf of a unique locker. If, within a single thread of
-control, multiple calls on behalf of the same locker are desired, then
-transactions must be used. For example, consider the case where a
-cursor scan locates a record, and then based on that record, accesses
-some other item in the database. If these operations are done using
-the default lockers for the handle, they may conflict. If the
-application wishes to guarantee that the operations do not conflict,
-locks must be obtained on behalf of a transaction, instead of the
-default locker ID, and a transaction must be specified to subsequent
-<a href="../../api_c/db_cursor.html">DB-&gt;cursor</a> and other Berkeley DB calls.
-<p><li>Transactions may not span threads. Each transaction must begin and end
-in the same thread, and each transaction may only be used by a single
-thread.
-<p>Cursors may not span transactions or threads. Each cursor must be
-allocated and de-allocated within the same transaction and within
-the same thread.
-<p><li>User-level synchronization mutexes must have been implemented for the
-compiler/architecture combination. Attempting to specify the DB_THREAD
-flag will fail if fast mutexes are not available.
-<p>If blocking mutexes are available, for example POSIX pthreads, they will
-be used. Otherwise, the Berkeley DB library will make a system call to pause
-for some amount of time when it is necessary to wait on a lock. This may
-not be optimal, especially in a thread-only environment where it will be
-more efficient to explicitly yield the processor to another thread.
-<p>It is possible to specify a yield function on an per-application basis.
-See <a href="../../api_c/set_func_yield.html">db_env_set_func_yield</a> for more information.
-<p>It is possible to specify the number of attempts that will be made to
-acquire the mutex before waiting. Se <a href="../../api_c/env_set_tas_spins.html">db_env_set_tas_spins</a> for
-more information.
-</ol>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/program/environ.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/program/scope.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/program/namespace.html b/bdb/docs/ref/program/namespace.html
deleted file mode 100644
index 519f5f61c74..00000000000
--- a/bdb/docs/ref/program/namespace.html
+++ /dev/null
@@ -1,44 +0,0 @@
-<!--$Id: namespace.so,v 10.14 2000/08/01 21:51:23 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Name spaces</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Programmer Notes</dl></h3></td>
-<td width="1%"><a href="../../ref/program/scope.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/program/copy.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Name spaces</h1>
-<p>The Berkeley DB library is careful to avoid C language programmer name spaces,
-but there are a few potential areas for concern, mostly in the Berkeley DB
-include file db.h. The db.h include file defines a number of types and
-strings. Where possible, all of these types and strings are prefixed with
-"DB_" or "db_". There are a few notable exceptions.
-<p>The Berkeley DB library uses a macro named "__P" to configure for systems that
-do not provide ANSI C function prototypes. This could potentially collide
-with other systems using a "__P" macro for similar or different purposes.
-<p>The Berkeley DB library needs information about specifically sized types for
-each architecture. If they are not provided by the system, they are
-typedef'd in the db.h include file. The types which may be typedef'd
-by db.h include the following: u_int8_t, int16_t, u_int16_t, int32_t,
-u_int32_t, u_char, u_short, u_int and u_long.
-<p>The Berkeley DB library declares a number of external routines. All of these
-routines are prefixed with the strings "db_", "lock_", "log_", "memp_"
-or "txn_". All internal routines are prefixed with the strings "__db_",
-"__lock_," "__log_", "__memp_" or "__txn_".
-<p>Berkeley DB environments create or use some number of files in environment home
-directories. These files are named <a href="../../ref/env/naming.html#DB_CONFIG">DB_CONFIG</a>, "log.NNNNNNNNNN"
-(e.g., log.0000000003), or with the string prefix "__db" (e.g., __db.001).
-Database files that match these names should not be created in the
-environment directory.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/program/scope.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/program/copy.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/program/recimp.html b/bdb/docs/ref/program/recimp.html
deleted file mode 100644
index 240eccd8bc9..00000000000
--- a/bdb/docs/ref/program/recimp.html
+++ /dev/null
@@ -1,49 +0,0 @@
-<!--$Id: recimp.so,v 11.2 2000/03/18 21:43:18 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Recovery implementation</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Transaction Protected Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/transapp/filesys.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/transapp/reclimit.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Recovery implementation</h1>
-<p>The physical recovery process works as follows:
-<p>First, find the last checkpoint that completed. Since the system may
-have crashed while writing a checkpoint, this implies finding the
-second-to-last checkpoint in the log files. Read forward from this
-checkpoint, opening any database files for which modifications are found
-in the log.
-<p>Then, read backward from the end of the log. For each commit record
-encountered, record its transaction ID. For every other data update
-record, find the transaction ID of the record. If that transaction ID
-appears in the list of committed transactions, do nothing; if it does not
-appear in the committed list, then call the appropriate recovery routine
-to undo the operation.
-<p>In the case of catastrophic recovery, this roll-backward pass continues
-through all the present log files. In the case of normal recovery, this
-pass continues until we find a checkpoint written before the second-to-last
-checkpoint described above.
-<p>When the roll-backward pass is complete, the roll-forward pass begins at
-the point where the roll-backward pass ended. Each record is read and if
-its transaction id is in the committed list, then the appropriate recovery
-routine is called to redo the operation if necessary.
-<p>In a distributed transaction environment, there may be transactions that
-are prepared, but not yet committed. If these transactions are XA
-transactions, then they are rolled forward to their current state, and an
-active transaction corresponding to it is entered in the transaction table
-so that the XA transaction manager may call either transaction abort or
-commit, depending on the outcome of the overall transaction. If the
-transaction is not an XA transaction, then it is aborted like any other
-transactions would be.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/transapp/filesys.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/transapp/reclimit.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/program/runtime.html b/bdb/docs/ref/program/runtime.html
deleted file mode 100644
index a6f860bcac0..00000000000
--- a/bdb/docs/ref/program/runtime.html
+++ /dev/null
@@ -1,57 +0,0 @@
-<!--$Id: runtime.so,v 10.23 2000/12/04 18:05:42 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Run-time configuration</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Programmer Notes</dl></h3></td>
-<td width="1%"><a href="../../ref/program/extending.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/lock/intro.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Run-time configuration</h1>
-<p>There are a few interfaces that support run-time configuration of Berkeley DB.
-First is a group of interfaces that allow applications to intercept
-Berkeley DB requests for underlying library or system call functionality:
-<p><blockquote><pre><a href="../../api_c/set_func_close.html">db_env_set_func_close</a>
-<a href="../../api_c/set_func_dirfree.html">db_env_set_func_dirfree</a>
-<a href="../../api_c/set_func_dirlist.html">db_env_set_func_dirlist</a>
-<a href="../../api_c/set_func_exists.html">db_env_set_func_exists</a>
-<a href="../../api_c/set_func_free.html">db_env_set_func_free</a>
-<a href="../../api_c/set_func_fsync.html">db_env_set_func_fsync</a>
-<a href="../../api_c/set_func_ioinfo.html">db_env_set_func_ioinfo</a>
-<a href="../../api_c/set_func_malloc.html">db_env_set_func_malloc</a>
-<a href="../../api_c/set_func_map.html">db_env_set_func_map</a>
-<a href="../../api_c/set_func_open.html">db_env_set_func_open</a>
-<a href="../../api_c/set_func_read.html">db_env_set_func_read</a>
-<a href="../../api_c/set_func_realloc.html">db_env_set_func_realloc</a>
-<a href="../../api_c/set_func_seek.html">db_env_set_func_seek</a>
-<a href="../../api_c/set_func_sleep.html">db_env_set_func_sleep</a>
-<a href="../../api_c/set_func_unlink.html">db_env_set_func_unlink</a>
-<a href="../../api_c/set_func_unmap.html">db_env_set_func_unmap</a>
-<a href="../../api_c/set_func_write.html">db_env_set_func_write</a>
-<a href="../../api_c/set_func_yield.html">db_env_set_func_yield</a></pre></blockquote>
-<p>These interfaces are only available from the Berkeley DB C language API.
-<p>In addition, there are a few interfaces that allow applications to
-re-configure, on an application-wide basis, Berkeley DB behaviors.
-<p><blockquote><pre><a href="../../api_c/env_set_mutexlocks.html">DBENV-&gt;set_mutexlocks</a>
-<a href="../../api_c/env_set_pageyield.html">db_env_set_pageyield</a>
-<a href="../../api_c/env_set_panicstate.html">db_env_set_panicstate</a>
-<a href="../../api_c/env_set_region_init.html">db_env_set_region_init</a>
-<a href="../../api_c/env_set_tas_spins.html">db_env_set_tas_spins</a></pre></blockquote>
-<p>These interfaces are available from all of the Berkeley DB programmatic APIs.
-<p>A not-uncommon problem for applications is the new API in Solaris 2.6
-for manipulating large files. As this API was not part of Solaris 2.5,
-it is difficult to create a single binary that takes advantage of the
-large file functionality in Solaris 2.6 but which still runs on Solaris
-2.5. <a href="solaris.txt">Example code</a> that supports this is
-included in the Berkeley DB distribution.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/program/extending.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/lock/intro.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/program/scope.html b/bdb/docs/ref/program/scope.html
deleted file mode 100644
index 19814793259..00000000000
--- a/bdb/docs/ref/program/scope.html
+++ /dev/null
@@ -1,71 +0,0 @@
-<!--$Id: scope.so,v 10.3 2000/08/10 17:54:49 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Berkeley DB handles</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Programmer Notes</dl></h3></td>
-<td width="1%"><a href="../../ref/program/mt.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/program/namespace.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Berkeley DB handles</h1>
- <a name="3"><!--meow--></a>
-<p>The Berkeley DB library has a number of object handles. The following table
-lists those handles, their scope, and if they are free-threaded, that
-is, if multiple threads within a process can share them.
-<p><dl compact>
-<p><dt>DB_ENV<dd>The DB_ENV handle is created by the <a href="../../api_c/env_create.html">db_env_create</a> function and
-references a Berkeley DB database environment, a collection of
-databases and Berkeley DB subsystems. DB_ENV handles are free-threaded
-if the <a href="../../api_c/env_open.html#DB_THREAD">DB_THREAD</a> flag is specified to the <a href="../../api_c/env_open.html">DBENV-&gt;open</a> function
-when the environment is opened. The handle should not be closed while
-any other handle remains open that is using it as a reference
-(e.g., DB or DB_TXN). Once either the <a href="../../api_c/env_close.html">DBENV-&gt;close</a> or
-<a href="../../api_c/env_remove.html">DBENV-&gt;remove</a> functions are called, the handle may not be accessed again,
-regardless of the function's return.
-<p><dt>DB_TXN<dd>The DB_TXN handle is created by the <a href="../../api_c/txn_begin.html">txn_begin</a> function and
-references a single transaction. The handle is not free-threaded, and
-transactions may not span threads nor may transactions be used by more
-than a single thread.
-Once the
-<a href="../../api_c/txn_abort.html">txn_abort</a> or <a href="../../api_c/txn_commit.html">txn_commit</a> functions are called, the handle may
-not be accessed again, regardless of the function's return.
-In addition, parent transactions may not issue
-any Berkeley DB operations, except for <a href="../../api_c/txn_begin.html">txn_begin</a>, <a href="../../api_c/txn_abort.html">txn_abort</a>
-and <a href="../../api_c/txn_commit.html">txn_commit</a>, while it has active child transactions (child
-transactions that have not yet been committed or aborted).
-<p><dt>DB_MPOOLFILE<dd>The DB_MPOOLFILE handle references an open file in the shared
-memory buffer pool of the database environment. The handle is not
-free-threaded. Once the <a href="../../api_c/memp_fclose.html">memp_fclose</a> function is called, the handle may
-not be accessed again, regardless of the function's return.
-<p><dt>DB<dd>The DB handle is created by the <a href="../../api_c/db_create.html">db_create</a> function and
-references a single Berkeley DB database, which may or may not be part of a
-database environment. DB handles are free-threaded if the
-<a href="../../api_c/env_open.html#DB_THREAD">DB_THREAD</a> flag is specified to the <a href="../../api_c/db_open.html">DB-&gt;open</a> function when the
-database is opened, or if the database environment in which the database
-is opened is free-threaded. The handle should not be closed while any
-other handle that references the database is in use, e.g., database
-handles must not be closed while cursor handles into the database remain
-open, or transactions which include operations on the database have not
-yet been committed or aborted. Once the <a href="../../api_c/db_close.html">DB-&gt;close</a>,
-<a href="../../api_c/db_remove.html">DB-&gt;remove</a> or <a href="../../api_c/db_rename.html">DB-&gt;rename</a> functions are called, the handle may
-not be accessed again, regardless of the function's return.
-<p><dt>DBC<dd>The DBC handle references a cursor into a Berkeley DB database. The
-handle is not free-threaded and cursors may not span threads nor may
-cursors be used by more than a single thread. If the cursor is to be
-used to perform operations on behalf of a transaction, the cursor must
-be opened and closed within the context of that single transaction.
-Once <a href="../../api_c/dbc_close.html">DBcursor-&gt;c_close</a> has been called, the handle may not be accessed
-again, regardless of the function's return.
-</dl>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/program/mt.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/program/namespace.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/program/solaris.txt b/bdb/docs/ref/program/solaris.txt
deleted file mode 100644
index d2ec3168242..00000000000
--- a/bdb/docs/ref/program/solaris.txt
+++ /dev/null
@@ -1,213 +0,0 @@
-#ifdef OS_solaris
- * This is all for Solaris 2.6.
- *
- * Sun defined a new API in Solaris2.6 to be used when manipulating large
- * (>2Gbyte) files. This API isn't present in 2.5.x, so we can't simply
- * call it -- that would mean two binaries, one for 2.5.x and the other for
- * 2.6. Not pretty. So, what we do here is determine the OS on which we're
- * running at runtime, and adjust the underlying Berkeley DB calls to use
- * the new API if it's there.
- */
-
-/* This must match the definition of stat64 in Solaris2.6 */
-struct our_stat64 {
- dev_t st_dev;
- long st_pad1[3]; /* reserve for dev expansion */
- u_longlong_t st_ino;
- mode_t st_mode;
- nlink_t st_nlink;
- uid_t st_uid;
- gid_t st_gid;
- dev_t st_rdev;
- long st_pad2[2];
- longlong_t st_size;
- timestruc_t mst_atime;
- timestruc_t mst_mtime;
- timestruc_t mst_ctime;
- long st_blksize;
- longlong_t st_blocks; /* large file support */
- char st_fstype[_ST_FSTYPSZ];
- long st_pad4[8]; /* expansion area */
-};
-
-#define MEGABYTE (1024 * 1024)
-
-typedef int (*open_fn)(const char *path, int flags, ...);
-typedef longlong_t (*lseek64_fn)(int fildes, longlong_t offset, int whence);
-typedef longlong_t (*fstat64_fn)(int fildes, struct our_stat64 *s);
-typedef void* (*mmap64_fn)(void* addr, size_t len, int prot, int flags,
-int filedes, longlong_t off);
-
-static fstat64_fn os_fstat64_fn = NULL;
-static lseek64_fn os_lseek64_fn = NULL;
-static mmap64_fn os_mmap64_fn = NULL;
-static open_fn os_open64_fn = NULL;
-
-static int dblayer_load_largefile_fns()
-{
- void *lib_handle = NULL;
- void *function_found = NULL;
- int ret = 0;
-
- lib_handle = dlopen(NULL, RTLD_NOW);
- if (NULL == lib_handle)
- return (-1);
-
- function_found = dlsym(lib_handle,"open64");
- if (NULL == function_found)
- return (-1);
- os_open64_fn = (open_fn)function_found;
-
- function_found = dlsym(lib_handle,"lseek64");
- if (NULL == function_found)
- return (-1);
- os_lseek64_fn = (lseek64_fn)function_found;
-
- function_found = dlsym(lib_handle,"fstat64");
- if (NULL == function_found)
- return (-1);
- os_fstat64_fn = (fstat64_fn)function_found;
-
- function_found = dlsym(lib_handle,"mmap64");
- if (NULL == function_found)
- return (-1);
- os_mmap64_fn = (mmap64_fn)function_found;
-
- return 0;
-}
-
-/* Helper function for large seeks */
-static int dblayer_seek_fn_solaris(int fd,
- size_t pgsize, db_pgno_t pageno, u_long relative, int whence)
-{
- longlong_t offset = 0;
- longlong_t ret = 0;
-
- if (NULL == os_lseek64_fn) {
- return -1;
- }
-
- offset = (longlong_t)pgsize * pageno + relative;
-
- ret = (*os_lseek64_fn)(fd,offset,whence);
-
- return (ret == -1) ? errno : 0;
-}
-
-/* Helper function for large file mmap */
-static int dblayer_map_solaris(fd, len, is_private, is_rdonly, addr)
- int fd, is_private, is_rdonly;
- size_t len;
- void **addr;
-{
- void *p;
- int flags, prot;
-
- flags = is_private ? MAP_PRIVATE : MAP_SHARED;
- prot = PROT_READ | (is_rdonly ? 0 : PROT_WRITE);
-
- if ((p = (*os_mmap64_fn)(NULL,
- len, prot, flags, fd, (longlong_t)0)) == (void *)MAP_FAILED)
- return (errno);
-
- *addr = p;
- return (0);
-}
-
-/* Helper function for large fstat */
-static int dblayer_ioinfo_solaris(const char *path,
- int fd, u_int32_t *mbytesp, u_int32_t *bytesp, u_int32_t *iosizep)
-{
- struct our_stat64 sb;
-
- if (NULL == os_fstat64_fn) {
- return -1;
- }
-
- if ((*os_fstat64_fn)(fd, &sb) == -1)
- return (errno);
-
- /* Return the size of the file. */
- if (mbytesp != NULL)
- *mbytesp = (u_int32_t) (sb.st_size / (longlong_t)MEGABYTE);
- if (bytesp != NULL)
- *bytesp = (u_int32_t) (sb.st_size % (longlong_t)MEGABYTE);
-
- /*
- * Return the underlying filesystem blocksize, if available. Default
- * to 8K on the grounds that most OS's use less than 8K as their VM
- * page size.
- */
- if (iosizep != NULL)
- *iosizep = sb.st_blksize;
- return (0);
-}
-#endif
-
-#ifdef irix
- * A similar mess to Solaris: a new API added in IRIX6.2 to support large
- * files. We always build on 6.2 or later, so no need to do the same song
- * and dance as on Solaris -- we always have the header files for the
- * 64-bit API.
- */
-
-/* Helper function for large seeks */
-static int dblayer_seek_fn_irix(int fd,
- size_t pgsize, db_pgno_t pageno, u_long relative, int whence)
-{
- off64_t offset = 0;
- off64_t ret = 0;
-
- offset = (off64_t)pgsize * pageno + relative;
-
- ret = lseek64(fd,offset,whence);
-
- return (ret == -1) ? errno : 0;
-}
-
-/* Helper function for large fstat */
-static int dblayer_ioinfo_irix(const char *path,
- int fd, u_int32_t *mbytesp, u_int32_t *bytesp, u_int32_t *iosizep)
-{
- struct stat64 sb;
-
- if (fstat64(fd, &sb) == -1) {
- return (errno);
- }
-
- /* Return the size of the file. */
- if (mbytesp != NULL)
- *mbytesp = (u_int32_t) (sb.st_size / (off64_t)MEGABYTE);
- if (bytesp != NULL)
- *bytesp = (u_int32_t) (sb.st_size % (off64_t)MEGABYTE);
-
- if (iosizep != NULL)
- *iosizep = sb.st_blksize;
- return (0);
-}
-#endif /* irix */
-
-static int dblayer_override_libdb_functions(dblayer_private *priv)
-{
-#if defined(OS_solaris)
- int ret = 0;
-
- ret = dblayer_load_largefile_fns();
- if (0 != ret) {
- Debug("Not Solaris2.6: no large file support enabled\n");
- } else {
- /* Means we did get the XXX64 functions, so let's use them */
- db_jump_set((void*)os_open64_fn, DB_FUNC_OPEN);
- db_jump_set((void*)dblayer_seek_fn_solaris, DB_FUNC_SEEK);
- db_jump_set((void*)dblayer_ioinfo_solaris, DB_FUNC_IOINFO);
- db_jump_set((void*)dblayer_map_solaris, DB_FUNC_MAP);
- Debug("Solaris2.6: selected 64-bit file handling.\n");
- }
-#else
-#if defined (irix)
- db_jump_set((void*)dblayer_seek_fn_irix, DB_FUNC_SEEK);
- db_jump_set((void*)dblayer_ioinfo_irix, DB_FUNC_IOINFO);
-#endif /* irix */
-#endif /* OS_solaris */
- return 0;
-}
diff --git a/bdb/docs/ref/program/version.html b/bdb/docs/ref/program/version.html
deleted file mode 100644
index d1b1254a178..00000000000
--- a/bdb/docs/ref/program/version.html
+++ /dev/null
@@ -1,45 +0,0 @@
-<!--$Id: version.so,v 10.14 2000/03/18 21:43:16 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Library version information</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Programmer Notes</dl></h3></td>
-<td width="1%"><a href="../../ref/program/copy.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/program/dbsizes.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Library version information</h1>
-<p>Each release of the Berkeley DB library has a major version number, a minor
-version number, and a patch number.
-<p>The major version number changes only when major portions of the Berkeley DB
-functionality have been changed. In this case, it may be necessary to
-significantly modify applications in order to upgrade them to use the new
-version of the library.
-<p>The minor version number changes when Berkeley DB interfaces have changed, and
-the new release is not entirely backward compatible with previous releases.
-To upgrade applications to the new version, they must be recompiled, and
-potentially, minor modifications made, (e.g., the order of arguments to a
-function might have changed).
-<p>The patch number changes on each release. If only the patch number
-has changed in a release, applications do not need to be recompiled,
-and they can be upgraded to the new version by simply installing a
-new version of the shared library.
-<p>Internal Berkeley DB interfaces may change at any time and during any release,
-without warning. This means that the library must be entirely recompiled
-and reinstalled when upgrading to new releases of the library, as there
-is no guarantee that modules from the current version of the library will
-interact correctly with modules from a previous release.
-<p>To retrieve the Berkeley DB version information, applications should use the
-<a href="../../api_c/env_version.html">db_version</a> interface. In addition to the above information, the
-<a href="../../api_c/env_version.html">db_version</a> interface returns a string encapsulating the version
-information, suitable for display to a user.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/program/copy.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/program/dbsizes.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/refs/bdb_usenix.html b/bdb/docs/ref/refs/bdb_usenix.html
deleted file mode 100644
index 58e82b57314..00000000000
--- a/bdb/docs/ref/refs/bdb_usenix.html
+++ /dev/null
@@ -1,1120 +0,0 @@
-<!--"@(#)usenix.html 1.2 4/26/99"-->
-<html>
-<head>
-<title>Berkeley DB</title>
-</head>
-<body bgcolor="white">
-<center>
-<h1>
-Berkeley DB
-</h1>
-<p>
-<i>
-Michael A. Olson
-<br>
-Keith Bostic
-<br>
-Margo Seltzer
-<br>&nbsp;
-<br>
-Sleepycat Software, Inc.
-<br>&nbsp;
-<br>
-</i>
-<b>
-Abstract
-</b>
-</center>
-<font size="-1">
-<blockquote>
-<p>
-Berkeley DB is an Open Source embedded database system with a number
-of key advantages over comparable systems. It is simple to use, supports
-concurrent access by multiple users, and provides industrial-strength
-transaction support, including surviving system and disk crashes. This
-paper describes the design and technical features of Berkeley DB, the
-distribution, and its license.
-</blockquote>
-</font>
-<h1>
-Introduction
-</h1>
-<p>
-The Berkeley Database (Berkeley DB) is an embedded database system
-that can be used in applications requiring high-performance
-concurrent storage and retrieval of key/value pairs. The software
-is distributed as a library that can be linked directly into an
-application.
-It provides a variety of programmatic interfaces,
-including callable APIs for C, C++, Perl, Tcl and Java.
-Users may download Berkeley DB from Sleepycat Software's Web site,
-at
-<a href="http://www.sleepycat.com">www.sleepycat.com</a>.
-<p>
-Sleepycat distributes Berkeley DB as an Open Source product. The company
-collects license fees for certain uses of the software and sells support
-and services.
-<h2>
-History
-</h2>
-<p>
-Berkeley DB began as a new implementation of a hash access method
-to replace both
-<tt>hsearch</tt>
-and the various
-<tt>dbm</tt>
-implementations
-(<tt>dbm</tt> from AT&T,
-<tt>ndbm</tt>
-from Berkeley, and
-<tt>gdbm</tt>
-from the GNU project).
-In 1990 Seltzer and Yigit produced a package called Hash to do this
-<a href="#Selt91">[Selt91]</a>.
-<p>
-The first general release of Berkeley DB, in 1991,
-included some interface changes and a new B+tree access method.
-At roughly the same time, Seltzer and Olson
-developed a prototype transaction
-system based on Berkeley DB, called LIBTP <a href="#Selt92">[Selt92]</a>,
-but never released the code.
-<p>
-The 4.4BSD UNIX release included Berkeley DB 1.85 in 1992.
-Seltzer and Bostic maintained the code in the early 1990s
-in Berkeley and in Massachusetts.
-Many users adopted the code during this period.
-<p>
-By mid-1996,
-users wanted commercial support for the software.
-In response, Bostic and Seltzer formed Sleepycat Software.
-The company enhances, distributes, and
-supports Berkeley DB and supporting software and documentation.
-Sleepycat released version 2.1 of Berkeley DB in mid-1997
-with important new features, including
-support for concurrent access to databases.
-The company makes about three commercial releases a year,
-and most recently shipped version 2.8.
-<h2>
-Overview of Berkeley DB
-</h2>
-<p>
-The C interfaces in Berkeley DB permit
-<tt>dbm</tt>-style
-record management
-for databases,
-with significant extensions to handle duplicate data items elegantly,
-to deal with concurrent access, and to provide transactional
-support so that multiple changes can be simultaneously committed
-(so that they are made permanent) or rolled back (so that the
-database is restored to its state at the beginning of the transaction).
-<p>
-C++ and Java interfaces provide a small set of classes for
-operating on a database. The main class in both cases is called
-<tt>Db</tt>,
-and provides methods that encapsulate the
-<tt>dbm</tt>-style
-interfaces that the C interfaces provide.
-<p>
-Tcl and Perl interfaces allow developers working in those languages
-to use Berkeley DB in their applications.
-Bindings for both languages are included in the distribution.
-<p>
-Developers may compile their applications and link in Berkeley DB
-statically or dynamically.
-<h2>
-How Berkeley DB is used
-</h2>
-<p>
-The Berkeley DB library supports concurrent access to databases.
-It can be linked
-into standalone applications, into a collection of cooperating applications,
-or into servers that handle requests and do database operations on
-behalf of clients.
-<p>
-Compared to using a standalone database management system, Berkeley
-DB is easy to understand and simple to use. The
-software stores and retrieves records, which consist of key/value pairs.
-Keys are used to locate items and can be any data type or structure
-supported by the programming language.
-<p>
-The programmer can provide the functions that Berkeley DB uses to
-operate on keys.
-For example,
-B+trees can use a custom comparison function,
-and the Hash access method can use a custom hash function.
-Berkeley DB uses default functions if none are supplied.
-Otherwise, Berkeley DB does not examine or interpret either keys
-or values in any way.
-Values may be arbitrarily long.
-<p>
-It is also important to understand what Berkeley DB is not.
-It is not a database server that handles network requests. It is not an
-SQL engine that executes queries. It is not a relational or object-oriented
-database management system.
-<p>
-It is possible to build any of those on top of Berkeley DB,
-but the package, as distributed,
-is an embedded database engine. It has been designed
-to be portable, small, fast, and reliable.
-<h2>
-Applications that use Berkeley DB
-</h2>
-<p>
-Berkeley DB is embedded in a variety of proprietary and Open Source
-software packages.
-This section highlights a few of the products that use it.
-<p>
-Directory servers, which do data storage and retrieval using the
-Local Directory Access Protocol (LDAP), provide naming and directory
-lookup service on local-area networks.
-This service is,
-essentially,
-database query and update,
-but uses a simple protocol rather than SQL or ODBC.
-Berkeley DB is the embedded data manager in the majority of deployed
-directory servers today,
-including LDAP servers from Netscape,
-MessageDirect (formerly Isode),
-and others.
-<p>
-Berkeley DB is also embedded in a large number of mail servers.
-Intermail,
-from Software.com,
-uses Berkeley DB as a message store
-and as the backing store for its directory server.
-The sendmail server
-(including both the commercial Sendmail Pro offering from Sendmail,
-Inc. and the version distributed by sendmail.org)
-uses Berkeley DB to store aliases and other information.
-Similarly,
-Postfix (formerly VMailer) uses Berkeley DB
-to store administrative information.
-<p>
-In addition,
-Berkeley DB is embedded in a wide variety of other software products.
-Example applications include managing access control lists,
-storing user keys in a public-key infrastructure,
-recording machine-to-network-address mappings in address servers,
-and storing configuration and device information in video
-post-production software.
-<p>
-Finally,
-Berkeley DB is a part of many other Open Source software packages
-available on the Internet.
-For example,
-the software is embedded in the Apache Web server and the Gnome desktop.
-<h1>
-Access Methods
-</h1>
-<p>
-In database terminology, an access method is the disk-based structure
-used to store data and the operations available on that structure.
-For example, many database systems support a B+tree access method.
-B+trees allow equality-based lookups (find keys equal to some constant),
-range-based lookups (find keys between two constants) and record
-insertion and deletion.
-<p>
-Berkeley DB supports three access methods: B+tree,
-Extended Linear Hashing (Hash),
-and Fixed- or Variable-length Records (Recno).
-All three operate on records composed of a key and a data value.
-In the B+tree and Hash access methods, keys can have arbitrary structure.
-In the Recno access method, each record is assigned a record number, which
-serves as the key.
-In all the access methods, the
-value can have arbitrary structure.
-The programmer can supply comparison or hashing functions for keys,
-and Berkeley DB stores and retrieves values without
-interpreting them.
-<p>
-All of the access methods use the host filesystem as a backing store.
-<h2>
-Hash
-</h2>
-<p>
-Berkeley DB includes a Hash access method that implements extended
-linear hashing <a href="#Litw80">[Litw80]</a>.
-Extended linear hashing adjusts the hash function as the hash
-table grows, attempting to keep all buckets underfull in the steady
-state.
-<p>
-The Hash access method supports insertion and deletion of records and
-lookup by exact match only. Applications may iterate over all records
-stored in a table, but the order in which they are returned is undefined.
-<h2>
-B+tree
-</h2>
-<p>
-Berkeley DB includes a B+tree <a href="#Come79">[Come79]</a> access method.
-B+trees store records of key/value pairs in leaf pages,
-and pairs of (key, child page address) at internal nodes.
-Keys in the tree are stored in sorted order,
-where the order is determined by the comparison function supplied when the
-database was created.
-Pages at the leaf level of the tree include pointers
-to their neighbors to simplify traversal. B+trees support lookup by
-exact match (equality) or range (greater than or equal to a key).
-Like Hash tables, B+trees support record insertion,
-deletion, and iteration over all records in the tree.
-<p>
-As records are inserted and pages in the B+tree fill up, they are split,
-with about half the keys going into a new peer page at the same level in
-the tree.
-Most B+tree implementations leave both nodes half-full after a split.
-This leads to poor performance in a common case, where the caller inserts
-keys in order.
-To handle this case, Berkeley DB keeps track of the insertion order,
-and splits pages unevenly to keep pages fuller.
-This reduces tree size, yielding better search performance and smaller
-databases.
-<p>
-On deletion, empty pages are coalesced by reverse splits
-into single pages.
-The access method does no other page balancing on insertion
-or deletion.
-Keys are not moved among pages at every update
-to keep the tree well-balanced. While this could improve search times
-in some cases, the additional code complexity leads to slower updates and
-is prone to deadlocks.
-<p>
-For simplicity, Berkeley DB B+trees do no prefix compression of keys
-at internal or leaf nodes.
-<h2>
-Recno
-</h2>
-<p>
-Berkeley DB includes a fixed- or variable-length record access method,
-called
-<i>Recno</i>.
-The Recno access method assigns logical record numbers to each
-record,
-and can search for and update records by record number.
-Recno is able,
-for example,
-to load a text file into a database,
-treating each line as a record.
-This permits fast searches by line number for applications like
-text editors <a href="#Ston82">[Ston82]</a>.
-<p>
-Recno is actually built
-on top of the B+tree access method and provides a simple interface
-for storing sequentially-ordered data values.
-The Recno access method generates keys internally.
-The programmer's view of the values is that
-they are numbered sequentially from one.
-Developers can choose to have records automatically renumbered
-when lower-numbered records are added or deleted.
-In this case, new keys can be inserted between existing keys.
-<h1>
-Features
-</h1>
-<p>
-This section describes important features of Berkeley DB.
-In general,
-developers can choose which features are useful to them,
-and use only those that are required by their application.
-<p>
-For example,
-when an application opens a database, it can declare the degree of
-concurrency and recovery that it requires. Simple stand-alone applications,
-and in particular ports of applications that used
-<tt>dbm</tt>
-or one of its
-variants, generally do not require concurrent access or crash recovery.
-Other applications, such as enterprise-class database management systems
-that store sales transactions or other critical data, need full
-transactional service. Single-user operation is faster than multi-user
-operation, since no overhead is incurred by locking. Running with
-the recovery system disabled is faster than running with it enabled,
-since log records need not be written when changes are made to the
-database.
-<p>
-In addition, some core subsystems, including the locking system and
-the logging facility,
-can be used outside the context of the access methods as well.
-Although few users have chosen to do so, it is possible to
-use only the lock manager in Berkeley DB to control concurrency
-in an application, without using any of the standard database services.
-Alternatively, the caller can integrate locking of non-database resources
-with Berkeley DB's transactional two-phase locking system, to impose
-transaction semantics on objects outside the database.
-<h2>
-Programmatic interfaces
-</h2>
-<p>
-Berkeley DB defines a simple API for database management.
-The package does not include industry-standard
-programmatic interfaces such as Open Database Connectivity (ODBC),
-Object Linking and Embedding for Databases (OleDB), or Structured
-Query Language (SQL). These interfaces, while useful, were
-designed to promote interoperability of database systems, and not
-simplicity or performance.
-<p>
-In response to customer demand,
-Berkeley DB 2.5 introduced support for the XA standard <a href="#Open94">[Open94]</a>.
-XA permits Berkeley DB to participate in distributed transactions
-under a transaction processing monitor like Tuxedo from BEA Systems.
-Like XA, other standard interfaces can be built on top of the
-core system.
-The standards do not belong inside Berkeley DB,
-since not all applications need them.
-<h2>
-Working with records
-</h2>
-<p>
-A database user may need to search for particular keys in a database,
-or may simply want to browse available records.
-Berkeley DB supports both keyed access,
-to find one or more records with a given key,
-or sequential access,
-to retrieve all the records in the database one at a time.
-The order of the records returned during sequential scans
-depends on the access method.
-B+tree and Recno databases return records in sort order,
-and Hash databases return them in apparently random order.
-<p>
-Similarly,
-Berkeley DB defines simple interfaces for inserting,
-updating,
-and deleting records in a database.
-<h2>
-Long keys and values
-</h2>
-<p>
-Berkeley DB manages keys and values as large as
-2<sup>32</sup> bytes.
-Since the time required to copy a record is proportional to its size,
-Berkeley DB includes interfaces that operate on partial records.
-If an application requires only part of a large record,
-it requests partial record retrieval,
-and receives just the bytes that it needs.
-The smaller copy saves both time and memory.
-<p>
-Berkeley DB allows the programmer to define the data types of
-keys and values.
-Developers use any type expressible in the programming language.
-<h2>
-Large databases
-</h2>
-<p>
-A single database managed by Berkeley DB can be up to 2<sup>48</sup>
-bytes,
-or 256 petabytes,
-in size.
-Berkeley DB uses the host filesystem as the backing store
-for the database,
-so large databases require big file support from the operating system.
-Sleepycat Software has customers using Berkeley DB
-to manage single databases in excess of 100 gigabytes.
-<h2>
-Main memory databases
-</h2>
-<p>
-Applications that do not require persistent storage can create
-databases that exist only in main memory.
-These databases bypass the overhead imposed by the I/O system
-altogether.
-<p>
-Some applications do need to use disk as a backing store,
-but run on machines with very large memory.
-Berkeley DB is able to manage very large shared memory regions
-for cached data pages,
-log records,
-and lock management.
-For example,
-the cache region used for data pages may be gigabytes in size,
-reducing the likelihood that any read operation will need to
-visit the disk in the steady state.
-The programmer declares the size of the cache region at
-startup.
-<p>
-Finally, many operating systems provide memory-mapped file services
-that are much faster than their general-purpose file system
-interfaces.
-Berkeley DB can memory-map its database files for read-only database use.
-The application operates on records stored directly on the pages,
-with no cache management overhead.
-Because the application gets pointers directly into the
-Berkeley DB pages,
-writes cannot be permitted.
-Otherwise,
-changes could bypass the locking and logging systems,
-and software errors could corrupt the database.
-Read-only applications can use Berkeley DB's memory-mapped
-file service to improve performance on most architectures.
-<h2>
-Configurable page size
-</h2>
-<p>
-Programmers declare the size of the pages used by their access
-methods when they create a database.
-Although Berkeley DB provides reasonable defaults,
-developers may override them to control system performance.
-Small pages reduce the number of records that fit on a single page.
-Fewer records on a page means that fewer records are locked when
-the page is locked,
-improving concurrency.
-The per-page overhead is proportionally higher with smaller pages,
-of course,
-but developers can trade off space for time as an application requires.
-<h2>
-Small footprint
-</h2>
-<p>
-Berkeley DB is a compact system.
-The full package, including all access methods, recoverability,
-and transaction support
-is roughly 175K of text space on common architectures.
-<h2>
-Cursors
-</h2>
-<p>
-In database terminology, a cursor is a pointer into an access method
-that can be called iteratively to return records in sequence. Berkeley
-DB includes cursor interfaces for all access methods. This permits,
-for example, users to traverse a B+tree and view records in order.
-Pointers to records in cursors are persistent, so that once fetched,
-a record may be updated in place. Finally, cursors support access to
-chains of duplicate data items in the various access methods.
-<h2>
-Joins
-</h2>
-<p>
-In database terminology,
-a join is an operation that spans multiple separate
-tables (or in the case of Berkeley DB, multiple separate DB files).
-For example, a company may store information about its customers
-in one table and information about sales in another. An application
-will likely want to look up sales information by customer name; this
-requires matching records in the two tables that share a common
-customer ID field.
-This combining of records from multiple tables is called a join.
-<p>
-Berkeley DB includes interfaces for joining two or more tables.
-<h2>
-Transactions
-</h2>
-<p>
-Transactions have four properties <a href="#Gray93">[Gray93]</a>:
-<ul>
-<li>
-They are atomic. That is, all of the changes made in a single
-transaction must be applied at the same instant or not at all.
-This permits, for example, the transfer of money between two
-accounts to be accomplished, by making the reduction of the
-balance in one account and the increase in the other into a
-single, atomic action.
-</li>
-<li>
-They must be consistent. That is, changes to the database
-by any transaction cannot leave the database in an illegal
-or corrupt state.
-</li>
-<li>
-They must be isolatable. Regardless of the number of users
-working in the database at the same time, every user must have
-the illusion that no other activity is going on.
-</li>
-<li>
-They must be durable. Even if the disk that stores the database
-is lost, it must be possible to recover the database to its last
-transaction-consistent state.
-</li>
-</ul>
-<p>
-This combination of properties -- atomicity, consistency, isolation, and
-durability -- is referred to as ACIDity in the literature. Berkeley DB,
-like most database systems, provides ACIDity using a collection of core
-services.
-<p>
-Programmers can choose to use Berkeley DB's transaction services
-for applications that need them.
-<h3>
-Write-ahead logging
-</h3>
-<p>
-Programmers can enable the logging system when they start up Berkeley DB.
-During a transaction,
-the application makes a series of changes to the database.
-Each change is captured in a log entry,
-which holds the state of the database record
-both before and after the change.
-The log record is guaranteed
-to be flushed to stable storage before any of the changed data pages
-are written.
-This behavior -- writing the log before the data pages -- is called
-<i>write-ahead logging</i>.
-<p>
-At any time during the transaction,
-the application can
-<i>commit</i>,
-making the changes permanent,
-or
-<i>roll back</i>,
-cancelling all changes and restoring the database to its
-pre-transaction state.
-If the application
-rolls back the transaction, then the log holds the state of all
-changed pages prior to the transaction, and Berkeley DB simply
-restores that state.
-If the application commits the transaction,
-Berkeley DB writes the log records to disk.
-In-memory copies of the data pages already reflect the changes,
-and will be flushed as necessary during normal processing.
-Since log writes are sequential, but data page
-writes are random, this improves performance.
-<h3>
-Crashes and recovery
-</h3>
-<p>
-Berkeley DB's write-ahead log is used by the transaction
-system to commit or roll back transactions.
-It also gives the recovery system the information that
-it needs to protect against data loss or corruption
-from crashes.
-Berkeley DB is able to survive application crashes,
-system crashes,
-and even catastrophic failures like the loss of a hard
-disk,
-without losing any data.
-<p>
-Surviving crashes requires data stored in several different places.
-During normal processing,
-Berkeley DB has copies of active log records and recently-used
-data pages in memory.
-Log records are flushed to the log disk when transactions commit.
-Data pages trickle out to the data disk as pages move through
-the buffer cache.
-Periodically,
-the system administrator backs up the data disk,
-creating a safe copy of the database at a particular instant.
-When the database is backed up,
-the log can be truncated.
-For maximum robustness,
-the log disk and data disk should be separate devices.
-<p>
-Different system failures can destroy memory,
-the log disk,
-or the data disk.
-Berkeley DB is able to survive the loss of any one
-of these repositories
-without losing any committed transactions.
-<p>
-If the computer's memory is lost,
-through an application or operating system crash,
-then the log holds all committed transactions.
-On restart,
-the recovery system rolls the log forward against
-the database,
-reapplying any changes to on-disk pages that were in memory at the
-time of the crash.
-Since the log contains pre- and post-change state for
-transactions,
-the recovery system also uses the log to restore any pages to
-their original state if they were modified by transactions
-that never committed.
-<p>
-If the data disk is lost,
-the system administrator can restore the most recent copy from backup.
-The recovery system will roll the entire log forward against
-the original database,
-reapplying all committed changes.
-When it finishes,
-the database will contain every change made by every
-transaction that ever committed.
-<p>
-If the log disk is lost,
-then the recovery system can use the in-memory copies of
-log entries to roll back any uncommitted transactions,
-flush all in-memory database pages to the data disk,
-and shut down gracefully.
-At that point,
-the system administrator can back up the database disk,
-install a new log disk,
-and restart the system.
-<h3>
-Checkpoints
-</h3>
-<p>
-Berkeley DB includes a checkpointing service that interacts
-with the recovery system.
-During normal processing,
-both the log and the database are changing continually.
-At any given instant,
-the on-disk versions of the two are not guaranteed to be consistent.
-The log probably contains changes that are not yet in the database.
-<p>
-When an application makes a
-<i>checkpoint</i>,
-all committed changes in the log up to that point
-are guaranteed to be present on the data disk,
-too.
-Checkpointing is moderately expensive during normal processing,
-but limits the time spent recovering from crashes.
-<p>
-After an application or operating system crash,
-the recovery system only needs to go back two checkpoints
-to start rolling the log forward.
-(One checkpoint is not far enough.
-The recovery system cannot be sure that the most recent
-checkpoint completed --
-it may have been interrupted by the crash that forced the
-recovery system to run in the first place.)
-Without checkpoints,
-there is no way to be sure how long restarting after a crash will take.
-With checkpoints,
-the restart interval can be fixed by the programmer.
-Recovery processing can be guaranteed to complete in a second or two.
-<p>
-Software crashes are much more common than disk failures.
-Many developers want to guarantee that software bugs do not destroy data,
-but are willing to restore from tape,
-and to tolerate a day or two of lost work,
-in the unlikley event of a disk crash.
-With Berkeley DB,
-programmers may truncate the log at checkpoints.
-As long as the two most recent checkpoints are present,
-the recovery system can guarantee that no committed transactions
-are lost after a software crash.
-In this case,
-the recovery system does not require that the log and the
-data be on separate devices,
-although separating them can still improve performance
-by spreading out writes.
-<h3>
-Two-phase locking
-</h3>
-<p>
-Berkeley DB provides a service known as two-phase locking.
-In order to reduce the likelihood of deadlocks and to guarantee ACID
-properties, database systems manage locks in two phases. First, during
-the operation of a transaction, they acquire locks, but never release
-them. Second, at the end of the transaction, they release locks, but
-never acquire them. In practice, most database systems, including Berkeley
-DB, acquire locks on demand over the course of the transaction, then
-flush the log, then release all locks.
-<p>
-Berkeley DB can lock entire database files, which correspond to tables,
-or individual pages in them.
-It does no record-level locking.
-By shrinking the page size,
-however,
-developers can guarantee that every page holds only a small
-number of records.
-This reduces contention.
-<p>
-If locking is enabled,
-then read and write operations on a database acquire two-phase locks,
-which are held until the transaction completes.
-Which objects are locked and the order of lock acquisition
-depend on the workload for each transaction.
-It is possible for two or more transactions to deadlock,
-so that each is waiting for a lock that is held by another.
-<p>
-Berkeley DB detects deadlocks and automatically rolls back
-one of the transactions.
-This releases the locks that it held
-and allows the other transactions to continue.
-The caller is notified that its transaction did not complete,
-and may restart it.
-Developers can specify the deadlock detection interval
-and the policy to use in choosing a transaction to roll back.
-<p>
-The two-phase locking interfaces are separately callable by applications
-that link Berkeley DB, though few users have needed to use that facility
-directly.
-Using these interfaces,
-Berkeley DB provides a fast,
-platform-portable locking system for general-purpose use.
-It also lets users include non-database objects in a database transaction,
-by controlling access to them exactly as if they were inside the database.
-<p>
-The Berkeley DB two-phase locking facility is built on the fastest correct
-locking primitives that are supported by the underlying architecture.
-In the current implementation, this means that the locking system is
-different on the various UNIX platforms, and is still more different
-on Windows NT. In our experience, the most difficult aspect of performance
-tuning is finding the fastest locking primitives that work correctly
-on a particular architecture and then integrating the new
-interface with the several that we already support.
-<p>
-The world would be a better place if the operating systems community
-would uniformly implement POSIX locking primitives and would guarantee
-that acquiring an uncontested lock was a fast operation.
-Locks must work both among threads in a single process
-and among processes.
-<h2>
-Concurrency
-</h2>
-<p>
-Good performance under concurrent operation is a critical design point
-for Berkeley DB. Although Berkeley DB is itself not multi-threaded,
-it is thread-safe, and runs well in threaded applications.
-Philosophically,
-we view the use of threads and the choice of a threads package
-as a policy decision,
-and prefer to offer mechanism (the ability to run threaded or not),
-allowing applications to choose their own policies.
-<p>
-The locking, logging, and buffer pool subsystems all use shared memory
-or other OS-specific sharing facilities to communicate. Locks, buffer
-pool fetches, and log writes behave in the same way across threads in
-a single process as they do across different processes on a single
-machine.
-<p>
-As a result, concurrent database applications may start up a new process
-for every single user, may create a single server which spawns a new
-thread for every client request, or may choose any policy in between.
-<p>
-Berkeley DB has been carefully designed to minimize contention
-and maximize concurrency.
-The cache manager allows all threads or processes to benefit from
-I/O done by one.
-Shared resources must sometimes be locked for exclusive access
-by one thread of control.
-We have kept critical sections small,
-and are careful not to hold critical resource locks across
-system calls that could deschedule the locking thread or process.
-Sleepycat Software has customers with hundreds of concurrent
-users working on a single database in production.
-<h1>
-Engineering Philosophy
-</h1>
-<p>
-Fundamentally, Berkeley DB is a collection of access methods with
-important facilities, like logging, locking, and transactional access
-underlying them. In both the research and the commercial world,
-the techniques for building systems like Berkeley DB have been well-known
-for a long time.
-<p>
-The key advantage of Berkeley DB is the careful attention that has been
-paid to engineering details throughout its life. We have carefully
-designed the system so that the core facilities, like locking and I/O,
-surface the right interfaces and are otherwise opaque to the caller.
-As programmers, we understand the value of simplicity and have worked
-hard to simplify the interfaces we surface to users of the
-database system.
-<p>
-Berkeley DB avoids limits in the code. It places no practical limit
-on the size of keys, values, or databases; they may grow to occupy
-the available storage space.
-<p>
-The locking and logging subsystems have been carefully crafted to
-reduce contention and improve throughput by shrinking or eliminating
-critical sections, and reducing the sizes of locked regions and log
-entries.
-<p>
-There is nothing in the design or implementation of Berkeley DB that
-pushes the state of the art in database systems. Rather, we have been
-very careful to get the engineering right. The result is a system that
-is superior, as an embedded database system, to any other solution
-available.
-<p>
-Most database systems trade off simplicity for correctness. Either the
-system is easy to use, or it supports concurrent use and survives system
-failures. Berkeley DB, because of its careful design and implementation,
-offers both simplicity and correctness.
-<p>
-The system has a small footprint,
-makes simple operations simple to carry out (inserting a new record takes
-just a few lines of code), and behaves correctly in the face of heavy
-concurrent use, system crashes, and even catastrophic failures like loss
-of a hard disk.
-<h1>
-The Berkeley DB 2.x Distribution
-</h1>
-<p>
-Berkeley DB is distributed in source code form from
-<a href="http://www.sleepycat.com">www.sleepycat.com</a>.
-Users are free to download and build the software, and to use it in
-their applications.
-<h2>
-What is in the distribution
-</h2>
-<p>
-The distribution is a compressed archive file.
-It includes the source code for the Berkeley DB library,
-as well as documentation, test suites, and supporting utilities.
-<p>
-The source code includes build support for all supported platforms.
-On UNIX systems Berkeley DB uses the GNU autoconfiguration tool,
-<tt>autoconf</tt>,
-to identify the system and to build the library
-and supporting utilities.
-Berkeley DB includes specific build environments for other platforms,
-such as VMS and Windows.
-<h3>
-Documentation
-</h3>
-<p>
-The distributed system includes documentation in HTML format.
-The documentation is in two parts:
-a UNIX-style reference manual for use by programmers,
-and a reference guide which is tutorial in nature.
-<h3>
-Test suite
-</h3>
-<p>
-The software also includes a complete test suite, written in Tcl.
-We believe that the test suite is a key advantage of Berkeley DB
-over comparable systems.
-<p>
-First, the test suite allows users who download and build the software
-to be sure that it is operating correctly.
-<p>
-Second, the test suite allows us, like other commercial developers
-of database software, to exercise the system thoroughly at every
-release. When we learn of new bugs, we add them to the test suite.
-We run the test suite continually during development cycles, and
-always prior to release. The result is a much more reliable system
-by the time it reaches beta release.
-<h2>
-Binary distribution
-</h2>
-<p>
-Sleepycat makes compiled libraries and general binary distributions available
-to customers for a fee.
-<h2>
-Supported platforms
-</h2>
-<p>
-Berkeley DB runs on any operating system with a
-POSIX 1003.1 interface <a href="#IEEE96">[IEEE96]</a>,
-which includes virtually every UNIX system.
-In addition,
-the software runs on VMS,
-Windows/95,
-Windows/98,
-and Windows/NT.
-Sleepycat Software no longer supports deployment on sixteen-bit
-Windows systems.
-<h1>
-Berkeley DB 2.x Licensing
-</h1>
-<p>
-Berkeley DB 2.x is distributed as an Open Source product. The software
-is freely available from us at our Web site, and in other media. Users
-are free to download the software and build applications with it.
-<p>
-The 1.x versions of Berkeley DB were covered by the UC Berkeley copyright
-that covers software freely redistributable in source form. When
-Sleepycat Software was formed, we needed to draft a license consistent
-with the copyright governing the existing, older software. Because
-of important differences between the UC Berkeley copyright and the GPL,
-it was impossible for us to use the GPL.
-A second copyright, with
-terms contradictory to the first, simply would not have worked.
-<p>
-Sleepycat wanted to continue Open Source development of Berkeley DB
-for several reasons.
-We agree with Raymond <a href="#Raym98">[Raym98]</a> and others that Open
-Source software is typically of higher quality than proprietary,
-binary-only products.
-Our customers benefit from a community of developers who
-know and use Berkeley DB,
-and can help with application design,
-debugging,
-and performance tuning.
-Widespread distribution and use of the source code tends to
-isolate bugs early,
-and to get fixes back into the distributed system quickly.
-As a result,
-Berkeley DB is more reliable.
-Just as importantly,
-individual users are able to contribute new features
-and performance enhancements,
-to the benefit of everyone who uses Berkeley DB.
-From a business perspective,
-Open Source and free distribution of the
-software creates share for us, and gives us a market into which
-we can sell products and services.
-Finally, making the source code
-freely available reduces our support load, since customers can
-find and fix bugs without recourse to us, in many cases.
-<p>
-To preserve the Open Source heritage of the older Berkeley DB code,
-we drafted a new license governing the distribution of Berkeley DB
-2.x. We adopted terms from the GPL that make it impossible to
-turn our Open Source code into proprietary code owned by someone else.
-<p>
-Briefly, the terms governing the use and distribution of Berkeley DB
-are:
-<ul>
-<li>
-your application must be internal to your site, or
-</li>
-<li>
-your application must be freely redistributable in source form, or
-</li>
-<li>
-you must get a license from us.
-</li>
-</ul>
-<p>
-For customers who prefer not to distribute Open Source products,
-we sell licenses to use and extend Berkeley DB at a reasonable cost.
-<p>
-We work hard to accommodate the needs of the Open Source community.
-For example,
-we have crafted special licensing arrangements with Gnome
-to encourage its use and distribution of Berkeley DB.
-<p>
-Berkeley DB conforms to the Open Source definition <a href="#Open99">[Open99]</a>.
-The license has
-been carefully crafted to keep the product available as an Open Source
-offering,
-while providing enough of a return on our investment to fund continued
-development and support of the product. The current license has
-created a business capable of funding three years of development on
-the software that simply would not have happened otherwise.
-<h1>
-Summary
-</h1>
-<p>
-Berkeley DB offers a unique collection of features, targeted squarely
-at software developers who need simple, reliable database management
-services in their applications. Good design and implementation and
-careful engineering throughout make the software better than many
-other systems.
-<p>
-Berkeley DB is an Open Source product, available at
-<a href="http://www.sleepycat.com">www.sleepycat.com</a>.
-for download. The distributed system includes everything needed to
-build and deploy the software or to port it to new systems.
-<p>
-Sleepycat Software distributes Berkeley DB under a license agreement
-that draws on both the UC Berkeley copyright and the GPL. The license
-guarantees that Berkeley DB will remain an Open Source product and
-provides Sleepycat with opportunities to make money to fund continued
-development on the software.
-<h1>
-References
-</h1>
-<table border=0 cellpadding=4 cellspacing=2>
-<tr>
-<td valign="top"><a name="Come79">[Come79]</a></td>
-<td>
-<p>
-Comer, D.,
-&quot;The Ubiquitous B-tree,&quot;
-<i>ACM Computing Surveys</i>
-Volume 11, number 2,
-June 1979.
-</td>
-</tr>
-<tr>
-<td valign="top">
-<a name="Gray93">[Gray93]</a>
-</td>
-<td>
-<p>
-Gray, J., and Reuter, A.,
-<i>Transaction Processing: Concepts and Techniques</i>,
-Morgan-Kaufman Publishers,
-1993.
-</td>
-</tr>
-<tr>
-<td valign="top">
-<a name="IEEE96">[IEEE96]</a>
-</td>
-<td>
-<p>
-Institute for Electrical and Electronics Engineers,
-<i>IEEE/ANSI Std 1003.1</i>,
-1996 Edition.
-</td>
-</tr>
-<tr>
-<td valign="top">
-<a name="Litw80">[Litw80]</a>
-</td>
-<td>
-<p>
-Litwin, W.,
-&quot;Linear Hashing: A New Tool for File and Table Addressing,&quot;
-<i>Proceedings of the 6th International Conference on Very Large Databases (VLDB)</i>,
-Montreal, Quebec, Canada,
-October 1980.
-</td>
-</tr>
-<tr>
-<td valign="top">
-<a name="Open94">[Open94]</a>
-</td>
-<td>
-<p>
-The Open Group,
-<i>Distributed TP: The XA+ Specification, Version 2</i>,
-The Open Group, 1994.
-</td>
-</tr>
-<tr>
-<td valign="top">
-<a name="Open99">[Open99]</a>
-</td>
-<td>
-<p>
-Opensource.org,
-&quot;Open Source Definition,&quot;
-<a href="http://www.opensource.org/osd.html"><i>www.opensource.org/osd.html</i></a>,
-version 1.4,
-1999.
-</td>
-</tr>
-<tr>
-<td valign="top">
-<a name="Raym98">[Raym98]</a>
-</td>
-<td>
-<p>
-Raymond, E.S.,
-&quot;The Cathedral and the Bazaar,&quot;
-<a href="http://www.tuxedo.org/~esr/writings/cathedral-bazaar/cathedral-bazaar.html">
-www.tuxedo.org/~esr/writings/cathedral-bazaar/cathedral-bazaar.html</a>,
-January 1998.
-</td>
-</tr>
-<tr>
-<td valign="top">
-<a name="Selt91">[Selt91]</a>
-</td>
-<td>
-<p>
-Seltzer, M., and Yigit, O.,
-&quot;A New Hashing Package for UNIX,&quot;
-<i>Proceedings 1991 Winter USENIX Conference</i>,
-Dallas, TX,
-January 1991.
-</td>
-</tr>
-<tr>
-<td valign="top">
-<a name="Selt92">[Selt92]</a>
-</td>
-<td>
-<p>
-Seltzer, M., and Olson, M.,
-&quot;LIBTP: Portable Modular Transactions for UNIX,&quot;
-<i>Proceedings 1992 Winter Usenix Conference</i>
-San Francisco, CA,
-January 1992.]
-</td>
-</tr>
-<tr>
-<td valign="top">
-<a name="Ston82">[Ston82]</a>
-</td>
-<td>
-<p>
-Stonebraker, M., Stettner, H., Kalash, J., Guttman, A., and Lynn, N.,
-&quot;Document Processing in a Relational Database System,&quot;
-Memorandum No. UCB/ERL M82/32,
-University of California at Berkeley,
-Berkeley, CA,
-May 1982.
-</td>
-</tr>
-</table>
-</body>
-</html>
diff --git a/bdb/docs/ref/refs/bdb_usenix.ps b/bdb/docs/ref/refs/bdb_usenix.ps
deleted file mode 100644
index 82e6789719b..00000000000
--- a/bdb/docs/ref/refs/bdb_usenix.ps
+++ /dev/null
@@ -1,1441 +0,0 @@
-%!PS-Adobe-3.0
-%%Creator: groff version 1.11
-%%CreationDate: Mon Apr 26 13:38:12 1999
-%%DocumentNeededResources: font Times-Bold
-%%+ font Times-Roman
-%%+ font Times-Italic
-%%+ font Courier
-%%DocumentSuppliedResources: procset grops 1.11 0
-%%Pages: 9
-%%PageOrder: Ascend
-%%Orientation: Portrait
-%%EndComments
-%%BeginProlog
-%%BeginResource: procset grops 1.11 0
-/setpacking where{
-pop
-currentpacking
-true setpacking
-}if
-/grops 120 dict dup begin
-/SC 32 def
-/A/show load def
-/B{0 SC 3 -1 roll widthshow}bind def
-/C{0 exch ashow}bind def
-/D{0 exch 0 SC 5 2 roll awidthshow}bind def
-/E{0 rmoveto show}bind def
-/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def
-/G{0 rmoveto 0 exch ashow}bind def
-/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
-/I{0 exch rmoveto show}bind def
-/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def
-/K{0 exch rmoveto 0 exch ashow}bind def
-/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
-/M{rmoveto show}bind def
-/N{rmoveto 0 SC 3 -1 roll widthshow}bind def
-/O{rmoveto 0 exch ashow}bind def
-/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
-/Q{moveto show}bind def
-/R{moveto 0 SC 3 -1 roll widthshow}bind def
-/S{moveto 0 exch ashow}bind def
-/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def
-/SF{
-findfont exch
-[exch dup 0 exch 0 exch neg 0 0]makefont
-dup setfont
-[exch/setfont cvx]cvx bind def
-}bind def
-/MF{
-findfont
-[5 2 roll
-0 3 1 roll
-neg 0 0]makefont
-dup setfont
-[exch/setfont cvx]cvx bind def
-}bind def
-/level0 0 def
-/RES 0 def
-/PL 0 def
-/LS 0 def
-/MANUAL{
-statusdict begin/manualfeed true store end
-}bind def
-/PLG{
-gsave newpath clippath pathbbox grestore
-exch pop add exch pop
-}bind def
-/BP{
-/level0 save def
-1 setlinecap
-1 setlinejoin
-72 RES div dup scale
-LS{
-90 rotate
-}{
-0 PL translate
-}ifelse
-1 -1 scale
-}bind def
-/EP{
-level0 restore
-showpage
-}bind def
-/DA{
-newpath arcn stroke
-}bind def
-/SN{
-transform
-.25 sub exch .25 sub exch
-round .25 add exch round .25 add exch
-itransform
-}bind def
-/DL{
-SN
-moveto
-SN
-lineto stroke
-}bind def
-/DC{
-newpath 0 360 arc closepath
-}bind def
-/TM matrix def
-/DE{
-TM currentmatrix pop
-translate scale newpath 0 0 .5 0 360 arc closepath
-TM setmatrix
-}bind def
-/RC/rcurveto load def
-/RL/rlineto load def
-/ST/stroke load def
-/MT/moveto load def
-/CL/closepath load def
-/FL{
-currentgray exch setgray fill setgray
-}bind def
-/BL/fill load def
-/LW/setlinewidth load def
-/RE{
-findfont
-dup maxlength 1 index/FontName known not{1 add}if dict begin
-{
-1 index/FID ne{def}{pop pop}ifelse
-}forall
-/Encoding exch def
-dup/FontName exch def
-currentdict end definefont pop
-}bind def
-/DEFS 0 def
-/EBEGIN{
-moveto
-DEFS begin
-}bind def
-/EEND/end load def
-/CNT 0 def
-/level1 0 def
-/PBEGIN{
-/level1 save def
-translate
-div 3 1 roll div exch scale
-neg exch neg exch translate
-0 setgray
-0 setlinecap
-1 setlinewidth
-0 setlinejoin
-10 setmiterlimit
-[]0 setdash
-/setstrokeadjust where{
-pop
-false setstrokeadjust
-}if
-/setoverprint where{
-pop
-false setoverprint
-}if
-newpath
-/CNT countdictstack def
-userdict begin
-/showpage{}def
-}bind def
-/PEND{
-clear
-countdictstack CNT sub{end}repeat
-level1 restore
-}bind def
-end def
-/setpacking where{
-pop
-setpacking
-}if
-%%EndResource
-%%IncludeResource: font Times-Bold
-%%IncludeResource: font Times-Roman
-%%IncludeResource: font Times-Italic
-%%IncludeResource: font Courier
-grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72
-def/PL 792 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron/Zcaron
-/scaron/zcaron/Ydieresis/trademark/quotesingle/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
-/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent
-/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen
-/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon
-/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O
-/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex
-/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y
-/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft
-/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl
-/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut
-/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash
-/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen
-/brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft
-/logicalnot/minus/registered/macron/degree/plusminus/twosuperior
-/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior
-/ordmasculine/guilsinglright/onequarter/onehalf/threequarters
-/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE
-/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
-/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
-/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn
-/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
-/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
-/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash
-/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def
-/Courier@0 ENC0/Courier RE/Times-Italic@0 ENC0/Times-Italic RE
-/Times-Roman@0 ENC0/Times-Roman RE/Times-Bold@0 ENC0/Times-Bold RE
-%%EndProlog
-%%Page: 1 1
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 14/Times-Bold@0 SF(Berk)275.358 100.8 Q(eley DB)-.14 E/F1 12
-/Times-Roman@0 SF(Michael A. Olson)270.372 129.6 Q -.3(Ke)283.182 144 S
-(ith Bostic).3 E(Mar)279.15 158.4 Q(go Seltzer)-.216 E/F2 12
-/Times-Italic@0 SF(Sleepycat Softwar)255.492 174.24 Q .24 -.12(e, I)
--.444 H(nc.).12 E/F3 12/Times-Bold@0 SF(Abstract)290.874 210.24 Q/F4 10
-/Times-Roman@0 SF(Berk)79.2 226.44 Q(ele)-.1 E 2.925(yD)-.15 G 2.925(Bi)
--2.925 G 2.924(sa)-2.925 G 2.924(nO)-2.924 G .424
-(pen Source embedded database system with a number of k)-2.924 F .724
--.15(ey a)-.1 H(dv).15 E .424(antages o)-.25 F -.15(ve)-.15 G 2.924(rc)
-.15 G .424(omparable sys-)-2.924 F 3.102(tems. It)79.2 238.44 R .602(is simple to use, supports concurrent access by multiple users, and pro)
-3.102 F .602(vides industrial-strength transaction)-.15 F 1.555
-(support, including survi)79.2 250.44 R 1.555
-(ving system and disk crashes.)-.25 F 1.554
-(This paper describes the design and technical features of)6.555 F(Berk)
-79.2 262.44 Q(ele)-.1 E 2.5(yD)-.15 G(B, the distrib)-2.5 E
-(ution, and its license.)-.2 E F3 3(1. Intr)79.2 286.44 R(oduction)-.216
-E F4 .691(The Berk)79.2 302.64 R(ele)-.1 E 3.191(yD)-.15 G .691
-(atabase \(Berk)-3.191 F(ele)-.1 E 3.191(yD)-.15 G .692
-(B\) is an embedded)-3.191 F .253
-(database system that can be used in applications requir)79.2 314.64 R
-(-)-.2 E 1.636(ing high-performance concurrent storage and retrie)79.2
-326.64 R -.25(va)-.25 G(l).25 E 2.619(of k)79.2 338.64 R -.15(ey)-.1 G
-(/v).15 E 2.619(alue pairs.)-.25 F 2.619(The softw)7.619 F 2.619
-(are is distrib)-.1 F 2.618(uted as a)-.2 F .057
-(library that can be link)79.2 350.64 R .058
-(ed directly into an application.)-.1 F(It)5.058 E(pro)79.2 362.64 Q
-1.454(vides a v)-.15 F 1.453(ariety of programmatic interf)-.25 F 1.453
-(aces, includ-)-.1 F .237
-(ing callable APIs for C, C++, Perl, Tcl and Ja)79.2 374.64 R -.25(va)
--.2 G 5.237(.U).25 G(sers)-5.237 E .327(may do)79.2 386.64 R .327
-(wnload Berk)-.25 F(ele)-.1 E 2.827(yD)-.15 G 2.827(Bf)-2.827 G .326
-(rom Sleep)-2.827 F .326(ycat Softw)-.1 F(are')-.1 E(s)-.55 E -.8(We)
-79.2 398.64 S 2.5(bs).8 G(ite, at)-2.5 E/F5 10/Times-Italic@0 SF(www)2.5
-E(.sleepycat.com)-.74 E F4(.)A(Sleep)79.2 414.84 Q 1.33(ycat distrib)-.1
-F 1.33(utes Berk)-.2 F(ele)-.1 E 3.83(yD)-.15 G 3.83(Ba)-3.83 G 3.83(sa)
--3.83 G 3.83(nO)-3.83 G 1.33(pen Source)-3.83 F 3.3(product. The)79.2
-426.84 R(compan)3.3 E 3.3(yc)-.15 G .8(ollects license fees for certain)
--3.3 F(uses of the softw)79.2 438.84 Q
-(are and sells support and services.)-.1 E F3 3(1.1. History)79.2 468.84
-R F4(Berk)79.2 485.04 Q(ele)-.1 E 3.057(yD)-.15 G 3.057(Bb)-3.057 G
--2.25 -.15(eg a)-3.057 H 3.058(na).15 G 3.058(san)-3.058 G 1.058 -.25
-(ew i)-3.058 H .558(mplementation of a hash).25 F .843
-(access method to replace both)79.2 497.04 R/F6 10/Courier@0 SF(hsearch)
-3.342 E F4 .842(and the v)3.342 F(ari-)-.25 E(ous)79.2 509.04 Q F6(dbm)
-5.466 E F4 2.967(implementations \()5.466 F F6(dbm)A F4 2.967(from A)
-5.467 F(T&T)-1.11 E(,)-.74 E F6(ndbm)5.467 E F4 1.334(from Berk)79.2
-521.04 R(ele)-.1 E 2.634 -.65(y, a)-.15 H(nd).65 E F6(gdbm)3.834 E F4
-1.334(from the GNU project\).)3.834 F(In)6.333 E .367
-(1990 Seltzer and Y)79.2 533.04 R .368
-(igit produced a package called Hash)-.55 F(to do this [Selt91].)79.2
-545.04 Q 3.106(The \214rst general release of Berk)79.2 561.24 R(ele)-.1
-E 5.606(yD)-.15 G 3.106(B, in 1991,)-5.606 F 3.038(included some interf)
-79.2 573.24 R 3.039(ace changes and a ne)-.1 F 5.539(wB)-.25 G(+tree)
--5.539 E .887(access method.)79.2 585.24 R .886
-(At roughly the same time, Seltzer and)5.887 F 1.201(Olson de)79.2
-597.24 R -.15(ve)-.25 G 1.202
-(loped a prototype transaction system based).15 F 3.356(on Berk)79.2
-609.24 R(ele)-.1 E 5.856(yD)-.15 G 3.356(B, called LIBTP [Selt92], b)
--5.856 F 3.355(ut ne)-.2 F -.15(ve)-.25 G(r).15 E(released the code.)
-79.2 621.24 Q .653(The 4.4BSD UNIX release included Berk)79.2 637.44 R
-(ele)-.1 E 3.153(yD)-.15 G 3.153(B1)-3.153 G(.85)-3.153 E .602(in 1992.)
-79.2 649.44 R .601(Seltzer and Bostic maintained the code in the)5.601 F
-1.545(early 1990s in Berk)79.2 661.44 R(ele)-.1 E 4.046(ya)-.15 G 1.546
-(nd in Massachusetts.)-4.046 F(Man)6.546 E(y)-.15 E
-(users adopted the code during this period.)79.2 673.44 Q .432
-(By mid-1996, users w)79.2 689.64 R .431
-(anted commercial support for the)-.1 F(softw)79.2 701.64 Q 7.033
-(are. In)-.1 F 4.533(response, Bostic and Seltzer formed)7.033 F(Sleep)
-79.2 713.64 Q 10.128(ycat Softw)-.1 F 12.628(are. The)-.1 F(compan)
-12.627 E 15.127(ye)-.15 G(nhances,)-15.127 E(distrib)323.2 286.44 Q
-1.623(utes, and supports Berk)-.2 F(ele)-.1 E 4.123(yD)-.15 G 4.124(Ba)
--4.123 G 1.624(nd supporting)-4.124 F(softw)323.2 298.44 Q 2.2
-(are and documentation.)-.1 F(Sleep)7.2 E 2.2(ycat released v)-.1 F(er)
--.15 E(-)-.2 E 1.677(sion 2.1 of Berk)323.2 310.44 R(ele)-.1 E 4.177(yD)
--.15 G 4.178(Bi)-4.177 G 4.178(nm)-4.178 G 1.678(id-1997 with important)
--4.178 F(ne)323.2 322.44 Q 2.56(wf)-.25 G .06
-(eatures, including support for concurrent access to)-2.56 F 4.176
-(databases. The)323.2 334.44 R(compan)4.176 E 4.177(ym)-.15 G(ak)-4.177
-E 1.677(es about three commer)-.1 F(-)-.2 E .958(cial releases a year)
-323.2 346.44 R 3.458(,a)-.4 G .957(nd most recently shipped v)-3.458 F
-(ersion)-.15 E(2.8.)323.2 358.44 Q F3 3(1.2. Ov)323.2 388.44 R(er)-.12 E
-(view of Berk)-.12 E(eley DB)-.12 E F4 3.094(The C interf)323.2 404.64 R
-3.094(aces in Berk)-.1 F(ele)-.1 E 5.594(yD)-.15 G 5.595(Bp)-5.594 G
-(ermit)-5.595 E F6(dbm)5.595 E F4(-style)A 4.586
-(record management for databases, with signi\214cant)323.2 416.64 R -.15
-(ex)323.2 428.64 S 1.273(tensions to handle duplicate data items ele).15
-F -.05(ga)-.15 G(ntly).05 E 3.773(,t)-.65 G(o)-3.773 E 2.427
-(deal with concurrent access, and to pro)323.2 440.64 R 2.427
-(vide transac-)-.15 F .71
-(tional support so that multiple changes can be simulta-)323.2 452.64 R
-1.273(neously committed \(so that the)323.2 464.64 R 3.773(ya)-.15 G
-1.273(re made permanent\))-3.773 F 1.848
-(or rolled back \(so that the database is restored to its)323.2 476.64 R
-(state at the be)323.2 488.64 Q(ginning of the transaction\).)-.15 E
-1.034(C++ and Ja)323.2 504.84 R 1.534 -.25(va i)-.2 H(nterf).25 E 1.033
-(aces pro)-.1 F 1.033(vide a small set of classes)-.15 F 1.961
-(for operating on a database.)323.2 516.84 R 1.961
-(The main class in both)6.961 F .587(cases is called)323.2 528.84 R F6
-(Db)3.086 E F4 3.086(,a)C .586(nd pro)-3.086 F .586
-(vides methods that encapsu-)-.15 F 1.128(late the)323.2 540.84 R F6
-(dbm)3.628 E F4 1.129(-style interf)B 1.129(aces that the C interf)-.1 F
-1.129(aces pro-)-.1 F(vide.)323.2 552.84 Q 2.565(Tcl and Perl interf)
-323.2 569.04 R 2.564(aces allo)-.1 F 5.064(wd)-.25 G -2.15 -.25(ev e)
--5.064 H 2.564(lopers w).25 F 2.564(orking in)-.1 F 1.716
-(those languages to use Berk)323.2 581.04 R(ele)-.1 E 4.216(yD)-.15 G
-4.216(Bi)-4.216 G 4.217(nt)-4.216 G 1.717(heir applica-)-4.217 F 3.419
-(tions. Bindings)323.2 593.04 R .919
-(for both languages are included in the)3.419 F(distrib)323.2 605.04 Q
-(ution.)-.2 E(De)323.2 621.24 Q -.15(ve)-.25 G 1.069
-(lopers may compile their applications and link in).15 F(Berk)323.2
-633.24 Q(ele)-.1 E 2.5(yD)-.15 G 2.5(Bs)-2.5 G(tatically or dynamically)
--2.5 E(.)-.65 E F3 3(1.3. Ho)323.2 663.24 R 3(wB)-.12 G(erk)-3 E
-(eley DB is used)-.12 E F4 .655(The Berk)323.2 679.44 R(ele)-.1 E 3.155
-(yD)-.15 G 3.154(Bl)-3.155 G .654(ibrary supports concurrent access to)
--3.154 F 5.115(databases. It)323.2 691.44 R 2.616(can be link)5.115 F
-2.616(ed into standalone applica-)-.1 F 1.487
-(tions, into a collection of cooperating applications, or)323.2 703.44 R
-4.21(into serv)323.2 715.44 R 4.21
-(ers that handle requests and do database)-.15 F EP
-%%Page: 2 2
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF(operations on behalf of clients.)79.2 84 Q .858
-(Compared to using a standalone database management)79.2 100.2 R .846
-(system, Berk)79.2 112.2 R(ele)-.1 E 3.346(yD)-.15 G 3.346(Bi)-3.346 G
-3.346(se)-3.346 G .846(asy to understand and simple)-3.346 F 3.826
-(to use.)79.2 124.2 R 3.826(The softw)8.826 F 3.826
-(are stores and retrie)-.1 F -.15(ve)-.25 G 6.325(sr).15 G(ecords,)
--6.325 E 2.77(which consist of k)79.2 136.2 R -.15(ey)-.1 G(/v).15 E
-2.77(alue pairs.)-.25 F -2.15 -.25(Ke y)7.77 H 5.27(sa).25 G 2.77
-(re used to)-5.27 F .698(locate items and can be an)79.2 148.2 R 3.198
-(yd)-.15 G .698(ata type or structure sup-)-3.198 F
-(ported by the programming language.)79.2 160.2 Q .813
-(The programmer can pro)79.2 176.4 R .813(vide the functions that Berk)
--.15 F(e-)-.1 E(le)79.2 188.4 Q 3.264(yD)-.15 G 3.264(Bu)-3.264 G .763
-(ses to operate on k)-3.264 F -.15(ey)-.1 G 3.263(s. F).15 F .763(or e)
--.15 F .763(xample, B+trees)-.15 F 1.72
-(can use a custom comparison function, and the Hash)79.2 200.4 R .519
-(access method can use a custom hash function.)79.2 212.4 R(Berk)5.518 E
-(e-)-.1 E(le)79.2 224.4 Q 5.222(yD)-.15 G 5.222(Bu)-5.222 G 2.722
-(ses def)-5.222 F 2.723(ault functions if none are supplied.)-.1 F .873
-(Otherwise, Berk)79.2 236.4 R(ele)-.1 E 3.373(yD)-.15 G 3.373(Bd)-3.373
-G .873(oes not e)-3.373 F .873(xamine or interpret)-.15 F .934(either k)
-79.2 248.4 R -.15(ey)-.1 G 3.434(so).15 G 3.434(rv)-3.434 G .934
-(alues in an)-3.684 F 3.434(yw)-.15 G(ay)-3.534 E 5.934(.V)-.65 G .934
-(alues may be arbi-)-7.044 F(trarily long.)79.2 260.4 Q .69
-(It is also important to understand what Berk)79.2 276.6 R(ele)-.1 E
-3.19(yD)-.15 G 3.19(Bi)-3.19 G(s)-3.19 E 4.365(not. It)79.2 288.6 R
-1.865(is not a database serv)4.365 F 1.866(er that handles netw)-.15 F
-(ork)-.1 E 2.797(requests. It)79.2 300.6 R .297
-(is not an SQL engine that e)2.797 F -.15(xe)-.15 G .296(cutes queries.)
-.15 F 1.547(It is not a relational or object-oriented database man-)79.2
-312.6 R(agement system.)79.2 324.6 Q 1.101(It is possible to b)79.2
-340.8 R 1.101(uild an)-.2 F 3.601(yo)-.15 G 3.601(ft)-3.601 G 1.101
-(hose on top of Berk)-3.601 F(ele)-.1 E(y)-.15 E 2.116(DB, b)79.2 352.8
-R 2.116(ut the package, as distrib)-.2 F 2.117(uted, is an embedded)-.2
-F 1.444(database engine.)79.2 364.8 R 1.444
-(It has been designed to be portable,)6.444 F(small, f)79.2 376.8 Q
-(ast, and reliable.)-.1 E/F1 12/Times-Bold@0 SF 3(1.4. A)79.2 406.8 R
-(pplications that use Berk)-.3 E(eley DB)-.12 E F0(Berk)79.2 423 Q(ele)
--.1 E 4.248(yD)-.15 G 4.248(Bi)-4.248 G 4.249(se)-4.248 G 1.749
-(mbedded in a v)-4.249 F 1.749(ariety of proprietary)-.25 F 3.84
-(and Open Source softw)79.2 435 R 3.84(are packages.)-.1 F 3.84
-(This section)8.84 F(highlights a fe)79.2 447 Q 2.5(wo)-.25 G 2.5(ft)
--2.5 G(he products that use it.)-2.5 E 1.467(Directory serv)79.2 463.2 R
-1.467(ers, which do data storage and retrie)-.15 F -.25(va)-.25 G(l).25
-E 2.823(using the Local Directory Access Protocol \(LD)79.2 475.2 R
-(AP\),)-.4 E(pro)79.2 487.2 Q .956
-(vide naming and directory lookup service on local-)-.15 F 2.837
-(area netw)79.2 499.2 R 5.337(orks. This)-.1 F 2.837
-(service is, essentially)5.337 F 5.336(,d)-.65 G(atabase)-5.336 E .039
-(query and update, b)79.2 511.2 R .039
-(ut uses a simple protocol rather than)-.2 F 2.202(SQL or ODBC.)79.2
-523.2 R(Berk)7.201 E(ele)-.1 E 4.701(yD)-.15 G 4.701(Bi)-4.701 G 4.701
-(st)-4.701 G 2.201(he embedded data)-4.701 F 1.288
-(manager in the majority of deplo)79.2 535.2 R 1.289(yed directory serv)
--.1 F(ers)-.15 E(today)79.2 547.2 Q 4.855(,i)-.65 G 2.355(ncluding LD)
--4.855 F 2.355(AP serv)-.4 F 2.355(ers from Netscape, Mes-)-.15 F
-(sageDirect \(formerly Isode\), and others.)79.2 559.2 Q(Berk)79.2 575.4
-Q(ele)-.1 E 4.385(yD)-.15 G 4.385(Bi)-4.385 G 4.385(sa)-4.385 G 1.886
-(lso embedded in a lar)-4.385 F 1.886(ge number of)-.18 F 5.302
-(mail serv)79.2 587.4 R 7.802(ers. Intermail,)-.15 F 5.302(from Softw)
-7.802 F 5.302(are.com, uses)-.1 F(Berk)79.2 599.4 Q(ele)-.1 E 4.613(yD)
--.15 G 4.613(Ba)-4.613 G 4.613(sam)-4.613 G 2.114
-(essage store and as the backing)-4.613 F 3.597
-(store for its directory serv)79.2 611.4 R(er)-.15 E 8.597(.T)-.55 G
-3.597(he sendmail serv)-8.597 F(er)-.15 E 1.175
-(\(including both the commercial Sendmail Pro of)79.2 623.4 R(fering)
--.25 E 3.283(from Sendmail, Inc. and the v)79.2 635.4 R 3.283
-(ersion distrib)-.15 F 3.282(uted by)-.2 F(sendmail.or)79.2 647.4 Q
-2.304(g\) uses Berk)-.18 F(ele)-.1 E 4.804(yD)-.15 G 4.804(Bt)-4.804 G
-4.804(os)-4.804 G 2.305(tore aliases and)-4.804 F 9.01
-(other information.)79.2 659.4 R(Similarly)14.01 E 11.51(,P)-.65 G 9.01
-(ost\214x \(formerly)-11.51 F 3.465(VMailer\) uses Berk)79.2 671.4 R
-(ele)-.1 E 5.965(yD)-.15 G 5.965(Bt)-5.965 G 5.965(os)-5.965 G 3.465
-(tore administrati)-5.965 F -.15(ve)-.25 G(information.)79.2 683.4 Q
-.134(In addition, Berk)79.2 699.6 R(ele)-.1 E 2.634(yD)-.15 G 2.633(Bi)
--2.634 G 2.633(se)-2.633 G .133(mbedded in a wide v)-2.633 F(ariety)-.25
-E 4.994(of other softw)79.2 711.6 R 4.994(are products.)-.1 F 4.994
-(Example applications)9.994 F .373
-(include managing access control lists, storing user k)323.2 84 R -.15
-(ey)-.1 G(s).15 E 2.75(in a public-k)323.2 96 R 3.05 -.15(ey i)-.1 H
-2.75(nfrastructure, recording machine-to-).15 F(netw)323.2 108 Q .519
-(ork-address mappings in address serv)-.1 F .518(ers, and stor)-.15 F(-)
--.2 E .411(ing con\214guration and de)323.2 120 R .412
-(vice information in video post-)-.25 F(production softw)323.2 132 Q
-(are.)-.1 E(Finally)323.2 148.2 Q 4.978(,B)-.65 G(erk)-4.978 E(ele)-.1 E
-4.978(yD)-.15 G 4.978(Bi)-4.978 G 4.978(sap)-4.978 G 2.478(art of man)
--4.978 F 4.977(yo)-.15 G 2.477(ther Open)-4.977 F .005(Source softw)
-323.2 160.2 R .005(are packages a)-.1 F -.25(va)-.2 G .006
-(ilable on the Internet.).25 F -.15(Fo)5.006 G(r).15 E -.15(ex)323.2
-172.2 S .604(ample, the softw).15 F .604
-(are is embedded in the Apache W)-.1 F(eb)-.8 E(serv)323.2 184.2 Q
-(er and the Gnome desktop.)-.15 E F1 3(2. Access)323.2 214.2 R(Methods)3
-E F0 .828(In database terminology)323.2 230.4 R 3.329(,a)-.65 G 3.329
-(na)-3.329 G .829(ccess method is the disk-)-3.329 F 1.964
-(based structure used to store data and the operations)323.2 242.4 R -.2
-(av)323.2 254.4 S 6.053(ailable on that structure.)-.05 F -.15(Fo)11.053
-G 8.554(re).15 G 6.054(xample, man)-8.704 F(y)-.15 E 3.853
-(database systems support a B+tree access method.)323.2 266.4 R 1.203
-(B+trees allo)323.2 278.4 R 3.703(we)-.25 G 1.203
-(quality-based lookups \(\214nd k)-3.703 F -.15(ey)-.1 G 3.704(se).15 G
-(qual)-3.704 E 4(to some constant\), range-based lookups \(\214nd k)
-323.2 290.4 R -.15(ey)-.1 G(s).15 E 1.188(between tw)323.2 302.4 R 3.688
-(oc)-.1 G 1.189(onstants\) and record insertion and dele-)-3.688 F
-(tion.)323.2 314.4 Q(Berk)323.2 330.6 Q(ele)-.1 E 4.729(yD)-.15 G 4.729
-(Bs)-4.729 G 2.228(upports three access methods: B+tree,)-4.729 F 1.553
-(Extended Linear Hashing \(Hash\), and Fix)323.2 342.6 R 1.553(ed- or V)
--.15 F(ari-)-1.11 E 3.639(able-length Records \(Recno\).)323.2 354.6 R
-3.638(All three operate on)8.638 F 1.956(records composed of a k)323.2
-366.6 R 2.256 -.15(ey a)-.1 H 1.956(nd a data v).15 F 4.456(alue. In)
--.25 F(the)4.456 E 1.301(B+tree and Hash access methods, k)323.2 378.6 R
--.15(ey)-.1 G 3.801(sc).15 G 1.301(an ha)-3.801 F 1.601 -.15(ve a)-.2 H
-(rbi-).15 E 3.595(trary structure.)323.2 390.6 R 3.596
-(In the Recno access method, each)8.595 F .266
-(record is assigned a record number)323.2 402.6 R 2.765(,w)-.4 G .265
-(hich serv)-2.765 F .265(es as the)-.15 F -.1(ke)323.2 414.6 S 4.106
--.65(y. I)-.05 H 2.806(na).65 G .306(ll the access methods, the v)-2.806
-F .306(alue can ha)-.25 F .606 -.15(ve a)-.2 H(rbi-).15 E 1.417
-(trary structure.)323.2 426.6 R 1.417
-(The programmer can supply compari-)6.417 F 2.129
-(son or hashing functions for k)323.2 438.6 R -.15(ey)-.1 G 2.129
-(s, and Berk).15 F(ele)-.1 E 4.629(yD)-.15 G(B)-4.629 E
-(stores and retrie)323.2 450.6 Q -.15(ve)-.25 G 2.5(sv).15 G
-(alues without interpreting them.)-2.75 E 1.069
-(All of the access methods use the host \214lesystem as a)323.2 466.8 R
-(backing store.)323.2 478.8 Q F1 3(2.1. Hash)323.2 508.8 R F0(Berk)323.2
-525 Q(ele)-.1 E 6.485(yD)-.15 G 6.485(Bi)-6.485 G 3.986
-(ncludes a Hash access method that)-6.485 F 9.863(implements e)323.2 537
-R 9.862(xtended linear hashing [Litw80].)-.15 F .017
-(Extended linear hashing adjusts the hash function as the)323.2 549 R
-.507(hash table gro)323.2 561 R .506(ws, attempting to k)-.25 F .506
-(eep all b)-.1 F(uck)-.2 E .506(ets under)-.1 F(-)-.2 E
-(full in the steady state.)323.2 573 Q 1.649
-(The Hash access method supports insertion and dele-)323.2 589.2 R .259
-(tion of records and lookup by e)323.2 601.2 R .259(xact match only)-.15
-F 5.258(.A)-.65 G(ppli-)-5.258 E .038(cations may iterate o)323.2 613.2
-R -.15(ve)-.15 G 2.538(ra).15 G .038(ll records stored in a table, b)
--2.538 F(ut)-.2 E(the order in which the)323.2 625.2 Q 2.5(ya)-.15 G
-(re returned is unde\214ned.)-2.5 E F1 3(2.2. B+tr)323.2 655.2 R(ee)
--.216 E F0(Berk)323.2 671.4 Q(ele)-.1 E 7.184(yD)-.15 G 7.184(Bi)-7.184
-G 4.683(ncludes a B+tree [Come79] access)-7.184 F 2.502(method. B+trees)
-323.2 683.4 R .002(store records of k)2.502 F -.15(ey)-.1 G(/v).15 E
-.003(alue pairs in leaf)-.25 F .52(pages, and pairs of \(k)323.2 695.4 R
--.15(ey)-.1 G 3.02(,c)-.5 G .52(hild page address\) at internal)-3.02 F
-5.384(nodes. K)323.2 707.4 R -.15(ey)-.25 G 5.384(si).15 G 5.384(nt)
--5.384 G 2.885(he tree are stored in sorted order)-5.384 F(,)-.4 E EP
-%%Page: 3 3
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF .576
-(where the order is determined by the comparison func-)79.2 84 R .815
-(tion supplied when the database w)79.2 96 R .815(as created.)-.1 F -.15
-(Pa)5.815 G .815(ges at).15 F .389(the leaf le)79.2 108 R -.15(ve)-.25 G
-2.889(lo).15 G 2.889(ft)-2.889 G .389
-(he tree include pointers to their neigh-)-2.889 F 1.444
-(bors to simplify tra)79.2 120 R -.15(ve)-.2 G 3.944(rsal. B+trees).15 F
-1.445(support lookup by)3.944 F -.15(ex)79.2 132 S .068
-(act match \(equality\) or range \(greater than or equal to).15 F 2.891
-(ak)79.2 144 S -.15(ey)-2.991 G 2.891(\). Lik).15 F 2.891(eH)-.1 G .391
-(ash tables, B+trees support record inser)-2.891 F(-)-.2 E
-(tion, deletion, and iteration o)79.2 156 Q -.15(ve)-.15 G 2.5(ra).15 G
-(ll records in the tree.)-2.5 E .646
-(As records are inserted and pages in the B+tree \214ll up,)79.2 172.2 R
-(the)79.2 184.2 Q 2.722(ya)-.15 G .223(re split, with about half the k)
--2.722 F -.15(ey)-.1 G 2.723(sg).15 G .223(oing into a ne)-2.723 F(w)
--.25 E 1.603(peer page at the same le)79.2 196.2 R -.15(ve)-.25 G 4.103
-(li).15 G 4.103(nt)-4.103 G 1.603(he tree.)-4.103 F 1.603(Most B+tree)
-6.603 F .387(implementations lea)79.2 208.2 R .687 -.15(ve b)-.2 H .387
-(oth nodes half-full after a split.).15 F 2.763
-(This leads to poor performance in a common case,)79.2 220.2 R 1.522
-(where the caller inserts k)79.2 232.2 R -.15(ey)-.1 G 4.022(si).15 G
-4.022(no)-4.022 G(rder)-4.022 E 6.522(.T)-.55 G 4.023(oh)-7.322 G 1.523
-(andle this)-4.023 F 1.643(case, Berk)79.2 244.2 R(ele)-.1 E 4.143(yD)
--.15 G 4.143(Bk)-4.143 G 1.642(eeps track of the insertion order)-4.243
-F(,)-.4 E 2.023(and splits pages une)79.2 256.2 R -.15(ve)-.25 G 2.024
-(nly to k).15 F 2.024(eep pages fuller)-.1 F 7.024(.T)-.55 G(his)-7.024
-E 2.3(reduces tree size, yielding better search performance)79.2 268.2 R
-(and smaller databases.)79.2 280.2 Q 3.177
-(On deletion, empty pages are coalesced by re)79.2 296.4 R -.15(ve)-.25
-G(rse).15 E 2.03(splits into single pages.)79.2 308.4 R 2.03
-(The access method does no)7.03 F .347
-(other page balancing on insertion or deletion.)79.2 320.4 R -2.15 -.25
-(Ke y)5.348 H 2.848(sa).25 G(re)-2.848 E 1.927(not mo)79.2 332.4 R -.15
-(ve)-.15 G 4.427(da).15 G 1.927(mong pages at e)-4.427 F -.15(ve)-.25 G
-1.926(ry update to k).15 F 1.926(eep the)-.1 F 2.206
-(tree well-balanced.)79.2 344.4 R 2.207(While this could impro)7.206 F
-2.507 -.15(ve s)-.15 H(earch).15 E 2.341
-(times in some cases, the additional code comple)79.2 356.4 R(xity)-.15
-E(leads to slo)79.2 368.4 Q(wer updates and is prone to deadlocks.)-.25
-E -.15(Fo)79.2 384.6 S 2.948(rs).15 G(implicity)-2.948 E 2.948(,B)-.65 G
-(erk)-2.948 E(ele)-.1 E 2.949(yD)-.15 G 2.949(BB)-2.949 G .449
-(+trees do no pre\214x com-)-2.949 F(pression of k)79.2 396.6 Q -.15(ey)
--.1 G 2.5(sa).15 G 2.5(ti)-2.5 G(nternal or leaf nodes.)-2.5 E/F1 12
-/Times-Bold@0 SF 3(2.3. Recno)79.2 426.6 R F0(Berk)79.2 442.8 Q(ele)-.1
-E 2.736(yD)-.15 G 2.736(Bi)-2.736 G .236(ncludes a \214x)-2.736 F .236
-(ed- or v)-.15 F .235(ariable-length record)-.25 F 5.075
-(access method, called)79.2 454.8 R/F2 10/Times-Italic@0 SF(Recno)7.575
-E F0 10.075(.T)C 5.075(he Recno access)-10.075 F .896
-(method assigns logical record numbers to each record,)79.2 466.8 R .978
-(and can search for and update records by record num-)79.2 478.8 R(ber)
-79.2 490.8 Q 5.037(.R)-.55 G .037(ecno is able, for e)-5.037 F .037
-(xample, to load a te)-.15 F .036(xt \214le into a)-.15 F 1.514
-(database, treating each line as a record.)79.2 502.8 R 1.514
-(This permits)6.514 F -.1(fa)79.2 514.8 S 1.313
-(st searches by line number for applications lik).1 F 3.812(et)-.1 G
--.15(ex)-3.812 G(t).15 E(editors [Ston82].)79.2 526.8 Q 2.59
-(Recno is actually b)79.2 543 R 2.59(uilt on top of the B+tree access)
--.2 F 3.192(method and pro)79.2 555 R 3.191(vides a simple interf)-.15 F
-3.191(ace for storing)-.1 F 3.14(sequentially-ordered data v)79.2 567 R
-5.64(alues. The)-.25 F 3.14(Recno access)5.64 F 2.266
-(method generates k)79.2 579 R -.15(ey)-.1 G 4.766(si).15 G(nternally)
--4.766 E 7.266(.T)-.65 G 2.266(he programmer')-7.266 F(s)-.55 E(vie)79.2
-591 Q 4.102(wo)-.25 G 4.102(ft)-4.102 G 1.602(he v)-4.102 F 1.602
-(alues is that the)-.25 F 4.102(ya)-.15 G 1.603(re numbered sequen-)
--4.102 F .254(tially from one.)79.2 603 R(De)5.254 E -.15(ve)-.25 G .254
-(lopers can choose to ha).15 F .553 -.15(ve r)-.2 H(ecords).15 E 9
-(automatically renumbered when lo)79.2 615 R(wer)-.25 E(-numbered)-.2 E
-.041(records are added or deleted.)79.2 627 R .041(In this case, ne)
-5.041 F 2.541(wk)-.25 G -.15(ey)-2.641 G 2.541(sc).15 G(an)-2.541 E
-(be inserted between e)79.2 639 Q(xisting k)-.15 E -.15(ey)-.1 G(s.).15
-E F1 3(3. F)79.2 669 R(eatur)-.3 E(es)-.216 E F0 1.827
-(This section describes important features of Berk)79.2 685.2 R(ele)-.1
-E(y)-.15 E 3.456(DB. In)79.2 697.2 R .956(general, de)3.456 F -.15(ve)
--.25 G .956(lopers can choose which features).15 F .488
-(are useful to them, and use only those that are required)79.2 709.2 R
-(by their application.)323.2 84 Q -.15(Fo)323.2 100.2 S 3.529(re).15 G
-1.029(xample, when an application opens a database, it)-3.679 F .101
-(can declare the de)323.2 112.2 R .101(gree of concurrenc)-.15 F 2.601
-(ya)-.15 G .102(nd reco)-2.601 F -.15(ve)-.15 G .102(ry that).15 F .049
-(it requires.)323.2 124.2 R .048
-(Simple stand-alone applications, and in par)5.049 F(-)-.2 E .491
-(ticular ports of applications that used)323.2 136.2 R/F3 10/Courier@0
-SF(dbm)2.991 E F0 .491(or one of its)2.991 F -.25(va)323.2 148.2 S 1.093
-(riants, generally do not require concurrent access or).25 F .975
-(crash reco)323.2 160.2 R -.15(ve)-.15 G(ry).15 E 5.975(.O)-.65 G .975
-(ther applications, such as enterprise-)-5.975 F 3.08
-(class database management systems that store sales)323.2 172.2 R 2.643
-(transactions or other critical data, need full transac-)323.2 184.2 R
-3.93(tional service.)323.2 196.2 R 3.93(Single-user operation is f)8.93
-F 3.93(aster than)-.1 F 1.175(multi-user operation, since no o)323.2
-208.2 R -.15(ve)-.15 G 1.176(rhead is incurred by).15 F 3.156
-(locking. Running)323.2 220.2 R .656(with the reco)3.156 F -.15(ve)-.15
-G .655(ry system disabled is).15 F -.1(fa)323.2 232.2 S 1.732
-(ster than running with it enabled, since log records).1 F 2.703
-(need not be written when changes are made to the)323.2 244.2 R
-(database.)323.2 256.2 Q .851
-(In addition, some core subsystems, including the lock-)323.2 272.4 R
-.345(ing system and the logging f)323.2 284.4 R(acility)-.1 E 2.844(,c)
--.65 G .344(an be used outside)-2.844 F 1.772(the conte)323.2 296.4 R
-1.772(xt of the access methods as well.)-.15 F(Although)6.773 E(fe)323.2
-308.4 Q 4.284(wu)-.25 G 1.784(sers ha)-4.284 F 2.084 -.15(ve c)-.2 H
-1.784(hosen to do so, it is possible to use).15 F .939
-(only the lock manager in Berk)323.2 320.4 R(ele)-.1 E 3.439(yD)-.15 G
-3.439(Bt)-3.439 G 3.439(oc)-3.439 G .939(ontrol con-)-3.439 F(currenc)
-323.2 332.4 Q 4.743(yi)-.15 G 4.743(na)-4.743 G 4.743(na)-4.743 G 2.242
-(pplication, without using an)-4.743 F 4.742(yo)-.15 G 4.742(ft)-4.742 G
-(he)-4.742 E .158(standard database services.)323.2 344.4 R(Alternati)
-5.158 E -.15(ve)-.25 G(ly).15 E 2.658(,t)-.65 G .159(he caller can)
--2.658 F(inte)323.2 356.4 Q .07
-(grate locking of non-database resources with Berk)-.15 F(e-)-.1 E(le)
-323.2 368.4 Q 5.201(yD)-.15 G(B')-5.201 E 5.201(st)-.55 G 2.702
-(ransactional tw)-5.201 F 2.702(o-phase locking system, to)-.1 F 2.892
-(impose transaction semantics on objects outside the)323.2 380.4 R
-(database.)323.2 392.4 Q F1 3(3.1. Pr)323.2 422.4 R
-(ogrammatic interfaces)-.216 E F0(Berk)323.2 438.6 Q(ele)-.1 E 4.008(yD)
--.15 G 4.008(Bd)-4.008 G 1.509(e\214nes a simple API for database man-)
--4.008 F 3.452(agement. The)323.2 450.6 R .952
-(package does not include industry-stan-)3.452 F 1.898
-(dard programmatic interf)323.2 462.6 R 1.898
-(aces such as Open Database)-.1 F(Connecti)323.2 474.6 Q .852
-(vity \(ODBC\), Object Linking and Embedding)-.25 F .817
-(for Databases \(OleDB\), or Structured Query Language)323.2 486.6 R
-4.027(\(SQL\). These)323.2 498.6 R(interf)4.027 E 1.527
-(aces, while useful, were designed)-.1 F 2.477
-(to promote interoperability of database systems, and)323.2 510.6 R
-(not simplicity or performance.)323.2 522.6 Q 3.192
-(In response to customer demand, Berk)323.2 538.8 R(ele)-.1 E 5.691(yD)
--.15 G 5.691(B2)-5.691 G(.5)-5.691 E .538
-(introduced support for the XA standard [Open94].)323.2 550.8 R(XA)5.539
-E .52(permits Berk)323.2 562.8 R(ele)-.1 E 3.02(yD)-.15 G 3.02(Bt)-3.02
-G 3.02(op)-3.02 G .52(articipate in distrib)-3.02 F .52(uted trans-)-.2
-F 3.373(actions under a transaction processing monitor lik)323.2 574.8 R
-(e)-.1 E -.45(Tu)323.2 586.8 S -.15(xe).45 G 1.31(do from BEA Systems.)
-.15 F(Lik)6.31 E 3.81(eX)-.1 G 1.31(A, other standard)-3.81 F(interf)
-323.2 598.8 Q .99(aces can be b)-.1 F .99
-(uilt on top of the core system.)-.2 F(The)5.99 E .846
-(standards do not belong inside Berk)323.2 610.8 R(ele)-.1 E 3.346(yD)
--.15 G .846(B, since not)-3.346 F(all applications need them.)323.2
-622.8 Q F1 3(3.2. W)323.2 652.8 R(orking with r)-.9 E(ecords)-.216 E F0
-3.134(Ad)323.2 669 S .634
-(atabase user may need to search for particular k)-3.134 F -.15(ey)-.1 G
-(s).15 E .908(in a database, or may simply w)323.2 681 R .908
-(ant to bro)-.1 F .907(wse a)-.25 F -.25(va)-.2 G(ilable).25 E 4.101
-(records. Berk)323.2 693 R(ele)-.1 E 4.101(yD)-.15 G 4.101(Bs)-4.101 G
-1.601(upports both k)-4.101 F -.15(ey)-.1 G 1.602(ed access, to).15 F
-.173(\214nd one or more records with a gi)323.2 705 R -.15(ve)-.25 G
-2.673(nk).15 G -.15(ey)-2.773 G 2.673(,o)-.5 G 2.673(rs)-2.673 G
-(equential)-2.673 E .53(access, to retrie)323.2 717 R .83 -.15(ve a)-.25
-H .53(ll the records in the database one at).15 F EP
-%%Page: 4 4
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF 6.34(at)79.2 84 S 6.34(ime. The)-6.34 F 3.84
-(order of the records returned during)6.34 F .208
-(sequential scans depends on the access method.)79.2 96 R(B+tree)5.209 E
-1.495(and Recno databases return records in sort order)79.2 108 R 3.995
-(,a)-.4 G(nd)-3.995 E .023
-(Hash databases return them in apparently random order)79.2 120 R(.)-.55
-E(Similarly)79.2 136.2 Q 4.959(,B)-.65 G(erk)-4.959 E(ele)-.1 E 4.959
-(yD)-.15 G 4.958(Bd)-4.959 G 2.458(e\214nes simple interf)-4.958 F 2.458
-(aces for)-.1 F
-(inserting, updating, and deleting records in a database.)79.2 148.2 Q
-/F1 12/Times-Bold@0 SF 3(3.3. Long)79.2 178.2 R -.12(ke)3 G(ys and v).12
-E(alues)-.12 E F0(Berk)79.2 194.4 Q(ele)-.1 E 3.553(yD)-.15 G 3.553(Bm)
--3.553 G 1.053(anages k)-3.553 F -.15(ey)-.1 G 3.553(sa).15 G 1.053
-(nd v)-3.553 F 1.053(alues as lar)-.25 F 1.054(ge as 2)-.18 F/F2 8
-/Times-Roman@0 SF(32)-5 I F0 3.192(bytes. Since)79.2 206.4 R .692
-(the time required to cop)3.192 F 3.192(yar)-.1 G .692(ecord is pro-)
--3.192 F 1.895(portional to its size, Berk)79.2 218.4 R(ele)-.1 E 4.396
-(yD)-.15 G 4.396(Bi)-4.396 G 1.896(ncludes interf)-4.396 F(aces)-.1 E
-4.507(that operate on partial records.)79.2 230.4 R 4.507
-(If an application)9.507 F 1.273(requires only part of a lar)79.2 242.4
-R 1.274(ge record, it requests partial)-.18 F .026(record retrie)79.2
-254.4 R -.25(va)-.25 G .026(l, and recei).25 F -.15(ve)-.25 G 2.526(sj)
-.15 G .025(ust the bytes that it needs.)-2.526 F(The smaller cop)79.2
-266.4 Q 2.5(ys)-.1 G -2.25 -.2(av e)-2.5 H 2.5(sb).2 G
-(oth time and memory)-2.5 E(.)-.65 E(Berk)79.2 282.6 Q(ele)-.1 E 3.206
-(yD)-.15 G 3.206(Ba)-3.206 G(llo)-3.206 E .706
-(ws the programmer to de\214ne the data)-.25 F 2.72(types of k)79.2
-294.6 R -.15(ey)-.1 G 5.22(sa).15 G 2.72(nd v)-5.22 F 5.22(alues. De)
--.25 F -.15(ve)-.25 G 2.72(lopers use an).15 F 5.22(yt)-.15 G(ype)-5.22
-E -.15(ex)79.2 306.6 S(pressible in the programming language.).15 E F1 3
-(3.4. Lar)79.2 336.6 R(ge databases)-.12 E F0 3.255(As)79.2 352.8 S .755
-(ingle database managed by Berk)-3.255 F(ele)-.1 E 3.256(yD)-.15 G 3.256
-(Bc)-3.256 G .756(an be up)-3.256 F 1.716(to 2)79.2 364.8 R F2(48)-5 I
-F0 1.716(bytes, or 256 petabytes, in size.)4.216 5 N(Berk)6.715 E(ele)
--.1 E 4.215(yD)-.15 G(B)-4.215 E 2.144
-(uses the host \214lesystem as the backing store for the)79.2 376.8 R
-2.668(database, so lar)79.2 388.8 R 2.667
-(ge databases require big \214le support)-.18 F 3.113
-(from the operating system.)79.2 400.8 R(Sleep)8.113 E 3.114(ycat Softw)
--.1 F 3.114(are has)-.1 F 5.712(customers using Berk)79.2 412.8 R(ele)
--.1 E 8.212(yD)-.15 G 8.212(Bt)-8.212 G 8.211(om)-8.212 G 5.711
-(anage single)-8.211 F(databases in e)79.2 424.8 Q(xcess of 100 gig)-.15
-E(abytes.)-.05 E F1 3(3.5. Main)79.2 454.8 R(memory databases)3 E F0
-1.171(Applications that do not require persistent storage can)79.2 471 R
-.119(create databases that e)79.2 483 R .119(xist only in main memory)
--.15 F 5.118(.T)-.65 G(hese)-5.118 E .542(databases bypass the o)79.2
-495 R -.15(ve)-.15 G .543(rhead imposed by the I/O sys-).15 F
-(tem altogether)79.2 507 Q(.)-.55 E 2.144
-(Some applications do need to use disk as a backing)79.2 523.2 R 2.248
-(store, b)79.2 535.2 R 2.249(ut run on machines with v)-.2 F 2.249
-(ery lar)-.15 F 2.249(ge memory)-.18 F(.)-.65 E(Berk)79.2 547.2 Q(ele)
--.1 E 2.799(yD)-.15 G 2.799(Bi)-2.799 G 2.799(sa)-2.799 G .299
-(ble to manage v)-2.799 F .299(ery lar)-.15 F .299(ge shared mem-)-.18 F
-.128(ory re)79.2 559.2 R .129
-(gions for cached data pages, log records, and lock)-.15 F 3.938
-(management. F)79.2 571.2 R 1.437(or e)-.15 F 1.437
-(xample, the cache re)-.15 F 1.437(gion used for)-.15 F .033
-(data pages may be gig)79.2 583.2 R .034
-(abytes in size, reducing the lik)-.05 F(eli-)-.1 E .639(hood that an)
-79.2 595.2 R 3.139(yr)-.15 G .639
-(ead operation will need to visit the disk)-3.139 F 1.201
-(in the steady state.)79.2 607.2 R 1.201
-(The programmer declares the size)6.201 F(of the cache re)79.2 619.2 Q
-(gion at startup.)-.15 E(Finally)79.2 635.4 Q 7.048(,m)-.65 G(an)-7.048
-E 7.048(yo)-.15 G 4.548(perating systems pro)-7.048 F 4.548
-(vide memory-)-.15 F 2.532(mapped \214le services that are much f)79.2
-647.4 R 2.533(aster than their)-.1 F 2.602
-(general-purpose \214le system interf)79.2 659.4 R 5.102(aces. Berk)-.1
-F(ele)-.1 E 5.102(yD)-.15 G(B)-5.102 E 5.118
-(can memory-map its database \214les for read-only)79.2 671.4 R 3.917
-(database use.)79.2 683.4 R 3.917(The application operates on records)
-8.917 F 2.069(stored directly on the pages, with no cache manage-)79.2
-695.4 R 1.557(ment o)79.2 707.4 R -.15(ve)-.15 G 4.057(rhead. Because)
-.15 F 1.556(the application gets pointers)4.057 F 1.265
-(directly into the Berk)323.2 84 R(ele)-.1 E 3.765(yD)-.15 G 3.765(Bp)
--3.765 G 1.265(ages, writes cannot be)-3.765 F 3.775
-(permitted. Otherwise,)323.2 96 R 1.275(changes could bypass the lock-)
-3.775 F .23(ing and logging systems, and softw)323.2 108 R .23
-(are errors could cor)-.1 F(-)-.2 E 4.007(rupt the database.)323.2 120 R
-4.006(Read-only applications can use)9.007 F(Berk)323.2 132 Q(ele)-.1 E
-2.893(yD)-.15 G(B')-2.893 E 2.893(sm)-.55 G .393
-(emory-mapped \214le service to impro)-2.893 F -.15(ve)-.15 G
-(performance on most architectures.)323.2 144 Q F1 3
-(3.6. Con\214gurable)323.2 174 R(page size)3 E F0 .111
-(Programmers declare the size of the pages used by their)323.2 190.2 R
-.403(access methods when the)323.2 202.2 R 2.903(yc)-.15 G .403
-(reate a database.)-2.903 F(Although)5.403 E(Berk)323.2 214.2 Q(ele)-.1
-E 4.046(yD)-.15 G 4.046(Bp)-4.046 G(ro)-4.046 E 1.546
-(vides reasonable def)-.15 F 1.546(aults, de)-.1 F -.15(ve)-.25 G
-(lopers).15 E 3.64(may o)323.2 226.2 R -.15(ve)-.15 G 3.64
-(rride them to control system performance.).15 F .793
-(Small pages reduce the number of records that \214t on a)323.2 238.2 R
-.353(single page.)323.2 250.2 R(Fe)5.353 E .353
-(wer records on a page means that fe)-.25 F(wer)-.25 E .724
-(records are lock)323.2 262.2 R .724(ed when the page is lock)-.1 F .723
-(ed, impro)-.1 F(ving)-.15 E(concurrenc)323.2 274.2 Q 5.262 -.65(y. T)
--.15 H 1.462(he per).65 F 1.462(-page o)-.2 F -.15(ve)-.15 G 1.462
-(rhead is proportionally).15 F 2.29
-(higher with smaller pages, of course, b)323.2 286.2 R 2.29(ut de)-.2 F
--.15(ve)-.25 G(lopers).15 E(can trade of)323.2 298.2 Q 2.5(fs)-.25 G
-(pace for time as an application requires.)-2.5 E F1 3(3.7. Small)323.2
-328.2 R -.3(fo)3 G(otprint).3 E F0(Berk)323.2 344.4 Q(ele)-.1 E 3.973
-(yD)-.15 G 3.973(Bi)-3.973 G 3.974(sac)-3.973 G 1.474(ompact system.)
--3.974 F 1.474(The full package,)6.474 F .832
-(including all access methods, reco)323.2 356.4 R -.15(ve)-.15 G
-(rability).15 E 3.331(,a)-.65 G .831(nd trans-)-3.331 F 1.235
-(action support is roughly 175K of te)323.2 368.4 R 1.236
-(xt space on com-)-.15 F(mon architectures.)323.2 380.4 Q F1 3
-(3.8. Cursors)323.2 410.4 R F0 1.57(In database terminology)323.2 426.6
-R 4.07(,ac)-.65 G 1.57(ursor is a pointer into an)-4.07 F 1.806
-(access method that can be called iterati)323.2 438.6 R -.15(ve)-.25 G
-1.807(ly to return).15 F 3.68(records in sequence.)323.2 450.6 R(Berk)
-8.68 E(ele)-.1 E 6.18(yD)-.15 G 6.18(Bi)-6.18 G 3.68(ncludes cursor)
--6.18 F(interf)323.2 462.6 Q 2.814(aces for all access methods.)-.1 F
-2.815(This permits, for)7.814 F -.15(ex)323.2 474.6 S .34
-(ample, users to tra).15 F -.15(ve)-.2 G .34(rse a B+tree and vie).15 F
-2.84(wr)-.25 G .34(ecords in)-2.84 F(order)323.2 486.6 Q 6.233(.P)-.55 G
-1.234(ointers to records in cursors are persistent, so)-6.233 F 1.779
-(that once fetched, a record may be updated in place.)323.2 498.6 R
-(Finally)323.2 510.6 Q 4.438(,c)-.65 G 1.939
-(ursors support access to chains of duplicate)-4.438 F
-(data items in the v)323.2 522.6 Q(arious access methods.)-.25 E F1 3
-(3.9. J)323.2 552.6 R(oins)-.18 E F0 2.703(In database terminology)323.2
-568.8 R 5.203(,aj)-.65 G 2.702(oin is an operation that)-5.203 F .616
-(spans multiple separate tables \(or in the case of Berk)323.2 580.8 R
-(e-)-.1 E(le)323.2 592.8 Q 4.518(yD)-.15 G 2.018
-(B, multiple separate DB \214les\).)-4.518 F -.15(Fo)7.017 G 4.517(re)
-.15 G 2.017(xample, a)-4.667 F(compan)323.2 604.8 Q 3.372(ym)-.15 G .873
-(ay store information about its customers in)-3.372 F 1.545
-(one table and information about sales in another)323.2 616.8 R 6.545
-(.A)-.55 G(n)-6.545 E 1.498(application will lik)323.2 628.8 R 1.499
-(ely w)-.1 F 1.499(ant to look up sales informa-)-.1 F .933
-(tion by customer name; this requires matching records)323.2 640.8 R
-2.28(in the tw)323.2 652.8 R 4.78(ot)-.1 G 2.28
-(ables that share a common customer ID)-4.78 F 2.515(\214eld. This)323.2
-664.8 R .015(combining of records from multiple tables is)2.515 F
-(called a join.)323.2 676.8 Q(Berk)323.2 693 Q(ele)-.1 E 5.561(yD)-.15 G
-5.561(Bi)-5.561 G 3.061(ncludes interf)-5.561 F 3.062
-(aces for joining tw)-.1 F 5.562(oo)-.1 G(r)-5.562 E(more tables.)323.2
-705 Q EP
-%%Page: 5 5
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 12/Times-Bold@0 SF 3(3.10. T)79.2 84 R(ransactions)-.888 E/F1 10
-/Times-Roman@0 SF -.35(Tr)79.2 100.2 S(ansactions ha).35 E .3 -.15(ve f)
--.2 H(our properties [Gray93]:).15 E/F2 8/Times-Roman@0 SF<83>84.2 116.4
-Q F1(The)17.2 E 5.489(ya)-.15 G 2.989(re atomic.)-5.489 F 2.989
-(That is, all of the changes)7.989 F 1.475
-(made in a single transaction must be applied at)104.2 128.4 R 1.31
-(the same instant or not at all.)104.2 140.4 R 1.31(This permits, for)
-6.31 F -.15(ex)104.2 152.4 S 3.565(ample, the transfer of mone).15 F
-6.065(yb)-.15 G 3.565(etween tw)-6.065 F(o)-.1 E 3.68
-(accounts to be accomplished, by making the)104.2 164.4 R 1.27
-(reduction of the balance in one account and the)104.2 176.4 R
-(increase in the other into a single, atomic action.)104.2 188.4 Q F2
-<83>84.2 204.6 Q F1(The)17.2 E 3.125(ym)-.15 G .625(ust be consistent.)
--3.125 F .625(That is, changes to the)5.625 F 3.628(database by an)104.2
-216.6 R 6.128(yt)-.15 G 3.628(ransaction cannot lea)-6.128 F 3.929 -.15
-(ve t)-.2 H(he).15 E(database in an ille)104.2 228.6 Q -.05(ga)-.15 G
-2.5(lo).05 G 2.5(rc)-2.5 G(orrupt state.)-2.5 E F2<83>84.2 244.8 Q F1
-(The)17.2 E 3.006(ym)-.15 G .506(ust be isolatable.)-3.006 F(Re)5.506 E
--.05(ga)-.15 G .505(rdless of the num-).05 F .8(ber of users w)104.2
-256.8 R .8(orking in the database at the same)-.1 F 1.88(time, e)104.2
-268.8 R -.15(ve)-.25 G 1.88(ry user must ha).15 F 2.18 -.15(ve t)-.2 H
-1.88(he illusion that no).15 F(other acti)104.2 280.8 Q
-(vity is going on.)-.25 E F2<83>84.2 297 Q F1(The)17.2 E 5.54(ym)-.15 G
-3.04(ust be durable.)-5.54 F(Ev)8.04 E 3.04(en if the disk that)-.15 F
-.877(stores the database is lost, it must be possible to)104.2 309 R
-(reco)104.2 321 Q -.15(ve)-.15 G 2.668(rt).15 G .168
-(he database to its last transaction-consis-)-2.668 F(tent state.)104.2
-333 Q 2.49(This combination of properties \212 atomicity)79.2 349.2 R
-4.99(,c)-.65 G(onsis-)-4.99 E(tenc)79.2 361.2 Q 4.542 -.65(y, i)-.15 H
-3.243(solation, and durability \212 is referred to as).65 F -.4(AC)79.2
-373.2 S 3.459(IDity in the literature.).4 F(Berk)8.459 E(ele)-.1 E 5.958
-(yD)-.15 G 3.458(B, lik)-5.958 F 5.958(em)-.1 G(ost)-5.958 E .993
-(database systems, pro)79.2 385.2 R .993(vides A)-.15 F .994
-(CIDity using a collection)-.4 F(of core services.)79.2 397.2 Q .257
-(Programmers can choose to use Berk)79.2 413.4 R(ele)-.1 E 2.757(yD)-.15
-G(B')-2.757 E 2.757(st)-.55 G(ransac-)-2.757 E
-(tion services for applications that need them.)79.2 425.4 Q F0 3
-(3.10.1. Write-ahead)79.2 455.4 R(logging)3 E F1 .479
-(Programmers can enable the logging system when the)79.2 471.6 R(y)-.15
-E .918(start up Berk)79.2 483.6 R(ele)-.1 E 3.418(yD)-.15 G 3.418
-(B. During)-3.418 F 3.417(at)3.417 G .917(ransaction, the appli-)-3.417
-F .493(cation mak)79.2 495.6 R .493
-(es a series of changes to the database.)-.1 F(Each)5.494 E .552
-(change is captured in a log entry)79.2 507.6 R 3.052(,w)-.65 G .552
-(hich holds the state)-3.052 F .207
-(of the database record both before and after the change.)79.2 519.6 R
-2.208(The log record is guaranteed to be \215ushed to stable)79.2 531.6
-R .871(storage before an)79.2 543.6 R 3.371(yo)-.15 G 3.371(ft)-3.371 G
-.871(he changed data pages are writ-)-3.371 F 3.989(ten. This)79.2 555.6
-R(beha)3.989 E 1.489(vior \212 writing the log before the data)-.2 F
-(pages \212 is called)79.2 567.6 Q/F3 10/Times-Italic@0 SF
-(write-ahead lo)2.5 E -.1(gg)-.1 G(ing).1 E F1(.)A .835(At an)79.2 583.8
-R 3.335(yt)-.15 G .835(ime during the transaction, the application can)
--3.335 F F3(commit)79.2 595.8 Q F1 4.202(,m)C 1.702
-(aking the changes permanent, or)-4.202 F F3 -.45(ro)4.201 G 1.701
-(ll bac).45 F(k)-.2 E F1(,)A .852
-(cancelling all changes and restoring the database to its)79.2 607.8 R
-1.57(pre-transaction state.)79.2 619.8 R 1.57
-(If the application rolls back the)6.57 F 1.003
-(transaction, then the log holds the state of all changed)79.2 631.8 R
-.5(pages prior to the transaction, and Berk)79.2 643.8 R(ele)-.1 E 3(yD)
--.15 G 3(Bs)-3 G(imply)-3 E .226(restores that state.)79.2 655.8 R .226
-(If the application commits the trans-)5.226 F .538(action, Berk)79.2
-667.8 R(ele)-.1 E 3.038(yD)-.15 G 3.038(Bw)-3.038 G .538
-(rites the log records to disk.)-3.038 F(In-)5.537 E 2.312
-(memory copies of the data pages already re\215ect the)79.2 679.8 R
-1.399(changes, and will be \215ushed as necessary during nor)79.2 691.8
-R(-)-.2 E 2.35(mal processing.)79.2 703.8 R 2.35
-(Since log writes are sequential, b)7.35 F(ut)-.2 E 8.732
-(data page writes are random, this impro)79.2 715.8 R -.15(ve)-.15 G(s)
-.15 E(performance.)323.2 84 Q F0 3(3.10.2. Crashes)323.2 114 R(and r)3 E
-(eco)-.216 E -.12(ve)-.12 G(ry).12 E F1(Berk)323.2 130.2 Q(ele)-.1 E
-3.592(yD)-.15 G(B')-3.592 E 3.592(sw)-.55 G 1.093
-(rite-ahead log is used by the transac-)-3.592 F .415
-(tion system to commit or roll back transactions.)323.2 142.2 R .414
-(It also)5.414 F(gi)323.2 154.2 Q -.15(ve)-.25 G 3.23(st).15 G .73
-(he reco)-3.23 F -.15(ve)-.15 G .73
-(ry system the information that it needs).15 F .824(to protect ag)323.2
-166.2 R .824(ainst data loss or corruption from crashes.)-.05 F(Berk)
-323.2 178.2 Q(ele)-.1 E 2.703(yD)-.15 G 2.703(Bi)-2.703 G 2.704(sa)
--2.703 G .204(ble to survi)-2.704 F .504 -.15(ve a)-.25 H .204
-(pplication crashes, sys-).15 F .408(tem crashes, and e)323.2 190.2 R
--.15(ve)-.25 G 2.908(nc).15 G .407(atastrophic f)-2.908 F .407
-(ailures lik)-.1 F 2.907(et)-.1 G .407(he loss)-2.907 F
-(of a hard disk, without losing an)323.2 202.2 Q 2.5(yd)-.15 G(ata.)-2.5
-E(Survi)323.2 218.4 Q .538(ving crashes requires data stored in se)-.25
-F -.15(ve)-.25 G .539(ral dif).15 F(fer)-.25 E(-)-.2 E 2.52(ent places.)
-323.2 230.4 R 2.52(During normal processing, Berk)7.52 F(ele)-.1 E 5.02
-(yD)-.15 G(B)-5.02 E .766(has copies of acti)323.2 242.4 R 1.066 -.15
-(ve l)-.25 H .766(og records and recently-used data).15 F 1.539
-(pages in memory)323.2 254.4 R 6.539(.L)-.65 G 1.539
-(og records are \215ushed to the log)-6.539 F .694
-(disk when transactions commit.)323.2 266.4 R .695
-(Data pages trickle out)5.694 F .008(to the data disk as pages mo)323.2
-278.4 R .308 -.15(ve t)-.15 H .008(hrough the b).15 F(uf)-.2 E .008
-(fer cache.)-.25 F(Periodically)323.2 290.4 Q 2.691(,t)-.65 G .191
-(he system administrator backs up the data)-2.691 F .278
-(disk, creating a safe cop)323.2 302.4 R 2.778(yo)-.1 G 2.778(ft)-2.778
-G .278(he database at a particular)-2.778 F 2.609(instant. When)323.2
-314.4 R .109(the database is back)2.609 F .109(ed up, the log can be)-.1
-F 3.838(truncated. F)323.2 326.4 R 1.337(or maximum rob)-.15 F 1.337
-(ustness, the log disk and)-.2 F(data disk should be separate de)323.2
-338.4 Q(vices.)-.25 E(Dif)323.2 354.6 Q 1.29(ferent system f)-.25 F 1.29
-(ailures can destro)-.1 F 3.79(ym)-.1 G(emory)-3.79 E 3.79(,t)-.65 G
-1.29(he log)-3.79 F 1.106(disk, or the data disk.)323.2 366.6 R(Berk)
-6.106 E(ele)-.1 E 3.606(yD)-.15 G 3.606(Bi)-3.606 G 3.606(sa)-3.606 G
-1.106(ble to survi)-3.606 F -.15(ve)-.25 G .679(the loss of an)323.2
-378.6 R 3.179(yo)-.15 G .679(ne of these repositories without losing)
--3.179 F(an)323.2 390.6 Q 2.5(yc)-.15 G(ommitted transactions.)-2.5 E
-1.372(If the computer')323.2 406.8 R 3.871(sm)-.55 G 1.371
-(emory is lost, through an applica-)-3.871 F 1.619
-(tion or operating system crash, then the log holds all)323.2 418.8 R
-1.789(committed transactions.)323.2 430.8 R 1.788(On restart, the reco)
-6.789 F -.15(ve)-.15 G 1.788(ry sys-).15 F .49(tem rolls the log forw)
-323.2 442.8 R .49(ard ag)-.1 F .49(ainst the database, reapply-)-.05 F
-.682(ing an)323.2 454.8 R 3.181(yc)-.15 G .681
-(hanges to on-disk pages that were in memory)-3.181 F .14
-(at the time of the crash.)323.2 466.8 R .14
-(Since the log contains pre- and)5.14 F .957
-(post-change state for transactions, the reco)323.2 478.8 R -.15(ve)-.15
-G .956(ry system).15 F 1.14(also uses the log to restore an)323.2 490.8
-R 3.64(yp)-.15 G 1.14(ages to their original)-3.64 F 1.615(state if the)
-323.2 502.8 R 4.115(yw)-.15 G 1.615
-(ere modi\214ed by transactions that ne)-4.115 F -.15(ve)-.25 G(r).15 E
-(committed.)323.2 514.8 Q 2.051
-(If the data disk is lost, the system administrator can)323.2 531 R .887
-(restore the most recent cop)323.2 543 R 3.386(yf)-.1 G .886
-(rom backup.)-3.386 F .886(The reco)5.886 F(v-)-.15 E 1.298
-(ery system will roll the entire log forw)323.2 555 R 1.298(ard ag)-.1 F
-1.298(ainst the)-.05 F 2.64
-(original database, reapplying all committed changes.)323.2 567 R 4.363
-(When it \214nishes, the database will contain e)323.2 579 R -.15(ve)
--.25 G(ry).15 E .535(change made by e)323.2 591 R -.15(ve)-.25 G .534
-(ry transaction that e).15 F -.15(ve)-.25 G 3.034(rc).15 G(ommitted.)
--3.034 E .494(If the log disk is lost, then the reco)323.2 607.2 R -.15
-(ve)-.15 G .495(ry system can use).15 F 1.853
-(the in-memory copies of log entries to roll back an)323.2 619.2 R(y)
--.15 E .026(uncommitted transactions, \215ush all in-memory database)
-323.2 631.2 R 1.659(pages to the data disk, and shut do)323.2 643.2 R
-1.659(wn gracefully)-.25 F 6.658(.A)-.65 G(t)-6.658 E 2.204
-(that point, the system administrator can back up the)323.2 655.2 R .039
-(database disk, install a ne)323.2 667.2 R 2.539(wl)-.25 G .039
-(og disk, and restart the sys-)-2.539 F(tem.)323.2 679.2 Q EP
-%%Page: 6 6
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 12/Times-Bold@0 SF 3(3.10.3. Checkpoints)79.2 84 R/F1 10
-/Times-Roman@0 SF(Berk)79.2 100.2 Q(ele)-.1 E 6.085(yD)-.15 G 6.085(Bi)
--6.085 G 3.585(ncludes a checkpointing service that)-6.085 F .263
-(interacts with the reco)79.2 112.2 R -.15(ve)-.15 G .263(ry system.).15
-F .263(During normal pro-)5.263 F 2.415
-(cessing, both the log and the database are changing)79.2 124.2 R
-(continually)79.2 136.2 Q 5.925(.A)-.65 G 3.425(ta)-5.925 G 1.224 -.15
-(ny g)-3.425 H -2.15 -.25(iv e).15 H 3.424(ni).25 G .924
-(nstant, the on-disk v)-3.424 F(ersions)-.15 E .414(of the tw)79.2 148.2
-R 2.914(oa)-.1 G .414(re not guaranteed to be consistent.)-2.914 F .414
-(The log)5.414 F 3.838
-(probably contains changes that are not yet in the)79.2 160.2 R
-(database.)79.2 172.2 Q .085(When an application mak)79.2 188.4 R .086
-(es a)-.1 F/F2 10/Times-Italic@0 SF -.15(ch)2.586 G(ec).15 E(kpoint)-.2
-E F1 2.586(,a)C .086(ll committed)-2.586 F .443
-(changes in the log up to that point are guaranteed to be)79.2 200.4 R
-.631(present on the data disk, too.)79.2 212.4 R .632
-(Checkpointing is moder)5.631 F(-)-.2 E .046(ately e)79.2 224.4 R
-(xpensi)-.15 E .346 -.15(ve d)-.25 H .046(uring normal processing, b).15
-F .045(ut limits the)-.2 F(time spent reco)79.2 236.4 Q -.15(ve)-.15 G
-(ring from crashes.).15 E 3.117
-(After an application or operating system crash, the)79.2 252.6 R(reco)
-79.2 264.6 Q -.15(ve)-.15 G 7.419(ry system only needs to go back tw).15
-F(o)-.1 E(checkpoints)79.2 278.6 Q/F3 7/Times-Roman@0 SF(1)-4 I F1 1.376
-(to start rolling the log forw)3.876 4 N 3.875(ard. W)-.1 F(ithout)-.4 E
-3.264(checkpoints, there is no w)79.2 290.6 R 3.265(ay to be sure ho)-.1
-F 5.765(wl)-.25 G(ong)-5.765 E .395(restarting after a crash will tak)
-79.2 302.6 R 2.895(e. W)-.1 F .395(ith checkpoints, the)-.4 F .088
-(restart interv)79.2 314.6 R .089(al can be \214x)-.25 F .089
-(ed by the programmer)-.15 F 5.089(.R)-.55 G(eco)-5.089 E(v-)-.15 E .668
-(ery processing can be guaranteed to complete in a sec-)79.2 326.6 R
-(ond or tw)79.2 338.6 Q(o.)-.1 E(Softw)79.2 354.8 Q 2.457
-(are crashes are much more common than disk)-.1 F -.1(fa)79.2 366.8 S
-3.385(ilures. Man).1 F 3.385(yd)-.15 G -2.15 -.25(ev e)-3.385 H .884
-(lopers w).25 F .884(ant to guarantee that soft-)-.1 F -.1(wa)79.2 378.8
-S .158(re b).1 F .158(ugs do not destro)-.2 F 2.658(yd)-.1 G .158
-(ata, b)-2.658 F .158(ut are willing to restore)-.2 F .631
-(from tape, and to tolerate a day or tw)79.2 390.8 R 3.131(oo)-.1 G
-3.131(fl)-3.131 G .63(ost w)-3.131 F .63(ork, in)-.1 F .89(the unlikle)
-79.2 402.8 R 3.39(ye)-.15 G -.15(ve)-3.64 G .89(nt of a disk crash.).15
-F -.4(Wi)5.89 G .89(th Berk).4 F(ele)-.1 E 3.39(yD)-.15 G(B,)-3.39 E
-1.093(programmers may truncate the log at checkpoints.)79.2 414.8 R(As)
-6.092 E .09(long as the tw)79.2 426.8 R 2.59(om)-.1 G .09
-(ost recent checkpoints are present, the)-2.59 F(reco)79.2 438.8 Q -.15
-(ve)-.15 G .106(ry system can guarantee that no committed trans-).15 F
-.611(actions are lost after a softw)79.2 450.8 R .611(are crash.)-.1 F
-.611(In this case, the)5.611 F(reco)79.2 462.8 Q -.15(ve)-.15 G 1.439
-(ry system does not require that the log and the).15 F 1.328
-(data be on separate de)79.2 474.8 R 1.329
-(vices, although separating them)-.25 F(can still impro)79.2 486.8 Q .3
--.15(ve p)-.15 H(erformance by spreading out writes.).15 E F0 3
-(3.10.4. T)79.2 516.8 R -.12(wo)-.888 G(-phase locking).12 E F1(Berk)
-79.2 533 Q(ele)-.1 E 4.416(yD)-.15 G 4.416(Bp)-4.416 G(ro)-4.416 E 1.916
-(vides a service kno)-.15 F 1.915(wn as tw)-.25 F(o-phase)-.1 E 3.017
-(locking. In)79.2 545 R .517(order to reduce the lik)3.017 F .518
-(elihood of deadlocks)-.1 F 2.547(and to guarantee A)79.2 557 R 2.546
-(CID properties, database systems)-.4 F .063(manage locks in tw)79.2 569
-R 2.564(op)-.1 G 2.564(hases. First,)-2.564 F .064(during the operation)
-2.564 F 1.574(of a transaction, the)79.2 581 R 4.074(ya)-.15 G 1.574
-(cquire locks, b)-4.074 F 1.573(ut ne)-.2 F -.15(ve)-.25 G 4.073(rr).15
-G(elease)-4.073 E 6.147(them. Second,)79.2 593 R 3.648
-(at the end of the transaction, the)6.147 F(y)-.15 E .235
-(release locks, b)79.2 605 R .235(ut ne)-.2 F -.15(ve)-.25 G 2.735(ra)
-.15 G .235(cquire them.)-2.735 F .235(In practice, most)5.235 F 4.69
-(database systems, including Berk)79.2 617 R(ele)-.1 E 7.19(yD)-.15 G
-4.69(B, acquire)-7.19 F 2.314(locks on demand o)79.2 629 R -.15(ve)-.15
-G 4.814(rt).15 G 2.314(he course of the transaction,)-4.814 F
-(then \215ush the log, then release all locks.)79.2 641 Q .32 LW 83.2
-650.6 79.2 650.6 DL 87.2 650.6 83.2 650.6 DL 91.2 650.6 87.2 650.6 DL
-95.2 650.6 91.2 650.6 DL 99.2 650.6 95.2 650.6 DL 103.2 650.6 99.2 650.6
-DL 107.2 650.6 103.2 650.6 DL 111.2 650.6 107.2 650.6 DL 115.2 650.6
-111.2 650.6 DL 119.2 650.6 115.2 650.6 DL 123.2 650.6 119.2 650.6 DL
-127.2 650.6 123.2 650.6 DL 131.2 650.6 127.2 650.6 DL 135.2 650.6 131.2
-650.6 DL 139.2 650.6 135.2 650.6 DL 143.2 650.6 139.2 650.6 DL 147.2
-650.6 143.2 650.6 DL 151.2 650.6 147.2 650.6 DL 155.2 650.6 151.2 650.6
-DL 159.2 650.6 155.2 650.6 DL 163.2 650.6 159.2 650.6 DL 167.2 650.6
-163.2 650.6 DL 171.2 650.6 167.2 650.6 DL 175.2 650.6 171.2 650.6 DL
-179.2 650.6 175.2 650.6 DL 183.2 650.6 179.2 650.6 DL 187.2 650.6 183.2
-650.6 DL 191.2 650.6 187.2 650.6 DL 195.2 650.6 191.2 650.6 DL 199.2
-650.6 195.2 650.6 DL 203.2 650.6 199.2 650.6 DL 207.2 650.6 203.2 650.6
-DL 211.2 650.6 207.2 650.6 DL 215.2 650.6 211.2 650.6 DL 219.2 650.6
-215.2 650.6 DL 223.2 650.6 219.2 650.6 DL/F4 5/Times-Roman@0 SF(1)100.8
-661 Q/F5 8/Times-Roman@0 SF .338(One checkpoint is not f)2.338 3.2 N
-.338(ar enough.)-.08 F .338(The reco)4.338 F -.12(ve)-.12 G .338
-(ry system can-).12 F .211
-(not be sure that the most recent checkpoint completed \212 it may ha)
-79.2 673.8 R -.12(ve)-.16 G .734
-(been interrupted by the crash that forced the reco)79.2 683.4 R -.12
-(ve)-.12 G .734(ry system to run).12 F(in the \214rst place.)79.2 693 Q
-F1(Berk)323.2 84 Q(ele)-.1 E 3.306(yD)-.15 G 3.306(Bc)-3.306 G .806
-(an lock entire database \214les, which cor)-3.306 F(-)-.2 E .845
-(respond to tables, or indi)323.2 96 R .844(vidual pages in them.)-.25 F
-.844(It does)5.844 F 2.141(no record-le)323.2 108 R -.15(ve)-.25 G 4.641
-(ll).15 G 4.641(ocking. By)-4.641 F 2.142(shrinking the page size,)4.641
-F(ho)323.2 120 Q(we)-.25 E -.15(ve)-.25 G 4.427 -.4(r, d).15 H -2.15
--.25(ev e).4 H 3.627(lopers can guarantee that e).25 F -.15(ve)-.25 G
-3.626(ry page).15 F 2.101(holds only a small number of records.)323.2
-132 R 2.102(This reduces)7.102 F(contention.)323.2 144 Q .388
-(If locking is enabled, then read and write operations on)323.2 160.2 R
-5.317(ad)323.2 172.2 S 2.817(atabase acquire tw)-5.317 F 2.817
-(o-phase locks, which are held)-.1 F 3.635
-(until the transaction completes.)323.2 184.2 R 3.635(Which objects are)
-8.635 F(lock)323.2 196.2 Q .738
-(ed and the order of lock acquisition depend on the)-.1 F -.1(wo)323.2
-208.2 S .503(rkload for each transaction.).1 F .502
-(It is possible for tw)5.502 F 3.002(oo)-.1 G(r)-3.002 E 1.315
-(more transactions to deadlock, so that each is w)323.2 220.2 R(aiting)
--.1 E(for a lock that is held by another)323.2 232.2 Q(.)-.55 E(Berk)
-323.2 248.4 Q(ele)-.1 E 3.307(yD)-.15 G 3.307(Bd)-3.307 G .807
-(etects deadlocks and automatically rolls)-3.307 F 1.825
-(back one of the transactions.)323.2 260.4 R 1.825
-(This releases the locks)6.825 F 1.926(that it held and allo)323.2 272.4
-R 1.925(ws the other transactions to con-)-.25 F 3.346(tinue. The)323.2
-284.4 R .847(caller is noti\214ed that its transaction did not)3.346 F
-1.747(complete, and may restart it.)323.2 296.4 R(De)6.747 E -.15(ve)
--.25 G 1.747(lopers can specify).15 F .646
-(the deadlock detection interv)323.2 308.4 R .647(al and the polic)-.25
-F 3.147(yt)-.15 G 3.147(ou)-3.147 G .647(se in)-3.147 F
-(choosing a transaction to roll back.)323.2 320.4 Q 6.686(The tw)323.2
-336.6 R 6.686(o-phase locking interf)-.1 F 6.686(aces are separately)-.1
-F .927(callable by applications that link Berk)323.2 348.6 R(ele)-.1 E
-3.427(yD)-.15 G .928(B, though)-3.427 F(fe)323.2 360.6 Q 5.64(wu)-.25 G
-3.14(sers ha)-5.64 F 3.44 -.15(ve n)-.2 H 3.14(eeded to use that f).15 F
-3.14(acility directly)-.1 F(.)-.65 E 2.211(Using these interf)323.2
-372.6 R 2.211(aces, Berk)-.1 F(ele)-.1 E 4.711(yD)-.15 G 4.712(Bp)-4.711
-G(ro)-4.712 E 2.212(vides a f)-.15 F(ast,)-.1 E 2.4
-(platform-portable locking system for general-purpose)323.2 384.6 R
-2.917(use. It)323.2 396.6 R .418
-(also lets users include non-database objects in a)2.917 F 3.497
-(database transaction, by controlling access to them)323.2 408.6 R -.15
-(ex)323.2 420.6 S(actly as if the).15 E 2.5(yw)-.15 G
-(ere inside the database.)-2.5 E .583(The Berk)323.2 436.8 R(ele)-.1 E
-3.083(yD)-.15 G 3.084(Bt)-3.083 G -.1(wo)-3.084 G .584(-phase locking f)
-.1 F .584(acility is b)-.1 F .584(uilt on)-.2 F .609(the f)323.2 448.8 R
-.609(astest correct locking primiti)-.1 F -.15(ve)-.25 G 3.108(st).15 G
-.608(hat are supported)-3.108 F 1.967(by the underlying architecture.)
-323.2 460.8 R 1.967(In the current imple-)6.967 F .593
-(mentation, this means that the locking system is dif)323.2 472.8 R(fer)
--.25 E(-)-.2 E 1.709(ent on the v)323.2 484.8 R 1.709
-(arious UNIX platforms, and is still more)-.25 F(dif)323.2 496.8 Q .695
-(ferent on W)-.25 F(indo)-.4 E .695(ws NT)-.25 F 5.695(.I)-.74 G 3.195
-(no)-5.695 G .695(ur e)-3.195 F .695(xperience, the most)-.15 F(dif)
-323.2 508.8 Q 2.634
-(\214cult aspect of performance tuning is \214nding the)-.25 F -.1(fa)
-323.2 520.8 S .883(stest locking primiti).1 F -.15(ve)-.25 G 3.383(st)
-.15 G .883(hat w)-3.383 F .882(ork correctly on a par)-.1 F(-)-.2 E 1.26
-(ticular architecture and then inte)323.2 532.8 R 1.26(grating the ne)
--.15 F 3.76(wi)-.25 G(nter)-3.76 E(-)-.2 E -.1(fa)323.2 544.8 S
-(ce with the se).1 E -.15(ve)-.25 G(ral that we already support.).15 E
-.536(The w)323.2 561 R .536(orld w)-.1 F .536
-(ould be a better place if the operating sys-)-.1 F 2.096
-(tems community w)323.2 573 R 2.096(ould uniformly implement POSIX)-.1 F
-1.31(locking primiti)323.2 585 R -.15(ve)-.25 G 3.81(sa).15 G 1.31(nd w)
--3.81 F 1.31(ould guarantee that acquiring)-.1 F 1.085
-(an uncontested lock w)323.2 597 R 1.085(as a f)-.1 F 1.085
-(ast operation.)-.1 F 1.085(Locks must)6.085 F -.1(wo)323.2 609 S 3.641
-(rk both among threads in a single process and).1 F(among processes.)
-323.2 621 Q F0 3(3.11. Concurr)323.2 651 R(ency)-.216 E F1 .383
-(Good performance under concurrent operation is a crit-)323.2 667.2 R
-.766(ical design point for Berk)323.2 679.2 R(ele)-.1 E 3.266(yD)-.15 G
-3.265(B. Although)-3.266 F(Berk)3.265 E(ele)-.1 E(y)-.15 E 1.961
-(DB is itself not multi-threaded, it is thread-safe, and)323.2 691.2 R
-.547(runs well in threaded applications.)323.2 703.2 R(Philosophically)
-5.546 E 3.046(,w)-.65 G(e)-3.046 E(vie)323.2 715.2 Q 4.764(wt)-.25 G
-2.264(he use of threads and the choice of a threads)-4.764 F EP
-%%Page: 7 7
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF .066(package as a polic)79.2 84 R 2.566(yd)-.15
-G .065(ecision, and prefer to of)-2.566 F .065(fer mecha-)-.25 F .042
-(nism \(the ability to run threaded or not\), allo)79.2 96 R .043
-(wing appli-)-.25 F(cations to choose their o)79.2 108 Q(wn policies.)
--.25 E 1.947(The locking, logging, and b)79.2 124.2 R(uf)-.2 E 1.947
-(fer pool subsystems all)-.25 F .711
-(use shared memory or other OS-speci\214c sharing f)79.2 136.2 R(acili-)
--.1 E 1.713(ties to communicate.)79.2 148.2 R 1.713(Locks, b)6.713 F(uf)
--.2 E 1.713(fer pool fetches, and)-.25 F 1.061(log writes beha)79.2
-160.2 R 1.361 -.15(ve i)-.2 H 3.561(nt).15 G 1.061(he same w)-3.561 F
-1.061(ay across threads in a)-.1 F .033(single process as the)79.2 172.2
-R 2.532(yd)-.15 G 2.532(oa)-2.532 G .032(cross dif)-2.532 F .032
-(ferent processes on a)-.25 F(single machine.)79.2 184.2 Q .896
-(As a result, concurrent database applications may start)79.2 200.4 R
-1.651(up a ne)79.2 212.4 R 4.151(wp)-.25 G 1.651(rocess for e)-4.151 F
--.15(ve)-.25 G 1.651(ry single user).15 F 4.151(,m)-.4 G 1.651
-(ay create a)-4.151 F 2.848(single serv)79.2 224.4 R 2.848(er which spa)
--.15 F 2.849(wns a ne)-.15 F 5.349(wt)-.25 G 2.849(hread for e)-5.349 F
--.15(ve)-.25 G(ry).15 E(client request, or may choose an)79.2 236.4 Q
-2.5(yp)-.15 G(olic)-2.5 E 2.5(yi)-.15 G 2.5(nb)-2.5 G(etween.)-2.5 E
-(Berk)79.2 252.6 Q(ele)-.1 E 3.629(yD)-.15 G 3.629(Bh)-3.629 G 1.128
-(as been carefully designed to minimize)-3.629 F .07
-(contention and maximize concurrenc)79.2 264.6 R 3.87 -.65(y. T)-.15 H
-.07(he cache man-).65 F .57(ager allo)79.2 276.6 R .57
-(ws all threads or processes to bene\214t from I/O)-.25 F 2.917
-(done by one.)79.2 288.6 R 2.917(Shared resources must sometimes be)
-7.917 F(lock)79.2 300.6 Q 1.804(ed for e)-.1 F(xclusi)-.15 E 2.104 -.15
-(ve a)-.25 H 1.804(ccess by one thread of control.).15 F 1.757 -.8(We h)
-79.2 312.6 T -2.25 -.2(av e).8 H -.1(ke)2.857 G .158
-(pt critical sections small, and are careful not).1 F 1.199
-(to hold critical resource locks across system calls that)79.2 324.6 R
-.538(could deschedule the locking thread or process.)79.2 336.6 R
-(Sleep-)5.539 E .979(ycat Softw)79.2 348.6 R .979
-(are has customers with hundreds of concur)-.1 F(-)-.2 E(rent users w)
-79.2 360.6 Q(orking on a single database in production.)-.1 E/F1 12
-/Times-Bold@0 SF 3(4. Engineering)79.2 390.6 R(Philosoph)3 E(y)-.18 E F0
-(Fundamentally)79.2 406.8 Q 3.998(,B)-.65 G(erk)-3.998 E(ele)-.1 E 3.998
-(yD)-.15 G 3.998(Bi)-3.998 G 3.999(sac)-3.998 G 1.499
-(ollection of access)-3.999 F .19(methods with important f)79.2 418.8 R
-.19(acilities, lik)-.1 F 2.69(el)-.1 G .19(ogging, locking,)-2.69 F
-1.251(and transactional access underlying them.)79.2 430.8 R 1.252
-(In both the)6.252 F .992(research and the commercial w)79.2 442.8 R
-.991(orld, the techniques for)-.1 F -.2(bu)79.2 454.8 S 2.727
-(ilding systems lik).2 F 5.227(eB)-.1 G(erk)-5.227 E(ele)-.1 E 5.227(yD)
--.15 G 5.227(Bh)-5.227 G -2.25 -.2(av e)-5.227 H 2.728(been well-)5.427
-F(kno)79.2 466.8 Q(wn for a long time.)-.25 E .443(The k)79.2 483 R .743
--.15(ey a)-.1 H(dv).15 E .442(antage of Berk)-.25 F(ele)-.1 E 2.942(yD)
--.15 G 2.942(Bi)-2.942 G 2.942(st)-2.942 G .442(he careful atten-)-2.942
-F 1.059(tion that has been paid to engineering details through-)79.2 495
-R 1.039(out its life.)79.2 507 R 2.639 -.8(We h)6.039 H -2.25 -.2(av e)
-.8 H 1.039(carefully designed the system so)3.739 F .452
-(that the core f)79.2 519 R .452(acilities, lik)-.1 F 2.952(el)-.1 G
-.452(ocking and I/O, surf)-2.952 F .453(ace the)-.1 F .972(right interf)
-79.2 531 R .971(aces and are otherwise opaque to the caller)-.1 F(.)-.55
-E .294(As programmers, we understand the v)79.2 543 R .295
-(alue of simplicity)-.25 F .206(and ha)79.2 555 R .506 -.15(ve w)-.2 H
-(ork).05 E .206(ed hard to simplify the interf)-.1 F .205(aces we sur)
--.1 F(-)-.2 E -.1(fa)79.2 567 S(ce to users of the database system.).1 E
-(Berk)79.2 583.2 Q(ele)-.1 E 4.531(yD)-.15 G 4.531(Ba)-4.531 G -.2(vo)
--4.731 G 2.031(ids limits in the code.).2 F 2.031(It places no)7.031 F
-.474(practical limit on the size of k)79.2 595.2 R -.15(ey)-.1 G .473
-(s, v).15 F .473(alues, or databases;)-.25 F(the)79.2 607.2 Q 2.5(ym)
--.15 G(ay gro)-2.5 E 2.5(wt)-.25 G 2.5(oo)-2.5 G(ccup)-2.5 E 2.5(yt)-.1
-G(he a)-2.5 E -.25(va)-.2 G(ilable storage space.).25 E 1.857
-(The locking and logging subsystems ha)79.2 623.4 R 2.157 -.15(ve b)-.2
-H 1.858(een care-).15 F .184
-(fully crafted to reduce contention and impro)79.2 635.4 R .484 -.15
-(ve t)-.15 H(hrough-).15 E 2.16
-(put by shrinking or eliminating critical sections, and)79.2 647.4 R
-(reducing the sizes of lock)79.2 659.4 Q(ed re)-.1 E
-(gions and log entries.)-.15 E 2.238
-(There is nothing in the design or implementation of)79.2 675.6 R(Berk)
-79.2 687.6 Q(ele)-.1 E 2.818(yD)-.15 G 2.818(Bt)-2.818 G .318
-(hat pushes the state of the art in database)-2.818 F 3.545
-(systems. Rather)79.2 699.6 R 3.545(,w)-.4 G 3.545(eh)-3.545 G -2.25 -.2
-(av e)-3.545 H 1.044(been v)3.745 F 1.044(ery careful to get the)-.15 F
-4.321(engineering right.)79.2 711.6 R 4.321
-(The result is a system that is)9.321 F(superior)323.2 84 Q 2.867(,a)-.4
-G 2.867(sa)-2.867 G 2.866(ne)-2.867 G .366
-(mbedded database system, to an)-2.866 F 2.866(yo)-.15 G(ther)-2.866 E
-(solution a)323.2 96 Q -.25(va)-.2 G(ilable.).25 E .811
-(Most database systems trade of)323.2 112.2 R 3.312(fs)-.25 G .812
-(implicity for correct-)-3.312 F 4.151(ness. Either)323.2 124.2 R 1.651
-(the system is easy to use, or it supports)4.151 F 1.17
-(concurrent use and survi)323.2 136.2 R -.15(ve)-.25 G 3.67(ss).15 G
-1.17(ystem f)-3.67 F 3.67(ailures. Berk)-.1 F(ele)-.1 E(y)-.15 E 1.013
-(DB, because of its careful design and implementation,)323.2 148.2 R(of)
-323.2 160.2 Q(fers both simplicity and correctness.)-.25 E .759
-(The system has a small footprint, mak)323.2 176.4 R .759
-(es simple opera-)-.1 F 1.012
-(tions simple to carry out \(inserting a ne)323.2 188.4 R 3.512(wr)-.25
-G 1.012(ecord tak)-3.512 F(es)-.1 E 1.16(just a fe)323.2 200.4 R 3.66
-(wl)-.25 G 1.16(ines of code\), and beha)-3.66 F -.15(ve)-.2 G 3.66(sc)
-.15 G 1.16(orrectly in the)-3.66 F -.1(fa)323.2 212.4 S .528(ce of hea)
-.1 F .527(vy concurrent use, system crashes, and e)-.2 F -.15(ve)-.25 G
-(n).15 E(catastrophic f)323.2 224.4 Q(ailures lik)-.1 E 2.5(el)-.1 G
-(oss of a hard disk.)-2.5 E F1 3(5. The)323.2 254.4 R(Berk)3 E
-(eley DB 2.x Distrib)-.12 E(ution)-.24 E F0(Berk)323.2 270.6 Q(ele)-.1 E
-4.171(yD)-.15 G 4.171(Bi)-4.171 G 4.171(sd)-4.171 G(istrib)-4.171 E
-1.671(uted in source code form from)-.2 F/F2 10/Times-Italic@0 SF(www)
-323.2 282.6 Q(.sleepycat.com)-.74 E F0 7.322(.U)C 2.322
-(sers are free to do)-7.322 F 2.321(wnload and)-.25 F -.2(bu)323.2 294.6
-S(ild the softw).2 E(are, and to use it in their applications.)-.1 E F1
-3(5.1. What)323.2 324.6 R(is in the distrib)3 E(ution)-.24 E F0 4.827
-(The distrib)323.2 340.8 R 4.827(ution is a compressed archi)-.2 F 5.127
--.15(ve \214)-.25 H 7.328(le. It).15 F .057
-(includes the source code for the Berk)323.2 352.8 R(ele)-.1 E 2.556(yD)
--.15 G 2.556(Bl)-2.556 G(ibrary)-2.556 E 2.556(,a)-.65 G(s)-2.556 E .453
-(well as documentation, test suites, and supporting utili-)323.2 364.8 R
-(ties.)323.2 376.8 Q 2.613(The source code includes b)323.2 393 R 2.612
-(uild support for all sup-)-.2 F .254(ported platforms.)323.2 405 R .254
-(On UNIX systems Berk)5.254 F(ele)-.1 E 2.755(yD)-.15 G 2.755(Bu)-2.755
-G(ses)-2.755 E 1.28(the GNU autocon\214guration tool,)323.2 417 R/F3 10
-/Courier@0 SF(autoconf)3.78 E F0 3.78(,t)C 3.78(oi)-3.78 G(den-)-3.78 E
-.992(tify the system and to b)323.2 429 R .992
-(uild the library and supporting)-.2 F 3.589(utilities. Berk)323.2 441 R
-(ele)-.1 E 3.589(yD)-.15 G 3.588(Bi)-3.589 G 1.088(ncludes speci\214c b)
--3.588 F 1.088(uild en)-.2 F(viron-)-.4 E .515
-(ments for other platforms, such as VMS and W)323.2 453 R(indo)-.4 E
-(ws.)-.25 E F1 3(5.1.1. Documentation)323.2 483 R F0 5.008(The distrib)
-323.2 499.2 R 5.008(uted system includes documentation in)-.2 F 1.626
-(HTML format.)323.2 511.2 R 1.626(The documentation is in tw)6.626 F
-4.127(op)-.1 G 1.627(arts: a)-4.127 F .725
-(UNIX-style reference manual for use by programmers,)323.2 523.2 R
-(and a reference guide which is tutorial in nature.)323.2 535.2 Q F1 3
-(5.1.2. T)323.2 565.2 R(est suite)-1.104 E F0 1.107(The softw)323.2
-581.4 R 1.108(are also includes a complete test suite, writ-)-.1 F .155
-(ten in Tcl.)323.2 593.4 R 1.754 -.8(We b)5.154 H(elie).8 E .454 -.15
-(ve t)-.25 H .154(hat the test suite is a k).15 F .454 -.15(ey a)-.1 H
-(dv).15 E(an-)-.25 E(tage of Berk)323.2 605.4 Q(ele)-.1 E 2.5(yD)-.15 G
-2.5(Bo)-2.5 G -.15(ve)-2.65 G 2.5(rc).15 G(omparable systems.)-2.5 E
-2.612(First, the test suite allo)323.2 621.6 R 2.613(ws users who do)
--.25 F 2.613(wnload and)-.25 F -.2(bu)323.2 633.6 S 1.731(ild the softw)
-.2 F 1.731(are to be sure that it is operating cor)-.1 F(-)-.2 E(rectly)
-323.2 645.6 Q(.)-.65 E .893(Second, the test suite allo)323.2 661.8 R
-.894(ws us, lik)-.25 F 3.394(eo)-.1 G .894(ther commercial)-3.394 F(de)
-323.2 673.8 Q -.15(ve)-.25 G .536(lopers of database softw).15 F .536
-(are, to e)-.1 F -.15(xe)-.15 G .535(rcise the system).15 F 2.256
-(thoroughly at e)323.2 685.8 R -.15(ve)-.25 G 2.256(ry release.).15 F
-2.256(When we learn of ne)7.256 F(w)-.25 E -.2(bu)323.2 697.8 S 1.719
-(gs, we add them to the test suite.).2 F 3.319 -.8(We r)6.719 H 1.719
-(un the test).8 F 5.692(suite continually during de)323.2 709.8 R -.15
-(ve)-.25 G 5.692(lopment c).15 F 5.692(ycles, and)-.15 F EP
-%%Page: 8 8
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 10/Times-Roman@0 SF(al)79.2 84 Q -.1(wa)-.1 G .314
-(ys prior to release.).1 F .314(The result is a much more reli-)5.314 F
-(able system by the time it reaches beta release.)79.2 96 Q/F1 12
-/Times-Bold@0 SF 3(5.2. Binary)79.2 126 R(distrib)3 E(ution)-.24 E F0
-(Sleep)79.2 142.2 Q .893(ycat mak)-.1 F .893
-(es compiled libraries and general binary)-.1 F(distrib)79.2 154.2 Q
-(utions a)-.2 E -.25(va)-.2 G(ilable to customers for a fee.).25 E F1 3
-(5.3. Supported)79.2 184.2 R(platf)3 E(orms)-.3 E F0(Berk)79.2 200.4 Q
-(ele)-.1 E 5.623(yD)-.15 G 5.623(Br)-5.623 G 3.123(uns on an)-5.623 F
-5.622(yo)-.15 G 3.122(perating system with a)-5.622 F .816
-(POSIX 1003.1 interf)79.2 212.4 R .817(ace [IEEE96], which includes vir)
--.1 F(-)-.2 E 1.998(tually e)79.2 224.4 R -.15(ve)-.25 G 1.997
-(ry UNIX system.).15 F 1.997(In addition, the softw)6.997 F(are)-.1 E
-2.85(runs on VMS, W)79.2 236.4 R(indo)-.4 E 2.85(ws/95, W)-.25 F(indo)
--.4 E 2.85(ws/98, and W)-.25 F(in-)-.4 E(do)79.2 248.4 Q(ws/NT)-.25 E
-10.21(.S)-.74 G(leep)-10.21 E 5.21(ycat Softw)-.1 F 5.21
-(are no longer supports)-.1 F(deplo)79.2 260.4 Q(yment on sixteen-bit W)
--.1 E(indo)-.4 E(ws systems.)-.25 E F1 3(6. Berk)79.2 290.4 R
-(eley DB 2.x Licensing)-.12 E F0(Berk)79.2 306.6 Q(ele)-.1 E 2.627(yD)
--.15 G 2.627(B2)-2.627 G .128(.x is distrib)-2.627 F .128
-(uted as an Open Source prod-)-.2 F 4.709(uct. The)79.2 318.6 R(softw)
-4.709 E 2.209(are is freely a)-.1 F -.25(va)-.2 G 2.209
-(ilable from us at our).25 F -.8(We)79.2 330.6 S 3.372(bs).8 G .872
-(ite, and in other media.)-3.372 F .872(Users are free to do)5.872 F
-(wn-)-.25 E(load the softw)79.2 342.6 Q(are and b)-.1 E
-(uild applications with it.)-.2 E 1.023(The 1.x v)79.2 358.8 R 1.022
-(ersions of Berk)-.15 F(ele)-.1 E 3.522(yD)-.15 G 3.522(Bw)-3.522 G
-1.022(ere co)-3.522 F -.15(ve)-.15 G 1.022(red by the).15 F 3.763
-(UC Berk)79.2 370.8 R(ele)-.1 E 6.263(yc)-.15 G(op)-6.263 E 3.763
-(yright that co)-.1 F -.15(ve)-.15 G 3.764(rs softw).15 F 3.764
-(are freely)-.1 F(redistrib)79.2 382.8 Q 1.742(utable in source form.)
--.2 F 1.741(When Sleep)6.742 F 1.741(ycat Soft-)-.1 F -.1(wa)79.2 394.8
-S .906(re w).1 F .907(as formed, we needed to draft a license consis-)
--.1 F 2.319(tent with the cop)79.2 406.8 R 2.319(yright go)-.1 F -.15
-(ve)-.15 G 2.318(rning the e).15 F 2.318(xisting, older)-.15 F(softw)
-79.2 418.8 Q 5.328(are. Because)-.1 F 2.828(of important dif)5.328 F
-2.828(ferences between)-.25 F .497(the UC Berk)79.2 430.8 R(ele)-.1 E
-2.997(yc)-.15 G(op)-2.997 E .497(yright and the GPL, it w)-.1 F .496
-(as impos-)-.1 F .884(sible for us to use the GPL.)79.2 442.8 R 3.384
-(As)5.884 G .884(econd cop)-3.384 F .884(yright, with)-.1 F .87
-(terms contradictory to the \214rst, simply w)79.2 454.8 R .87
-(ould not ha)-.1 F -.15(ve)-.2 G -.1(wo)79.2 466.8 S(rk).1 E(ed.)-.1 E
-(Sleep)79.2 483 Q 2.533(ycat w)-.1 F 2.533
-(anted to continue Open Source de)-.1 F -.15(ve)-.25 G(lop-).15 E 2.079
-(ment of Berk)79.2 495 R(ele)-.1 E 4.579(yD)-.15 G 4.579(Bf)-4.579 G
-2.079(or se)-4.579 F -.15(ve)-.25 G 2.079(ral reasons.).15 F 3.678 -.8
-(We a)7.078 H(gree).8 E .853
-(with Raymond [Raym98] and others that Open Source)79.2 507 R(softw)79.2
-519 Q .763(are is typically of higher quality than proprietary)-.1 F(,)
--.65 E 2.616(binary-only products.)79.2 531 R 2.617
-(Our customers bene\214t from a)7.616 F .983(community of de)79.2 543 R
--.15(ve)-.25 G .983(lopers who kno).15 F 3.483(wa)-.25 G .983
-(nd use Berk)-3.483 F(ele)-.1 E(y)-.15 E 1.317
-(DB, and can help with application design, deb)79.2 555 R(ugging,)-.2 E
-1.65(and performance tuning.)79.2 567 R -.4(Wi)6.65 G 1.65
-(despread distrib).4 F 1.65(ution and)-.2 F 1.017
-(use of the source code tends to isolate b)79.2 579 R 1.017(ugs early)
--.2 F 3.517(,a)-.65 G(nd)-3.517 E .032(to get \214x)79.2 591 R .031
-(es back into the distrib)-.15 F .031(uted system quickly)-.2 F 5.031
-(.A)-.65 G(s)-5.031 E 3.553(ar)79.2 603 S 1.053(esult, Berk)-3.553 F
-(ele)-.1 E 3.553(yD)-.15 G 3.553(Bi)-3.553 G 3.553(sm)-3.553 G 1.053
-(ore reliable.)-3.553 F 1.054(Just as impor)6.054 F(-)-.2 E(tantly)79.2
-615 Q 3.695(,i)-.65 G(ndi)-3.695 E 1.195
-(vidual users are able to contrib)-.25 F 1.195(ute ne)-.2 F 3.695(wf)
--.25 G(ea-)-3.695 E 1.056
-(tures and performance enhancements, to the bene\214t of)79.2 627 R
--2.15 -.25(ev e)79.2 639 T .359(ryone who uses Berk).25 F(ele)-.1 E
-2.859(yD)-.15 G 2.859(B. From)-2.859 F 2.858(ab)2.859 G .358
-(usiness per)-3.058 F(-)-.2 E(specti)79.2 651 Q -.15(ve)-.25 G 3.115(,O)
-.15 G .615(pen Source and free distrib)-3.115 F .615(ution of the soft-)
--.2 F -.1(wa)79.2 663 S 1.605(re creates share for us, and gi).1 F -.15
-(ve)-.25 G 4.105(su).15 G 4.105(sam)-4.105 G(ark)-4.105 E 1.605(et into)
--.1 F .412(which we can sell products and services.)79.2 675 R(Finally)
-5.413 E 2.913(,m)-.65 G(ak-)-2.913 E .148(ing the source code freely a)
-79.2 687 R -.25(va)-.2 G .147(ilable reduces our support).25 F 2.436
-(load, since customers can \214nd and \214x b)79.2 699 R 2.437
-(ugs without)-.2 F(recourse to us, in man)79.2 711 Q 2.5(yc)-.15 G
-(ases.)-2.5 E 4.727 -.8(To p)323.2 84 T(reserv).8 E 5.627(et)-.15 G
-3.126(he Open Source heritage of the older)-5.627 F(Berk)323.2 96 Q(ele)
--.1 E 3.003(yD)-.15 G 3.003(Bc)-3.003 G .504(ode, we drafted a ne)-3.003
-F 3.004(wl)-.25 G .504(icense go)-3.004 F -.15(ve)-.15 G(rning).15 E
-.417(the distrib)323.2 108 R .417(ution of Berk)-.2 F(ele)-.1 E 2.916
-(yD)-.15 G 2.916(B2)-2.916 G 2.916(.x. W)-2.916 F 2.916(ea)-.8 G .416
-(dopted terms)-2.916 F .411(from the GPL that mak)323.2 120 R 2.911(ei)
--.1 G 2.911(ti)-2.911 G .411(mpossible to turn our Open)-2.911 F 1.289
-(Source code into proprietary code o)323.2 132 R 1.288(wned by someone)
--.25 F(else.)323.2 144 Q(Brie\215y)323.2 160.2 Q 3.18(,t)-.65 G .68
-(he terms go)-3.18 F -.15(ve)-.15 G .68(rning the use and distrib).15 F
-.68(ution of)-.2 F(Berk)323.2 172.2 Q(ele)-.1 E 2.5(yD)-.15 G 2.5(Ba)
--2.5 G(re:)-2.5 E/F2 8/Times-Roman@0 SF<83>328.2 188.4 Q F0
-(your application must be internal to your site, or)17.2 E F2<83>328.2
-204.6 Q F0 .612(your application must be freely redistrib)17.2 F .611
-(utable in)-.2 F(source form, or)348.2 216.6 Q F2<83>328.2 232.8 Q F0
-(you must get a license from us.)17.2 E -.15(Fo)323.2 249 S 2.631(rc).15
-G .131(ustomers who prefer not to distrib)-2.631 F .132(ute Open Source)
--.2 F 1.493(products, we sell licenses to use and e)323.2 261 R 1.492
-(xtend Berk)-.15 F(ele)-.1 E(y)-.15 E(DB at a reasonable cost.)323.2 273
-Q 2.675 -.8(We w)323.2 289.2 T 1.076
-(ork hard to accommodate the needs of the Open).7 F .606
-(Source community)323.2 301.2 R 5.606(.F)-.65 G .606(or e)-5.756 F .606
-(xample, we ha)-.15 F .905 -.15(ve c)-.2 H .605(rafted spe-).15 F 1.415
-(cial licensing arrangements with Gnome to encourage)323.2 313.2 R
-(its use and distrib)323.2 325.2 Q(ution of Berk)-.2 E(ele)-.1 E 2.5(yD)
--.15 G(B.)-2.5 E(Berk)323.2 341.4 Q(ele)-.1 E 4.103(yD)-.15 G 4.103(Bc)
--4.103 G 1.603(onforms to the Open Source de\214nition)-4.103 F 4.867
-([Open99]. The)323.2 353.4 R 2.367
-(license has been carefully crafted to)4.867 F -.1(ke)323.2 365.4 S .643
-(ep the product a).1 F -.25(va)-.2 G .642(ilable as an Open Source of)
-.25 F(fering,)-.25 E(while pro)323.2 377.4 Q
-(viding enough of a return on our in)-.15 E -.15(ve)-.4 G(stment to).15
-E 1.546(fund continued de)323.2 389.4 R -.15(ve)-.25 G 1.546
-(lopment and support of the prod-).15 F 3.033(uct. The)323.2 401.4 R
-.534(current license has created a b)3.033 F .534(usiness capable)-.2 F
-.916(of funding three years of de)323.2 413.4 R -.15(ve)-.25 G .916
-(lopment on the softw).15 F(are)-.1 E(that simply w)323.2 425.4 Q
-(ould not ha)-.1 E .3 -.15(ve h)-.2 H(appened otherwise.).15 E F1 3
-(7. Summary)323.2 455.4 R F0(Berk)323.2 471.6 Q(ele)-.1 E 2.991(yD)-.15
-G 2.991(Bo)-2.991 G -.25(ff)-2.991 G .491
-(ers a unique collection of features, tar).25 F(-)-.2 E .175
-(geted squarely at softw)323.2 483.6 R .174(are de)-.1 F -.15(ve)-.25 G
-.174(lopers who need simple,).15 F .492
-(reliable database management services in their applica-)323.2 495.6 R
-5.3(tions. Good)323.2 507.6 R 2.8(design and implementation and careful)
-5.3 F 1.633(engineering throughout mak)323.2 519.6 R 4.133(et)-.1 G
-1.633(he softw)-4.133 F 1.634(are better than)-.1 F(man)323.2 531.6 Q
-2.5(yo)-.15 G(ther systems.)-2.5 E(Berk)323.2 547.8 Q(ele)-.1 E 4.1(yD)
--.15 G 4.1(Bi)-4.1 G 4.1(sa)-4.1 G 4.1(nO)-4.1 G 1.6
-(pen Source product, a)-4.1 F -.25(va)-.2 G 1.6(ilable at).25 F/F3 10
-/Times-Italic@0 SF(www)323.2 559.8 Q(.sleepycat.com)-.74 E F0 .654
-(for do)3.154 F 3.154(wnload. The)-.25 F(distrib)3.154 E .654(uted sys-)
--.2 F .383(tem includes e)323.2 571.8 R -.15(ve)-.25 G .383
-(rything needed to b).15 F .382(uild and deplo)-.2 F 2.882(yt)-.1 G(he)
--2.882 E(softw)323.2 583.8 Q(are or to port it to ne)-.1 E 2.5(ws)-.25 G
-(ystems.)-2.5 E(Sleep)323.2 600 Q 2.633(ycat Softw)-.1 F 2.633
-(are distrib)-.1 F 2.633(utes Berk)-.2 F(ele)-.1 E 5.133(yD)-.15 G 5.134
-(Bu)-5.133 G 2.634(nder a)-5.134 F .764(license agreement that dra)323.2
-612 R .764(ws on both the UC Berk)-.15 F(ele)-.1 E(y)-.15 E(cop)323.2
-624 Q 2.377(yright and the GPL.)-.1 F 2.377(The license guarantees that)
-7.377 F(Berk)323.2 636 Q(ele)-.1 E 3.384(yD)-.15 G 3.384(Bw)-3.384 G
-.884(ill remain an Open Source product and)-3.384 F(pro)323.2 648 Q
-1.493(vides Sleep)-.15 F 1.493(ycat with opportunities to mak)-.1 F
-3.994(em)-.1 G(one)-3.994 E(y)-.15 E(to fund continued de)323.2 660 Q
--.15(ve)-.25 G(lopment on the softw).15 E(are.)-.1 E EP
-%%Page: 9 9
-%%BeginPageSetup
-BP
-%%EndPageSetup
-/F0 12/Times-Bold@0 SF 3(8. Refer)79.2 84 R(ences)-.216 E/F1 10
-/Times-Roman@0 SF([Come79])79.2 100.2 Q(Comer)104.2 112.2 Q 3.127(,D)-.4
-G .627(., \231The Ubiquitous B-tree,)-3.127 F<9a>-.7 E/F2 10
-/Times-Italic@0 SF -.3(AC)3.126 G 3.126(MC).3 G(om-)-3.126 E .404
-(puting Surve)104.2 124.2 R(ys)-.3 E F1 -1.29(Vo)2.904 G .404
-(lume 11, number 2, June 1979.)1.29 F([Gray93])79.2 140.4 Q(Gray)104.2
-152.4 Q 2.982(,J)-.65 G .482(., and Reuter)-2.982 F 2.982(,A)-.4 G(.,)
--2.982 E F2 -1.55 -.55(Tr a)2.981 H .481(nsaction Pr).55 F(ocessing:)
--.45 E 6.776(Concepts and T)104.2 164.4 R(ec)-.92 E(hniques)-.15 E F1
-9.277(,M)C(or)-9.277 E -.05(ga)-.18 G(n-Kaufman).05 E(Publishers, 1993.)
-104.2 176.4 Q([IEEE96])79.2 192.6 Q .364
-(Institute for Electrical and Electronics Engineers,)104.2 204.6 R F2
-(IEEE/ANSI Std 1003.1)104.2 216.6 Q F1 2.5(,1)C(996 Edition.)-2.5 E
-([Litw80])79.2 232.8 Q 2.365(Litwin, W)104.2 244.8 R 2.366
-(., \231Linear Hashing: A Ne)-.92 F 4.866(wT)-.25 G 2.366(ool for)-5.666
-F 1.784(File and T)104.2 256.8 R 1.783(able Addressing,)-.8 F<9a>-.7 E
-F2(Pr)4.283 E 1.783(oceedings of the)-.45 F 4.804
-(6th International Confer)104.2 268.8 R 4.804(ence on V)-.37 F 4.804
-(ery Lar)-1.11 F -.1(ge)-.37 G 1.983(Databases \(VLDB\))104.2 280.8 R F1
-4.483(,M)C 1.982(ontreal, Quebec, Canada,)-4.483 F(October 1980.)104.2
-292.8 Q([Open94])79.2 309 Q 4.068(The Open Group,)104.2 321 R F2
-(Distrib)6.568 E 4.069(uted TP: The XA+)-.2 F .78(Speci\214cation, V)
-104.2 333 R(er)-1.11 E .78(sion 2)-.1 F F1 3.28(,T)C .78
-(he Open Group, 1994.)-3.28 F([Open99])79.2 349.2 Q(Opensource.or)104.2
-361.2 Q 8.307(g, \231Open Source De\214nition,)-.18 F<9a>-.7 E F2(www)
-104.2 373.2 Q(.opensour)-.74 E(ce)-.37 E(.or)-.15 E(g/osd.html)-.37 E F1
-3.13(,v)C .63(ersion 1.4, 1999.)-3.28 F([Raym98])79.2 389.4 Q .718
-(Raymond, E.S., \231The Cathedral and the Bazaar)104.2 401.4 R -.7<2c9a>
--.4 G F2(www)104.2 413.4 Q(.tuxedo.or)-.74 E(g/~esr/writings/cathedr)
--.37 E(al-)-.15 E(bazaar/cathedr)104.2 425.4 Q(al-bazaar)-.15 E(.html)
--1.11 E F1 2.5(,J)C(anuary 1998.)-2.5 E([Selt91])79.2 441.6 Q(Seltzer)
-104.2 453.6 Q 2.578(,M)-.4 G .078(., and Y)-2.578 F .079(igit, O., \231)
--.55 F 2.579(AN)-.8 G .579 -.25(ew H)-2.579 H .079(ashing P).25 F(ack-)
--.15 E 6.704(age for UNIX,)104.2 465.6 R<9a>-.7 E F2(Pr)9.204 E 6.704
-(oceedings 1991 W)-.45 F(inter)-.55 E(USENIX Confer)104.2 477.6 Q(ence)
--.37 E F1 2.5(,D)C(allas, TX, January 1991.)-2.5 E([Selt92])79.2 493.8 Q
-(Seltzer)104.2 505.8 Q 5.365(,M)-.4 G 2.865
-(., and Olson, M., \231LIBTP: Portable)-5.365 F 2.845(Modular T)104.2
-517.8 R 2.845(ransactions for UNIX,)-.35 F<9a>-.7 E F2(Pr)5.345 E
-(oceedings)-.45 E 1.49(1992 W)104.2 529.8 R 1.49(inter Usenix Confer)
--.55 F(ence)-.37 E F1 3.99(,S)C 1.49(an Francisco,)-3.99 F
-(CA, January 1992.)104.2 541.8 Q([Ston82])79.2 558 Q(Stonebrak)104.2 570
-Q(er)-.1 E 10.04(,M)-.4 G 7.54(., Stettner)-10.04 F 10.04(,H)-.4 G 7.54
-(., Kalash, J.,)-10.04 F .763(Guttman, A., and L)104.2 582 R .764
-(ynn, N., \231Document Process-)-.55 F .557
-(ing in a Relational Database System,)104.2 594 R 3.056<9a4d>-.7 G
-(emoran-)-3.056 E .825(dum No. UCB/ERL M82/32, Uni)104.2 606 R -.15(ve)
--.25 G .825(rsity of Cali-).15 F(fornia at Berk)104.2 618 Q(ele)-.1 E
-1.3 -.65(y, B)-.15 H(erk).65 E(ele)-.1 E 1.3 -.65(y, C)-.15 H
-(A, May 1982.).65 E EP
-%%Trailer
-end
-%%EOF
diff --git a/bdb/docs/ref/refs/embedded.html b/bdb/docs/ref/refs/embedded.html
deleted file mode 100644
index b7641d931c1..00000000000
--- a/bdb/docs/ref/refs/embedded.html
+++ /dev/null
@@ -1,672 +0,0 @@
-<html>
-<head>
-<title>Challenges in Embedded Database System Administration</title>
-</head>
-<body bgcolor=white>
-<center>
-<h1>Challenges in Embedded Database System Administration</h1>
-<h3>Margo Seltzer, Harvard University</h3>
-<h3>Michael Olson, Sleepycat Software, Inc.</h3>
-<em>{margo,mao}@sleepycat.com</em>
-</center>
-<p>
-Database configuration and maintenance have historically been complex tasks,
-often
-requiring expert knowledge of database design and application
-behavior.
-In an embedded environment, it is not feasible to require such
-expertise and ongoing database maintenance.
-This paper discusses the database administration
-challenges posed by embedded systems and describes how the
-Berkeley DB architecture addresses these challenges.
-
-<h2>1. Introduction</h2>
-
-Embedded systems provide a combination of opportunities and challenges
-in application and system configuration and management.
-As an embedded system is most often dedicated to a single application or
-small set of tasks, the operating conditions of the system are
-typically better understood than those of general purpose computing
-environments.
-Similarly, as embedded systems are dedicated to a small set of tasks,
-one would expect that the software to manage them should be small
-and simple.
-On the other hand, once an embedded system is deployed, it must
-continue to function without interruption and without administrator
-intervention.
-<p>
-Database administration consists of two components,
-initial configuration and ongoing maintenance.
-Initial configuration consists of database design, manifestation,
-and tuning.
-The instantiation of the design includes decomposing the design
-into tables, relations, or objects and designating proper indices
-and their implementations (e.g., Btrees, hash tables, etc.).
-Tuning a design requires selecting a location for the log and
-data files, selecting appropriate database page sizes, specifying
-the size of in-memory caches, and specifying the limits of
-multi-threading and concurrency.
-As embedded systems define a specific environment and set of tasks,
-requiring expertise during the initial system
-configuration process is acceptable, and we focus our efforts on
-the ongoing maintenance of the system.
-In this way, our emphasis differs from other projects such as
-Microsoft's AutoAdmin project <a href="#Chaud982">[3]</a>, and the "no-knobs"
-administration that is identified as an area of important future
-research by the Asilomar authors<a href="#Bern98">[1]</a>.
-<p>
-In this paper, we focus on what the authors
-of the Asilomar report call "gizmo" databases <a href="#Bern98"> [1]</a>,
-databases
-that reside in devices such as smart cards, toasters, or telephones.
-The key characteristics of such databases are that their
-functionality is completely transparent to users, no one ever
-performs explicit database operations or
-database maintenance, the database may crash at any time and
-must recover instantly, the device may undergo a hard reset at
-any time, requiring that the database return to its initial
-state, and the semantic integrity of the database must be maintained
-at all times.
-In Section 2, we provide more detail on the sorts of tasks
-typically performed by database administrators (DBAs) that must
-be automated in an embedded system.
-<p>
-The rest of this paper is structured as follows.
-In Section 2, we outline the requirements for embedded database support.
-In Section 3, we discuss how Berkeley DB
-is conducive to the hands-off management
-required in embedded systems.
-In Section 4, we discuss novel features that
-enhance Berkeley
-DB's suitability for the embedded applications.
-In Section 5, we discuss issues of footprint size.
-In Section 6 we discuss related work, and we conclude
-in Section 7.
-
-<h2>2. Embedded Database Requirements</h2>
-Historically, much of the commercial database industry has been driven
-by the requirements of high performance online transaction
-processing (OLTP), complex query processing, and the industry
-standard benchmarks that have emerged (e.g., TPC-C <a href="#TPCC">[9]</a>,
-TPC-D <a href="#TPCD">[10]</a>) to
-allow for system comparisons.
-As embedded systems typically perform fairly simple queries,
-such metrics are not nearly as relevant for embedded database
-systems as are ease of maintenance, robustness, and small footprint.
-Of these three requirements, robustness and ease of maintenance
-are the key issues.
-Users must trust the data stored in their devices and must not need
-to manually perform anything resembling system administration in order
-to get their unit to work properly.
-Fortunately, ease of use and robustness are important side
-effects of simplicity and good design.
-These, in turn, lead to a small size, providing the third
-requirement of an embedded system.
-<h3>2.1 The User Perspective</h3>
-<p>
-In the embedded database arena, it is the ongoing maintenance tasks
-that must be automated, not necessarily the initial system configuration.
-There are five tasks
-that are traditionally performed by DBAs,
-but must be performed automatically
-in embedded database systems.
-These tasks are
-log archival and reclamation,
-backup,
-data compaction/reorganization,
-automatic and rapid recovery, and
-reinitialization from scratch.
-<P>
-Log archival and backup are tightly coupled.
-Database backups are part of any
-large database installation, and log archival is analogous to incremental
-backup.
-It is not clear what the implications of backup and archival are in
-an embedded system.
-Consumers do not back up their VCRs or refrigerators, yet they do
-(or should) back up their personal computers or personal digital
-assistants.
-For the remainder of this paper, we assume that backups, in some form,
-are required for gizmo databases (imagine having to reprogram, manually,
-the television viewing access pattern learned by some set-top television
-systems today).
-Furthermore, we require that those backups are nearly instantaneous or
-completely transparent,
-as users should not be aware that their gizmos are being backed up
-and should not have to explicitly initiate such backups.
-<p>
-Data compaction or reorganization has traditionally required periodic
-dumping and restoration of
-database tables and the recreation of indices.
-In an embedded system, such reorganization must happen automatically.
-<p>
-Recovery issues are similar in embedded and traditional environments
-with a few exceptions.
-While a few seconds or even a minute recovery is acceptable
-for a large server installation, no one is willing to wait
-for their telephone or television to reboot.
-As with archival, recovery must be nearly instantaneous in an embedded product.
-Secondly, it is often the case that a system will be completely
-reinitialized, rather than simply rebooted.
-In this case, the embedded database must be restored to its initial
-state, freeing all its resources.
-This is not typically a requirement of large server systems.
-<h3>2.2 The Developer Perspective</h3>
-<p>
-In addition to the maintenance-free operation required of the
-embedded systems, there are a number of requirements that fall
-out of the constrained resources typically found in the "gizmos"
-using gizmo databases. These requirements are:
-small footprint,
-short code-path,
-programmatic interface for tight application coupling and
-to avoid the overhead (in both time and size) of
-interfaces such as SQL and ODBC,
-application configurability and flexibility,
-support for complete memory-resident operation (e.g., these systems
-must run on gizmos without file systems), and
-support for multi-threading.
-<p>
-A small footprint and short code-path are self-explanatory, however
-what is not as obvious is that the programmatic interface requirement
-is the logical result of them.
-Traditional interfaces such as ODBC and SQL add significant
-size overhead and frequently add multiple context/thread switches
-per operation, not to mention several IPC calls.
-An embedded product is less likely to require the complex
-query processing that SQL enables.
-Instead, in the embedded space, the ability for an application
-to configure the database for the specific tasks in question
-is more important than a general query interface.
-<p>
-As some systems do not provide storage other than RAM and ROM,
-it is essential that an embedded database work seemlessly
-in memory-only environments.
-Similarly, many of today's embedded operating systems provide a
-single address space architecture, so a simple, multi-threaded
-capability is essential for application requiring any concurrency.
-<p>
-In general, embedded applications run on gizmos whose native
-operating system support varies tremendously.
-For example, the embedded OS may or may
-not support user-level processing or multi-threading.
-Even if it does, a particular embedded
-application may or may not need it.
-Not all applications need more than one thread of control.
-An embedded database must provide mechanisms to developers
-without deciding policy.
-For example, the threading model in an application is a matter of policy,
-and depends
-not on the database software, but on the hardware, operating
-system, and the application's feature set.
-Therefore, the data manager must provide for the use of multi-threading,
-but not require it.
-
-<h2>3. Berkeley DB: A Database for Embedded Systems</h2>
-Berkeley DB is the result of implementing database functionality
-using the UNIX tool-based philosophy.
-The current Berkeley DB package, as distributed by Sleepycat
-Software, is a descendant of the hash and btree access methods
-distributed with 4.4BSD and its descendents.
-The original package (referred to as DB-1.85),
-while intended as a public domain replacement for dbm and
-its followers (e.g., ndbm, gdbm, etc), rapidly became widely
-used as an efficient, easy-to-use data store.
-It was incorporated into a number of Open Source packages including
-Perl, Sendmail, Kerberos, and the GNU C-library.
-<p>
-Versions 2.X and higher are distributed by Sleepycat Software and
-add functionality for concurrency, logging, transactions, and
-recovery.
-Each piece of additional functionality is implemented as an independent
-module, which means that the subsystems can be used outside the
-context of Berkeley DB. For example, the locking subsystem can
-easily be used to implement locking for a non-DB application and
-the shared memory buffer pool can be used for any application
-caching data in main memory.
-This subsystem design allows a designer to pick and choose
-the functionality necessary for the application, minimizing
-memory footprint and maximizing performance.
-This addresses the small footprint and short code-path criteria
-mentioned in the previous section.
-<p>
-As Berkeley DB grew out of a replacement for dbm, its primary
-implementation language has always been C and its interface has
-been programmatic. The C interface is the native interface,
-unlike many database systems where the programmatic API is simply
-a layer on top of an already-costly query interface (e.g. embedded
-SQL).
-Berkeley DB's heritage is also apparent in its data model; it has
-none.
-The database stores unstructured key/data pairs, specified as
-variable length byte strings.
-This leaves schema design and representation issues the responsibility
-of the application, which is ideal for an embedded environment.
-Applications retain full control over specification of their data
-types, representation, index values, and index relationships.
-In other words, Berkeley DB provides a robust, high-performance,
-keyed storage system, not a particular database management system.
-We have designed for simplicity and performance, trading off
-complex, general purpose support that is better encapsulated in
-applications.
-<p>
-Another element of Berkeley DB's programmatic interface is its
-customizability; applications can specify Btree comparison and
-prefix compression functions, hash functions, error routines,
-and recovery models.
-This means that embedded applications can tailor the underlying
-database to best suit their data demands.
-Similarly, the utilities traditionally bundled with a database
-manager (e.g., recovery, dump/restore, archive) are implemented
-as tiny wrapper programs around library routines. This means
-that it is not necessary to run separate applications for the
-utilities. Instead, independent threads can act as utility
-daemons, or regular query threads can perform utility functions.
-Many of the current products built on Berkeley DB are bundled as
-a single large server with independent threads that perform functions
-such as checkpoint, deadlock detection, and performance monitoring.
-<p>
-As mentioned earlier, living in an embedded environment requires
-flexible management of storage.
-Berkeley DB does not require any preallocation of disk space
-for log or data files.
-While many commercial database systems take complete control
-of a raw device, Berkeley DB uses a normal file system, and
-can therefore, safely and easily share a data space with other
-programs.
-All databases and log files are native files of the host environment,
-so whatever utilities are provided by the environment can be used
-to manage database files as well.
-<p>
-Berkeley DB provides three different memory models for its
-management of shared information.
-Applications can use the IEEE Std 1003.1b-1993 (POSIX) <tt>mmap</tt>
-interface to share
-data, they can use system shared memory, as frequently provided
-by the shmget family of interfaces, or they can use per-process
-heap memory (e.g., malloc).
-Applications that require no permanent storage and do not provide
-shared memory facilities can still use Berkeley DB by requesting
-strictly private memory and specifying that all databases be
-memory-resident.
-This provides pure-memory operation.
-<p>
-Lastly, Berkeley DB is designed for rapid startup -- recovery can
-happen automatically as part of system initialization.
-This means that Berkeley DB works correctly in environments where
-gizmos are suddenly shut down and restarted.
-
-<h2>4. Extensions for Embedded Environments </h2>
-While the Berkeley DB library has been designed for use in
-embedded systems, all the features described above are useful
-in more conventional systems as well.
-In this section, we discuss a number of features and "automatic
-knobs" that are specifically geared
-toward the more constrained environments found in gizmo databases.
-
-<h3>4.1 Automatic compression</h3>
-Following the programmatic interface design philosophy, we
-support application-specific (or default) compression routines.
-These can be geared toward the particular data types present
-in the application's dataset, thus providing better compression
-than a general purpose routine.
-Note that the application could instead specify an encryption
-function and create encrypted databases instead of compressed ones.
-Alternately, the application might specify a function that performs
-both compression and encryption.
-<p>
-As applications are also permitted to specify comparison and hash
-functions, the application can chose to organize its data based
-either on uncompressed and clear-text data or compressed and encrypted
-data.
-If the application indicates that data should be compared in its
-processed form (i.e., compressed and encrypted), then the compression
-and encryption are performed on individual data items and the in-memory
-representation retains these characteristics.
-However, if the application indicates that data should be compared in
-its original form, then entire pages are transformed upon being read
-into or written out of the main memory buffer cache.
-These two alternatives provide the flexibility to trade space
-and security for performance.
-
-<h3>4.2 In-memory logging & transactions</h3>
-One of the four key properties of transaction systems is durability.
-This means that transaction systems are designed for permanent storage
-(most commonly disk). However, as mentioned above, embedded systems
-do not necessarily contain any such storage.
-Nevertheless, transactions can be useful in this environment to
-preserve the semantic integrity of the underlying storage.
-Berkeley DB optionally provides logging functionality and
-transaction support regardless of whether the database and logs
-are on disk or in memory.
-
-<h3>4.3 Remote Logs</h3>
-While we do not expect users to backup their television sets and
-toasters, it is conceivable that a set-top box provided by a
-cable carrier should, in fact, be backed up by that cable carrier.
-The ability to store logs remotely can provide "information appliance"
-functionality, and can also be used in conjunction with local logs
-to enhance reliability.
-Furthermore, remote logs provide for catastrophic recovery, e.g., loss
-of the gizmo, destruction of the gizmo, etc.
-
-<h3>4.4 Application References to Database Buffers</h3>
-
-Typically, when data is returned to the user, it must be copied
-from the data manager's buffer cache (or data page) into the
-application's memory.
-However, in an embedded environment, the robustness of the
-total software package is of paramount importance, not the
-isolation between the application and the data manager.
-As a result, it is possible for the data manager to avoid
-copies by giving applications direct references to data items
-in a shared memory cache.
-This is a significant performance optimization that can be
-allowed when the application and data manager are tightly
-integrated.
-
-<h3>4.5 Recoverable database creation/deletion</h3>
-
-In a conventional database management system, the creation of
-database tables (relations) and indices are heavyweight operations
-that are not recoverable.
-This is not acceptable in a complex embedded environment where
-instantaneous recovery and robust operation in the face of
-all types of database operations is essential.
-While Berkeley DB files can be removed using normal file system
-utilities, we provide transaction protected utilities that
-allow us to recover both database creation and deletion.
-
-<h3>4.6 Adaptive concurrency control</h3>
-The Berkeley DB package uses page-level locking by default.
-This trades off fine grain concurrency control for simplicity
-during recovery. (Finer grain concurrency control can be
-obtained by reducing the page size in the database.)
-However, when multiple threads/processes perform page-locking
-in the presence of writing operations, there is the
-potential for deadlock.
-As some environments do not need or desire the overhead of
-logging and transactions, it is important to provide the
-ability for concurrent access without the potential for
-deadlock.
-<p>
-Berkeley DB provides an option to perform coarser grain,
-deadlock-free locking.
-Rather than locking on pages, locking is performed at the
-interface to the database.
-Multiple readers or a single writer are allowed to be
-active in the database at any instant in time, with
-conflicting requests queued automatically.
-The presence of cursors, through which applications can both
-read and write data, complicates this design.
-If a cursor is currently being used for reading, but will later
-be used to write, the system will be deadlock prone if no
-special precautions are taken.
-To handle this situation, we require that, when a cursor is
-created, the application specify any future intention to write.
-If there is an intention to write, the cursor is granted an
-intention-to-write lock which does not conflict with readers,
-but does conflict with other intention-to-write locks and write
-locks.
-The end result is that the application is limited to a single
-potentially writing cursor accessing the database at any point
-in time.
-<p>
-Under periods of low contention (but potentially high throughput),
-the normal page-level locking provides the best overall throughput.
-However, as contention rises, so does the potential for deadlock.
-As some cross-over point, switching to the less concurrent, but
-deadlock-free locking protocol will result in higher throughput
-as operations must never be retried.
-Given the operating conditions of an embedded database manager,
-it is useful to make this change automatically as the system
-itself detects high contention.
-
-<h3>4.7 Adaptive synchronization</h3>
-
-In addition to the logical locks that protect the integrity of the
-database pages, Berkeley DB must synchronize access to shared memory
-data structures, such as the lock table, in-memory buffer pool, and
-in-memory log buffer.
-Each independent module uses a single mutex to protect its shared
-data structures, under the assumption that operations that require
-the mutex are very short and the potential for conflict is
-low.
-Unfortunately, in highly concurrent environments with multiple processors
-present, this assumption is not always true.
-When this assumption becomes invalid (that is, we observe significant
-contention for the subsystem mutexes), we can switch over to a finer-grained
-concurrency model for the mutexes.
-Once again, there is a performance trade-off. Fine-grain mutexes
-impose a penalty of approximately 25% (due to the increased number
-of mutexes required for each operation), but allow for higher throughput.
-Using fine-grain mutexes under low contention would cause a decrease
-in performance, so it is important to monitor the system carefully,
-so that the change can be executed only when it will increase system
-throughput without jeopardizing latency.
-
-<h2>5. Footprint of an Embedded System</h2>
-While traditional systems compete on price-performance, the
-embedded players will compete on price, features, and footprint.
-The earlier sections have focused on features; in this section
-we focus on footprint.
-<p>
-Oracle reports that Oracle Lite 3.0 requires 350 KB to 750 KB
-of memory and approximately 2.5 MB of hard disk space <a href="#Oracle">[7]</a>.
-This includes drivers for interfaces such as ODBC and JDBC.
-In contrast, Berkeley DB ranges in size from 75 KB to under 200 KB,
-foregoing heavyweight interfaces such as ODBC and JDBC and
-providing a variety of deployed sizes that can be used depending
-on application needs. At the low end, applications requiring
-a simple single-user access method can choose from either extended
-linear hashing, B+ trees, or record-number based retrieval and
-pay only the 75 KB space requirement.
-Applications requiring all three access methods will observe the
-110 KB footprint.
-At the high end, a fully recoverable, high-performance system
-occupies less than a quarter megabyte of memory.
-This is a system you can easily incorporate in your toaster oven.
-Table 1 shows the per-module break down of the entire Berkeley DB
-library. Note that this does not include memory used to cache database
-pages.
-
-<table border>
-<tr><th colspan=4>Object sizes in bytes</th></tr>
-<tr><th align=left>Subsystem</th><th align=center>Text</th><th align=center>Data</th><th align=center>Bss</th></tr>
-<tr><td>Btree-specific routines</td><td align=right>28812</td><td align=right>0</td><td align=right>0</td></tr>
-<tr><td>Recno-specific routines</td><td align=right>7211</td><td align=right>0</td><td align=right>0</td></tr>
-<tr><td>Hash-specific routines</td><td align=right>23742</td><td align=right>0</td><td align=right>0</td></tr>
-<tr><td colspan=4></td></tr>
-<tr><td>Memory Pool</td><td align=right>14535</td><td align=right>0</td><td align=right>0</td></tr>
-<tr><td>Access method common code</td><td align=right>23252</td><td align=right>0</td><td align=right>0</td></tr>
-<tr><td>OS compatibility library</td><td align=right>4980</td><td align=right>52</td><td align=right>0</td></tr>
-<tr><td>Support utilities</td><td align=right>6165</td><td align=right>0</td><td align=right>0</td></tr>
-<tr><td colspan=4></td></tr>
-<tr><th>All modules for Btree access method only</th><td align=right>77744</td><td align=right>52</td><td align=right>0</td></tr>
-<tr><th>All modules for Recno access method only</th><td align=right>84955</td><td align=right>52</td><td align=right>0</td></tr>
-<tr><th>All modules for Hash access method only</th><td align=right>72674</td><td align=right>52</td><td align=right>0</td></tr>
-<tr><td colspan=4></td></tr>
-<tr><th align=left>All Access Methods</th><td align=right>108697</td><td align=right>52</td><td align=right>0</td></tr>
-<tr><td colspan=4><br></td></tr>
-<tr><td>Locking</td><td align=right>12533</td><td align=right>0</td><td align=right>0</td></tr>
-<tr><td colspan=4></td></tr>
-<tr><td>Recovery</td><td align=right>26948</td><td align=right>8</td><td align=right>4</td></tr>
-<tr><td>Logging</td><td align=right>37367</td><td align=right>0</td><td align=right>0</td></tr>
-<tr><td colspan=4></td></tr>
-<tr><th align=left>Full Package</th><td align=right>185545</td><td align=right>60</td><td align=right>4</td></tr>
-<tr><br></tr>
-</table>
-
-<h2>6. Related Work</h2>
-
-Every three to five years, leading researchers in the database
-community convene to identify future directions in database
-research.
-They produce a report of this meeting, named for the year and
-location of the meeting.
-The most recent of these reports, the 1998 Asilomar report,
-identifies the embedded database market as one of the
-high growth areas in database research <a href="#Bern98">[1]</a>.
-Not surprisingly, market analysts identify the embedded database
-market as a high-growth area in the commercial sector as well <a href="#Host98">
-[5]</a>.
-<p>
-The Asilomar report identifies a new class of database applications, which they
-term "gizmo" databases, small databases embedded in tiny mobile
-appliances, e.g., smart-cards, telephones, personal digital assistants.
-Such databases must be self-managing, secure and reliable.
-Thus, the idea is that gizmo databases require plug and play data
-management with no database administrator (DBA), no human settable
-parameters, and the ability to adapt to changing conditions.
-More specifically, the Asilomar authors claim that the goal is
-self-tuning, including defining the physical DB design, the
-logical DB design, and automatic reports and utilities <a href="#Bern98">[1]</a>
-To date,
-few researchers have accepted this challenge, and there is a dearth
-of research literature on the subject.
-<p>
-Our approach to embedded database administration is fundamentally
-different than that described by the Asilomar authors.
-We adopt their terminology, but view the challenge in supporting
-gizmo databases to be that of self-sustenance <em>after</em> initial
-deployment. Therefore, we find it, not only acceptable, but
-desirable to assume that application developers control initial
-database design and configuration. To the best of our knowledge,
-none of the published work in this area addresses this approach.
-<p>
-As the research community has not provided guidance in this
-arena, most work in embedded database administration has fallen
-to the commercial vendors.
-These vendors fall into two camps, companies selling databases
-specifically designed for embedding or programmatic access
-and the major database vendors (e.g., Oracle, Informix, Sybase).
-<p>
-The embedded vendors all acknowledge the need for automatic
-administration, but fail to identify precisely how their
-products actually accomplish this.
-A notable exception is Interbase whose white paper
-comparison with Sybase and Microsoft's SQL servers
-explicitly address features of maintenance ease.
-Interbase claims that as they use no log files, there is
-no need for log reclamation, checkpoint tuning, or other
-tasks associated with log management. However, Interbase
-uses Transaction Information Pages, and it is unclear
-how these are reused or reclaimed <a href="#Interbase">[6]</a>.
-Additionally, with a log-free system, they must use
-a FORCE policy (write all pages to disk at commit),
-as defined by Haerder and Reuter <a href="#Haerder">[4]</a>. This has
-serious performance consequences for disk-based systems.
-The approach described in this paper does use logs and
-therefore requires log reclamation,
-but provides hooks so the application may reclaim logs
-safely and programmatically.
-While Berkeley DB does require checkpoints, the goal of
-tuning the checkpoint interval is to bound recovery time.
-Since the checkpoint interval in Berkeley DB can be expressed
-by the amount of log data written, it requires no tuning.
-The application designer sets a target recovery time, and
-selects the amount of log data that can be read in that interval
-and specifies the checkpoint interval appropriately. Even as
-load changes, the time to recover does not.
-<p>
-The backup approaches taken by Interbase and Berkeley DB
-are similar in that they both allow online backup, but
-rather different in their affect on transactions running
-during backup. As Interbase performs backups as transactions
-<a href="#Interbase">[6]</a>, concurrent queries can suffer potentially long
-delays. Berkeley DB uses native operating system system utilities
-and recovery for backups, so there is no interference with
-concurrent activity, other than potential contention on disk
-arms.
-<p>
-There are a number of database vendors selling in
-the embedded market (e.g., Raima,
-Centura, Pervasive, Faircom), but none highlight
-the special requirements of embedded database
-applications.
-On the other end of the spectrum, the major vendors,
-Oracle, Sybase, Microsoft, are all becoming convinced
-of the importance of the embedded market.
-As mentioned earlier, Oracle has announced its
-Oracle Lite server for embedded use.
-Sybase has announced its UltraLite platform for "application-optimized,
-high-performance, SQL database engine for professional
-application developers building solutions for mobile and embedded platforms."
-<a href="#Sybase">[8]</a>.
-We believe that SQL is incompatible with the
-gizmo database environment or truly embedded systems for which Berkeley
-DB is most suitable.
-Microsoft research is taking a different approach, developing
-technology to assist in automating initial database design and
-index specification <a href="#Chaud98">[2]</a><a href="#Chaud982">[3]</a>.
-As mentioned earlier, we believe that such configuration is, not only
-acceptable in the embedded market, but desirable so that applications
-can tune their database management for the target environment.
-<h2>7. Conclusions</h2>
-The coming wave of embedded systems poses a new set of challenges
-for data management.
-The traditional server-based, big footprint systems designed for
-high performance on big iron are not the right approach in this
-environment.
-Instead, application developers need small, fast, versatile systems
-that can be tailored to a specific environment.
-In this paper, we have identified several of the key issues in
-providing these systems and shown how Berkeley DB provides
-many of the characteristics necessary for such applications.
-
-<h2>8. References</h2>
-<p>
-[1] <a name="Bern98"> Bernstein, P., Brodie, M., Ceri, S., DeWitt, D., Franklin, M.,
-Garcia-Molina, H., Gray, J., Held, J., Hellerstein, J.,
-Jagadish, H., Lesk, M., Maier, D., Naughton, J.,
-Pirahesh, H., Stonebraker, M., Ullman, J.,
-"The Asilomar Report on Database Research,"
-SIGMOD Record 27(4): 74-80, 1998.
-</a>
-<p>
-[2] <a name="Chaud98"> Chaudhuri, S., Narasayya, V.,
-"AutoAdmin 'What-If' Index Analysis Utility,"
-<em>Proceedings of the ACM SIGMOD Conference</em>, Seattle, 1998.
-</a>
-<p>
-[3] <a name="Chaud982"> Chaudhuri, S., Narasayya, V.,
-"An Efficient, Cost-Driver Index Selection Tool for Microsoft SQL Server,"
-<em>Proceedings of the 23rd VLDB Conference</em>, Athens, Greece, 1997.
-</a>
-<p>
-[4] <a name="Harder"> Haerder, T., Reuter, A.,
-"Principles of Transaction-Oriented Database Recovery,"
-<em>Computing Surveys 15</em>,4 (1983), 237-318.
-</a>
-<p>
-[5] <a name="Host98"> Hostetler, M., "Cover Is Off A New Type of Database,"
-Embedded DB News,
-http://www.theadvisors.com/embeddeddbnews.htm,
-5/6/98.
-</a>
-<p>
-[6] <a name="Interbase"> Interbase, "A Comparison of Borland InterBase 4.0
-Sybase SQL Server and Microsoft SQL Server,"
-http://web.interbase.com/products/doc_info_f.html.
-</a>
-<p>
-[7] <a name="Oracle"> Oracle, "Oracle Delivers New Server, Application Suite
-to Power the Web for Mission-Critical Business,"
-http://www.oracle.com.sg/partners/news/newserver.htm,
-May 1998.
-</a>
-<p>
-[8] <a name="Sybase"> Sybase, Sybase UltraLite, http://www.sybase.com/products/ultralite/beta.
-</a>
-<p>
-[9] <a name="TPCC"> Transaction Processing Council, "TPC-C Benchmark Specification,
-Version 3.4," San Jose, CA, August 1998.
-</a>
-<p>
-[10] <a name="TPCD"> Transaction Processing Council, "TPC-D Benchmark Specification,
-Version 2.1," San Jose, CA, April 1999.
-</a>
-</body>
-</html>
-
-
diff --git a/bdb/docs/ref/refs/hash_usenix.ps b/bdb/docs/ref/refs/hash_usenix.ps
deleted file mode 100644
index c884778830d..00000000000
--- a/bdb/docs/ref/refs/hash_usenix.ps
+++ /dev/null
@@ -1,12209 +0,0 @@
-%!PS-Adobe-1.0
-%%Creator: utopia:margo (& Seltzer,608-13E,8072,)
-%%Title: stdin (ditroff)
-%%CreationDate: Tue Dec 11 15:06:45 1990
-%%EndComments
-% @(#)psdit.pro 1.3 4/15/88
-% lib/psdit.pro -- prolog for psdit (ditroff) files
-% Copyright (c) 1984, 1985 Adobe Systems Incorporated. All Rights Reserved.
-% last edit: shore Sat Nov 23 20:28:03 1985
-% RCSID: $Header: psdit.pro,v 2.1 85/11/24 12:19:43 shore Rel $
-
-% Changed by Edward Wang (edward@ucbarpa.berkeley.edu) to handle graphics,
-% 17 Feb, 87.
-
-/$DITroff 140 dict def $DITroff begin
-/fontnum 1 def /fontsize 10 def /fontheight 10 def /fontslant 0 def
-/xi{0 72 11 mul translate 72 resolution div dup neg scale 0 0 moveto
- /fontnum 1 def /fontsize 10 def /fontheight 10 def /fontslant 0 def F
- /pagesave save def}def
-/PB{save /psv exch def currentpoint translate
- resolution 72 div dup neg scale 0 0 moveto}def
-/PE{psv restore}def
-/arctoobig 90 def /arctoosmall .05 def
-/m1 matrix def /m2 matrix def /m3 matrix def /oldmat matrix def
-/tan{dup sin exch cos div}def
-/point{resolution 72 div mul}def
-/dround {transform round exch round exch itransform}def
-/xT{/devname exch def}def
-/xr{/mh exch def /my exch def /resolution exch def}def
-/xp{}def
-/xs{docsave restore end}def
-/xt{}def
-/xf{/fontname exch def /slotno exch def fontnames slotno get fontname eq not
- {fonts slotno fontname findfont put fontnames slotno fontname put}if}def
-/xH{/fontheight exch def F}def
-/xS{/fontslant exch def F}def
-/s{/fontsize exch def /fontheight fontsize def F}def
-/f{/fontnum exch def F}def
-/F{fontheight 0 le{/fontheight fontsize def}if
- fonts fontnum get fontsize point 0 0 fontheight point neg 0 0 m1 astore
- fontslant 0 ne{1 0 fontslant tan 1 0 0 m2 astore m3 concatmatrix}if
- makefont setfont .04 fontsize point mul 0 dround pop setlinewidth}def
-/X{exch currentpoint exch pop moveto show}def
-/N{3 1 roll moveto show}def
-/Y{exch currentpoint pop exch moveto show}def
-/S{show}def
-/ditpush{}def/ditpop{}def
-/AX{3 -1 roll currentpoint exch pop moveto 0 exch ashow}def
-/AN{4 2 roll moveto 0 exch ashow}def
-/AY{3 -1 roll currentpoint pop exch moveto 0 exch ashow}def
-/AS{0 exch ashow}def
-/MX{currentpoint exch pop moveto}def
-/MY{currentpoint pop exch moveto}def
-/MXY{moveto}def
-/cb{pop}def % action on unknown char -- nothing for now
-/n{}def/w{}def
-/p{pop showpage pagesave restore /pagesave save def}def
-/Dt{/Dlinewidth exch def}def 1 Dt
-/Ds{/Ddash exch def}def -1 Ds
-/Di{/Dstipple exch def}def 1 Di
-/Dsetlinewidth{2 Dlinewidth mul setlinewidth}def
-/Dsetdash{Ddash 4 eq{[8 12]}{Ddash 16 eq{[32 36]}
- {Ddash 20 eq{[32 12 8 12]}{[]}ifelse}ifelse}ifelse 0 setdash}def
-/Dstroke{gsave Dsetlinewidth Dsetdash 1 setlinecap stroke grestore
- currentpoint newpath moveto}def
-/Dl{rlineto Dstroke}def
-/arcellipse{/diamv exch def /diamh exch def oldmat currentmatrix pop
- currentpoint translate 1 diamv diamh div scale /rad diamh 2 div def
- currentpoint exch rad add exch rad -180 180 arc oldmat setmatrix}def
-/Dc{dup arcellipse Dstroke}def
-/De{arcellipse Dstroke}def
-/Da{/endv exch def /endh exch def /centerv exch def /centerh exch def
- /cradius centerv centerv mul centerh centerh mul add sqrt def
- /eradius endv endv mul endh endh mul add sqrt def
- /endang endv endh atan def
- /startang centerv neg centerh neg atan def
- /sweep startang endang sub dup 0 lt{360 add}if def
- sweep arctoobig gt
- {/midang startang sweep 2 div sub def /midrad cradius eradius add 2 div def
- /midh midang cos midrad mul def /midv midang sin midrad mul def
- midh neg midv neg endh endv centerh centerv midh midv Da
- Da}
- {sweep arctoosmall ge
- {/controldelt 1 sweep 2 div cos sub 3 sweep 2 div sin mul div 4 mul def
- centerv neg controldelt mul centerh controldelt mul
- endv neg controldelt mul centerh add endh add
- endh controldelt mul centerv add endv add
- centerh endh add centerv endv add rcurveto Dstroke}
- {centerh endh add centerv endv add rlineto Dstroke}
- ifelse}
- ifelse}def
-/Dpatterns[
-[%cf[widthbits]
-[8<0000000000000010>]
-[8<0411040040114000>]
-[8<0204081020408001>]
-[8<0000103810000000>]
-[8<6699996666999966>]
-[8<0000800100001008>]
-[8<81c36666c3810000>]
-[8<0f0e0c0800000000>]
-[8<0000000000000010>]
-[8<0411040040114000>]
-[8<0204081020408001>]
-[8<0000001038100000>]
-[8<6699996666999966>]
-[8<0000800100001008>]
-[8<81c36666c3810000>]
-[8<0f0e0c0800000000>]
-[8<0042660000246600>]
-[8<0000990000990000>]
-[8<0804020180402010>]
-[8<2418814242811824>]
-[8<6699996666999966>]
-[8<8000000008000000>]
-[8<00001c3e363e1c00>]
-[8<0000000000000000>]
-[32<00000040000000c00000004000000040000000e0000000000000000000000000>]
-[32<00000000000060000000900000002000000040000000f0000000000000000000>]
-[32<000000000000000000e0000000100000006000000010000000e0000000000000>]
-[32<00000000000000002000000060000000a0000000f00000002000000000000000>]
-[32<0000000e0000000000000000000000000000000f000000080000000e00000001>]
-[32<0000090000000600000000000000000000000000000007000000080000000e00>]
-[32<00010000000200000004000000040000000000000000000000000000000f0000>]
-[32<0900000006000000090000000600000000000000000000000000000006000000>]]
-[%ug
-[8<0000020000000000>]
-[8<0000020000002000>]
-[8<0004020000002000>]
-[8<0004020000402000>]
-[8<0004060000402000>]
-[8<0004060000406000>]
-[8<0006060000406000>]
-[8<0006060000606000>]
-[8<00060e0000606000>]
-[8<00060e000060e000>]
-[8<00070e000060e000>]
-[8<00070e000070e000>]
-[8<00070e020070e000>]
-[8<00070e020070e020>]
-[8<04070e020070e020>]
-[8<04070e024070e020>]
-[8<04070e064070e020>]
-[8<04070e064070e060>]
-[8<06070e064070e060>]
-[8<06070e066070e060>]
-[8<06070f066070e060>]
-[8<06070f066070f060>]
-[8<060f0f066070f060>]
-[8<060f0f0660f0f060>]
-[8<060f0f0760f0f060>]
-[8<060f0f0760f0f070>]
-[8<0e0f0f0760f0f070>]
-[8<0e0f0f07e0f0f070>]
-[8<0e0f0f0fe0f0f070>]
-[8<0e0f0f0fe0f0f0f0>]
-[8<0f0f0f0fe0f0f0f0>]
-[8<0f0f0f0ff0f0f0f0>]
-[8<1f0f0f0ff0f0f0f0>]
-[8<1f0f0f0ff1f0f0f0>]
-[8<1f0f0f8ff1f0f0f0>]
-[8<1f0f0f8ff1f0f0f8>]
-[8<9f0f0f8ff1f0f0f8>]
-[8<9f0f0f8ff9f0f0f8>]
-[8<9f0f0f9ff9f0f0f8>]
-[8<9f0f0f9ff9f0f0f9>]
-[8<9f8f0f9ff9f0f0f9>]
-[8<9f8f0f9ff9f8f0f9>]
-[8<9f8f1f9ff9f8f0f9>]
-[8<9f8f1f9ff9f8f1f9>]
-[8<bf8f1f9ff9f8f1f9>]
-[8<bf8f1f9ffbf8f1f9>]
-[8<bf8f1fdffbf8f1f9>]
-[8<bf8f1fdffbf8f1fd>]
-[8<ff8f1fdffbf8f1fd>]
-[8<ff8f1fdffff8f1fd>]
-[8<ff8f1ffffff8f1fd>]
-[8<ff8f1ffffff8f1ff>]
-[8<ff9f1ffffff8f1ff>]
-[8<ff9f1ffffff9f1ff>]
-[8<ff9f9ffffff9f1ff>]
-[8<ff9f9ffffff9f9ff>]
-[8<ffbf9ffffff9f9ff>]
-[8<ffbf9ffffffbf9ff>]
-[8<ffbfdffffffbf9ff>]
-[8<ffbfdffffffbfdff>]
-[8<ffffdffffffbfdff>]
-[8<ffffdffffffffdff>]
-[8<fffffffffffffdff>]
-[8<ffffffffffffffff>]]
-[%mg
-[8<8000000000000000>]
-[8<0822080080228000>]
-[8<0204081020408001>]
-[8<40e0400000000000>]
-[8<66999966>]
-[8<8001000010080000>]
-[8<81c36666c3810000>]
-[8<f0e0c08000000000>]
-[16<07c00f801f003e007c00f800f001e003c007800f001f003e007c00f801f003e0>]
-[16<1f000f8007c003e001f000f8007c003e001f800fc007e003f001f8007c003e00>]
-[8<c3c300000000c3c3>]
-[16<0040008001000200040008001000200040008000000100020004000800100020>]
-[16<0040002000100008000400020001800040002000100008000400020001000080>]
-[16<1fc03fe07df0f8f8f07de03fc01f800fc01fe03ff07df8f87df03fe01fc00f80>]
-[8<80>]
-[8<8040201000000000>]
-[8<84cc000048cc0000>]
-[8<9900009900000000>]
-[8<08040201804020100800020180002010>]
-[8<2418814242811824>]
-[8<66999966>]
-[8<8000000008000000>]
-[8<70f8d8f870000000>]
-[8<0814224180402010>]
-[8<aa00440a11a04400>]
-[8<018245aa45820100>]
-[8<221c224180808041>]
-[8<88000000>]
-[8<0855800080550800>]
-[8<2844004482440044>]
-[8<0810204080412214>]
-[8<00>]]]def
-/Dfill{
- transform /maxy exch def /maxx exch def
- transform /miny exch def /minx exch def
- minx maxx gt{/minx maxx /maxx minx def def}if
- miny maxy gt{/miny maxy /maxy miny def def}if
- Dpatterns Dstipple 1 sub get exch 1 sub get
- aload pop /stip exch def /stipw exch def /stiph 128 def
- /imatrix[stipw 0 0 stiph 0 0]def
- /tmatrix[stipw 0 0 stiph 0 0]def
- /minx minx cvi stiph idiv stiph mul def
- /miny miny cvi stipw idiv stipw mul def
- gsave eoclip 0 setgray
- miny stiph maxy{
- tmatrix exch 5 exch put
- minx stipw maxx{
- tmatrix exch 4 exch put tmatrix setmatrix
- stipw stiph true imatrix {stip} imagemask
- }for
- }for
- grestore
-}def
-/Dp{Dfill Dstroke}def
-/DP{Dfill currentpoint newpath moveto}def
-end
-
-/ditstart{$DITroff begin
- /nfonts 60 def % NFONTS makedev/ditroff dependent!
- /fonts[nfonts{0}repeat]def
- /fontnames[nfonts{()}repeat]def
-/docsave save def
-}def
-
-% character outcalls
-/oc{
- /pswid exch def /cc exch def /name exch def
- /ditwid pswid fontsize mul resolution mul 72000 div def
- /ditsiz fontsize resolution mul 72 div def
- ocprocs name known{ocprocs name get exec}{name cb}ifelse
-}def
-/fractm [.65 0 0 .6 0 0] def
-/fraction{
- /fden exch def /fnum exch def gsave /cf currentfont def
- cf fractm makefont setfont 0 .3 dm 2 copy neg rmoveto
- fnum show rmoveto currentfont cf setfont(\244)show setfont fden show
- grestore ditwid 0 rmoveto
-}def
-/oce{grestore ditwid 0 rmoveto}def
-/dm{ditsiz mul}def
-/ocprocs 50 dict def ocprocs begin
-(14){(1)(4)fraction}def
-(12){(1)(2)fraction}def
-(34){(3)(4)fraction}def
-(13){(1)(3)fraction}def
-(23){(2)(3)fraction}def
-(18){(1)(8)fraction}def
-(38){(3)(8)fraction}def
-(58){(5)(8)fraction}def
-(78){(7)(8)fraction}def
-(sr){gsave 0 .06 dm rmoveto(\326)show oce}def
-(is){gsave 0 .15 dm rmoveto(\362)show oce}def
-(->){gsave 0 .02 dm rmoveto(\256)show oce}def
-(<-){gsave 0 .02 dm rmoveto(\254)show oce}def
-(==){gsave 0 .05 dm rmoveto(\272)show oce}def
-(uc){gsave currentpoint 400 .009 dm mul add translate
- 8 -8 scale ucseal oce}def
-end
-
-% an attempt at a PostScript FONT to implement ditroff special chars
-% this will enable us to
-% cache the little buggers
-% generate faster, more compact PS out of psdit
-% confuse everyone (including myself)!
-50 dict dup begin
-/FontType 3 def
-/FontName /DIThacks def
-/FontMatrix [.001 0 0 .001 0 0] def
-/FontBBox [-260 -260 900 900] def% a lie but ...
-/Encoding 256 array def
-0 1 255{Encoding exch /.notdef put}for
-Encoding
- dup 8#040/space put %space
- dup 8#110/rc put %right ceil
- dup 8#111/lt put %left top curl
- dup 8#112/bv put %bold vert
- dup 8#113/lk put %left mid curl
- dup 8#114/lb put %left bot curl
- dup 8#115/rt put %right top curl
- dup 8#116/rk put %right mid curl
- dup 8#117/rb put %right bot curl
- dup 8#120/rf put %right floor
- dup 8#121/lf put %left floor
- dup 8#122/lc put %left ceil
- dup 8#140/sq put %square
- dup 8#141/bx put %box
- dup 8#142/ci put %circle
- dup 8#143/br put %box rule
- dup 8#144/rn put %root extender
- dup 8#145/vr put %vertical rule
- dup 8#146/ob put %outline bullet
- dup 8#147/bu put %bullet
- dup 8#150/ru put %rule
- dup 8#151/ul put %underline
- pop
-/DITfd 100 dict def
-/BuildChar{0 begin
- /cc exch def /fd exch def
- /charname fd /Encoding get cc get def
- /charwid fd /Metrics get charname get def
- /charproc fd /CharProcs get charname get def
- charwid 0 fd /FontBBox get aload pop setcachedevice
- 2 setlinejoin 40 setlinewidth
- newpath 0 0 moveto gsave charproc grestore
- end}def
-/BuildChar load 0 DITfd put
-/CharProcs 50 dict def
-CharProcs begin
-/space{}def
-/.notdef{}def
-/ru{500 0 rls}def
-/rn{0 840 moveto 500 0 rls}def
-/vr{0 800 moveto 0 -770 rls}def
-/bv{0 800 moveto 0 -1000 rls}def
-/br{0 840 moveto 0 -1000 rls}def
-/ul{0 -140 moveto 500 0 rls}def
-/ob{200 250 rmoveto currentpoint newpath 200 0 360 arc closepath stroke}def
-/bu{200 250 rmoveto currentpoint newpath 200 0 360 arc closepath fill}def
-/sq{80 0 rmoveto currentpoint dround newpath moveto
- 640 0 rlineto 0 640 rlineto -640 0 rlineto closepath stroke}def
-/bx{80 0 rmoveto currentpoint dround newpath moveto
- 640 0 rlineto 0 640 rlineto -640 0 rlineto closepath fill}def
-/ci{500 360 rmoveto currentpoint newpath 333 0 360 arc
- 50 setlinewidth stroke}def
-
-/lt{0 -200 moveto 0 550 rlineto currx 800 2cx s4 add exch s4 a4p stroke}def
-/lb{0 800 moveto 0 -550 rlineto currx -200 2cx s4 add exch s4 a4p stroke}def
-/rt{0 -200 moveto 0 550 rlineto currx 800 2cx s4 sub exch s4 a4p stroke}def
-/rb{0 800 moveto 0 -500 rlineto currx -200 2cx s4 sub exch s4 a4p stroke}def
-/lk{0 800 moveto 0 300 -300 300 s4 arcto pop pop 1000 sub
- 0 300 4 2 roll s4 a4p 0 -200 lineto stroke}def
-/rk{0 800 moveto 0 300 s2 300 s4 arcto pop pop 1000 sub
- 0 300 4 2 roll s4 a4p 0 -200 lineto stroke}def
-/lf{0 800 moveto 0 -1000 rlineto s4 0 rls}def
-/rf{0 800 moveto 0 -1000 rlineto s4 neg 0 rls}def
-/lc{0 -200 moveto 0 1000 rlineto s4 0 rls}def
-/rc{0 -200 moveto 0 1000 rlineto s4 neg 0 rls}def
-end
-
-/Metrics 50 dict def Metrics begin
-/.notdef 0 def
-/space 500 def
-/ru 500 def
-/br 0 def
-/lt 416 def
-/lb 416 def
-/rt 416 def
-/rb 416 def
-/lk 416 def
-/rk 416 def
-/rc 416 def
-/lc 416 def
-/rf 416 def
-/lf 416 def
-/bv 416 def
-/ob 350 def
-/bu 350 def
-/ci 750 def
-/bx 750 def
-/sq 750 def
-/rn 500 def
-/ul 500 def
-/vr 0 def
-end
-
-DITfd begin
-/s2 500 def /s4 250 def /s3 333 def
-/a4p{arcto pop pop pop pop}def
-/2cx{2 copy exch}def
-/rls{rlineto stroke}def
-/currx{currentpoint pop}def
-/dround{transform round exch round exch itransform} def
-end
-end
-/DIThacks exch definefont pop
-ditstart
-(psc)xT
-576 1 1 xr
-1(Times-Roman)xf 1 f
-2(Times-Italic)xf 2 f
-3(Times-Bold)xf 3 f
-4(Times-BoldItalic)xf 4 f
-5(Helvetica)xf 5 f
-6(Helvetica-Bold)xf 6 f
-7(Courier)xf 7 f
-8(Courier-Bold)xf 8 f
-9(Symbol)xf 9 f
-10(DIThacks)xf 10 f
-10 s
-1 f
-xi
-%%EndProlog
-
-%%Page: 1 1
-10 s 10 xH 0 xS 1 f
-3 f
-22 s
-1249 626(A)N
-1420(N)X
-1547(ew)X
-1796(H)X
-1933(ashing)X
-2467(P)X
-2574(ackage)X
-3136(for)X
-3405(U)X
-3532(N)X
-3659(IX)X
-2 f
-20 s
-3855 562(1)N
-1 f
-12 s
-1607 779(Margo)N
-1887(Seltzer)X
-9 f
-2179(-)X
-1 f
-2256(University)X
-2686(of)X
-2790(California,)X
-3229(Berkeley)X
-2015 875(Ozan)N
-2242(Yigit)X
-9 f
-2464(-)X
-1 f
-2541(York)X
-2762(University)X
-3 f
-2331 1086(ABSTRACT)N
-1 f
-10 s
-1152 1222(UNIX)N
-1385(support)X
-1657(of)X
-1756(disk)X
-1921(oriented)X
-2216(hashing)X
-2497(was)X
-2654(originally)X
-2997(provided)X
-3314(by)X
-2 f
-3426(dbm)X
-1 f
-3595([ATT79])X
-3916(and)X
-1152 1310(subsequently)N
-1595(improved)X
-1927(upon)X
-2112(in)X
-2 f
-2199(ndbm)X
-1 f
-2402([BSD86].)X
-2735(In)X
-2826(AT&T)X
-3068(System)X
-3327(V,)X
-3429(in-memory)X
-3809(hashed)X
-1152 1398(storage)N
-1420(and)X
-1572(access)X
-1814(support)X
-2090(was)X
-2251(added)X
-2479(in)X
-2577(the)X
-2 f
-2711(hsearch)X
-1 f
-3000(library)X
-3249(routines)X
-3542([ATT85].)X
-3907(The)X
-1152 1486(result)N
-1367(is)X
-1457(a)X
-1530(system)X
-1789(with)X
-1968(two)X
-2125(incompatible)X
-2580(hashing)X
-2865(schemes,)X
-3193(each)X
-3377(with)X
-3555(its)X
-3666(own)X
-3840(set)X
-3965(of)X
-1152 1574(shortcomings.)N
-1152 1688(This)N
-1316(paper)X
-1517(presents)X
-1802(the)X
-1922(design)X
-2152(and)X
-2289(performance)X
-2717(characteristics)X
-3198(of)X
-3286(a)X
-3343(new)X
-3498(hashing)X
-3768(package)X
-1152 1776(providing)N
-1483(a)X
-1539(superset)X
-1822(of)X
-1909(the)X
-2027(functionality)X
-2456(provided)X
-2761(by)X
-2 f
-2861(dbm)X
-1 f
-3019(and)X
-2 f
-3155(hsearch)X
-1 f
-3409(.)X
-3469(The)X
-3614(new)X
-3768(package)X
-1152 1864(uses)N
-1322(linear)X
-1537(hashing)X
-1818(to)X
-1912(provide)X
-2189(ef\256cient)X
-2484(support)X
-2755(of)X
-2853(both)X
-3026(memory)X
-3324(based)X
-3538(and)X
-3685(disk)X
-3849(based)X
-1152 1952(hash)N
-1319(tables)X
-1526(with)X
-1688(performance)X
-2115(superior)X
-2398(to)X
-2480(both)X
-2 f
-2642(dbm)X
-1 f
-2800(and)X
-2 f
-2936(hsearch)X
-1 f
-3210(under)X
-3413(most)X
-3588(conditions.)X
-3 f
-1380 2128(Introduction)N
-1 f
-892 2260(Current)N
-1196(UNIX)X
-1456(systems)X
-1768(offer)X
-1984(two)X
-2163(forms)X
-2409(of)X
-720 2348(hashed)N
-973(data)X
-1137(access.)X
-2 f
-1413(Dbm)X
-1 f
-1599(and)X
-1745(its)X
-1850(derivatives)X
-2231(provide)X
-720 2436(keyed)N
-939(access)X
-1171(to)X
-1259(disk)X
-1418(resident)X
-1698(data)X
-1858(while)X
-2 f
-2062(hsearch)X
-1 f
-2342(pro-)X
-720 2524(vides)N
-929(access)X
-1175(for)X
-1309(memory)X
-1616(resident)X
-1910(data.)X
-2124(These)X
-2356(two)X
-720 2612(access)N
-979(methods)X
-1302(are)X
-1453(incompatible)X
-1923(in)X
-2037(that)X
-2209(memory)X
-720 2700(resident)N
-1011(hash)X
-1195(tables)X
-1419(may)X
-1593(not)X
-1731(be)X
-1843(stored)X
-2075(on)X
-2191(disk)X
-2360(and)X
-720 2788(disk)N
-884(resident)X
-1169(tables)X
-1387(cannot)X
-1632(be)X
-1739(read)X
-1909(into)X
-2063(memory)X
-2360(and)X
-720 2876(accessed)N
-1022(using)X
-1215(the)X
-1333(in-memory)X
-1709(routines.)X
-2 f
-892 2990(Dbm)N
-1 f
-1091(has)X
-1241(several)X
-1512(shortcomings.)X
-2026(Since)X
-2247(data)X
-2423(is)X
-720 3078(assumed)N
-1032(to)X
-1130(be)X
-1242(disk)X
-1411(resident,)X
-1721(each)X
-1905(access)X
-2146(requires)X
-2440(a)X
-720 3166(system)N
-963(call,)X
-1120(and)X
-1257(almost)X
-1491(certainly,)X
-1813(a)X
-1869(disk)X
-2022(operation.)X
-2365(For)X
-720 3254(extremely)N
-1072(large)X
-1264(databases,)X
-1623(where)X
-1851(caching)X
-2131(is)X
-2214(unlikely)X
-720 3342(to)N
-810(be)X
-914(effective,)X
-1244(this)X
-1386(is)X
-1466(acceptable,)X
-1853(however,)X
-2177(when)X
-2378(the)X
-720 3430(database)N
-1022(is)X
-1100(small)X
-1298(\(i.e.)X
-1447(the)X
-1569(password)X
-1896(\256le\),)X
-2069(performance)X
-720 3518(improvements)N
-1204(can)X
-1342(be)X
-1443(obtained)X
-1744(through)X
-2018(caching)X
-2293(pages)X
-720 3606(of)N
-818(the)X
-947(database)X
-1255(in)X
-1348(memory.)X
-1685(In)X
-1782(addition,)X
-2 f
-2094(dbm)X
-1 f
-2262(cannot)X
-720 3694(store)N
-902(data)X
-1062(items)X
-1261(whose)X
-1492(total)X
-1660(key)X
-1802(and)X
-1943(data)X
-2102(size)X
-2252(exceed)X
-720 3782(the)N
-850(page)X
-1034(size)X
-1191(of)X
-1290(the)X
-1420(hash)X
-1599(table.)X
-1827(Similarly,)X
-2176(if)X
-2257(two)X
-2409(or)X
-720 3870(more)N
-907(keys)X
-1076(produce)X
-1357(the)X
-1477(same)X
-1664(hash)X
-1833(value)X
-2029(and)X
-2166(their)X
-2334(total)X
-720 3958(size)N
-876(exceeds)X
-1162(the)X
-1291(page)X
-1474(size,)X
-1650(the)X
-1779(table)X
-1966(cannot)X
-2210(store)X
-2396(all)X
-720 4046(the)N
-838(colliding)X
-1142(keys.)X
-892 4160(The)N
-1050(in-memory)X
-2 f
-1439(hsearch)X
-1 f
-1725(routines)X
-2015(have)X
-2199(different)X
-720 4248(shortcomings.)N
-1219(First,)X
-1413(the)X
-1539(notion)X
-1771(of)X
-1865(a)X
-1928(single)X
-2146(hash)X
-2320(table)X
-720 4336(is)N
-807(embedded)X
-1171(in)X
-1266(the)X
-1397(interface,)X
-1732(preventing)X
-2108(an)X
-2217(applica-)X
-720 4424(tion)N
-902(from)X
-1116(accessing)X
-1482(multiple)X
-1806(tables)X
-2050(concurrently.)X
-720 4512(Secondly,)N
-1063(the)X
-1186(routine)X
-1438(to)X
-1525(create)X
-1743(a)X
-1804(hash)X
-1976(table)X
-2157(requires)X
-2440(a)X
-720 4600(parameter)N
-1066(which)X
-1286(declares)X
-1573(the)X
-1694(size)X
-1842(of)X
-1932(the)X
-2053(hash)X
-2223(table.)X
-2422(If)X
-720 4688(this)N
-856(size)X
-1001(is)X
-1074(set)X
-1183(too)X
-1305(low,)X
-1465(performance)X
-1892(degradation)X
-2291(or)X
-2378(the)X
-720 4776(inability)N
-1008(to)X
-1092(add)X
-1230(items)X
-1425(to)X
-1509(the)X
-1628(table)X
-1805(may)X
-1964(result.)X
-2223(In)X
-2311(addi-)X
-720 4864(tion,)N
-2 f
-910(hsearch)X
-1 f
-1210(requires)X
-1515(that)X
-1681(the)X
-1825(application)X
-2226(allocate)X
-720 4952(memory)N
-1037(for)X
-1181(the)X
-1329(key)X
-1495(and)X
-1661(data)X
-1845(items.)X
-2108(Lastly,)X
-2378(the)X
-2 f
-720 5040(hsearch)N
-1 f
-1013(routines)X
-1310(provide)X
-1594(no)X
-1713(interface)X
-2034(to)X
-2135(store)X
-2329(hash)X
-720 5128(tables)N
-927(on)X
-1027(disk.)X
-16 s
-720 5593 MXY
-864 0 Dl
-2 f
-8 s
-760 5648(1)N
-1 f
-9 s
-5673(UNIX)Y
-990(is)X
-1056(a)X
-1106(registered)X
-1408(trademark)X
-1718(of)X
-1796(AT&T.)X
-10 s
-2878 2128(The)N
-3032(goal)X
-3199(of)X
-3295(our)X
-3431(work)X
-3625(was)X
-3779(to)X
-3870(design)X
-4108(and)X
-4253(imple-)X
-2706 2216(ment)N
-2900(a)X
-2970(new)X
-3138(package)X
-3436(that)X
-3590(provides)X
-3899(a)X
-3968(superset)X
-4264(of)X
-4364(the)X
-2706 2304(functionality)N
-3144(of)X
-3240(both)X
-2 f
-3411(dbm)X
-1 f
-3578(and)X
-2 f
-3723(hsearch)X
-1 f
-3977(.)X
-4045(The)X
-4198(package)X
-2706 2392(had)N
-2871(to)X
-2982(overcome)X
-3348(the)X
-3495(interface)X
-3826(shortcomings)X
-4306(cited)X
-2706 2480(above)N
-2930(and)X
-3078(its)X
-3185(implementation)X
-3719(had)X
-3867(to)X
-3961(provide)X
-4238(perfor-)X
-2706 2568(mance)N
-2942(equal)X
-3142(or)X
-3235(superior)X
-3524(to)X
-3612(that)X
-3758(of)X
-3851(the)X
-3975(existing)X
-4253(imple-)X
-2706 2656(mentations.)N
-3152(In)X
-3274(order)X
-3498(to)X
-3614(provide)X
-3913(a)X
-4003(compact)X
-4329(disk)X
-2706 2744(representation,)N
-3224(graceful)X
-3531(table)X
-3729(growth,)X
-4018(and)X
-4176(expected)X
-2706 2832(constant)N
-3033(time)X
-3234(performance,)X
-3720(we)X
-3873(selected)X
-4191(Litwin's)X
-2706 2920(linear)N
-2923(hashing)X
-3206(algorithm)X
-3551([LAR88,)X
-3872(LIT80].)X
-4178(We)X
-4324(then)X
-2706 3008(enhanced)N
-3037(the)X
-3161(algorithm)X
-3498(to)X
-3586(handle)X
-3826(page)X
-4004(over\257ows)X
-4346(and)X
-2706 3096(large)N
-2900(key)X
-3049(handling)X
-3362(with)X
-3537(a)X
-3606(single)X
-3830(mechanism,)X
-4248(named)X
-2706 3184(buddy-in-waiting.)N
-3 f
-2975 3338(Existing)N
-3274(UNIX)X
-3499(Hashing)X
-3802(Techniques)X
-1 f
-2878 3470(Over)N
-3076(the)X
-3210(last)X
-3357(decade,)X
-3637(several)X
-3901(dynamic)X
-4213(hashing)X
-2706 3558(schemes)N
-3000(have)X
-3174(been)X
-3348(developed)X
-3700(for)X
-3816(the)X
-3936(UNIX)X
-4159(timeshar-)X
-2706 3646(ing)N
-2856(system,)X
-3146(starting)X
-3433(with)X
-3622(the)X
-3767(inclusion)X
-4107(of)X
-2 f
-4221(dbm)X
-1 f
-4359(,)X
-4426(a)X
-2706 3734(minimal)N
-3008(database)X
-3321(library)X
-3571(written)X
-3834(by)X
-3950(Ken)X
-4120(Thompson)X
-2706 3822([THOM90],)N
-3141(in)X
-3248(the)X
-3391(Seventh)X
-3694(Edition)X
-3974(UNIX)X
-4220(system.)X
-2706 3910(Since)N
-2916(then,)X
-3106(an)X
-3214(extended)X
-3536(version)X
-3804(of)X
-3903(the)X
-4032(same)X
-4228(library,)X
-2 f
-2706 3998(ndbm)N
-1 f
-2884(,)X
-2933(and)X
-3078(a)X
-3142(public-domain)X
-3637(clone)X
-3839(of)X
-3934(the)X
-4060(latter,)X
-2 f
-4273(sdbm)X
-1 f
-4442(,)X
-2706 4086(have)N
-2902(been)X
-3098(developed.)X
-3491(Another)X
-3797 0.1645(interface-compatible)AX
-2706 4174(library)N
-2 f
-2950(gdbm)X
-1 f
-3128(,)X
-3178(was)X
-3333(recently)X
-3622(made)X
-3826(available)X
-4145(as)X
-4241(part)X
-4395(of)X
-2706 4262(the)N
-2829(Free)X
-2997(Software)X
-3312(Foundation's)X
-3759(\(FSF\))X
-3970(software)X
-4271(distri-)X
-2706 4350(bution.)N
-2878 4464(All)N
-3017(of)X
-3121(these)X
-3323(implementations)X
-3893(are)X
-4029(based)X
-4248(on)X
-4364(the)X
-2706 4552(idea)N
-2871(of)X
-2969(revealing)X
-3299(just)X
-3445(enough)X
-3711(bits)X
-3856(of)X
-3953(a)X
-4019(hash)X
-4196(value)X
-4400(to)X
-2706 4640(locate)N
-2920(a)X
-2978(page)X
-3151(in)X
-3234(a)X
-3291(single)X
-3503(access.)X
-3770(While)X
-2 f
-3987(dbm/ndbm)X
-1 f
-4346(and)X
-2 f
-2706 4728(sdbm)N
-1 f
-2908(map)X
-3079(the)X
-3210(hash)X
-3390(value)X
-3597(directly)X
-3874(to)X
-3968(a)X
-4036(disk)X
-4201(address,)X
-2 f
-2706 4816(gdbm)N
-1 f
-2921(uses)X
-3096(the)X
-3231(hash)X
-3414(value)X
-3624(to)X
-3722(index)X
-3936(into)X
-4096(a)X
-2 f
-4168(directory)X
-1 f
-2706 4904([ENB88])N
-3020(containing)X
-3378(disk)X
-3531(addresses.)X
-2878 5018(The)N
-2 f
-3033(hsearch)X
-1 f
-3317(routines)X
-3605(in)X
-3697(System)X
-3962(V)X
-4049(are)X
-4177(designed)X
-2706 5106(to)N
-2804(provide)X
-3085(memory-resident)X
-3669(hash)X
-3852(tables.)X
-4115(Since)X
-4328(data)X
-2706 5194(access)N
-2948(does)X
-3131(not)X
-3269(require)X
-3533(disk)X
-3702(access,)X
-3964(simple)X
-4213(hashing)X
-2706 5282(schemes)N
-3010(which)X
-3238(may)X
-3408(require)X
-3667(multiple)X
-3964(probes)X
-4209(into)X
-4364(the)X
-2706 5370(table)N
-2889(are)X
-3015(used.)X
-3209(A)X
-3294(more)X
-3486(interesting)X
-3851(version)X
-4114(of)X
-2 f
-4208(hsearch)X
-1 f
-2706 5458(is)N
-2784(a)X
-2845(public)X
-3070(domain)X
-3335(library,)X
-2 f
-3594(dynahash)X
-1 f
-3901(,)X
-3945(that)X
-4089(implements)X
-2706 5546(Larson's)N
-3036(in-memory)X
-3440(adaptation)X
-3822([LAR88])X
-4164(of)X
-4279(linear)X
-2706 5634(hashing)N
-2975([LIT80].)X
-3 f
-720 5960(USENIX)N
-9 f
-1042(-)X
-3 f
-1106(Winter)X
-1371('91)X
-9 f
-1498(-)X
-3 f
-1562(Dallas,)X
-1815(TX)X
-1 f
-4424(1)X
-
-2 p
-%%Page: 2 2
-10 s 10 xH 0 xS 1 f
-3 f
-432 258(A)N
-510(New)X
-682(Hashing)X
-985(Package)X
-1290(for)X
-1413(UNIX)X
-3663(Seltzer)X
-3920(&)X
-4007(Yigit)X
-2 f
-1074 538(dbm)N
-1 f
-1232(and)X
-2 f
-1368(ndbm)X
-1 f
-604 670(The)N
-2 f
-760(dbm)X
-1 f
-928(and)X
-2 f
-1074(ndbm)X
-1 f
-1282(library)X
-1526(implementations)X
-2089(are)X
-432 758(based)N
-667(on)X
-799(the)X
-949(same)X
-1166(algorithm)X
-1529(by)X
-1661(Ken)X
-1846(Thompson)X
-432 846([THOM90,)N
-824(TOR88,)X
-1113(WAL84],)X
-1452(but)X
-1582(differ)X
-1789(in)X
-1879(their)X
-2054(pro-)X
-432 934(grammatic)N
-801(interfaces.)X
-1160(The)X
-1311(latter)X
-1502(is)X
-1581(a)X
-1643(modi\256ed)X
-1952(version)X
-432 1022(of)N
-533(the)X
-665(former)X
-918(which)X
-1148(adds)X
-1328(support)X
-1601(for)X
-1728(multiple)X
-2027(data-)X
-432 1110(bases)N
-634(to)X
-724(be)X
-828(open)X
-1011(concurrently.)X
-1484(The)X
-1636(discussion)X
-1996(of)X
-2090(the)X
-432 1198(algorithm)N
-774(that)X
-925(follows)X
-1196(is)X
-1280(applicable)X
-1640(to)X
-1732(both)X
-2 f
-1904(dbm)X
-1 f
-2072(and)X
-2 f
-432 1286(ndbm)N
-1 f
-610(.)X
-604 1400(The)N
-760(basic)X
-956(structure)X
-1268(of)X
-2 f
-1366(dbm)X
-1 f
-1535(calls)X
-1712(for)X
-1836(\256xed-sized)X
-432 1488(disk)N
-612(blocks)X
-868(\(buckets\))X
-1214(and)X
-1377(an)X
-2 f
-1499(access)X
-1 f
-1755(function)X
-2068(that)X
-432 1576(maps)N
-623(a)X
-681(key)X
-819(to)X
-902(a)X
-959(bucket.)X
-1234(The)X
-1380(interface)X
-1683(routines)X
-1962(use)X
-2090(the)X
-2 f
-432 1664(access)N
-1 f
-673(function)X
-970(to)X
-1062(obtain)X
-1292(the)X
-1420(appropriate)X
-1816(bucket)X
-2060(in)X
-2152(a)X
-432 1752(single)N
-643(disk)X
-796(access.)X
-604 1866(Within)N
-869(the)X
-2 f
-1010(access)X
-1 f
-1263(function,)X
-1593(a)X
-1672(bit-randomizing)X
-432 1954(hash)N
-610(function)X
-2 f
-8 s
-877 1929(2)N
-1 f
-10 s
-940 1954(is)N
-1024(used)X
-1202(to)X
-1294(convert)X
-1565(a)X
-1631(key)X
-1777(into)X
-1931(a)X
-1997(32-bit)X
-432 2042(hash)N
-605(value.)X
-825(Out)X
-971(of)X
-1064(these)X
-1254(32)X
-1359(bits,)X
-1519(only)X
-1686(as)X
-1778(many)X
-1981(bits)X
-2121(as)X
-432 2130(necessary)N
-773(are)X
-900(used)X
-1075(to)X
-1165(determine)X
-1514(the)X
-1639(particular)X
-1974(bucket)X
-432 2218(on)N
-533(which)X
-750(a)X
-807(key)X
-944(resides.)X
-1228(An)X
-1347(in-memory)X
-1724(bitmap)X
-1967(is)X
-2041(used)X
-432 2306(to)N
-533(determine)X
-893(how)X
-1070(many)X
-1287(bits)X
-1441(are)X
-1579(required.)X
-1905(Each)X
-2104(bit)X
-432 2394(indicates)N
-746(whether)X
-1033(its)X
-1136(associated)X
-1494(bucket)X
-1736(has)X
-1871(been)X
-2051(split)X
-432 2482(yet)N
-562(\(a)X
-657(0)X
-728(indicating)X
-1079(that)X
-1230(the)X
-1359(bucket)X
-1604(has)X
-1742(not)X
-1875(yet)X
-2004(split\).)X
-432 2570(The)N
-590(use)X
-730(of)X
-830(the)X
-961(hash)X
-1141(function)X
-1441(and)X
-1590(the)X
-1720(bitmap)X
-1974(is)X
-2059(best)X
-432 2658(described)N
-769(by)X
-878(stepping)X
-1177(through)X
-1454(database)X
-1759(creation)X
-2046(with)X
-432 2746(multiple)N
-718(invocations)X
-1107(of)X
-1194(a)X
-2 f
-1250(store)X
-1 f
-1430(operation.)X
-604 2860(Initially,)N
-906(the)X
-1033(hash)X
-1209(table)X
-1394(contains)X
-1690(a)X
-1755(single)X
-1974(bucket)X
-432 2948(\(bucket)N
-711(0\),)X
-836(the)X
-972(bit)X
-1094(map)X
-1270(contains)X
-1575(a)X
-1649(single)X
-1878(bit)X
-2000(\(bit)X
-2148(0)X
-432 3036(corresponding)N
-913(to)X
-997(bucket)X
-1233(0\),)X
-1342(and)X
-1480(0)X
-1542(bits)X
-1699(of)X
-1788(a)X
-1846(hash)X
-2014(value)X
-432 3124(are)N
-560(examined)X
-901(to)X
-992(determine)X
-1342(where)X
-1568(a)X
-1633(key)X
-1778(is)X
-1860(placed)X
-2099(\(in)X
-432 3212(bucket)N
-670(0\).)X
-801(When)X
-1017(bucket)X
-1255(0)X
-1319(is)X
-1396(full,)X
-1551(its)X
-1650(bit)X
-1758(in)X
-1844(the)X
-1966(bitmap)X
-432 3300(\(bit)N
-564(0\))X
-652(is)X
-726(set,)X
-856(and)X
-993(its)X
-1089(contents)X
-1377(are)X
-1497(split)X
-1655(between)X
-1943(buckets)X
-432 3388(0)N
-499(and)X
-641(1,)X
-727(by)X
-833(considering)X
-1233(the)X
-1357(0)X
-2 f
-7 s
-3356(th)Y
-10 s
-1 f
-1480 3388(bit)N
-1590(\(the)X
-1741(lowest)X
-1976(bit)X
-2086(not)X
-432 3476(previously)N
-800(examined\))X
-1169(of)X
-1266(the)X
-1393(hash)X
-1569(value)X
-1772(for)X
-1895(each)X
-2072(key)X
-432 3564(within)N
-668(the)X
-798(bucket.)X
-1064(Given)X
-1292(a)X
-1359(well-designed)X
-1840(hash)X
-2018(func-)X
-432 3652(tion,)N
-613(approximately)X
-1112(half)X
-1273(of)X
-1376(the)X
-1510(keys)X
-1693(will)X
-1853(have)X
-2041(hash)X
-432 3740(values)N
-666(with)X
-837(the)X
-964(0)X
-2 f
-7 s
-3708(th)Y
-10 s
-1 f
-1090 3740(bit)N
-1203(set.)X
-1341(All)X
-1471(such)X
-1646(keys)X
-1821(and)X
-1965(associ-)X
-432 3828(ated)N
-586(data)X
-740(are)X
-859(moved)X
-1097(to)X
-1179(bucket)X
-1413(1,)X
-1493(and)X
-1629(the)X
-1747(rest)X
-1883(remain)X
-2126(in)X
-432 3916(bucket)N
-666(0.)X
-604 4030(After)N
-804(this)X
-949(split,)X
-1135(the)X
-1262(\256le)X
-1393(now)X
-1560(contains)X
-1856(two)X
-2005(buck-)X
-432 4118(ets,)N
-562(and)X
-699(the)X
-818(bitmap)X
-1061(contains)X
-1349(three)X
-1530(bits:)X
-1687(the)X
-1805(0)X
-2 f
-7 s
-4086(th)Y
-10 s
-1 f
-1922 4118(bit)N
-2026(is)X
-2099(set)X
-432 4206(to)N
-525(indicate)X
-810(a)X
-876(bucket)X
-1120(0)X
-1190(split)X
-1357(when)X
-1561(no)X
-1671(bits)X
-1816(of)X
-1913(the)X
-2041(hash)X
-432 4294(value)N
-648(are)X
-789(considered,)X
-1199(and)X
-1357(two)X
-1519(more)X
-1726(unset)X
-1937(bits)X
-2094(for)X
-432 4382(buckets)N
-706(0)X
-775(and)X
-920(1.)X
-1029(The)X
-1183(placement)X
-1542(of)X
-1638(an)X
-1742(incoming)X
-2072(key)X
-432 4470(now)N
-604(requires)X
-897(examination)X
-1327(of)X
-1428(the)X
-1560(0)X
-2 f
-7 s
-4438(th)Y
-10 s
-1 f
-1691 4470(bit)N
-1809(of)X
-1910(the)X
-2041(hash)X
-432 4558(value,)N
-667(and)X
-824(the)X
-963(key)X
-1119(is)X
-1212(placed)X
-1462(either)X
-1685(in)X
-1787(bucket)X
-2041(0)X
-2121(or)X
-432 4646(bucket)N
-674(1.)X
-782(If)X
-864(either)X
-1075(bucket)X
-1317(0)X
-1385(or)X
-1480(bucket)X
-1722(1)X
-1790(\256lls)X
-1937(up,)X
-2064(it)X
-2135(is)X
-432 4734(split)N
-598(as)X
-693(before,)X
-947(its)X
-1050(bit)X
-1162(is)X
-1243(set)X
-1360(in)X
-1450(the)X
-1576(bitmap,)X
-1846(and)X
-1990(a)X
-2054(new)X
-432 4822(set)N
-541(of)X
-628(unset)X
-817(bits)X
-952(are)X
-1071(added)X
-1283(to)X
-1365(the)X
-1483(bitmap.)X
-604 4936(Each)N
-791(time)X
-959(we)X
-1079(consider)X
-1376(a)X
-1437(new)X
-1596(bit)X
-1705(\(bit)X
-1841(n\),)X
-1953(we)X
-2072(add)X
-432 5024(2)N
-2 f
-7 s
-4992(n)Y
-9 f
-509(+)X
-1 f
-540(1)X
-10 s
-595 5024(bits)N
-737(to)X
-826(the)X
-951(bitmap)X
-1199(and)X
-1341(obtain)X
-1567(2)X
-2 f
-7 s
-4992(n)Y
-9 f
-1644(+)X
-1 f
-1675(1)X
-10 s
-1729 5024(more)N
-1920(address-)X
-432 5112(able)N
-595(buckets)X
-869(in)X
-960(the)X
-1087(\256le.)X
-1258(As)X
-1376(a)X
-1441(result,)X
-1668(the)X
-1795(bitmap)X
-2045(con-)X
-432 5200(tains)N
-618(the)X
-751(previous)X
-1062(2)X
-2 f
-7 s
-5168(n)Y
-9 f
-1139(+)X
-1 f
-1170(1)X
-2 f
-10 s
-9 f
-5200(-)Y
-1 f
-1242(1)X
-1317(bits)X
-1467(\(1)X
-2 f
-9 f
-1534(+)X
-1 f
-1578(2)X
-2 f
-9 f
-(+)S
-1 f
-1662(4)X
-2 f
-9 f
-(+)S
-1 f
-1746(...)X
-2 f
-9 f
-(+)S
-1 f
-1850(2)X
-2 f
-7 s
-5168(n)Y
-10 s
-1 f
-1931 5200(\))N
-1992(which)X
-432 5288(trace)N
-649(the)X
-807(entire)X
-2 f
-1050(split)X
-1247(history)X
-1 f
-1529(of)X
-1656(the)X
-1813(addressable)X
-16 s
-432 5433 MXY
-864 0 Dl
-2 f
-8 s
-472 5488(2)N
-1 f
-9 s
-523 5513(This)N
-670(bit-randomizing)X
-1153(property)X
-1416(is)X
-1482(important)X
-1780(to)X
-1854(obtain)X
-2052(radi-)X
-432 5593(cally)N
-599(different)X
-874(hash)X
-1033(values)X
-1244(for)X
-1355(nearly)X
-1562(identical)X
-1836(keys,)X
-2012(which)X
-432 5673(in)N
-506(turn)X
-640(avoids)X
-846(clustering)X
-1148(of)X
-1226(such)X
-1376(keys)X
-1526(in)X
-1600(a)X
-1650(single)X
-1840(bucket.)X
-10 s
-2418 538(buckets.)N
-2590 652(Given)N
-2809(a)X
-2868(key)X
-3007(and)X
-3146(the)X
-3267(bitmap)X
-3512(created)X
-3768(by)X
-3871(this)X
-4009(algo-)X
-2418 740(rithm,)N
-2638(we)X
-2759(\256rst)X
-2910(examine)X
-3209(bit)X
-3320(0)X
-3386(of)X
-3479(the)X
-3603(bitmap)X
-3851(\(the)X
-4002(bit)X
-4112(to)X
-2418 828(consult)N
-2673(when)X
-2871(0)X
-2934(bits)X
-3072(of)X
-3162(the)X
-3283(hash)X
-3453(value)X
-3650(are)X
-3772(being)X
-3973(exam-)X
-2418 916(ined\).)N
-2631(If)X
-2713(it)X
-2785(is)X
-2866(set)X
-2982(\(indicating)X
-3356(that)X
-3503(the)X
-3628(bucket)X
-3869(split\),)X
-4080(we)X
-2418 1004(begin)N
-2617(considering)X
-3012(the)X
-3131(bits)X
-3267(of)X
-3355(the)X
-3473(32-bit)X
-3684(hash)X
-3851(value.)X
-4085(As)X
-2418 1092(bit)N
-2525(n)X
-2587(is)X
-2662(revealed,)X
-2977(a)X
-3035(mask)X
-3226(equal)X
-3422(to)X
-3506(2)X
-2 f
-7 s
-1060(n)Y
-9 f
-3583(+)X
-1 f
-3614(1)X
-2 f
-10 s
-9 f
-1092(-)Y
-1 f
-3686(1)X
-3748(will)X
-3894(yield)X
-4076(the)X
-2418 1180(current)N
-2675(bucket)X
-2918(address.)X
-3228(Adding)X
-3496(2)X
-2 f
-7 s
-1148(n)Y
-9 f
-3573(+)X
-1 f
-3604(1)X
-2 f
-10 s
-9 f
-1180(-)Y
-1 f
-3676(1)X
-3744(to)X
-3834(the)X
-3960(bucket)X
-2418 1268(address)N
-2701(identi\256es)X
-3035(which)X
-3272(bit)X
-3397(in)X
-3500(the)X
-3639(bitmap)X
-3902(must)X
-4098(be)X
-2418 1356(checked.)N
-2743(We)X
-2876(continue)X
-3173(revealing)X
-3493(bits)X
-3628(of)X
-3715(the)X
-3833(hash)X
-4000(value)X
-2418 1444(until)N
-2591(all)X
-2698(set)X
-2814(bits)X
-2955(in)X
-3043(the)X
-3167(bitmap)X
-3415(are)X
-3540(exhausted.)X
-3907(The)X
-4058(fol-)X
-2418 1532(lowing)N
-2682(algorithm,)X
-3055(a)X
-3133(simpli\256cation)X
-3614(of)X
-3723(the)X
-3863(algorithm)X
-2418 1620(due)N
-2565(to)X
-2658(Ken)X
-2823(Thompson)X
-3196([THOM90,)X
-3590(TOR88],)X
-3908(uses)X
-4076(the)X
-2418 1708(hash)N
-2625(value)X
-2839(and)X
-2995(the)X
-3133(bitmap)X
-3395(to)X
-3497(calculate)X
-3823(the)X
-3960(bucket)X
-2418 1796(address)N
-2679(as)X
-2766(discussed)X
-3093(above.)X
-0(Courier)xf 0 f
-1 f
-0 f
-8 s
-2418 2095(hash)N
-2608(=)X
-2684 -0.4038(calchash\(key\);)AX
-2418 2183(mask)N
-2608(=)X
-2684(0;)X
-2418 2271(while)N
-2646 -0.4018(\(isbitset\(\(hash)AX
-3254(&)X
-3330(mask\))X
-3558(+)X
-3634(mask\)\))X
-2706 2359(mask)N
-2896(=)X
-2972(\(mask)X
-3200(<<)X
-3314(1\))X
-3428(+)X
-3504(1;)X
-2418 2447(bucket)N
-2684(=)X
-2760(hash)X
-2950(&)X
-3026(mask;)X
-2 f
-10 s
-3211 2812(sdbm)N
-1 f
-2590 2944(The)N
-2 f
-2738(sdbm)X
-1 f
-2930(library)X
-3167(is)X
-3243(a)X
-3302(public-domain)X
-3791(clone)X
-3987(of)X
-4076(the)X
-2 f
-2418 3032(ndbm)N
-1 f
-2638(library,)X
-2914(developed)X
-3286(by)X
-3408(Ozan)X
-3620(Yigit)X
-3826(to)X
-3929(provide)X
-2 f
-2418 3120(ndbm)N
-1 f
-2596('s)X
-2692(functionality)X
-3139(under)X
-3359(some)X
-3565(versions)X
-3869(of)X
-3973(UNIX)X
-2418 3208(that)N
-2559(exclude)X
-2830(it)X
-2894(for)X
-3008(licensing)X
-3317(reasons)X
-3578([YIG89].)X
-3895(The)X
-4040(pro-)X
-2418 3296(grammer)N
-2735(interface,)X
-3064(and)X
-3207(the)X
-3332(basic)X
-3524(structure)X
-3832(of)X
-2 f
-3926(sdbm)X
-1 f
-4121(is)X
-2418 3384(identical)N
-2733(to)X
-2 f
-2834(ndbm)X
-1 f
-3051(but)X
-3192(internal)X
-3476(details)X
-3723(of)X
-3828(the)X
-2 f
-3964(access)X
-1 f
-2418 3472(function,)N
-2726(such)X
-2894(as)X
-2982(the)X
-3101(calculation)X
-3474(of)X
-3561(the)X
-3679(bucket)X
-3913(address,)X
-2418 3560(and)N
-2563(the)X
-2690(use)X
-2825(of)X
-2920(different)X
-3225(hash)X
-3400(functions)X
-3726(make)X
-3928(the)X
-4054(two)X
-2418 3648(incompatible)N
-2856(at)X
-2934(the)X
-3052(database)X
-3349(level.)X
-2590 3762(The)N
-2 f
-2740(sdbm)X
-1 f
-2934(library)X
-3173(is)X
-3251(based)X
-3458(on)X
-3562(a)X
-3622(simpli\256ed)X
-3965(imple-)X
-2418 3850(mentation)N
-2778(of)X
-2885(Larson's)X
-3206(1978)X
-2 f
-3406(dynamic)X
-3717(hashing)X
-1 f
-4009(algo-)X
-2418 3938(rithm)N
-2616(including)X
-2943(the)X
-2 f
-3066(re\256nements)X
-3461(and)X
-3605(variations)X
-1 f
-3953(of)X
-4044(sec-)X
-2418 4026(tion)N
-2562(5)X
-2622([LAR78].)X
-2956(Larson's)X
-3257(original)X
-3526(algorithm)X
-3857(calls)X
-4024(for)X
-4138(a)X
-2418 4114(forest)N
-2635(of)X
-2736(binary)X
-2975(hash)X
-3156(trees)X
-3341(that)X
-3494(are)X
-3626(accessed)X
-3941(by)X
-4054(two)X
-2418 4202(hash)N
-2586(functions.)X
-2925(The)X
-3071(\256rst)X
-3216(hash)X
-3384(function)X
-3672(selects)X
-3907(a)X
-3964(partic-)X
-2418 4290(ular)N
-2571(tree)X
-2720(within)X
-2952(the)X
-3078(forest.)X
-3309(The)X
-3462(second)X
-3713(hash)X
-3887(function,)X
-2418 4378(which)N
-2659(is)X
-2757(required)X
-3070(to)X
-3177(be)X
-3297(a)X
-3377(boolean)X
-3675(pseudo-random)X
-2418 4466(number)N
-2687(generator)X
-3015(that)X
-3159(is)X
-3236(seeded)X
-3479(by)X
-3583(the)X
-3705(key,)X
-3865(is)X
-3942(used)X
-4112(to)X
-2418 4554(traverse)N
-2733(the)X
-2890(tree)X
-3070(until)X
-3275(internal)X
-3579(\(split\))X
-3829(nodes)X
-4075(are)X
-2418 4642(exhausted)N
-2763(and)X
-2903(an)X
-3003(external)X
-3286(\(non-split\))X
-3648(node)X
-3827(is)X
-3903(reached.)X
-2418 4730(The)N
-2571(bucket)X
-2813(addresses)X
-3149(are)X
-3276(stored)X
-3500(directly)X
-3772(in)X
-3861(the)X
-3986(exter-)X
-2418 4818(nal)N
-2536(nodes.)X
-2590 4932(Larson's)N
-2903(re\256nements)X
-3309(are)X
-3440(based)X
-3655(on)X
-3767(the)X
-3897(observa-)X
-2418 5020(tion)N
-2570(that)X
-2718(the)X
-2844(nodes)X
-3059(can)X
-3199(be)X
-3303(represented)X
-3702(by)X
-3809(a)X
-3872(single)X
-4090(bit)X
-2418 5108(that)N
-2569(is)X
-2653(set)X
-2773(for)X
-2898(internal)X
-3174(nodes)X
-3392(and)X
-3539(not)X
-3672(set)X
-3791(for)X
-3915(external)X
-2418 5196(nodes,)N
-2652(resulting)X
-2959(in)X
-3048(a)X
-3111(radix)X
-3303(search)X
-3536(trie.)X
-3709(Figure)X
-3944(1)X
-4010(illus-)X
-2418 5284(trates)N
-2621(this.)X
-2804(Nodes)X
-3037(A)X
-3123(and)X
-3267(B)X
-3348(are)X
-3475(internal)X
-3748(\(split\))X
-3967(nodes,)X
-2418 5372(thus)N
-2573(having)X
-2813(no)X
-2915(bucket)X
-3151(addresses)X
-3480(associated)X
-3831(with)X
-3994(them.)X
-2418 5460(Instead,)N
-2693(the)X
-2814(external)X
-3096(nodes)X
-3306(\(C,)X
-3429(D,)X
-3530(and)X
-3669(E\))X
-3768(each)X
-3938(need)X
-4112(to)X
-2418 5548(refer)N
-2594(to)X
-2679(a)X
-2738(bucket)X
-2975(address.)X
-3279(These)X
-3494(bucket)X
-3731(addresses)X
-4062(can)X
-2418 5636(be)N
-2529(stored)X
-2760(in)X
-2857(the)X
-2990(trie)X
-3132(itself)X
-3327(where)X
-3559(the)X
-3691(subtries)X
-3974(would)X
-3 f
-432 5960(2)N
-2970(USENIX)X
-9 f
-3292(-)X
-3 f
-3356(Winter)X
-3621('91)X
-9 f
-3748(-)X
-3 f
-3812(Dallas,)X
-4065(TX)X
-
-3 p
-%%Page: 3 3
-0(Courier)xf 0 f
-10 s 10 xH 0 xS 0 f
-3 f
-720 258(Seltzer)N
-977(&)X
-1064(Yigit)X
-3278(A)X
-3356(New)X
-3528(Hashing)X
-3831(Package)X
-4136(for)X
-4259(UNIX)X
-1 f
-720 538(live)N
-862(if)X
-933(they)X
-1092(existed)X
-1340([KNU68].)X
-1709(For)X
-1841(example,)X
-2154(if)X
-2224(nodes)X
-2432(F)X
-720 626(and)N
-858(G)X
-938(were)X
-1117(the)X
-1237(children)X
-1522(of)X
-1610(node)X
-1787(C,)X
-1881(the)X
-2000(bucket)X
-2235(address)X
-720 714(L00)N
-886(could)X
-1101(reside)X
-1330(in)X
-1429(the)X
-1563(bits)X
-1714(that)X
-1870(will)X
-2030(eventually)X
-2400(be)X
-720 802(used)N
-887(to)X
-969(store)X
-1145(nodes)X
-1352(F)X
-1416(and)X
-1552(G)X
-1630(and)X
-1766(all)X
-1866(their)X
-2033(children.)X
-10 f
-720 890 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
-3 f
-1894 2247(L1)N
-784 1925(A)N
-1431(E)X
-1106 2247(D)N
-1428 1281(C)N
-1109 1603(B)N
-1884 1930(L01)N
-1879 1286(L00)N
-1221 1814(1)N
-903 2131(1)N
-1221 1402(0)N
-903 1714(0)N
-1 Dt
-1397 1821 MXY
--8 -32 Dl
--5 19 Dl
--20 6 Dl
-33 7 Dl
--187 -182 Dl
-1397 1322 MXY
--33 7 Dl
-20 6 Dl
-5 19 Dl
-8 -32 Dl
--187 182 Dl
-1069 1639 MXY
--32 7 Dl
-20 6 Dl
-5 19 Dl
-7 -32 Dl
--186 182 Dl
-1374 1891 MXY
-185 Dc
-1779 2133 MXY
-0 161 Dl
-322 0 Dl
-0 -161 Dl
--322 0 Dl
-1811 MY
-0 161 Dl
-322 0 Dl
-0 -161 Dl
--322 0 Dl
-1166 MY
-0 161 Dl
-322 0 Dl
-0 -161 Dl
--322 0 Dl
-1052 2213 MXY
-185 Dc
-1569 MY
-185 Dc
-720 1881 MXY
-185 Dc
-1779 2213 MXY
--28 -17 Dl
-10 17 Dl
--10 18 Dl
-28 -18 Dl
--543 0 Dl
-1769 1891 MXY
--28 -18 Dl
-10 18 Dl
--10 18 Dl
-28 -18 Dl
--201 0 Dl
-1364 1247 MXY
-185 Dc
-1769 MX
--28 -18 Dl
-10 18 Dl
--10 18 Dl
-28 -18 Dl
--201 0 Dl
-1064 2143 MXY
--7 -32 Dl
--5 19 Dl
--20 6 Dl
-32 7 Dl
--181 -181 Dl
-3 Dt
--1 Ds
-8 s
-720 2482(Figure)N
-925(1:)X
-1 f
-1002(Radix)X
-1179(search)X
-1365(trie)X
-1474(with)X
-1612(internal)X
-1831(nodes)X
-2004(A)X
-2074(and)X
-2189(B,)X
-2271(external)X
-720 2570(nodes)N
-891(C,)X
-972(D,)X
-1056(and)X
-1170(E,)X
-1247(and)X
-1361(bucket)X
-1553(addresses)X
-1819(stored)X
-1997(in)X
-2069(the)X
-2168(unused)X
-2370(por-)X
-720 2658(tion)N
-836(of)X
-905(the)X
-999(trie.)X
-10 s
-10 f
-720 2922 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
-1 f
-892 3124(Further)N
-1153(simpli\256cations)X
-1647(of)X
-1738(the)X
-1860(above)X
-2076([YIG89])X
-2377(are)X
-720 3212(possible.)N
-1038(Using)X
-1265(a)X
-1337(single)X
-1564(radix)X
-1765(trie)X
-1908(to)X
-2006(avoid)X
-2219(the)X
-2352(\256rst)X
-720 3300(hash)N
-904(function,)X
-1227(replacing)X
-1562(the)X
-1696(pseudo-random)X
-2231(number)X
-720 3388(generator)N
-1052(with)X
-1222(a)X
-1286(well)X
-1452(designed,)X
-1785(bit-randomizing)X
-2329(hash)X
-720 3476(function,)N
-1053(and)X
-1215(using)X
-1434(the)X
-1578(portion)X
-1855(of)X
-1967(the)X
-2110(hash)X
-2302(value)X
-720 3564(exposed)N
-1021(during)X
-1268(the)X
-1404(trie)X
-1549(traversal)X
-1864(as)X
-1969(a)X
-2042(direct)X
-2262(bucket)X
-720 3652(address)N
-990(results)X
-1228(in)X
-1319(an)X
-2 f
-1424(access)X
-1 f
-1663(function)X
-1959(that)X
-2108(works)X
-2333(very)X
-720 3740(similar)N
-974(to)X
-1068(Thompson's)X
-1499(algorithm)X
-1841(above.)X
-2084(The)X
-2240(follow-)X
-720 3828(ing)N
-847(algorithm)X
-1183(uses)X
-1346(the)X
-1469(hash)X
-1641(value)X
-1840(to)X
-1927(traverse)X
-2206(a)X
-2266(linear-)X
-720 3916(ized)N
-874(radix)X
-1059(trie)X
-2 f
-8 s
-1166 3891(3)N
-1 f
-10 s
-1218 3916(starting)N
-1478(at)X
-1556(the)X
-1674(0)X
-2 f
-7 s
-3884(th)Y
-10 s
-1 f
-1791 3916(bit.)N
-0 f
-8 s
-720 4215(tbit)N
-910(=)X
-986(0;)X
-1296(/*)X
-1410(radix)X
-1638(trie)X
-1828(index)X
-2056(*/)X
-720 4303(hbit)N
-910(=)X
-986(0;)X
-1296(/*)X
-1410(hash)X
-1600(bit)X
-1752(index)X
-2056(*/)X
-720 4391(mask)N
-910(=)X
-986(0;)X
-720 4479(hash)N
-910(=)X
-986 -0.4038(calchash\(key\);)AX
-720 4655(for)N
-872(\(mask)X
-1100(=)X
-1176(0;)X
-910 4743 -0.4018(isbitset\(tbit\);)AN
-910 4831(mask)N
-1100(=)X
-1176(\(mask)X
-1404(<<)X
-1518(1\))X
-1632(+)X
-1708(1\))X
-1008 4919(if)N
-1122(\(hash)X
-1350(&)X
-1426(\(1)X
-1540(<<)X
-1654 -0.4219(hbit++\)\)\))AX
-1160 5007(/*)N
-1274(right)X
-1502(son)X
-1692(*/)X
-1160 5095(tbit)N
-1350(=)X
-1426(2)X
-1502(*)X
-1578(tbit)X
-1768(+)X
-1844(2;)X
-1008 5183(else)N
-1 f
-16 s
-720 5353 MXY
-864 0 Dl
-2 f
-8 s
-760 5408(3)N
-1 f
-9 s
-818 5433(A)N
-896(linearized)X
-1206(radix)X
-1380(trie)X
-1502(is)X
-1576(merely)X
-1802(an)X
-1895(array)X
-2068(representation)X
-720 5513(of)N
-800(the)X
-908(radix)X
-1076(search)X
-1280(trie)X
-1396(described)X
-1692(above.)X
-1920(The)X
-2052(children)X
-2308(of)X
-2388(the)X
-720 5593(node)N
-885(with)X
-1038(index)X
-1223(i)X
-1267(can)X
-1391(be)X
-1483(found)X
-1675(at)X
-1751(the)X
-1863(nodes)X
-2055(indexed)X
-2307(2*i+1)X
-720 5673(and)N
-842(2*i+2.)X
-0 f
-8 s
-3146 538(/*)N
-3260(left)X
-3450(son)X
-3678(*/)X
-3146 626(tbit)N
-3336(=)X
-3412(2)X
-3488(*)X
-3564(tbit)X
-3754(+)X
-3830(1;)X
-2706 802(bucket)N
-2972(=)X
-3048(hash)X
-3238(&)X
-3314(mask;)X
-2 f
-10 s
-3495 1167(gdbm)N
-1 f
-2878 1299(The)N
-3027(gdbm)X
-3233(\(GNU)X
-3458(data)X
-3616(base)X
-3783(manager\))X
-4111(library)X
-4349(is)X
-4426(a)X
-2706 1387(UNIX)N
-2933(database)X
-3236(manager)X
-3539(written)X
-3792(by)X
-3897(Philip)X
-4112(A.)X
-4215(Nelson,)X
-2706 1475(and)N
-2848(made)X
-3048(available)X
-3364(as)X
-3457(a)X
-3518(part)X
-3668(of)X
-3760(the)X
-3883(FSF)X
-4040(software)X
-4342(dis-)X
-2706 1563(tribution.)N
-3052(The)X
-3207(gdbm)X
-3419(library)X
-3663(provides)X
-3969(the)X
-4097(same)X
-4292(func-)X
-2706 1651(tionality)N
-3028(of)X
-3151(the)X
-2 f
-3304(dbm)X
-1 f
-3442(/)X
-2 f
-3464(ndbm)X
-1 f
-3697(libraries)X
-4015([NEL90])X
-4360(but)X
-2706 1739(attempts)N
-3018(to)X
-3121(avoid)X
-3340(some)X
-3550(of)X
-3658(their)X
-3846(shortcomings.)X
-4337(The)X
-2706 1827(gdbm)N
-2918(library)X
-3162(allows)X
-3401(for)X
-3525(arbitrary-length)X
-4059(data,)X
-4242(and)X
-4387(its)X
-2706 1915(database)N
-3027(is)X
-3124(a)X
-3203(singular,)X
-3524(non-sparse)X
-2 f
-8 s
-3872 1890(4)N
-1 f
-10 s
-3947 1915(\256le.)N
-4112(The)X
-4280(gdbm)X
-2706 2003(library)N
-2947(also)X
-3103(includes)X
-2 f
-3396(dbm)X
-1 f
-3560(and)X
-2 f
-3702(ndbm)X
-1 f
-3906(compatible)X
-4288(inter-)X
-2706 2091(faces.)N
-2878 2205(The)N
-3025(gdbm)X
-3229(library)X
-3465(is)X
-3540(based)X
-3745(on)X
-2 f
-3847(extensible)X
-4189(hashing)X
-1 f
-4442(,)X
-2706 2293(a)N
-2766(dynamic)X
-3066(hashing)X
-3339(algorithm)X
-3674(by)X
-3778(Fagin)X
-3984(et)X
-4066(al)X
-4148([FAG79].)X
-2706 2381(This)N
-2881(algorithm)X
-3225(differs)X
-3467(from)X
-3655(the)X
-3785(previously)X
-4155(discussed)X
-2706 2469(algorithms)N
-3069(in)X
-3152(that)X
-3293(it)X
-3358(uses)X
-3517(a)X
-2 f
-3574(directory)X
-1 f
-3889(that)X
-4030(is)X
-4103(a)X
-4159(collapsed)X
-2706 2557(representation)N
-3192([ENB88])X
-3517(of)X
-3615(the)X
-3744(radix)X
-3940(search)X
-4177(trie)X
-4315(used)X
-2706 2645(by)N
-2 f
-2806(sdbm)X
-1 f
-2975(.)X
-10 f
-2706 2733 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
-3 f
-7 s
-3572 3761(L1)N
-1 Dt
-3485 3738 MXY
--20 -13 Dl
-7 13 Dl
--7 13 Dl
-20 -13 Dl
--400 0 Dl
-3180 3027 MXY
-136 Dc
-2706 3494 MXY
-136 Dc
-2950 3264 MXY
-136 Dc
-3738 MY
-136 Dc
-3485 2968 MXY
-0 118 Dl
-238 0 Dl
-0 -118 Dl
--238 0 Dl
-3442 MY
-0 119 Dl
-238 0 Dl
-0 -119 Dl
--238 0 Dl
-3679 MY
-0 119 Dl
-238 0 Dl
-0 -119 Dl
--238 0 Dl
-3187 3501 MXY
-136 Dc
-2963 3316 MXY
--24 5 Dl
-15 4 Dl
-4 15 Dl
-5 -24 Dl
--137 134 Dl
-3204 3083 MXY
--24 5 Dl
-15 4 Dl
-3 14 Dl
-6 -23 Dl
--137 133 Dl
-3204 3450 MXY
--6 -24 Dl
--3 14 Dl
--15 5 Dl
-24 5 Dl
--137 -134 Dl
-2842 3369(0)N
-3075 3139(0)N
-2842 3676(1)N
-3075 3443(1)N
-3562 3054(L00)N
-3565 3528(L01)N
-4197 2968 MXY
-0 118 Dl
-237 0 Dl
-0 -118 Dl
--237 0 Dl
-3205 MY
-0 119 Dl
-237 0 Dl
-0 -119 Dl
--237 0 Dl
-3561 MY
-0 118 Dl
-237 0 Dl
-0 -118 Dl
--237 0 Dl
-3960 2909 MXY
-0 237 Dl
-118 0 Dl
-0 -237 Dl
--118 0 Dl
-3146 MY
-0 237 Dl
-118 0 Dl
-0 -237 Dl
--118 0 Dl
-3383 MY
-0 237 Dl
-118 0 Dl
-0 -237 Dl
--118 0 Dl
-3620 MY
-0 237 Dl
-118 0 Dl
-0 -237 Dl
--118 0 Dl
-4197 3027 MXY
--21 -13 Dl
-8 13 Dl
--8 13 Dl
-21 -13 Dl
--119 0 Dl
-4197 3264 MXY
--21 -13 Dl
-8 13 Dl
--8 13 Dl
-21 -13 Dl
--119 0 Dl
-3501 MY
-59 0 Dl
-0 89 Dl
-4078 3738 MXY
-59 0 Dl
-0 -88 Dl
-4197 3590 MXY
--21 -13 Dl
-8 13 Dl
--8 13 Dl
-21 -13 Dl
--60 0 Dl
-4197 3650 MXY
--21 -13 Dl
-8 13 Dl
--8 13 Dl
-21 -13 Dl
--60 0 Dl
-3991 3050(00)N
-3991 3287(01)N
-3991 3524(10)N
-3991 3761(11)N
-4269 3050(L00)N
-4269 3287(L01)N
-4283 3643(L1)N
-3485 3501 MXY
--20 -13 Dl
-7 13 Dl
--7 13 Dl
-20 -13 Dl
--155 0 Dl
-3485 3027 MXY
--20 -13 Dl
-7 13 Dl
--7 13 Dl
-20 -13 Dl
--163 0 Dl
-2967 3687 MXY
--5 -24 Dl
--4 14 Dl
--15 4 Dl
-24 6 Dl
--141 -141 Dl
-3 Dt
--1 Ds
-8 s
-2706 4033(Figure)N
-2903(2:)X
-1 f
-2972(A)X
-3034(radix)X
-3181(search)X
-3359(trie)X
-3460(and)X
-3568(a)X
-3612(directory)X
-3858(representing)X
-4189(the)X
-4283(trie.)X
-10 s
-10 f
-2706 4209 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
-1 f
-2878 4411(In)N
-2968(this)X
-3106(algorithm,)X
-3460(a)X
-3519(directory)X
-3832(consists)X
-4108(of)X
-4198(a)X
-4256(search)X
-2706 4499(trie)N
-2847(of)X
-2947(depth)X
-2 f
-3158(n)X
-1 f
-3211(,)X
-3264(containing)X
-3635(2)X
-2 f
-7 s
-4467(n)Y
-10 s
-1 f
-3749 4499(bucket)N
-3996(addresses)X
-4337(\(i.e.)X
-2706 4587(each)N
-2897(element)X
-3194(of)X
-3304(the)X
-3445(trie)X
-3594(is)X
-3689(a)X
-3767(bucket)X
-4023(address\).)X
-4373(To)X
-2706 4675(access)N
-2935(the)X
-3056(hash)X
-3226(table,)X
-3425(a)X
-3483(32-bit)X
-3696(hash)X
-3865(value)X
-4061(is)X
-4136(calculated)X
-2706 4763(and)N
-2 f
-2861(n)X
-1 f
-2953(bits)X
-3107(of)X
-3213(the)X
-3350(value)X
-3563(are)X
-3701(used)X
-3886(to)X
-3986(index)X
-4202(into)X
-4364(the)X
-2706 4851(directory)N
-3018(to)X
-3102(obtain)X
-3324(a)X
-3382(bucket)X
-3618(address.)X
-3921(It)X
-3992(is)X
-4067(important)X
-4400(to)X
-2706 4939(note)N
-2866(that)X
-3008(multiple)X
-3296(entries)X
-3532(of)X
-3620(this)X
-3756(directory)X
-4067(may)X
-4226(contain)X
-2706 5027(the)N
-2833(same)X
-3026(bucket)X
-3268(address)X
-3537(as)X
-3632(a)X
-3696(result)X
-3902(of)X
-3997(directory)X
-4315(dou-)X
-2706 5115(bling)N
-2903(during)X
-3145(bucket)X
-3392(splitting.)X
-3706(Figure)X
-3948(2)X
-4021(illustrates)X
-4364(the)X
-2706 5203(relationship)N
-3126(between)X
-3436(a)X
-3513(typical)X
-3772(\(skewed\))X
-4108(search)X
-4355(trie)X
-2706 5291(and)N
-2850(its)X
-2953(directory)X
-3271(representation.)X
-3774(The)X
-3927(formation)X
-4270(of)X
-4364(the)X
-2706 5379(directory)N
-3016(shown)X
-3245(in)X
-3327(the)X
-3445(\256gure)X
-3652(is)X
-3725(as)X
-3812(follows.)X
-16 s
-2706 5593 MXY
-864 0 Dl
-2 f
-8 s
-2746 5648(4)N
-1 f
-9 s
-2796 5673(It)N
-2858(does)X
-3008(not)X
-3118(contain)X
-3348(holes.)X
-3 f
-10 s
-720 5960(USENIX)N
-9 f
-1042(-)X
-3 f
-1106(Winter)X
-1371('91)X
-9 f
-1498(-)X
-3 f
-1562(Dallas,)X
-1815(TX)X
-4424(3)X
-
-4 p
-%%Page: 4 4
-0(Courier)xf 0 f
-10 s 10 xH 0 xS 0 f
-3 f
-432 258(A)N
-510(New)X
-682(Hashing)X
-985(Package)X
-1290(for)X
-1413(UNIX)X
-3663(Seltzer)X
-3920(&)X
-4007(Yigit)X
-1 f
-604 538(Initially,)N
-937(there)X
-1158(is)X
-1271(one)X
-1446(slot)X
-1620(in)X
-1741(the)X
-1898(directory)X
-432 626(addressing)N
-802(a)X
-865(single)X
-1083(bucket.)X
-1364(The)X
-1515(depth)X
-1719(of)X
-1812(the)X
-1936(trie)X
-2069(is)X
-2148(0)X
-432 714(and)N
-577(0)X
-646(bits)X
-790(of)X
-886(each)X
-1063(hash)X
-1239(value)X
-1442(are)X
-1570(examined)X
-1910(to)X
-2000(deter-)X
-432 802(mine)N
-624(in)X
-718(which)X
-946(bucket)X
-1192(to)X
-1286(place)X
-1488(a)X
-1556(key;)X
-1726(all)X
-1837(keys)X
-2015(go)X
-2126(in)X
-432 890(bucket)N
-682(0.)X
-797(When)X
-1024(this)X
-1174(bucket)X
-1423(is)X
-1511(full,)X
-1677(its)X
-1787(contents)X
-2089(are)X
-432 978(divided)N
-698(between)X
-992(L0)X
-1107(and)X
-1249(L1)X
-1363(as)X
-1455(was)X
-1605(done)X
-1786(in)X
-1873(the)X
-1996(previ-)X
-432 1066(ously)N
-664(discussed)X
-1030(algorithms.)X
-1471(After)X
-1700(this)X
-1874(split,)X
-2090(the)X
-432 1154(address)N
-710(of)X
-814(the)X
-948(second)X
-1207(bucket)X
-1457(must)X
-1648(be)X
-1760(stored)X
-1992(in)X
-2090(the)X
-432 1242(directory.)N
-796(To)X
-939(accommodate)X
-1438(the)X
-1589(new)X
-1776(address,)X
-2090(the)X
-432 1330(directory)N
-752(is)X
-835(split)X
-2 f
-8 s
-972 1305(5)N
-1 f
-10 s
-1330(,)Y
-1054(by)X
-1163(doubling)X
-1476(it,)X
-1569(thus)X
-1731(increasing)X
-2090(the)X
-432 1418(depth)N
-630(of)X
-717(the)X
-835(directory)X
-1145(by)X
-1245(one.)X
-604 1532(After)N
-813(this)X
-967(split,)X
-1163(a)X
-1237(single)X
-1466(bit)X
-1588(of)X
-1693(the)X
-1829(hash)X
-2014(value)X
-432 1620(needs)N
-663(to)X
-773(be)X
-896(examined)X
-1255(to)X
-1364(decide)X
-1621(whether)X
-1927(the)X
-2072(key)X
-432 1708(belongs)N
-711(to)X
-803(L0)X
-922(or)X
-1019(L1.)X
-1158(Once)X
-1358(one)X
-1504(of)X
-1601(these)X
-1795(buckets)X
-2069(\256lls)X
-432 1796(\(L0)N
-578(for)X
-702(example\),)X
-1051(it)X
-1125(is)X
-1208(split)X
-1375(as)X
-1472(before,)X
-1728(and)X
-1873(the)X
-2000(direc-)X
-432 1884(tory)N
-585(is)X
-662(split)X
-823(again)X
-1021(to)X
-1107(make)X
-1305(room)X
-1498(for)X
-1615(the)X
-1736(address)X
-2000(of)X
-2090(the)X
-432 1972(third)N
-618(bucket.)X
-927(This)X
-1104(splitting)X
-1400(causes)X
-1645(the)X
-1778(addresses)X
-2121(of)X
-432 2060(the)N
-567(non-splitting)X
-1012(bucket)X
-1263(\(L1\))X
-1443(to)X
-1541(be)X
-1653(duplicated.)X
-2063(The)X
-432 2148(directory)N
-766(now)X
-948(has)X
-1099(four)X
-1277(entries,)X
-1555(a)X
-1635(depth)X
-1857(of)X
-1968(2,)X
-2072(and)X
-432 2236(indexes)N
-700(the)X
-821(buckets)X
-1089(L00,)X
-1261(L01)X
-1413(and)X
-1552(L1,)X
-1684(as)X
-1774(shown)X
-2006(in)X
-2090(the)X
-432 2324(Figure)N
-661(2.)X
-604 2438(The)N
-756(crucial)X
-1002(part)X
-1154(of)X
-1247(the)X
-1371(algorithm)X
-1708(is)X
-1787(the)X
-1911(observa-)X
-432 2526(tion)N
-580(that)X
-724(L1)X
-837(is)X
-914(addressed)X
-1255(twice)X
-1453(in)X
-1539(the)X
-1661(directory.)X
-1995(If)X
-2073(this)X
-432 2614(bucket)N
-679(were)X
-869(to)X
-964(split)X
-1134(now,)X
-1324(the)X
-1454(directory)X
-1776(already)X
-2045(con-)X
-432 2702(tains)N
-611(room)X
-808(to)X
-898(hold)X
-1067(the)X
-1192(address)X
-1460(of)X
-1554(the)X
-1679(new)X
-1840(bucket.)X
-2121(In)X
-432 2790(general,)N
-711(the)X
-831(relationship)X
-1231(between)X
-1521(the)X
-1641(directory)X
-1953(and)X
-2090(the)X
-432 2878(number)N
-704(of)X
-798(bucket)X
-1039(addresses)X
-1374(contained)X
-1713(therein)X
-1962(is)X
-2041(used)X
-432 2966(to)N
-517(decide)X
-750(when)X
-947(to)X
-1031(split)X
-1190(the)X
-1310(directory.)X
-1662(Each)X
-1845(bucket)X
-2081(has)X
-432 3054(a)N
-505(depth,)X
-740(\()X
-2 f
-767(n)X
-7 s
-3070(b)Y
-10 s
-1 f
-848 3054(\),)N
-932(associated)X
-1299(with)X
-1478(it)X
-1558(and)X
-1710(appears)X
-1992(in)X
-2090(the)X
-432 3142(directory)N
-744(exactly)X
-998(2)X
-2 f
-7 s
-3106(n)Y
-9 f
-1075(-)X
-2 f
-1106(n)X
-4 s
-3110(b)Y
-7 s
-1 f
-10 s
-1181 3142(times.)N
-1396(When)X
-1610(a)X
-1668(bucket)X
-1904(splits,)X
-2113(its)X
-432 3230(depth)N
-638(increases)X
-961(by)X
-1069(one.)X
-1253(The)X
-1406(directory)X
-1724(must)X
-1907(split)X
-2072(any)X
-432 3318(time)N
-602(a)X
-665(bucket's)X
-964(depth)X
-1169(exceeds)X
-1451(the)X
-1576(depth)X
-1781(of)X
-1875(the)X
-2000(direc-)X
-432 3406(tory.)N
-630(The)X
-784(following)X
-1123(code)X
-1303(fragment)X
-1621(helps)X
-1818(to)X
-1908(illustrate)X
-432 3494(the)N
-554(extendible)X
-912(hashing)X
-1185(algorithm)X
-1520([FAG79])X
-1838(for)X
-1955(access-)X
-432 3582(ing)N
-554(individual)X
-898(buckets)X
-1163(and)X
-1299(maintaining)X
-1701(the)X
-1819(directory.)X
-0 f
-8 s
-432 3881(hash)N
-622(=)X
-698 -0.4038(calchash\(key\);)AX
-432 3969(mask)N
-622(=)X
-698 -0.4018(maskvec[depth];)AX
-432 4145(bucket)N
-698(=)X
-774 -0.4038(directory[hash)AX
-1344(&)X
-1420(mask];)X
-432 4321(/*)N
-546(Key)X
-698 -0.4219(Insertion)AX
-1078(*/)X
-432 4409(if)N
-546 -0.4038(\(store\(bucket,)AX
-1116(key,)X
-1306(data\))X
-1534(==)X
-1648(FAIL\))X
-1876({)X
-720 4497(newbl)N
-948(=)X
-1024 -0.4167(getpage\(\);)AX
-720 4585 -0.4000(bucket->depth++;)AN
-720 4673 -0.4091(newbl->depth)AN
-1214(=)X
-1290 -0.4038(bucket->depth;)AX
-720 4761(if)N
-834 -0.4038(\(bucket->depth)AX
-1404(>)X
-1480(depth\))X
-1746({)X
-1008 4849(/*)N
-1122(double)X
-1388 -0.4219(directory)AX
-1768(*/)X
-1008 4937(depth++;)N
-1 f
-16 s
-432 5033 MXY
-864 0 Dl
-2 f
-8 s
-472 5088(5)N
-1 f
-9 s
-534 5113(This)N
-692(decision)X
-962(to)X
-1048(split)X
-1202(the)X
-1319(directory)X
-1608(is)X
-1685(based)X
-1878(on)X
-1979(a)X
-2040(com-)X
-432 5193(parison)N
-666(of)X
-748(the)X
-858(depth)X
-1040(of)X
-1121(the)X
-1230(page)X
-1387(being)X
-1568(split)X
-1713(and)X
-1838(the)X
-1947(depth)X
-2128(of)X
-432 5273(the)N
-543(trie.)X
-698(In)X
-781(Figure)X
-992(2,)X
-1069(the)X
-1180(depths)X
-1390(of)X
-1472(both)X
-1622(L00)X
-1760(and)X
-1886(L01)X
-2024(are)X
-2134(2,)X
-432 5353(whereas)N
-689(the)X
-798(depth)X
-979(of)X
-1060(L1)X
-1161(is)X
-1230(1.)X
-1323(Therefore,)X
-1646(if)X
-1710(L1)X
-1810(were)X
-1970(to)X
-2046(split,)X
-432 5433(the)N
-543(directory)X
-826(would)X
-1029(not)X
-1144(need)X
-1303(to)X
-1382(split.)X
-1565(In)X
-1648(reality,)X
-1872(a)X
-1926(bucket)X
-2140(is)X
-432 5513(allocated)N
-727(for)X
-846(the)X
-969(directory)X
-1264(at)X
-1351(the)X
-1474(time)X
-1637(of)X
-1732(\256le)X
-1858(creation)X
-2124(so)X
-432 5593(although)N
-707(the)X
-818(directory)X
-1100(splits)X
-1274(logically,)X
-1566(physical)X
-1828(splits)X
-2002(do)X
-2096(not)X
-432 5673(occur)N
-610(until)X
-760(the)X
-866(\256le)X
-976(becomes)X
-1246(quite)X
-1408(large.)X
-0 f
-8 s
-2994 538 -0.4219(directory)AN
-3374(=)X
-3450 -0.3971(double\(directory\);)AX
-2706 626(})N
-2706 714 -0.3958(splitbucket\(bucket,)AN
-3466(newbl\))X
-2706 802(...)N
-2418 890(})N
-2 f
-10 s
-3169 1255(hsearch)N
-1 f
-2590 1387(Since)N
-2 f
-2807(hsearch)X
-1 f
-3100(does)X
-3286(not)X
-3427(have)X
-3617(to)X
-3717(translate)X
-4027(hash)X
-2418 1475(values)N
-2659(into)X
-2819(disk)X
-2988(addresses,)X
-3352(it)X
-3432(can)X
-3579(use)X
-3721(much)X
-3934(simpler)X
-2418 1563(algorithms)N
-2808(than)X
-2994(those)X
-3211(de\256ned)X
-3495(above.)X
-3775(System)X
-4058(V's)X
-2 f
-2418 1651(hsearch)N
-1 f
-2708(constructs)X
-3069(a)X
-3141(\256xed-size)X
-3489(hash)X
-3671(table)X
-3862(\(speci\256ed)X
-2418 1739(by)N
-2519(the)X
-2637(user)X
-2791(at)X
-2869(table)X
-3045(creation\).)X
-3391(By)X
-3504(default,)X
-3767(a)X
-3823(multiplica-)X
-2418 1827(tive)N
-2570(hash)X
-2748(function)X
-3046(based)X
-3260(on)X
-3371(that)X
-3522(described)X
-3861(in)X
-3954(Knuth,)X
-2418 1915(Volume)N
-2710(3,)X
-2804(section)X
-3065(6.4)X
-3199([KNU68])X
-3541(is)X
-3628(used)X
-3809(to)X
-3905(obtain)X
-4138(a)X
-2418 2003(primary)N
-2694(bucket)X
-2930(address.)X
-3233(If)X
-3309(this)X
-3446(bucket)X
-3681(is)X
-3755(full,)X
-3907(a)X
-3964(secon-)X
-2418 2091(dary)N
-2593(multiplicative)X
-3069(hash)X
-3248(value)X
-3454(is)X
-3538(computed)X
-3885(to)X
-3978(de\256ne)X
-2418 2179(the)N
-2542(probe)X
-2751(interval.)X
-3062(The)X
-3213(probe)X
-3422(interval)X
-3693(is)X
-3772(added)X
-3989(to)X
-4076(the)X
-2418 2267(original)N
-2712(bucket)X
-2971(address)X
-3257(\(modulo)X
-3573(the)X
-3716(table)X
-3916(size\))X
-4112(to)X
-2418 2355(obtain)N
-2658(a)X
-2734(new)X
-2908(bucket)X
-3162(address.)X
-3483(This)X
-3665(process)X
-3946(repeats)X
-2418 2443(until)N
-2588(an)X
-2688(empty)X
-2911(bucket)X
-3148(is)X
-3224(found.)X
-3474(If)X
-3551(no)X
-3654(bucket)X
-3891(is)X
-3967(found,)X
-2418 2531(an)N
-2514(insertion)X
-2814(fails)X
-2972(with)X
-3134(a)X
-3190(``table)X
-3420(full'')X
-3605(condition.)X
-2590 2645(The)N
-2768(basic)X
-2986(algorithm)X
-3350(may)X
-3541(be)X
-3670(modi\256ed)X
-4006(by)X
-4138(a)X
-2418 2733(number)N
-2705(of)X
-2813(compile)X
-3112(time)X
-3295(options)X
-3571(available)X
-3902(to)X
-4005(those)X
-2418 2821(users)N
-2604(with)X
-2767(AT&T)X
-3006(source)X
-3237(code.)X
-3450(First,)X
-3637(the)X
-3756(package)X
-4040(pro-)X
-2418 2909(vides)N
-2638(two)X
-2809(options)X
-3094(for)X
-3238(hash)X
-3435(functions.)X
-3803(Users)X
-4036(may)X
-2418 2997(specify)N
-2690(their)X
-2877(own)X
-3055(hash)X
-3242(function)X
-3549(by)X
-3669(compiling)X
-4032(with)X
-2418 3085(``USCR'')N
-2757(de\256ned)X
-3016(and)X
-3155(declaring)X
-3477(and)X
-3616(de\256ning)X
-3901(the)X
-4022(vari-)X
-2418 3173(able)N
-2 f
-2578(hcompar)X
-1 f
-2863(,)X
-2909(a)X
-2971(function)X
-3263(taking)X
-3488(two)X
-3633(string)X
-3840(arguments)X
-2418 3261(and)N
-2560(returning)X
-2880(an)X
-2982(integer.)X
-3271(Users)X
-3480(may)X
-3643(also)X
-3797(request)X
-4054(that)X
-2418 3349(hash)N
-2587(values)X
-2814(be)X
-2912(computed)X
-3250(simply)X
-3489(by)X
-3590(taking)X
-3811(the)X
-3930(modulo)X
-2418 3437(of)N
-2521(key)X
-2673(\(using)X
-2909(division)X
-3201(rather)X
-3424(than)X
-3597(multiplication)X
-4080(for)X
-2418 3525(hash)N
-2589(value)X
-2787(calculation\).)X
-3230(If)X
-3308(this)X
-3447(technique)X
-3783(is)X
-3859(used,)X
-4049(col-)X
-2418 3613(lisions)N
-2651(are)X
-2775(resolved)X
-3072(by)X
-3176(scanning)X
-3485(sequentially)X
-3896(from)X
-4076(the)X
-2418 3701(selected)N
-2702(bucket)X
-2941(\(linear)X
-3176(probing\).)X
-3517(This)X
-3684(option)X
-3913(is)X
-3991(avail-)X
-2418 3789(able)N
-2572(by)X
-2672(de\256ning)X
-2954(the)X
-3072(variable)X
-3351(``DIV'')X
-3622(at)X
-3700(compile)X
-3978(time.)X
-2590 3903(A)N
-2720(second)X
-3015(option,)X
-3311(based)X
-3565(on)X
-3716(an)X
-3863(algorithm)X
-2418 3991(discovered)N
-2787(by)X
-2888(Richard)X
-3163(P.)X
-3248(Brent,)X
-3466(rearranges)X
-3822(the)X
-3940(table)X
-4116(at)X
-2418 4079(the)N
-2549(time)X
-2724(of)X
-2824(insertion)X
-3137(in)X
-3232(order)X
-3434(to)X
-3528(speed)X
-3743(up)X
-3855(retrievals.)X
-2418 4167(The)N
-2571(basic)X
-2764(idea)X
-2926(is)X
-3007(to)X
-3097(shorten)X
-3361(long)X
-3531(probe)X
-3741(sequences)X
-4094(by)X
-2418 4255(lengthening)N
-2833(short)X
-3030(probe)X
-3249(sequences.)X
-3651(Once)X
-3857(the)X
-3991(probe)X
-2418 4343(chain)N
-2613(has)X
-2741(exceeded)X
-3062(some)X
-3252(threshold)X
-3571(\(Brent)X
-3796(suggests)X
-4087(2\),)X
-2418 4431(we)N
-2541(attempt)X
-2809(to)X
-2899(shuf\257e)X
-3145(any)X
-3289(colliding)X
-3601(keys)X
-3776(\(keys)X
-3978(which)X
-2418 4519(appeared)N
-2734(in)X
-2821(the)X
-2944(probe)X
-3152(sequence)X
-3471(of)X
-3562(the)X
-3684(new)X
-3842(key\).)X
-4049(The)X
-2418 4607(details)N
-2652(of)X
-2744(this)X
-2884(key)X
-3025(shuf\257ing)X
-3333(can)X
-3469(be)X
-3569(found)X
-3780(in)X
-3866([KNU68])X
-2418 4695(and)N
-2576([BRE73].)X
-2946(This)X
-3129(algorithm)X
-3481(may)X
-3660(be)X
-3777(obtained)X
-4094(by)X
-2418 4783(de\256ning)N
-2700(the)X
-2818(variable)X
-3097(``BRENT'')X
-3487(at)X
-3565(compile)X
-3843(time.)X
-2590 4897(A)N
-2698(third)X
-2899(set)X
-3038(of)X
-3154(options,)X
-3458(obtained)X
-3783(by)X
-3912(de\256ning)X
-2418 4985(``CHAINED'',)N
-2943(use)X
-3086(linked)X
-3321(lists)X
-3484(to)X
-3581(resolve)X
-3848(collisions.)X
-2418 5073(Either)N
-2647(of)X
-2747(the)X
-2878(primary)X
-3164(hash)X
-3343(function)X
-3642(described)X
-3982(above)X
-2418 5161(may)N
-2584(be)X
-2688(used,)X
-2882(but)X
-3011(all)X
-3118(collisions)X
-3451(are)X
-3577(resolved)X
-3876(by)X
-3983(build-)X
-2418 5249(ing)N
-2554(a)X
-2623(linked)X
-2856(list)X
-2986(of)X
-3086(entries)X
-3333(from)X
-3522(the)X
-3653(primary)X
-3940(bucket.)X
-2418 5337(By)N
-2542(default,)X
-2816(new)X
-2981(entries)X
-3226(will)X
-3381(be)X
-3488(added)X
-3711(to)X
-3804(a)X
-3871(bucket)X
-4116(at)X
-2418 5425(the)N
-2541(beginning)X
-2886(of)X
-2978(the)X
-3101(bucket)X
-3339(chain.)X
-3577(However,)X
-3916(compile)X
-2418 5513(options)N
-2706(``SORTUP'')X
-3173(or)X
-3293(``SORTDOWN'')X
-3908(may)X
-4098(be)X
-2418 5601(speci\256ed)N
-2723(to)X
-2805(order)X
-2995(the)X
-3113(hash)X
-3280(chains)X
-3505(within)X
-3729(each)X
-3897(bucket.)X
-3 f
-432 5960(4)N
-2970(USENIX)X
-9 f
-3292(-)X
-3 f
-3356(Winter)X
-3621('91)X
-9 f
-3748(-)X
-3 f
-3812(Dallas,)X
-4065(TX)X
-
-5 p
-%%Page: 5 5
-0(Courier)xf 0 f
-10 s 10 xH 0 xS 0 f
-3 f
-720 258(Seltzer)N
-977(&)X
-1064(Yigit)X
-3278(A)X
-3356(New)X
-3528(Hashing)X
-3831(Package)X
-4136(for)X
-4259(UNIX)X
-2 f
-1444 538(dynahash)N
-1 f
-892 670(The)N
-2 f
-1054(dynahash)X
-1 f
-1398(library,)X
-1669(written)X
-1932(by)X
-2048(Esmond)X
-2346(Pitt,)X
-720 758(implements)N
-1183(Larson's)X
-1554(linear)X
-1827(hashing)X
-2165(algorithm)X
-720 846([LAR88])N
-1097(with)X
-1302(an)X
-2 f
-1440(hsearch)X
-1 f
-1756(compatible)X
-2174(interface.)X
-720 934(Intuitively,)N
-1099(a)X
-1161(hash)X
-1334(table)X
-1516(begins)X
-1751(as)X
-1844(a)X
-1905(single)X
-2121(bucket)X
-2360(and)X
-720 1022(grows)N
-941(in)X
-1028(generations,)X
-1443(where)X
-1665(a)X
-1725(generation)X
-2088(corresponds)X
-720 1110(to)N
-815(a)X
-884(doubling)X
-1201(in)X
-1296(the)X
-1427(size)X
-1585(of)X
-1685(the)X
-1815(hash)X
-1994(table.)X
-2222(The)X
-2379(0)X
-2 f
-7 s
-1078(th)Y
-10 s
-1 f
-720 1198(generation)N
-1085(occurs)X
-1321(as)X
-1414(the)X
-1538(table)X
-1719(grows)X
-1940(from)X
-2121(one)X
-2262(bucket)X
-720 1286(to)N
-814(two.)X
-1006(In)X
-1105(the)X
-1235(next)X
-1405(generation)X
-1776(the)X
-1906(table)X
-2093(grows)X
-2320(from)X
-720 1374(two)N
-862(to)X
-946(four.)X
-1122(During)X
-1371(each)X
-1541(generation,)X
-1921(every)X
-2121(bucket)X
-2356(that)X
-720 1462(existed)N
-967(at)X
-1045(the)X
-1163(beginning)X
-1503(of)X
-1590(the)X
-1708(generation)X
-2067(is)X
-2140(split.)X
-892 1576(The)N
-1041(table)X
-1221(starts)X
-1414(as)X
-1505(a)X
-1565(single)X
-1780(bucket)X
-2018(\(numbered)X
-2389(0\),)X
-720 1664(the)N
-839(current)X
-1088(split)X
-1245(bucket)X
-1479(is)X
-1552(set)X
-1661(to)X
-1743(bucket)X
-1977(0,)X
-2057(and)X
-2193(the)X
-2311(max-)X
-720 1752(imum)N
-933(split)X
-1097(point)X
-1288(is)X
-1368(set)X
-1483(to)X
-1571(twice)X
-1771(the)X
-1895(current)X
-2149(split)X
-2312(point)X
-720 1840(\(0\).)N
-863(When)X
-1084(it)X
-1157(is)X
-1239(time)X
-1410(for)X
-1532(a)X
-1596(bucket)X
-1838(to)X
-1928(split,)X
-2113(the)X
-2239(keys)X
-2414(in)X
-720 1928(the)N
-872(current)X
-1154(split)X
-1345(bucket)X
-1612(are)X
-1764(divided)X
-2057(between)X
-2378(the)X
-720 2016(current)N
-981(split)X
-1151(bucket)X
-1397(and)X
-1545(a)X
-1613(new)X
-1779(bucket)X
-2025(whose)X
-2262(bucket)X
-720 2104(number)N
-1000(is)X
-1088(equal)X
-1297(to)X
-1394(1)X
-1469(+)X
-1549(current)X
-1812(split)X
-1984(bucket)X
-2232(+)X
-2311(max-)X
-720 2192(imum)N
-927(split)X
-1085(point.)X
-1310(We)X
-1442(can)X
-1574(determine)X
-1915(which)X
-2131(keys)X
-2298(move)X
-720 2280(to)N
-807(the)X
-929(new)X
-1087(bucket)X
-1325(by)X
-1429(examining)X
-1791(the)X
-2 f
-1913(n)X
-7 s
-1962 2248(th)N
-10 s
-1 f
-2043 2280(bit)N
-2151(of)X
-2242(a)X
-2302(key's)X
-720 2368(hash)N
-899(value)X
-1105(where)X
-1334(n)X
-1406(is)X
-1491(the)X
-1620(generation)X
-1990(number.)X
-2306(After)X
-720 2456(the)N
-846(bucket)X
-1088(at)X
-1174(the)X
-1300(maximum)X
-1651(split)X
-1815(point)X
-2006(has)X
-2140(been)X
-2319(split,)X
-720 2544(the)N
-839(generation)X
-1198(number)X
-1463(is)X
-1536(incremented,)X
-1973(the)X
-2091(current)X
-2339(split)X
-720 2632(point)N
-908(is)X
-985(set)X
-1098(back)X
-1274(to)X
-1360(zero,)X
-1543(and)X
-1683(the)X
-1805(maximum)X
-2152(split)X
-2312(point)X
-720 2720(is)N
-815(set)X
-946(to)X
-1050(the)X
-1190(number)X
-1477(of)X
-1586(the)X
-1725(last)X
-1877(bucket)X
-2132(in)X
-2235(the)X
-2374(\256le)X
-720 2808(\(which)N
-971(is)X
-1052(equal)X
-1253(to)X
-1342(twice)X
-1543(the)X
-1668(old)X
-1797(maximum)X
-2148(split)X
-2312(point)X
-720 2896(plus)N
-873(1\).)X
-892 3010(To)N
-1031(facilitate)X
-1361(locating)X
-1668(keys,)X
-1884(we)X
-2027(maintain)X
-2356(two)X
-720 3098(masks.)N
-989(The)X
-1143(low)X
-1291(mask)X
-1488(is)X
-1569(equal)X
-1771(to)X
-1861(the)X
-1987(maximum)X
-2339(split)X
-720 3186(bucket)N
-967(and)X
-1116(the)X
-1247(high)X
-1422(mask)X
-1624(is)X
-1710(equal)X
-1917(to)X
-2011(the)X
-2141(next)X
-2311(max-)X
-720 3274(imum)N
-931(split)X
-1093(bucket.)X
-1372(To)X
-1486(locate)X
-1703(a)X
-1764(speci\256c)X
-2033(key,)X
-2193(we)X
-2311(com-)X
-720 3362(pute)N
-881(a)X
-940(32-bit)X
-1154(hash)X
-1324(value)X
-1520(using)X
-1715(a)X
-1773(bit-randomizing)X
-2311(algo-)X
-720 3450(rithm)N
-932(such)X
-1118(as)X
-1224(the)X
-1361(one)X
-1516(described)X
-1862(in)X
-1962([LAR88].)X
-2334(This)X
-720 3538(hash)N
-893(value)X
-1093(is)X
-1172(then)X
-1336(masked)X
-1607(with)X
-1775(the)X
-1898(high)X
-2065(mask.)X
-2299(If)X
-2378(the)X
-720 3626(resulting)N
-1026(number)X
-1297(is)X
-1376(greater)X
-1626(than)X
-1790(the)X
-1913(maximum)X
-2262(bucket)X
-720 3714(in)N
-823(the)X
-962(table)X
-1159(\(current)X
-1455(split)X
-1633(bucket)X
-1888(+)X
-1974(maximum)X
-2339(split)X
-720 3802(point\),)N
-962(the)X
-1091(hash)X
-1269(value)X
-1474(is)X
-1558(masked)X
-1834(with)X
-2007(the)X
-2136(low)X
-2287(mask.)X
-720 3890(In)N
-825(either)X
-1046(case,)X
-1242(the)X
-1377(result)X
-1592(of)X
-1696(the)X
-1831(mask)X
-2037(is)X
-2127(the)X
-2262(bucket)X
-720 3978(number)N
-989(for)X
-1107(the)X
-1229(given)X
-1431(key.)X
-1611(The)X
-1759(algorithm)X
-2093(below)X
-2312(illus-)X
-720 4066(trates)N
-914(this)X
-1049(process.)X
-0 f
-8 s
-720 4365(h)N
-796(=)X
-872 -0.4038(calchash\(key\);)AX
-720 4453(bucket)N
-986(=)X
-1062(h)X
-1138(&)X
-1214 -0.4167(high_mask;)AX
-720 4541(if)N
-834(\()X
-910(bucket)X
-1176(>)X
-1252 -0.4167(max_bucket)AX
-1670(\))X
-1008 4629(bucket)N
-1274(=)X
-1350(h)X
-1426(&)X
-1502 -0.4219(low_mask;)AX
-720 4717 -0.4018(return\(bucket\);)AN
-1 f
-10 s
-892 5042(In)N
-1013(order)X
-1237(to)X
-1353(decide)X
-1617(when)X
-1845(to)X
-1961(split)X
-2152(a)X
-2242(bucket,)X
-2 f
-720 5130(dynahash)N
-1 f
-1050(uses)X
-2 f
-1210(controlled)X
-1561(splitting)X
-1 f
-1822(.)X
-1884(A)X
-1964(hash)X
-2133(table)X
-2311(has)X
-2440(a)X
-720 5218(\256ll)N
-837(factor)X
-1054(which)X
-1279(is)X
-1361(expressed)X
-1707(in)X
-1798(terms)X
-2004(of)X
-2099(the)X
-2225(average)X
-720 5306(number)N
-990(of)X
-1082(keys)X
-1253(in)X
-1339(each)X
-1511(bucket.)X
-1789(Each)X
-1974(time)X
-2140(the)X
-2262(table's)X
-720 5394(total)N
-885(number)X
-1153(of)X
-1243(keys)X
-1413(divided)X
-1676(by)X
-1778(its)X
-1875(number)X
-2142(of)X
-2231(buckets)X
-720 5482(exceeds)N
-995(this)X
-1130(\256ll)X
-1238(factor,)X
-1466(a)X
-1522(bucket)X
-1756(is)X
-1829(split.)X
-2878 538(Since)N
-3079(the)X
-2 f
-3200(hsearch)X
-1 f
-3477(create)X
-3693(interface)X
-3998(\()X
-2 f
-4025(hcreate)X
-1 f
-4266(\))X
-4315(calls)X
-2706 626(for)N
-2842(an)X
-2960(estimate)X
-3269(of)X
-3378(the)X
-3518(\256nal)X
-3702(size)X
-3869(of)X
-3978(the)X
-4118(hash)X
-4306(table)X
-2706 714(\()N
-2 f
-2733(nelem)X
-1 f
-2925(\),)X
-2 f
-3007(dynahash)X
-1 f
-3349(uses)X
-3522(this)X
-3672(information)X
-4085(to)X
-4182(initialize)X
-2706 802(the)N
-2848(table.)X
-3088(The)X
-3257(initial)X
-3486(number)X
-3774(of)X
-3884(buckets)X
-4172(is)X
-4268(set)X
-4400(to)X
-2 f
-2706 890(nelem)N
-1 f
-2926(rounded)X
-3217(to)X
-3306(the)X
-3431(next)X
-3596(higher)X
-3828(power)X
-4056(of)X
-4150(two.)X
-4337(The)X
-2706 978(current)N
-2958(split)X
-3118(point)X
-3305(is)X
-3381(set)X
-3493(to)X
-3578(0)X
-3641(and)X
-3780(the)X
-3901(maximum)X
-4248(bucket)X
-2706 1066(and)N
-2842(maximum)X
-3186(split)X
-3343(point)X
-3527(are)X
-3646(set)X
-3755(to)X
-3837(this)X
-3972(rounded)X
-4255(value.)X
-3 f
-3148 1220(The)N
-3301(New)X
-3473(Implementation)X
-1 f
-2878 1352(Our)N
-3042(implementation)X
-3583(is)X
-3675(also)X
-3842(based)X
-4063(on)X
-4181(Larson's)X
-2706 1440(linear)N
-2939(hashing)X
-3238([LAR88])X
-3582(algorithm)X
-3943(as)X
-4060(well)X
-4248(as)X
-4364(the)X
-2 f
-2706 1528(dynahash)N
-1 f
-3047(implementation.)X
-3623(The)X
-2 f
-3782(dbm)X
-1 f
-3954(family)X
-4197(of)X
-4297(algo-)X
-2706 1616(rithms)N
-2942(decide)X
-3184(dynamically)X
-3612(which)X
-3840(bucket)X
-4085(to)X
-4178(split)X
-4346(and)X
-2706 1704(when)N
-2914(to)X
-3010(split)X
-3180(it)X
-3257(\(when)X
-3491(it)X
-3568(over\257ows\))X
-3944(while)X
-2 f
-4155(dynahash)X
-1 f
-2706 1792(splits)N
-2933(in)X
-3054(a)X
-3149(prede\256ned)X
-3547(order)X
-3776(\(linearly\))X
-4134(and)X
-4309(at)X
-4426(a)X
-2706 1880(prede\256ned)N
-3116(time)X
-3328(\(when)X
-3599(the)X
-3767(table)X
-3993(\256ll)X
-4151(factor)X
-4409(is)X
-2706 1968(exceeded\).)N
-3121(We)X
-3280(use)X
-3434(a)X
-3517(hybrid)X
-3773(of)X
-3887(these)X
-4099(techniques.)X
-2706 2056(Splits)N
-2913(occur)X
-3118(in)X
-3206(the)X
-3330(prede\256ned)X
-3695(order)X
-3891(of)X
-3984(linear)X
-4193(hashing,)X
-2706 2144(but)N
-2845(the)X
-2980(time)X
-3159(at)X
-3253(which)X
-3485(pages)X
-3704(are)X
-3839(split)X
-4012(is)X
-4101(determined)X
-2706 2232(both)N
-2869(by)X
-2970(page)X
-3143(over\257ows)X
-3480(\()X
-2 f
-3507(uncontrolled)X
-3937(splitting)X
-1 f
-4198(\))X
-4246(and)X
-4382(by)X
-2706 2320(exceeding)N
-3052(the)X
-3170(\256ll)X
-3278(factor)X
-3486(\()X
-2 f
-3513(controlled)X
-3862(splitting)X
-1 f
-4123(\))X
-2878 2434(A)N
-2962(hash)X
-3135(table)X
-3317(is)X
-3395(parameterized)X
-3876(by)X
-3981(both)X
-4148(its)X
-4248(bucket)X
-2706 2522(size)N
-2904(\()X
-2 f
-2931(bsize)X
-1 f
-(\))S
-3191(and)X
-3380(\256ll)X
-3541(factor)X
-3801(\()X
-2 f
-3828(ffactor)X
-1 f
-4041(\).)X
-4180(Whereas)X
-2 f
-2706 2610(dynahash's)N
-1 f
-3095(buckets)X
-3364(can)X
-3500(be)X
-3599(represented)X
-3993(as)X
-4083(a)X
-4142(linked)X
-4365(list)X
-2706 2698(of)N
-2798(elements)X
-3108(in)X
-3195(memory,)X
-3507(our)X
-3639(package)X
-3928(needs)X
-4136(to)X
-4222(support)X
-2706 2786(disk)N
-2874(access,)X
-3135(and)X
-3286(must)X
-3476(represent)X
-3806(buckets)X
-4086(in)X
-4183(terms)X
-4395(of)X
-2706 2874(pages.)N
-2955(The)X
-2 f
-3106(bsize)X
-1 f
-3291(is)X
-3369(the)X
-3492(size)X
-3642(\(in)X
-3756(bytes\))X
-3977(of)X
-4069(these)X
-4259(pages.)X
-2706 2962(As)N
-2833(in)X
-2933(linear)X
-3154(hashing,)X
-3461(the)X
-3597(number)X
-3879(of)X
-3983(buckets)X
-4265(in)X
-4364(the)X
-2706 3050(table)N
-2906(is)X
-3003(equal)X
-3221(to)X
-3327(the)X
-3469(number)X
-3758(of)X
-3869(keys)X
-4060(in)X
-4165(the)X
-4306(table)X
-2706 3138(divided)N
-2988(by)X
-2 f
-3110(ffactor)X
-1 f
-3323(.)X
-2 f
-8 s
-3113(6)Y
-1 f
-10 s
-3417 3138(The)N
-3584(controlled)X
-3950(splitting)X
-4252(occurs)X
-2706 3226(each)N
-2878(time)X
-3044(the)X
-3166(number)X
-3435(of)X
-3526(keys)X
-3697(in)X
-3783(the)X
-3905(table)X
-4085(exceeds)X
-4364(the)X
-2706 3314(\256ll)N
-2814(factor)X
-3022(multiplied)X
-3370(by)X
-3470(the)X
-3588(number)X
-3853(of)X
-3940(buckets.)X
-2878 3428(Inserting)N
-3187(keys)X
-3358(and)X
-3498(splitting)X
-3783(buckets)X
-4051(is)X
-4127(performed)X
-2706 3516(precisely)N
-3018(as)X
-3107(described)X
-3437(previously)X
-3796(for)X
-2 f
-3911(dynahash)X
-1 f
-4218(.)X
-4279(How-)X
-2706 3604(ever,)N
-2897(since)X
-3094(buckets)X
-3371(are)X
-3502(now)X
-3671(comprised)X
-4036(of)X
-4134(pages,)X
-4368(we)X
-2706 3692(must)N
-2883(be)X
-2981(prepared)X
-3284(to)X
-3367(handle)X
-3602(cases)X
-3793(where)X
-4011(the)X
-4130(size)X
-4276(of)X
-4364(the)X
-2706 3780(keys)N
-2873(and)X
-3009(data)X
-3163(in)X
-3245(a)X
-3301(bucket)X
-3535(exceed)X
-3779(the)X
-3897(bucket)X
-4131(size.)X
-3 f
-3318 3934(Over\257ow)N
-3654(Pages)X
-1 f
-2878 4066(There)N
-3095(are)X
-3223(two)X
-3372(cases)X
-3571(where)X
-3797(a)X
-3862(key)X
-4007(may)X
-4174(not)X
-4305(\256t)X
-4400(in)X
-2706 4154(its)N
-2802(designated)X
-3166(bucket.)X
-3441(In)X
-3529(the)X
-3647(\256rst)X
-3791(case,)X
-3970(the)X
-4088(total)X
-4250(size)X
-4395(of)X
-2706 4242(the)N
-2833(key)X
-2978(and)X
-3123(data)X
-3286(may)X
-3453(exceed)X
-3706(the)X
-3833(bucket)X
-4076(size.)X
-4269(In)X
-4364(the)X
-2706 4330(second,)N
-3008(addition)X
-3328(of)X
-3453(a)X
-3547(new)X
-3739(key)X
-3913(could)X
-4149(cause)X
-4386(an)X
-2706 4418(over\257ow,)N
-3068(but)X
-3227(the)X
-3382(bucket)X
-3652(in)X
-3770(question)X
-4097(is)X
-4206(not)X
-4364(yet)X
-2706 4506(scheduled)N
-3049(to)X
-3133(be)X
-3230(split.)X
-3428(In)X
-3516(existing)X
-3790(implementations,)X
-4364(the)X
-2706 4594(second)N
-2953(case)X
-3115(never)X
-3317(arises)X
-3523(\(since)X
-3738(buckets)X
-4006(are)X
-4128(split)X
-4288(when)X
-2706 4682(they)N
-2871(over\257ow\))X
-3210(and)X
-3352(the)X
-3476(\256rst)X
-3626(case)X
-3791(is)X
-3870(not)X
-3998(handled)X
-4278(at)X
-4362(all.)X
-2706 4770(Although)N
-3036(large)X
-3225(key/data)X
-3525(pair)X
-3678(handling)X
-3986(is)X
-4066(dif\256cult)X
-4346(and)X
-2706 4858(expensive,)N
-3083(it)X
-3163(is)X
-3252(essential.)X
-3604(In)X
-3706(a)X
-3777(linear)X
-3995(hashed)X
-4253(imple-)X
-2706 4946(mentation,)N
-3087(over\257ow)X
-3413(pages)X
-3636(are)X
-3775(required)X
-4083(for)X
-4217(buckets)X
-2706 5034(which)N
-2935(over\257ow)X
-3253(before)X
-3492(they)X
-3662(are)X
-3793(split,)X
-3982(so)X
-4085(we)X
-4211(can)X
-4355(use)X
-2706 5122(the)N
-2833(same)X
-3027(mechanism)X
-3421(for)X
-3544(large)X
-3734(key/data)X
-4035(pairs)X
-4220(that)X
-4368(we)X
-2706 5210(use)N
-2837(for)X
-2955(over\257ow)X
-3264(pages.)X
-3511(Logically,)X
-3862(we)X
-3980(chain)X
-4177(over\257ow)X
-16 s
-2706 5353 MXY
-864 0 Dl
-2 f
-8 s
-2746 5408(6)N
-1 f
-9 s
-2801 5433(This)N
-2952(is)X
-3023(not)X
-3138(strictly)X
-3361(true.)X
-3532(The)X
-3667(\256le)X
-3782(does)X
-3937(not)X
-4052(contract)X
-4306(when)X
-2706 5513(keys)N
-2861(are)X
-2972(deleted,)X
-3221(so)X
-3308(the)X
-3419(number)X
-3662(of)X
-3744(buckets)X
-3986(is)X
-4056(actually)X
-4306(equal)X
-2706 5593(to)N
-2782(the)X
-2890(maximum)X
-3202(number)X
-3441(of)X
-3520(keys)X
-3671(ever)X
-3814(present)X
-4041(in)X
-4116(the)X
-4223(table)X
-4382(di-)X
-2706 5673(vided)N
-2884(by)X
-2974(the)X
-3080(\256ll)X
-3178(factor.)X
-3 f
-10 s
-720 5960(USENIX)N
-9 f
-1042(-)X
-3 f
-1106(Winter)X
-1371('91)X
-9 f
-1498(-)X
-3 f
-1562(Dallas,)X
-1815(TX)X
-4424(5)X
-
-6 p
-%%Page: 6 6
-0(Courier)xf 0 f
-10 s 10 xH 0 xS 0 f
-3 f
-432 258(A)N
-510(New)X
-682(Hashing)X
-985(Package)X
-1290(for)X
-1413(UNIX)X
-3663(Seltzer)X
-3920(&)X
-4007(Yigit)X
-1 f
-432 538(pages)N
-639(to)X
-725(the)X
-847(buckets)X
-1116(\(also)X
-1296(called)X
-1512(primary)X
-1789(pages\).)X
-2062(In)X
-2152(a)X
-432 626(memory)N
-730(based)X
-943(representation,)X
-1448(over\257ow)X
-1763(pages)X
-1976(do)X
-2086(not)X
-432 714(pose)N
-628(any)X
-792(special)X
-1063(problems)X
-1409(because)X
-1712(we)X
-1854(can)X
-2014(chain)X
-432 802(over\257ow)N
-776(pages)X
-1017(to)X
-1137(primary)X
-1449(pages)X
-1690(using)X
-1921(memory)X
-432 890(pointers.)N
-776(However,)X
-1137(mapping)X
-1463(these)X
-1674(over\257ow)X
-2005(pages)X
-432 978(into)N
-584(a)X
-648(disk)X
-809(\256le)X
-939(is)X
-1019(more)X
-1211(of)X
-1305(a)X
-1368(challenge,)X
-1723(since)X
-1915(we)X
-2036(need)X
-432 1066(to)N
-547(be)X
-675(able)X
-861(to)X
-975(address)X
-1268(both)X
-1462(bucket)X
-1728(pages,)X
-1983(whose)X
-432 1154(numbers)N
-729(are)X
-849(growing)X
-1137(linearly,)X
-1422(and)X
-1558(some)X
-1747(indeterminate)X
-432 1242(number)N
-715(of)X
-820(over\257ow)X
-1143(pages)X
-1364(without)X
-1646(reorganizing)X
-2090(the)X
-432 1330(\256le.)N
-604 1444(One)N
-789(simple)X
-1053(solution)X
-1361(would)X
-1612(be)X
-1739(to)X
-1852(allocate)X
-2152(a)X
-432 1532(separate)N
-737(\256le)X
-880(for)X
-1015(over\257ow)X
-1341(pages.)X
-1604(The)X
-1769(disadvantage)X
-432 1620(with)N
-605(such)X
-783(a)X
-850(technique)X
-1193(is)X
-1276(that)X
-1426(it)X
-1500(requires)X
-1789(an)X
-1895(extra)X
-2086(\256le)X
-432 1708(descriptor,)N
-794(an)X
-891(extra)X
-1073(system)X
-1316(call)X
-1453(on)X
-1554(open)X
-1731(and)X
-1867(close,)X
-2072(and)X
-432 1796(logically)N
-739(associating)X
-1122(two)X
-1269(independent)X
-1687(\256les.)X
-1886(For)X
-2023(these)X
-432 1884(reasons,)N
-728(we)X
-857(wanted)X
-1123(to)X
-1219(map)X
-1391(both)X
-1567(primary)X
-1855(pages)X
-2072(and)X
-432 1972(over\257ow)N
-737(pages)X
-940(into)X
-1084(the)X
-1202(same)X
-1387(\256le)X
-1509(space.)X
-604 2086(The)N
-799(buddy-in-waiting)X
-1425(algorithm)X
-1806(provides)X
-2152(a)X
-432 2174(mechanism)N
-851(to)X
-966(support)X
-1259(multiple)X
-1578(pages)X
-1814(per)X
-1970(logical)X
-432 2262(bucket)N
-685(while)X
-902(retaining)X
-1226(the)X
-1362(simple)X
-1613(split)X
-1788(sequence)X
-2121(of)X
-432 2350(linear)N
-681(hashing.)X
-1015(Over\257ow)X
-1383(pages)X
-1631(are)X
-1795(preallocated)X
-432 2438(between)N
-781(generations)X
-1232(of)X
-1379(primary)X
-1713(pages.)X
-1996(These)X
-432 2526(over\257ow)N
-759(pages)X
-984(are)X
-1125(used)X
-1314(by)X
-1436(any)X
-1594(bucket)X
-1850(containing)X
-432 2614(more)N
-646(keys)X
-842(than)X
-1029(\256t)X
-1144(on)X
-1273(the)X
-1420(primary)X
-1723(page)X
-1924(and)X
-2089(are)X
-432 2702(reclaimed,)N
-808(if)X
-896(possible,)X
-1217(when)X
-1430(the)X
-1567(bucket)X
-1819(later)X
-2000(splits.)X
-432 2790(Figure)N
-687(3)X
-773(depicts)X
-1045(the)X
-1188(layout)X
-1433(of)X
-1545(primary)X
-1844(pages)X
-2072(and)X
-432 2878(over\257ow)N
-752(pages)X
-970(within)X
-1209(the)X
-1342(same)X
-1542(\256le.)X
-1699(Over\257ow)X
-2036(page)X
-432 2966(use)N
-586(information)X
-1011(is)X
-1111(recorded)X
-1440(in)X
-1548(bitmaps)X
-1847(which)X
-2089(are)X
-432 3054(themselves)N
-819(stored)X
-1046(on)X
-1157(over\257ow)X
-1472(pages.)X
-1725(The)X
-1880(addresses)X
-432 3142(of)N
-520(the)X
-639(bitmap)X
-882(pages)X
-1086(and)X
-1223(the)X
-1342(number)X
-1608(of)X
-1695(pages)X
-1898(allocated)X
-432 3230(at)N
-515(each)X
-688(split)X
-850(point)X
-1039(are)X
-1163(stored)X
-1384(in)X
-1470(the)X
-1592(\256le)X
-1718(header.)X
-1997(Using)X
-432 3318(this)N
-577(information,)X
-1005(both)X
-1177(over\257ow)X
-1492(addresses)X
-1829(and)X
-1974(bucket)X
-432 3406(addresses)N
-764(can)X
-900(be)X
-999(mapped)X
-1276(to)X
-1361(disk)X
-1517(addresses)X
-1848(by)X
-1951(the)X
-2072(fol-)X
-432 3494(lowing)N
-674(calculation:)X
-0 f
-8 s
-432 3793(int)N
-736(bucket;)X
-1192(/*)X
-1306(bucket)X
-1572(address)X
-1876(*/)X
-432 3881(u_short)N
-736(oaddr;)X
-1192(/*)X
-1306(OVERFLOW)X
-1648(address)X
-1952(*/)X
-432 3969(int)N
-736 -0.4125(nhdr_pages;)AX
-1192(/*)X
-1306(npages)X
-1572(in)X
-1686 -112.4062(\256le)AX
-1838(header)X
-2104(*/)X
-432 4057(int)N
-736 -0.4125(spares[32];)AX
-1192(/*)X
-1306(npages)X
-1572(at)X
-1686(each)X
-1876(split)X
-2104(*/)X
-432 4145(int)N
-736(log2\(\);)X
-1198(/*)X
-1312(ceil\(log)X
-1654(base)X
-1844(2\))X
-1958(*/)X
-432 4321(#DEFINE)N
-736 -0.3929(BUCKET_TO_PAGE\(bucket\))AX
-1610(\\)X
-584 4409(bucket)N
-850(+)X
-926 -0.4167(nhdr_pages)AX
-1344(+)X
-1420(\\)X
-584 4497 -0.3894(\(bucket?spares[logs2\(bucket)AN
-1648(+)X
-1724(1\)-1]:0\))X
-432 4673(#DEFINE)N
-736 -0.3947(OADDR_TO_PAGE\(oaddr\))AX
-1534(\\)X
-584 4761 -0.3984(BUCKET_TO_PAGE\(\(1)AN
-1268(<<)X
-1382 -0.4091(\(oaddr>>11\)\))AX
-1876(-)X
-1952(1\))X
-2066(+)X
-2142(\\)X
-584 4849(oaddr)N
-812(&)X
-888(0x7ff;)X
-1 f
-10 s
-604 5262(An)N
-728(over\257ow)X
-1039(page)X
-1217(is)X
-1295(addressed)X
-1637(by)X
-1742(its)X
-1842(split)X
-2004(point,)X
-432 5350(identifying)N
-858(the)X
-1031(generations)X
-1476(between)X
-1819(which)X
-2090(the)X
-432 5438(over\257ow)N
-740(page)X
-915(is)X
-991(allocated,)X
-1324(and)X
-1463(its)X
-1561(page)X
-1736(number,)X
-2023(iden-)X
-432 5526(tifying)N
-665(the)X
-783(particular)X
-1111(page)X
-1283(within)X
-1507(the)X
-1625(split)X
-1782(point.)X
-1986(In)X
-2073(this)X
-432 5614(implementation,)N
-983(offsets)X
-1225(within)X
-1457(pages)X
-1668(are)X
-1795(16)X
-1903(bits)X
-2046(long)X
-432 5702(\(limiting)N
-732(the)X
-851(maximum)X
-1196(page)X
-1368(size)X
-1513(to)X
-1595(32K\),)X
-1800(so)X
-1891(we)X
-2005(select)X
-2418 538(an)N
-2535(over\257ow)X
-2860(page)X
-3052(addressing)X
-3435(algorithm)X
-3786(that)X
-3946(can)X
-4098(be)X
-2418 626(expressed)N
-2760(in)X
-2847(16)X
-2952(bits)X
-3091(and)X
-3231(which)X
-3451(allows)X
-3684(quick)X
-3886(retrieval.)X
-2418 714(The)N
-2568(top)X
-2695(\256ve)X
-2840(bits)X
-2980(indicate)X
-3258(the)X
-3380(split)X
-3541(point)X
-3729(and)X
-3869(the)X
-3991(lower)X
-2418 802(eleven)N
-2650(indicate)X
-2926(the)X
-3046(page)X
-3220(number)X
-3487(within)X
-3713(the)X
-3832(split)X
-3990(point.)X
-2418 890(Since)N
-2633(\256ve)X
-2789(bits)X
-2940(are)X
-3075(reserved)X
-3384(for)X
-3514(the)X
-3648(split)X
-3821(point,)X
-4041(\256les)X
-2418 978(may)N
-2578(split)X
-2737(32)X
-2839(times)X
-3034(yielding)X
-3318(a)X
-3376(maximum)X
-3721(\256le)X
-3844(size)X
-3990(of)X
-4078(2)X
-7 s
-946(32)Y
-10 s
-2418 1066(buckets)N
-2698(and)X
-2849(32)X
-2 f
-(*)S
-1 f
-2982(2)X
-7 s
-1034(11)Y
-10 s
-3113 1066(over\257ow)N
-3433(pages.)X
-3691(The)X
-3850(maximum)X
-2418 1154(page)N
-2597(size)X
-2749(is)X
-2829(2)X
-7 s
-1122(15)Y
-10 s
-1154(,)Y
-2971(yielding)X
-3259(a)X
-3321(maximum)X
-3671(\256le)X
-3799(size)X
-3950(greater)X
-2418 1242(than)N
-2601(131,000)X
-2906(GB)X
-3061(\(on)X
-3212(\256le)X
-3358(systems)X
-3655(supporting)X
-4041(\256les)X
-2418 1330(larger)N
-2626(than)X
-2784(4GB\).)X
-10 f
-2418 1418 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
-1 Dt
-4014 2275 MXY
-0 133 Dl
-3881 2275 MXY
-0 133 Dl
-3748 2275 MXY
-0 133 Dl
-3083 2275 MXY
-0 133 Dl
-5 s
-1 f
-3523 2475(2/3)N
-3390(2/2)X
-3257(2/1)X
-2859(1/2)X
-2726(1/1)X
-5 Dt
-3814 1743 MXY
-0 133 Dl
-3282 1743 MXY
-0 133 Dl
-3017 1743 MXY
-0 133 Dl
-2884 1743 MXY
-0 133 Dl
-1 Dt
-3681 1743 MXY
-0 133 Dl
-133 0 Dl
-0 -133 Dl
--133 0 Dl
-3548 MX
-0 133 Dl
-133 0 Dl
-0 -133 Dl
--133 0 Dl
-3415 MX
-0 133 Dl
-133 0 Dl
-0 -133 Dl
--133 0 Dl
-3282 MX
-0 133 Dl
-133 0 Dl
-0 -133 Dl
--133 0 Dl
-3150 MX
-0 133 Dl
-132 0 Dl
-0 -133 Dl
--132 0 Dl
-3017 MX
-0 133 Dl
-133 0 Dl
-0 -133 Dl
--133 0 Dl
-2884 MX
-0 133 Dl
-133 0 Dl
-0 -133 Dl
--133 0 Dl
-3 f
-8 s
-3017 2601(Over\257ow)N
-3285(Addresses)X
-3515 2833(Over\257ow)N
-3783(Pages)X
-2850(Buckets)X
-1 Di
-3349 2740 MXY
- 3349 2740 lineto
- 3482 2740 lineto
- 3482 2873 lineto
- 3349 2873 lineto
- 3349 2740 lineto
-closepath 3 3349 2740 3482 2873 Dp
-2684 MX
-0 133 Dl
-133 0 Dl
-0 -133 Dl
--133 0 Dl
-5 Dt
-4146 2275 MXY
-0 133 Dl
-3216 2275 MXY
-0 133 Dl
-2684 2275 MXY
-0 133 Dl
-2551 2275 MXY
-0 133 Dl
-1 f
-3798 1963(3)N
-3266 1980(2)N
-3001(1)X
-2868(0)X
-1 Dt
-2751 1743 MXY
-0 133 Dl
-133 0 Dl
-0 -133 Dl
--133 0 Dl
-3548 2275 MXY
--15 -22 Dl
-2 16 Dl
--13 11 Dl
-26 -5 Dl
--282 -117 Dl
-3432 2275 MXY
--10 -25 Dl
--2 16 Dl
--15 8 Dl
-27 1 Dl
--166 -117 Dl
-3282 2275 MXY
-12 -25 Dl
--14 10 Dl
--15 -6 Dl
-17 21 Dl
--16 -117 Dl
-2884 2275 MXY
-26 7 Dl
--12 -12 Dl
-3 -16 Dl
--17 21 Dl
-382 -117 Dl
-2751 2275 MXY
-25 9 Dl
--11 -12 Dl
-5 -17 Dl
--19 20 Dl
-515 -117 Dl
-3 f
-3070 2152(Over\257ow)N
-3338(Pages)X
-3482 2275 MXY
- 3482 2275 lineto
- 3615 2275 lineto
- 3615 2408 lineto
- 3482 2408 lineto
- 3482 2275 lineto
-closepath 3 3482 2275 3615 2408 Dp
-3349 MX
- 3349 2275 lineto
- 3482 2275 lineto
- 3482 2408 lineto
- 3349 2408 lineto
- 3349 2275 lineto
-closepath 3 3349 2275 3482 2408 Dp
-3216 MX
- 3216 2275 lineto
- 3349 2275 lineto
- 3349 2408 lineto
- 3216 2408 lineto
- 3216 2275 lineto
-closepath 3 3216 2275 3349 2408 Dp
-2817 MX
- 2817 2275 lineto
- 2950 2275 lineto
- 2950 2408 lineto
- 2817 2408 lineto
- 2817 2275 lineto
-closepath 3 2817 2275 2950 2408 Dp
-2684 MX
- 2684 2275 lineto
- 2817 2275 lineto
- 2817 2408 lineto
- 2684 2408 lineto
- 2684 2275 lineto
-closepath 3 2684 2275 2817 2408 Dp
-3615 MX
-0 133 Dl
-531 0 Dl
-0 -133 Dl
--531 0 Dl
-2950 MX
-0 133 Dl
-266 0 Dl
-0 -133 Dl
--266 0 Dl
-2551 MX
-0 133 Dl
-133 0 Dl
-0 -133 Dl
--133 0 Dl
-3798 1726 MXY
--21 -18 Dl
-6 16 Dl
--10 13 Dl
-25 -11 Dl
--599 -99 Dl
-3266 1726 MXY
--1 -27 Dl
--7 15 Dl
--17 1 Dl
-25 11 Dl
--67 -99 Dl
-3033 1726 MXY
-27 1 Dl
--14 -8 Dl
--1 -17 Dl
--12 24 Dl
-166 -99 Dl
-2900 1726 MXY
-27 7 Dl
--13 -11 Dl
-3 -17 Dl
--17 21 Dl
-299 -99 Dl
-3058 1621(Split)N
-3203(Points)X
-2418 2275 MXY
-0 133 Dl
-133 0 Dl
-0 -133 Dl
--133 0 Dl
-3 Dt
--1 Ds
-3137(Figure)Y
-2619(3:)X
-1 f
-2691(Split)X
-2832(points)X
-3008(occur)X
-3168(between)X
-3399(generations)X
-3712(and)X
-3823(are)X
-3919(numbered)X
-2418 3225(from)N
-2560(0.)X
-2642(In)X
-2713(this)X
-2824(\256gure)X
-2991(there)X
-3136(are)X
-3231(two)X
-3345(over\257ow)X
-3590(pages)X
-3753(allocated)X
-4000(at)X
-4063(split)X
-2418 3313(point)N
-2566(1)X
-2614(and)X
-2722(three)X
-2865(allocated)X
-3111(at)X
-3173(split)X
-3300(point)X
-3448(2.)X
-10 s
-10 f
-2418 3489 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
-3 f
-2949 3731(Buffer)N
-3192(Management)X
-1 f
-2590 3863(The)N
-2744(hash)X
-2920(table)X
-3105(is)X
-3187(stored)X
-3412(in)X
-3502(memory)X
-3797(as)X
-3892(a)X
-3956(logical)X
-2418 3951(array)N
-2633(of)X
-2749(bucket)X
-3012(pointers.)X
-3359(Physically,)X
-3761(the)X
-3907(array)X
-4121(is)X
-2418 4039(arranged)N
-2728(in)X
-2818(segments)X
-3144(of)X
-3239(256)X
-3387(pointers.)X
-3713(Initially,)X
-4013(there)X
-2418 4127(is)N
-2530(space)X
-2767(to)X
-2887(allocate)X
-3195(256)X
-3373(segments.)X
-3769(Reallocation)X
-2418 4215(occurs)N
-2651(when)X
-2847(the)X
-2967(number)X
-3234(of)X
-3323(buckets)X
-3590(exceeds)X
-3867(32K)X
-4027(\(256)X
-2418 4303(*)N
-2508(256\).)X
-2745(Primary)X
-3053(pages)X
-3286(may)X
-3473(be)X
-3598(accessed)X
-3929(directly)X
-2418 4391(through)N
-2711(the)X
-2853(array)X
-3062(by)X
-3185(bucket)X
-3442(number)X
-3730(and)X
-3889(over\257ow)X
-2418 4479(pages)N
-2628(are)X
-2754 0.4028(referenced)AX
-3122(logically)X
-3429(by)X
-3536(their)X
-3710(over\257ow)X
-4022(page)X
-2418 4567(address.)N
-2726(For)X
-2864(small)X
-3063(hash)X
-3236(tables,)X
-3469(it)X
-3539(is)X
-3618(desirable)X
-3934(to)X
-4022(keep)X
-2418 4655(all)N
-2525(pages)X
-2735(in)X
-2823(main)X
-3009(memory)X
-3302(while)X
-3506(on)X
-3612(larger)X
-3826(tables,)X
-4059(this)X
-2418 4743(is)N
-2523(probably)X
-2860(impossible.)X
-3298(To)X
-3438(satisfy)X
-3698(both)X
-3891(of)X
-4009(these)X
-2418 4831(requirements,)N
-2900(the)X
-3041(package)X
-3348(includes)X
-3658(buffer)X
-3897(manage-)X
-2418 4919(ment)N
-2598(with)X
-2760(LRU)X
-2940(\(least)X
-3134(recently)X
-3413(used\))X
-3607(replacement.)X
-2590 5033(By)N
-2730(default,)X
-3020(the)X
-3165(package)X
-3475(allocates)X
-3802(up)X
-3928(to)X
-4036(64K)X
-2418 5121(bytes)N
-2616(of)X
-2712(buffered)X
-3014(pages.)X
-3246(All)X
-3377(pages)X
-3589(in)X
-3680(the)X
-3807(buffer)X
-4032(pool)X
-2418 5209(are)N
-2542(linked)X
-2766(in)X
-2852(LRU)X
-3036(order)X
-3230(to)X
-3316(facilitate)X
-3621(fast)X
-3761(replacement.)X
-2418 5297(Whereas)N
-2724(ef\256cient)X
-3011(access)X
-3241(to)X
-3327(primary)X
-3605(pages)X
-3812(is)X
-3889(provided)X
-2418 5385(by)N
-2521(the)X
-2642(bucket)X
-2879(array,)X
-3087(ef\256cient)X
-3372(access)X
-3600(to)X
-3684(over\257ow)X
-3991(pages)X
-2418 5473(is)N
-2501(provided)X
-2816(by)X
-2926(linking)X
-3182(over\257ow)X
-3497(page)X
-3679(buffers)X
-3936(to)X
-4027(their)X
-2418 5561(predecessor)N
-2827(page)X
-3008(\(either)X
-3247(the)X
-3374(primary)X
-3657(page)X
-3838(or)X
-3933(another)X
-2418 5649(over\257ow)N
-2742(page\).)X
-3000(This)X
-3181(means)X
-3425(that)X
-3584(an)X
-3699(over\257ow)X
-4022(page)X
-3 f
-432 5960(6)N
-2970(USENIX)X
-9 f
-3292(-)X
-3 f
-3356(Winter)X
-3621('91)X
-9 f
-3748(-)X
-3 f
-3812(Dallas,)X
-4065(TX)X
-
-7 p
-%%Page: 7 7
-0(Courier)xf 0 f
-10 s 10 xH 0 xS 0 f
-3 f
-720 258(Seltzer)N
-977(&)X
-1064(Yigit)X
-3278(A)X
-3356(New)X
-3528(Hashing)X
-3831(Package)X
-4136(for)X
-4259(UNIX)X
-1 f
-720 538(cannot)N
-955(be)X
-1052(present)X
-1305(in)X
-1388(the)X
-1507(buffer)X
-1724(pool)X
-1886(if)X
-1955(its)X
-2050(primary)X
-2324(page)X
-720 626(is)N
-804(not)X
-937(present.)X
-1240(This)X
-1413(does)X
-1591(not)X
-1724(impact)X
-1972(performance)X
-2409(or)X
-720 714(functionality,)N
-1209(because)X
-1524(an)X
-1660(over\257ow)X
-2005(page)X
-2217(will)X
-2400(be)X
-720 802(accessed)N
-1048(only)X
-1236(after)X
-1430(its)X
-1550(predecessor)X
-1975(page)X
-2172(has)X
-2324(been)X
-720 890(accessed.)N
-1068(Figure)X
-1303(4)X
-1369(depicts)X
-1622(the)X
-1746(data)X
-1905(structures)X
-2242(used)X
-2414(to)X
-720 978(manage)N
-990(the)X
-1108(buffer)X
-1325(pool.)X
-892 1092(The)N
-1040(in-memory)X
-1419(bucket)X
-1656(array)X
-1845(contains)X
-2134(pointers)X
-2414(to)X
-720 1180(buffer)N
-975(header)X
-1248(structures)X
-1617(which)X
-1870(represent)X
-2222(primary)X
-720 1268(pages.)N
-968(Buffer)X
-1203(headers)X
-1474(contain)X
-1735(modi\256ed)X
-2043(bits,)X
-2202(the)X
-2324(page)X
-720 1356(address)N
-995(of)X
-1096(the)X
-1228(buffer,)X
-1479(a)X
-1548(pointer)X
-1808(to)X
-1903(the)X
-2034(actual)X
-2259(buffer,)X
-720 1444(and)N
-875(a)X
-950(pointer)X
-1216(to)X
-1317(the)X
-1454(buffer)X
-1690(header)X
-1944(for)X
-2077(an)X
-2191(over\257ow)X
-720 1532(page)N
-901(if)X
-979(it)X
-1052(exists,)X
-1283(in)X
-1374(addition)X
-1665(to)X
-1756(the)X
-1883(LRU)X
-2072(links.)X
-2296(If)X
-2378(the)X
-720 1620(buffer)N
-950(corresponding)X
-1442(to)X
-1537(a)X
-1606(particular)X
-1947(bucket)X
-2194(is)X
-2280(not)X
-2414(in)X
-720 1708(memory,)N
-1048(its)X
-1164(pointer)X
-1432(is)X
-1526(NULL.)X
-1801(In)X
-1909(effect,)X
-2154(pages)X
-2377(are)X
-720 1796(linked)N
-950(in)X
-1042(three)X
-1233(ways.)X
-1468(Using)X
-1689(the)X
-1817(buffer)X
-2043(headers,)X
-2338(they)X
-720 1884(are)N
-851(linked)X
-1083(physically)X
-1444(through)X
-1725(the)X
-1854(LRU)X
-2045(links)X
-2231(and)X
-2378(the)X
-720 1972(over\257ow)N
-1036(links.)X
-1241(Using)X
-1462(the)X
-1590(pages)X
-1803(themselves,)X
-2209(they)X
-2377(are)X
-720 2060(linked)N
-943(logically)X
-1246(through)X
-1518(the)X
-1639(over\257ow)X
-1946(addresses)X
-2276(on)X
-2378(the)X
-720 2148(page.)N
-948(Since)X
-1162(over\257ow)X
-1482(pages)X
-1700(are)X
-1834(accessed)X
-2151(only)X
-2328(after)X
-720 2236(their)N
-904(predecessor)X
-1321(pages,)X
-1560(they)X
-1734(are)X
-1869(removed)X
-2186(from)X
-2378(the)X
-720 2324(buffer)N
-937(pool)X
-1099(when)X
-1293(their)X
-1460(primary)X
-1734(is)X
-1807(removed.)X
-10 f
-720 2412 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
-1 Dt
-2309 3177 MXY
-24 15 Dl
--8 -15 Dl
-8 -15 Dl
--24 15 Dl
-52 0 Dl
-789 3160 MXY
--35 0 Dl
-0 -156 Dl
-1607 0 Dl
-0 173 Dl
-789 3091 MXY
--24 -15 Dl
-9 15 Dl
--9 15 Dl
-24 -15 Dl
--69 0 Dl
-2309 3125 MXY
-104 0 Dl
-0 -155 Dl
--1693 0 Dl
-0 121 Dl
-927 3160 MXY
-24 15 Dl
--9 -15 Dl
-9 -15 Dl
--24 15 Dl
-553 0 Dl
-1618 3177 MXY
-8 27 Dl
-4 -17 Dl
-16 -6 Dl
--28 -4 Dl
-138 121 Dl
-1895 3315 MXY
-28 3 Dl
--15 -9 Dl
-1 -18 Dl
--14 24 Dl
-276 -138 Dl
-3108 MY
--28 -3 Dl
-15 10 Dl
--1 17 Dl
-14 -24 Dl
--276 138 Dl
-1756 3229 MXY
--8 -27 Dl
--3 17 Dl
--16 6 Dl
-27 4 Dl
--138 -121 Dl
-1480 MX
--24 -15 Dl
-9 15 Dl
--9 15 Dl
-24 -15 Dl
--553 0 Dl
-3 f
-5 s
-1083 3073(LRU)N
-1178(chain)X
-4 Ds
-1402 3851 MXY
- 1402 3851 lineto
- 1471 3851 lineto
- 1471 3920 lineto
- 1402 3920 lineto
- 1402 3851 lineto
-closepath 19 1402 3851 1471 3920 Dp
-1445 3747(Over\257ow)N
-1613(Address)X
-1549 3609 MXY
-0 69 Dl
-1756 MX
--23 -15 Dl
-8 15 Dl
--8 15 Dl
-23 -15 Dl
--207 0 Dl
--1 Ds
-3 Dt
-1756 3419 MXY
--6 -28 Dl
--4 17 Dl
--17 5 Dl
-27 6 Dl
--138 -138 Dl
-2240 3471 MXY
-15 -24 Dl
--15 9 Dl
--15 -9 Dl
-15 24 Dl
-0 -138 Dl
-1826 3609 MXY
-15 -24 Dl
--15 9 Dl
--16 -9 Dl
-16 24 Dl
-0 -138 Dl
-1549 MX
-15 -24 Dl
--15 9 Dl
--15 -9 Dl
-15 24 Dl
-0 -138 Dl
-858 3471 MXY
-15 -24 Dl
--15 9 Dl
--15 -9 Dl
-15 24 Dl
-0 -138 Dl
-2240 3056 MXY
-15 -24 Dl
--15 9 Dl
--15 -9 Dl
-15 24 Dl
-0 -138 Dl
-1549 3056 MXY
-15 -24 Dl
--15 9 Dl
--15 -9 Dl
-15 24 Dl
-0 -138 Dl
-858 3056 MXY
-15 -24 Dl
--15 9 Dl
--15 -9 Dl
-15 24 Dl
-0 -138 Dl
-1 Dt
-2171 3471 MXY
- 2171 3471 lineto
- 2448 3471 lineto
- 2448 3609 lineto
- 2171 3609 lineto
- 2171 3471 lineto
-closepath 19 2171 3471 2448 3609 Dp
-1756 3609 MXY
- 1756 3609 lineto
- 2033 3609 lineto
- 2033 3747 lineto
- 1756 3747 lineto
- 1756 3609 lineto
-closepath 3 1756 3609 2033 3747 Dp
-1480 3471 MXY
- 1480 3471 lineto
- 1756 3471 lineto
- 1756 3609 lineto
- 1480 3609 lineto
- 1480 3471 lineto
-closepath 19 1480 3471 1756 3609 Dp
-789 MX
- 789 3471 lineto
- 1065 3471 lineto
- 1065 3609 lineto
- 789 3609 lineto
- 789 3471 lineto
-closepath 19 789 3471 1065 3609 Dp
-962 3903(Buffer)N
-1083(Header)X
-849 3851 MXY
- 849 3851 lineto
- 918 3851 lineto
- 918 3920 lineto
- 849 3920 lineto
- 849 3851 lineto
-closepath 14 849 3851 918 3920 Dp
-1756 3194 MXY
- 1756 3194 lineto
- 1895 3194 lineto
- 1895 3471 lineto
- 1756 3471 lineto
- 1756 3194 lineto
-closepath 14 1756 3194 1895 3471 Dp
-2171 3056 MXY
- 2171 3056 lineto
- 2309 3056 lineto
- 2309 3333 lineto
- 2171 3333 lineto
- 2171 3056 lineto
-closepath 14 2171 3056 2309 3333 Dp
-1480 MX
- 1480 3056 lineto
- 1618 3056 lineto
- 1618 3333 lineto
- 1480 3333 lineto
- 1480 3056 lineto
-closepath 14 1480 3056 1618 3333 Dp
-789 MX
- 789 3056 lineto
- 927 3056 lineto
- 927 3333 lineto
- 789 3333 lineto
- 789 3056 lineto
-closepath 14 789 3056 927 3333 Dp
-2780 MY
-0 138 Dl
-138 0 Dl
-0 -138 Dl
--138 0 Dl
-927 MX
-0 138 Dl
-138 0 Dl
-0 -138 Dl
--138 0 Dl
-1065 MX
-0 138 Dl
-138 0 Dl
-0 -138 Dl
--138 0 Dl
-1203 MX
-0 138 Dl
-139 0 Dl
-0 -138 Dl
--139 0 Dl
-1342 MX
-0 138 Dl
-138 0 Dl
-0 -138 Dl
--138 0 Dl
-1480 MX
-0 138 Dl
-138 0 Dl
-0 -138 Dl
--138 0 Dl
-1618 MX
-0 138 Dl
-138 0 Dl
-0 -138 Dl
--138 0 Dl
-1756 MX
-0 138 Dl
-139 0 Dl
-0 -138 Dl
--139 0 Dl
-1895 MX
-0 138 Dl
-138 0 Dl
-0 -138 Dl
--138 0 Dl
-2033 MX
-0 138 Dl
-138 0 Dl
-0 -138 Dl
--138 0 Dl
-2171 MX
-0 138 Dl
-138 0 Dl
-0 -138 Dl
--138 0 Dl
-2309 MX
-0 138 Dl
-139 0 Dl
-0 -138 Dl
--139 0 Dl
-13 s
-1048 2720(In)N
-1173(Memory)X
-1580(Bucket)X
-1918(Array)X
-867 3584(B0)N
-1558(B5)X
-2223(B10)X
-1788 3722(O1/1)N
-5 s
-1515 3903(Primay)N
-1651(Buffer)X
-4 Ds
-1990 3851 MXY
- 1990 3851 lineto
- 2059 3851 lineto
- 2059 3920 lineto
- 1990 3920 lineto
- 1990 3851 lineto
-closepath 3 1990 3851 2059 3920 Dp
-2102 3903(Over\257ow)N
-2270(Buffer)X
-3 Dt
--1 Ds
-8 s
-720 4184(Figure)N
-922(4:)X
-1 f
-996(Three)X
-1164(primary)X
-1386(pages)X
-1551(\(B0,)X
-1683(B5,)X
-1794(B10\))X
-1942(are)X
-2039(accessed)X
-2281(directly)X
-720 4272(from)N
-862(the)X
-958(bucket)X
-1146(array.)X
-1326(The)X
-1443(one)X
-1553(over\257ow)X
-1798(page)X
-1935(\(O1/1\))X
-2122(is)X
-2182(linked)X
-2359(phy-)X
-720 4360(sically)N
-915(from)X
-1067(its)X
-1155(primary)X
-1384(page's)X
-1577(buffer)X
-1759(header)X
-1955(as)X
-2035(well)X
-2172(as)X
-2252(logically)X
-720 4448(from)N
-860(its)X
-937(predecessor)X
-1253(page)X
-1389(buffer)X
-1560(\(B5\).)X
-10 s
-10 f
-720 4624 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
-3 f
-1191 4954(Table)N
-1406(Parameterization)X
-1 f
-892 5086(When)N
-1107(a)X
-1166(hash)X
-1336(table)X
-1515(is)X
-1590(created,)X
-1865(the)X
-1985(bucket)X
-2221(size,)X
-2388(\256ll)X
-720 5174(factor,)N
-953(initial)X
-1164(number)X
-1434(of)X
-1526(elements,)X
-1856(number)X
-2125(of)X
-2216(bytes)X
-2409(of)X
-720 5262(main)N
-919(memory)X
-1225(used)X
-1411(for)X
-1543(caching,)X
-1851(and)X
-2005(a)X
-2079(user-de\256ned)X
-720 5350(hash)N
-892(function)X
-1184(may)X
-1347(be)X
-1448(speci\256ed.)X
-1797(The)X
-1946(bucket)X
-2184(size)X
-2333(\(and)X
-720 5438(page)N
-906(size)X
-1064(for)X
-1191(over\257ow)X
-1509(pages\))X
-1752(defaults)X
-2039(to)X
-2134(256)X
-2287(bytes.)X
-720 5526(For)N
-858(tables)X
-1072(with)X
-1241(large)X
-1429(data)X
-1590(items,)X
-1810(it)X
-1881(may)X
-2046(be)X
-2149(preferable)X
-720 5614(to)N
-803(increase)X
-1088(the)X
-1207(page)X
-1380(size,)X
-1545(and,)X
-1701(conversely,)X
-2089(applications)X
-720 5702(storing)N
-1002(small)X
-1235(items)X
-1467(exclusively)X
-1891(in)X
-2012(memory)X
-2338(may)X
-2706 538(bene\256t)N
-2966(from)X
-3164(a)X
-3242(smaller)X
-3520(bucket)X
-3776(size.)X
-3983(A)X
-4082(bucket)X
-4337(size)X
-2706 626(smaller)N
-2962(than)X
-3120(64)X
-3220(bytes)X
-3409(is)X
-3482(not)X
-3604(recommended.)X
-2878 740(The)N
-3031(\256ll)X
-3147(factor)X
-3363(indicates)X
-3676(a)X
-3740(desired)X
-4000(density)X
-4258(within)X
-2706 828(the)N
-2833(hash)X
-3009(table.)X
-3234(It)X
-3312(is)X
-3394(an)X
-3499(approximation)X
-3995(of)X
-4091(the)X
-4217(number)X
-2706 916(of)N
-2815(keys)X
-3004(allowed)X
-3300(to)X
-3404(accumulate)X
-3811(in)X
-3914(any)X
-4071(one)X
-4228(bucket,)X
-2706 1004(determining)N
-3119(when)X
-3319(the)X
-3442(hash)X
-3614(table)X
-3795(grows.)X
-4056(Its)X
-4161(default)X
-4409(is)X
-2706 1092(eight.)N
-2953(If)X
-3054(the)X
-3199(user)X
-3380(knows)X
-3636(the)X
-3781(average)X
-4079(size)X
-4251(of)X
-4364(the)X
-2706 1180(key/data)N
-3008(pairs)X
-3194(being)X
-3402(stored)X
-3627(in)X
-3718(the)X
-3845(table,)X
-4050(near)X
-4218(optimal)X
-2706 1268(bucket)N
-2943(sizes)X
-3122(and)X
-3261(\256ll)X
-3372(factors)X
-3614(may)X
-3775(be)X
-3874(selected)X
-4155(by)X
-4257(apply-)X
-2706 1356(ing)N
-2828(the)X
-2946(equation:)X
-0 f
-8 s
-2706 1655(\(1\))N
-2994 -0.3938(\(\(average_pair_length)AX
-3830(+)X
-3906(4\))X
-4020(*)X
-3032 1743(ffactor\))N
-3374(>=)X
-3488(bsize)X
-1 f
-10 s
-2706 2042(For)N
-2859(highly)X
-3104(time)X
-3287(critical)X
-3551(applications,)X
-3999(experimenting)X
-2706 2130(with)N
-2919(different)X
-3266(bucket)X
-3550(sizes)X
-3776(and)X
-3962(\256ll)X
-4120(factors)X
-4409(is)X
-2706 2218(encouraged.)N
-2878 2332(Figures)N
-3144(5a,b,)X
-3326(and)X
-3468(c)X
-3530(illustrate)X
-3836(the)X
-3960(effects)X
-4200(of)X
-4292(vary-)X
-2706 2420(ing)N
-2841(page)X
-3026(sizes)X
-3215(and)X
-3363(\256ll)X
-3483(factors)X
-3734(for)X
-3860(the)X
-3990(same)X
-4187(data)X
-4353(set.)X
-2706 2508(The)N
-2864(data)X
-3031(set)X
-3152(consisted)X
-3482(of)X
-3581(24474)X
-3813(keys)X
-3992(taken)X
-4198(from)X
-4386(an)X
-2706 2596(online)N
-2931(dictionary.)X
-3301(The)X
-3451(data)X
-3609(value)X
-3807(for)X
-3925(each)X
-4097(key)X
-4237(was)X
-4386(an)X
-2706 2684(ASCII)N
-2938(string)X
-3143(for)X
-3260(an)X
-3359(integer)X
-3605(from)X
-3784(1)X
-3847(to)X
-3931(24474)X
-4153(inclusive.)X
-2706 2772(The)N
-2867(test)X
-3013(run)X
-3155(consisted)X
-3488(of)X
-3590(creating)X
-3884(a)X
-3955(new)X
-4124(hash)X
-4306(table)X
-2706 2860(\(where)N
-2966(the)X
-3100(ultimate)X
-3398(size)X
-3559(of)X
-3662(the)X
-3796(table)X
-3987(was)X
-4147(known)X
-4400(in)X
-2706 2948(advance\),)N
-3054(entering)X
-3354(each)X
-3539(key/data)X
-3848(pair)X
-4010(into)X
-4171(the)X
-4306(table)X
-2706 3036(and)N
-2849(then)X
-3014(retrieving)X
-3353(each)X
-3528(key/data)X
-3827(pair)X
-3979(from)X
-4162(the)X
-4286(table.)X
-2706 3124(Each)N
-2898(of)X
-2996(the)X
-3125(graphs)X
-3369(shows)X
-3599(the)X
-3727(timings)X
-3996(resulting)X
-4306(from)X
-2706 3212(varying)N
-2973(the)X
-3093(pagesize)X
-3392(from)X
-3570(128)X
-3712(bytes)X
-3903(to)X
-3986(1M)X
-4118(and)X
-4255(the)X
-4374(\256ll)X
-2706 3300(factor)N
-2929(from)X
-3120(1)X
-3195(to)X
-3292(128.)X
-3486(For)X
-3631(each)X
-3813(run,)X
-3974(the)X
-4106(buffer)X
-4337(size)X
-2706 3388(was)N
-2874(set)X
-3006(at)X
-3106(1M.)X
-3299(The)X
-3466(tests)X
-3650(were)X
-3849(all)X
-3971(run)X
-4120(on)X
-4242(an)X
-4360(HP)X
-2706 3476(9000/370)N
-3077(\(33.3)X
-3312(Mhz)X
-3527(MC68030\),)X
-3966(with)X
-4176(16M)X
-4395(of)X
-2706 3564(memory,)N
-3042(64K)X
-3228(physically)X
-3605(addressed)X
-3970(cache,)X
-4222(and)X
-4386(an)X
-2706 3652(HP7959S)N
-3055(disk)X
-3231(drive,)X
-3459(running)X
-3751(4.3BSD-Reno)X
-4244(single-)X
-2706 3740(user.)N
-2878 3854(Both)N
-3066(system)X
-3321(time)X
-3496(\(Figure)X
-3764(5a\))X
-3899(and)X
-4047(elapsed)X
-4320(time)X
-2706 3942(\(Figure)N
-2966(5b\))X
-3097(show)X
-3290(that)X
-3434(for)X
-3552(all)X
-3655(bucket)X
-3892(sizes,)X
-4091(the)X
-4212(greatest)X
-2706 4030(performance)N
-3137(gains)X
-3329(are)X
-3451(made)X
-3648(by)X
-3751(increasing)X
-4104(the)X
-4225(\256ll)X
-4336(fac-)X
-2706 4118(tor)N
-2822(until)X
-2995(equation)X
-3298(1)X
-3365(is)X
-3445(satis\256ed.)X
-3774(The)X
-3925(user)X
-4085(time)X
-4253(shown)X
-2706 4206(in)N
-2791(Figure)X
-3023(5c)X
-3122(gives)X
-3314(a)X
-3373(more)X
-3561(detailed)X
-3838(picture)X
-4083(of)X
-4172(how)X
-4332(per-)X
-2706 4294(formance)N
-3054(varies.)X
-3330(The)X
-3499(smaller)X
-3778(bucket)X
-4035(sizes)X
-4234(require)X
-2706 4382(fewer)N
-2921(keys)X
-3099(per)X
-3233(page)X
-3416(to)X
-3509(satisfy)X
-3749(equation)X
-4056(1)X
-4127(and)X
-4274(there-)X
-2706 4470(fore)N
-2860(incur)X
-3049(fewer)X
-3257(collisions.)X
-3607(However,)X
-3946(when)X
-4144(the)X
-4265(buffer)X
-2706 4558(pool)N
-2884(size)X
-3045(is)X
-3134(\256xed,)X
-3349(smaller)X
-3620(pages)X
-3838(imply)X
-4059(more)X
-4259(pages.)X
-2706 4646(An)N
-2830(increased)X
-3160(number)X
-3430(of)X
-3522(pages)X
-3730(means)X
-3960(more)X
-2 f
-4150(malloc\(3\))X
-1 f
-2706 4734(calls)N
-2879(and)X
-3021(more)X
-3212(overhead)X
-3533(in)X
-3621(the)X
-3745(hash)X
-3918(package's)X
-4265(buffer)X
-2706 4822(manager)N
-3003(to)X
-3085(manage)X
-3355(the)X
-3473(additional)X
-3813(pages.)X
-2878 4936(The)N
-3028(tradeoff)X
-3308(works)X
-3529(out)X
-3655(most)X
-3834(favorably)X
-4166(when)X
-4364(the)X
-2706 5024(page)N
-2886(size)X
-3039(is)X
-3120(256)X
-3268(and)X
-3412(the)X
-3538(\256ll)X
-3654(factor)X
-3870(is)X
-3950(8.)X
-4057(Similar)X
-4319(con-)X
-2706 5112(clusions)N
-3009(were)X
-3207(obtained)X
-3524(if)X
-3614(the)X
-3753(test)X
-3905(was)X
-4071(run)X
-4218(without)X
-2706 5200(knowing)N
-3007(the)X
-3126(\256nal)X
-3289(table)X
-3466(size)X
-3612(in)X
-3695(advance.)X
-4020(If)X
-4095(the)X
-4214(\256le)X
-4337(was)X
-2706 5288(closed)N
-2942(and)X
-3088(written)X
-3345(to)X
-3437(disk,)X
-3620(the)X
-3748(conclusions)X
-4156(were)X
-4343(still)X
-2706 5376(the)N
-2832(same.)X
-3065(However,)X
-3408(rereading)X
-3740(the)X
-3865(\256le)X
-3994(from)X
-4177(disk)X
-4337(was)X
-2706 5464(slightly)N
-2983(faster)X
-3199(if)X
-3285(a)X
-3358(larger)X
-3583(bucket)X
-3834(size)X
-3996(and)X
-4149(\256ll)X
-4274(factor)X
-2706 5552(were)N
-2898(used)X
-3079(\(1K)X
-3238(bucket)X
-3486(size)X
-3645(and)X
-3795(32)X
-3909(\256ll)X
-4031(factor\).)X
-4320(This)X
-2706 5640(follows)N
-2987(intuitively)X
-3356(from)X
-3553(the)X
-3691(improved)X
-4038(ef\256ciency)X
-4395(of)X
-3 f
-720 5960(USENIX)N
-9 f
-1042(-)X
-3 f
-1106(Winter)X
-1371('91)X
-9 f
-1498(-)X
-3 f
-1562(Dallas,)X
-1815(TX)X
-4424(7)X
-
-8 p
-%%Page: 8 8
-0(Courier)xf 0 f
-10 s 10 xH 0 xS 0 f
-3 f
-432 258(A)N
-510(New)X
-682(Hashing)X
-985(Package)X
-1290(for)X
-1413(UNIX)X
-3663(Seltzer)X
-3920(&)X
-4007(Yigit)X
-1 f
-432 538(performing)N
-830(1K)X
-965(reads)X
-1172(from)X
-1365(the)X
-1500(disk)X
-1670(rather)X
-1894(than)X
-2068(256)X
-432 626(byte)N
-609(reads.)X
-857(In)X
-962(general,)X
-1257(performance)X
-1702(for)X
-1834(disk)X
-2005(based)X
-432 714(tables)N
-639(is)X
-712(best)X
-861(when)X
-1055(the)X
-1173(page)X
-1345(size)X
-1490(is)X
-1563(approximately)X
-2046(1K.)X
-10 f
-432 802 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
-619 2380 MXY
--12 24 Dl
-24 0 Dl
--12 -24 Dl
-629 2437 MXY
--12 24 Dl
-24 0 Dl
--12 -24 Dl
-648 2504 MXY
--12 25 Dl
-24 0 Dl
--12 -25 Dl
-686 2515 MXY
--12 24 Dl
-24 0 Dl
--12 -24 Dl
-762 2516 MXY
--12 24 Dl
-25 0 Dl
--13 -24 Dl
-916 2515 MXY
--13 24 Dl
-25 0 Dl
--12 -24 Dl
-1222 2516 MXY
--12 24 Dl
-24 0 Dl
--12 -24 Dl
-1834 2515 MXY
--12 24 Dl
-24 0 Dl
--12 -24 Dl
-1 Dt
-619 2392 MXY
-10 57 Dl
-19 67 Dl
-38 11 Dl
-76 1 Dl
-154 -1 Dl
-306 1 Dl
-612 -1 Dl
-8 s
-1 f
-1628 2522(128)N
-3 Dt
-607 2245 MXY
-24 Dc
-617 2375 MXY
-23 Dc
-635 2442 MXY
-24 Dc
-674 2525 MXY
-23 Dc
-750 2529 MXY
-24 Dc
-904 2527 MXY
-23 Dc
-1210 MX
-23 Dc
-1822 2528 MXY
-23 Dc
-20 Ds
-1 Dt
-619 2245 MXY
-10 130 Dl
-19 67 Dl
-38 83 Dl
-76 4 Dl
-154 -2 Dl
-306 0 Dl
-612 1 Dl
-678 2482(256)N
--1 Ds
-3 Dt
-619 2127 MXY
-0 24 Dl
-0 -12 Dl
-12 0 Dl
--24 0 Dl
-629 2191 MXY
-0 25 Dl
-0 -12 Dl
-12 0 Dl
--24 0 Dl
-648 2334 MXY
-0 24 Dl
-0 -12 Dl
-12 0 Dl
--24 0 Dl
-686 2409 MXY
-0 25 Dl
-0 -13 Dl
-12 0 Dl
--24 0 Dl
-762 2516 MXY
-0 25 Dl
-0 -12 Dl
-13 0 Dl
--25 0 Dl
-916 2516 MXY
-0 24 Dl
-0 -12 Dl
-12 0 Dl
--25 0 Dl
-1222 2515 MXY
-0 24 Dl
-0 -12 Dl
-12 0 Dl
--24 0 Dl
-1834 2515 MXY
-0 24 Dl
-0 -12 Dl
-12 0 Dl
--24 0 Dl
-5 Dt
-619 2139 MXY
-10 65 Dl
-19 142 Dl
-38 75 Dl
-76 108 Dl
-154 -1 Dl
-306 -1 Dl
-612 0 Dl
-694 2401(512)N
-3 Dt
-631 2064 MXY
--24 24 Dl
-12 -12 Dl
--12 -12 Dl
-24 24 Dl
-641 2077 MXY
--24 25 Dl
-12 -12 Dl
--12 -13 Dl
-24 25 Dl
-660 2132 MXY
--24 24 Dl
-12 -12 Dl
--12 -12 Dl
-24 24 Dl
-698 2292 MXY
--24 24 Dl
-12 -12 Dl
--12 -12 Dl
-24 24 Dl
-775 2382 MXY
--25 24 Dl
-12 -12 Dl
--12 -12 Dl
-25 24 Dl
-928 2516 MXY
--25 24 Dl
-13 -12 Dl
--13 -12 Dl
-25 24 Dl
-1234 2516 MXY
--24 25 Dl
-12 -12 Dl
--12 -13 Dl
-24 25 Dl
-1846 2516 MXY
--24 24 Dl
-12 -12 Dl
--12 -12 Dl
-24 24 Dl
-16 Ds
-1 Dt
-619 2076 MXY
-10 14 Dl
-19 54 Dl
-38 160 Dl
-76 90 Dl
-154 134 Dl
-306 1 Dl
-612 -1 Dl
-694 2257(1024)N
--1 Ds
-3 Dt
-619 1877 MXY
-12 -24 Dl
--24 0 Dl
-12 24 Dl
-629 1855 MXY
-12 -24 Dl
--24 0 Dl
-12 24 Dl
-648 1838 MXY
-12 -24 Dl
--24 0 Dl
-12 24 Dl
-686 1860 MXY
-12 -25 Dl
--24 0 Dl
-12 25 Dl
-762 1923 MXY
-13 -24 Dl
--25 0 Dl
-12 24 Dl
-916 2087 MXY
-12 -24 Dl
--25 0 Dl
-13 24 Dl
-1222 2256 MXY
-12 -24 Dl
--24 0 Dl
-12 24 Dl
-1834 2541 MXY
-12 -25 Dl
--24 0 Dl
-12 25 Dl
-619 1865 MXY
-10 -22 Dl
-19 -17 Dl
-38 21 Dl
-76 64 Dl
-154 164 Dl
-306 169 Dl
-612 285 Dl
-1645 2427(4096)N
-619 1243 MXY
-0 24 Dl
-0 -12 Dl
-12 0 Dl
--24 0 Dl
-629 1196 MXY
-0 24 Dl
-0 -12 Dl
-12 0 Dl
--24 0 Dl
-648 1146 MXY
-0 24 Dl
-0 -12 Dl
-12 0 Dl
--24 0 Dl
-686 1174 MXY
-0 25 Dl
-0 -13 Dl
-12 0 Dl
--24 0 Dl
-762 1249 MXY
-0 24 Dl
-0 -12 Dl
-13 0 Dl
--25 0 Dl
-916 1371 MXY
-0 24 Dl
-0 -12 Dl
-12 0 Dl
--25 0 Dl
-1222 1680 MXY
-0 24 Dl
-0 -12 Dl
-12 0 Dl
--24 0 Dl
-1834 1999 MXY
-0 24 Dl
-0 -12 Dl
-12 0 Dl
--24 0 Dl
-619 1255 MXY
-10 -47 Dl
-19 -50 Dl
-38 28 Dl
-76 75 Dl
-154 122 Dl
-306 309 Dl
-612 319 Dl
-1741 1934(8192)N
-5 Dt
-609 2531 MXY
-1225 0 Dl
-609 MX
-0 -1553 Dl
-2531 MY
-0 16 Dl
-4 Ds
-1 Dt
-2531 MY
-0 -1553 Dl
-593 2625(0)N
--1 Ds
-5 Dt
-916 2531 MXY
-0 16 Dl
-4 Ds
-1 Dt
-2531 MY
-0 -1553 Dl
-884 2625(32)N
--1 Ds
-5 Dt
-1222 2531 MXY
-0 16 Dl
-4 Ds
-1 Dt
-2531 MY
-0 -1553 Dl
-1190 2625(64)N
--1 Ds
-5 Dt
-1528 2531 MXY
-0 16 Dl
-4 Ds
-1 Dt
-2531 MY
-0 -1553 Dl
-1496 2625(96)N
--1 Ds
-5 Dt
-1834 2531 MXY
-0 16 Dl
-4 Ds
-1 Dt
-2531 MY
-0 -1553 Dl
-1786 2625(128)N
--1 Ds
-5 Dt
-609 2531 MXY
--16 0 Dl
-4 Ds
-1 Dt
-609 MX
-1225 0 Dl
-545 2558(0)N
--1 Ds
-5 Dt
-609 2013 MXY
--16 0 Dl
-4 Ds
-1 Dt
-609 MX
-1225 0 Dl
-481 2040(100)N
--1 Ds
-5 Dt
-609 1496 MXY
--16 0 Dl
-4 Ds
-1 Dt
-609 MX
-1225 0 Dl
-481 1523(200)N
--1 Ds
-5 Dt
-609 978 MXY
--16 0 Dl
-4 Ds
-1 Dt
-609 MX
-1225 0 Dl
-481 1005(300)N
-1088 2724(Fill)N
-1194(Factor)X
-422 1611(S)N
-426 1667(e)N
-426 1724(c)N
-424 1780(o)N
-424 1837(n)N
-424 1893(d)N
-428 1949(s)N
-3 Dt
--1 Ds
-3 f
-432 2882(Figure)N
-636(5a:)X
-1 f
-744(System)X
-956(Time)X
-1113(for)X
-1209(dictionary)X
-1490(data)X
-1618(set)X
-1711(with)X
-1847(1M)X
-1958(of)X
-2033(buffer)X
-432 2970(space)N
-594(and)X
-707(varying)X
-923(bucket)X
-1114(sizes)X
-1259(and)X
-1372(\256ll)X
-1465(factors.)X
-1675(Each)X
-1823(line)X
-1940(is)X
-2004(labeled)X
-432 3058(with)N
-562(its)X
-639(bucket)X
-825(size.)X
-10 s
-10 f
-432 3234 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
-8 s
-1 f
-428 4381(s)N
-424 4325(d)N
-424 4269(n)N
-424 4212(o)N
-426 4156(c)N
-426 4099(e)N
-422 4043(S)N
-1116 5156(Fill)N
-1222(Factor)X
-506 3437(3200)N
-4 Ds
-1 Dt
-666 3410 MXY
-1168 0 Dl
--1 Ds
-5 Dt
-666 MX
--16 0 Dl
-506 3825(2400)N
-4 Ds
-1 Dt
-666 3799 MXY
-1168 0 Dl
--1 Ds
-5 Dt
-666 MX
--16 0 Dl
-506 4214(1600)N
-4 Ds
-1 Dt
-666 4186 MXY
-1168 0 Dl
--1 Ds
-5 Dt
-666 MX
--16 0 Dl
-538 4602(800)N
-4 Ds
-1 Dt
-666 4575 MXY
-1168 0 Dl
--1 Ds
-5 Dt
-666 MX
--16 0 Dl
-602 4990(0)N
-4 Ds
-1 Dt
-666 4963 MXY
-1168 0 Dl
--1 Ds
-5 Dt
-666 MX
--16 0 Dl
-1786 5057(128)N
-4 Ds
-1 Dt
-1834 4963 MXY
-0 -1553 Dl
--1 Ds
-5 Dt
-4963 MY
-0 16 Dl
-1510 5057(96)N
-4 Ds
-1 Dt
-1542 4963 MXY
-0 -1553 Dl
--1 Ds
-5 Dt
-4963 MY
-0 16 Dl
-1218 5057(64)N
-4 Ds
-1 Dt
-1250 4963 MXY
-0 -1553 Dl
--1 Ds
-5 Dt
-4963 MY
-0 16 Dl
-926 5057(32)N
-4 Ds
-1 Dt
-958 4963 MXY
-0 -1553 Dl
--1 Ds
-5 Dt
-4963 MY
-0 16 Dl
-650 5057(0)N
-4 Ds
-1 Dt
-666 4963 MXY
-0 -1553 Dl
--1 Ds
-5 Dt
-4963 MY
-0 16 Dl
-4963 MY
-0 -1553 Dl
-4963 MY
-1168 0 Dl
-1741 4752(8192)N
-3 Dt
-675 3732 MXY
-9 -172 Dl
-18 -118 Dl
-37 128 Dl
-73 -121 Dl
-146 623 Dl
-292 497 Dl
-584 245 Dl
-4802 MY
-0 24 Dl
-0 -12 Dl
-12 0 Dl
--24 0 Dl
-1250 4557 MXY
-0 25 Dl
-0 -13 Dl
-12 0 Dl
--24 0 Dl
-958 4060 MXY
-0 24 Dl
-0 -12 Dl
-12 0 Dl
--24 0 Dl
-812 3437 MXY
-0 24 Dl
-0 -12 Dl
-12 0 Dl
--24 0 Dl
-739 3558 MXY
-0 24 Dl
-0 -12 Dl
-12 0 Dl
--24 0 Dl
-702 3430 MXY
-0 25 Dl
-0 -13 Dl
-13 0 Dl
--25 0 Dl
-684 3548 MXY
-0 24 Dl
-0 -12 Dl
-12 0 Dl
--24 0 Dl
-675 3720 MXY
-0 24 Dl
-0 -12 Dl
-12 0 Dl
--24 0 Dl
-1637 4912(4096)N
-675 4307 MXY
-9 -58 Dl
-18 30 Dl
-37 89 Dl
-73 144 Dl
-146 235 Dl
-292 122 Dl
-584 89 Dl
-4970 MY
-12 -24 Dl
--24 0 Dl
-12 24 Dl
-1250 4881 MXY
-12 -24 Dl
--24 0 Dl
-12 24 Dl
-958 4759 MXY
-12 -24 Dl
--24 0 Dl
-12 24 Dl
-812 4524 MXY
-12 -24 Dl
--24 0 Dl
-12 24 Dl
-739 4380 MXY
-12 -24 Dl
--24 0 Dl
-12 24 Dl
-702 4291 MXY
-13 -24 Dl
--25 0 Dl
-12 24 Dl
-684 4261 MXY
-12 -24 Dl
--24 0 Dl
-12 24 Dl
-675 4319 MXY
-12 -24 Dl
--24 0 Dl
-12 24 Dl
-734 4662(1024)N
-16 Ds
-1 Dt
-675 4352 MXY
-9 60 Dl
-18 134 Dl
-37 266 Dl
-73 117 Dl
-146 30 Dl
-292 0 Dl
-584 -1 Dl
--1 Ds
-3 Dt
-1846 4946 MXY
--24 24 Dl
-12 -12 Dl
--12 -12 Dl
-24 24 Dl
-1262 4946 MXY
--24 25 Dl
-12 -12 Dl
--12 -13 Dl
-24 25 Dl
-970 4947 MXY
--24 24 Dl
-12 -12 Dl
--12 -12 Dl
-24 24 Dl
-824 4917 MXY
--24 24 Dl
-12 -12 Dl
--12 -12 Dl
-24 24 Dl
-751 4800 MXY
--24 24 Dl
-12 -12 Dl
--12 -12 Dl
-24 24 Dl
-715 4534 MXY
--25 25 Dl
-12 -13 Dl
--12 -12 Dl
-25 25 Dl
-696 4400 MXY
--24 24 Dl
-12 -12 Dl
--12 -12 Dl
-24 24 Dl
-687 4339 MXY
--24 25 Dl
-12 -12 Dl
--12 -13 Dl
-24 25 Dl
-718 4792(512)N
-5 Dt
-675 4422 MXY
-9 137 Dl
-18 278 Dl
-37 105 Dl
-73 18 Dl
-146 -1 Dl
-292 0 Dl
-584 -1 Dl
-3 Dt
-4946 MY
-0 24 Dl
-0 -12 Dl
-12 0 Dl
--24 0 Dl
-1250 4946 MXY
-0 25 Dl
-0 -12 Dl
-12 0 Dl
--24 0 Dl
-958 4947 MXY
-0 24 Dl
-0 -12 Dl
-12 0 Dl
--24 0 Dl
-812 4948 MXY
-0 24 Dl
-0 -12 Dl
-12 0 Dl
--24 0 Dl
-739 4930 MXY
-0 24 Dl
-0 -12 Dl
-12 0 Dl
--24 0 Dl
-702 4824 MXY
-0 25 Dl
-0 -12 Dl
-13 0 Dl
--25 0 Dl
-684 4547 MXY
-0 24 Dl
-0 -12 Dl
-12 0 Dl
--24 0 Dl
-675 4410 MXY
-0 25 Dl
-0 -13 Dl
-12 0 Dl
--24 0 Dl
-750 4921(256)N
-20 Ds
-1 Dt
-675 4597 MXY
-9 246 Dl
-18 106 Dl
-37 10 Dl
-73 0 Dl
-146 0 Dl
-292 0 Dl
-584 -1 Dl
--1 Ds
-3 Dt
-1822 MX
-23 Dc
-1238 4959 MXY
-23 Dc
-946 MX
-23 Dc
-800 MX
-23 Dc
-727 MX
-23 Dc
-691 4949 MXY
-23 Dc
-672 4843 MXY
-24 Dc
-663 4597 MXY
-24 Dc
-1395 4961(128)N
-1 Dt
-675 4855 MXY
-9 93 Dl
-18 10 Dl
-37 1 Dl
-73 0 Dl
-146 -1 Dl
-292 0 Dl
-584 0 Dl
-3 Dt
-4946 MY
--12 24 Dl
-24 0 Dl
--12 -24 Dl
-1250 MX
--12 24 Dl
-24 0 Dl
--12 -24 Dl
-958 MX
--12 24 Dl
-24 0 Dl
--12 -24 Dl
-812 MX
--12 25 Dl
-24 0 Dl
--12 -25 Dl
-739 4947 MXY
--12 24 Dl
-24 0 Dl
--12 -24 Dl
-702 4946 MXY
--12 24 Dl
-25 0 Dl
--13 -24 Dl
-684 4936 MXY
--12 24 Dl
-24 0 Dl
--12 -24 Dl
-675 4843 MXY
--12 24 Dl
-24 0 Dl
--12 -24 Dl
-3 Dt
--1 Ds
-3 f
-432 5314(Figure)N
-634(5b:)X
-1 f
-744(Elapsed)X
-967(Time)X
-1123(for)X
-1218(dictionary)X
-1498(data)X
-1625(set)X
-1717(with)X
-1851(1M)X
-1960(of)X
-2033(buffer)X
-432 5402(space)N
-593(and)X
-705(varying)X
-920(bucket)X
-1110(sizes)X
-1254(and)X
-1366(\256ll)X
-1457(factors.)X
-1681(Each)X
-1827(line)X
-1942(is)X
-2004(labeled)X
-432 5490(with)N
-562(its)X
-639(bucket)X
-825(size.)X
-10 s
-2590 538(If)N
-2677(an)X
-2785(approximation)X
-3284(of)X
-3383(the)X
-3513(number)X
-3790(of)X
-3889(elements)X
-2418 626(ultimately)N
-2773(to)X
-2866(be)X
-2973(stored)X
-3200(in)X
-3293(the)X
-3422(hash)X
-3599(table)X
-3785(is)X
-3868(known)X
-4116(at)X
-2418 714(the)N
-2564(time)X
-2754(of)X
-2869(creation,)X
-3196(the)X
-3342(hash)X
-3536(package)X
-3847(takes)X
-4059(this)X
-2418 802(number)N
-2688(as)X
-2779(a)X
-2839(parameter)X
-3185(and)X
-3325(uses)X
-3487(it)X
-3555(to)X
-3641(hash)X
-3812(entries)X
-4050(into)X
-2418 890(the)N
-2541(full)X
-2677(sized)X
-2867(table)X
-3048(rather)X
-3261(than)X
-3424(growing)X
-3716(the)X
-3838(table)X
-4018(from)X
-2418 978(a)N
-2477(single)X
-2691(bucket.)X
-2968(If)X
-3044(this)X
-3181(number)X
-3448(is)X
-3523(not)X
-3647(known,)X
-3907(the)X
-4027(hash)X
-2418 1066(table)N
-2632(starts)X
-2859(with)X
-3059(a)X
-3153(single)X
-3402(bucket)X
-3674(and)X
-3848(gracefully)X
-2418 1154(expands)N
-2707(as)X
-2800(elements)X
-3111(are)X
-3236(added,)X
-3474(although)X
-3780(a)X
-3842(slight)X
-4044(per-)X
-2418 1242(formance)N
-2747(degradation)X
-3151(may)X
-3313(be)X
-3413(noticed.)X
-3713(Figure)X
-3946(6)X
-4010(illus-)X
-2418 1330(trates)N
-2625(the)X
-2756(difference)X
-3116(in)X
-3211(performance)X
-3651(between)X
-3952(storing)X
-2418 1418(keys)N
-2588(in)X
-2673(a)X
-2732(\256le)X
-2857(when)X
-3054(the)X
-3174(ultimate)X
-3458(size)X
-3605(is)X
-3680(known)X
-3920(\(the)X
-4067(left)X
-2418 1506(bars)N
-2581(in)X
-2672(each)X
-2849(set\),)X
-3014(compared)X
-3360(to)X
-3450(building)X
-3744(the)X
-3870(\256le)X
-4000(when)X
-2418 1594(the)N
-2550(ultimate)X
-2846(size)X
-3005(is)X
-3091(unknown)X
-3422(\(the)X
-3580(right)X
-3764(bars)X
-3931(in)X
-4026(each)X
-2418 1682(set\).)N
-2609(Once)X
-2814(the)X
-2947(\256ll)X
-3069(factor)X
-3291(is)X
-3378(suf\256ciently)X
-3772(high)X
-3948(for)X
-4076(the)X
-2418 1770(page)N
-2596(size)X
-2747(\(8\),)X
-2887(growing)X
-3180(the)X
-3304(table)X
-3486(dynamically)X
-3908(does)X
-4081(lit-)X
-2418 1858(tle)N
-2518(to)X
-2600(degrade)X
-2875(performance.)X
-10 f
-2418 1946 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
-9 s
-1 f
-2413 3238(s)N
-2409 3173(d)N
-2409 3108(n)N
-2409 3043(o)N
-2411 2979(c)N
-2411 2914(e)N
-2407 2849(S)N
-3143 4129(Fill)N
-3261(Factor)X
-2448 2152(15)N
-4 Ds
-1 Dt
-2557 2122 MXY
-1473 0 Dl
--1 Ds
-5 Dt
-2557 MX
--19 0 Dl
-2448 2747(10)N
-4 Ds
-1 Dt
-2557 2717 MXY
-1473 0 Dl
--1 Ds
-5 Dt
-2557 MX
--19 0 Dl
-2484 3343(5)N
-4 Ds
-1 Dt
-2557 3313 MXY
-1473 0 Dl
--1 Ds
-5 Dt
-2557 MX
--19 0 Dl
-2484 3938(0)N
-4 Ds
-1 Dt
-2557 3908 MXY
-1473 0 Dl
--1 Ds
-5 Dt
-2557 MX
--19 0 Dl
-3976 4015(128)N
-4 Ds
-1 Dt
-4030 3908 MXY
-0 -1786 Dl
--1 Ds
-5 Dt
-3908 MY
-0 19 Dl
-3626 4015(96)N
-4 Ds
-1 Dt
-3662 3908 MXY
-0 -1786 Dl
--1 Ds
-5 Dt
-3908 MY
-0 19 Dl
-3258 4015(64)N
-4 Ds
-1 Dt
-3294 3908 MXY
-0 -1786 Dl
--1 Ds
-5 Dt
-3908 MY
-0 19 Dl
-2889 4015(32)N
-4 Ds
-1 Dt
-2925 3908 MXY
-0 -1786 Dl
--1 Ds
-5 Dt
-3908 MY
-0 19 Dl
-2539 4015(0)N
-4 Ds
-1 Dt
-2557 3908 MXY
-0 -1786 Dl
--1 Ds
-5 Dt
-3908 MY
-0 19 Dl
-3908 MY
-0 -1786 Dl
-3908 MY
-1473 0 Dl
-4053 2378(8192)N
-3 Dt
-2569 2277 MXY
-11 0 Dl
-23 48 Dl
-46 -167 Dl
-92 35 Dl
-184 12 Dl
-369 143 Dl
-736 0 Dl
-2334 MY
-0 28 Dl
-0 -14 Dl
-14 0 Dl
--28 0 Dl
-3294 2334 MXY
-0 28 Dl
-0 -14 Dl
-13 0 Dl
--27 0 Dl
-2925 2192 MXY
-0 27 Dl
-0 -14 Dl
-14 0 Dl
--28 0 Dl
-2741 2180 MXY
-0 27 Dl
-0 -14 Dl
-14 0 Dl
--28 0 Dl
-2649 2144 MXY
-0 28 Dl
-0 -14 Dl
-14 0 Dl
--28 0 Dl
-2603 2311 MXY
-0 27 Dl
-0 -13 Dl
-14 0 Dl
--28 0 Dl
-2580 2263 MXY
-0 28 Dl
-0 -14 Dl
-14 0 Dl
--28 0 Dl
-2569 2263 MXY
-0 28 Dl
-0 -14 Dl
-13 0 Dl
--27 0 Dl
-4053 2591(4096)N
-2569 2348 MXY
-11 -11 Dl
-23 -96 Dl
-46 71 Dl
-92 72 Dl
-184 226 Dl
-369 48 Dl
-736 -60 Dl
-2612 MY
-14 -28 Dl
--28 0 Dl
-14 28 Dl
-3294 2672 MXY
-13 -28 Dl
--27 0 Dl
-14 28 Dl
-2925 2624 MXY
-14 -28 Dl
--28 0 Dl
-14 28 Dl
-2741 2398 MXY
-14 -28 Dl
--28 0 Dl
-14 28 Dl
-2649 2326 MXY
-14 -27 Dl
--28 0 Dl
-14 27 Dl
-2603 2255 MXY
-14 -28 Dl
--28 0 Dl
-14 28 Dl
-2580 2350 MXY
-14 -27 Dl
--28 0 Dl
-14 27 Dl
-2569 2362 MXY
-13 -28 Dl
--27 0 Dl
-14 28 Dl
-4053 2681(1024)N
-16 Ds
-1 Dt
-2569 2300 MXY
-11 48 Dl
-23 96 Dl
-46 95 Dl
-92 274 Dl
-184 202 Dl
-369 -155 Dl
-736 -190 Dl
--1 Ds
-3 Dt
-4044 2656 MXY
--28 28 Dl
-14 -14 Dl
--14 -14 Dl
-28 28 Dl
-3307 2846 MXY
--27 28 Dl
-14 -14 Dl
--14 -14 Dl
-27 28 Dl
-2939 3001 MXY
--28 28 Dl
-14 -14 Dl
--14 -14 Dl
-28 28 Dl
-2755 2799 MXY
--28 28 Dl
-14 -14 Dl
--14 -14 Dl
-28 28 Dl
-2663 2525 MXY
--28 28 Dl
-14 -14 Dl
--14 -14 Dl
-28 28 Dl
-2617 2430 MXY
--28 28 Dl
-14 -14 Dl
--14 -14 Dl
-28 28 Dl
-2594 2334 MXY
--28 28 Dl
-14 -14 Dl
--14 -14 Dl
-28 28 Dl
-2582 2287 MXY
--27 27 Dl
-14 -14 Dl
--14 -13 Dl
-27 27 Dl
-4053 2851(512)N
-5 Dt
-2569 2372 MXY
-11 -24 Dl
-23 405 Dl
-46 83 Dl
-92 227 Dl
-184 -72 Dl
-369 -119 Dl
-736 -107 Dl
-3 Dt
-2751 MY
-0 28 Dl
-0 -14 Dl
-14 0 Dl
--28 0 Dl
-3294 2858 MXY
-0 28 Dl
-0 -14 Dl
-13 0 Dl
--27 0 Dl
-2925 2977 MXY
-0 28 Dl
-0 -14 Dl
-14 0 Dl
--28 0 Dl
-2741 3049 MXY
-0 27 Dl
-0 -13 Dl
-14 0 Dl
--28 0 Dl
-2649 2823 MXY
-0 27 Dl
-0 -14 Dl
-14 0 Dl
--28 0 Dl
-2603 2739 MXY
-0 28 Dl
-0 -14 Dl
-14 0 Dl
--28 0 Dl
-2580 2334 MXY
-0 28 Dl
-0 -14 Dl
-14 0 Dl
--28 0 Dl
-2569 2358 MXY
-0 28 Dl
-0 -14 Dl
-13 0 Dl
--27 0 Dl
-4053 2795(256)N
-20 Ds
-1 Dt
-2569 2456 MXY
-11 285 Dl
-23 95 Dl
-46 251 Dl
-92 -60 Dl
-184 -84 Dl
-369 -107 Dl
-736 -71 Dl
--1 Ds
-3 Dt
-4016 MX
-27 Dc
-3280 2836 MXY
-27 Dc
-2912 2943 MXY
-27 Dc
-2728 3027 MXY
-27 Dc
-2635 3087 MXY
-28 Dc
-2589 2836 MXY
-28 Dc
-2566 2741 MXY
-27 Dc
-2554 2456 MXY
-28 Dc
-4053 2741(128)N
-1 Dt
-2569 2729 MXY
-11 203 Dl
-23 131 Dl
-46 -60 Dl
-92 -119 Dl
-184 -60 Dl
-369 -83 Dl
-736 -12 Dl
-3 Dt
-2716 MY
--14 27 Dl
-28 0 Dl
--14 -27 Dl
-3294 2727 MXY
--14 28 Dl
-27 0 Dl
--13 -28 Dl
-2925 2811 MXY
--14 27 Dl
-28 0 Dl
--14 -27 Dl
-2741 2870 MXY
--14 28 Dl
-28 0 Dl
--14 -28 Dl
-2649 2989 MXY
--14 28 Dl
-28 0 Dl
--14 -28 Dl
-2603 3049 MXY
--14 27 Dl
-28 0 Dl
--14 -27 Dl
-2580 2918 MXY
--14 28 Dl
-28 0 Dl
--14 -28 Dl
-2569 2716 MXY
--14 27 Dl
-27 0 Dl
--13 -27 Dl
-3 Dt
--1 Ds
-3 f
-8 s
-2418 4286(Figure)N
-2628(5c:)X
-1 f
-2738(User)X
-2887(Time)X
-3051(for)X
-3154(dictionary)X
-3442(data)X
-3577(set)X
-3677(with)X
-3820(1M)X
-3938(of)X
-4019(buffer)X
-2418 4374(space)N
-2579(and)X
-2691(varying)X
-2906(bucket)X
-3096(sizes)X
-3240(and)X
-3352(\256ll)X
-3443(factors.)X
-3667(Each)X
-3813(line)X
-3928(is)X
-3990(labeled)X
-2418 4462(with)N
-2548(its)X
-2625(bucket)X
-2811(size.)X
-10 s
-10 f
-2418 4638 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
-1 f
-2590 4840(Since)N
-2796(no)X
-2904(known)X
-3150(hash)X
-3325(function)X
-3620(performs)X
-3938(equally)X
-2418 4928(well)N
-2589(on)X
-2702(all)X
-2815(possible)X
-3110(data,)X
-3297(the)X
-3428(user)X
-3595(may)X
-3766(\256nd)X
-3923(that)X
-4076(the)X
-2418 5016(built-in)N
-2678(hash)X
-2849(function)X
-3140(does)X
-3311(poorly)X
-3544(on)X
-3648(a)X
-3708(particular)X
-4040(data)X
-2418 5104(set.)N
-2548(In)X
-2636(this)X
-2771(case,)X
-2950(a)X
-3006(hash)X
-3173(function,)X
-3480(taking)X
-3700(two)X
-3840(arguments)X
-2418 5192(\(a)N
-2507(pointer)X
-2760(to)X
-2848(a)X
-2910(byte)X
-3074(string)X
-3282(and)X
-3424(a)X
-3486(length\))X
-3739(and)X
-3880(returning)X
-2418 5280(an)N
-2517(unsigned)X
-2829(long)X
-2993(to)X
-3077(be)X
-3175(used)X
-3344(as)X
-3433(the)X
-3553(hash)X
-3722(value,)X
-3938(may)X
-4098(be)X
-2418 5368(speci\256ed)N
-2731(at)X
-2817(hash)X
-2992(table)X
-3176(creation)X
-3463(time.)X
-3673(When)X
-3893(an)X
-3996(exist-)X
-2418 5456(ing)N
-2570(hash)X
-2767(table)X
-2973(is)X
-3076(opened)X
-3358(and)X
-3524(a)X
-3609(hash)X
-3805(function)X
-4121(is)X
-2418 5544(speci\256ed,)N
-2752(the)X
-2879(hash)X
-3054(package)X
-3346(will)X
-3498(try)X
-3615(to)X
-3705(determine)X
-4054(that)X
-2418 5632(the)N
-2546(hash)X
-2723(function)X
-3020(supplied)X
-3321(is)X
-3404(the)X
-3532(one)X
-3678(with)X
-3850(which)X
-4076(the)X
-2418 5720(table)N
-2630(was)X
-2811(created.)X
-3139(There)X
-3382(are)X
-3536(a)X
-3627(variety)X
-3905(of)X
-4027(hash)X
-3 f
-432 5960(8)N
-2970(USENIX)X
-9 f
-3292(-)X
-3 f
-3356(Winter)X
-3621('91)X
-9 f
-3748(-)X
-3 f
-3812(Dallas,)X
-4065(TX)X
-
-9 p
-%%Page: 9 9
-0(Courier)xf 0 f
-10 s 10 xH 0 xS 0 f
-3 f
-720 258(Seltzer)N
-977(&)X
-1064(Yigit)X
-3278(A)X
-3356(New)X
-3528(Hashing)X
-3831(Package)X
-4136(for)X
-4259(UNIX)X
-1 f
-720 538(functions)N
-1065(provided)X
-1397(with)X
-1586(the)X
-1731(package.)X
-2082(The)X
-2253(default)X
-720 626(function)N
-1014(for)X
-1135(the)X
-1260(package)X
-1551(is)X
-1631(the)X
-1755(one)X
-1897(which)X
-2119(offered)X
-2378(the)X
-720 714(best)N
-875(performance)X
-1308(in)X
-1396(terms)X
-1600(of)X
-1693(cycles)X
-1920(executed)X
-2232(per)X
-2360(call)X
-720 802(\(it)N
-827(did)X
-965(not)X
-1103(produce)X
-1398(the)X
-1531(fewest)X
-1776(collisions)X
-2117(although)X
-2432(it)X
-720 890(was)N
-866(within)X
-1091(a)X
-1148(small)X
-1341(percentage)X
-1710(of)X
-1797(the)X
-1915(function)X
-2202(that)X
-2342(pro-)X
-720 978(duced)N
-947(the)X
-1080(fewest)X
-1324(collisions\).)X
-1731(Again,)X
-1981(in)X
-2077(time)X
-2253(critical)X
-720 1066(applications,)N
-1152(users)X
-1342(are)X
-1466(encouraged)X
-1862(to)X
-1949(experiment)X
-2334(with)X
-720 1154(a)N
-783(variety)X
-1032(of)X
-1125(hash)X
-1298(functions)X
-1622(to)X
-1710(achieve)X
-1982(optimal)X
-2252(perfor-)X
-720 1242(mance.)N
-10 f
-720 1330 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
-3 f
-7 s
-1038 2925(Full)N
-1149(size)X
-1251(table)X
-1384(\(left\))X
-1547 2718(Fill)N
-1643(Factor)X
-2268 2662(64)N
-1964(32)X
-1674(16)X
-1384(8)X
-1093(4)X
-4 Ds
-1 Dt
-900 2280 MXY
-1548 0 Dl
-900 1879 MXY
-1548 0 Dl
-900 1506 MXY
-1548 0 Dl
-1563 2902 MXY
-111 0 Dl
--1 Ds
-900 MX
-110 0 Dl
-1425 2828(System)N
-983(User)X
-1895 2778 MXY
- 1895 2778 lineto
- 1950 2778 lineto
- 1950 2833 lineto
- 1895 2833 lineto
- 1895 2778 lineto
-closepath 21 1895 2778 1950 2833 Dp
-1342 MX
- 1342 2778 lineto
- 1397 2778 lineto
- 1397 2833 lineto
- 1342 2833 lineto
- 1342 2778 lineto
-closepath 14 1342 2778 1397 2833 Dp
-900 MX
- 900 2778 lineto
- 955 2778 lineto
- 955 2833 lineto
- 900 2833 lineto
- 900 2778 lineto
-closepath 3 900 2778 955 2833 Dp
-5 Dt
-2283 2211 MXY
-96 0 Dl
-1992 MX
-97 0 Dl
-1702 MX
-97 0 Dl
-1411 2252 MXY
-97 0 Dl
-4 Ds
-1 Dt
-2283 2211 MXY
- 2283 2211 lineto
- 2379 2211 lineto
- 2379 2252 lineto
- 2283 2252 lineto
- 2283 2211 lineto
-closepath 14 2283 2211 2379 2252 Dp
-1992 MX
- 1992 2211 lineto
- 2089 2211 lineto
- 2089 2252 lineto
- 1992 2252 lineto
- 1992 2211 lineto
-closepath 14 1992 2211 2089 2252 Dp
-1702 MX
- 1702 2211 lineto
- 1799 2211 lineto
- 1799 2252 lineto
- 1702 2252 lineto
- 1702 2211 lineto
-closepath 14 1702 2211 1799 2252 Dp
-1411 2252 MXY
- 1411 2252 lineto
- 1508 2252 lineto
- 1508 2294 lineto
- 1411 2294 lineto
- 1411 2252 lineto
-closepath 14 1411 2252 1508 2294 Dp
-2283 MX
- 2283 2252 lineto
- 2379 2252 lineto
- 2379 2612 lineto
- 2283 2612 lineto
- 2283 2252 lineto
-closepath 3 2283 2252 2379 2612 Dp
-1992 MX
- 1992 2252 lineto
- 2089 2252 lineto
- 2089 2612 lineto
- 1992 2612 lineto
- 1992 2252 lineto
-closepath 3 1992 2252 2089 2612 Dp
-1702 MX
- 1702 2252 lineto
- 1799 2252 lineto
- 1799 2612 lineto
- 1702 2612 lineto
- 1702 2252 lineto
-closepath 3 1702 2252 1799 2612 Dp
-1411 2294 MXY
- 1411 2294 lineto
- 1508 2294 lineto
- 1508 2612 lineto
- 1411 2612 lineto
- 1411 2294 lineto
-closepath 3 1411 2294 1508 2612 Dp
--1 Ds
-2158 2238 MXY
- 2158 2238 lineto
- 2255 2238 lineto
- 2255 2252 lineto
- 2158 2252 lineto
- 2158 2238 lineto
-closepath 21 2158 2238 2255 2252 Dp
-1868 MX
- 1868 2238 lineto
- 1965 2238 lineto
- 1965 2280 lineto
- 1868 2280 lineto
- 1868 2238 lineto
-closepath 21 1868 2238 1965 2280 Dp
-1577 MX
- 1577 2238 lineto
- 1674 2238 lineto
- 1674 2308 lineto
- 1577 2308 lineto
- 1577 2238 lineto
-closepath 21 1577 2238 1674 2308 Dp
-1287 2308 MXY
- 1287 2308 lineto
- 1287 2280 lineto
- 1384 2280 lineto
- 1384 2308 lineto
- 1287 2308 lineto
-closepath 21 1287 2280 1384 2308 Dp
-2158 2280 MXY
- 2158 2280 lineto
- 2158 2252 lineto
- 2255 2252 lineto
- 2255 2280 lineto
- 2158 2280 lineto
-closepath 14 2158 2252 2255 2280 Dp
-1868 2308 MXY
- 1868 2308 lineto
- 1868 2280 lineto
- 1965 2280 lineto
- 1965 2308 lineto
- 1868 2308 lineto
-closepath 14 1868 2280 1965 2308 Dp
-1577 2335 MXY
- 1577 2335 lineto
- 1577 2308 lineto
- 1674 2308 lineto
- 1674 2335 lineto
- 1577 2335 lineto
-closepath 14 1577 2308 1674 2335 Dp
-1287 2363 MXY
- 1287 2363 lineto
- 1287 2308 lineto
- 1384 2308 lineto
- 1384 2363 lineto
- 1287 2363 lineto
-closepath 14 1287 2308 1384 2363 Dp
-2158 2280 MXY
- 2158 2280 lineto
- 2255 2280 lineto
- 2255 2612 lineto
- 2158 2612 lineto
- 2158 2280 lineto
-closepath 3 2158 2280 2255 2612 Dp
-1868 2308 MXY
- 1868 2308 lineto
- 1965 2308 lineto
- 1965 2612 lineto
- 1868 2612 lineto
- 1868 2308 lineto
-closepath 3 1868 2308 1965 2612 Dp
-1577 2335 MXY
- 1577 2335 lineto
- 1674 2335 lineto
- 1674 2612 lineto
- 1577 2612 lineto
- 1577 2335 lineto
-closepath 3 1577 2335 1674 2612 Dp
-1287 2363 MXY
- 1287 2363 lineto
- 1384 2363 lineto
- 1384 2612 lineto
- 1287 2612 lineto
- 1287 2363 lineto
-closepath 3 1287 2363 1384 2612 Dp
-4 Ds
-1121 2066 MXY
- 1121 2066 lineto
- 1218 2066 lineto
- 1224 2080 lineto
- 1127 2080 lineto
- 1121 2066 lineto
-closepath 21 1121 2066 1224 2080 Dp
-2080 MY
- 1121 2080 lineto
- 1218 2080 lineto
- 1218 2273 lineto
- 1121 2273 lineto
- 1121 2080 lineto
-closepath 14 1121 2080 1218 2273 Dp
-2273 MY
- 1121 2273 lineto
- 1218 2273 lineto
- 1218 2612 lineto
- 1121 2612 lineto
- 1121 2273 lineto
-closepath 3 1121 2273 1218 2612 Dp
--1 Ds
-997 1589 MXY
- 997 1589 lineto
- 1093 1589 lineto
- 1093 1644 lineto
- 997 1644 lineto
- 997 1589 lineto
-closepath 21 997 1589 1093 1644 Dp
-1644 MY
- 997 1644 lineto
- 1093 1644 lineto
- 1093 2280 lineto
- 997 2280 lineto
- 997 1644 lineto
-closepath 14 997 1644 1093 2280 Dp
-2280 MY
- 997 2280 lineto
- 1093 2280 lineto
- 1093 2612 lineto
- 997 2612 lineto
- 997 2280 lineto
-closepath 3 997 2280 1093 2612 Dp
-10 s
-719 2093(s)N
-712 2037(d)N
-712 1982(n)N
-714 1927(o)N
-716 1872(c)N
-716 1816(e)N
-712 1761(S)N
-804 2286(10)N
-804 1899(20)N
-804 1540(30)N
-3 Dt
-900 1506 MXY
-0 1106 Dl
-1548 0 Dl
-7 s
-1978 2828(Elapsed)N
-1701 2925(Dynamically)N
-2018(grown)X
-2184(table)X
-2317(\(right\))X
-3 Dt
--1 Ds
-8 s
-720 3180(Figure)N
-934(6:)X
-1 f
-1020(The)X
-1152(total)X
-1299(regions)X
-1520(indicate)X
-1755(the)X
-1865(difference)X
-2154(between)X
-2398(the)X
-720 3268(elapsed)N
-931(time)X
-1065(and)X
-1177(the)X
-1275(sum)X
-1402(of)X
-1475(the)X
-1573(system)X
-1771(and)X
-1883(user)X
-2008(time.)X
-2173(The)X
-2291(left)X
-2395(bar)X
-720 3356(of)N
-798(each)X
-939(set)X
-1035(depicts)X
-1241(the)X
-1344(timing)X
-1537(of)X
-1615(the)X
-1718(test)X
-1831(run)X
-1940(when)X
-2102(the)X
-2204(number)X
-2423(of)X
-720 3444(entries)N
-910(is)X
-973(known)X
-1167(in)X
-1237(advance.)X
-1496(The)X
-1614(right)X
-1754(bars)X
-1879(depict)X
-2054(the)X
-2151(timing)X
-2338(when)X
-720 3532(the)N
-814(\256le)X
-912(is)X
-971(grown)X
-1150(from)X
-1290(a)X
-1334(single)X
-1503(bucket.)X
-10 s
-10 f
-720 3708 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
-1 f
-892 3910(Since)N
-1131(this)X
-1307(hashing)X
-1617(package)X
-1942(provides)X
-2279(buffer)X
-720 3998(management,)N
-1188(the)X
-1323(amount)X
-1600(of)X
-1704(space)X
-1920(allocated)X
-2247(for)X
-2378(the)X
-720 4086(buffer)N
-948(pool)X
-1121(may)X
-1290(be)X
-1397(speci\256ed)X
-1713(by)X
-1824(the)X
-1953(user.)X
-2157(Using)X
-2378(the)X
-720 4174(same)N
-910(data)X
-1069(set)X
-1183(and)X
-1324(test)X
-1459(procedure)X
-1805(as)X
-1896(used)X
-2067(to)X
-2153(derive)X
-2378(the)X
-720 4262(graphs)N
-962(in)X
-1052(Figures)X
-1320(5a-c,)X
-1507(Figure)X
-1744(7)X
-1812(shows)X
-2039(the)X
-2164(impact)X
-2409(of)X
-720 4350(varying)N
-997(the)X
-1126(size)X
-1282(of)X
-1380(the)X
-1509(buffer)X
-1737(pool.)X
-1950(The)X
-2106(bucket)X
-2351(size)X
-720 4438(was)N
-873(set)X
-989(to)X
-1078(256)X
-1225(bytes)X
-1421(and)X
-1564(the)X
-1689(\256ll)X
-1804(factor)X
-2019(was)X
-2171(set)X
-2287(to)X
-2376(16.)X
-720 4526(The)N
-869(buffer)X
-1090(pool)X
-1256(size)X
-1404(was)X
-1552(varied)X
-1776(from)X
-1955(0)X
-2018(\(the)X
-2166(minimum)X
-720 4614(number)N
-986(of)X
-1074(pages)X
-1277(required)X
-1565(to)X
-1647(be)X
-1743(buffered\))X
-2063(to)X
-2145(1M.)X
-2316(With)X
-720 4702(1M)N
-854(of)X
-944(buffer)X
-1164(space,)X
-1386(the)X
-1507(package)X
-1794(performed)X
-2151(no)X
-2253(I/O)X
-2382(for)X
-720 4790(this)N
-871(data)X
-1040(set.)X
-1204(As)X
-1328(Figure)X
-1572(7)X
-1647(illustrates,)X
-2013(increasing)X
-2378(the)X
-720 4878(buffer)N
-944(pool)X
-1113(size)X
-1265(can)X
-1404(have)X
-1583(a)X
-1646(dramatic)X
-1954(affect)X
-2165(on)X
-2271(result-)X
-720 4966(ing)N
-842(performance.)X
-2 f
-8 s
-1269 4941(7)N
-1 f
-16 s
-720 5353 MXY
-864 0 Dl
-2 f
-8 s
-760 5408(7)N
-1 f
-9 s
-826 5433(Some)N
-1024(allocators)X
-1338(are)X
-1460(extremely)X
-1782(inef\256cient)X
-2107(at)X
-2192(allocating)X
-720 5513(memory.)N
-1029(If)X
-1110(you)X
-1251(\256nd)X
-1396(that)X
-1536(applications)X
-1916(are)X
-2036(running)X
-2292(out)X
-2416(of)X
-720 5593(memory)N
-1005(before)X
-1234(you)X
-1386(think)X
-1578(they)X
-1746(should,)X
-2000(try)X
-2124(varying)X
-2388(the)X
-720 5673(pagesize)N
-986(to)X
-1060(get)X
-1166(better)X
-1348(utilization)X
-1658(from)X
-1816(the)X
-1922(memory)X
-2180(allocator.)X
-10 s
-2830 1975 MXY
-0 -28 Dl
-28 0 Dl
-0 28 Dl
--28 0 Dl
-2853 2004 MXY
-0 -27 Dl
-28 0 Dl
-0 27 Dl
--28 0 Dl
-2876 2016 MXY
-0 -27 Dl
-27 0 Dl
-0 27 Dl
--27 0 Dl
-2922 1998 MXY
-0 -27 Dl
-27 0 Dl
-0 27 Dl
--27 0 Dl
-2967 2025 MXY
-0 -28 Dl
-28 0 Dl
-0 28 Dl
--28 0 Dl
-3013 2031 MXY
-0 -28 Dl
-28 0 Dl
-0 28 Dl
--28 0 Dl
-3059 MX
-0 -28 Dl
-27 0 Dl
-0 28 Dl
--27 0 Dl
-3196 2052 MXY
-0 -28 Dl
-27 0 Dl
-0 28 Dl
--27 0 Dl
-3561 2102 MXY
-0 -28 Dl
-28 0 Dl
-0 28 Dl
--28 0 Dl
-4292 2105 MXY
-0 -28 Dl
-27 0 Dl
-0 28 Dl
--27 0 Dl
-4 Ds
-1 Dt
-2844 1961 MXY
-23 30 Dl
-23 12 Dl
-45 -18 Dl
-46 26 Dl
-46 6 Dl
-45 0 Dl
-137 21 Dl
-366 50 Dl
-730 3 Dl
-9 s
-4227 2158(User)N
--1 Ds
-3 Dt
-2830 1211 MXY
-27 Dc
-2853 1261 MXY
-27 Dc
-2876 1267 MXY
-27 Dc
-2921 1341 MXY
-27 Dc
-2967 1385 MXY
-27 Dc
-3013 1450 MXY
-27 Dc
-3059 1497 MXY
-27 Dc
-3196 1686 MXY
-27 Dc
-3561 2109 MXY
-27 Dc
-4292 2295 MXY
-27 Dc
-20 Ds
-1 Dt
-2844 1211 MXY
-23 50 Dl
-23 6 Dl
-45 74 Dl
-46 44 Dl
-46 65 Dl
-45 47 Dl
-137 189 Dl
-366 423 Dl
-730 186 Dl
-4181 2270(System)N
--1 Ds
-3 Dt
-2844 583 MXY
-0 28 Dl
-0 -14 Dl
-14 0 Dl
--28 0 Dl
-2867 672 MXY
-0 27 Dl
-0 -14 Dl
-14 0 Dl
--28 0 Dl
-2890 701 MXY
-0 28 Dl
-0 -14 Dl
-13 0 Dl
--27 0 Dl
-2935 819 MXY
-0 28 Dl
-0 -14 Dl
-14 0 Dl
--27 0 Dl
-2981 849 MXY
-0 28 Dl
-0 -14 Dl
-14 0 Dl
--28 0 Dl
-3027 908 MXY
-0 27 Dl
-0 -13 Dl
-14 0 Dl
--28 0 Dl
-3072 1026 MXY
-0 27 Dl
-0 -13 Dl
-14 0 Dl
--27 0 Dl
-3209 1292 MXY
-0 27 Dl
-0 -14 Dl
-14 0 Dl
--27 0 Dl
-3575 1823 MXY
-0 28 Dl
-0 -14 Dl
-14 0 Dl
--28 0 Dl
-4305 2059 MXY
-0 28 Dl
-0 -14 Dl
-14 0 Dl
--27 0 Dl
-5 Dt
-2844 597 MXY
-23 88 Dl
-23 30 Dl
-45 118 Dl
-46 30 Dl
-46 59 Dl
-45 118 Dl
-137 265 Dl
-366 532 Dl
-730 236 Dl
-4328 2103(Total)N
-2844 2310 MXY
-1461 0 Dl
-2844 MX
-0 -1772 Dl
-2310 MY
-0 18 Dl
-4 Ds
-1 Dt
-2310 MY
-0 -1772 Dl
-2826 2416(0)N
--1 Ds
-5 Dt
-3209 2310 MXY
-0 18 Dl
-4 Ds
-1 Dt
-2310 MY
-0 -1772 Dl
-3155 2416(256)N
--1 Ds
-5 Dt
-3575 2310 MXY
-0 18 Dl
-4 Ds
-1 Dt
-2310 MY
-0 -1772 Dl
-3521 2416(512)N
--1 Ds
-5 Dt
-3940 2310 MXY
-0 18 Dl
-4 Ds
-1 Dt
-2310 MY
-0 -1772 Dl
-3886 2416(768)N
--1 Ds
-5 Dt
-4305 2310 MXY
-0 18 Dl
-4 Ds
-1 Dt
-2310 MY
-0 -1772 Dl
-4233 2416(1024)N
--1 Ds
-5 Dt
-2844 2310 MXY
--18 0 Dl
-4 Ds
-1 Dt
-2844 MX
-1461 0 Dl
-2771 2340(0)N
--1 Ds
-5 Dt
-2844 2014 MXY
--18 0 Dl
-2844 1719 MXY
--18 0 Dl
-4 Ds
-1 Dt
-2844 MX
-1461 0 Dl
-2735 1749(20)N
--1 Ds
-5 Dt
-2844 1423 MXY
--18 0 Dl
-2844 1128 MXY
--18 0 Dl
-4 Ds
-1 Dt
-2844 MX
-1461 0 Dl
-2735 1158(40)N
--1 Ds
-5 Dt
-2844 833 MXY
--18 0 Dl
-2844 538 MXY
--18 0 Dl
-4 Ds
-1 Dt
-2844 MX
-1461 0 Dl
-2735 568(60)N
-3239 2529(Buffer)N
-3445(Pool)X
-3595(Size)X
-3737(\(in)X
-3835(K\))X
-2695 1259(S)N
-2699 1324(e)N
-2699 1388(c)N
-2697 1452(o)N
-2697 1517(n)N
-2697 1581(d)N
-2701 1645(s)N
-3 Dt
--1 Ds
-3 f
-8 s
-2706 2773(Figure)N
-2908(7:)X
-1 f
-2982(User)X
-3123(time)X
-3258(is)X
-3322(virtually)X
-3560(insensitive)X
-3854(to)X
-3924(the)X
-4022(amount)X
-4234(of)X
-4307(buffer)X
-2706 2861(pool)N
-2852(available,)X
-3130(however,)X
-3396(both)X
-3541(system)X
-3750(time)X
-3895(and)X
-4018(elapsed)X
-4240(time)X
-4385(are)X
-2706 2949(inversely)N
-2960(proportional)X
-3296(to)X
-3366(the)X
-3464(size)X
-3583(of)X
-3656(the)X
-3753(buffer)X
-3927(pool.)X
-4092(Even)X
-4242(for)X
-4335(large)X
-2706 3037(data)N
-2831(sets)X
-2946(where)X
-3120(one)X
-3230(expects)X
-3439(few)X
-3552(collisions,)X
-3832(specifying)X
-4116(a)X
-4162(large)X
-4307(buffer)X
-2706 3125(pool)N
-2836(dramatically)X
-3171(improves)X
-3425(performance.)X
-10 s
-10 f
-2706 3301 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
-3 f
-3175 3543(Enhanced)N
-3536(Functionality)X
-1 f
-2878 3675(This)N
-3046(hashing)X
-3320(package)X
-3609(provides)X
-3910(a)X
-3971(set)X
-4085(of)X
-4177(compati-)X
-2706 3763(bility)N
-2895(routines)X
-3174(to)X
-3257(implement)X
-3620(the)X
-2 f
-3739(ndbm)X
-1 f
-3937(interface.)X
-4279(How-)X
-2706 3851(ever,)N
-2893(when)X
-3095(the)X
-3220(native)X
-3443(interface)X
-3752(is)X
-3832(used,)X
-4026(the)X
-4151(following)X
-2706 3939(additional)N
-3046(functionality)X
-3475(is)X
-3548(provided:)X
-10 f
-2798 4071(g)N
-1 f
-2946(Inserts)X
-3197(never)X
-3413(fail)X
-3556(because)X
-3847(too)X
-3985(many)X
-4199(keys)X
-2946 4159(hash)N
-3113(to)X
-3195(the)X
-3313(same)X
-3498(value.)X
-10 f
-2798 4247(g)N
-1 f
-2946(Inserts)X
-3187(never)X
-3393(fail)X
-3527(because)X
-3808(key)X
-3950(and/or)X
-4181(asso-)X
-2946 4335(ciated)N
-3158(data)X
-3312(is)X
-3385(too)X
-3507(large)X
-10 f
-2798 4423(g)N
-1 f
-2946(Hash)X
-3131(functions)X
-3449(may)X
-3607(be)X
-3703(user-speci\256ed.)X
-10 f
-2798 4511(g)N
-1 f
-2946(Multiple)X
-3268(pages)X
-3498(may)X
-3683(be)X
-3806(cached)X
-4077(in)X
-4186(main)X
-2946 4599(memory.)N
-2706 4731(It)N
-2801(also)X
-2976(provides)X
-3298(a)X
-3380(set)X
-3514(of)X
-3626(compatibility)X
-4097(routines)X
-4400(to)X
-2706 4819(implement)N
-3087(the)X
-2 f
-3224(hsearch)X
-1 f
-3516(interface.)X
-3876(Again,)X
-4130(the)X
-4266(native)X
-2706 4907(interface)N
-3008(offers)X
-3216(enhanced)X
-3540(functionality:)X
-10 f
-2798 5039(g)N
-1 f
-2946(Files)X
-3121(may)X
-3279(grow)X
-3464(beyond)X
-2 f
-3720(nelem)X
-1 f
-3932(elements.)X
-10 f
-2798 5127(g)N
-1 f
-2946(Multiple)X
-3247(hash)X
-3420(tables)X
-3632(may)X
-3795(be)X
-3896(accessed)X
-4203(con-)X
-2946 5215(currently.)N
-10 f
-2798 5303(g)N
-1 f
-2946(Hash)X
-3134(tables)X
-3344(may)X
-3505(be)X
-3604(stored)X
-3823(and)X
-3962(accessed)X
-4266(on)X
-2946 5391(disk.)N
-10 f
-2798 5479(g)N
-1 f
-2946(Hash)X
-3155(functions)X
-3497(may)X
-3679(be)X
-3799(user-speci\256ed)X
-4288(at)X
-2946 5567(runtime.)N
-3 f
-720 5960(USENIX)N
-9 f
-1042(-)X
-3 f
-1106(Winter)X
-1371('91)X
-9 f
-1498(-)X
-3 f
-1562(Dallas,)X
-1815(TX)X
-4424(9)X
-
-10 p
-%%Page: 10 10
-0(Courier)xf 0 f
-10 s 10 xH 0 xS 0 f
-3 f
-432 258(A)N
-510(New)X
-682(Hashing)X
-985(Package)X
-1290(for)X
-1413(UNIX)X
-3663(Seltzer)X
-3920(&)X
-4007(Yigit)X
-459 538(Relative)N
-760(Performance)X
-1227(of)X
-1314(the)X
-1441(New)X
-1613(Implementation)X
-1 f
-604 670(The)N
-761(performance)X
-1200(testing)X
-1445(of)X
-1544(the)X
-1674(new)X
-1840(package)X
-2135(is)X
-432 758(divided)N
-711(into)X
-874(two)X
-1033(test)X
-1183(suites.)X
-1424(The)X
-1588(\256rst)X
-1751(suite)X
-1941(of)X
-2046(tests)X
-432 846(requires)N
-727(that)X
-882(the)X
-1015(tables)X
-1237(be)X
-1348(read)X
-1522(from)X
-1713(and)X
-1864(written)X
-2126(to)X
-432 934(disk.)N
-640(In)X
-742(these)X
-942(tests,)X
-1139(the)X
-1272(basis)X
-1467(for)X
-1595(comparison)X
-2003(is)X
-2090(the)X
-432 1022(4.3BSD-Reno)N
-908(version)X
-1169(of)X
-2 f
-1260(ndbm)X
-1 f
-1438(.)X
-1502(Based)X
-1722(on)X
-1826(the)X
-1948(designs)X
-432 1110(of)N
-2 f
-521(sdbm)X
-1 f
-712(and)X
-2 f
-850(gdbm)X
-1 f
-1028(,)X
-1070(they)X
-1230(are)X
-1351(expected)X
-1659(to)X
-1743(perform)X
-2024(simi-)X
-432 1198(larly)N
-605(to)X
-2 f
-693(ndbm)X
-1 f
-871(,)X
-917(and)X
-1059(we)X
-1179(do)X
-1285(not)X
-1413(show)X
-1608(their)X
-1781(performance)X
-432 1286(numbers.)N
-800(The)X
-977(second)X
-1252(suite)X
-1454(contains)X
-1772(the)X
-1921(memory)X
-432 1374(resident)N
-712(test)X
-849(which)X
-1071(does)X
-1243(not)X
-1370(require)X
-1623(that)X
-1768(the)X
-1891(\256les)X
-2049(ever)X
-432 1462(be)N
-533(written)X
-784(to)X
-870(disk,)X
-1047(only)X
-1213(that)X
-1357(hash)X
-1528(tables)X
-1739(may)X
-1901(be)X
-2001(mani-)X
-432 1550(pulated)N
-692(in)X
-778(main)X
-961(memory.)X
-1291(In)X
-1381(this)X
-1519(test,)X
-1673(we)X
-1790(compare)X
-2090(the)X
-432 1638(performance)N
-859(to)X
-941(that)X
-1081(of)X
-1168(the)X
-2 f
-1286(hsearch)X
-1 f
-1560(routines.)X
-604 1752(For)N
-760(both)X
-947(suites,)X
-1194(two)X
-1358(different)X
-1679(databases)X
-2031(were)X
-432 1840(used.)N
-656(The)X
-818(\256rst)X
-979(is)X
-1069(the)X
-1204(dictionary)X
-1566(database)X
-1880(described)X
-432 1928(previously.)N
-836(The)X
-987(second)X
-1236(was)X
-1386(constructed)X
-1781(from)X
-1962(a)X
-2023(pass-)X
-432 2016(word)N
-647(\256le)X
-799(with)X
-990(approximately)X
-1502(300)X
-1671(accounts.)X
-2041(Two)X
-432 2104(records)N
-700(were)X
-887(constructed)X
-1287(for)X
-1411(each)X
-1589(account.)X
-1909(The)X
-2064(\256rst)X
-432 2192(used)N
-604(the)X
-727(logname)X
-1028(as)X
-1120(the)X
-1243(key)X
-1384(and)X
-1525(the)X
-1648(remainder)X
-1999(of)X
-2090(the)X
-432 2280(password)N
-768(entry)X
-965(for)X
-1091(the)X
-1221(data.)X
-1427(The)X
-1584(second)X
-1839(was)X
-1996(keyed)X
-432 2368(by)N
-541(uid)X
-672(and)X
-817(contained)X
-1157(the)X
-1283(entire)X
-1494(password)X
-1825(entry)X
-2018(as)X
-2113(its)X
-432 2456(data)N
-589(\256eld.)X
-794(The)X
-942(tests)X
-1107(were)X
-1287(all)X
-1389(run)X
-1518(on)X
-1620(the)X
-1740(HP)X
-1864(9000)X
-2046(with)X
-432 2544(the)N
-574(same)X
-783(con\256guration)X
-1254(previously)X
-1636(described.)X
-2027(Each)X
-432 2632(test)N
-576(was)X
-734(run)X
-874(\256ve)X
-1027(times)X
-1232(and)X
-1380(the)X
-1510(timing)X
-1750(results)X
-1991(of)X
-2090(the)X
-432 2720(runs)N
-602(were)X
-791(averaged.)X
-1154(The)X
-1311(variance)X
-1616(across)X
-1849(the)X
-1979(5)X
-2050(runs)X
-432 2808(was)N
-591(approximately)X
-1088(1%)X
-1229(of)X
-1330(the)X
-1462(average)X
-1746(yielding)X
-2041(95%)X
-432 2896(con\256dence)N
-800(intervals)X
-1096(of)X
-1183(approximately)X
-1666(2%.)X
-3 f
-1021 3050(Disk)N
-1196(Based)X
-1420(Tests)X
-1 f
-604 3182(In)N
-693(these)X
-880(tests,)X
-1064(we)X
-1180(use)X
-1308(a)X
-1365(bucket)X
-1600(size)X
-1746(of)X
-1834(1024)X
-2015(and)X
-2152(a)X
-432 3270(\256ll)N
-540(factor)X
-748(of)X
-835(32.)X
-3 f
-432 3384(create)N
-663(test)X
-1 f
-547 3498(The)N
-703(keys)X
-881(are)X
-1011(entered)X
-1279(into)X
-1433(the)X
-1561(hash)X
-1738(table,)X
-1944(and)X
-2090(the)X
-547 3586(\256le)N
-669(is)X
-742(\257ushed)X
-993(to)X
-1075(disk.)X
-3 f
-432 3700(read)N
-608(test)X
-1 f
-547 3814(A)N
-640(lookup)X
-897(is)X
-984(performed)X
-1353(for)X
-1481(each)X
-1663(key)X
-1813(in)X
-1909(the)X
-2041(hash)X
-547 3902(table.)N
-3 f
-432 4016(verify)N
-653(test)X
-1 f
-547 4130(A)N
-640(lookup)X
-897(is)X
-984(performed)X
-1353(for)X
-1481(each)X
-1663(key)X
-1813(in)X
-1909(the)X
-2041(hash)X
-547 4218(table,)N
-759(and)X
-911(the)X
-1045(data)X
-1215(returned)X
-1519(is)X
-1608(compared)X
-1961(against)X
-547 4306(that)N
-687(originally)X
-1018(stored)X
-1234(in)X
-1316(the)X
-1434(hash)X
-1601(table.)X
-3 f
-432 4420(sequential)N
-798(retrieve)X
-1 f
-547 4534(All)N
-674(keys)X
-846(are)X
-970(retrieved)X
-1281(in)X
-1367(sequential)X
-1716(order)X
-1910(from)X
-2090(the)X
-547 4622(hash)N
-724(table.)X
-950(The)X
-2 f
-1105(ndbm)X
-1 f
-1313(interface)X
-1625(allows)X
-1863(sequential)X
-547 4710(retrieval)N
-848(of)X
-948(the)X
-1079(keys)X
-1259(from)X
-1448(the)X
-1578(database,)X
-1907(but)X
-2041(does)X
-547 4798(not)N
-701(return)X
-945(the)X
-1094(data)X
-1279(associated)X
-1660(with)X
-1853(each)X
-2052(key.)X
-547 4886(Therefore,)N
-929(we)X
-1067(compare)X
-1388(the)X
-1530(performance)X
-1980(of)X
-2090(the)X
-547 4974(new)N
-703(package)X
-989(to)X
-1073(two)X
-1215(different)X
-1514(runs)X
-1674(of)X
-2 f
-1763(ndbm)X
-1 f
-1941(.)X
-2002(In)X
-2090(the)X
-547 5062(\256rst)N
-697(case,)X
-2 f
-882(ndbm)X
-1 f
-1086(returns)X
-1335(only)X
-1503(the)X
-1627(keys)X
-1800(while)X
-2003(in)X
-2090(the)X
-547 5150(second,)N
-2 f
-823(ndbm)X
-1 f
-1034(returns)X
-1290(both)X
-1465(the)X
-1596(keys)X
-1776(and)X
-1924(the)X
-2054(data)X
-547 5238(\(requiring)N
-894(a)X
-956(second)X
-1204(call)X
-1345(to)X
-1432(the)X
-1555(library\).)X
-1861(There)X
-2074(is)X
-2152(a)X
-547 5326(single)N
-764(run)X
-897(for)X
-1017(the)X
-1141(new)X
-1300(library)X
-1539(since)X
-1729(it)X
-1798(returns)X
-2046(both)X
-547 5414(the)N
-665(key)X
-801(and)X
-937(the)X
-1055(data.)X
-3 f
-3014 538(In-Memory)N
-3431(Test)X
-1 f
-2590 670(This)N
-2757(test)X
-2892(uses)X
-3054(a)X
-3114(bucket)X
-3352(size)X
-3501(of)X
-3592(256)X
-3736(and)X
-3876(a)X
-3936(\256ll)X
-4048(fac-)X
-2418 758(tor)N
-2527(of)X
-2614(8.)X
-3 f
-2418 872(create/read)N
-2827(test)X
-1 f
-2533 986(In)N
-2627(this)X
-2769(test,)X
-2927(a)X
-2989(hash)X
-3162(table)X
-3344(is)X
-3423(created)X
-3682(by)X
-3788(inserting)X
-4094(all)X
-2533 1074(the)N
-2660(key/data)X
-2961(pairs.)X
-3186(Then)X
-3380(a)X
-3445(keyed)X
-3666(retrieval)X
-3963(is)X
-4044(per-)X
-2533 1162(formed)N
-2801(for)X
-2931(each)X
-3115(pair,)X
-3295(and)X
-3446(the)X
-3579(hash)X
-3761(table)X
-3952(is)X
-4040(des-)X
-2533 1250(troyed.)N
-3 f
-2938 1404(Performance)N
-3405(Results)X
-1 f
-2590 1536(Figures)N
-2866(8a)X
-2978(and)X
-3130(8b)X
-3246(show)X
-3451(the)X
-3585(user)X
-3755(time,)X
-3952(system)X
-2418 1624(time,)N
-2608(and)X
-2752(elapsed)X
-3021(time)X
-3191(for)X
-3312(each)X
-3487(test)X
-3625(for)X
-3746(both)X
-3915(the)X
-4040(new)X
-2418 1712(implementation)N
-2951(and)X
-3098(the)X
-3227(old)X
-3360(implementation)X
-3893(\()X
-2 f
-3920(hsearch)X
-1 f
-2418 1800(or)N
-2 f
-2528(ndbm)X
-1 f
-2706(,)X
-2769(whichever)X
-3147(is)X
-3243(appropriate\))X
-3678(as)X
-3787(well)X
-3967(as)X
-4076(the)X
-2418 1888(improvement.)N
-2929(The)X
-3098(improvement)X
-3569(is)X
-3666(expressed)X
-4027(as)X
-4138(a)X
-2418 1976(percentage)N
-2787(of)X
-2874(the)X
-2992(old)X
-3114(running)X
-3383(time:)X
-0 f
-8 s
-2418 2275(%)N
-2494(=)X
-2570(100)X
-2722(*)X
-2798 -0.4219(\(old_time)AX
-3178(-)X
-3254 -0.4219(new_time\))AX
-3634(/)X
-3710(old_time)X
-1 f
-10 s
-2590 2600(In)N
-2700(nearly)X
-2944(all)X
-3067(cases,)X
-3299(the)X
-3439(new)X
-3615(routines)X
-3915(perform)X
-2418 2688(better)N
-2628(than)X
-2793(the)X
-2918(old)X
-3047(routines)X
-3332(\(both)X
-2 f
-3527(hsearch)X
-1 f
-3807(and)X
-2 f
-3949(ndbm)X
-1 f
-4127(\).)X
-2418 2776(Although)N
-2755(the)X
-3 f
-2888(create)X
-1 f
-3134(tests)X
-3311(exhibit)X
-3567(superior)X
-3864(user)X
-4032(time)X
-2418 2864(performance,)N
-2869(the)X
-2991(test)X
-3126(time)X
-3292(is)X
-3369(dominated)X
-3731(by)X
-3834(the)X
-3955(cost)X
-4107(of)X
-2418 2952(writing)N
-2677(the)X
-2803(actual)X
-3023(\256le)X
-3153(to)X
-3243(disk.)X
-3444(For)X
-3583(the)X
-3709(large)X
-3897(database)X
-2418 3040(\(the)N
-2564(dictionary\),)X
-2957(this)X
-3093(completely)X
-3470(overwhelmed)X
-3927(the)X
-4045(sys-)X
-2418 3128(tem)N
-2570(time.)X
-2783(However,)X
-3129(for)X
-3254(the)X
-3383(small)X
-3587(data)X
-3752(base,)X
-3946(we)X
-4071(see)X
-2418 3216(that)N
-2569(differences)X
-2958(in)X
-3051(both)X
-3224(user)X
-3389(and)X
-3536(system)X
-3788(time)X
-3960(contri-)X
-2418 3304(bute)N
-2576(to)X
-2658(the)X
-2776(superior)X
-3059(performance)X
-3486(of)X
-3573(the)X
-3691(new)X
-3845(package.)X
-2590 3418(The)N
-3 f
-2764(read)X
-1 f
-2920(,)X
-3 f
-2989(verify)X
-1 f
-3190(,)X
-3259(and)X
-3 f
-3424(sequential)X
-1 f
-3818(results)X
-4075(are)X
-2418 3506(deceptive)N
-2758(for)X
-2883(the)X
-3012(small)X
-3216(database)X
-3524(since)X
-3720(the)X
-3849(entire)X
-4063(test)X
-2418 3594(ran)N
-2551(in)X
-2643(under)X
-2856(a)X
-2922(second.)X
-3215(However,)X
-3560(on)X
-3669(the)X
-3796(larger)X
-4013(data-)X
-2418 3682(base)N
-2590(the)X
-3 f
-2716(read)X
-1 f
-2900(and)X
-3 f
-3044(verify)X
-1 f
-3273(tests)X
-3443(bene\256t)X
-3689(from)X
-3873(the)X
-3999(cach-)X
-2418 3770(ing)N
-2546(of)X
-2639(buckets)X
-2910(in)X
-2998(the)X
-3122(new)X
-3282(package)X
-3571(to)X
-3658(improve)X
-3950(perfor-)X
-2418 3858(mance)N
-2666(by)X
-2784(over)X
-2965(80%.)X
-3169(Since)X
-3384(the)X
-3519(\256rst)X
-3 f
-3680(sequential)X
-1 f
-4063(test)X
-2418 3946(does)N
-2598(not)X
-2733(require)X
-2 f
-2994(ndbm)X
-1 f
-3205(to)X
-3299(return)X
-3523(the)X
-3653(data)X
-3819(values,)X
-4076(the)X
-2418 4034(user)N
-2573(time)X
-2735(is)X
-2808(lower)X
-3011(than)X
-3169(for)X
-3283(the)X
-3401(new)X
-3555(package.)X
-3879(However)X
-2418 4122(when)N
-2613(we)X
-2728(require)X
-2977(both)X
-3139(packages)X
-3454(to)X
-3536(return)X
-3748(data,)X
-3922(the)X
-4040(new)X
-2418 4210(package)N
-2702(excels)X
-2923(in)X
-3005(all)X
-3105(three)X
-3286(timings.)X
-2590 4324(The)N
-2773(small)X
-3003(database)X
-3337(runs)X
-3532(so)X
-3660(quickly)X
-3957(in)X
-4076(the)X
-2418 4412(memory-resident)N
-3000(case)X
-3173(that)X
-3326(the)X
-3457(results)X
-3699(are)X
-3831(uninterest-)X
-2418 4500(ing.)N
-2589(However,)X
-2933(for)X
-3056(the)X
-3183(larger)X
-3400(database)X
-3706(the)X
-3833(new)X
-3995(pack-)X
-2418 4588(age)N
-2567(pays)X
-2751(a)X
-2824(small)X
-3033(penalty)X
-3305(in)X
-3403(system)X
-3661(time)X
-3839(because)X
-4130(it)X
-2418 4676(limits)N
-2636(its)X
-2748(main)X
-2944(memory)X
-3247(utilization)X
-3607(and)X
-3759(swaps)X
-3991(pages)X
-2418 4764(out)N
-2550(to)X
-2642(temporary)X
-3002(storage)X
-3264(in)X
-3356(the)X
-3484(\256le)X
-3616(system)X
-3868(while)X
-4076(the)X
-2 f
-2418 4852(hsearch)N
-1 f
-2698(package)X
-2988(requires)X
-3273(that)X
-3419(the)X
-3543(application)X
-3924(allocate)X
-2418 4940(enough)N
-2692(space)X
-2909(for)X
-3041(all)X
-3159(key/data)X
-3468(pair.)X
-3670(However,)X
-4022(even)X
-2418 5028(with)N
-2600(the)X
-2738(system)X
-3000(time)X
-3182(penalty,)X
-3477(the)X
-3614(resulting)X
-3933(elapsed)X
-2418 5116(time)N
-2580(improves)X
-2898(by)X
-2998(over)X
-3161(50%.)X
-3 f
-432 5960(10)N
-2970(USENIX)X
-9 f
-3292(-)X
-3 f
-3356(Winter)X
-3621('91)X
-9 f
-3748(-)X
-3 f
-3812(Dallas,)X
-4065(TX)X
-
-11 p
-%%Page: 11 11
-0(Courier)xf 0 f
-10 s 10 xH 0 xS 0 f
-3 f
-720 258(Seltzer)N
-977(&)X
-1064(Yigit)X
-3278(A)X
-3356(New)X
-3528(Hashing)X
-3831(Package)X
-4136(for)X
-4259(UNIX)X
-1 f
-10 f
-908 454(i)N
-927(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-2 f
-1379 546(hash)N
-1652(ndbm)X
-1950(%change)X
-1 f
-10 f
-908 550(i)N
-927(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-1 f
-948 642(CREATE)N
-10 f
-908 646(i)N
-927(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-1 f
-1125 738(user)N
-1424(6.4)X
-1671(12.2)X
-2073(48)X
-1157 826(sys)N
-1384(32.5)X
-1671(34.7)X
-2113(6)X
-3 f
-1006 914(elapsed)N
-10 f
-1310 922(c)N
-890(c)Y
-810(c)Y
-730(c)Y
-3 f
-1384 914(90.4)N
-10 f
-1581 922(c)N
-890(c)Y
-810(c)Y
-730(c)Y
-3 f
-1671 914(99.6)N
-10 f
-1883 922(c)N
-890(c)Y
-810(c)Y
-730(c)Y
-3 f
-2113 914(9)N
-1 f
-10 f
-908 910(i)N
-927(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-908 926(i)N
-927(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-1 f
-948 1010(READ)N
-10 f
-908 1014(i)N
-927(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-1 f
-1125 1106(user)N
-1424(3.4)X
-1711(6.1)X
-2073(44)X
-1157 1194(sys)N
-1424(1.2)X
-1671(15.3)X
-2073(92)X
-3 f
-1006 1282(elapsed)N
-10 f
-1310 1290(c)N
-1258(c)Y
-1178(c)Y
-1098(c)Y
-3 f
-1424 1282(4.0)N
-10 f
-1581 1290(c)N
-1258(c)Y
-1178(c)Y
-1098(c)Y
-3 f
-1671 1282(21.2)N
-10 f
-1883 1290(c)N
-1258(c)Y
-1178(c)Y
-1098(c)Y
-3 f
-2073 1282(81)N
-1 f
-10 f
-908 1278(i)N
-927(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-908 1294(i)N
-927(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-1 f
-948 1378(VERIFY)N
-10 f
-908 1382(i)N
-927(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-1 f
-1125 1474(user)N
-1424(3.5)X
-1711(6.3)X
-2073(44)X
-1157 1562(sys)N
-1424(1.2)X
-1671(15.3)X
-2073(92)X
-3 f
-1006 1650(elapsed)N
-10 f
-1310 1658(c)N
-1626(c)Y
-1546(c)Y
-1466(c)Y
-3 f
-1424 1650(4.0)N
-10 f
-1581 1658(c)N
-1626(c)Y
-1546(c)Y
-1466(c)Y
-3 f
-1671 1650(21.2)N
-10 f
-1883 1658(c)N
-1626(c)Y
-1546(c)Y
-1466(c)Y
-3 f
-2073 1650(81)N
-1 f
-10 f
-908 1646(i)N
-927(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-908 1662(i)N
-927(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-1 f
-948 1746(SEQUENTIAL)N
-10 f
-908 1750(i)N
-927(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-1 f
-1125 1842(user)N
-1424(2.7)X
-1711(1.9)X
-2046(-42)X
-1157 1930(sys)N
-1424(0.7)X
-1711(3.9)X
-2073(82)X
-3 f
-1006 2018(elapsed)N
-10 f
-1310 2026(c)N
-1994(c)Y
-1914(c)Y
-1834(c)Y
-3 f
-1424 2018(3.0)N
-10 f
-1581 2026(c)N
-1994(c)Y
-1914(c)Y
-1834(c)Y
-3 f
-1711 2018(5.0)N
-10 f
-1883 2026(c)N
-1994(c)Y
-1914(c)Y
-1834(c)Y
-3 f
-2073 2018(40)N
-1 f
-10 f
-908 2014(i)N
-927(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-908 2030(i)N
-927(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-1 f
-948 2114(SEQUENTIAL)N
-1467(\(with)X
-1656(data)X
-1810(retrieval\))X
-10 f
-908 2118(i)N
-927(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-1 f
-1125 2210(user)N
-1424(2.7)X
-1711(8.2)X
-2073(67)X
-1157 2298(sys)N
-1424(0.7)X
-1711(4.3)X
-2073(84)X
-3 f
-1006 2386(elapsed)N
-1424(3.0)X
-1671(12.0)X
-2073(75)X
-1 f
-10 f
-908 2390(i)N
-927(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-899 2394(c)N
-2378(c)Y
-2298(c)Y
-2218(c)Y
-2138(c)Y
-2058(c)Y
-1978(c)Y
-1898(c)Y
-1818(c)Y
-1738(c)Y
-1658(c)Y
-1578(c)Y
-1498(c)Y
-1418(c)Y
-1338(c)Y
-1258(c)Y
-1178(c)Y
-1098(c)Y
-1018(c)Y
-938(c)Y
-858(c)Y
-778(c)Y
-698(c)Y
-618(c)Y
-538(c)Y
-1310 2394(c)N
-2362(c)Y
-2282(c)Y
-2202(c)Y
-1581 2394(c)N
-2362(c)Y
-2282(c)Y
-2202(c)Y
-1883 2394(c)N
-2362(c)Y
-2282(c)Y
-2202(c)Y
-2278 2394(c)N
-2378(c)Y
-2298(c)Y
-2218(c)Y
-2138(c)Y
-2058(c)Y
-1978(c)Y
-1898(c)Y
-1818(c)Y
-1738(c)Y
-1658(c)Y
-1578(c)Y
-1498(c)Y
-1418(c)Y
-1338(c)Y
-1258(c)Y
-1178(c)Y
-1098(c)Y
-1018(c)Y
-938(c)Y
-858(c)Y
-778(c)Y
-698(c)Y
-618(c)Y
-538(c)Y
-905 2574(i)N
-930(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-2 f
-1318 2666(hash)N
-1585(hsearch)X
-1953(%change)X
-1 f
-10 f
-905 2670(i)N
-930(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-1 f
-945 2762(CREATE/READ)N
-10 f
-905 2766(i)N
-930(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-1 f
-1064 2858(user)N
-1343(6.6)X
-1642(17.2)X
-2096(62)X
-1096 2946(sys)N
-1343(1.1)X
-1682(0.3)X
-2029(-266)X
-3 f
-945 3034(elapsed)N
-1343(7.8)X
-1642(17.0)X
-2096(54)X
-1 f
-10 f
-905 3038(i)N
-930(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-896 3050(c)N
-2978(c)Y
-2898(c)Y
-2818(c)Y
-2738(c)Y
-2658(c)Y
-1249 3034(c)N
-3010(c)Y
-2930(c)Y
-2850(c)Y
-1520 3034(c)N
-3010(c)Y
-2930(c)Y
-2850(c)Y
-1886 3034(c)N
-3010(c)Y
-2930(c)Y
-2850(c)Y
-2281 3050(c)N
-2978(c)Y
-2898(c)Y
-2818(c)Y
-2738(c)Y
-2658(c)Y
-3 f
-720 3174(Figure)N
-967(8a:)X
-1 f
-1094(Timing)X
-1349(results)X
-1578(for)X
-1692(the)X
-1810(dictionary)X
-2155(database.)X
-10 f
-720 3262 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
-3 f
-1407 3504(Conclusion)N
-1 f
-892 3636(This)N
-1063(paper)X
-1271(has)X
-1407(presented)X
-1744(the)X
-1871(design,)X
-2129(implemen-)X
-720 3724(tation)N
-928(and)X
-1070(performance)X
-1503(of)X
-1596(a)X
-1658(new)X
-1818(hashing)X
-2093(package)X
-2382(for)X
-720 3812(UNIX.)N
-993(The)X
-1150(new)X
-1316(package)X
-1612(provides)X
-1919(a)X
-1986(superset)X
-2280(of)X
-2378(the)X
-720 3900(functionality)N
-1159(of)X
-1255(existing)X
-1537(hashing)X
-1815(packages)X
-2139(and)X
-2284(incor-)X
-720 3988(porates)N
-975(additional)X
-1318(features)X
-1596(such)X
-1766(as)X
-1855(large)X
-2038(key)X
-2176(handling,)X
-720 4076(user)N
-876(de\256ned)X
-1134(hash)X
-1302(functions,)X
-1641(multiple)X
-1928(hash)X
-2096(tables,)X
-2324(vari-)X
-720 4164(able)N
-894(sized)X
-1099(pages,)X
-1342(and)X
-1498(linear)X
-1721(hashing.)X
-2050(In)X
-2156(nearly)X
-2396(all)X
-720 4252(cases,)N
-954(the)X
-1096(new)X
-1274(package)X
-1582(provides)X
-1902(improved)X
-2252(perfor-)X
-720 4340(mance)N
-974(on)X
-1098(the)X
-1240(order)X
-1454(of)X
-1565(50-80%)X
-1863(for)X
-2001(the)X
-2142(workloads)X
-720 4428(shown.)N
-990(Applications)X
-1420(such)X
-1588(as)X
-1676(the)X
-1794(loader,)X
-2035(compiler,)X
-2360(and)X
-720 4516(mail,)N
-921(which)X
-1156(currently)X
-1485(implement)X
-1866(their)X
-2051(own)X
-2227(hashing)X
-720 4604(routines,)N
-1032(should)X
-1279(be)X
-1389(modi\256ed)X
-1706(to)X
-1801(use)X
-1941(the)X
-2072(generic)X
-2342(rou-)X
-720 4692(tines.)N
-892 4806(This)N
-1087(hashing)X
-1389(package)X
-1705(is)X
-1810(one)X
-1978(access)X
-2236(method)X
-720 4894(which)N
-953(is)X
-1043(part)X
-1205(of)X
-1309(a)X
-1382(generic)X
-1656(database)X
-1970(access)X
-2212(package)X
-720 4982(being)N
-955(developed)X
-1342(at)X
-1457(the)X
-1612(University)X
-2007(of)X
-2131(California,)X
-720 5070(Berkeley.)N
-1089(It)X
-1177(will)X
-1340(include)X
-1614(a)X
-1688(btree)X
-1887(access)X
-2131(method)X
-2409(as)X
-720 5158(well)N
-916(as)X
-1041(\256xed)X
-1259(and)X
-1433(variable)X
-1750(length)X
-2007(record)X
-2270(access)X
-720 5246(methods)N
-1024(in)X
-1119(addition)X
-1414(to)X
-1509(the)X
-1640(hashed)X
-1896(support)X
-2168(presented)X
-720 5334(here.)N
-948(All)X
-1099(of)X
-1215(the)X
-1361(access)X
-1615(methods)X
-1934(are)X
-2081(based)X
-2312(on)X
-2440(a)X
-720 5422(key/data)N
-1037(pair)X
-1207(interface)X
-1533(and)X
-1693(appear)X
-1952(identical)X
-2272(to)X
-2378(the)X
-720 5510(application)N
-1121(layer,)X
-1347(allowing)X
-1671(application)X
-2071(implementa-)X
-720 5598(tions)N
-906(to)X
-999(be)X
-1106(largely)X
-1360(independent)X
-1783(of)X
-1881(the)X
-2010(database)X
-2318(type.)X
-720 5686(The)N
-873(package)X
-1165(is)X
-1246(expected)X
-1560(to)X
-1650(be)X
-1754(an)X
-1858(integral)X
-2131(part)X
-2284(of)X
-2378(the)X
-2706 538(4.4BSD)N
-3006(system,)X
-3293(with)X
-3479(various)X
-3759(standard)X
-4075(applications)X
-2706 626(such)N
-2879(as)X
-2972(more\(1\),)X
-3277(sort\(1\))X
-3517(and)X
-3659(vi\(1\))X
-3841(based)X
-4050(on)X
-4156(it.)X
-4266(While)X
-2706 714(the)N
-2833(current)X
-3089(design)X
-3326(does)X
-3501(not)X
-3631(support)X
-3899(multi-user)X
-4256(access)X
-2706 802(or)N
-2804(transactions,)X
-3238(they)X
-3407(could)X
-3616(be)X
-3723(incorporated)X
-4159(relatively)X
-2706 890(easily.)N
-10 f
-2894 938(i)N
-2913(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-2 f
-3365 1030(hash)N
-3638(ndbm)X
-3936(%change)X
-1 f
-10 f
-2894 1034(i)N
-2913(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-1 f
-2934 1126(CREATE)N
-10 f
-2894 1130(i)N
-2913(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-1 f
-3111 1222(user)N
-3390(0.2)X
-3677(0.4)X
-4079(50)X
-3143 1310(sys)N
-3390(0.1)X
-3677(1.0)X
-4079(90)X
-3 f
-2992 1398(elapsed)N
-10 f
-3296 1406(c)N
-1374(c)Y
-1294(c)Y
-1214(c)Y
-3 f
-3390 1398(0)N
-10 f
-3567 1406(c)N
-1374(c)Y
-1294(c)Y
-1214(c)Y
-3 f
-3677 1398(3.2)N
-10 f
-3869 1406(c)N
-1374(c)Y
-1294(c)Y
-1214(c)Y
-3 f
-4039 1398(100)N
-1 f
-10 f
-2894 1394(i)N
-2913(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-2894 1410(i)N
-2913(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-1 f
-2934 1494(READ)N
-10 f
-2894 1498(i)N
-2913(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-1 f
-3111 1590(user)N
-3390(0.1)X
-3677(0.1)X
-4119(0)X
-3143 1678(sys)N
-3390(0.1)X
-3677(0.4)X
-4079(75)X
-3 f
-2992 1766(elapsed)N
-10 f
-3296 1774(c)N
-1742(c)Y
-1662(c)Y
-1582(c)Y
-3 f
-3390 1766(0.0)N
-10 f
-3567 1774(c)N
-1742(c)Y
-1662(c)Y
-1582(c)Y
-3 f
-3677 1766(0.0)N
-10 f
-3869 1774(c)N
-1742(c)Y
-1662(c)Y
-1582(c)Y
-3 f
-4119 1766(0)N
-1 f
-10 f
-2894 1762(i)N
-2913(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-2894 1778(i)N
-2913(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-1 f
-2934 1862(VERIFY)N
-10 f
-2894 1866(i)N
-2913(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-1 f
-3111 1958(user)N
-3390(0.1)X
-3677(0.2)X
-4079(50)X
-3143 2046(sys)N
-3390(0.1)X
-3677(0.3)X
-4079(67)X
-3 f
-2992 2134(elapsed)N
-10 f
-3296 2142(c)N
-2110(c)Y
-2030(c)Y
-1950(c)Y
-3 f
-3390 2134(0.0)N
-10 f
-3567 2142(c)N
-2110(c)Y
-2030(c)Y
-1950(c)Y
-3 f
-3677 2134(0.0)N
-10 f
-3869 2142(c)N
-2110(c)Y
-2030(c)Y
-1950(c)Y
-3 f
-4119 2134(0)N
-1 f
-10 f
-2894 2130(i)N
-2913(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-2894 2146(i)N
-2913(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-1 f
-2934 2230(SEQUENTIAL)N
-10 f
-2894 2234(i)N
-2913(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-1 f
-3111 2326(user)N
-3390(0.1)X
-3677(0.0)X
-4012(-100)X
-3143 2414(sys)N
-3390(0.1)X
-3677(0.1)X
-4119(0)X
-3 f
-2992 2502(elapsed)N
-10 f
-3296 2510(c)N
-2478(c)Y
-2398(c)Y
-2318(c)Y
-3 f
-3390 2502(0.0)N
-10 f
-3567 2510(c)N
-2478(c)Y
-2398(c)Y
-2318(c)Y
-3 f
-3677 2502(0.0)N
-10 f
-3869 2510(c)N
-2478(c)Y
-2398(c)Y
-2318(c)Y
-3 f
-4119 2502(0)N
-1 f
-10 f
-2894 2498(i)N
-2913(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-2894 2514(i)N
-2913(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-1 f
-2934 2598(SEQUENTIAL)N
-3453(\(with)X
-3642(data)X
-3796(retrieval\))X
-10 f
-2894 2602(i)N
-2913(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-1 f
-3111 2694(user)N
-3390(0.1)X
-3677(0.1)X
-4119(0)X
-3143 2782(sys)N
-3390(0.1)X
-3677(0.1)X
-4119(0)X
-3 f
-2992 2870(elapsed)N
-3390(0.0)X
-3677(0.0)X
-4119(0)X
-1 f
-10 f
-2894 2874(i)N
-2913(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-2885 2878(c)N
-2862(c)Y
-2782(c)Y
-2702(c)Y
-2622(c)Y
-2542(c)Y
-2462(c)Y
-2382(c)Y
-2302(c)Y
-2222(c)Y
-2142(c)Y
-2062(c)Y
-1982(c)Y
-1902(c)Y
-1822(c)Y
-1742(c)Y
-1662(c)Y
-1582(c)Y
-1502(c)Y
-1422(c)Y
-1342(c)Y
-1262(c)Y
-1182(c)Y
-1102(c)Y
-1022(c)Y
-3296 2878(c)N
-2846(c)Y
-2766(c)Y
-2686(c)Y
-3567 2878(c)N
-2846(c)Y
-2766(c)Y
-2686(c)Y
-3869 2878(c)N
-2846(c)Y
-2766(c)Y
-2686(c)Y
-4264 2878(c)N
-2862(c)Y
-2782(c)Y
-2702(c)Y
-2622(c)Y
-2542(c)Y
-2462(c)Y
-2382(c)Y
-2302(c)Y
-2222(c)Y
-2142(c)Y
-2062(c)Y
-1982(c)Y
-1902(c)Y
-1822(c)Y
-1742(c)Y
-1662(c)Y
-1582(c)Y
-1502(c)Y
-1422(c)Y
-1342(c)Y
-1262(c)Y
-1182(c)Y
-1102(c)Y
-1022(c)Y
-2891 3058(i)N
-2916(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-2 f
-3304 3150(hash)N
-3571(hsearch)X
-3939(%change)X
-1 f
-10 f
-2891 3154(i)N
-2916(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-1 f
-2931 3246(CREATE/READ)N
-10 f
-2891 3250(i)N
-2916(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-1 f
-3050 3342(user)N
-3329(0.3)X
-3648(0.4)X
-4048(25)X
-3082 3430(sys)N
-3329(0.0)X
-3648(0.0)X
-4088(0)X
-3 f
-2931 3518(elapsed)N
-3329(0.0)X
-3648(0.0)X
-4088(0)X
-1 f
-10 f
-2891 3522(i)N
-2916(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-2882 3534(c)N
-3462(c)Y
-3382(c)Y
-3302(c)Y
-3222(c)Y
-3142(c)Y
-3235 3518(c)N
-3494(c)Y
-3414(c)Y
-3334(c)Y
-3506 3518(c)N
-3494(c)Y
-3414(c)Y
-3334(c)Y
-3872 3518(c)N
-3494(c)Y
-3414(c)Y
-3334(c)Y
-4267 3534(c)N
-3462(c)Y
-3382(c)Y
-3302(c)Y
-3222(c)Y
-3142(c)Y
-3 f
-2706 3658(Figure)N
-2953(8b:)X
-1 f
-3084(Timing)X
-3339(results)X
-3568(for)X
-3682(the)X
-3800(password)X
-4123(database.)X
-10 f
-2706 3746 -0.0930(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)AN
-3 f
-3396 3988(References)N
-1 f
-2706 4120([ATT79])N
-3058(AT&T,)X
-3358(DBM\(3X\),)X
-2 f
-3773(Unix)X
-3990(Programmer's)X
-2878 4208(Manual,)N
-3194(Seventh)X
-3491(Edition,)X
-3793(Volume)X
-4085(1)X
-1 f
-(,)S
-4192(January,)X
-2878 4296(1979.)N
-2706 4472([ATT85])N
-3027(AT&T,)X
-3296(HSEARCH\(BA_LIB\),)X
-2 f
-4053(Unix)X
-4239(System)X
-2878 4560(User's)N
-3112(Manual,)X
-3401(System)X
-3644(V.3)X
-1 f
-3753(,)X
-3793(pp.)X
-3913(506-508,)X
-4220(1985.)X
-2706 4736([BRE73])N
-3025(Brent,)X
-3253(Richard)X
-3537(P.,)X
-3651(``Reducing)X
-4041(the)X
-4168(Retrieval)X
-2878 4824(Time)N
-3071(of)X
-3162(Scatter)X
-3409(Storage)X
-3678(Techniques'',)X
-2 f
-4146(Commun-)X
-2878 4912(ications)N
-3175(of)X
-3281(the)X
-3422(ACM)X
-1 f
-3591(,)X
-3654(Volume)X
-3955(16,)X
-4098(No.)X
-4259(2,)X
-4362(pp.)X
-2878 5000(105-109,)N
-3185(February,)X
-3515(1973.)X
-2706 5176([BSD86])N
-3055(NDBM\(3\),)X
-2 f
-3469(4.3BSD)X
-3775(Unix)X
-3990(Programmer's)X
-2878 5264(Manual)N
-3155(Reference)X
-3505(Guide)X
-1 f
-3701(,)X
-3749(University)X
-4114(of)X
-4208(Califor-)X
-2878 5352(nia,)N
-3016(Berkeley,)X
-3346(1986.)X
-2706 5528([ENB88])N
-3025(Enbody,)X
-3319(R.)X
-3417(J.,)X
-3533(Du,)X
-3676(H.)X
-3779(C.,)X
-3897(``Dynamic)X
-4270(Hash-)X
-2878 5616(ing)N
-3034(Schemes'',)X
-2 f
-3427(ACM)X
-3630(Computing)X
-4019(Surveys)X
-1 f
-4269(,)X
-4322(Vol.)X
-2878 5704(20,)N
-2998(No.)X
-3136(2,)X
-3216(pp.)X
-3336(85-113,)X
-3603(June)X
-3770(1988.)X
-3 f
-720 5960(USENIX)N
-9 f
-1042(-)X
-3 f
-1106(Winter)X
-1371('91)X
-9 f
-1498(-)X
-3 f
-1562(Dallas,)X
-1815(TX)X
-4384(11)X
-
-12 p
-%%Page: 12 12
-0(Courier)xf 0 f
-10 s 10 xH 0 xS 0 f
-3 f
-432 258(A)N
-510(New)X
-682(Hashing)X
-985(Package)X
-1290(for)X
-1413(UNIX)X
-3663(Seltzer)X
-3920(&)X
-4007(Yigit)X
-1 f
-432 538([FAG79])N
-776(Ronald)X
-1057(Fagin,)X
-1308(Jurg)X
-1495(Nievergelt,)X
-1903(Nicholas)X
-604 626(Pippenger,)N
-1003(H.)X
-1135(Raymond)X
-1500(Strong,)X
-1787(``Extendible)X
-604 714(Hashing)N
-901(--)X
-985(A)X
-1073(Fast)X
-1236(Access)X
-1493(Method)X
-1771(for)X
-1894(Dynamic)X
-604 802(Files'',)N
-2 f
-855(ACM)X
-1046(Transactions)X
-1485(on)X
-1586(Database)X
-1914(Systems)X
-1 f
-2168(,)X
-604 890(Volume)N
-882(4,)X
-962(No.)X
-1100(3.,)X
-1200(September)X
-1563(1979,)X
-1763(pp)X
-1863(315-34)X
-432 1066([KNU68],)N
-802(Knuth,)X
-1064(D.E.,)X
-2 f
-1273(The)X
-1434(Art)X
-1577(of)X
-1680(Computer)X
-2041(Pro-)X
-604 1154(gramming)N
-971(Vol.)X
-1140(3:)X
-1245(Sorting)X
-1518(and)X
-1676(Searching)X
-1 f
-2001(,)X
-2058(sec-)X
-604 1242(tions)N
-779(6.3-6.4,)X
-1046(pp)X
-1146(481-550.)X
-432 1418([LAR78])N
-747(Larson,)X
-1011(Per-Ake,)X
-1319(``Dynamic)X
-1687(Hashing'',)X
-2 f
-2048(BIT)X
-1 f
-(,)S
-604 1506(Vol.)N
-764(18,)X
-884(1978,)X
-1084(pp.)X
-1204(184-201.)X
-432 1682([LAR88])N
-752(Larson,)X
-1021(Per-Ake,)X
-1335(``Dynamic)X
-1709(Hash)X
-1900(Tables'',)X
-2 f
-604 1770(Communications)N
-1183(of)X
-1281(the)X
-1415(ACM)X
-1 f
-1584(,)X
-1640(Volume)X
-1934(31,)X
-2070(No.)X
-604 1858(4.,)N
-704(April)X
-893(1988,)X
-1093(pp)X
-1193(446-457.)X
-432 2034([LIT80])N
-731(Witold,)X
-1013(Litwin,)X
-1286(``Linear)X
-1590(Hashing:)X
-1939(A)X
-2036(New)X
-604 2122(Tool)N
-786(for)X
-911(File)X
-1065(and)X
-1211(Table)X
-1424(Addressing'',)X
-2 f
-1893(Proceed-)X
-604 2210(ings)N
-761(of)X
-847(the)X
-969(6th)X
-1095(International)X
-1540(Conference)X
-1933(on)X
-2036(Very)X
-604 2298(Large)N
-815(Databases)X
-1 f
-1153(,)X
-1193(1980.)X
-432 2474([NEL90])N
-743(Nelson,)X
-1011(Philip)X
-1222(A.,)X
-2 f
-1341(Gdbm)X
-1558(1.4)X
-1679(source)X
-1913(distribu-)X
-604 2562(tion)N
-748(and)X
-888(README)X
-1 f
-1209(,)X
-1249(August)X
-1500(1990.)X
-432 2738([THOM90])N
-840(Ken)X
-1011(Thompson,)X
-1410(private)X
-1670(communication,)X
-604 2826(Nov.)N
-782(1990.)X
-432 3002([TOR87])N
-790(Torek,)X
-1066(C.,)X
-1222(``Re:)X
-1470(dbm.a)X
-1751(and)X
-1950(ndbm.a)X
-604 3090(archives'',)N
-2 f
-966(USENET)X
-1279(newsgroup)X
-1650(comp.unix)X
-1 f
-2002(1987.)X
-432 3266([TOR88])N
-760(Torek,)X
-1006(C.,)X
-1133(``Re:)X
-1351(questions)X
-1686(regarding)X
-2027(data-)X
-604 3354(bases)N
-826(created)X
-1106(with)X
-1295(dbm)X
-1484(and)X
-1647(ndbm)X
-1876(routines'')X
-2 f
-604 3442(USENET)N
-937(newsgroup)X
-1328(comp.unix.questions)X
-1 f
-1982(,)X
-2041(June)X
-604 3530(1988.)N
-432 3706([WAL84])N
-773(Wales,)X
-1018(R.,)X
-1135(``Discussion)X
-1564(of)X
-1655("dbm")X
-1887(data)X
-2045(base)X
-604 3794(system'',)N
-2 f
-973(USENET)X
-1339(newsgroup)X
-1762(unix.wizards)X
-1 f
-2168(,)X
-604 3882(January,)N
-894(1984.)X
-432 4058([YIG89])N
-751(Ozan)X
-963(S.)X
-1069(Yigit,)X
-1294(``How)X
-1545(to)X
-1648(Roll)X
-1826(Your)X
-2032(Own)X
-604 4146(Dbm/Ndbm'',)N
-2 f
-1087(unpublished)X
-1504(manuscript)X
-1 f
-(,)S
-1910(Toronto,)X
-604 4234(July,)N
-777(1989)X
-3 f
-432 5960(12)N
-2970(USENIX)X
-9 f
-3292(-)X
-3 f
-3356(Winter)X
-3621('91)X
-9 f
-3748(-)X
-3 f
-3812(Dallas,)X
-4065(TX)X
-
-13 p
-%%Page: 13 13
-0(Courier)xf 0 f
-10 s 10 xH 0 xS 0 f
-3 f
-720 258(Seltzer)N
-977(&)X
-1064(Yigit)X
-3278(A)X
-3356(New)X
-3528(Hashing)X
-3831(Package)X
-4136(for)X
-4259(UNIX)X
-1 f
-720 538(Margo)N
-960(I.)X
-1033(Seltzer)X
-1282(is)X
-1361(a)X
-1423(Ph.D.)X
-1631(student)X
-1887(in)X
-1974(the)X
-2097(Department)X
-720 626(of)N
-823(Electrical)X
-1167(Engineering)X
-1595(and)X
-1747(Computer)X
-2102(Sciences)X
-2418(at)X
-720 714(the)N
-850(University)X
-1220(of)X
-1318(California,)X
-1694(Berkeley.)X
-2055(Her)X
-2207(research)X
-720 802(interests)N
-1017(include)X
-1283(\256le)X
-1415(systems,)X
-1718(databases,)X
-2076(and)X
-2221(transac-)X
-720 890(tion)N
-896(processing)X
-1291(systems.)X
-1636(She)X
-1807(spent)X
-2027(several)X
-2306(years)X
-720 978(working)N
-1026(at)X
-1123(startup)X
-1380(companies)X
-1762(designing)X
-2112(and)X
-2267(imple-)X
-720 1066(menting)N
-1048(\256le)X
-1216(systems)X
-1535(and)X
-1716(transaction)X
-2133(processing)X
-720 1154(software)N
-1026(and)X
-1170(designing)X
-1509(microprocessors.)X
-2103(Ms.)X
-2253(Seltzer)X
-720 1242(received)N
-1057(her)X
-1223(AB)X
-1397(in)X
-1522(Applied)X
-1843(Mathematics)X
-2320(from)X
-720 1330 0.1953(Harvard/Radcliffe)AN
-1325(College)X
-1594(in)X
-1676(1983.)X
-720 1444(In)N
-810(her)X
-936(spare)X
-1129(time,)X
-1313(Margo)X
-1549(can)X
-1683(usually)X
-1936(be)X
-2034(found)X
-2243(prepar-)X
-720 1532(ing)N
-868(massive)X
-1171(quantities)X
-1527(of)X
-1639(food)X
-1831(for)X
-1970(hungry)X
-2242(hoards,)X
-720 1620(studying)N
-1022(Japanese,)X
-1355(or)X
-1449(playing)X
-1716(soccer)X
-1948(with)X
-2116(an)X
-2218(exciting)X
-720 1708(Bay)N
-912(Area)X
-1132(Women's)X
-1507(Soccer)X
-1788(team,)X
-2026(the)X
-2186(Berkeley)X
-720 1796(Bruisers.)N
-720 1910(Ozan)N
-915(\()X
-3 f
-942(Oz)X
-1 f
-1040(\))X
-1092(Yigit)X
-1281(is)X
-1358(currently)X
-1672(a)X
-1732(software)X
-2033(engineer)X
-2334(with)X
-720 1998(the)N
-886(Communications)X
-1499(Research)X
-1861(and)X
-2044(Development)X
-720 2086(group,)N
-948(Computing)X
-1328(Services,)X
-1641(York)X
-1826(University.)X
-2224(His)X
-2355(for-)X
-720 2174(mative)N
-967(years)X
-1166(were)X
-1352(also)X
-1510(spent)X
-1708(at)X
-1795(York,)X
-2009(where)X
-2234(he)X
-2338(held)X
-720 2262(system)N
-985(programmer)X
-1425(and)X
-1583(administrator)X
-2052(positions)X
-2382(for)X
-720 2350(various)N
-995(mixtures)X
-1314(of)X
-1420(of)X
-1526(UNIX)X
-1765(systems)X
-2056(starting)X
-2334(with)X
-720 2438(Berkeley)N
-1031(4.1)X
-1151(in)X
-1233(1982,)X
-1433(while)X
-1631(at)X
-1709(the)X
-1827(same)X
-2012(time)X
-2174(obtaining)X
-720 2526(a)N
-776(degree)X
-1011(in)X
-1093(Computer)X
-1433(Science.)X
-720 2640(In)N
-813(his)X
-931(copious)X
-1205(free)X
-1356(time,)X
-1543(Oz)X
-1662(enjoys)X
-1896(working)X
-2188(on)X
-2293(what-)X
-720 2728(ever)N
-890(software)X
-1197(looks)X
-1400(interesting,)X
-1788(which)X
-2014(often)X
-2209(includes)X
-720 2816(language)N
-1044(interpreters,)X
-1464(preprocessors,)X
-1960(and)X
-2110(lately,)X
-2342(pro-)X
-720 2904(gram)N
-905(generators)X
-1260(and)X
-1396(expert)X
-1617(systems.)X
-720 3018(Oz)N
-836(has)X
-964(authored)X
-1266(several)X
-1515(public-domain)X
-2003(software)X
-2301(tools,)X
-720 3106(including)N
-1069(an)X
-1191(nroff-like)X
-1545(text)X
-1711(formatter)X
-2 f
-2056(proff)X
-1 f
-2257(that)X
-2423(is)X
-720 3194(apparently)N
-1083(still)X
-1226(used)X
-1397(in)X
-1483(some)X
-1676(basement)X
-2002(PCs.)X
-2173(His)X
-2307(latest)X
-720 3282(obsessions)N
-1143(include)X
-1460(the)X
-1639(incredible)X
-2040(programming)X
-720 3370(language)N
-1030(Scheme,)X
-1324(and)X
-1460(Chinese)X
-1738(Brush)X
-1949(painting.)X
-3 f
-720 5960(USENIX)N
-9 f
-1042(-)X
-3 f
-1106(Winter)X
-1371('91)X
-9 f
-1498(-)X
-3 f
-1562(Dallas,)X
-1815(TX)X
-4384(13)X
-
-14 p
-%%Page: 14 14
-0(Courier)xf 0 f
-10 s 10 xH 0 xS 0 f
-3 f
-432 5960(14)N
-2970(USENIX)X
-9 f
-3292(-)X
-3 f
-3356(Winter)X
-3621('91)X
-9 f
-3748(-)X
-3 f
-3812(Dallas,)X
-4065(TX)X
-
-14 p
-%%Trailer
-xt
-
-xs
diff --git a/bdb/docs/ref/refs/libtp_usenix.ps b/bdb/docs/ref/refs/libtp_usenix.ps
deleted file mode 100644
index ea821a9145e..00000000000
--- a/bdb/docs/ref/refs/libtp_usenix.ps
+++ /dev/null
@@ -1,12340 +0,0 @@
-%!PS-Adobe-1.0
-%%Creator: utopia:margo (& Seltzer,608-13E,8072,)
-%%Title: stdin (ditroff)
-%%CreationDate: Thu Dec 12 15:32:11 1991
-%%EndComments
-% @(#)psdit.pro 1.3 4/15/88
-% lib/psdit.pro -- prolog for psdit (ditroff) files
-% Copyright (c) 1984, 1985 Adobe Systems Incorporated. All Rights Reserved.
-% last edit: shore Sat Nov 23 20:28:03 1985
-% RCSID: $Header: psdit.pro,v 2.1 85/11/24 12:19:43 shore Rel $
-
-% Changed by Edward Wang (edward@ucbarpa.berkeley.edu) to handle graphics,
-% 17 Feb, 87.
-
-/$DITroff 140 dict def $DITroff begin
-/fontnum 1 def /fontsize 10 def /fontheight 10 def /fontslant 0 def
-/xi{0 72 11 mul translate 72 resolution div dup neg scale 0 0 moveto
- /fontnum 1 def /fontsize 10 def /fontheight 10 def /fontslant 0 def F
- /pagesave save def}def
-/PB{save /psv exch def currentpoint translate
- resolution 72 div dup neg scale 0 0 moveto}def
-/PE{psv restore}def
-/arctoobig 90 def /arctoosmall .05 def
-/m1 matrix def /m2 matrix def /m3 matrix def /oldmat matrix def
-/tan{dup sin exch cos div}def
-/point{resolution 72 div mul}def
-/dround {transform round exch round exch itransform}def
-/xT{/devname exch def}def
-/xr{/mh exch def /my exch def /resolution exch def}def
-/xp{}def
-/xs{docsave restore end}def
-/xt{}def
-/xf{/fontname exch def /slotno exch def fontnames slotno get fontname eq not
- {fonts slotno fontname findfont put fontnames slotno fontname put}if}def
-/xH{/fontheight exch def F}def
-/xS{/fontslant exch def F}def
-/s{/fontsize exch def /fontheight fontsize def F}def
-/f{/fontnum exch def F}def
-/F{fontheight 0 le{/fontheight fontsize def}if
- fonts fontnum get fontsize point 0 0 fontheight point neg 0 0 m1 astore
- fontslant 0 ne{1 0 fontslant tan 1 0 0 m2 astore m3 concatmatrix}if
- makefont setfont .04 fontsize point mul 0 dround pop setlinewidth}def
-/X{exch currentpoint exch pop moveto show}def
-/N{3 1 roll moveto show}def
-/Y{exch currentpoint pop exch moveto show}def
-/S{show}def
-/ditpush{}def/ditpop{}def
-/AX{3 -1 roll currentpoint exch pop moveto 0 exch ashow}def
-/AN{4 2 roll moveto 0 exch ashow}def
-/AY{3 -1 roll currentpoint pop exch moveto 0 exch ashow}def
-/AS{0 exch ashow}def
-/MX{currentpoint exch pop moveto}def
-/MY{currentpoint pop exch moveto}def
-/MXY{moveto}def
-/cb{pop}def % action on unknown char -- nothing for now
-/n{}def/w{}def
-/p{pop showpage pagesave restore /pagesave save def}def
-/Dt{/Dlinewidth exch def}def 1 Dt
-/Ds{/Ddash exch def}def -1 Ds
-/Di{/Dstipple exch def}def 1 Di
-/Dsetlinewidth{2 Dlinewidth mul setlinewidth}def
-/Dsetdash{Ddash 4 eq{[8 12]}{Ddash 16 eq{[32 36]}
- {Ddash 20 eq{[32 12 8 12]}{[]}ifelse}ifelse}ifelse 0 setdash}def
-/Dstroke{gsave Dsetlinewidth Dsetdash 1 setlinecap stroke grestore
- currentpoint newpath moveto}def
-/Dl{rlineto Dstroke}def
-/arcellipse{/diamv exch def /diamh exch def oldmat currentmatrix pop
- currentpoint translate 1 diamv diamh div scale /rad diamh 2 div def
- currentpoint exch rad add exch rad -180 180 arc oldmat setmatrix}def
-/Dc{dup arcellipse Dstroke}def
-/De{arcellipse Dstroke}def
-/Da{/endv exch def /endh exch def /centerv exch def /centerh exch def
- /cradius centerv centerv mul centerh centerh mul add sqrt def
- /eradius endv endv mul endh endh mul add sqrt def
- /endang endv endh atan def
- /startang centerv neg centerh neg atan def
- /sweep startang endang sub dup 0 lt{360 add}if def
- sweep arctoobig gt
- {/midang startang sweep 2 div sub def /midrad cradius eradius add 2 div def
- /midh midang cos midrad mul def /midv midang sin midrad mul def
- midh neg midv neg endh endv centerh centerv midh midv Da
- Da}
- {sweep arctoosmall ge
- {/controldelt 1 sweep 2 div cos sub 3 sweep 2 div sin mul div 4 mul def
- centerv neg controldelt mul centerh controldelt mul
- endv neg controldelt mul centerh add endh add
- endh controldelt mul centerv add endv add
- centerh endh add centerv endv add rcurveto Dstroke}
- {centerh endh add centerv endv add rlineto Dstroke}
- ifelse}
- ifelse}def
-/Dpatterns[
-[%cf[widthbits]
-[8<0000000000000010>]
-[8<0411040040114000>]
-[8<0204081020408001>]
-[8<0000103810000000>]
-[8<6699996666999966>]
-[8<0000800100001008>]
-[8<81c36666c3810000>]
-[8<0f0e0c0800000000>]
-[8<0000000000000010>]
-[8<0411040040114000>]
-[8<0204081020408001>]
-[8<0000001038100000>]
-[8<6699996666999966>]
-[8<0000800100001008>]
-[8<81c36666c3810000>]
-[8<0f0e0c0800000000>]
-[8<0042660000246600>]
-[8<0000990000990000>]
-[8<0804020180402010>]
-[8<2418814242811824>]
-[8<6699996666999966>]
-[8<8000000008000000>]
-[8<00001c3e363e1c00>]
-[8<0000000000000000>]
-[32<00000040000000c00000004000000040000000e0000000000000000000000000>]
-[32<00000000000060000000900000002000000040000000f0000000000000000000>]
-[32<000000000000000000e0000000100000006000000010000000e0000000000000>]
-[32<00000000000000002000000060000000a0000000f00000002000000000000000>]
-[32<0000000e0000000000000000000000000000000f000000080000000e00000001>]
-[32<0000090000000600000000000000000000000000000007000000080000000e00>]
-[32<00010000000200000004000000040000000000000000000000000000000f0000>]
-[32<0900000006000000090000000600000000000000000000000000000006000000>]]
-[%ug
-[8<0000020000000000>]
-[8<0000020000002000>]
-[8<0004020000002000>]
-[8<0004020000402000>]
-[8<0004060000402000>]
-[8<0004060000406000>]
-[8<0006060000406000>]
-[8<0006060000606000>]
-[8<00060e0000606000>]
-[8<00060e000060e000>]
-[8<00070e000060e000>]
-[8<00070e000070e000>]
-[8<00070e020070e000>]
-[8<00070e020070e020>]
-[8<04070e020070e020>]
-[8<04070e024070e020>]
-[8<04070e064070e020>]
-[8<04070e064070e060>]
-[8<06070e064070e060>]
-[8<06070e066070e060>]
-[8<06070f066070e060>]
-[8<06070f066070f060>]
-[8<060f0f066070f060>]
-[8<060f0f0660f0f060>]
-[8<060f0f0760f0f060>]
-[8<060f0f0760f0f070>]
-[8<0e0f0f0760f0f070>]
-[8<0e0f0f07e0f0f070>]
-[8<0e0f0f0fe0f0f070>]
-[8<0e0f0f0fe0f0f0f0>]
-[8<0f0f0f0fe0f0f0f0>]
-[8<0f0f0f0ff0f0f0f0>]
-[8<1f0f0f0ff0f0f0f0>]
-[8<1f0f0f0ff1f0f0f0>]
-[8<1f0f0f8ff1f0f0f0>]
-[8<1f0f0f8ff1f0f0f8>]
-[8<9f0f0f8ff1f0f0f8>]
-[8<9f0f0f8ff9f0f0f8>]
-[8<9f0f0f9ff9f0f0f8>]
-[8<9f0f0f9ff9f0f0f9>]
-[8<9f8f0f9ff9f0f0f9>]
-[8<9f8f0f9ff9f8f0f9>]
-[8<9f8f1f9ff9f8f0f9>]
-[8<9f8f1f9ff9f8f1f9>]
-[8<bf8f1f9ff9f8f1f9>]
-[8<bf8f1f9ffbf8f1f9>]
-[8<bf8f1fdffbf8f1f9>]
-[8<bf8f1fdffbf8f1fd>]
-[8<ff8f1fdffbf8f1fd>]
-[8<ff8f1fdffff8f1fd>]
-[8<ff8f1ffffff8f1fd>]
-[8<ff8f1ffffff8f1ff>]
-[8<ff9f1ffffff8f1ff>]
-[8<ff9f1ffffff9f1ff>]
-[8<ff9f9ffffff9f1ff>]
-[8<ff9f9ffffff9f9ff>]
-[8<ffbf9ffffff9f9ff>]
-[8<ffbf9ffffffbf9ff>]
-[8<ffbfdffffffbf9ff>]
-[8<ffbfdffffffbfdff>]
-[8<ffffdffffffbfdff>]
-[8<ffffdffffffffdff>]
-[8<fffffffffffffdff>]
-[8<ffffffffffffffff>]]
-[%mg
-[8<8000000000000000>]
-[8<0822080080228000>]
-[8<0204081020408001>]
-[8<40e0400000000000>]
-[8<66999966>]
-[8<8001000010080000>]
-[8<81c36666c3810000>]
-[8<f0e0c08000000000>]
-[16<07c00f801f003e007c00f800f001e003c007800f001f003e007c00f801f003e0>]
-[16<1f000f8007c003e001f000f8007c003e001f800fc007e003f001f8007c003e00>]
-[8<c3c300000000c3c3>]
-[16<0040008001000200040008001000200040008000000100020004000800100020>]
-[16<0040002000100008000400020001800040002000100008000400020001000080>]
-[16<1fc03fe07df0f8f8f07de03fc01f800fc01fe03ff07df8f87df03fe01fc00f80>]
-[8<80>]
-[8<8040201000000000>]
-[8<84cc000048cc0000>]
-[8<9900009900000000>]
-[8<08040201804020100800020180002010>]
-[8<2418814242811824>]
-[8<66999966>]
-[8<8000000008000000>]
-[8<70f8d8f870000000>]
-[8<0814224180402010>]
-[8<aa00440a11a04400>]
-[8<018245aa45820100>]
-[8<221c224180808041>]
-[8<88000000>]
-[8<0855800080550800>]
-[8<2844004482440044>]
-[8<0810204080412214>]
-[8<00>]]]def
-/Dfill{
- transform /maxy exch def /maxx exch def
- transform /miny exch def /minx exch def
- minx maxx gt{/minx maxx /maxx minx def def}if
- miny maxy gt{/miny maxy /maxy miny def def}if
- Dpatterns Dstipple 1 sub get exch 1 sub get
- aload pop /stip exch def /stipw exch def /stiph 128 def
- /imatrix[stipw 0 0 stiph 0 0]def
- /tmatrix[stipw 0 0 stiph 0 0]def
- /minx minx cvi stiph idiv stiph mul def
- /miny miny cvi stipw idiv stipw mul def
- gsave eoclip 0 setgray
- miny stiph maxy{
- tmatrix exch 5 exch put
- minx stipw maxx{
- tmatrix exch 4 exch put tmatrix setmatrix
- stipw stiph true imatrix {stip} imagemask
- }for
- }for
- grestore
-}def
-/Dp{Dfill Dstroke}def
-/DP{Dfill currentpoint newpath moveto}def
-end
-
-/ditstart{$DITroff begin
- /nfonts 60 def % NFONTS makedev/ditroff dependent!
- /fonts[nfonts{0}repeat]def
- /fontnames[nfonts{()}repeat]def
-/docsave save def
-}def
-
-% character outcalls
-/oc{
- /pswid exch def /cc exch def /name exch def
- /ditwid pswid fontsize mul resolution mul 72000 div def
- /ditsiz fontsize resolution mul 72 div def
- ocprocs name known{ocprocs name get exec}{name cb}ifelse
-}def
-/fractm [.65 0 0 .6 0 0] def
-/fraction{
- /fden exch def /fnum exch def gsave /cf currentfont def
- cf fractm makefont setfont 0 .3 dm 2 copy neg rmoveto
- fnum show rmoveto currentfont cf setfont(\244)show setfont fden show
- grestore ditwid 0 rmoveto
-}def
-/oce{grestore ditwid 0 rmoveto}def
-/dm{ditsiz mul}def
-/ocprocs 50 dict def ocprocs begin
-(14){(1)(4)fraction}def
-(12){(1)(2)fraction}def
-(34){(3)(4)fraction}def
-(13){(1)(3)fraction}def
-(23){(2)(3)fraction}def
-(18){(1)(8)fraction}def
-(38){(3)(8)fraction}def
-(58){(5)(8)fraction}def
-(78){(7)(8)fraction}def
-(sr){gsave 0 .06 dm rmoveto(\326)show oce}def
-(is){gsave 0 .15 dm rmoveto(\362)show oce}def
-(->){gsave 0 .02 dm rmoveto(\256)show oce}def
-(<-){gsave 0 .02 dm rmoveto(\254)show oce}def
-(==){gsave 0 .05 dm rmoveto(\272)show oce}def
-(uc){gsave currentpoint 400 .009 dm mul add translate
- 8 -8 scale ucseal oce}def
-end
-
-% an attempt at a PostScript FONT to implement ditroff special chars
-% this will enable us to
-% cache the little buggers
-% generate faster, more compact PS out of psdit
-% confuse everyone (including myself)!
-50 dict dup begin
-/FontType 3 def
-/FontName /DIThacks def
-/FontMatrix [.001 0 0 .001 0 0] def
-/FontBBox [-260 -260 900 900] def% a lie but ...
-/Encoding 256 array def
-0 1 255{Encoding exch /.notdef put}for
-Encoding
- dup 8#040/space put %space
- dup 8#110/rc put %right ceil
- dup 8#111/lt put %left top curl
- dup 8#112/bv put %bold vert
- dup 8#113/lk put %left mid curl
- dup 8#114/lb put %left bot curl
- dup 8#115/rt put %right top curl
- dup 8#116/rk put %right mid curl
- dup 8#117/rb put %right bot curl
- dup 8#120/rf put %right floor
- dup 8#121/lf put %left floor
- dup 8#122/lc put %left ceil
- dup 8#140/sq put %square
- dup 8#141/bx put %box
- dup 8#142/ci put %circle
- dup 8#143/br put %box rule
- dup 8#144/rn put %root extender
- dup 8#145/vr put %vertical rule
- dup 8#146/ob put %outline bullet
- dup 8#147/bu put %bullet
- dup 8#150/ru put %rule
- dup 8#151/ul put %underline
- pop
-/DITfd 100 dict def
-/BuildChar{0 begin
- /cc exch def /fd exch def
- /charname fd /Encoding get cc get def
- /charwid fd /Metrics get charname get def
- /charproc fd /CharProcs get charname get def
- charwid 0 fd /FontBBox get aload pop setcachedevice
- 2 setlinejoin 40 setlinewidth
- newpath 0 0 moveto gsave charproc grestore
- end}def
-/BuildChar load 0 DITfd put
-/CharProcs 50 dict def
-CharProcs begin
-/space{}def
-/.notdef{}def
-/ru{500 0 rls}def
-/rn{0 840 moveto 500 0 rls}def
-/vr{0 800 moveto 0 -770 rls}def
-/bv{0 800 moveto 0 -1000 rls}def
-/br{0 840 moveto 0 -1000 rls}def
-/ul{0 -140 moveto 500 0 rls}def
-/ob{200 250 rmoveto currentpoint newpath 200 0 360 arc closepath stroke}def
-/bu{200 250 rmoveto currentpoint newpath 200 0 360 arc closepath fill}def
-/sq{80 0 rmoveto currentpoint dround newpath moveto
- 640 0 rlineto 0 640 rlineto -640 0 rlineto closepath stroke}def
-/bx{80 0 rmoveto currentpoint dround newpath moveto
- 640 0 rlineto 0 640 rlineto -640 0 rlineto closepath fill}def
-/ci{500 360 rmoveto currentpoint newpath 333 0 360 arc
- 50 setlinewidth stroke}def
-
-/lt{0 -200 moveto 0 550 rlineto currx 800 2cx s4 add exch s4 a4p stroke}def
-/lb{0 800 moveto 0 -550 rlineto currx -200 2cx s4 add exch s4 a4p stroke}def
-/rt{0 -200 moveto 0 550 rlineto currx 800 2cx s4 sub exch s4 a4p stroke}def
-/rb{0 800 moveto 0 -500 rlineto currx -200 2cx s4 sub exch s4 a4p stroke}def
-/lk{0 800 moveto 0 300 -300 300 s4 arcto pop pop 1000 sub
- 0 300 4 2 roll s4 a4p 0 -200 lineto stroke}def
-/rk{0 800 moveto 0 300 s2 300 s4 arcto pop pop 1000 sub
- 0 300 4 2 roll s4 a4p 0 -200 lineto stroke}def
-/lf{0 800 moveto 0 -1000 rlineto s4 0 rls}def
-/rf{0 800 moveto 0 -1000 rlineto s4 neg 0 rls}def
-/lc{0 -200 moveto 0 1000 rlineto s4 0 rls}def
-/rc{0 -200 moveto 0 1000 rlineto s4 neg 0 rls}def
-end
-
-/Metrics 50 dict def Metrics begin
-/.notdef 0 def
-/space 500 def
-/ru 500 def
-/br 0 def
-/lt 416 def
-/lb 416 def
-/rt 416 def
-/rb 416 def
-/lk 416 def
-/rk 416 def
-/rc 416 def
-/lc 416 def
-/rf 416 def
-/lf 416 def
-/bv 416 def
-/ob 350 def
-/bu 350 def
-/ci 750 def
-/bx 750 def
-/sq 750 def
-/rn 500 def
-/ul 500 def
-/vr 0 def
-end
-
-DITfd begin
-/s2 500 def /s4 250 def /s3 333 def
-/a4p{arcto pop pop pop pop}def
-/2cx{2 copy exch}def
-/rls{rlineto stroke}def
-/currx{currentpoint pop}def
-/dround{transform round exch round exch itransform} def
-end
-end
-/DIThacks exch definefont pop
-ditstart
-(psc)xT
-576 1 1 xr
-1(Times-Roman)xf 1 f
-2(Times-Italic)xf 2 f
-3(Times-Bold)xf 3 f
-4(Times-BoldItalic)xf 4 f
-5(Helvetica)xf 5 f
-6(Helvetica-Bold)xf 6 f
-7(Courier)xf 7 f
-8(Courier-Bold)xf 8 f
-9(Symbol)xf 9 f
-10(DIThacks)xf 10 f
-10 s
-1 f
-xi
-%%EndProlog
-
-%%Page: 1 1
-10 s 10 xH 0 xS 1 f
-3 f
-14 s
-1205 1206(LIBTP:)N
-1633(Portable,)X
-2100(M)X
-2206(odular)X
-2551(Transactions)X
-3202(for)X
-3374(UNIX)X
-1 f
-11 s
-3661 1162(1)N
-2 f
-12 s
-2182 1398(Margo)N
-2467(Seltzer)X
-2171 1494(Michael)N
-2511(Olson)X
-1800 1590(University)N
-2225(of)X
-2324(California,)X
-2773(Berkeley)X
-3 f
-2277 1878(Abstract)N
-1 f
-10 s
-755 2001(Transactions)N
-1198(provide)X
-1475(a)X
-1543(useful)X
-1771(programming)X
-2239(paradigm)X
-2574(for)X
-2700(maintaining)X
-3114(logical)X
-3364(consistency,)X
-3790(arbitrating)X
-4156(con-)X
-555 2091(current)N
-808(access,)X
-1059(and)X
-1200(managing)X
-1540(recovery.)X
-1886(In)X
-1977(traditional)X
-2330(UNIX)X
-2555(systems,)X
-2852(the)X
-2974(only)X
-3140(easy)X
-3307(way)X
-3465(of)X
-3556(using)X
-3753(transactions)X
-4160(is)X
-4237(to)X
-555 2181(purchase)N
-876(a)X
-947(database)X
-1258(system.)X
-1554(Such)X
-1748(systems)X
-2035(are)X
-2168(often)X
-2367(slow,)X
-2572(costly,)X
-2817(and)X
-2967(may)X
-3139(not)X
-3275(provide)X
-3554(the)X
-3686(exact)X
-3890(functionality)X
-555 2271(desired.)N
-848(This)X
-1011(paper)X
-1210(presents)X
-1493(the)X
-1611(design,)X
-1860(implementation,)X
-2402(and)X
-2538(performance)X
-2965(of)X
-3052(LIBTP,)X
-3314(a)X
-3370(simple,)X
-3623(non-proprietary)X
-4147(tran-)X
-555 2361(saction)N
-809(library)X
-1050(using)X
-1249(the)X
-1373(4.4BSD)X
-1654(database)X
-1957(access)X
-2189(routines)X
-2473(\()X
-3 f
-2500(db)X
-1 f
-2588(\(3\)\).)X
-2775(On)X
-2899(a)X
-2961(conventional)X
-3401(transaction)X
-3779(processing)X
-4148(style)X
-555 2451(benchmark,)N
-959(its)X
-1061(performance)X
-1495(is)X
-1575(approximately)X
-2065(85%)X
-2239(that)X
-2386(of)X
-2480(the)X
-2604(database)X
-2907(access)X
-3139(routines)X
-3423(without)X
-3693(transaction)X
-4071(protec-)X
-555 2541(tion,)N
-725(200%)X
-938(that)X
-1084(of)X
-1177(using)X
-3 f
-1376(fsync)X
-1 f
-1554(\(2\))X
-1674(to)X
-1761(commit)X
-2030(modi\256cations)X
-2490(to)X
-2577(disk,)X
-2755(and)X
-2896(125%)X
-3108(that)X
-3253(of)X
-3345(a)X
-3406(commercial)X
-3810(relational)X
-4138(data-)X
-555 2631(base)N
-718(system.)X
-3 f
-555 2817(1.)N
-655(Introduction)X
-1 f
-755 2940(Transactions)N
-1186(are)X
-1306(used)X
-1474(in)X
-1557(database)X
-1855(systems)X
-2129(to)X
-2212(enable)X
-2443(concurrent)X
-2807(users)X
-2992(to)X
-3074(apply)X
-3272(multi-operation)X
-3790(updates)X
-4055(without)X
-555 3030(violating)N
-863(the)X
-985(integrity)X
-1280(of)X
-1371(the)X
-1493(database.)X
-1814(They)X
-2003(provide)X
-2271(the)X
-2392(properties)X
-2736(of)X
-2826(atomicity,)X
-3171(consistency,)X
-3588(isolation,)X
-3906(and)X
-4045(durabil-)X
-555 3120(ity.)N
-701(By)X
-816(atomicity,)X
-1160(we)X
-1276(mean)X
-1472(that)X
-1614(the)X
-1734(set)X
-1845(of)X
-1934(updates)X
-2200(comprising)X
-2581(a)X
-2638(transaction)X
-3011(must)X
-3187(be)X
-3284(applied)X
-3541(as)X
-3629(a)X
-3686(single)X
-3898(unit;)X
-4085(that)X
-4226(is,)X
-555 3210(they)N
-714(must)X
-890(either)X
-1094(all)X
-1195(be)X
-1292(applied)X
-1549(to)X
-1632(the)X
-1751(database)X
-2049(or)X
-2137(all)X
-2238(be)X
-2335(absent.)X
-2601(Consistency)X
-3013(requires)X
-3293(that)X
-3434(a)X
-3491(transaction)X
-3864(take)X
-4019(the)X
-4138(data-)X
-555 3300(base)N
-725(from)X
-908(one)X
-1051(logically)X
-1358(consistent)X
-1704(state)X
-1877(to)X
-1965(another.)X
-2272(The)X
-2423(property)X
-2721(of)X
-2814(isolation)X
-3115(requires)X
-3400(that)X
-3546(concurrent)X
-3916(transactions)X
-555 3390(yield)N
-750(results)X
-994(which)X
-1225(are)X
-1358(indistinguishable)X
-1938(from)X
-2128(the)X
-2260(results)X
-2503(which)X
-2733(would)X
-2967(be)X
-3077(obtained)X
-3387(by)X
-3501(running)X
-3784(the)X
-3916(transactions)X
-555 3480(sequentially.)N
-1002(Finally,)X
-1268(durability)X
-1599(requires)X
-1878(that)X
-2018(once)X
-2190(transactions)X
-2593(have)X
-2765(been)X
-2937(committed,)X
-3319(their)X
-3486(results)X
-3715(must)X
-3890(be)X
-3986(preserved)X
-555 3570(across)N
-776(system)X
-1018(failures)X
-1279([TPCB90].)X
-755 3693(Although)N
-1080(these)X
-1268(properties)X
-1612(are)X
-1734(most)X
-1912(frequently)X
-2265(discussed)X
-2595(in)X
-2680(the)X
-2801(context)X
-3060(of)X
-3150(databases,)X
-3501(they)X
-3661(are)X
-3782(useful)X
-4000(program-)X
-555 3783(ming)N
-750(paradigms)X
-1114(for)X
-1238(more)X
-1433(general)X
-1700(purpose)X
-1984(applications.)X
-2441(There)X
-2659(are)X
-2788(several)X
-3046(different)X
-3353(situations)X
-3689(where)X
-3916(transactions)X
-555 3873(can)N
-687(be)X
-783(used)X
-950(to)X
-1032(replace)X
-1285(current)X
-1533(ad-hoc)X
-1772(mechanisms.)X
-755 3996(One)N
-910(situation)X
-1206(is)X
-1280(when)X
-1475(multiple)X
-1762(\256les)X
-1916(or)X
-2004(parts)X
-2181(of)X
-2269(\256les)X
-2422(need)X
-2594(to)X
-2676(be)X
-2772(updated)X
-3046(in)X
-3128(an)X
-3224(atomic)X
-3462(fashion.)X
-3758(For)X
-3889(example,)X
-4201(the)X
-555 4086(traditional)N
-907(UNIX)X
-1131(\256le)X
-1256(system)X
-1501(uses)X
-1661(ordering)X
-1955(constraints)X
-2324(to)X
-2408(achieve)X
-2676(recoverability)X
-3144(in)X
-3228(the)X
-3348(face)X
-3505(of)X
-3594(crashes.)X
-3893(When)X
-4107(a)X
-4165(new)X
-555 4176(\256le)N
-678(is)X
-752(created,)X
-1026(its)X
-1122(inode)X
-1321(is)X
-1395(written)X
-1642(to)X
-1724(disk)X
-1877(before)X
-2103(the)X
-2221(new)X
-2375(\256le)X
-2497(is)X
-2570(added)X
-2782(to)X
-2864(the)X
-2982(directory)X
-3292(structure.)X
-3633(This)X
-3795(guarantees)X
-4159(that,)X
-555 4266(if)N
-627(the)X
-748(system)X
-993(crashes)X
-1253(between)X
-1544(the)X
-1665(two)X
-1808(I/O's,)X
-2016(the)X
-2137(directory)X
-2450(does)X
-2620(not)X
-2744(contain)X
-3002(a)X
-3060 0.4531(reference)AX
-3383(to)X
-3467(an)X
-3565(invalid)X
-3809(inode.)X
-4049(In)X
-4138(actu-)X
-555 4356(ality,)N
-741(the)X
-863(desired)X
-1119(effect)X
-1326(is)X
-1402(that)X
-1545(these)X
-1733(two)X
-1876(updates)X
-2144(have)X
-2319(the)X
-2440(transactional)X
-2873(property)X
-3168(of)X
-3258(atomicity)X
-3583(\(either)X
-3816(both)X
-3981(writes)X
-4200(are)X
-555 4446(visible)N
-790(or)X
-879(neither)X
-1124(is\).)X
-1266(Rather)X
-1501(than)X
-1660(building)X
-1947(special)X
-2191(purpose)X
-2466(recovery)X
-2769(mechanisms)X
-3186(into)X
-3331(the)X
-3450(\256le)X
-3573(system)X
-3816(or)X
-3904(related)X
-4144(tools)X
-555 4536(\()N
-2 f
-582(e.g.)X
-3 f
-726(fsck)X
-1 f
-864(\(8\)\),)X
-1033(one)X
-1177(could)X
-1383(use)X
-1518(general)X
-1783(purpose)X
-2064(transaction)X
-2443(recovery)X
-2752(protocols)X
-3077(after)X
-3252(system)X
-3501(failure.)X
-3778(Any)X
-3943(application)X
-555 4626(that)N
-705(needs)X
-918(to)X
-1010(keep)X
-1192(multiple,)X
-1508(related)X
-1757(\256les)X
-1920(\(or)X
-2044(directories\))X
-2440(consistent)X
-2790(should)X
-3032(do)X
-3141(so)X
-3241(using)X
-3443(transactions.)X
-3895(Source)X
-4147(code)X
-555 4716(control)N
-805(systems,)X
-1101(such)X
-1271(as)X
-1361(RCS)X
-1534(and)X
-1673(SCCS,)X
-1910(should)X
-2146(use)X
-2276(transaction)X
-2651(semantics)X
-2990(to)X
-3075(allow)X
-3276(the)X
-3397(``checking)X
-3764(in'')X
-3903(of)X
-3992(groups)X
-4232(of)X
-555 4806(related)N
-801(\256les.)X
-1001(In)X
-1095(this)X
-1237(way,)X
-1418(if)X
-1493(the)X
-1617 0.2841(``check-in'')AX
-2028(fails,)X
-2212(the)X
-2336(transaction)X
-2714(may)X
-2878(be)X
-2980(aborted,)X
-3267(backing)X
-3547(out)X
-3675(the)X
-3799(partial)X
-4030(``check-)X
-555 4896(in'')N
-691(leaving)X
-947(the)X
-1065(source)X
-1295(repository)X
-1640(in)X
-1722(a)X
-1778(consistent)X
-2118(state.)X
-755 5019(A)N
-842(second)X
-1094(situation)X
-1398(where)X
-1624(transactions)X
-2036(can)X
-2177(be)X
-2282(used)X
-2458(to)X
-2549(replace)X
-2811(current)X
-3068(ad-hoc)X
-3316(mechanisms)X
-3741(is)X
-3822(in)X
-3912(applications)X
-555 5109(where)N
-776(concurrent)X
-1144(updates)X
-1413(to)X
-1499(a)X
-1559(shared)X
-1793(\256le)X
-1919(are)X
-2042(desired,)X
-2318(but)X
-2444(there)X
-2629(is)X
-2706(logical)X
-2948(consistency)X
-3345(of)X
-3435(the)X
-3556(data)X
-3713(which)X
-3932(needs)X
-4138(to)X
-4223(be)X
-555 5199(preserved.)N
-928(For)X
-1059(example,)X
-1371(when)X
-1565(the)X
-1683(password)X
-2006(\256le)X
-2128(is)X
-2201(updated,)X
-2495(\256le)X
-2617(locking)X
-2877(is)X
-2950(used)X
-3117(to)X
-3199(disallow)X
-3490(concurrent)X
-3854(access.)X
-4120(Tran-)X
-555 5289(saction)N
-804(semantics)X
-1142(on)X
-1244(the)X
-1364(password)X
-1689(\256les)X
-1844(would)X
-2066(allow)X
-2266(concurrent)X
-2632(updates,)X
-2919(while)X
-3119(preserving)X
-3479(the)X
-3598(logical)X
-3837(consistency)X
-4232(of)X
-555 5379(the)N
-681(password)X
-1012(database.)X
-1357(Similarly,)X
-1702(UNIX)X
-1930(utilities)X
-2196(which)X
-2419(rewrite)X
-2674(\256les)X
-2834(face)X
-2996(a)X
-3059(potential)X
-3366(race)X
-3528(condition)X
-3857(between)X
-4152(their)X
-555 5469(rewriting)N
-871(a)X
-929(\256le)X
-1053(and)X
-1191(another)X
-1453(process)X
-1715(reading)X
-1977(the)X
-2096(\256le.)X
-2259(For)X
-2391(example,)X
-2704(the)X
-2823(compiler)X
-3129(\(more)X
-3342(precisely,)X
-3673(the)X
-3792(assembler\))X
-4161(may)X
-8 s
-10 f
-555 5541(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)N
-5 s
-1 f
-727 5619(1)N
-8 s
-763 5644(To)N
-850(appear)X
-1035(in)X
-1101(the)X
-2 f
-1195(Proceedings)X
-1530(of)X
-1596(the)X
-1690(1992)X
-1834(Winter)X
-2024(Usenix)X
-1 f
-2201(,)X
-2233(San)X
-2345(Francisco,)X
-2625(CA,)X
-2746(January)X
-2960(1992.)X
-
-2 p
-%%Page: 2 2
-8 s 8 xH 0 xS 1 f
-10 s
-3 f
-1 f
-555 630(have)N
-737(to)X
-829(rewrite)X
-1087(a)X
-1152(\256le)X
-1283(to)X
-1374(which)X
-1599(it)X
-1672(has)X
-1808(write)X
-2002(permission)X
-2382(in)X
-2473(a)X
-2538(directory)X
-2857(to)X
-2948(which)X
-3173(it)X
-3246(does)X
-3422(not)X
-3553(have)X
-3734(write)X
-3928(permission.)X
-555 720(While)N
-779(the)X
-904(``.o'')X
-1099(\256le)X
-1228(is)X
-1308(being)X
-1513(written,)X
-1787(another)X
-2055(utility)X
-2272(such)X
-2446(as)X
-3 f
-2540(nm)X
-1 f
-2651(\(1\))X
-2772(or)X
-3 f
-2866(ar)X
-1 f
-2942(\(1\))X
-3063(may)X
-3228(read)X
-3394(the)X
-3519(\256le)X
-3648(and)X
-3791(produce)X
-4077(invalid)X
-555 810(results)N
-790(since)X
-981(the)X
-1105(\256le)X
-1233(has)X
-1366(not)X
-1494(been)X
-1672(completely)X
-2054(written.)X
-2347(Currently,)X
-2700(some)X
-2895(utilities)X
-3160(use)X
-3293(special)X
-3542(purpose)X
-3821(code)X
-3998(to)X
-4085(handle)X
-555 900(such)N
-722(cases)X
-912(while)X
-1110(others)X
-1326(ignore)X
-1551(the)X
-1669(problem)X
-1956(and)X
-2092(force)X
-2278(users)X
-2463(to)X
-2545(live)X
-2685(with)X
-2847(the)X
-2965(consequences.)X
-755 1023(In)N
-845(this)X
-983(paper,)X
-1205(we)X
-1322(present)X
-1577(a)X
-1635(simple)X
-1870(library)X
-2106(which)X
-2324(provides)X
-2622(transaction)X
-2996(semantics)X
-3334(\(atomicity,)X
-3705(consistency,)X
-4121(isola-)X
-555 1113(tion,)N
-720(and)X
-857(durability\).)X
-1236(The)X
-1382(4.4BSD)X
-1658(database)X
-1956(access)X
-2182(methods)X
-2473(have)X
-2645(been)X
-2817(modi\256ed)X
-3121(to)X
-3203(use)X
-3330(this)X
-3465(library,)X
-3719(optionally)X
-4063(provid-)X
-555 1203(ing)N
-682(shared)X
-917(buffer)X
-1139(management)X
-1574(between)X
-1867(applications,)X
-2298(locking,)X
-2582(and)X
-2722(transaction)X
-3098(semantics.)X
-3478(Any)X
-3640(UNIX)X
-3865(program)X
-4161(may)X
-555 1293(transaction)N
-930(protect)X
-1176(its)X
-1274(data)X
-1430(by)X
-1532(requesting)X
-1888(transaction)X
-2262(protection)X
-2609(with)X
-2773(the)X
-3 f
-2893(db)X
-1 f
-2981(\(3\))X
-3097(library)X
-3333(or)X
-3422(by)X
-3524(adding)X
-3764(appropriate)X
-4152(calls)X
-555 1383(to)N
-646(the)X
-773(transaction)X
-1154(manager,)X
-1480(buffer)X
-1706(manager,)X
-2032(lock)X
-2199(manager,)X
-2525(and)X
-2670(log)X
-2801(manager.)X
-3147(The)X
-3301(library)X
-3543(routines)X
-3829(may)X
-3995(be)X
-4099(linked)X
-555 1473(into)N
-708(the)X
-834(host)X
-995(application)X
-1379(and)X
-1523(called)X
-1743(by)X
-1851(subroutine)X
-2217(interface,)X
-2547(or)X
-2642(they)X
-2808(may)X
-2974(reside)X
-3194(in)X
-3284(a)X
-3348(separate)X
-3640(server)X
-3865(process.)X
-4174(The)X
-555 1563(server)N
-772(architecture)X
-1172(provides)X
-1468(for)X
-1582(network)X
-1865(access)X
-2091(and)X
-2227(better)X
-2430(protection)X
-2775(mechanisms.)X
-3 f
-555 1749(2.)N
-655(Related)X
-938(Work)X
-1 f
-755 1872(There)N
-1000(has)X
-1164(been)X
-1373(much)X
-1608(discussion)X
-1998(in)X
-2117(recent)X
-2371(years)X
-2597(about)X
-2831(new)X
-3021(transaction)X
-3429(models)X
-3716(and)X
-3888(architectures)X
-555 1962 0.1172([SPEC88][NODI90][CHEN91][MOHA91].)AN
-2009(Much)X
-2220(of)X
-2310(this)X
-2448(work)X
-2636(focuses)X
-2900(on)X
-3003(new)X
-3160(ways)X
-3348(to)X
-3433(model)X
-3656(transactions)X
-4062(and)X
-4201(the)X
-555 2052(interactions)N
-953(between)X
-1245(them,)X
-1449(while)X
-1651(the)X
-1772(work)X
-1960(presented)X
-2291(here)X
-2453(focuses)X
-2717(on)X
-2820(the)X
-2941(implementation)X
-3466(and)X
-3605(performance)X
-4035(of)X
-4125(tradi-)X
-555 2142(tional)N
-757(transaction)X
-1129(techniques)X
-1492(\(write-ahead)X
-1919(logging)X
-2183(and)X
-2319(two-phase)X
-2669(locking\))X
-2956(on)X
-3056(a)X
-3112(standard)X
-3404(operating)X
-3727(system)X
-3969(\(UNIX\).)X
-755 2265(Such)N
-947(traditional)X
-1308(operating)X
-1643(systems)X
-1928(are)X
-2059(often)X
-2256(criticized)X
-2587(for)X
-2713(their)X
-2892(inability)X
-3190(to)X
-3283(perform)X
-3573(transaction)X
-3956(processing)X
-555 2355(adequately.)N
-971([STON81])X
-1342(cites)X
-1517(three)X
-1706(main)X
-1894(areas)X
-2088(of)X
-2183(inadequate)X
-2559(support:)X
-2849(buffer)X
-3074(management,)X
-3532(the)X
-3658(\256le)X
-3788(system,)X
-4058(and)X
-4201(the)X
-555 2445(process)N
-823(structure.)X
-1191(These)X
-1410(arguments)X
-1771(are)X
-1897(summarized)X
-2316(in)X
-2405(table)X
-2587(one.)X
-2769(Fortunately,)X
-3184(much)X
-3388(has)X
-3521(changed)X
-3815(since)X
-4006(1981.)X
-4232(In)X
-555 2535(the)N
-683(area)X
-848(of)X
-945(buffer)X
-1172(management,)X
-1632(most)X
-1817(UNIX)X
-2048(systems)X
-2331(provide)X
-2606(the)X
-2734(ability)X
-2968(to)X
-3060(memory)X
-3357(map)X
-3525(\256les,)X
-3708(thus)X
-3870(obviating)X
-4201(the)X
-555 2625(need)N
-734(for)X
-855(a)X
-918(copy)X
-1101(between)X
-1396(kernel)X
-1624(and)X
-1766(user)X
-1926(space.)X
-2171(If)X
-2251(a)X
-2313(database)X
-2616(system)X
-2864(is)X
-2943(going)X
-3151(to)X
-3239(use)X
-3372(the)X
-3496(\256le)X
-3624(system)X
-3872(buffer)X
-4095(cache,)X
-555 2715(then)N
-719(a)X
-781(system)X
-1029(call)X
-1171(is)X
-1250(required.)X
-1584(However,)X
-1924(if)X
-1998(buffering)X
-2322(is)X
-2400(provided)X
-2710(at)X
-2793(user)X
-2952(level)X
-3133(using)X
-3331(shared)X
-3566(memory,)X
-3878(as)X
-3970(in)X
-4057(LIBTP,)X
-555 2805(buffer)N
-776(management)X
-1210(is)X
-1287(only)X
-1452(as)X
-1542(slow)X
-1716(as)X
-1806(access)X
-2035(to)X
-2120(shared)X
-2353(memory)X
-2643(and)X
-2782(any)X
-2921(replacement)X
-3337(algorithm)X
-3671(may)X
-3832(be)X
-3931(used.)X
-4121(Since)X
-555 2895(multiple)N
-849(processes)X
-1185(can)X
-1325(access)X
-1559(the)X
-1685(shared)X
-1923(data,)X
-2105(prefetching)X
-2499(may)X
-2665(be)X
-2769(accomplished)X
-3238(by)X
-3346(separate)X
-3638(processes)X
-3973(or)X
-4067(threads)X
-555 2985(whose)N
-782(sole)X
-932(purpose)X
-1207(is)X
-1281(to)X
-1364(prefetch)X
-1649(pages)X
-1853(and)X
-1990(wait)X
-2149(on)X
-2250(them.)X
-2471(There)X
-2680(is)X
-2754(still)X
-2894(no)X
-2995(way)X
-3150(to)X
-3233(enforce)X
-3496(write)X
-3682(ordering)X
-3975(other)X
-4161(than)X
-555 3075(keeping)N
-829(pages)X
-1032(in)X
-1114(user)X
-1268(memory)X
-1555(and)X
-1691(using)X
-1884(the)X
-3 f
-2002(fsync)X
-1 f
-2180(\(3\))X
-2294(system)X
-2536(call)X
-2672(to)X
-2754(perform)X
-3033(synchronous)X
-3458(writes.)X
-755 3198(In)N
-845(the)X
-966(area)X
-1124(of)X
-1214(\256le)X
-1339(systems,)X
-1635(the)X
-1756(fast)X
-1895(\256le)X
-2020(system)X
-2265(\(FFS\))X
-2474([MCKU84])X
-2871(allows)X
-3103(allocation)X
-3442(in)X
-3527(units)X
-3704(up)X
-3806(to)X
-3890(64KBytes)X
-4232(as)X
-555 3288(opposed)N
-846(to)X
-932(the)X
-1054(4KByte)X
-1327(and)X
-1466(8KByte)X
-1738(\256gures)X
-1979(quoted)X
-2220(in)X
-2305([STON81].)X
-2711(The)X
-2859(measurements)X
-3341(in)X
-3426(this)X
-3564(paper)X
-3766(were)X
-3946(taken)X
-4143(from)X
-555 3378(an)N
-655(8KByte)X
-928(FFS,)X
-1104(but)X
-1230(as)X
-1320(LIBTP)X
-1565(runs)X
-1726(exclusively)X
-2114(in)X
-2199(user)X
-2356(space,)X
-2578(there)X
-2762(is)X
-2838(nothing)X
-3105(to)X
-3190(prevent)X
-3454(it)X
-3521(from)X
-3700(being)X
-3901(run)X
-4031(on)X
-4134(other)X
-555 3468(UNIX)N
-776(compatible)X
-1152(\256le)X
-1274(systems)X
-1547(\(e.g.)X
-1710(log-structured)X
-2180([ROSE91],)X
-2558(extent-based,)X
-3004(or)X
-3091(multi-block)X
-3484([SELT91]\).)X
-755 3591(Finally,)N
-1029(with)X
-1199(regard)X
-1433(to)X
-1523(the)X
-1648(process)X
-1916(structure,)X
-2244(neither)X
-2494(context)X
-2757(switch)X
-2993(time)X
-3162(nor)X
-3296(scheduling)X
-3670(around)X
-3920(semaphores)X
-555 3681(seems)N
-785(to)X
-881(affect)X
-1099(the)X
-1231(system)X
-1487(performance.)X
-1968(However,)X
-2317(the)X
-2449(implementation)X
-2984(of)X
-3084(semaphores)X
-3496(can)X
-3641(impact)X
-3892(performance)X
-555 3771(tremendously.)N
-1051(This)X
-1213(is)X
-1286(discussed)X
-1613(in)X
-1695(more)X
-1880(detail)X
-2078(in)X
-2160(section)X
-2407(4.3.)X
-755 3894(The)N
-908(Tuxedo)X
-1181(system)X
-1431(from)X
-1615(AT&T)X
-1861(is)X
-1941(a)X
-2004(transaction)X
-2383(manager)X
-2687(which)X
-2910(coordinates)X
-3307(distributed)X
-3676(transaction)X
-4055(commit)X
-555 3984(from)N
-738(a)X
-801(variety)X
-1051(of)X
-1145(different)X
-1449(local)X
-1632(transaction)X
-2011(managers.)X
-2386(At)X
-2493(this)X
-2634(time,)X
-2822(LIBTP)X
-3070(does)X
-3243(not)X
-3371(have)X
-3549(its)X
-3650(own)X
-3814(mechanism)X
-4205(for)X
-555 4074(distributed)N
-942(commit)X
-1231(processing,)X
-1639(but)X
-1786(could)X
-2009(be)X
-2130(used)X
-2322(as)X
-2434(a)X
-2515(local)X
-2716(transaction)X
-3113(agent)X
-3331(by)X
-3455(systems)X
-3752(such)X
-3943(as)X
-4054(Tuxedo)X
-555 4164([ANDR89].)N
-10 f
-863 4393(i)N
-870(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-1 f
-903 4483(Buffer)N
-1133(Management)X
-10 f
-1672(g)X
-1 f
-1720(Data)X
-1892(must)X
-2067(be)X
-2163(copied)X
-2397(between)X
-2685(kernel)X
-2906(space)X
-3105(and)X
-3241(user)X
-3395(space.)X
-10 f
-1672 4573(g)N
-1 f
-1720(Buffer)X
-1950(pool)X
-2112(access)X
-2338(is)X
-2411(too)X
-2533(slow.)X
-10 f
-1672 4663(g)N
-1 f
-1720(There)X
-1928(is)X
-2001(no)X
-2101(way)X
-2255(to)X
-2337(request)X
-2589(prefetch.)X
-10 f
-1672 4753(g)N
-1 f
-1720(Replacement)X
-2159(is)X
-2232(usually)X
-2483(LRU)X
-2663(which)X
-2879(may)X
-3037(be)X
-3133(suboptimal)X
-3508(for)X
-3622(databases.)X
-10 f
-1672 4843(g)N
-1 f
-1720(There)X
-1928(is)X
-2001(no)X
-2101(way)X
-2255(to)X
-2337(guarantee)X
-2670(write)X
-2855(ordering.)X
-10 f
-863 4853(i)N
-870(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-1 f
-903 4943(File)N
-1047(System)X
-10 f
-1672(g)X
-1 f
-1720(Allocation)X
-2078(is)X
-2151(done)X
-2327(in)X
-2409(small)X
-2602(blocks)X
-2831(\(usually)X
-3109(4K)X
-3227(or)X
-3314(8K\).)X
-10 f
-1672 5033(g)N
-1 f
-1720(Logical)X
-1985(organization)X
-2406(of)X
-2493(\256les)X
-2646(is)X
-2719(redundantly)X
-3122(expressed.)X
-10 f
-863 5043(i)N
-870(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-1 f
-903 5133(Process)N
-1168(Structure)X
-10 f
-1672(g)X
-1 f
-1720(Context)X
-1993(switching)X
-2324(and)X
-2460(message)X
-2752(passing)X
-3012(are)X
-3131(too)X
-3253(slow.)X
-10 f
-1672 5223(g)N
-1 f
-1720(A)X
-1798(process)X
-2059(may)X
-2217(be)X
-2313(descheduled)X
-2730(while)X
-2928(holding)X
-3192(a)X
-3248(semaphore.)X
-10 f
-863 5233(i)N
-870(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-863(c)X
-5193(c)Y
-5113(c)Y
-5033(c)Y
-4953(c)Y
-4873(c)Y
-4793(c)Y
-4713(c)Y
-4633(c)Y
-4553(c)Y
-4473(c)Y
-3990 5233(c)N
-5193(c)Y
-5113(c)Y
-5033(c)Y
-4953(c)Y
-4873(c)Y
-4793(c)Y
-4713(c)Y
-4633(c)Y
-4553(c)Y
-4473(c)Y
-3 f
-1156 5446(Table)N
-1371(One:)X
-1560(Shortcomings)X
-2051(of)X
-2138(UNIX)X
-2363(transaction)X
-2770(support)X
-3056(cited)X
-3241(in)X
-3327([STON81].)X
-
-3 p
-%%Page: 3 3
-10 s 10 xH 0 xS 3 f
-1 f
-755 630(The)N
-901(transaction)X
-1274(architecture)X
-1675(presented)X
-2004(in)X
-2087([YOUN91])X
-2474(is)X
-2548(very)X
-2712(similar)X
-2955(to)X
-3038(that)X
-3179(implemented)X
-3618(in)X
-3701(the)X
-3820(LIBTP.)X
-4103(While)X
-555 720([YOUN91])N
-947(presents)X
-1236(a)X
-1298(model)X
-1524(for)X
-1644(providing)X
-1981(transaction)X
-2359(services,)X
-2663(this)X
-2803(paper)X
-3007(focuses)X
-3273(on)X
-3378(the)X
-3501(implementation)X
-4028(and)X
-4169(per-)X
-555 810(formance)N
-881(of)X
-970(a)X
-1028(particular)X
-1358(system.)X
-1642(In)X
-1731(addition,)X
-2034(we)X
-2149(provide)X
-2415(detailed)X
-2690(comparisons)X
-3116(with)X
-3279(alternative)X
-3639(solutions:)X
-3970(traditional)X
-555 900(UNIX)N
-776(services)X
-1055(and)X
-1191(commercial)X
-1590(database)X
-1887(management)X
-2317(systems.)X
-3 f
-555 1086(3.)N
-655(Architecture)X
-1 f
-755 1209(The)N
-906(library)X
-1146(is)X
-1224(designed)X
-1534(to)X
-1621(provide)X
-1891(well)X
-2054(de\256ned)X
-2315(interfaces)X
-2653(to)X
-2740(the)X
-2863(services)X
-3147(required)X
-3440(for)X
-3559(transaction)X
-3936(processing.)X
-555 1299(These)N
-777(services)X
-1066(are)X
-1195(recovery,)X
-1527(concurrency)X
-1955(control,)X
-2232(and)X
-2378(the)X
-2506(management)X
-2946(of)X
-3043(shared)X
-3283(data.)X
-3487(First)X
-3663(we)X
-3787(will)X
-3941(discuss)X
-4201(the)X
-555 1389(design)N
-795(tradeoffs)X
-1112(in)X
-1205(the)X
-1334(selection)X
-1650(of)X
-1748(recovery,)X
-2081(concurrency)X
-2510(control,)X
-2787(and)X
-2933(buffer)X
-3160(management)X
-3600(implementations,)X
-4183(and)X
-555 1479(then)N
-713(we)X
-827(will)X
-971(present)X
-1223(the)X
-1341(overall)X
-1584(library)X
-1818(architecture)X
-2218(and)X
-2354(module)X
-2614(descriptions.)X
-3 f
-555 1665(3.1.)N
-715(Design)X
-966(Tradeoffs)X
-1 f
-3 f
-555 1851(3.1.1.)N
-775(Crash)X
-1004(Recovery)X
-1 f
-755 1974(The)N
-909(recovery)X
-1220(protocol)X
-1516(is)X
-1598(responsible)X
-1992(for)X
-2115(providing)X
-2455(the)X
-2582(transaction)X
-2963(semantics)X
-3308(discussed)X
-3644(earlier.)X
-3919(There)X
-4136(are)X
-4263(a)X
-555 2064(wide)N
-739(range)X
-946(of)X
-1041(recovery)X
-1351(protocols)X
-1677(available)X
-1995([HAER83],)X
-2395(but)X
-2525(we)X
-2647(can)X
-2786(crudely)X
-3054(divide)X
-3281(them)X
-3468(into)X
-3619(two)X
-3766(main)X
-3953(categories.)X
-555 2154(The)N
-706(\256rst)X
-856(category)X
-1159(records)X
-1422(all)X
-1528(modi\256cations)X
-1989(to)X
-2077(the)X
-2201(database)X
-2504(in)X
-2592(a)X
-2653(separate)X
-2942(\256le,)X
-3089(and)X
-3230(uses)X
-3393(this)X
-3533(\256le)X
-3660(\(log\))X
-3841(to)X
-3928(back)X
-4105(out)X
-4232(or)X
-555 2244(reapply)N
-825(these)X
-1019(modi\256cations)X
-1483(if)X
-1561(a)X
-1626(transaction)X
-2007(aborts)X
-2232(or)X
-2328(the)X
-2455(system)X
-2706(crashes.)X
-3012(We)X
-3153(call)X
-3298(this)X
-3442(set)X
-3560(the)X
-3 f
-3687(logging)X
-3963(protocols)X
-1 f
-4279(.)X
-555 2334(The)N
-703(second)X
-949(category)X
-1249(avoids)X
-1481(the)X
-1602(use)X
-1732(of)X
-1822(a)X
-1881(log)X
-2006(by)X
-2109(carefully)X
-2418(controlling)X
-2792(when)X
-2989(data)X
-3146(are)X
-3268(written)X
-3518(to)X
-3603(disk.)X
-3799(We)X
-3934(call)X
-4073(this)X
-4210(set)X
-555 2424(the)N
-3 f
-673(non-logging)X
-1096(protocols)X
-1 f
-1412(.)X
-755 2547(Non-logging)N
-1185(protocols)X
-1504(hold)X
-1666(dirty)X
-1837(buffers)X
-2085(in)X
-2167(main)X
-2347(memory)X
-2634(or)X
-2721(temporary)X
-3071(\256les)X
-3224(until)X
-3390(commit)X
-3654(and)X
-3790(then)X
-3948(force)X
-4134(these)X
-555 2637(pages)N
-769(to)X
-862(disk)X
-1026(at)X
-1115(transaction)X
-1498(commit.)X
-1813(While)X
-2040(we)X
-2165(can)X
-2308(use)X
-2446(temporary)X
-2807(\256les)X
-2971(to)X
-3064(hold)X
-3237(dirty)X
-3418(pages)X
-3631(that)X
-3781(may)X
-3949(need)X
-4131(to)X
-4223(be)X
-555 2727(evicted)N
-810(from)X
-988(memory)X
-1277(during)X
-1508(a)X
-1566(long-running)X
-2006(transaction,)X
-2400(the)X
-2520(only)X
-2684(user-level)X
-3023(mechanism)X
-3410(to)X
-3494(force)X
-3682(pages)X
-3887(to)X
-3971(disk)X
-4126(is)X
-4201(the)X
-3 f
-555 2817(fsync)N
-1 f
-733(\(2\))X
-850(system)X
-1095(call.)X
-1274(Unfortunately,)X
-3 f
-1767(fsync)X
-1 f
-1945(\(2\))X
-2062(is)X
-2138(an)X
-2237(expensive)X
-2581(system)X
-2826(call)X
-2965(in)X
-3050(that)X
-3193(it)X
-3260(forces)X
-3480(all)X
-3583(pages)X
-3789(of)X
-3879(a)X
-3938(\256le)X
-4062(to)X
-4146(disk,)X
-555 2907(and)N
-691(transactions)X
-1094(that)X
-1234(manage)X
-1504(more)X
-1689(than)X
-1847(one)X
-1983(\256le)X
-2105(must)X
-2280(issue)X
-2460(one)X
-2596(call)X
-2732(per)X
-2855(\256le.)X
-755 3030(In)N
-853(addition,)X
-3 f
-1166(fsync)X
-1 f
-1344(\(2\))X
-1469(provides)X
-1776(no)X
-1887(way)X
-2051(to)X
-2143(control)X
-2400(the)X
-2528(order)X
-2728(in)X
-2820(which)X
-3046(dirty)X
-3227(pages)X
-3440(are)X
-3569(written)X
-3826(to)X
-3918(disk.)X
-4121(Since)X
-555 3120(non-logging)N
-976(protocols)X
-1304(must)X
-1489(sometimes)X
-1861(order)X
-2061(writes)X
-2287(carefully)X
-2603([SULL92],)X
-2987(they)X
-3155(are)X
-3284(dif\256cult)X
-3567(to)X
-3659(implement)X
-4030(on)X
-4139(Unix)X
-555 3210(systems.)N
-868(As)X
-977(a)X
-1033(result,)X
-1251(we)X
-1365(have)X
-1537(chosen)X
-1780(to)X
-1862(implement)X
-2224(a)X
-2280(logging)X
-2544(protocol.)X
-755 3333(Logging)N
-1050(protocols)X
-1372(may)X
-1534(be)X
-1634(categorized)X
-2029(based)X
-2236(on)X
-2340(how)X
-2502(information)X
-2904(is)X
-2981(logged)X
-3223(\(physically)X
-3602(or)X
-3692(logically\))X
-4022(and)X
-4161(how)X
-555 3423(much)N
-767(is)X
-854(logged)X
-1106(\(before)X
-1373(images,)X
-1654(after)X
-1836(images)X
-2097(or)X
-2198(both\).)X
-2441(In)X
-3 f
-2542(physical)X
-2855(logging)X
-1 f
-3103(,)X
-3157(images)X
-3417(of)X
-3517(complete)X
-3844(physical)X
-4144(units)X
-555 3513(\(pages)N
-786(or)X
-874(buffers\))X
-1150(are)X
-1270(recorded,)X
-1593(while)X
-1792(in)X
-3 f
-1875(logical)X
-2118(logging)X
-1 f
-2387(a)X
-2444(description)X
-2820(of)X
-2907(the)X
-3025(operation)X
-3348(is)X
-3421(recorded.)X
-3763(Therefore,)X
-4121(while)X
-555 3603(we)N
-675(may)X
-839(record)X
-1071(entire)X
-1280(pages)X
-1489(in)X
-1577(a)X
-1639(physical)X
-1932(log,)X
-2080(we)X
-2200(need)X
-2378(only)X
-2546(record)X
-2777(the)X
-2900(records)X
-3162(being)X
-3365(modi\256ed)X
-3674(in)X
-3761(a)X
-3822(logical)X
-4065(log.)X
-4232(In)X
-555 3693(fact,)N
-718(physical)X
-1006(logging)X
-1271(can)X
-1404(be)X
-1501(thought)X
-1766(of)X
-1854(as)X
-1942(a)X
-1999(special)X
-2243(case)X
-2403(of)X
-2491(logical)X
-2730(logging,)X
-3015(since)X
-3201(the)X
-3320 0.3125(``records'')AX
-3686(that)X
-3827(we)X
-3942(log)X
-4065(in)X
-4148(logi-)X
-555 3783(cal)N
-673(logging)X
-941(might)X
-1151(be)X
-1251(physical)X
-1542(pages.)X
-1789(Since)X
-1991(logical)X
-2233(logging)X
-2501(is)X
-2578(both)X
-2743(more)X
-2931(space-ef\256cient)X
-3423(and)X
-3562(more)X
-3750(general,)X
-4030(we)X
-4147(have)X
-555 3873(chosen)N
-798(it)X
-862(for)X
-976(our)X
-1103(logging)X
-1367(protocol.)X
-755 3996(In)N
-3 f
-843(before-image)X
-1315(logging)X
-1 f
-1563(,)X
-1604(we)X
-1719(log)X
-1842(a)X
-1899(copy)X
-2076(of)X
-2164(the)X
-2283(data)X
-2438(before)X
-2665(the)X
-2784(update,)X
-3039(while)X
-3238(in)X
-3 f
-3321(after-image)X
-3739(logging)X
-1 f
-3987(,)X
-4027(we)X
-4141(log)X
-4263(a)X
-555 4086(copy)N
-740(of)X
-836(the)X
-963(data)X
-1126(after)X
-1303(the)X
-1429(update.)X
-1711(If)X
-1793(we)X
-1915(log)X
-2045(only)X
-2215(before-images,)X
-2723(then)X
-2889(there)X
-3078(is)X
-3159(suf\256cient)X
-3485(information)X
-3891(in)X
-3981(the)X
-4107(log)X
-4237(to)X
-555 4176(allow)N
-761(us)X
-860(to)X
-3 f
-950(undo)X
-1 f
-1150(the)X
-1276(transaction)X
-1656(\(go)X
-1791(back)X
-1971(to)X
-2061(the)X
-2187(state)X
-2361(represented)X
-2759(by)X
-2866(the)X
-2991(before-image\).)X
-3514(However,)X
-3876(if)X
-3952(the)X
-4077(system)X
-555 4266(crashes)N
-814(and)X
-952(a)X
-1010(committed)X
-1374(transaction's)X
-1806(changes)X
-2087(have)X
-2261(not)X
-2385(reached)X
-2658(the)X
-2778(disk,)X
-2953(we)X
-3068(have)X
-3241(no)X
-3342(means)X
-3568(to)X
-3 f
-3651(redo)X
-1 f
-3828(the)X
-3947(transaction)X
-555 4356(\(reapply)N
-849(the)X
-973(updates\).)X
-1311(Therefore,)X
-1675(logging)X
-1945(only)X
-2113(before-images)X
-2599(necessitates)X
-3004(forcing)X
-3262(dirty)X
-3439(pages)X
-3648(at)X
-3732(commit)X
-4002(time.)X
-4210(As)X
-555 4446(mentioned)N
-913(above,)X
-1145(forcing)X
-1397(pages)X
-1600(at)X
-1678(commit)X
-1942(is)X
-2015(considered)X
-2383(too)X
-2505(costly.)X
-755 4569(If)N
-834(we)X
-953(log)X
-1080(only)X
-1247(after-images,)X
-1694(then)X
-1857(there)X
-2043(is)X
-2121(suf\256cient)X
-2444(information)X
-2847(in)X
-2934(the)X
-3057(log)X
-3184(to)X
-3271(allow)X
-3474(us)X
-3570(to)X
-3657(redo)X
-3825(the)X
-3947(transaction)X
-555 4659(\(go)N
-687(forward)X
-967(to)X
-1054(the)X
-1177(state)X
-1348(represented)X
-1743(by)X
-1847(the)X
-1969(after-image\),)X
-2411(but)X
-2537(we)X
-2655(do)X
-2759(not)X
-2885(have)X
-3061(the)X
-3183(information)X
-3585(required)X
-3877(to)X
-3963(undo)X
-4147(tran-)X
-555 4749(sactions)N
-845(which)X
-1073(aborted)X
-1346(after)X
-1526(dirty)X
-1709(pages)X
-1924(were)X
-2113(written)X
-2372(to)X
-2466(disk.)X
-2670(Therefore,)X
-3039(logging)X
-3314(only)X
-3487(after-images)X
-3920(necessitates)X
-555 4839(holding)N
-819(all)X
-919(dirty)X
-1090(buffers)X
-1338(in)X
-1420(main)X
-1600(memory)X
-1887(until)X
-2053(commit)X
-2317(or)X
-2404(writing)X
-2655(them)X
-2835(to)X
-2917(a)X
-2973(temporary)X
-3323(\256le.)X
-755 4962(Since)N
-956(neither)X
-1202(constraint)X
-1541(\(forcing)X
-1823(pages)X
-2029(on)X
-2132(commit)X
-2399(or)X
-2489(buffering)X
-2811(pages)X
-3016(until)X
-3184(commit\))X
-3477(was)X
-3624(feasible,)X
-3916(we)X
-4032(chose)X
-4237(to)X
-555 5052(log)N
-683(both)X
-851(before)X
-1083(and)X
-1225(after)X
-1399(images.)X
-1672(The)X
-1823(only)X
-1991(remaining)X
-2342(consideration)X
-2800(is)X
-2879(when)X
-3079(changes)X
-3363(get)X
-3486(written)X
-3738(to)X
-3825(disk.)X
-4023(Changes)X
-555 5142(affect)N
-764(both)X
-931(data)X
-1090(pages)X
-1298(and)X
-1438(the)X
-1560(log.)X
-1726(If)X
-1804(the)X
-1926(changed)X
-2218(data)X
-2376(page)X
-2552(is)X
-2629(written)X
-2880(before)X
-3110(the)X
-3232(log)X
-3358(page,)X
-3554(and)X
-3694(the)X
-3816(system)X
-4062(crashes)X
-555 5232(before)N
-787(the)X
-911(log)X
-1039(page)X
-1217(is)X
-1296(written,)X
-1569(the)X
-1693(log)X
-1820(will)X
-1969(contain)X
-2230(insuf\256cient)X
-2615(information)X
-3018(to)X
-3105(undo)X
-3290(the)X
-3413(change.)X
-3706(This)X
-3873(violates)X
-4147(tran-)X
-555 5322(saction)N
-803(semantics,)X
-1160(since)X
-1346(some)X
-1536(changed)X
-1825(data)X
-1980(pages)X
-2184(may)X
-2343(not)X
-2466(have)X
-2638(been)X
-2810(written,)X
-3077(and)X
-3213(the)X
-3331(database)X
-3628(cannot)X
-3862(be)X
-3958(restored)X
-4237(to)X
-555 5412(its)N
-650(pre-transaction)X
-1152(state.)X
-755 5535(The)N
-914(log)X
-1050(record)X
-1290(describing)X
-1658(an)X
-1768(update)X
-2016(must)X
-2205(be)X
-2315(written)X
-2576(to)X
-2672(stable)X
-2893(storage)X
-3159(before)X
-3398(the)X
-3529(modi\256ed)X
-3846(page.)X
-4071(This)X
-4246(is)X
-3 f
-555 5625(write-ahead)N
-992(logging)X
-1 f
-1240(.)X
-1307(If)X
-1388(log)X
-1517(records)X
-1781(are)X
-1907(safely)X
-2126(written)X
-2380(to)X
-2469(disk,)X
-2649(data)X
-2810(pages)X
-3020(may)X
-3185(be)X
-3288(written)X
-3542(at)X
-3627(any)X
-3770(time)X
-3939(afterwards.)X
-555 5715(This)N
-721(means)X
-950(that)X
-1094(the)X
-1216(only)X
-1382(\256le)X
-1508(that)X
-1652(ever)X
-1815(needs)X
-2022(to)X
-2108(be)X
-2208(forced)X
-2438(to)X
-2524(disk)X
-2681(is)X
-2758(the)X
-2880(log.)X
-3046(Since)X
-3248(the)X
-3370(log)X
-3495(is)X
-3571(append-only,)X
-4015(modi\256ed)X
-
-4 p
-%%Page: 4 4
-10 s 10 xH 0 xS 1 f
-3 f
-1 f
-555 630(pages)N
-760(always)X
-1005(appear)X
-1242(at)X
-1322(the)X
-1442(end)X
-1580(and)X
-1718(may)X
-1878(be)X
-1976(written)X
-2224(to)X
-2307(disk)X
-2461(ef\256ciently)X
-2807(in)X
-2890(any)X
-3027(\256le)X
-3150(system)X
-3393(that)X
-3534(favors)X
-3756(sequential)X
-4102(order-)X
-555 720(ing)N
-677(\()X
-2 f
-704(e.g.)X
-1 f
-820(,)X
-860(FFS,)X
-1032(log-structured)X
-1502(\256le)X
-1624(system,)X
-1886(or)X
-1973(an)X
-2069(extent-based)X
-2495(system\).)X
-3 f
-555 906(3.1.2.)N
-775(Concurrency)X
-1245(Control)X
-1 f
-755 1029(The)N
-918(concurrency)X
-1354(control)X
-1619(protocol)X
-1923(is)X
-2013(responsible)X
-2415(for)X
-2546(maintaining)X
-2965(consistency)X
-3376(in)X
-3475(the)X
-3610(presence)X
-3929(of)X
-4033(multiple)X
-555 1119(accesses.)N
-897(There)X
-1114(are)X
-1242(several)X
-1499(alternative)X
-1867(solutions)X
-2183(such)X
-2358(as)X
-2453(locking,)X
-2741(optimistic)X
-3088(concurrency)X
-3514(control)X
-3769([KUNG81],)X
-4183(and)X
-555 1209(timestamp)N
-912(ordering)X
-1208([BERN80].)X
-1619(Since)X
-1821(optimistic)X
-2164(methods)X
-2459(and)X
-2599(timestamp)X
-2956(ordering)X
-3252(are)X
-3374(generally)X
-3696(more)X
-3884(complex)X
-4183(and)X
-555 1299(restrict)N
-804(concurrency)X
-1228(without)X
-1498(eliminating)X
-1888(starvation)X
-2230(or)X
-2323(deadlocks,)X
-2690(we)X
-2810(chose)X
-3018(two-phase)X
-3373(locking)X
-3638(\(2PL\).)X
-3890(Strict)X
-4088(2PL)X
-4246(is)X
-555 1389(suboptimal)N
-935(for)X
-1054(certain)X
-1297(data)X
-1455(structures)X
-1791(such)X
-1962(as)X
-2053(B-trees)X
-2309(because)X
-2588(it)X
-2656(can)X
-2792(limit)X
-2966(concurrency,)X
-3408(so)X
-3503(we)X
-3621(use)X
-3752(a)X
-3812(special)X
-4059(locking)X
-555 1479(protocol)N
-842(based)X
-1045(on)X
-1145(one)X
-1281(described)X
-1609(in)X
-1691([LEHM81].)X
-755 1602(The)N
-901(B-tree)X
-1123(locking)X
-1384(protocol)X
-1672(we)X
-1787(implemented)X
-2226(releases)X
-2502(locks)X
-2691(at)X
-2769(internal)X
-3034(nodes)X
-3241(in)X
-3323(the)X
-3441(tree)X
-3582(as)X
-3669(it)X
-3733(descends.)X
-4083(A)X
-4161(lock)X
-555 1692(on)N
-658(an)X
-757(internal)X
-1025(page)X
-1200(is)X
-1276(always)X
-1522(released)X
-1808(before)X
-2036(a)X
-2094(lock)X
-2254(on)X
-2356(its)X
-2453(child)X
-2635(is)X
-2710(obtained)X
-3008(\(that)X
-3177(is,)X
-3272(locks)X
-3463(are)X
-3584(not)X
-3 f
-3708(coupled)X
-1 f
-3996([BAY77])X
-555 1782(during)N
-786(descent\).)X
-1116(When)X
-1330(a)X
-1388(leaf)X
-1531(\(or)X
-1647(internal\))X
-1941(page)X
-2115(is)X
-2190(split,)X
-2369(a)X
-2427(write)X
-2614(lock)X
-2774(is)X
-2849(acquired)X
-3148(on)X
-3250(the)X
-3370(parent)X
-3593(before)X
-3821(the)X
-3941(lock)X
-4100(on)X
-4201(the)X
-555 1872(just-split)N
-855(page)X
-1028(is)X
-1102(released)X
-1387(\(locks)X
-1604(are)X
-3 f
-1724(coupled)X
-1 f
-2011(during)X
-2241(ascent\).)X
-2530(Write)X
-2734(locks)X
-2924(on)X
-3025(internal)X
-3291(pages)X
-3495(are)X
-3615(released)X
-3899(immediately)X
-555 1962(after)N
-723(the)X
-841(page)X
-1013(is)X
-1086(updated,)X
-1380(but)X
-1502(locks)X
-1691(on)X
-1791(leaf)X
-1932(pages)X
-2135(are)X
-2254(held)X
-2412(until)X
-2578(the)X
-2696(end)X
-2832(of)X
-2919(the)X
-3037(transaction.)X
-755 2085(Since)N
-964(locks)X
-1164(are)X
-1294(released)X
-1589(during)X
-1828(descent,)X
-2119(the)X
-2247(structure)X
-2558(of)X
-2655(the)X
-2783(tree)X
-2934(may)X
-3102(change)X
-3360(above)X
-3582(a)X
-3648(node)X
-3834(being)X
-4042(used)X
-4219(by)X
-555 2175(some)N
-752(process.)X
-1061(If)X
-1143(that)X
-1291(process)X
-1560(must)X
-1743(later)X
-1914(ascend)X
-2161(the)X
-2287(tree)X
-2435(because)X
-2717(of)X
-2811(a)X
-2874(page)X
-3053(split,)X
-3237(any)X
-3380(such)X
-3554(change)X
-3809(must)X
-3991(not)X
-4120(cause)X
-555 2265(confusion.)N
-938(We)X
-1077(use)X
-1211(the)X
-1336(technique)X
-1675(described)X
-2010(in)X
-2099([LEHM81])X
-2487(which)X
-2710(exploits)X
-2989(the)X
-3113(ordering)X
-3411(of)X
-3504(data)X
-3664(on)X
-3770(a)X
-3832(B-tree)X
-4059(page)X
-4237(to)X
-555 2355(guarantee)N
-888(that)X
-1028(no)X
-1128(process)X
-1389(ever)X
-1548(gets)X
-1697(lost)X
-1832(as)X
-1919(a)X
-1975(result)X
-2173(of)X
-2260(internal)X
-2525(page)X
-2697(updates)X
-2962(made)X
-3156(by)X
-3256(other)X
-3441(processes.)X
-755 2478(If)N
-836(a)X
-899(transaction)X
-1278(that)X
-1425(updates)X
-1697(a)X
-1760(B-tree)X
-1988(aborts,)X
-2231(the)X
-2356(user-visible)X
-2757(changes)X
-3043(to)X
-3131(the)X
-3255(tree)X
-3402(must)X
-3583(be)X
-3685(rolled)X
-3898(back.)X
-4116(How-)X
-555 2568(ever,)N
-735(changes)X
-1015(to)X
-1097(the)X
-1215(internal)X
-1480(nodes)X
-1687(of)X
-1774(the)X
-1892(tree)X
-2033(need)X
-2205(not)X
-2327(be)X
-2423(rolled)X
-2630(back,)X
-2822(since)X
-3007(these)X
-3192(pages)X
-3395(contain)X
-3651(no)X
-3751(user-visible)X
-4145(data.)X
-555 2658(When)N
-771(rolling)X
-1008(back)X
-1184(a)X
-1244(transaction,)X
-1640(we)X
-1758(roll)X
-1893(back)X
-2069(all)X
-2173(leaf)X
-2318(page)X
-2494(updates,)X
-2783(but)X
-2909(no)X
-3013(internal)X
-3281(insertions)X
-3615(or)X
-3705(page)X
-3880(splits.)X
-4111(In)X
-4201(the)X
-555 2748(worst)N
-759(case,)X
-944(this)X
-1085(will)X
-1235(leave)X
-1431(a)X
-1493(leaf)X
-1640(page)X
-1818(less)X
-1964(than)X
-2128(half)X
-2279(full.)X
-2456(This)X
-2624(may)X
-2788(cause)X
-2993(poor)X
-3166(space)X
-3371(utilization,)X
-3741(but)X
-3869(does)X
-4042(not)X
-4170(lose)X
-555 2838(user)N
-709(data.)X
-755 2961(Holding)N
-1038(locks)X
-1228(on)X
-1329(leaf)X
-1471(pages)X
-1675(until)X
-1842(transaction)X
-2215(commit)X
-2480(guarantees)X
-2845(that)X
-2986(no)X
-3087(other)X
-3273(process)X
-3535(can)X
-3668(insert)X
-3866(or)X
-3953(delete)X
-4165(data)X
-555 3051(that)N
-711(has)X
-854(been)X
-1042(touched)X
-1332(by)X
-1448(this)X
-1598(process.)X
-1914(Rolling)X
-2188(back)X
-2375(insertions)X
-2721(and)X
-2872(deletions)X
-3196(on)X
-3311(leaf)X
-3467(pages)X
-3685(guarantees)X
-4064(that)X
-4219(no)X
-555 3141(aborted)N
-819(updates)X
-1087(are)X
-1209(ever)X
-1371(visible)X
-1607(to)X
-1692(other)X
-1880(transactions.)X
-2326(Leaving)X
-2612(page)X
-2787(splits)X
-2978(intact)X
-3179(permits)X
-3442(us)X
-3536(to)X
-3621(release)X
-3867(internal)X
-4134(write)X
-555 3231(locks)N
-744(early.)X
-965(Thus)X
-1145(transaction)X
-1517(semantics)X
-1853(are)X
-1972(preserved,)X
-2325(and)X
-2461(locks)X
-2650(are)X
-2769(held)X
-2927(for)X
-3041(shorter)X
-3284(periods.)X
-755 3354(The)N
-901(extra)X
-1083(complexity)X
-1464(introduced)X
-1828(by)X
-1929(this)X
-2065(locking)X
-2326(protocol)X
-2614(appears)X
-2881(substantial,)X
-3264(but)X
-3387(it)X
-3452(is)X
-3525(important)X
-3856(for)X
-3970(multi-user)X
-555 3444(execution.)N
-950(The)X
-1118(bene\256ts)X
-1410(of)X
-1520(non-two-phase)X
-2040(locking)X
-2323(on)X
-2446(B-trees)X
-2721(are)X
-2863(well)X
-3044(established)X
-3443(in)X
-3548(the)X
-3689(database)X
-4009(literature)X
-555 3534([BAY77],)N
-899([LEHM81].)X
-1320(If)X
-1394(a)X
-1450(process)X
-1711(held)X
-1869(locks)X
-2058(until)X
-2224(it)X
-2288(committed,)X
-2670(then)X
-2828(a)X
-2884(long-running)X
-3322(update)X
-3556(could)X
-3754(lock)X
-3912(out)X
-4034(all)X
-4134(other)X
-555 3624(transactions)N
-967(by)X
-1076(preventing)X
-1448(any)X
-1593(other)X
-1787(process)X
-2057(from)X
-2241(locking)X
-2509(the)X
-2635(root)X
-2792(page)X
-2972(of)X
-3067(the)X
-3193(tree.)X
-3382(The)X
-3535(B-tree)X
-3764(locking)X
-4032(protocol)X
-555 3714(described)N
-884(above)X
-1096(guarantees)X
-1460(that)X
-1600(locks)X
-1789(on)X
-1889(internal)X
-2154(pages)X
-2357(are)X
-2476(held)X
-2634(for)X
-2748(extremely)X
-3089(short)X
-3269(periods,)X
-3545(thereby)X
-3806(increasing)X
-4156(con-)X
-555 3804(currency.)N
-3 f
-555 3990(3.1.3.)N
-775(Management)X
-1245(of)X
-1332(Shared)X
-1596(Data)X
-1 f
-755 4113(Database)N
-1075(systems)X
-1353(permit)X
-1587(many)X
-1790(users)X
-1980(to)X
-2067(examine)X
-2364(and)X
-2505(update)X
-2744(the)X
-2866(same)X
-3055(data)X
-3213(concurrently.)X
-3683(In)X
-3774(order)X
-3968(to)X
-4054(provide)X
-555 4203(this)N
-702(concurrent)X
-1078(access)X
-1316(and)X
-1464(enforce)X
-1738(the)X
-1868(write-ahead)X
-2280(logging)X
-2556(protocol)X
-2855(described)X
-3195(in)X
-3289(section)X
-3548(3.1.1,)X
-3759(we)X
-3884(use)X
-4022(a)X
-4089(shared)X
-555 4293(memory)N
-848(buffer)X
-1071(manager.)X
-1414(Not)X
-1559(only)X
-1726(does)X
-1898(this)X
-2038(provide)X
-2308(the)X
-2431(guarantees)X
-2800(we)X
-2919(require,)X
-3192(but)X
-3319(a)X
-3380(user-level)X
-3722(buffer)X
-3944(manager)X
-4246(is)X
-555 4383(frequently)N
-916(faster)X
-1126(than)X
-1295(using)X
-1498(the)X
-1626(\256le)X
-1758(system)X
-2010(buffer)X
-2237(cache.)X
-2491(Reads)X
-2717(or)X
-2814(writes)X
-3040(involving)X
-3376(the)X
-3504(\256le)X
-3636(system)X
-3888(buffer)X
-4115(cache)X
-555 4473(often)N
-746(require)X
-1000(copying)X
-1284(data)X
-1444(between)X
-1738(user)X
-1898(and)X
-2040(kernel)X
-2266(space)X
-2470(while)X
-2673(a)X
-2734(user-level)X
-3076(buffer)X
-3298(manager)X
-3600(can)X
-3737(return)X
-3954(pointers)X
-4237(to)X
-555 4563(data)N
-709(pages)X
-912(directly.)X
-1217(Additionally,)X
-1661(if)X
-1730(more)X
-1915(than)X
-2073(one)X
-2209(process)X
-2470(uses)X
-2628(the)X
-2746(same)X
-2931(page,)X
-3123(then)X
-3281(fewer)X
-3485(copies)X
-3710(may)X
-3868(be)X
-3964(required.)X
-3 f
-555 4749(3.2.)N
-715(Module)X
-997(Architecture)X
-1 f
-755 4872(The)N
-913(preceding)X
-1262(sections)X
-1552(described)X
-1892(modules)X
-2195(for)X
-2321(managing)X
-2669(the)X
-2799(transaction)X
-3183(log,)X
-3337(locks,)X
-3558(and)X
-3706(a)X
-3774(cache)X
-3990(of)X
-4089(shared)X
-555 4962(buffers.)N
-847(In)X
-938(addition,)X
-1244(we)X
-1362(need)X
-1538(to)X
-1624(provide)X
-1893(functionality)X
-2326(for)X
-2444(transaction)X
-2 f
-2819(begin)X
-1 f
-2997(,)X
-2 f
-3040(commit)X
-1 f
-3276(,)X
-3319(and)X
-2 f
-3458(abort)X
-1 f
-3654(processing,)X
-4040(necessi-)X
-555 5052(tating)N
-769(a)X
-837(transaction)X
-1221(manager.)X
-1570(In)X
-1669(order)X
-1871(to)X
-1965(arbitrate)X
-2265(concurrent)X
-2641(access)X
-2879(to)X
-2973(locks)X
-3173(and)X
-3320(buffers,)X
-3599(we)X
-3724(include)X
-3991(a)X
-4058(process)X
-555 5142(management)N
-995(module)X
-1264(which)X
-1489(manages)X
-1799(a)X
-1864(collection)X
-2209(of)X
-2305(semaphores)X
-2713(used)X
-2889(to)X
-2980(block)X
-3187(and)X
-3332(release)X
-3585(processes.)X
-3962(Finally,)X
-4237(in)X
-555 5232(order)N
-752(to)X
-841(provide)X
-1113(a)X
-1176(simple,)X
-1436(standard)X
-1735(interface)X
-2044(we)X
-2165(have)X
-2344(modi\256ed)X
-2655(the)X
-2780(database)X
-3084(access)X
-3317(routines)X
-3602(\()X
-3 f
-3629(db)X
-1 f
-3717(\(3\)\).)X
-3904(For)X
-4041(the)X
-4165(pur-)X
-555 5322(poses)N
-758(of)X
-850(this)X
-990(paper)X
-1194(we)X
-1313(call)X
-1453(the)X
-1575(modi\256ed)X
-1883(package)X
-2171(the)X
-3 f
-2293(Record)X
-2567(Manager)X
-1 f
-2879(.)X
-2943(Figure)X
-3176(one)X
-3316(shows)X
-3540(the)X
-3662(main)X
-3846(interfaces)X
-4183(and)X
-555 5412(architecture)N
-955(of)X
-1042(LIBTP.)X
-
-5 p
-%%Page: 5 5
-10 s 10 xH 0 xS 1 f
-3 f
-1 f
-11 s
-1851 1520(log_commit)N
-2764 2077(buf_unpin)N
-2764 1987(buf_get)N
-3633 1408(buf_unpin)N
-3633 1319(buf_pin)N
-3633 1230(buf_get)N
-3 f
-17 s
-1163 960(Txn)N
-1430(M)X
-1559(anager)X
-2582(Record)X
-3040(M)X
-3169(anager)X
-1 Dt
-2363 726 MXY
-0 355 Dl
-1426 0 Dl
-0 -355 Dl
--1426 0 Dl
-3255 1616 MXY
-0 535 Dl
-534 0 Dl
-0 -535 Dl
--534 0 Dl
-2185 MX
-0 535 Dl
-535 0 Dl
-0 -535 Dl
--535 0 Dl
-1116 MX
-0 535 Dl
-534 0 Dl
-0 -535 Dl
--534 0 Dl
-726 MY
-0 355 Dl
-891 0 Dl
-0 -355 Dl
--891 0 Dl
-1 f
-11 s
-2207 1297(lock)N
-2564 1386(log)N
-865(unlock_all)X
-1851 1609(log_unroll)N
-1650 2508 MXY
-0 178 Dl
-1605 0 Dl
-0 -178 Dl
--1605 0 Dl
-1294 1616 MXY
-19 -30 Dl
--19 11 Dl
--20 -11 Dl
-20 30 Dl
-0 -535 Dl
-2319 2508 MXY
--22 -30 Dl
-4 23 Dl
--18 14 Dl
-36 -7 Dl
--936 -357 Dl
-3277 2455(sleep_on)N
-1405 1616 MXY
-36 4 Dl
--18 -13 Dl
-1 -22 Dl
--19 31 Dl
-1070 -535 Dl
-2631 2508 MXY
-36 6 Dl
--18 -14 Dl
-3 -22 Dl
--21 30 Dl
-891 -357 Dl
-1426 2455(sleep_on)N
-3255 1884 MXY
--31 -20 Dl
-11 20 Dl
--11 19 Dl
-31 -19 Dl
--535 0 Dl
-1554 2366(wake)N
-3277(wake)X
-2185 1884 MXY
--31 -20 Dl
-12 20 Dl
--12 19 Dl
-31 -19 Dl
--356 0 Dl
-0 -803 Dl
-3 f
-17 s
-1236 1851(Lock)N
-1118 2030(M)N
-1247(anager)X
-2339 1851(Log)N
-2187 2030(M)N
-2316(anager)X
-3333 1851(Buffer)N
-3257 2030(M)N
-3386(anager)X
-3522 1616 MXY
-20 -30 Dl
--20 11 Dl
--20 -11 Dl
-20 30 Dl
-0 -535 Dl
-1950 2654(Process)N
-2424(M)X
-2553(anager)X
-2542 1616 MXY
-19 -30 Dl
--19 11 Dl
--20 -11 Dl
-20 30 Dl
-0 -535 Dl
-1 f
-11 s
-2207 1364(unlock)N
-2452 2508 MXY
-20 -31 Dl
--20 11 Dl
--19 -11 Dl
-19 31 Dl
-0 -357 Dl
-2497 2322(sleep_on)N
-2497 2233(wake)N
-3 Dt
--1 Ds
-3 f
-10 s
-1790 2830(Figure)N
-2037(1:)X
-2144(Library)X
-2435(module)X
-2708(interfaces.)X
-1 f
-10 f
-555 3010(h)N
-579(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)X
-3 f
-555 3286(3.2.1.)N
-775(The)X
-928(Log)X
-1081(Manager)X
-1 f
-755 3409(The)N
-3 f
-907(Log)X
-1067(Manager)X
-1 f
-1406(enforces)X
-1706(the)X
-1831(write-ahead)X
-2238(logging)X
-2509(protocol.)X
-2843(Its)X
-2949(primitive)X
-3268(operations)X
-3628(are)X
-2 f
-3753(log)X
-1 f
-3855(,)X
-2 f
-3901(log_commit)X
-1 f
-4279(,)X
-2 f
-555 3499(log_read)N
-1 f
-844(,)X
-2 f
-889(log_roll)X
-1 f
-1171(and)X
-2 f
-1312(log_unroll)X
-1 f
-1649(.)X
-1714(The)X
-2 f
-1864(log)X
-1 f
-1991(call)X
-2132(performs)X
-2447(a)X
-2508(buffered)X
-2806(write)X
-2996(of)X
-3088(the)X
-3211(speci\256ed)X
-3520(log)X
-3646(record)X
-3876(and)X
-4016(returns)X
-4263(a)X
-555 3589(unique)N
-809(log)X
-947(sequence)X
-1278(number)X
-1559(\(LSN\).)X
-1840(This)X
-2017(LSN)X
-2203(may)X
-2376(then)X
-2549(be)X
-2660(used)X
-2842(to)X
-2939(retrieve)X
-3220(a)X
-3291(record)X
-3532(from)X
-3723(the)X
-3856(log)X
-3993(using)X
-4201(the)X
-2 f
-555 3679(log_read)N
-1 f
-865(call.)X
-1042(The)X
-2 f
-1188(log)X
-1 f
-1311(interface)X
-1614(knows)X
-1844(very)X
-2008(little)X
-2175(about)X
-2374(the)X
-2493(internal)X
-2759(format)X
-2993(of)X
-3080(the)X
-3198(log)X
-3320(records)X
-3577(it)X
-3641(receives.)X
-3965(Rather,)X
-4219(all)X
-555 3769(log)N
-681(records)X
-942(are)X
-1065 0.4028(referenced)AX
-1430(by)X
-1534(a)X
-1594(header)X
-1833(structure,)X
-2158(a)X
-2218(log)X
-2344(record)X
-2574(type,)X
-2756(and)X
-2896(a)X
-2956(character)X
-3276(buffer)X
-3497(containing)X
-3859(the)X
-3981(data)X
-4138(to)X
-4223(be)X
-555 3859(logged.)N
-834(The)X
-980(log)X
-1103(record)X
-1330(type)X
-1489(is)X
-1563(used)X
-1731(to)X
-1814(call)X
-1951(the)X
-2070(appropriate)X
-2457(redo)X
-2621(and)X
-2758(undo)X
-2939(routines)X
-3217(during)X
-2 f
-3446(abort)X
-1 f
-3639(and)X
-2 f
-3775(commit)X
-1 f
-4031(process-)X
-555 3949(ing.)N
-721(While)X
-941(we)X
-1059(have)X
-1235(used)X
-1406(the)X
-3 f
-1528(Log)X
-1684(Manager)X
-1 f
-2019(to)X
-2104(provide)X
-2372(before)X
-2601(and)X
-2740(after)X
-2911(image)X
-3130(logging,)X
-3417(it)X
-3484(may)X
-3645(also)X
-3797(be)X
-3896(used)X
-4066(for)X
-4183(any)X
-555 4039(of)N
-642(the)X
-760(logging)X
-1024(algorithms)X
-1386(discussed.)X
-755 4162(The)N
-2 f
-905(log_commit)X
-1 f
-1308(operation)X
-1636(behaves)X
-1920(exactly)X
-2177(like)X
-2322(the)X
-2 f
-2445(log)X
-1 f
-2572(operation)X
-2900(but)X
-3026(guarantees)X
-3394(that)X
-3538(the)X
-3660(log)X
-3786(has)X
-3917(been)X
-4093(forced)X
-555 4252(to)N
-643(disk)X
-802(before)X
-1034(returning.)X
-1394(A)X
-1478(discussion)X
-1837(of)X
-1930(our)X
-2063(commit)X
-2333(strategy)X
-2613(appears)X
-2884(in)X
-2971(the)X
-3094(implementation)X
-3621(section)X
-3873(\(section)X
-4152(4.2\).)X
-2 f
-555 4342(Log_unroll)N
-1 f
-935(reads)X
-1126(log)X
-1249(records)X
-1507(from)X
-1684(the)X
-1803(log,)X
-1946(following)X
-2278(backward)X
-2611(transaction)X
-2983(pointers)X
-3261(and)X
-3397(calling)X
-3635(the)X
-3753(appropriate)X
-4139(undo)X
-555 4432(routines)N
-839(to)X
-927(implement)X
-1295(transaction)X
-1673(abort.)X
-1904(In)X
-1997(a)X
-2059(similar)X
-2307(manner,)X
-2 f
-2594(log_roll)X
-1 f
-2877(reads)X
-3073(log)X
-3201(records)X
-3464(sequentially)X
-3877(forward,)X
-4178(cal-)X
-555 4522(ling)N
-699(the)X
-817(appropriate)X
-1203(redo)X
-1366(routines)X
-1644(to)X
-1726(recover)X
-1988(committed)X
-2350(transactions)X
-2753(after)X
-2921(a)X
-2977(system)X
-3219(crash.)X
-3 f
-555 4708(3.2.2.)N
-775(The)X
-928(Buffer)X
-1171(Manager)X
-1 f
-755 4831(The)N
-3 f
-912(Buffer)X
-1167(Manager)X
-1 f
-1511(uses)X
-1681(a)X
-1749(pool)X
-1923(of)X
-2022(shared)X
-2264(memory)X
-2563(to)X
-2657(provide)X
-2934(a)X
-3002(least-recently-used)X
-3641(\(LRU\))X
-3886(block)X
-4095(cache.)X
-555 4921(Although)N
-886(the)X
-1013(current)X
-1270(library)X
-1513(provides)X
-1818(an)X
-1923(LRU)X
-2112(cache,)X
-2345(it)X
-2418(would)X
-2647(be)X
-2752(simple)X
-2994(to)X
-3085(add)X
-3229(alternate)X
-3534(replacement)X
-3955(policies)X
-4232(as)X
-555 5011(suggested)N
-903(by)X
-1015([CHOU85])X
-1408(or)X
-1507(to)X
-1601(provide)X
-1878(multiple)X
-2176(buffer)X
-2405(pools)X
-2610(with)X
-2784(different)X
-3092(policies.)X
-3412(Transactions)X
-3853(request)X
-4116(pages)X
-555 5101(from)N
-736(the)X
-859(buffer)X
-1081(manager)X
-1383(and)X
-1524(keep)X
-1701(them)X
-3 f
-1886(pinned)X
-1 f
-2145(to)X
-2232(ensure)X
-2466(that)X
-2610(they)X
-2772(are)X
-2895(not)X
-3021(written)X
-3272(to)X
-3358(disk)X
-3515(while)X
-3717(they)X
-3879(are)X
-4002(in)X
-4088(a)X
-4148(logi-)X
-555 5191(cally)N
-732(inconsistent)X
-1135(state.)X
-1343(When)X
-1556(page)X
-1729(replacement)X
-2143(is)X
-2217(necessary,)X
-2571(the)X
-3 f
-2689(Buffer)X
-2932(Manager)X
-1 f
-3264(\256nds)X
-3439(an)X
-3535(unpinned)X
-3853(page)X
-4025(and)X
-4161(then)X
-555 5281(checks)N
-794(with)X
-956(the)X
-3 f
-1074(Log)X
-1227(Manager)X
-1 f
-1559(to)X
-1641(ensure)X
-1871(that)X
-2011(the)X
-2129(write-ahead)X
-2529(protocol)X
-2816(is)X
-2889(enforced.)X
-3 f
-555 5467(3.2.3.)N
-775(The)X
-928(Lock)X
-1121(Manager)X
-1 f
-755 5590(The)N
-3 f
-901(Lock)X
-1095(Manager)X
-1 f
-1428(supports)X
-1720(general)X
-1978(purpose)X
-2253(locking)X
-2514(\(single)X
-2753(writer,)X
-2986(multiple)X
-3273(readers\))X
-3553(which)X
-3769(is)X
-3842(currently)X
-4152(used)X
-555 5680(to)N
-638(provide)X
-904(two-phase)X
-1254(locking)X
-1514(and)X
-1650(high)X
-1812(concurrency)X
-2230(B-tree)X
-2451(locking.)X
-2751(However,)X
-3086(the)X
-3204(general)X
-3461(purpose)X
-3735(nature)X
-3956(of)X
-4043(the)X
-4161(lock)X
-
-6 p
-%%Page: 6 6
-10 s 10 xH 0 xS 1 f
-3 f
-1 f
-555 630(manager)N
-857(provides)X
-1158(the)X
-1281(ability)X
-1510(to)X
-1597(support)X
-1862(a)X
-1923(variety)X
-2171(of)X
-2263(locking)X
-2528(protocols.)X
-2890(Currently,)X
-3241(all)X
-3345(locks)X
-3538(are)X
-3661(issued)X
-3885(at)X
-3967(the)X
-4089(granu-)X
-555 720(larity)N
-747(of)X
-837(a)X
-896(page)X
-1071(\(the)X
-1219(size)X
-1367(of)X
-1457(a)X
-1516(buffer)X
-1736(in)X
-1821(the)X
-1942(buffer)X
-2161(pool\))X
-2352(which)X
-2570(is)X
-2645(identi\256ed)X
-2969(by)X
-3071(two)X
-3213(4-byte)X
-3440(integers)X
-3716(\(a)X
-3801(\256le)X
-3925(id)X
-4009(and)X
-4147(page)X
-555 810(number\).)N
-898(This)X
-1071(provides)X
-1378(the)X
-1507(necessary)X
-1851(information)X
-2259(to)X
-2351(extend)X
-2595(the)X
-3 f
-2723(Lock)X
-2926(Manager)X
-1 f
-3268(to)X
-3360(perform)X
-3649(hierarchical)X
-4059(locking)X
-555 900([GRAY76].)N
-982(The)X
-1133(current)X
-1387(implementation)X
-1915(does)X
-2088(not)X
-2216(support)X
-2482(locks)X
-2677(at)X
-2760(other)X
-2950(granularities)X
-3376(and)X
-3517(does)X
-3689(not)X
-3816(promote)X
-4108(locks;)X
-555 990(these)N
-740(are)X
-859(obvious)X
-1132(future)X
-1344(additions)X
-1657(to)X
-1739(the)X
-1857(system.)X
-755 1113(If)N
-831(an)X
-929(incoming)X
-1253(lock)X
-1413(request)X
-1667(cannot)X
-1903(be)X
-2001(granted,)X
-2284(the)X
-2404(requesting)X
-2760(process)X
-3023(is)X
-3098(queued)X
-3352(for)X
-3467(the)X
-3586(lock)X
-3745(and)X
-3882(descheduled.)X
-555 1203(When)N
-769(a)X
-827(lock)X
-987(is)X
-1062(released,)X
-1368(the)X
-1488(wait)X
-1647(queue)X
-1860(is)X
-1934(traversed)X
-2250(and)X
-2387(any)X
-2524(newly)X
-2741(compatible)X
-3118(locks)X
-3308(are)X
-3428(granted.)X
-3730(Locks)X
-3947(are)X
-4067(located)X
-555 1293(via)N
-680(a)X
-743(\256le)X
-872(and)X
-1015(page)X
-1194(hash)X
-1368(table)X
-1551(and)X
-1694(are)X
-1820(chained)X
-2097(both)X
-2266(by)X
-2373(object)X
-2595(and)X
-2737(by)X
-2843(transaction,)X
-3241(facilitating)X
-3614(rapid)X
-3805(traversal)X
-4108(of)X
-4201(the)X
-555 1383(lock)N
-713(table)X
-889(during)X
-1118(transaction)X
-1490(commit)X
-1754(and)X
-1890(abort.)X
-755 1506(The)N
-907(primary)X
-1188(interfaces)X
-1528(to)X
-1617(the)X
-1742(lock)X
-1907(manager)X
-2211(are)X
-2 f
-2337(lock)X
-1 f
-2471(,)X
-2 f
-2518(unlock)X
-1 f
-2732(,)X
-2779(and)X
-2 f
-2922(lock_unlock_all)X
-1 f
-3434(.)X
-2 f
-3500(Lock)X
-1 f
-3682(obtains)X
-3939(a)X
-4001(new)X
-4161(lock)X
-555 1596(for)N
-680(a)X
-747(speci\256c)X
-1023(object.)X
-1290(There)X
-1509(are)X
-1638(also)X
-1797(two)X
-1947(variants)X
-2231(of)X
-2328(the)X
-2 f
-2456(lock)X
-1 f
-2620(request,)X
-2 f
-2902(lock_upgrade)X
-1 f
-3373(and)X
-2 f
-3519(lock_downgrade)X
-1 f
-4053(,)X
-4103(which)X
-555 1686(allow)N
-755(the)X
-875(caller)X
-1076(to)X
-1160(atomically)X
-1519(trade)X
-1701(a)X
-1758(lock)X
-1917(of)X
-2005(one)X
-2142(type)X
-2301(for)X
-2416(a)X
-2473(lock)X
-2632(of)X
-2720(another.)X
-2 f
-3022(Unlock)X
-1 f
-3275(releases)X
-3551(a)X
-3608(speci\256c)X
-3874(mode)X
-4073(of)X
-4161(lock)X
-555 1776(on)N
-655(a)X
-711(speci\256c)X
-976(object.)X
-2 f
-1232(Lock_unlock_all)X
-1 f
-1786(releases)X
-2061(all)X
-2161(the)X
-2279(locks)X
-2468(associated)X
-2818(with)X
-2980(a)X
-3036(speci\256c)X
-3301(transaction.)X
-3 f
-555 1962(3.2.4.)N
-775(The)X
-928(Process)X
-1207(Manager)X
-1 f
-755 2085(The)N
-3 f
-900(Process)X
-1179(Manager)X
-1 f
-1511(acts)X
-1656(as)X
-1743(a)X
-1799(user-level)X
-2136(scheduler)X
-2464(to)X
-2546(make)X
-2740(processes)X
-3068(wait)X
-3226(on)X
-3326(unavailable)X
-3716(locks)X
-3905(and)X
-4041(pending)X
-555 2175(buffer)N
-778(cache)X
-988(I/O.)X
-1161(For)X
-1297(each)X
-1470(process,)X
-1756(a)X
-1817(semaphore)X
-2190(is)X
-2268(maintained)X
-2649(upon)X
-2834(which)X
-3055(that)X
-3200(process)X
-3466(waits)X
-3660(when)X
-3859(it)X
-3928(needs)X
-4136(to)X
-4223(be)X
-555 2265(descheduled.)N
-1014(When)X
-1228(a)X
-1286(process)X
-1549(needs)X
-1754(to)X
-1838(be)X
-1936(run,)X
-2084(its)X
-2180(semaphore)X
-2549(is)X
-2623(cleared,)X
-2897(and)X
-3034(the)X
-3153(operating)X
-3477(system)X
-3720(reschedules)X
-4116(it.)X
-4201(No)X
-555 2355(sophisticated)N
-1002(scheduling)X
-1378(algorithm)X
-1718(is)X
-1799(applied;)X
-2085(if)X
-2162(the)X
-2288(lock)X
-2454(for)X
-2576(which)X
-2800(a)X
-2864(process)X
-3133(was)X
-3286(waiting)X
-3554(becomes)X
-3863(available,)X
-4201(the)X
-555 2445(process)N
-824(is)X
-905(made)X
-1107(runnable.)X
-1456(It)X
-1533(would)X
-1761(have)X
-1941(been)X
-2121(possible)X
-2411(to)X
-2501(change)X
-2757(the)X
-2883(kernel's)X
-3170(process)X
-3439(scheduler)X
-3775(to)X
-3865(interact)X
-4134(more)X
-555 2535(ef\256ciently)N
-900(with)X
-1062(the)X
-1180(lock)X
-1338(manager,)X
-1655(but)X
-1777(doing)X
-1979(so)X
-2070(would)X
-2290(have)X
-2462(compromised)X
-2918(our)X
-3045(commitment)X
-3469(to)X
-3551(a)X
-3607(user-level)X
-3944(package.)X
-3 f
-555 2721(3.2.5.)N
-775(The)X
-928(Transaction)X
-1361(Manager)X
-1 f
-755 2844(The)N
-3 f
-901(Transaction)X
-1335(Manager)X
-1 f
-1668(provides)X
-1965(the)X
-2084(standard)X
-2377(interface)X
-2680(of)X
-2 f
-2768(txn_begin)X
-1 f
-3084(,)X
-2 f
-3125(txn_commit)X
-1 f
-3499(,)X
-3540(and)X
-2 f
-3676(txn_abort)X
-1 f
-3987(.)X
-4047(It)X
-4116(keeps)X
-555 2934(track)N
-742(of)X
-835(all)X
-941(active)X
-1159(transactions,)X
-1588(assigns)X
-1845(unique)X
-2089(transaction)X
-2467(identi\256ers,)X
-2833(and)X
-2974(directs)X
-3213(the)X
-3336(abort)X
-3526(and)X
-3667(commit)X
-3936(processing.)X
-555 3024(When)N
-772(a)X
-2 f
-833(txn_begin)X
-1 f
-1174(is)X
-1252(issued,)X
-1497(the)X
-3 f
-1620(Transaction)X
-2058(Manager)X
-1 f
-2395(assigns)X
-2651(the)X
-2773(next)X
-2935(available)X
-3249(transaction)X
-3625(identi\256er,)X
-3958(allocates)X
-4263(a)X
-555 3114(per-process)N
-948(transaction)X
-1322(structure)X
-1625(in)X
-1709(shared)X
-1941(memory,)X
-2249(increments)X
-2622(the)X
-2741(count)X
-2940(of)X
-3028(active)X
-3241(transactions,)X
-3665(and)X
-3802(returns)X
-4046(the)X
-4165(new)X
-555 3204(transaction)N
-937(identi\256er)X
-1256(to)X
-1348(the)X
-1476(calling)X
-1724(process.)X
-2034(The)X
-2188(in-memory)X
-2573(transaction)X
-2954(structure)X
-3264(contains)X
-3560(a)X
-3625(pointer)X
-3881(into)X
-4034(the)X
-4161(lock)X
-555 3294(table)N
-734(for)X
-851(locks)X
-1043(held)X
-1204(by)X
-1307(this)X
-1445(transaction,)X
-1840(the)X
-1961(last)X
-2095(log)X
-2220(sequence)X
-2538(number,)X
-2826(a)X
-2885(transaction)X
-3260(state)X
-3430(\()X
-2 f
-3457(idle)X
-1 f
-(,)S
-2 f
-3620(running)X
-1 f
-3873(,)X
-2 f
-3915(aborting)X
-1 f
-4190(,)X
-4232(or)X
-2 f
-555 3384(committing\))N
-1 f
-942(,)X
-982(an)X
-1078(error)X
-1255(code,)X
-1447(and)X
-1583(a)X
-1639(semaphore)X
-2007(identi\256er.)X
-755 3507(At)N
-859(commit,)X
-1147(the)X
-3 f
-1269(Transaction)X
-1706(Manager)X
-1 f
-2042(calls)X
-2 f
-2213(log_commit)X
-1 f
-2615(to)X
-2700(record)X
-2929(the)X
-3050(end)X
-3189(of)X
-3279(transaction)X
-3654(and)X
-3793(to)X
-3878(\257ush)X
-4056(the)X
-4177(log.)X
-555 3597(Then)N
-743(it)X
-810(directs)X
-1047(the)X
-3 f
-1168(Lock)X
-1364(Manager)X
-1 f
-1699(to)X
-1784(release)X
-2031(all)X
-2134(locks)X
-2325(associated)X
-2677(with)X
-2841(the)X
-2961(given)X
-3161(transaction.)X
-3575(If)X
-3651(a)X
-3709(transaction)X
-4083(aborts,)X
-555 3687(the)N
-3 f
-680(Transaction)X
-1120(Manager)X
-1 f
-1459(calls)X
-1633(on)X
-2 f
-1739(log_unroll)X
-1 f
-2102(to)X
-2190(read)X
-2355(the)X
-2479(transaction's)X
-2915(log)X
-3043(records)X
-3306(and)X
-3448(undo)X
-3634(any)X
-3776(modi\256cations)X
-4237(to)X
-555 3777(the)N
-673(database.)X
-1010(As)X
-1119(in)X
-1201(the)X
-1319(commit)X
-1583(case,)X
-1762(it)X
-1826(then)X
-1984(calls)X
-2 f
-2151(lock_unlock_all)X
-1 f
-2683(to)X
-2765(release)X
-3009(the)X
-3127(transaction's)X
-3557(locks.)X
-3 f
-555 3963(3.2.6.)N
-775(The)X
-928(Record)X
-1198(Manager)X
-1 f
-755 4086(The)N
-3 f
-919(Record)X
-1208(Manager)X
-1 f
-1559(supports)X
-1869(the)X
-2006(abstraction)X
-2397(of)X
-2503(reading)X
-2783(and)X
-2938(writing)X
-3208(records)X
-3484(to)X
-3585(a)X
-3660(database.)X
-3996(We)X
-4147(have)X
-555 4176(modi\256ed)N
-861(the)X
-981(the)X
-1101(database)X
-1399(access)X
-1626(routines)X
-3 f
-1905(db)X
-1 f
-1993(\(3\))X
-2108([BSD91])X
-2418(to)X
-2501(call)X
-2638(the)X
-2757(log,)X
-2900(lock,)X
-3079(and)X
-3216(buffer)X
-3434(managers.)X
-3803(In)X
-3891(order)X
-4082(to)X
-4165(pro-)X
-555 4266(vide)N
-718(functionality)X
-1152(to)X
-1239(perform)X
-1523(undo)X
-1708(and)X
-1849(redo,)X
-2037(the)X
-3 f
-2160(Record)X
-2434(Manager)X
-1 f
-2770(de\256nes)X
-3021(a)X
-3081(collection)X
-3421(of)X
-3512(log)X
-3638(record)X
-3868(types)X
-4061(and)X
-4201(the)X
-555 4356(associated)N
-920(undo)X
-1115(and)X
-1266(redo)X
-1444(routines.)X
-1777(The)X
-3 f
-1937(Log)X
-2105(Manager)X
-1 f
-2452(performs)X
-2777(a)X
-2848(table)X
-3039(lookup)X
-3296(on)X
-3411(the)X
-3543(record)X
-3783(type)X
-3955(to)X
-4051(call)X
-4201(the)X
-555 4446(appropriate)N
-951(routines.)X
-1299(For)X
-1440(example,)X
-1762(the)X
-1890(B-tree)X
-2121(access)X
-2356(method)X
-2625(requires)X
-2913(two)X
-3062(log)X
-3193(record)X
-3428(types:)X
-3648(insert)X
-3855(and)X
-4000(delete.)X
-4241(A)X
-555 4536(replace)N
-808(operation)X
-1131(is)X
-1204(implemented)X
-1642(as)X
-1729(a)X
-1785(delete)X
-1997(followed)X
-2302(by)X
-2402(an)X
-2498(insert)X
-2696(and)X
-2832(is)X
-2905(logged)X
-3143(accordingly.)X
-3 f
-555 4722(3.3.)N
-715(Application)X
-1134(Architectures)X
-1 f
-755 4845(The)N
-907(structure)X
-1215(of)X
-1309(LIBTP)X
-1558(allows)X
-1794(application)X
-2177(designers)X
-2507(to)X
-2596(trade)X
-2784(off)X
-2905(performance)X
-3339(and)X
-3481(protection.)X
-3872(Since)X
-4076(a)X
-4138(large)X
-555 4935(portion)N
-810(of)X
-901(LIBTP's)X
-1205(functionality)X
-1638(is)X
-1715(provided)X
-2024(by)X
-2128(managing)X
-2468(structures)X
-2804(in)X
-2889(shared)X
-3122(memory,)X
-3432(its)X
-3530(structures)X
-3865(are)X
-3987(subject)X
-4237(to)X
-555 5025(corruption)N
-926(by)X
-1043(applications)X
-1467(when)X
-1678(the)X
-1813(library)X
-2064(is)X
-2154(linked)X
-2391(directly)X
-2673(with)X
-2852(the)X
-2987(application.)X
-3420(For)X
-3568(this)X
-3720(reason,)X
-3987(LIBTP)X
-4246(is)X
-555 5115(designed)N
-864(to)X
-950(allow)X
-1152(compilation)X
-1558(into)X
-1706(a)X
-1766(separate)X
-2053(server)X
-2273(process)X
-2537(which)X
-2756(may)X
-2917(be)X
-3016(accessed)X
-3321(via)X
-3442(a)X
-3501(socket)X
-3729(interface.)X
-4094(In)X
-4184(this)X
-555 5205(way)N
-712(LIBTP's)X
-1015(data)X
-1172(structures)X
-1507(are)X
-1629(protected)X
-1951(from)X
-2130(application)X
-2509(code,)X
-2704(but)X
-2829(communication)X
-3349(overhead)X
-3666(is)X
-3741(increased.)X
-4107(When)X
-555 5295(applications)N
-975(are)X
-1107(trusted,)X
-1377(LIBTP)X
-1631(may)X
-1801(be)X
-1909(compiled)X
-2239(directly)X
-2516(into)X
-2672(the)X
-2802(application)X
-3190(providing)X
-3533(improved)X
-3872(performance.)X
-555 5385(Figures)N
-815(two)X
-955(and)X
-1091(three)X
-1272(show)X
-1461(the)X
-1579(two)X
-1719(alternate)X
-2016(application)X
-2392(architectures.)X
-755 5508(There)N
-964(are)X
-1084(potentially)X
-1447(two)X
-1588(modes)X
-1818(in)X
-1901(which)X
-2118(one)X
-2255(might)X
-2462(use)X
-2590(LIBTP)X
-2833(in)X
-2916(a)X
-2972(server)X
-3189(based)X
-3392(architecture.)X
-3832(In)X
-3919(the)X
-4037(\256rst,)X
-4201(the)X
-555 5598(server)N
-778(would)X
-1004(provide)X
-1275(the)X
-1399(capability)X
-1741(to)X
-1829(respond)X
-2109(to)X
-2197(requests)X
-2486(to)X
-2574(each)X
-2747(of)X
-2839(the)X
-2962(low)X
-3107(level)X
-3288(modules)X
-3584(\(lock,)X
-3794(log,)X
-3941(buffer,)X
-4183(and)X
-555 5688(transaction)N
-944(managers\).)X
-1356(Unfortunately,)X
-1863(the)X
-1998(performance)X
-2442(of)X
-2546(such)X
-2730(a)X
-2803(system)X
-3062(is)X
-3152(likely)X
-3371(to)X
-3470(be)X
-3583(blindingly)X
-3947(slow)X
-4134(since)X
-
-7 p
-%%Page: 7 7
-10 s 10 xH 0 xS 1 f
-3 f
-1 f
-1 Dt
-1864 1125 MXY
-15 -26 Dl
--15 10 Dl
--14 -10 Dl
-14 26 Dl
-0 -266 Dl
-1315 1125 MXY
-15 -26 Dl
--15 10 Dl
--14 -10 Dl
-14 26 Dl
-0 -266 Dl
-3 Dt
-1133 1125 MXY
-0 798 Dl
-931 0 Dl
-0 -798 Dl
--931 0 Dl
-1 Dt
-1266 1257 MXY
-0 133 Dl
-665 0 Dl
-0 -133 Dl
--665 0 Dl
-3 f
-8 s
-1513 1351(driver)N
-1502 1617(LIBTP)N
-1266 1390 MXY
-0 400 Dl
-665 0 Dl
-0 -400 Dl
--665 0 Dl
-3 Dt
-1133 726 MXY
-0 133 Dl
-931 0 Dl
-0 -133 Dl
--931 0 Dl
-1 f
-1029 1098(txn_abort)N
-964 1015(txn_commit)N
-1018 932(txn_begin)N
-1910 1015(db_ops)N
-3 f
-1308 820(Application)N
-1645(Program)X
-1398 1218(Server)N
-1594(Process)X
-1 f
-1390 986(socket)N
-1569(interface)X
-1 Dt
-1848 967 MXY
--23 -14 Dl
-8 14 Dl
--8 15 Dl
-23 -15 Dl
--50 0 Dl
-1324 MX
-23 15 Dl
--9 -15 Dl
-9 -14 Dl
--23 14 Dl
-50 0 Dl
-3 Dt
-2862 859 MXY
-0 1064 Dl
-932 0 Dl
-0 -1064 Dl
--932 0 Dl
-1 Dt
-3178 1390 MXY
-24 -12 Dl
--17 0 Dl
--8 -15 Dl
-1 27 Dl
-150 -265 Dl
-3494 1390 MXY
-0 -27 Dl
--8 15 Dl
--16 1 Dl
-24 11 Dl
--166 -265 Dl
-3 f
-3232 1617(LIBTP)N
-2995 1390 MXY
-0 400 Dl
-666 0 Dl
-0 -400 Dl
--666 0 Dl
-992 MY
-0 133 Dl
-666 0 Dl
-0 -133 Dl
--666 0 Dl
-3168 1086(Application)N
-1 f
-2939 1201(txn_begin)N
-2885 1284(txn_commit)N
-2950 1368(txn_abort)N
-3465 1284(db_ops)N
-3 f
-3155 766(Single)N
-3339(Process)X
-3 Dt
--1 Ds
-811 2100(Figure)N
-1023(2:)X
-1107(Server)X
-1318(Architecture.)X
-1 f
-1727(In)X
-1811(this)X
-1934(con\256guration,)X
-811 2190(the)N
-916(library)X
-1113(is)X
-1183(loaded)X
-1380(into)X
-1507(a)X
-1562(server)X
-1744(process)X
-1962(which)X
-2145(is)X
-2214(ac-)X
-811 2280(cessed)N
-993(via)X
-1087(a)X
-1131(socket)X
-1310(interface.)X
-3 f
-2563 2100(Figure)N
-2803(3:)X
-2914(Single)X
-3140(Process)X
-3403(Architecture.)X
-1 f
-3839(In)X
-3950(this)X
-2563 2190(con\256guration,)N
-2948(the)X
-3053(library)X
-3250(routines)X
-3483(are)X
-3587(loaded)X
-3784(as)X
-3864(part)X
-3990(of)X
-2563 2280(the)N
-2657(application)X
-2957(and)X
-3065(accessed)X
-3303(via)X
-3397(a)X
-3441(subroutine)X
-3727(interface.)X
-10 s
-10 f
-555 2403(h)N
-579(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)X
-1 f
-555 2679(modifying)N
-909(a)X
-966(piece)X
-1157(of)X
-1245(data)X
-1400(would)X
-1621(require)X
-1870(three)X
-2051(or)X
-2138(possibly)X
-2424(four)X
-2578(separate)X
-2862(communications:)X
-3433(one)X
-3569(to)X
-3651(lock)X
-3809(the)X
-3927(data,)X
-4101(one)X
-4237(to)X
-555 2769(obtain)N
-781(the)X
-905(data,)X
-1085(one)X
-1227(to)X
-1315(log)X
-1443(the)X
-1567(modi\256cation,)X
-2017(and)X
-2159(possibly)X
-2451(one)X
-2593(to)X
-2681(transmit)X
-2969(the)X
-3093(modi\256ed)X
-3403(data.)X
-3583(Figure)X
-3817(four)X
-3976(shows)X
-4201(the)X
-555 2859(relative)N
-826(performance)X
-1263(for)X
-1387(retrieving)X
-1728(a)X
-1793(single)X
-2013(record)X
-2248(using)X
-2450(the)X
-2577(record)X
-2812(level)X
-2997(call)X
-3142(versus)X
-3376(using)X
-3578(the)X
-3705(lower)X
-3917(level)X
-4102(buffer)X
-555 2949(management)N
-987(and)X
-1125(locking)X
-1387(calls.)X
-1616(The)X
-1763(2:1)X
-1887(ratio)X
-2056(observed)X
-2367(in)X
-2450(the)X
-2569(single)X
-2781(process)X
-3043(case)X
-3203(re\257ects)X
-3456(the)X
-3575(additional)X
-3916(overhead)X
-4232(of)X
-555 3039(parsing)N
-819(eight)X
-1006(commands)X
-1380(rather)X
-1595(than)X
-1760(one)X
-1903(while)X
-2108(the)X
-2233(3:1)X
-2362(ratio)X
-2536(observed)X
-2853(in)X
-2942(the)X
-3067(client/server)X
-3491(architecture)X
-3898(re\257ects)X
-4157(both)X
-555 3129(the)N
-679(parsing)X
-941(and)X
-1083(the)X
-1207(communication)X
-1731(overheard.)X
-2118(Although)X
-2445(there)X
-2631(may)X
-2794(be)X
-2895(applications)X
-3307(which)X
-3528(could)X
-3731(tolerate)X
-3997(such)X
-4169(per-)X
-555 3219(formance,)N
-904(it)X
-973(seems)X
-1194(far)X
-1309(more)X
-1499(feasible)X
-1774(to)X
-1861(support)X
-2126(a)X
-2187(higher)X
-2417(level)X
-2597(interface,)X
-2923(such)X
-3094(as)X
-3185(that)X
-3329(provided)X
-3638(by)X
-3742(a)X
-3802(query)X
-4009(language)X
-555 3309(\()N
-2 f
-582(e.g.)X
-1 f
-718(SQL)X
-889([SQL86]\).)X
-755 3432(Although)N
-1081(LIBTP)X
-1327(does)X
-1498(not)X
-1624(have)X
-1800(an)X
-1900(SQL)X
-2075(parser,)X
-2316(we)X
-2433(have)X
-2608(built)X
-2777(a)X
-2836(server)X
-3056(application)X
-3435(using)X
-3631(the)X
-3752(toolkit)X
-3983(command)X
-555 3522(language)N
-882(\(TCL\))X
-1124([OUST90].)X
-1544(The)X
-1706(server)X
-1940(supports)X
-2248(a)X
-2321(command)X
-2674(line)X
-2831(interface)X
-3150(similar)X
-3409(to)X
-3508(the)X
-3643(subroutine)X
-4017(interface)X
-555 3612(de\256ned)N
-811(in)X
-3 f
-893(db)X
-1 f
-981(\(3\).)X
-1135(Since)X
-1333(it)X
-1397(is)X
-1470(based)X
-1673(on)X
-1773(TCL,)X
-1964(it)X
-2028(provides)X
-2324(control)X
-2571(structures)X
-2903(as)X
-2990(well.)X
-3 f
-555 3798(4.)N
-655(Implementation)X
-1 f
-3 f
-555 3984(4.1.)N
-715(Locking)X
-1014(and)X
-1162(Deadlock)X
-1502(Detection)X
-1 f
-755 4107(LIBTP)N
-1007(uses)X
-1175(two-phase)X
-1535(locking)X
-1805(for)X
-1929(user)X
-2093(data.)X
-2297(Strictly)X
-2562(speaking,)X
-2897(the)X
-3024(two)X
-3173(phases)X
-3416(in)X
-3507(two-phase)X
-3866(locking)X
-4135(are)X
-4263(a)X
-3 f
-555 4197(grow)N
-1 f
-756(phase,)X
-986(during)X
-1221(which)X
-1443(locks)X
-1638(are)X
-1763(acquired,)X
-2086(and)X
-2228(a)X
-3 f
-2290(shrink)X
-1 f
-2537(phase,)X
-2766(during)X
-3001(which)X
-3223(locks)X
-3418(are)X
-3543(released.)X
-3873(No)X
-3997(lock)X
-4161(may)X
-555 4287(ever)N
-720(be)X
-822(acquired)X
-1124(during)X
-1358(the)X
-1481(shrink)X
-1706(phase.)X
-1954(The)X
-2104(grow)X
-2294(phase)X
-2502(lasts)X
-2669(until)X
-2840(the)X
-2963(\256rst)X
-3112(release,)X
-3381(which)X
-3602(marks)X
-3823(the)X
-3946(start)X
-4109(of)X
-4201(the)X
-555 4377(shrink)N
-780(phase.)X
-1028(In)X
-1120(practice,)X
-1420(the)X
-1543(grow)X
-1733(phase)X
-1941(lasts)X
-2108(for)X
-2227(the)X
-2350(duration)X
-2642(of)X
-2734(a)X
-2795(transaction)X
-3172(in)X
-3259(LIBTP)X
-3506(and)X
-3647(in)X
-3734(commercial)X
-4138(data-)X
-555 4467(base)N
-721(systems.)X
-1037(The)X
-1184(shrink)X
-1406(phase)X
-1611(takes)X
-1798(place)X
-1990(during)X
-2221(transaction)X
-2595(commit)X
-2861(or)X
-2950(abort.)X
-3177(This)X
-3341(means)X
-3568(that)X
-3710(locks)X
-3901(are)X
-4022(acquired)X
-555 4557(on)N
-655(demand)X
-929(during)X
-1158(the)X
-1276(lifetime)X
-1545(of)X
-1632(a)X
-1688(transaction,)X
-2080(and)X
-2216(held)X
-2374(until)X
-2540(commit)X
-2804(time,)X
-2986(at)X
-3064(which)X
-3280(point)X
-3464(all)X
-3564(locks)X
-3753(are)X
-3872(released.)X
-755 4680(If)N
-832(multiple)X
-1121(transactions)X
-1527(are)X
-1649(active)X
-1864(concurrently,)X
-2313(deadlocks)X
-2657(can)X
-2792(occur)X
-2994(and)X
-3133(must)X
-3311(be)X
-3410(detected)X
-3701(and)X
-3840(resolved.)X
-4174(The)X
-555 4770(lock)N
-715(table)X
-893(can)X
-1027(be)X
-1125(thought)X
-1391(of)X
-1480(as)X
-1569(a)X
-1627(representation)X
-2104(of)X
-2193(a)X
-2251(directed)X
-2532(graph.)X
-2777(The)X
-2924(nodes)X
-3133(in)X
-3216(the)X
-3335(graph)X
-3539(are)X
-3659(transactions.)X
-4103(Edges)X
-555 4860(represent)N
-878(the)X
-3 f
-1004(waits-for)X
-1 f
-1340(relation)X
-1613(between)X
-1909(transactions;)X
-2342(if)X
-2419(transaction)X
-2 f
-2799(A)X
-1 f
-2876(is)X
-2957(waiting)X
-3225(for)X
-3347(a)X
-3411(lock)X
-3577(held)X
-3743(by)X
-3851(transaction)X
-2 f
-4230(B)X
-1 f
-4279(,)X
-555 4950(then)N
-716(a)X
-775(directed)X
-1057(edge)X
-1232(exists)X
-1437(from)X
-2 f
-1616(A)X
-1 f
-1687(to)X
-2 f
-1771(B)X
-1 f
-1842(in)X
-1926(the)X
-2046(graph.)X
-2291(A)X
-2371(deadlock)X
-2683(exists)X
-2887(if)X
-2958(a)X
-3016(cycle)X
-3208(appears)X
-3476(in)X
-3560(the)X
-3680(graph.)X
-3925(By)X
-4040(conven-)X
-555 5040(tion,)N
-719(no)X
-819(transaction)X
-1191(ever)X
-1350(waits)X
-1539(for)X
-1653(a)X
-1709(lock)X
-1867(it)X
-1931(already)X
-2188(holds,)X
-2401(so)X
-2492(re\257exive)X
-2793(edges)X
-2996(are)X
-3115(impossible.)X
-755 5163(A)N
-836(distinguished)X
-1285(process)X
-1549(monitors)X
-1856(the)X
-1977(lock)X
-2138(table,)X
-2337(searching)X
-2668(for)X
-2785(cycles.)X
-3048(The)X
-3195(frequency)X
-3539(with)X
-3703(which)X
-3921(this)X
-4058(process)X
-555 5253(runs)N
-716(is)X
-792(user-settable;)X
-1243(for)X
-1360(the)X
-1481(multi-user)X
-1833(tests)X
-1998(discussed)X
-2328(in)X
-2413(section)X
-2663(5.1.2,)X
-2866(it)X
-2933(has)X
-3063(been)X
-3238(set)X
-3350(to)X
-3435(wake)X
-3628(up)X
-3731(every)X
-3932(second,)X
-4197(but)X
-555 5343(more)N
-742(sophisticated)X
-1182(schedules)X
-1516(are)X
-1636(certainly)X
-1938(possible.)X
-2261(When)X
-2474(a)X
-2531(cycle)X
-2722(is)X
-2796(detected,)X
-3105(one)X
-3242(of)X
-3330(the)X
-3449(transactions)X
-3853(in)X
-3936(the)X
-4055(cycle)X
-4246(is)X
-555 5433(nominated)N
-917(and)X
-1057(aborted.)X
-1362(When)X
-1578(the)X
-1700(transaction)X
-2076(aborts,)X
-2315(it)X
-2382(rolls)X
-2547(back)X
-2722(its)X
-2820(changes)X
-3102(and)X
-3241(releases)X
-3519(its)X
-3617(locks,)X
-3829(thereby)X
-4093(break-)X
-555 5523(ing)N
-677(the)X
-795(cycle)X
-985(in)X
-1067(the)X
-1185(graph.)X
-
-8 p
-%%Page: 8 8
-10 s 10 xH 0 xS 1 f
-3 f
-1 f
-4 Ds
-1 Dt
-1866 865 MXY
-1338 0 Dl
-1866 1031 MXY
-1338 0 Dl
-1866 1199 MXY
-1338 0 Dl
-1866 1366 MXY
-1338 0 Dl
-1866 1533 MXY
-1338 0 Dl
-1866 1701 MXY
-1338 0 Dl
--1 Ds
-5 Dt
-1866 1868 MXY
-1338 0 Dl
-1 Dt
-1 Di
-2981 MX
- 2981 1868 lineto
- 2981 1575 lineto
- 3092 1575 lineto
- 3092 1868 lineto
- 2981 1868 lineto
-closepath 21 2981 1575 3092 1868 Dp
-2646 MX
- 2646 1868 lineto
- 2646 949 lineto
- 2758 949 lineto
- 2758 1868 lineto
- 2646 1868 lineto
-closepath 14 2646 949 2758 1868 Dp
-2312 MX
- 2312 1868 lineto
- 2312 1701 lineto
- 2423 1701 lineto
- 2423 1868 lineto
- 2312 1868 lineto
-closepath 3 2312 1701 2423 1868 Dp
-1977 MX
- 1977 1868 lineto
- 1977 1512 lineto
- 2089 1512 lineto
- 2089 1868 lineto
- 1977 1868 lineto
-closepath 19 1977 1512 2089 1868 Dp
-3 f
-2640 2047(Client/Server)N
-1957(Single)X
-2185(Process)X
-7 s
-2957 1957(record)N
-2570(component)X
-2289(record)X
-1890(components)X
-1733 1724(.1)N
-1733 1556(.2)N
-1733 1389(.3)N
-1733 1222(.4)N
-1733 1055(.5)N
-1733 889(.6)N
-1590 726(Elapsed)N
-1794(Time)X
-1613 782(\(in)N
-1693(seconds\))X
-3 Dt
--1 Ds
-8 s
-555 2255(Figure)N
-756(4:)X
-829(Comparison)X
-1187(of)X
-1260(High)X
-1416(and)X
-1540(Low)X
-1681(Level)X
-1850(Interfaces.)X
-1 f
-2174(Elapsed)X
-2395(time)X
-2528(in)X
-2597(seconds)X
-2818(to)X
-2887(perform)X
-3111(a)X
-3158(single)X
-3330(record)X
-3511(retrieval)X
-3742(from)X
-3885(a)X
-3932(command)X
-4203(line)X
-555 2345(\(rather)N
-751(than)X
-888(a)X
-943(procedural)X
-1241(interface\))X
-1510(is)X
-1579(shown)X
-1772(on)X
-1862(the)X
-1966(y)X
-2024(axis.)X
-2185(The)X
-2310(``component'')X
-2704(numbers)X
-2950(re\257ect)X
-3135(the)X
-3239(timings)X
-3458(when)X
-3622(the)X
-3726(record)X
-3914(is)X
-3983(retrieved)X
-4235(by)X
-555 2435(separate)N
-785(calls)X
-924(to)X
-996(the)X
-1096(lock)X
-1228(manager)X
-1469(and)X
-1583(buffer)X
-1760(manager)X
-2001(while)X
-2165(the)X
-2264(``record'')X
-2531(timings)X
-2745(were)X
-2889(obtained)X
-3130(by)X
-3215(using)X
-3375(a)X
-3424(single)X
-3598(call)X
-3711(to)X
-3782(the)X
-3881(record)X
-4064(manager.)X
-555 2525(The)N
-674(2:1)X
-776(ratio)X
-913(observed)X
-1163(for)X
-1257(the)X
-1355(single)X
-1528(process)X
-1739(case)X
-1868(is)X
-1930(a)X
-1977(re\257ection)X
-2237(of)X
-2309(the)X
-2406(parsing)X
-2613(overhead)X
-2865(for)X
-2958(executing)X
-3225(eight)X
-3372(separate)X
-3599(commands)X
-3895(rather)X
-4062(than)X
-4191(one.)X
-555 2615(The)N
-673(additional)X
-948(factor)X
-1115(of)X
-1187(one)X
-1298(re\257ected)X
-1536(in)X
-1605(the)X
-1702(3:1)X
-1803(ratio)X
-1939(for)X
-2031(the)X
-2127(client/server)X
-2460(architecture)X
-2794(is)X
-2855(due)X
-2965(to)X
-3033(the)X
-3129(communication)X
-3545(overhead.)X
-3828(The)X
-3945(true)X
-4062(ratios)X
-4222(are)X
-555 2705(actually)N
-775(worse)X
-945(since)X
-1094(the)X
-1190(component)X
-1492(timings)X
-1703(do)X
-1785(not)X
-1884(re\257ect)X
-2060(the)X
-2155(search)X
-2334(times)X
-2490(within)X
-2671(each)X
-2804(page)X
-2941(or)X
-3011(the)X
-3106(time)X
-3237(required)X
-3466(to)X
-3533(transmit)X
-3760(the)X
-3855(page)X
-3992(between)X
-4221(the)X
-555 2795(two)N
-667(processes.)X
-10 s
-10 f
-555 2885(h)N
-579(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)X
-3 f
-555 3161(4.2.)N
-715(Group)X
-961(Commit)X
-1 f
-755 3284(Since)N
-959(the)X
-1083(log)X
-1211(must)X
-1392(be)X
-1494(\257ushed)X
-1751(to)X
-1839(disk)X
-1997(at)X
-2080(commit)X
-2349(time,)X
-2536(disk)X
-2694(bandwidth)X
-3057(fundamentally)X
-3545(limits)X
-3751(the)X
-3874(rate)X
-4020(at)X
-4103(which)X
-555 3374(transactions)N
-959(complete.)X
-1314(Since)X
-1513(most)X
-1688(transactions)X
-2091(write)X
-2276(only)X
-2438(a)X
-2494(few)X
-2635(small)X
-2828(records)X
-3085(to)X
-3167(the)X
-3285(log,)X
-3427(the)X
-3545(last)X
-3676(page)X
-3848(of)X
-3935(the)X
-4053(log)X
-4175(will)X
-555 3464(be)N
-658(\257ushed)X
-916(once)X
-1095(by)X
-1202(every)X
-1408(transaction)X
-1787(which)X
-2010(writes)X
-2233(to)X
-2322(it.)X
-2433(In)X
-2527(the)X
-2652(naive)X
-2853(implementation,)X
-3402(these)X
-3593(\257ushes)X
-3841(would)X
-4067(happen)X
-555 3554(serially.)N
-755 3677(LIBTP)N
-1008(uses)X
-3 f
-1177(group)X
-1412(commit)X
-1 f
-1702([DEWI84])X
-2077(in)X
-2170(order)X
-2371(to)X
-2464(amortize)X
-2775(the)X
-2903(cost)X
-3062(of)X
-3159(one)X
-3305(synchronous)X
-3740(disk)X
-3903(write)X
-4098(across)X
-555 3767(multiple)N
-851(transactions.)X
-1304(Group)X
-1539(commit)X
-1812(provides)X
-2117(a)X
-2182(way)X
-2345(for)X
-2468(a)X
-2533(group)X
-2749(of)X
-2845(transactions)X
-3257(to)X
-3348(commit)X
-3621(simultaneously.)X
-4174(The)X
-555 3857(\256rst)N
-709(several)X
-967(transactions)X
-1380(to)X
-1472(commit)X
-1745(write)X
-1939(their)X
-2115(changes)X
-2403(to)X
-2494(the)X
-2621(in-memory)X
-3006(log)X
-3137(page,)X
-3338(then)X
-3505(sleep)X
-3699(on)X
-3808(a)X
-3873(distinguished)X
-555 3947(semaphore.)N
-966(Later,)X
-1179(a)X
-1238(committing)X
-1629(transaction)X
-2004(\257ushes)X
-2249(the)X
-2370(page)X
-2545(to)X
-2630(disk,)X
-2805(and)X
-2943(wakes)X
-3166(up)X
-3268(all)X
-3370(its)X
-3467(sleeping)X
-3756(peers.)X
-3988(The)X
-4135(point)X
-555 4037(at)N
-635(which)X
-853(changes)X
-1134(are)X
-1255(actually)X
-1531(written)X
-1780(is)X
-1855(determined)X
-2238(by)X
-2340(three)X
-2523(thresholds.)X
-2914(The)X
-3061(\256rst)X
-3207(is)X
-3281(the)X
-2 f
-3400(group)X
-3612(threshold)X
-1 f
-3935(and)X
-4072(de\256nes)X
-555 4127(the)N
-674(minimum)X
-1005(number)X
-1271(of)X
-1359(transactions)X
-1763(which)X
-1979(must)X
-2154(be)X
-2250(active)X
-2462(in)X
-2544(the)X
-2662(system)X
-2904(before)X
-3130(transactions)X
-3533(are)X
-3652(forced)X
-3878(to)X
-3960(participate)X
-555 4217(in)N
-646(a)X
-711(group)X
-927(commit.)X
-1240(The)X
-1394(second)X
-1646(is)X
-1728(the)X
-2 f
-1855(wait)X
-2021(threshold)X
-1 f
-2352(which)X
-2577(is)X
-2658(expressed)X
-3003(as)X
-3098(the)X
-3224(percentage)X
-3601(of)X
-3696(active)X
-3916(transactions)X
-555 4307(waiting)N
-826(to)X
-919(be)X
-1026(committed.)X
-1439(The)X
-1595(last)X
-1737(is)X
-1821(the)X
-2 f
-1950(logdelay)X
-2257(threshold)X
-1 f
-2590(which)X
-2816(indicates)X
-3131(how)X
-3299(much)X
-3507(un\257ushed)X
-3848(log)X
-3980(should)X
-4223(be)X
-555 4397(allowed)N
-829(to)X
-911(accumulate)X
-1297(before)X
-1523(a)X
-1579(waiting)X
-1839(transaction's)X
-2289(commit)X
-2553(record)X
-2779(is)X
-2852(\257ushed.)X
-755 4520(Group)N
-981(commit)X
-1246(can)X
-1379(substantially)X
-1803(improve)X
-2090(performance)X
-2517(for)X
-2631(high-concurrency)X
-3218(environments.)X
-3714(If)X
-3788(only)X
-3950(a)X
-4006(few)X
-4147(tran-)X
-555 4610(sactions)N
-836(are)X
-957(running,)X
-1248(it)X
-1314(is)X
-1389(unlikely)X
-1673(to)X
-1757(improve)X
-2046(things)X
-2263(at)X
-2343(all.)X
-2485(The)X
-2632(crossover)X
-2962(point)X
-3148(is)X
-3223(the)X
-3343(point)X
-3529(at)X
-3609(which)X
-3827(the)X
-3947(transaction)X
-555 4700(commit)N
-823(rate)X
-968(is)X
-1045(limited)X
-1295(by)X
-1399(the)X
-1521(bandwidth)X
-1883(of)X
-1974(the)X
-2096(device)X
-2330(on)X
-2434(which)X
-2654(the)X
-2776(log)X
-2902(resides.)X
-3189(If)X
-3267(processes)X
-3599(are)X
-3722(trying)X
-3937(to)X
-4023(\257ush)X
-4201(the)X
-555 4790(log)N
-677(faster)X
-876(than)X
-1034(the)X
-1152(log)X
-1274(disk)X
-1427(can)X
-1559(accept)X
-1785(data,)X
-1959(then)X
-2117(group)X
-2324(commit)X
-2588(will)X
-2732(increase)X
-3016(the)X
-3134(commit)X
-3398(rate.)X
-3 f
-555 4976(4.3.)N
-715(Kernel)X
-971(Intervention)X
-1418(for)X
-1541(Synchronization)X
-1 f
-755 5099(Since)N
-954(LIBTP)X
-1197(uses)X
-1356(data)X
-1511(in)X
-1594(shared)X
-1825(memory)X
-2113(\()X
-2 f
-2140(e.g.)X
-1 f
-2277(the)X
-2395(lock)X
-2553(table)X
-2729(and)X
-2865(buffer)X
-3082(pool\))X
-3271(it)X
-3335(must)X
-3510(be)X
-3606(possible)X
-3888(for)X
-4002(a)X
-4058(process)X
-555 5189(to)N
-640(acquire)X
-900(exclusive)X
-1226(access)X
-1454(to)X
-1538(shared)X
-1770(data)X
-1926(in)X
-2010(order)X
-2202(to)X
-2286(prevent)X
-2549(corruption.)X
-2945(In)X
-3034(addition,)X
-3338(the)X
-3458(process)X
-3721(manager)X
-4020(must)X
-4197(put)X
-555 5279(processes)N
-886(to)X
-971(sleep)X
-1159(when)X
-1356(the)X
-1477(lock)X
-1638(or)X
-1728(buffer)X
-1948(they)X
-2109(request)X
-2364(is)X
-2440(in)X
-2525(use)X
-2655(by)X
-2758(some)X
-2950(other)X
-3138(process.)X
-3441(In)X
-3530(the)X
-3650(LIBTP)X
-3894(implementa-)X
-555 5385(tion)N
-705(under)X
-914(Ultrix)X
-1131(4.0)X
-7 s
-5353(2)Y
-10 s
-5385(,)Y
-1305(we)X
-1424(use)X
-1556(System)X
-1816(V)X
-1899(semaphores)X
-2303(to)X
-2390(provide)X
-2660(this)X
-2800(synchronization.)X
-3377(Semaphores)X
-3794(implemented)X
-4237(in)X
-555 5475(this)N
-701(fashion)X
-968(turn)X
-1128(out)X
-1261(to)X
-1354(be)X
-1461(an)X
-1568(expensive)X
-1920(choice)X
-2161(for)X
-2285(synchronization,)X
-2847(because)X
-3132(each)X
-3310(access)X
-3546(traps)X
-3732(to)X
-3824(the)X
-3952(kernel)X
-4183(and)X
-8 s
-10 f
-555 5547(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)N
-5 s
-1 f
-727 5625(2)N
-8 s
-763 5650(Ultrix)N
-932(and)X
-1040(DEC)X
-1184(are)X
-1277(trademarks)X
-1576(of)X
-1645(Digital)X
-1839(Equipment)X
-2136(Corporation.)X
-
-9 p
-%%Page: 9 9
-8 s 8 xH 0 xS 1 f
-10 s
-3 f
-1 f
-555 630(executes)N
-852(atomically)X
-1210(there.)X
-755 753(On)N
-878(architectures)X
-1314(that)X
-1459(support)X
-1724(atomic)X
-1967(test-and-set,)X
-2382(a)X
-2443(much)X
-2646(better)X
-2854(choice)X
-3089(would)X
-3314(be)X
-3415(to)X
-3502(attempt)X
-3767(to)X
-3854(obtain)X
-4079(a)X
-4139(spin-)X
-555 843(lock)N
-714(with)X
-877(a)X
-934(test-and-set,)X
-1345(and)X
-1482(issue)X
-1663(a)X
-1720(system)X
-1963(call)X
-2100(only)X
-2263(if)X
-2333(the)X
-2452(spinlock)X
-2744(is)X
-2818(unavailable.)X
-3249(Since)X
-3447(virtually)X
-3738(all)X
-3838(semaphores)X
-4237(in)X
-555 933(LIBTP)N
-801(are)X
-924(uncontested)X
-1330(and)X
-1469(are)X
-1591(held)X
-1752(for)X
-1869(very)X
-2035(short)X
-2218(periods)X
-2477(of)X
-2567(time,)X
-2752(this)X
-2890(would)X
-3113(improve)X
-3403(performance.)X
-3873(For)X
-4007(example,)X
-555 1023(processes)N
-885(must)X
-1062(acquire)X
-1321(exclusive)X
-1646(access)X
-1874(to)X
-1958(buffer)X
-2177(pool)X
-2341(metadata)X
-2653(in)X
-2737(order)X
-2929(to)X
-3013(\256nd)X
-3159(and)X
-3297(pin)X
-3421(a)X
-3479(buffer)X
-3698(in)X
-3781(shared)X
-4012(memory.)X
-555 1113(This)N
-721(semaphore)X
-1093(is)X
-1170(requested)X
-1502(most)X
-1681(frequently)X
-2034(in)X
-2119(LIBTP.)X
-2404(However,)X
-2742(once)X
-2917(it)X
-2984(is)X
-3060(acquired,)X
-3380(only)X
-3545(a)X
-3604(few)X
-3748(instructions)X
-4144(must)X
-555 1203(be)N
-656(executed)X
-966(before)X
-1196(it)X
-1264(is)X
-1341(released.)X
-1669(On)X
-1791(one)X
-1931(architecture)X
-2335(for)X
-2453(which)X
-2673(we)X
-2791(were)X
-2972(able)X
-3130(to)X
-3216(gather)X
-3441(detailed)X
-3719(pro\256ling)X
-4018(informa-)X
-555 1293(tion,)N
-729(the)X
-857(cost)X
-1015(of)X
-1111(the)X
-1238(semaphore)X
-1615(calls)X
-1791(accounted)X
-2146(for)X
-2269(25%)X
-2445(of)X
-2541(the)X
-2668(total)X
-2839(time)X
-3010(spent)X
-3208(updating)X
-3517(the)X
-3644(metadata.)X
-4003(This)X
-4174(was)X
-555 1383(fairly)N
-749(consistent)X
-1089(across)X
-1310(most)X
-1485(of)X
-1572(the)X
-1690(critical)X
-1933(sections.)X
-755 1506(In)N
-848(an)X
-950(attempt)X
-1216(to)X
-1304(quantify)X
-1597(the)X
-1720(overhead)X
-2040(of)X
-2132(kernel)X
-2358(synchronization,)X
-2915(we)X
-3034(ran)X
-3162(tests)X
-3329(on)X
-3434(a)X
-3495(version)X
-3756(of)X
-3848(4.3BSD-Reno)X
-555 1596(which)N
-786(had)X
-937(been)X
-1123(modi\256ed)X
-1441(to)X
-1537(support)X
-1811(binary)X
-2050(semaphore)X
-2432(facilities)X
-2742(similar)X
-2998(to)X
-3094(those)X
-3297(described)X
-3639(in)X
-3735([POSIX91].)X
-4174(The)X
-555 1686(hardware)N
-880(platform)X
-1181(consisted)X
-1504(of)X
-1595(an)X
-1695(HP300)X
-1941(\(33MHz)X
-2237(MC68030\))X
-2612(workstation)X
-3014(with)X
-3180(16MBytes)X
-3537(of)X
-3628(main)X
-3812(memory,)X
-4123(and)X
-4263(a)X
-555 1776(600MByte)N
-920(HP7959)X
-1205(SCSI)X
-1396(disk)X
-1552(\(17)X
-1682(ms)X
-1798(average)X
-2072(seek)X
-2237(time\).)X
-2468(We)X
-2602(ran)X
-2727(three)X
-2910(sets)X
-3052(of)X
-3141(comparisons)X
-3568(which)X
-3786(are)X
-3907(summarized)X
-555 1866(in)N
-645(\256gure)X
-860(\256ve.)X
-1028(In)X
-1123(each)X
-1299(comparison)X
-1701(we)X
-1823(ran)X
-1954(two)X
-2102(tests,)X
-2292(one)X
-2436(using)X
-2637(hardware)X
-2965(spinlocks)X
-3295(and)X
-3438(the)X
-3563(other)X
-3755(using)X
-3955(kernel)X
-4183(call)X
-555 1956(synchronization.)N
-1135(Since)X
-1341(the)X
-1467(test)X
-1606(was)X
-1758(run)X
-1892(single-user,)X
-2291(none)X
-2474(of)X
-2568(the)X
-2693(the)X
-2818(locks)X
-3014(were)X
-3198(contested.)X
-3568(In)X
-3662(the)X
-3787(\256rst)X
-3938(two)X
-4085(sets)X
-4232(of)X
-555 2046(tests,)N
-743(we)X
-863(ran)X
-992(the)X
-1116(full)X
-1253(transaction)X
-1631(processing)X
-2000(benchmark)X
-2383(described)X
-2717(in)X
-2805(section)X
-3058(5.1.)X
-3223(In)X
-3315(one)X
-3456(case)X
-3620(we)X
-3739(ran)X
-3867(with)X
-4034(both)X
-4201(the)X
-555 2136(database)N
-854(and)X
-992(log)X
-1116(on)X
-1218(the)X
-1338(same)X
-1525(disk)X
-1680(\(1)X
-1769(Disk\))X
-1969(and)X
-2107(in)X
-2191(the)X
-2311(second,)X
-2576(we)X
-2692(ran)X
-2817(with)X
-2981(the)X
-3101(database)X
-3400(and)X
-3538(log)X
-3661(on)X
-3762(separate)X
-4047(disks)X
-4232(\(2)X
-555 2226(Disk\).)N
-800(In)X
-894(the)X
-1019(last)X
-1157(test,)X
-1315(we)X
-1436(wanted)X
-1695(to)X
-1784(create)X
-2004(a)X
-2067(CPU)X
-2249(bound)X
-2476(environment,)X
-2928(so)X
-3026(we)X
-3146(used)X
-3319(a)X
-3381(database)X
-3684(small)X
-3883(enough)X
-4145(to)X
-4233(\256t)X
-555 2316(completely)N
-941(in)X
-1033(the)X
-1161(cache)X
-1375(and)X
-1521(issued)X
-1751(read-only)X
-2089(transactions.)X
-2541(The)X
-2695(results)X
-2933(in)X
-3024(\256gure)X
-3240(\256ve)X
-3389(express)X
-3659(the)X
-3786(kernel)X
-4016(call)X
-4161(syn-)X
-555 2406(chronization)N
-980(performance)X
-1411(as)X
-1502(a)X
-1562(percentage)X
-1935(of)X
-2026(the)X
-2148(spinlock)X
-2443(performance.)X
-2914(For)X
-3049(example,)X
-3365(in)X
-3451(the)X
-3573(1)X
-3637(disk)X
-3794(case,)X
-3977(the)X
-4098(kernel)X
-555 2496(call)N
-697(implementation)X
-1225(achieved)X
-1537(4.4)X
-1662(TPS)X
-1824(\(transactions)X
-2259(per)X
-2387(second\))X
-2662(while)X
-2865(the)X
-2988(semaphore)X
-3361(implementation)X
-3888(achieved)X
-4199(4.6)X
-555 2586(TPS,)N
-735(and)X
-874(the)X
-995(relative)X
-1259(performance)X
-1689(of)X
-1779(the)X
-1900(kernel)X
-2123(synchronization)X
-2657(is)X
-2732(96%)X
-2901(that)X
-3043(of)X
-3132(the)X
-3252(spinlock)X
-3545(\(100)X
-3714(*)X
-3776(4.4)X
-3898(/)X
-3942(4.6\).)X
-4111(There)X
-555 2676(are)N
-674(two)X
-814(striking)X
-1078(observations)X
-1503(from)X
-1679(these)X
-1864(results:)X
-10 f
-635 2799(g)N
-1 f
-755(even)X
-927(when)X
-1121(the)X
-1239(system)X
-1481(is)X
-1554(disk)X
-1707(bound,)X
-1947(the)X
-2065(CPU)X
-2240(cost)X
-2389(of)X
-2476(synchronization)X
-3008(is)X
-3081(noticeable,)X
-3451(and)X
-10 f
-635 2922(g)N
-1 f
-755(when)X
-949(we)X
-1063(are)X
-1182(CPU)X
-1357(bound,)X
-1597(the)X
-1715(difference)X
-2062(is)X
-2135(dramatic)X
-2436(\(67%\).)X
-3 f
-555 3108(4.4.)N
-715(Transaction)X
-1148(Protected)X
-1499(Access)X
-1747(Methods)X
-1 f
-755 3231(The)N
-903(B-tree)X
-1127(and)X
-1266(\256xed)X
-1449(length)X
-1671(recno)X
-1872(\(record)X
-2127(number\))X
-2421(access)X
-2649(methods)X
-2942(have)X
-3116(been)X
-3290(modi\256ed)X
-3596(to)X
-3680(provide)X
-3947(transaction)X
-555 3321(protection.)N
-941(Whereas)X
-1244(the)X
-1363(previously)X
-1722(published)X
-2054(interface)X
-2357(to)X
-2440(the)X
-2559(access)X
-2786(routines)X
-3065(had)X
-3202(separate)X
-3487(open)X
-3664(calls)X
-3832(for)X
-3946(each)X
-4114(of)X
-4201(the)X
-10 f
-555 3507(h)N
-579(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)X
-1 Dt
-2978 5036 MXY
- 2978 5036 lineto
- 2978 4662 lineto
- 3093 4662 lineto
- 3093 5036 lineto
- 2978 5036 lineto
-closepath 21 2978 4662 3093 5036 Dp
-2518 MX
- 2518 5036 lineto
- 2518 3960 lineto
- 2633 3960 lineto
- 2633 5036 lineto
- 2518 5036 lineto
-closepath 3 2518 3960 2633 5036 Dp
-2059 MX
- 2059 5036 lineto
- 2059 3946 lineto
- 2174 3946 lineto
- 2174 5036 lineto
- 2059 5036 lineto
-closepath 1 2059 3946 2174 5036 Dp
-3 f
-7 s
-2912 5141(Read-only)N
-1426 3767(of)N
-1487(Spinlock)X
-1710(Throughput)X
-1480 3710(Throughput)N
-1786(as)X
-1850(a)X
-1892(%)X
-11 s
-1670 4843(20)N
-1670 4614(40)N
-1670 4384(60)N
-1670 4155(80)N
-1648 3925(100)N
-7 s
-2041 5141(1)N
-2083(Disk)X
-2490(2)X
-2532(Disks)X
-5 Dt
-1829 5036 MXY
-1494 0 Dl
-4 Ds
-1 Dt
-1829 4806 MXY
-1494 0 Dl
-1829 4577 MXY
-1494 0 Dl
-1829 4347 MXY
-1494 0 Dl
-1829 4118 MXY
-1494 0 Dl
-1829 3888 MXY
-1494 0 Dl
-3 Dt
--1 Ds
-8 s
-555 5360(Figure)N
-753(5:)X
-823(Kernel)X
-1028(Overhead)X
-1315(for)X
-1413(System)X
-1625(Call)X
-1756(Synchronization.)X
-1 f
-2254(The)X
-2370(performance)X
-2708(of)X
-2778(the)X
-2873(kernel)X
-3049(call)X
-3158(synchronization)X
-3583(is)X
-3643(expressed)X
-3911(as)X
-3980(a)X
-4024(percentage)X
-555 5450(of)N
-625(the)X
-720(spinlock)X
-954(synchronization)X
-1379(performance.)X
-1749(In)X
-1819(disk)X
-1943(bound)X
-2120(cases)X
-2271(\(1)X
-2341(Disk)X
-2479(and)X
-2588(2)X
-2637(Disks\),)X
-2837(we)X
-2928(see)X
-3026(that)X
-3139(4-6%)X
-3294(of)X
-3364(the)X
-3459(performance)X
-3797(is)X
-3857(lost)X
-3966(due)X
-4074(to)X
-4140(kernel)X
-555 5540(calls)N
-688(while)X
-846(in)X
-912(the)X
-1006(CPU)X
-1147(bound)X
-1323(case,)X
-1464(we)X
-1554(have)X
-1690(lost)X
-1799(67%)X
-1932(of)X
-2001(the)X
-2095(performance)X
-2432(due)X
-2540(to)X
-2606(kernel)X
-2781(calls.)X
-
-10 p
-%%Page: 10 10
-8 s 8 xH 0 xS 1 f
-10 s
-3 f
-1 f
-555 630(access)N
-781(methods,)X
-1092(we)X
-1206(now)X
-1364(have)X
-1536(an)X
-1632(integrated)X
-1973(open)X
-2149(call)X
-2285(with)X
-2447(the)X
-2565(following)X
-2896(calling)X
-3134(conventions:)X
-7 f
-715 753(DB)N
-859(*dbopen)X
-1243(\(const)X
-1579(char)X
-1819(*file,)X
-2155(int)X
-2347(flags,)X
-2683(int)X
-2875(mode,)X
-3163(DBTYPE)X
-3499(type,)X
-1291 843(int)N
-1483(dbflags,)X
-1915(const)X
-2203(void)X
-2443(*openinfo\))X
-1 f
-555 966(where)N
-2 f
-774(\256le)X
-1 f
-894(is)X
-969(the)X
-1089(name)X
-1285(of)X
-1374(the)X
-1494(\256le)X
-1618(being)X
-1818(opened,)X
-2 f
-2092(\257ags)X
-1 f
-2265(and)X
-2 f
-2402(mode)X
-1 f
-2597(are)X
-2717(the)X
-2836(standard)X
-3129(arguments)X
-3484(to)X
-3 f
-3567(open)X
-1 f
-3731(\(2\),)X
-2 f
-3866(type)X
-1 f
-4021(is)X
-4095(one)X
-4232(of)X
-555 1056(the)N
-680(access)X
-913(method)X
-1180(types,)X
-2 f
-1396(db\257ags)X
-1 f
-1654(indicates)X
-1966(the)X
-2091(mode)X
-2296(of)X
-2390(the)X
-2515(buffer)X
-2739(pool)X
-2907(and)X
-3049(transaction)X
-3427(protection,)X
-3798(and)X
-2 f
-3940(openinfo)X
-1 f
-4246(is)X
-555 1146(the)N
-681(access)X
-915(method)X
-1183(speci\256c)X
-1456(information.)X
-1902(Currently,)X
-2257(the)X
-2383(possible)X
-2673(values)X
-2906(for)X
-2 f
-3028(db\257ags)X
-1 f
-3287(are)X
-3414(DB_SHARED)X
-3912(and)X
-4055(DB_TP)X
-555 1236(indicating)N
-895(that)X
-1035(buffers)X
-1283(should)X
-1516(be)X
-1612(kept)X
-1770(in)X
-1852(a)X
-1908(shared)X
-2138(buffer)X
-2355(pool)X
-2517(and)X
-2653(that)X
-2793(the)X
-2911(\256le)X
-3033(should)X
-3266(be)X
-3362(transaction)X
-3734(protected.)X
-755 1359(The)N
-900(modi\256cations)X
-1355(required)X
-1643(to)X
-1725(add)X
-1861(transaction)X
-2233(protection)X
-2578(to)X
-2660(an)X
-2756(access)X
-2982(method)X
-3242(are)X
-3361(quite)X
-3541(simple)X
-3774(and)X
-3910(localized.)X
-715 1482(1.)N
-795(Replace)X
-1074(\256le)X
-2 f
-1196(open)X
-1 f
-1372(with)X
-2 f
-1534(buf_open)X
-1 f
-1832(.)X
-715 1572(2.)N
-795(Replace)X
-1074(\256le)X
-2 f
-1196(read)X
-1 f
-1363(and)X
-2 f
-1499(write)X
-1 f
-1683(calls)X
-1850(with)X
-2012(buffer)X
-2229(manager)X
-2526(calls)X
-2693(\()X
-2 f
-2720(buf_get)X
-1 f
-(,)S
-2 f
-3000(buf_unpin)X
-1 f
-3324(\).)X
-715 1662(3.)N
-795(Precede)X
-1070(buffer)X
-1287(manager)X
-1584(calls)X
-1751(with)X
-1913(an)X
-2009(appropriate)X
-2395(\(read)X
-2581(or)X
-2668(write\))X
-2880(lock)X
-3038(call.)X
-715 1752(4.)N
-795(Before)X
-1034(updates,)X
-1319(issue)X
-1499(a)X
-1555(logging)X
-1819(operation.)X
-715 1842(5.)N
-795(After)X
-985(data)X
-1139(have)X
-1311(been)X
-1483(accessed,)X
-1805(release)X
-2049(the)X
-2167(buffer)X
-2384(manager)X
-2681(pin.)X
-715 1932(6.)N
-795(Provide)X
-1064(undo/redo)X
-1409(code)X
-1581(for)X
-1695(each)X
-1863(type)X
-2021(of)X
-2108(log)X
-2230(record)X
-2456(de\256ned.)X
-555 2071(The)N
-702(following)X
-1035(code)X
-1209(fragments)X
-1552(show)X
-1743(how)X
-1903(to)X
-1987(transaction)X
-2361(protect)X
-2606(several)X
-2856(updates)X
-3123(to)X
-3206(a)X
-3263(B-tree.)X
-7 s
-3484 2039(3)N
-10 s
-3533 2071(In)N
-3621(the)X
-3740(unprotected)X
-4140(case,)X
-555 2161(an)N
-652(open)X
-829(call)X
-966(is)X
-1040(followed)X
-1346(by)X
-1447(a)X
-1504(read)X
-1664(call)X
-1801(to)X
-1884(obtain)X
-2105(the)X
-2224(meta-data)X
-2562(for)X
-2677(the)X
-2796(B-tree.)X
-3058(Instead,)X
-3331(we)X
-3446(issue)X
-3627(an)X
-3724(open)X
-3901(to)X
-3984(the)X
-4102(buffer)X
-555 2251(manager)N
-852(to)X
-934(obtain)X
-1154(a)X
-1210(\256le)X
-1332(id)X
-1414(and)X
-1550(a)X
-1606(buffer)X
-1823(request)X
-2075(to)X
-2157(obtain)X
-2377(the)X
-2495(meta-data)X
-2832(as)X
-2919(shown)X
-3148(below.)X
-7 f
-715 2374(char)N
-955(*path;)X
-715 2464(int)N
-907(fid,)X
-1147(flags,)X
-1483(len,)X
-1723(mode;)X
-715 2644(/*)N
-859(Obtain)X
-1195(a)X
-1291(file)X
-1531(id)X
-1675(with)X
-1915(which)X
-2203(to)X
-2347(access)X
-2683(the)X
-2875(buffer)X
-3211(pool)X
-3451(*/)X
-715 2734(fid)N
-907(=)X
-1003(buf_open\(path,)X
-1723(flags,)X
-2059(mode\);)X
-715 2914(/*)N
-859(Read)X
-1099(the)X
-1291(meta)X
-1531(data)X
-1771(\(page)X
-2059(0\))X
-2203(for)X
-2395(the)X
-2587(B-tree)X
-2923(*/)X
-715 3004(if)N
-859(\(tp_lock\(fid,)X
-1531(0,)X
-1675(READ_LOCK\)\))X
-1003 3094(return)N
-1339(error;)X
-715 3184(meta_data_ptr)N
-1387(=)X
-1483(buf_get\(fid,)X
-2107(0,)X
-2251(BF_PIN,)X
-2635(&len\);)X
-1 f
-555 3307(The)N
-714(BF_PIN)X
-1014(argument)X
-1350(to)X
-2 f
-1445(buf_get)X
-1 f
-1718(indicates)X
-2036(that)X
-2189(we)X
-2316(wish)X
-2500(to)X
-2595(leave)X
-2798(this)X
-2946(page)X
-3131(pinned)X
-3382(in)X
-3477(memory)X
-3777(so)X
-3881(that)X
-4034(it)X
-4111(is)X
-4197(not)X
-555 3397(swapped)N
-862(out)X
-990(while)X
-1194(we)X
-1314(are)X
-1439(accessing)X
-1772(it.)X
-1881(The)X
-2031(last)X
-2167(argument)X
-2495(to)X
-2 f
-2582(buf_get)X
-1 f
-2847(returns)X
-3095(the)X
-3218(number)X
-3488(of)X
-3580(bytes)X
-3774(on)X
-3879(the)X
-4002(page)X
-4179(that)X
-555 3487(were)N
-732(valid)X
-912(so)X
-1003(that)X
-1143(the)X
-1261(access)X
-1487(method)X
-1747(may)X
-1905(initialize)X
-2205(the)X
-2323(page)X
-2495(if)X
-2564(necessary.)X
-755 3610(Next,)N
-955(consider)X
-1251(inserting)X
-1555(a)X
-1615(record)X
-1845(on)X
-1949(a)X
-2009(particular)X
-2341(page)X
-2517(of)X
-2608(a)X
-2668(B-tree.)X
-2932(In)X
-3022(the)X
-3143(unprotected)X
-3545(case,)X
-3727(we)X
-3844(read)X
-4006(the)X
-4127(page,)X
-555 3700(call)N
-2 f
-693(_bt_insertat)X
-1 f
-1079(,)X
-1121(and)X
-1258(write)X
-1444(the)X
-1563(page.)X
-1776(Instead,)X
-2049(we)X
-2164(lock)X
-2323(the)X
-2442(page,)X
-2635(request)X
-2888(the)X
-3007(buffer,)X
-3245(log)X
-3368(the)X
-3487(change,)X
-3756(modify)X
-4008(the)X
-4127(page,)X
-555 3790(and)N
-691(release)X
-935(the)X
-1053(buffer.)X
-7 f
-715 3913(int)N
-907(fid,)X
-1147(len,)X
-1387(pageno;)X
-1867(/*)X
-2011(Identifies)X
-2539(the)X
-2731(buffer)X
-3067(*/)X
-715 4003(int)N
-907(index;)X
-1867(/*)X
-2011(Location)X
-2443(at)X
-2587(which)X
-2875(to)X
-3019(insert)X
-3355(the)X
-3547(new)X
-3739(pair)X
-3979(*/)X
-715 4093(DBT)N
-907(*keyp,)X
-1243(*datap;)X
-1867(/*)X
-2011(Key/Data)X
-2443(pair)X
-2683(to)X
-2827(be)X
-2971(inserted)X
-3403(*/)X
-715 4183(DATUM)N
-1003(*d;)X
-1867(/*)X
-2011(Key/data)X
-2443(structure)X
-2923(to)X
-3067(insert)X
-3403(*/)X
-715 4363(/*)N
-859(Lock)X
-1099(and)X
-1291(request)X
-1675(the)X
-1867(buffer)X
-2203(*/)X
-715 4453(if)N
-859(\(tp_lock\(fid,)X
-1531(pageno,)X
-1915(WRITE_LOCK\)\))X
-1003 4543(return)N
-1339(error;)X
-715 4633(buffer_ptr)N
-1243(=)X
-1339(buf_get\(fid,)X
-1963(pageno,)X
-2347(BF_PIN,)X
-2731(&len\);)X
-715 4813(/*)N
-859(Log)X
-1051(and)X
-1243(perform)X
-1627(the)X
-1819(update)X
-2155(*/)X
-715 4903(log_insdel\(BTREE_INSERT,)N
-1915(fid,)X
-2155(pageno,)X
-2539(keyp,)X
-2827(datap\);)X
-715 4993(_bt_insertat\(buffer_ptr,)N
-1915(d,)X
-2059(index\);)X
-715 5083(buf_unpin\(buffer_ptr\);)N
-1 f
-555 5206(Succinctly,)N
-942(the)X
-1068(algorithm)X
-1407(for)X
-1529(turning)X
-1788(unprotected)X
-2195(code)X
-2375(into)X
-2527(protected)X
-2854(code)X
-3034(is)X
-3115(to)X
-3205(replace)X
-3466(read)X
-3633(operations)X
-3995(with)X
-2 f
-4165(lock)X
-1 f
-555 5296(and)N
-2 f
-691(buf_get)X
-1 f
-951(operations)X
-1305(and)X
-1441(write)X
-1626(operations)X
-1980(with)X
-2 f
-2142(log)X
-1 f
-2264(and)X
-2 f
-2400(buf_unpin)X
-1 f
-2744(operations.)X
-8 s
-10 f
-555 5458(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)N
-5 s
-1 f
-727 5536(3)N
-8 s
-766 5561(The)N
-884(following)X
-1152(code)X
-1291(fragments)X
-1565(are)X
-1661(examples,)X
-1937(but)X
-2038(do)X
-2120(not)X
-2220(de\256ne)X
-2394(the)X
-2490(\256nal)X
-2622(interface.)X
-2894(The)X
-3011(\256nal)X
-3143(interface)X
-3383(will)X
-3501(be)X
-3579(determined)X
-3884(after)X
-4018(LIBTP)X
-4214(has)X
-555 5633(been)N
-691(fully)X
-828(integrated)X
-1099(with)X
-1229(the)X
-1323(most)X
-1464(recent)X
-3 f
-1635(db)X
-1 f
-1707(\(3\))X
-1797(release)X
-1989(from)X
-2129(the)X
-2223(Computer)X
-2495(Systems)X
-2725(Research)X
-2974(Group)X
-3153(at)X
-3215(University)X
-3501(of)X
-3570(California,)X
-3861(Berkeley.)X
-
-11 p
-%%Page: 11 11
-8 s 8 xH 0 xS 1 f
-10 s
-3 f
-555 630(5.)N
-655(Performance)X
-1 f
-755 753(In)N
-845(this)X
-983(section,)X
-1253(we)X
-1370(present)X
-1625(the)X
-1746(results)X
-1978(of)X
-2067(two)X
-2209(very)X
-2374(different)X
-2673(benchmarks.)X
-3103(The)X
-3250(\256rst)X
-3396(is)X
-3471(an)X
-3569(online)X
-3791(transaction)X
-4165(pro-)X
-555 843(cessing)N
-824(benchmark,)X
-1234(similar)X
-1489(to)X
-1584(the)X
-1715(standard)X
-2020(TPCB,)X
-2272(but)X
-2407(has)X
-2547(been)X
-2732(adapted)X
-3015(to)X
-3110(run)X
-3250(in)X
-3345(a)X
-3414(desktop)X
-3696(environment.)X
-4174(The)X
-555 933(second)N
-798(emulates)X
-1103(a)X
-1159(computer-aided)X
-1683(design)X
-1912(environment)X
-2337(and)X
-2473(provides)X
-2769(more)X
-2954(complex)X
-3250(query)X
-3453(processing.)X
-3 f
-555 1119(5.1.)N
-715(Transaction)X
-1148(Processing)X
-1533(Benchmark)X
-1 f
-755 1242(For)N
-887(this)X
-1023(section,)X
-1291(all)X
-1392(performance)X
-1820(numbers)X
-2117(shown)X
-2346(except)X
-2576(for)X
-2690(the)X
-2808(commercial)X
-3207(database)X
-3504(system)X
-3746(were)X
-3923(obtained)X
-4219(on)X
-555 1332(a)N
-614(DECstation)X
-1009(5000/200)X
-1333(with)X
-1497(32MBytes)X
-1852(of)X
-1941(memory)X
-2230(running)X
-2501(Ultrix)X
-2714(V4.0,)X
-2914(accessing)X
-3244(a)X
-3302(DEC)X
-3484(RZ57)X
-3688(1GByte)X
-3959(disk)X
-4114(drive.)X
-555 1422(The)N
-720(commercial)X
-1139(relational)X
-1482(database)X
-1799(system)X
-2061(tests)X
-2242(were)X
-2438(run)X
-2584(on)X
-2703(a)X
-2778(comparable)X
-3192(machine,)X
-3523(a)X
-3598(Sparcstation)X
-4033(1+)X
-4157(with)X
-555 1512(32MBytes)N
-915(memory)X
-1209(and)X
-1352(a)X
-1415(1GByte)X
-1691(external)X
-1976(disk)X
-2135(drive.)X
-2366(The)X
-2517(database,)X
-2840(binaries)X
-3120(and)X
-3262(log)X
-3390(resided)X
-3648(on)X
-3754(the)X
-3878(same)X
-4069(device.)X
-555 1602(Reported)N
-869(times)X
-1062(are)X
-1181(the)X
-1299(means)X
-1524(of)X
-1611(\256ve)X
-1751(tests)X
-1913(and)X
-2049(have)X
-2221(standard)X
-2513(deviations)X
-2862(within)X
-3086(two)X
-3226(percent)X
-3483(of)X
-3570(the)X
-3688(mean.)X
-755 1725(The)N
-905(test)X
-1041(database)X
-1343(was)X
-1493(con\256gured)X
-1861(according)X
-2203(to)X
-2290(the)X
-2413(TPCB)X
-2637(scaling)X
-2889(rules)X
-3070(for)X
-3189(a)X
-3250(10)X
-3355(transaction)X
-3732(per)X
-3860(second)X
-4108(\(TPS\))X
-555 1815(system)N
-817(with)X
-999(1,000,000)X
-1359(account)X
-1649(records,)X
-1946(100)X
-2106(teller)X
-2311(records,)X
-2607(and)X
-2762(10)X
-2881(branch)X
-3139(records.)X
-3455(Where)X
-3709(TPS)X
-3885(numbers)X
-4200(are)X
-555 1905(reported,)N
-865(we)X
-981(are)X
-1102(running)X
-1373(a)X
-1431(modi\256ed)X
-1737(version)X
-1995(of)X
-2084(the)X
-2203(industry)X
-2486(standard)X
-2779(transaction)X
-3152(processing)X
-3516(benchmark,)X
-3914(TPCB.)X
-4174(The)X
-555 1995(TPCB)N
-780(benchmark)X
-1163(simulates)X
-1491(a)X
-1553(withdrawal)X
-1940(performed)X
-2301(by)X
-2407(a)X
-2469(hypothetical)X
-2891(teller)X
-3082(at)X
-3166(a)X
-3228(hypothetical)X
-3650(bank.)X
-3872(The)X
-4022(database)X
-555 2085(consists)N
-831(of)X
-921(relations)X
-1220(\(\256les\))X
-1430(for)X
-1547(accounts,)X
-1871(branches,)X
-2200(tellers,)X
-2439(and)X
-2578(history.)X
-2863(For)X
-2997(each)X
-3168(transaction,)X
-3563(the)X
-3684(account,)X
-3976(teller,)X
-4183(and)X
-555 2175(branch)N
-795(balances)X
-1093(must)X
-1269(be)X
-1366(updated)X
-1641(to)X
-1724(re\257ect)X
-1946(the)X
-2065(withdrawal)X
-2447(and)X
-2584(a)X
-2640(history)X
-2882(record)X
-3108(is)X
-3181(written)X
-3428(which)X
-3644(contains)X
-3931(the)X
-4049(account)X
-555 2265(id,)N
-657(branch)X
-896(id,)X
-998(teller)X
-1183(id,)X
-1285(and)X
-1421(the)X
-1539(amount)X
-1799(of)X
-1886(the)X
-2004(withdrawal)X
-2385([TPCB90].)X
-755 2388(Our)N
-914(implementation)X
-1450(of)X
-1551(the)X
-1683(benchmark)X
-2074(differs)X
-2317(from)X
-2506(the)X
-2637(speci\256cation)X
-3075(in)X
-3170(several)X
-3431(aspects.)X
-3736(The)X
-3894(speci\256cation)X
-555 2478(requires)N
-840(that)X
-985(the)X
-1108(database)X
-1410(keep)X
-1587(redundant)X
-1933(logs)X
-2091(on)X
-2196(different)X
-2498(devices,)X
-2784(but)X
-2911(we)X
-3030(use)X
-3162(a)X
-3223(single)X
-3439(log.)X
-3606(Furthermore,)X
-4052(all)X
-4157(tests)X
-555 2568(were)N
-734(run)X
-863(on)X
-965(a)X
-1023(single,)X
-1256(centralized)X
-1631(system)X
-1875(so)X
-1968(there)X
-2151(is)X
-2226(no)X
-2328(notion)X
-2553(of)X
-2641(remote)X
-2885(accesses.)X
-3219(Finally,)X
-3486(we)X
-3601(calculated)X
-3948(throughput)X
-555 2658(by)N
-662(dividing)X
-955(the)X
-1080(total)X
-1249(elapsed)X
-1517(time)X
-1686(by)X
-1793(the)X
-1918(number)X
-2190(of)X
-2284(transactions)X
-2694(processed)X
-3038(rather)X
-3253(than)X
-3418(by)X
-3525(computing)X
-3894(the)X
-4018(response)X
-555 2748(time)N
-717(for)X
-831(each)X
-999(transaction.)X
-755 2871(The)N
-912(performance)X
-1351(comparisons)X
-1788(focus)X
-1993(on)X
-2104(traditional)X
-2464(Unix)X
-2655(techniques)X
-3029(\(unprotected,)X
-3486(using)X
-3 f
-3690(\257ock)X
-1 f
-3854(\(2\))X
-3979(and)X
-4126(using)X
-3 f
-555 2961(fsync)N
-1 f
-733(\(2\)\))X
-884(and)X
-1030(a)X
-1096(commercial)X
-1504(relational)X
-1836(database)X
-2142(system.)X
-2433(Well-behaved)X
-2913(applications)X
-3329(using)X
-3 f
-3531(\257ock)X
-1 f
-3695(\(2\))X
-3818(are)X
-3946(guaranteed)X
-555 3051(that)N
-704(concurrent)X
-1077(processes')X
-1441(updates)X
-1715(do)X
-1824(not)X
-1955(interact)X
-2225(with)X
-2396(one)X
-2541(another,)X
-2831(but)X
-2962(no)X
-3070(guarantees)X
-3442(about)X
-3648(atomicity)X
-3978(are)X
-4105(made.)X
-555 3141(That)N
-731(is,)X
-833(if)X
-911(the)X
-1038(system)X
-1289(crashes)X
-1555(in)X
-1646(mid-transaction,)X
-2198(only)X
-2369(parts)X
-2554(of)X
-2649(that)X
-2797(transaction)X
-3177(will)X
-3329(be)X
-3433(re\257ected)X
-3738(in)X
-3828(the)X
-3954 0.3125(after-crash)AX
-555 3231(state)N
-725(of)X
-815(the)X
-936(database.)X
-1276(The)X
-1424(use)X
-1554(of)X
-3 f
-1643(fsync)X
-1 f
-1821(\(2\))X
-1937(at)X
-2017(transaction)X
-2391(commit)X
-2657(time)X
-2821(provides)X
-3119(guarantees)X
-3485(of)X
-3574(durability)X
-3907(after)X
-4077(system)X
-555 3321(failure.)N
-825(However,)X
-1160(there)X
-1341(is)X
-1414(no)X
-1514(mechanism)X
-1899(to)X
-1981(perform)X
-2260(transaction)X
-2632(abort.)X
-3 f
-555 3507(5.1.1.)N
-775(Single-User)X
-1191(Tests)X
-1 f
-755 3630(These)N
-978(tests)X
-1151(compare)X
-1459(LIBTP)X
-1712(in)X
-1804(a)X
-1870(variety)X
-2123(of)X
-2220(con\256gurations)X
-2708(to)X
-2800(traditional)X
-3159(UNIX)X
-3390(solutions)X
-3708(and)X
-3854(a)X
-3920(commercial)X
-555 3720(relational)N
-884(database)X
-1187(system)X
-1435(\(RDBMS\).)X
-1814(To)X
-1929(demonstrate)X
-2347(the)X
-2471(server)X
-2694(architecture)X
-3100(we)X
-3220(built)X
-3392(a)X
-3454(front)X
-3636(end)X
-3777(test)X
-3913(process)X
-4179(that)X
-555 3810(uses)N
-732(TCL)X
-922([OUST90])X
-1304(to)X
-1405(parse)X
-1614(database)X
-1930(access)X
-2175(commands)X
-2561(and)X
-2716(call)X
-2870(the)X
-3006(database)X
-3321(access)X
-3565(routines.)X
-3901(In)X
-4006(one)X
-4160(case)X
-555 3900(\(SERVER\),)N
-956(frontend)X
-1249(and)X
-1386(backend)X
-1675(processes)X
-2004(were)X
-2181(created)X
-2434(which)X
-2650(communicated)X
-3142(via)X
-3260(an)X
-3356(IP)X
-3447(socket.)X
-3712(In)X
-3799(the)X
-3917(second)X
-4160(case)X
-555 3990(\(TCL\),)N
-802(a)X
-860(single)X
-1073(process)X
-1336(read)X
-1497(queries)X
-1751(from)X
-1929(standard)X
-2223(input,)X
-2429(parsed)X
-2660(them,)X
-2861(and)X
-2998(called)X
-3211(the)X
-3330(database)X
-3628(access)X
-3855(routines.)X
-4174(The)X
-555 4080(performance)N
-987(difference)X
-1338(between)X
-1630(the)X
-1752(TCL)X
-1927(and)X
-2067(SERVER)X
-2397(tests)X
-2563(quanti\256es)X
-2898(the)X
-3020(communication)X
-3542(overhead)X
-3861(of)X
-3952(the)X
-4074(socket.)X
-555 4170(The)N
-732(RDBMS)X
-1063(implementation)X
-1617(used)X
-1816(embedded)X
-2198(SQL)X
-2401(in)X
-2515(C)X
-2620(with)X
-2814(stored)X
-3062(database)X
-3391(procedures.)X
-3835(Therefore,)X
-4224(its)X
-555 4260(con\256guration)N
-1003(is)X
-1076(a)X
-1132(hybrid)X
-1361(of)X
-1448(the)X
-1566(single)X
-1777(process)X
-2038(architecture)X
-2438(and)X
-2574(the)X
-2692(server)X
-2909(architecture.)X
-3349(The)X
-3494(graph)X
-3697(in)X
-3779(\256gure)X
-3986(six)X
-4099(shows)X
-555 4350(a)N
-611(comparison)X
-1005(of)X
-1092(the)X
-1210(following)X
-1541(six)X
-1654(con\256gurations:)X
-1126 4506(LIBTP)N
-1552(Uses)X
-1728(the)X
-1846(LIBTP)X
-2088(library)X
-2322(in)X
-2404(a)X
-2460(single)X
-2671(application.)X
-1126 4596(TCL)N
-1552(Uses)X
-1728(the)X
-1846(LIBTP)X
-2088(library)X
-2322(in)X
-2404(a)X
-2460(single)X
-2671(application,)X
-3067(requires)X
-3346(query)X
-3549(parsing.)X
-1126 4686(SERVER)N
-1552(Uses)X
-1728(the)X
-1846(LIBTP)X
-2088(library)X
-2322(in)X
-2404(a)X
-2460(server)X
-2677(con\256guration,)X
-3144(requires)X
-3423(query)X
-3626(parsing.)X
-1126 4776(NOTP)N
-1552(Uses)X
-1728(no)X
-1828(locking,)X
-2108(logging,)X
-2392(or)X
-2479(concurrency)X
-2897(control.)X
-1126 4866(FLOCK)N
-1552(Uses)X
-3 f
-1728(\257ock)X
-1 f
-1892(\(2\))X
-2006(for)X
-2120(concurrency)X
-2538(control)X
-2785(and)X
-2921(nothing)X
-3185(for)X
-3299(durability.)X
-1126 4956(FSYNC)N
-1552(Uses)X
-3 f
-1728(fsync)X
-1 f
-1906(\(2\))X
-2020(for)X
-2134(durability)X
-2465(and)X
-2601(nothing)X
-2865(for)X
-2979(concurrency)X
-3397(control.)X
-1126 5046(RDBMS)N
-1552(Uses)X
-1728(a)X
-1784(commercial)X
-2183(relational)X
-2506(database)X
-2803(system.)X
-755 5235(The)N
-902(results)X
-1133(show)X
-1324(that)X
-1466(LIBTP,)X
-1730(both)X
-1894(in)X
-1978(the)X
-2098(procedural)X
-2464(and)X
-2602(parsed)X
-2834(environments,)X
-3312(is)X
-3387(competitive)X
-3787(with)X
-3951(a)X
-4009(commer-)X
-555 5325(cial)N
-692(system)X
-935(\(comparing)X
-1326(LIBTP,)X
-1589(TCL,)X
-1781(and)X
-1917(RDBMS\).)X
-2263(Compared)X
-2617(to)X
-2699(existing)X
-2972(UNIX)X
-3193(solutions,)X
-3521(LIBTP)X
-3763(is)X
-3836(approximately)X
-555 5415(15%)N
-738(slower)X
-988(than)X
-1162(using)X
-3 f
-1371(\257ock)X
-1 f
-1535(\(2\))X
-1665(or)X
-1768(no)X
-1884(protection)X
-2245(but)X
-2383(over)X
-2562(80%)X
-2745(better)X
-2964(than)X
-3137(using)X
-3 f
-3345(fsync)X
-1 f
-3523(\(2\))X
-3652(\(comparing)X
-4057(LIBTP,)X
-555 5505(FLOCK,)N
-857(NOTP,)X
-1106(and)X
-1242(FSYNC\).)X
-
-12 p
-%%Page: 12 12
-10 s 10 xH 0 xS 1 f
-3 f
-8 s
-3500 2184(RDBMS)N
-1 Dt
-3553 2085 MXY
- 3553 2085 lineto
- 3676 2085 lineto
- 3676 1351 lineto
- 3553 1351 lineto
- 3553 2085 lineto
-closepath 16 3553 1351 3676 2085 Dp
-2018 2184(SERVER)N
-1720 1168 MXY
-0 917 Dl
-122 0 Dl
-0 -917 Dl
--122 0 Dl
-1715 2184(TCL)N
-2087 1534 MXY
- 2087 1534 lineto
- 2209 1534 lineto
- 2209 2085 lineto
- 2087 2085 lineto
- 2087 1534 lineto
-closepath 12 2087 1534 2209 2085 Dp
-3187 MX
- 3187 1534 lineto
- 3309 1534 lineto
- 3309 2085 lineto
- 3187 2085 lineto
- 3187 1534 lineto
-closepath 19 3187 1534 3309 2085 Dp
-3142 2184(FSYNC)N
-2425(NOTP)X
-2453 955 MXY
- 2453 955 lineto
- 2576 955 lineto
- 2576 2085 lineto
- 2453 2085 lineto
- 2453 955 lineto
-closepath 21 2453 955 2576 2085 Dp
-2820 1000 MXY
- 2820 1000 lineto
- 2942 1000 lineto
- 2942 2085 lineto
- 2820 2085 lineto
- 2820 1000 lineto
-closepath 14 2820 1000 2942 2085 Dp
-5 Dt
-1231 2085 MXY
-2567 0 Dl
-4 Ds
-1 Dt
-1231 1840 MXY
-2567 0 Dl
-1231 1596 MXY
-2567 0 Dl
-1231 1351 MXY
-2567 0 Dl
-1231 1108 MXY
-2567 0 Dl
-1231 863 MXY
-2567 0 Dl
-11 s
-1087 1877(2)N
-1087 1633(4)N
-1087 1388(6)N
-1087 1145(8)N
-1065 900(10)N
-1028 763(TPS)N
--1 Ds
-1353 2085 MXY
- 1353 2085 lineto
- 1353 1151 lineto
- 1476 1151 lineto
- 1476 2085 lineto
- 1353 2085 lineto
-closepath 3 1353 1151 1476 2085 Dp
-8 s
-1318 2184(LIBTP)N
-2767(FLOCK)X
-3 Dt
--1 Ds
-10 s
-1597 2399(Figure)N
-1844(6:)X
-1931(Single-User)X
-2347(Performance)X
-2814(Comparison.)X
-1 f
-10 f
-555 2579(h)N
-579(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)X
-3 f
-555 2855(5.1.2.)N
-775(Multi-User)X
-1174(Tests)X
-1 f
-755 2978(While)N
-975(the)X
-1097(single-user)X
-1473(tests)X
-1639(form)X
-1819(a)X
-1878(basis)X
-2061(for)X
-2178(comparing)X
-2544(LIBTP)X
-2789(to)X
-2874(other)X
-3062(systems,)X
-3358(our)X
-3488(goal)X
-3649(in)X
-3734(multi-user)X
-4086(testing)X
-555 3068(was)N
-714(to)X
-810(analyze)X
-1089(its)X
-1197(scalability.)X
-1579(To)X
-1701(this)X
-1849(end,)X
-2018(we)X
-2145(have)X
-2330(run)X
-2470(the)X
-2601(benchmark)X
-2991(in)X
-3086(three)X
-3280(modes,)X
-3542(the)X
-3673(normal)X
-3933(disk)X
-4099(bound)X
-555 3158(con\256guration)N
-1010(\(\256gure)X
-1252(seven\),)X
-1510(a)X
-1573(CPU)X
-1755(bound)X
-1982(con\256guration)X
-2436(\(\256gure)X
-2677(eight,)X
-2884(READ-ONLY\),)X
-3426(and)X
-3569(lock)X
-3734(contention)X
-4099(bound)X
-555 3248(\(\256gure)N
-796(eight,)X
-1003(NO_FSYNC\).)X
-1510(Since)X
-1715(the)X
-1840(normal)X
-2094(con\256guration)X
-2548(is)X
-2628(completely)X
-3011(disk)X
-3171(bound)X
-3398(\(each)X
-3600(transaction)X
-3978(requires)X
-4263(a)X
-555 3354(random)N
-823(read,)X
-1005(a)X
-1064(random)X
-1332(write,)X
-1540(and)X
-1679(a)X
-1738(sequential)X
-2086(write)X
-7 s
-2251 3322(4)N
-10 s
-3354(\))Y
-2329(we)X
-2446(expect)X
-2679(to)X
-2764(see)X
-2890(little)X
-3059(performance)X
-3489(improvement)X
-3939(as)X
-4028(the)X
-4148(mul-)X
-555 3444(tiprogramming)N
-1064(level)X
-1249(increases.)X
-1613(In)X
-1709(fact,)X
-1879(\256gure)X
-2095(seven)X
-2307(reveals)X
-2564(that)X
-2713(we)X
-2836(are)X
-2964(able)X
-3127(to)X
-3218(overlap)X
-3487(CPU)X
-3670(and)X
-3814(disk)X
-3975(utilization)X
-555 3534(slightly)N
-825(producing)X
-1181(approximately)X
-1674(a)X
-1740(10%)X
-1917(performance)X
-2354(improvement)X
-2811(with)X
-2983(two)X
-3133(processes.)X
-3511(After)X
-3711(that)X
-3861(point,)X
-4075(perfor-)X
-555 3624(mance)N
-785(drops)X
-983(off,)X
-1117(and)X
-1253(at)X
-1331(a)X
-1387(multi-programming)X
-2038(level)X
-2214(of)X
-2301(4,)X
-2381(we)X
-2495(are)X
-2614(performing)X
-2995(worse)X
-3207(than)X
-3365(in)X
-3447(the)X
-3565(single)X
-3776(process)X
-4037(case.)X
-755 3747(Similar)N
-1021(behavior)X
-1333(was)X
-1489(reported)X
-1787(on)X
-1897(the)X
-2025(commercial)X
-2434(relational)X
-2767(database)X
-3074(system)X
-3326(using)X
-3529(the)X
-3657(same)X
-3852(con\256guration.)X
-555 3837(The)N
-707(important)X
-1045(conclusion)X
-1419(to)X
-1508(draw)X
-1696(from)X
-1879(this)X
-2021(is)X
-2101(that)X
-2248(you)X
-2395(cannot)X
-2636(attain)X
-2841(good)X
-3028(multi-user)X
-3384(scaling)X
-3638(on)X
-3745(a)X
-3808(badly)X
-4013(balanced)X
-555 3927(system.)N
-839(If)X
-915(multi-user)X
-1266(performance)X
-1695(on)X
-1797(applications)X
-2205(of)X
-2293(this)X
-2429(sort)X
-2570(is)X
-2644(important,)X
-2996(one)X
-3133(must)X
-3309(have)X
-3482(a)X
-3539(separate)X
-3824(logging)X
-4089(device)X
-555 4017(and)N
-697(horizontally)X
-1110(partition)X
-1407(the)X
-1531(database)X
-1834(to)X
-1921(allow)X
-2124(a)X
-2185(suf\256ciently)X
-2570(high)X
-2737(degree)X
-2977(of)X
-3069(multiprogramming)X
-3698(that)X
-3843(group)X
-4055(commit)X
-555 4107(can)N
-687(amortize)X
-988(the)X
-1106(cost)X
-1255(of)X
-1342(log)X
-1464(\257ushing.)X
-755 4230(By)N
-871(using)X
-1067(a)X
-1126(very)X
-1292(small)X
-1488(database)X
-1788(\(one)X
-1954(that)X
-2097(can)X
-2232(be)X
-2331(entirely)X
-2599(cached)X
-2846(in)X
-2930(main)X
-3112(memory\))X
-3428(and)X
-3566(read-only)X
-3896(transactions,)X
-555 4320(we)N
-670(generated)X
-1004(a)X
-1061(CPU)X
-1236(bound)X
-1456(environment.)X
-1921(By)X
-2034(using)X
-2227(the)X
-2345(same)X
-2530(small)X
-2723(database,)X
-3040(the)X
-3158(complete)X
-3472(TPCB)X
-3691(transaction,)X
-4083(and)X
-4219(no)X
-3 f
-555 4410(fsync)N
-1 f
-733(\(2\))X
-862(on)X
-977(the)X
-1110(log)X
-1247(at)X
-1340(commit,)X
-1639(we)X
-1768(created)X
-2036(a)X
-2107(lock)X
-2280(contention)X
-2652(bound)X
-2886(environment.)X
-3365(The)X
-3524(small)X
-3731(database)X
-4042(used)X
-4223(an)X
-555 4500(account)N
-828(\256le)X
-953(containing)X
-1314(only)X
-1479(1000)X
-1662(records)X
-1922(rather)X
-2133(than)X
-2294(the)X
-2415(full)X
-2549(1,000,000)X
-2891(records)X
-3150(and)X
-3288(ran)X
-3413(enough)X
-3671(transactions)X
-4076(to)X
-4160(read)X
-555 4590(the)N
-677(entire)X
-883(database)X
-1183(into)X
-1330(the)X
-1451(buffer)X
-1671(pool)X
-1836(\(2000\))X
-2073(before)X
-2302(beginning)X
-2645(measurements.)X
-3147(The)X
-3295(read-only)X
-3626(transaction)X
-4001(consisted)X
-555 4680(of)N
-646(three)X
-831(database)X
-1132(reads)X
-1326(\(from)X
-1533(the)X
-1655(1000)X
-1839(record)X
-2069(account)X
-2343(\256le,)X
-2489(the)X
-2611(100)X
-2754(record)X
-2983(teller)X
-3171(\256le,)X
-3316(and)X
-3455(the)X
-3576(10)X
-3679(record)X
-3908(branch)X
-4150(\256le\).)X
-555 4770(Since)N
-759(no)X
-865(data)X
-1025(were)X
-1208(modi\256ed)X
-1518(and)X
-1660(no)X
-1766(history)X
-2014(records)X
-2277(were)X
-2460(written,)X
-2733(no)X
-2839(log)X
-2966(records)X
-3228(were)X
-3410(written.)X
-3702(For)X
-3838(the)X
-3961(contention)X
-555 4860(bound)N
-780(con\256guration,)X
-1252(we)X
-1371(used)X
-1543(the)X
-1666(normal)X
-1918(TPCB)X
-2142(transaction)X
-2519(\(against)X
-2798(the)X
-2920(small)X
-3117(database\))X
-3445(and)X
-3585(disabled)X
-3876(the)X
-3998(log)X
-4124(\257ush.)X
-555 4950(Figure)N
-784(eight)X
-964(shows)X
-1184(both)X
-1346(of)X
-1433(these)X
-1618(results.)X
-755 5073(The)N
-902(read-only)X
-1231(test)X
-1363(indicates)X
-1669(that)X
-1810(we)X
-1925(barely)X
-2147(scale)X
-2329(at)X
-2408(all)X
-2509(in)X
-2592(the)X
-2711(CPU)X
-2887(bound)X
-3108(case.)X
-3308(The)X
-3454(explanation)X
-3849(for)X
-3964(that)X
-4105(is)X
-4179(that)X
-555 5163(even)N
-735(with)X
-905(a)X
-969(single)X
-1188(process,)X
-1477(we)X
-1599(are)X
-1726(able)X
-1888(to)X
-1978(drive)X
-2171(the)X
-2297(CPU)X
-2480(utilization)X
-2832(to)X
-2922(96%.)X
-3137(As)X
-3254(a)X
-3317(result,)X
-3542(that)X
-3689(gives)X
-3885(us)X
-3983(very)X
-4153(little)X
-555 5253(room)N
-753(for)X
-876(improvement,)X
-1352(and)X
-1497(it)X
-1570(takes)X
-1764(a)X
-1829(multiprogramming)X
-2462(level)X
-2647(of)X
-2743(four)X
-2906(to)X
-2997(approach)X
-3321(100%)X
-3537(CPU)X
-3721(saturation.)X
-4106(In)X
-4201(the)X
-555 5343(case)N
-718(where)X
-939(we)X
-1057(do)X
-1161(perform)X
-1444(writes,)X
-1684(we)X
-1802(are)X
-1925(interested)X
-2261(in)X
-2347(detecting)X
-2665(when)X
-2863(lock)X
-3025(contention)X
-3387(becomes)X
-3691(a)X
-3750(dominant)X
-4075(perfor-)X
-555 5433(mance)N
-787(factor.)X
-1037(Contention)X
-1414(will)X
-1560(cause)X
-1761(two)X
-1903(phenomena;)X
-2317(we)X
-2433(will)X
-2579(see)X
-2704(transactions)X
-3109(queueing)X
-3425(behind)X
-3665(frequently)X
-4017(accessed)X
-555 5523(data,)N
-731(and)X
-869(we)X
-985(will)X
-1131(see)X
-1256(transaction)X
-1629(abort)X
-1815(rates)X
-1988(increasing)X
-2339(due)X
-2476(to)X
-2559(deadlock.)X
-2910(Given)X
-3127(that)X
-3268(the)X
-3387(branch)X
-3627(\256le)X
-3750(contains)X
-4038(only)X
-4201(ten)X
-8 s
-10 f
-555 5595(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)N
-5 s
-1 f
-727 5673(4)N
-8 s
-763 5698(Although)N
-1021(the)X
-1115(log)X
-1213(is)X
-1272(written)X
-1469(sequentially,)X
-1810(we)X
-1900(do)X
-1980(not)X
-2078(get)X
-2172(the)X
-2266(bene\256t)X
-2456(of)X
-2525(sequentiality)X
-2868(since)X
-3015(the)X
-3109(log)X
-3207(and)X
-3315(database)X
-3550(reside)X
-3718(on)X
-3798(the)X
-3892(same)X
-4039(disk.)X
-
-13 p
-%%Page: 13 13
-8 s 8 xH 0 xS 1 f
-10 s
-3 f
-1 f
-3187 2051 MXY
-0 18 Dl
-0 -9 Dl
-9 0 Dl
--18 0 Dl
-3286 2028 MXY
-0 17 Dl
-0 -9 Dl
-9 0 Dl
--18 0 Dl
-3384 1926 MXY
-0 18 Dl
-0 -9 Dl
-9 0 Dl
--18 0 Dl
-3483 1910 MXY
-0 18 Dl
-0 -9 Dl
-9 0 Dl
--18 0 Dl
-3581 1910 MXY
-0 18 Dl
-0 -9 Dl
-9 0 Dl
--18 0 Dl
-3680 1832 MXY
-0 18 Dl
-0 -9 Dl
-9 0 Dl
--18 0 Dl
-3778 1909 MXY
-0 18 Dl
-0 -9 Dl
-9 0 Dl
--18 0 Dl
-3877 1883 MXY
-0 18 Dl
-0 -9 Dl
-9 0 Dl
--18 0 Dl
-3975 1679 MXY
-0 17 Dl
-0 -8 Dl
-9 0 Dl
--18 0 Dl
-4074 1487 MXY
-0 17 Dl
-0 -8 Dl
-9 0 Dl
--18 0 Dl
-5 Dt
-3187 2060 MXY
-99 -24 Dl
-98 -101 Dl
-99 -16 Dl
-98 0 Dl
-99 -78 Dl
-98 77 Dl
-99 -26 Dl
-98 -204 Dl
-99 -192 Dl
-3 f
-6 s
-4088 1516(SMALL)N
-3 Dt
-3187 2051 MXY
-0 18 Dl
-0 -9 Dl
-9 0 Dl
--18 0 Dl
-3286 2051 MXY
-0 18 Dl
-0 -9 Dl
-9 0 Dl
--18 0 Dl
-3384 2041 MXY
-0 18 Dl
-0 -9 Dl
-9 0 Dl
--18 0 Dl
-3483 1990 MXY
-0 18 Dl
-0 -9 Dl
-9 0 Dl
--18 0 Dl
-3581 1843 MXY
-0 17 Dl
-0 -8 Dl
-9 0 Dl
--18 0 Dl
-3680 1578 MXY
-0 18 Dl
-0 -9 Dl
-9 0 Dl
--18 0 Dl
-3778 1496 MXY
-0 18 Dl
-0 -9 Dl
-9 0 Dl
--18 0 Dl
-3877 1430 MXY
-0 18 Dl
-0 -9 Dl
-9 0 Dl
--18 0 Dl
-3975 1269 MXY
-0 18 Dl
-0 -9 Dl
-9 0 Dl
--18 0 Dl
-4074 1070 MXY
-0 18 Dl
-0 -9 Dl
-9 0 Dl
--18 0 Dl
-1 Dt
-3187 2060 MXY
-99 0 Dl
-98 -10 Dl
-99 -51 Dl
-98 -147 Dl
-99 -265 Dl
-98 -82 Dl
-99 -66 Dl
-98 -161 Dl
-99 -199 Dl
-4088 1099(LARGE)N
-5 Dt
-3089 2060 MXY
-985 0 Dl
-3089 MX
-0 -1174 Dl
-4 Ds
-1 Dt
-3581 2060 MXY
-0 -1174 Dl
-4074 2060 MXY
-0 -1174 Dl
-3089 1825 MXY
-985 0 Dl
-9 s
-2993 1855(25)N
-3089 1591 MXY
-985 0 Dl
-2993 1621(50)N
-3089 1356 MXY
-985 0 Dl
-2993 1386(75)N
-3089 1121 MXY
-985 0 Dl
-2957 1151(100)N
-3089 886 MXY
-985 0 Dl
-2957 916(125)N
-3281 2199(Multiprogramming)N
-3071 2152(0)N
-3569(5)X
-4038(10)X
-2859 787(Aborts)N
-3089(per)X
-3211(500)X
-2901 847(transactions)N
--1 Ds
-3 Dt
-2037 1342 MXY
-0 18 Dl
-0 -9 Dl
-9 0 Dl
--18 0 Dl
-2125 1358 MXY
-0 18 Dl
-0 -9 Dl
-9 0 Dl
--18 0 Dl
-2213 1341 MXY
-0 18 Dl
-0 -9 Dl
-9 0 Dl
--18 0 Dl
-2301 1191 MXY
-0 18 Dl
-0 -9 Dl
-9 0 Dl
--18 0 Dl
-2388 1124 MXY
-0 18 Dl
-0 -9 Dl
-9 0 Dl
--17 0 Dl
-2476 1157 MXY
-0 18 Dl
-0 -9 Dl
-9 0 Dl
--18 0 Dl
-2564 1157 MXY
-0 18 Dl
-0 -9 Dl
-9 0 Dl
--18 0 Dl
-2652 1161 MXY
-0 18 Dl
-0 -9 Dl
-9 0 Dl
--18 0 Dl
-2740 1153 MXY
-0 18 Dl
-0 -9 Dl
-9 0 Dl
--18 0 Dl
-2828 1150 MXY
-0 18 Dl
-0 -9 Dl
-8 0 Dl
--17 0 Dl
-5 Dt
-2037 1351 MXY
-88 16 Dl
-88 -17 Dl
-88 -150 Dl
-87 -67 Dl
-88 33 Dl
-88 0 Dl
-88 4 Dl
-88 -8 Dl
-88 -3 Dl
-6 s
-2685 1234(READ-ONLY)N
-3 Dt
-2037 1464 MXY
-0 18 Dl
-0 -9 Dl
-9 0 Dl
--18 0 Dl
-2125 1640 MXY
-0 18 Dl
-0 -9 Dl
-9 0 Dl
--18 0 Dl
-2213 1854 MXY
-0 18 Dl
-0 -9 Dl
-9 0 Dl
--18 0 Dl
-2301 1872 MXY
-0 18 Dl
-0 -9 Dl
-9 0 Dl
--18 0 Dl
-2388 1871 MXY
-0 17 Dl
-0 -9 Dl
-9 0 Dl
--17 0 Dl
-2476 1933 MXY
-0 18 Dl
-0 -9 Dl
-9 0 Dl
--18 0 Dl
-2564 1914 MXY
-0 18 Dl
-0 -9 Dl
-9 0 Dl
--18 0 Dl
-2652 1903 MXY
-0 18 Dl
-0 -9 Dl
-9 0 Dl
--18 0 Dl
-2740 1980 MXY
-0 18 Dl
-0 -9 Dl
-9 0 Dl
--18 0 Dl
-2828 2004 MXY
-0 18 Dl
-0 -9 Dl
-8 0 Dl
--17 0 Dl
-1 Dt
-2037 1473 MXY
-88 176 Dl
-88 214 Dl
-88 18 Dl
-87 -2 Dl
-88 63 Dl
-88 -19 Dl
-88 -11 Dl
-88 77 Dl
-88 24 Dl
-2759 1997(NO-FSYNC)N
-5 Dt
-1949 2060 MXY
-879 0 Dl
-1949 MX
-0 -1174 Dl
-4 Ds
-1 Dt
-2388 2060 MXY
-0 -1174 Dl
-2828 2060 MXY
-0 -1174 Dl
-1949 1825 MXY
-879 0 Dl
-9 s
-1842 1855(40)N
-1949 1591 MXY
-879 0 Dl
-1842 1621(80)N
-1949 1356 MXY
-879 0 Dl
-1806 1386(120)N
-1949 1121 MXY
-879 0 Dl
-1806 1151(160)N
-1949 886 MXY
-879 0 Dl
-1806 916(200)N
-2088 2199(Multiprogramming)N
-1844 863(in)N
-1922(TPS)X
-1761 792(Throughput)N
-1931 2121(0)N
-2370 2133(5)N
-2792(10)X
-6 s
-1679 1833(LIBTP)N
--1 Ds
-3 Dt
-837 1019 MXY
-0 17 Dl
-0 -9 Dl
-9 0 Dl
--18 0 Dl
-929 878 MXY
-0 17 Dl
-0 -9 Dl
-9 0 Dl
--18 0 Dl
-1021 939 MXY
-0 18 Dl
-0 -9 Dl
-9 0 Dl
--18 0 Dl
-1113 1043 MXY
-0 18 Dl
-0 -9 Dl
-9 0 Dl
--18 0 Dl
-1205 1314 MXY
-0 18 Dl
-0 -9 Dl
-9 0 Dl
--18 0 Dl
-1297 1567 MXY
-0 18 Dl
-0 -9 Dl
-9 0 Dl
--18 0 Dl
-1389 1665 MXY
-0 18 Dl
-0 -9 Dl
-9 0 Dl
--18 0 Dl
-1481 1699 MXY
-0 18 Dl
-0 -9 Dl
-9 0 Dl
--18 0 Dl
-1573 1828 MXY
-0 18 Dl
-0 -9 Dl
-9 0 Dl
--18 0 Dl
-1665 1804 MXY
-0 18 Dl
-0 -9 Dl
-8 0 Dl
--17 0 Dl
-5 Dt
-837 1027 MXY
-92 -141 Dl
-92 62 Dl
-92 104 Dl
-92 271 Dl
-92 253 Dl
-92 98 Dl
-92 34 Dl
-92 129 Dl
-92 -24 Dl
-745 2060 MXY
-920 0 Dl
-745 MX
-0 -1174 Dl
-4 Ds
-1 Dt
-1205 2060 MXY
-0 -1174 Dl
-1665 2060 MXY
-0 -1174 Dl
-745 1766 MXY
-920 0 Dl
-9 s
-673 1796(3)N
-745 1473 MXY
-920 0 Dl
-673 1503(5)N
-745 1180 MXY
-920 0 Dl
-673 1210(8)N
-745 886 MXY
-920 0 Dl
-637 916(10)N
-905 2199(Multiprogramming)N
-622 851(in)N
-700(TPS)X
-575 792(Throughput)N
-733 2152(0)N
-1196(5)X
-1629(10)X
-3 Dt
--1 Ds
-8 s
-655 2441(Figure)N
-872(7:)X
-960(Multi-user)X
-1286(Performance.)X
-1 f
-655 2531(Since)N
-825(the)X
-931(con\256guration)X
-1300(is)X
-1371(completely)X
-655 2621(disk)N
-790(bound,)X
-994(we)X
-1096(see)X
-1204(only)X
-1345(a)X
-1400(small)X
-1566(im-)X
-655 2711(provement)N
-964(by)X
-1064(adding)X
-1274(a)X
-1337(second)X
-1549(pro-)X
-655 2801(cess.)N
-849(Adding)X
-1081(any)X
-1213(more)X
-1383(concurrent)X
-655 2891(processes)N
-935(causes)X
-1137(performance)X
-1493(degra-)X
-655 2981(dation.)N
-3 f
-1927 2441(Figure)N
-2149(8:)X
-2243(Multi-user)X
-2574(Performance)X
-1927 2531(on)N
-2021(a)X
-2079(small)X
-2251(database.)X
-1 f
-2551(With)X
-2704(one)X
-2821(pro-)X
-1927 2621(cess,)N
-2075(we)X
-2174(are)X
-2276(driving)X
-2486(the)X
-2589(CPU)X
-2739(at)X
-2810(96%)X
-1927 2711(utilization)N
-2215(leaving)X
-2430(little)X
-2575(room)X
-2737(for)X
-2838(im-)X
-1927 2801(provement)N
-2238(as)X
-2328(the)X
-2443(multiprogramming)X
-1927 2891(level)N
-2091(increases.)X
-2396(In)X
-2489(the)X
-2607(NO-FSYNC)X
-1927 2981(case,)N
-2076(lock)X
-2209(contention)X
-2502(degrades)X
-2751(perfor-)X
-1927 3071(mance)N
-2117(as)X
-2194(soon)X
-2339(as)X
-2416(a)X
-2468(second)X
-2669(process)X
-2884(is)X
-1927 3161(added.)N
-3 f
-3199 2441(Figure)N
-3405(9:)X
-3482(Abort)X
-3669(rates)X
-3827(on)X
-3919(the)X
-4028(TPCB)X
-3199 2531(Benchmark.)N
-1 f
-3589(The)X
-3726(abort)X
-3895(rate)X
-4028(climbs)X
-3199 2621(more)N
-3366(quickly)X
-3594(for)X
-3704(the)X
-3818(large)X
-3980(database)X
-3199 2711(test)N
-3324(since)X
-3491(processes)X
-3771(are)X
-3884(descheduled)X
-3199 2801(more)N
-3409(frequently,)X
-3766(allowing)X
-4068(more)X
-3199 2891(processes)N
-3459(to)X
-3525(vie)X
-3619(for)X
-3709(the)X
-3803(same)X
-3950(locks.)X
-10 s
-10 f
-555 3284(h)N
-579(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)X
-1 f
-555 3560(records,)N
-835(we)X
-952(expect)X
-1185(contention)X
-1546(to)X
-1631(become)X
-1904(a)X
-1963(factor)X
-2174(quickly)X
-2437(and)X
-2576(the)X
-2697(NO-FSYNC)X
-3120(line)X
-3263(in)X
-3348(\256gure)X
-3557(eight)X
-3739(demonstrates)X
-4184(this)X
-555 3650(dramatically.)N
-1022(Each)X
-1209(additional)X
-1555(process)X
-1822(causes)X
-2058(both)X
-2226(more)X
-2417(waiting)X
-2682(and)X
-2823(more)X
-3013(deadlocking.)X
-3470(Figure)X
-3704(nine)X
-3867(shows)X
-4092(that)X
-4237(in)X
-555 3740(the)N
-681(small)X
-882(database)X
-1187(case)X
-1353(\(SMALL\),)X
-1725(waiting)X
-1992(is)X
-2072(the)X
-2197(dominant)X
-2526(cause)X
-2732(of)X
-2826(declining)X
-3151(performance)X
-3585(\(the)X
-3737(number)X
-4009(of)X
-4103(aborts)X
-555 3830(increases)N
-878(less)X
-1026(steeply)X
-1281(than)X
-1447(the)X
-1573(performance)X
-2008(drops)X
-2214(off)X
-2336(in)X
-2426(\256gure)X
-2641(eight\),)X
-2876(while)X
-3082(in)X
-3172(the)X
-3298(large)X
-3487(database)X
-3792(case)X
-3958(\(LARGE\),)X
-555 3920(deadlocking)N
-967(contributes)X
-1343(more)X
-1528(to)X
-1610(the)X
-1728(declining)X
-2046(performance.)X
-755 4043(Deadlocks)N
-1116(are)X
-1237(more)X
-1424(likely)X
-1628(to)X
-1712(occur)X
-1913(in)X
-1997(the)X
-2116(LARGE)X
-2404(test)X
-2536(than)X
-2695(in)X
-2778(the)X
-2897(SMALL)X
-3189(test)X
-3321(because)X
-3597(there)X
-3779(are)X
-3899(more)X
-4085(oppor-)X
-555 4133(tunities)N
-814(to)X
-900(wait.)X
-1082(In)X
-1173(the)X
-1295(SMALL)X
-1590(case,)X
-1773(processes)X
-2105(never)X
-2307(do)X
-2410(I/O)X
-2540(and)X
-2679(are)X
-2801(less)X
-2944(likely)X
-3149(to)X
-3234(be)X
-3333(descheduled)X
-3753(during)X
-3985(a)X
-4044(transac-)X
-555 4223(tion.)N
-740(In)X
-828(the)X
-947(LARGE)X
-1235(case,)X
-1415(processes)X
-1744(will)X
-1889(frequently)X
-2240(be)X
-2337(descheduled)X
-2755(since)X
-2941(they)X
-3100(have)X
-3273(to)X
-3356(perform)X
-3636(I/O.)X
-3804(This)X
-3967(provides)X
-4263(a)X
-555 4313(window)N
-837(where)X
-1058(a)X
-1118(second)X
-1365(process)X
-1630(can)X
-1766(request)X
-2022(locks)X
-2215(on)X
-2318(already)X
-2578(locked)X
-2815(pages,)X
-3041(thus)X
-3197(increasing)X
-3550(the)X
-3671(likelihood)X
-4018(of)X
-4108(build-)X
-555 4403(ing)N
-677(up)X
-777(long)X
-939(chains)X
-1164(of)X
-1251(waiting)X
-1511(processes.)X
-1879(Eventually,)X
-2266(this)X
-2401(leads)X
-2586(to)X
-2668(deadlock.)X
-3 f
-555 4589(5.2.)N
-715(The)X
-868(OO1)X
-1052(Benchmark)X
-1 f
-755 4712(The)N
-903(TPCB)X
-1125(benchmark)X
-1505(described)X
-1836(in)X
-1921(the)X
-2042(previous)X
-2341(section)X
-2591(measures)X
-2913(performance)X
-3343(under)X
-3549(a)X
-3608(conventional)X
-4044(transac-)X
-555 4802(tion)N
-706(processing)X
-1076(workload.)X
-1446(Other)X
-1656(application)X
-2039(domains,)X
-2357(such)X
-2531(as)X
-2625(computer-aided)X
-3156(design,)X
-3412(have)X
-3591(substantially)X
-4022(different)X
-555 4892(access)N
-786(patterns.)X
-1105(In)X
-1197(order)X
-1392(to)X
-1479(measure)X
-1772(the)X
-1895(performance)X
-2327(of)X
-2418(LIBTP)X
-2664(under)X
-2871(workloads)X
-3229(of)X
-3320(this)X
-3459(type,)X
-3641(we)X
-3759(implemented)X
-4201(the)X
-555 4982(OO1)N
-731(benchmark)X
-1108(described)X
-1436(in)X
-1518([CATT91].)X
-755 5105(The)N
-908(database)X
-1213(models)X
-1472(a)X
-1535(set)X
-1651(of)X
-1745(electronics)X
-2120(components)X
-2534(with)X
-2703(connections)X
-3113(among)X
-3358(them.)X
-3585(One)X
-3746(table)X
-3929(stores)X
-4143(parts)X
-555 5195(and)N
-696(another)X
-962(stores)X
-1174(connections.)X
-1622(There)X
-1835(are)X
-1959(three)X
-2145(connections)X
-2552(originating)X
-2927(at)X
-3009(any)X
-3149(given)X
-3351(part.)X
-3540(Ninety)X
-3782(percent)X
-4043(of)X
-4134(these)X
-555 5285(connections)N
-960(are)X
-1081(to)X
-1165(nearby)X
-1406(parts)X
-1584(\(those)X
-1802(with)X
-1966(nearby)X
-2 f
-2207(ids)X
-1 f
-2300(\))X
-2348(to)X
-2431(model)X
-2652(the)X
-2771(spatial)X
-3001(locality)X
-3262(often)X
-3448(exhibited)X
-3767(in)X
-3850(CAD)X
-4040(applica-)X
-555 5375(tions.)N
-779(Ten)X
-933(percent)X
-1198(of)X
-1293(the)X
-1419(connections)X
-1830(are)X
-1957(randomly)X
-2292(distributed)X
-2662(among)X
-2908(all)X
-3016(other)X
-3209(parts)X
-3393(in)X
-3483(the)X
-3609(database.)X
-3954(Every)X
-4174(part)X
-555 5465(appears)N
-829(exactly)X
-1089(three)X
-1278(times)X
-1479(in)X
-1569(the)X
-2 f
-1695(from)X
-1 f
-1874(\256eld)X
-2043(of)X
-2137(a)X
-2200(connection)X
-2579(record,)X
-2832(and)X
-2975(zero)X
-3141(or)X
-3235(more)X
-3427(times)X
-3627(in)X
-3716(the)X
-2 f
-3841(to)X
-1 f
-3930(\256eld.)X
-4139(Parts)X
-555 5555(have)N
-2 f
-727(x)X
-1 f
-783(and)X
-2 f
-919(y)X
-1 f
-975(locations)X
-1284(set)X
-1393(randomly)X
-1720(in)X
-1802(an)X
-1898(appropriate)X
-2284(range.)X
-
-14 p
-%%Page: 14 14
-10 s 10 xH 0 xS 1 f
-3 f
-1 f
-755 630(The)N
-900(intent)X
-1102(of)X
-1189(OO1)X
-1365(is)X
-1438(to)X
-1520(measure)X
-1808(the)X
-1926(overall)X
-2169(cost)X
-2318(of)X
-2405(a)X
-2461(query)X
-2664(mix)X
-2808(characteristic)X
-3257(of)X
-3344(engineering)X
-3743(database)X
-4040(applica-)X
-555 720(tions.)N
-770(There)X
-978(are)X
-1097(three)X
-1278(tests:)X
-10 f
-635 843(g)N
-2 f
-755(Lookup)X
-1 f
-1022(generates)X
-1353(1,000)X
-1560(random)X
-1832(part)X
-2 f
-1984(ids)X
-1 f
-2077(,)X
-2124(fetches)X
-2378(the)X
-2502(corresponding)X
-2987(parts)X
-3169(from)X
-3351(the)X
-3475(database,)X
-3798(and)X
-3940(calls)X
-4113(a)X
-4175(null)X
-755 933(procedure)N
-1097(in)X
-1179(the)X
-1297(host)X
-1450(programming)X
-1906(language)X
-2216(with)X
-2378(the)X
-2496(parts')X
-2 f
-2699(x)X
-1 f
-2755(and)X
-2 f
-2891(y)X
-1 f
-2947(positions.)X
-10 f
-635 1056(g)N
-2 f
-755(Traverse)X
-1 f
-1067(retrieves)X
-1371(a)X
-1434(random)X
-1706(part)X
-1858(from)X
-2041(the)X
-2166(database)X
-2470(and)X
-2613(follows)X
-2880(connections)X
-3290(from)X
-3473(it)X
-3544(to)X
-3632(other)X
-3823(parts.)X
-4045(Each)X
-4232(of)X
-755 1146(those)N
-947(parts)X
-1126(is)X
-1202(retrieved,)X
-1531(and)X
-1670(all)X
-1773(connections)X
-2179(from)X
-2358(it)X
-2424(followed.)X
-2771(This)X
-2935(procedure)X
-3279(is)X
-3354(repeated)X
-3649(depth-\256rst)X
-4000(for)X
-4116(seven)X
-755 1236(hops)N
-930(from)X
-1110(the)X
-1232(original)X
-1505(part,)X
-1674(for)X
-1792(a)X
-1852(total)X
-2018(of)X
-2109(3280)X
-2293(parts.)X
-2513(Backward)X
-2862(traversal)X
-3162(also)X
-3314(exists,)X
-3539(and)X
-3678(follows)X
-3941(all)X
-4044(connec-)X
-755 1326(tions)N
-930(into)X
-1074(a)X
-1130(given)X
-1328(part)X
-1473(to)X
-1555(their)X
-1722(origin.)X
-10 f
-635 1449(g)N
-2 f
-755(Insert)X
-1 f
-962(adds)X
-1129(100)X
-1269(new)X
-1423(parts)X
-1599(and)X
-1735(their)X
-1902(connections.)X
-755 1572(The)N
-913(benchmark)X
-1303(is)X
-1389(single-user,)X
-1794(but)X
-1929(multi-user)X
-2291(access)X
-2530(controls)X
-2821(\(locking)X
-3120(and)X
-3268(transaction)X
-3652(protection\))X
-4036(must)X
-4223(be)X
-555 1662(enforced.)N
-898(It)X
-968(is)X
-1042(designed)X
-1348(to)X
-1431(be)X
-1528(run)X
-1656(on)X
-1757(a)X
-1814(database)X
-2112(with)X
-2275(20,000)X
-2516(parts,)X
-2713(and)X
-2850(on)X
-2951(one)X
-3087(with)X
-3249(200,000)X
-3529(parts.)X
-3745(Because)X
-4033(we)X
-4147(have)X
-555 1752(insuf\256cient)N
-935(disk)X
-1088(space)X
-1287(for)X
-1401(the)X
-1519(larger)X
-1727(database,)X
-2044(we)X
-2158(report)X
-2370(results)X
-2599(only)X
-2761(for)X
-2875(the)X
-2993(20,000)X
-3233(part)X
-3378(database.)X
-3 f
-555 1938(5.2.1.)N
-775(Implementation)X
-1 f
-755 2061(The)N
-920(LIBTP)X
-1182(implementation)X
-1724(of)X
-1831(OO1)X
-2027(uses)X
-2205(the)X
-2342(TCL)X
-2532([OUST90])X
-2914(interface)X
-3235(described)X
-3582(earlier.)X
-3867(The)X
-4031(backend)X
-555 2151(accepts)N
-813(commands)X
-1181(over)X
-1345(an)X
-1442(IP)X
-1534(socket)X
-1760(and)X
-1897(performs)X
-2208(the)X
-2327(requested)X
-2656(database)X
-2954(actions.)X
-3242(The)X
-3387(frontend)X
-3679(opens)X
-3886(and)X
-4022(executes)X
-555 2241(a)N
-618(TCL)X
-796(script.)X
-1041(This)X
-1210(script)X
-1415(contains)X
-1709(database)X
-2013(accesses)X
-2313(interleaved)X
-2697(with)X
-2866(ordinary)X
-3165(program)X
-3463(control)X
-3716(statements.)X
-4120(Data-)X
-555 2331(base)N
-718(commands)X
-1085(are)X
-1204(submitted)X
-1539(to)X
-1621(the)X
-1739(backend)X
-2027(and)X
-2163(results)X
-2392(are)X
-2511(bound)X
-2731(to)X
-2813(program)X
-3105(variables.)X
-755 2454(The)N
-903(parts)X
-1082(table)X
-1261(was)X
-1409(stored)X
-1628(as)X
-1718(a)X
-1776(B-tree)X
-1999(indexed)X
-2275(by)X
-2 f
-2377(id)X
-1 f
-2439(.)X
-2501(The)X
-2648(connection)X
-3022(table)X
-3200(was)X
-3347(stored)X
-3565(as)X
-3654(a)X
-3712(set)X
-3823(of)X
-3912(\256xed-length)X
-555 2544(records)N
-824(using)X
-1029(the)X
-1159(4.4BSD)X
-1446(recno)X
-1657(access)X
-1895(method.)X
-2207(In)X
-2306(addition,)X
-2620(two)X
-2771(B-tree)X
-3003(indices)X
-3261(were)X
-3449(maintained)X
-3836(on)X
-3947(connection)X
-555 2634(table)N
-732(entries.)X
-1007(One)X
-1162(index)X
-1360(mapped)X
-1634(the)X
-2 f
-1752(from)X
-1 f
-1923(\256eld)X
-2085(to)X
-2167(a)X
-2223(connection)X
-2595(record)X
-2821(number,)X
-3106(and)X
-3242(the)X
-3360(other)X
-3545(mapped)X
-3819(the)X
-2 f
-3937(to)X
-1 f
-4019(\256eld)X
-4181(to)X
-4263(a)X
-555 2724(connection)N
-932(record)X
-1163(number.)X
-1473(These)X
-1690(indices)X
-1941(support)X
-2205(fast)X
-2345(lookups)X
-2622(on)X
-2726(connections)X
-3133(in)X
-3219(both)X
-3385(directions.)X
-3765(For)X
-3900(the)X
-4022(traversal)X
-555 2814(tests,)N
-743(the)X
-867(frontend)X
-1165(does)X
-1338(an)X
-1439(index)X
-1642(lookup)X
-1889(to)X
-1976(discover)X
-2273(the)X
-2396(connected)X
-2747(part's)X
-2 f
-2955(id)X
-1 f
-3017(,)X
-3062(and)X
-3203(then)X
-3366(does)X
-3538(another)X
-3804(lookup)X
-4051(to)X
-4138(fetch)X
-555 2904(the)N
-673(part)X
-818(itself.)X
-3 f
-555 3090(5.2.2.)N
-775(Performance)X
-1242(Measurements)X
-1766(for)X
-1889(OO1)X
-1 f
-755 3213(We)N
-888(compare)X
-1186(LIBTP's)X
-1487(OO1)X
-1664(performance)X
-2092(to)X
-2174(that)X
-2314(reported)X
-2602(in)X
-2684([CATT91].)X
-3087(Those)X
-3303(results)X
-3532(were)X
-3709(collected)X
-4019(on)X
-4119(a)X
-4175(Sun)X
-555 3303(3/280)N
-759(\(25)X
-888(MHz)X
-1075(MC68020\))X
-1448(with)X
-1612(16)X
-1714(MBytes)X
-1989(of)X
-2078(memory)X
-2367(and)X
-2505(two)X
-2647(Hitachi)X
-2904(892MByte)X
-3267(disks)X
-3452(\(15)X
-3580(ms)X
-3694(average)X
-3966(seek)X
-4130(time\))X
-555 3393(behind)N
-793(an)X
-889(SMD-4)X
-1149(controller.)X
-1521(Frontends)X
-1861(ran)X
-1984(on)X
-2084(an)X
-2180(8MByte)X
-2462(Sun)X
-2606(3/260.)X
-755 3516(In)N
-844(order)X
-1036(to)X
-1120(measure)X
-1410(performance)X
-1839(on)X
-1941(a)X
-1999(machine)X
-2293(of)X
-2382(roughly)X
-2653(equivalent)X
-3009(processor)X
-3339(power,)X
-3582(we)X
-3698(ran)X
-3822(one)X
-3959(set)X
-4069(of)X
-4157(tests)X
-555 3606(on)N
-666(a)X
-733(standalone)X
-1107(MC68030-based)X
-1671(HP300)X
-1923(\(33MHz)X
-2225(MC68030\).)X
-2646(The)X
-2801(database)X
-3108(was)X
-3263(stored)X
-3489(on)X
-3599(a)X
-3665(300MByte)X
-4037(HP7959)X
-555 3696(SCSI)N
-744(disk)X
-898(\(17)X
-1026(ms)X
-1139(average)X
-1410(seek)X
-1573(time\).)X
-1802(Since)X
-2000(this)X
-2135(machine)X
-2427(is)X
-2500(not)X
-2622(connected)X
-2968(to)X
-3050(a)X
-3106(network,)X
-3409(we)X
-3523(ran)X
-3646(local)X
-3822(tests)X
-3984(where)X
-4201(the)X
-555 3786(frontend)N
-855(and)X
-999(backend)X
-1295(run)X
-1430(on)X
-1538(the)X
-1664(same)X
-1856(machine.)X
-2195(We)X
-2334(compare)X
-2638(these)X
-2830(measurements)X
-3316(with)X
-3485(Cattell's)X
-3783(local)X
-3966(Sun)X
-4117(3/280)X
-555 3876(numbers.)N
-755 3999(Because)N
-1051(the)X
-1177(benchmark)X
-1562(requires)X
-1849(remote)X
-2100(access,)X
-2354(we)X
-2476(ran)X
-2607(another)X
-2876(set)X
-2993(of)X
-3088(tests)X
-3258(on)X
-3365(a)X
-3428(DECstation)X
-3828(5000/200)X
-4157(with)X
-555 4089(32M)N
-732(of)X
-825(memory)X
-1118(running)X
-1393(Ultrix)X
-1610(V4.0)X
-1794(and)X
-1936(a)X
-1998(DEC)X
-2184(1GByte)X
-2459(RZ57)X
-2666(SCSI)X
-2859(disk.)X
-3057(We)X
-3194(compare)X
-3496(the)X
-3619(local)X
-3800(performance)X
-4232(of)X
-555 4179(OO1)N
-734(on)X
-837(the)X
-958(DECstation)X
-1354(to)X
-1439(its)X
-1536(remote)X
-1781(performance.)X
-2250(For)X
-2383(the)X
-2503(remote)X
-2748(case,)X
-2929(we)X
-3045(ran)X
-3170(the)X
-3290(frontend)X
-3584(on)X
-3686(a)X
-3744(DECstation)X
-4139(3100)X
-555 4269(with)N
-717(16)X
-817(MBytes)X
-1090(of)X
-1177(main)X
-1357(memory.)X
-755 4392(The)N
-900(databases)X
-1228(tested)X
-1435(in)X
-1517([CATT91])X
-1880(are)X
-10 f
-635 4515(g)N
-1 f
-755(INDEX,)X
-1045(a)X
-1101(highly-optimized)X
-1672(access)X
-1898(method)X
-2158(package)X
-2442(developed)X
-2792(at)X
-2870(Sun)X
-3014(Microsystems.)X
-10 f
-635 4638(g)N
-1 f
-755(OODBMS,)X
-1137(a)X
-1193(beta)X
-1347(release)X
-1591(of)X
-1678(a)X
-1734(commercial)X
-2133(object-oriented)X
-2639(database)X
-2936(management)X
-3366(system.)X
-10 f
-635 4761(g)N
-1 f
-755(RDBMS,)X
-1076(a)X
-1133(UNIX-based)X
-1565(commercial)X
-1965(relational)X
-2289(data)X
-2444(manager)X
-2742(at)X
-2821(production)X
-3189(release.)X
-3474(The)X
-3620(OO1)X
-3797(implementation)X
-755 4851(used)N
-922(embedded)X
-1272(SQL)X
-1443(in)X
-1525(C.)X
-1638(Stored)X
-1867(procedures)X
-2240(were)X
-2417(de\256ned)X
-2673(to)X
-2755(reduce)X
-2990(client-server)X
-3412(traf\256c.)X
-755 4974(Table)N
-974(two)X
-1130(shows)X
-1366(the)X
-1500(measurements)X
-1995(from)X
-2187([CATT91])X
-2566(and)X
-2718(LIBTP)X
-2976(for)X
-3106(a)X
-3178(local)X
-3370(test)X
-3517(on)X
-3632(the)X
-3765(MC680x0-based)X
-555 5064(hardware.)N
-915(All)X
-1037(caches)X
-1272(are)X
-1391(cleared)X
-1644(before)X
-1870(each)X
-2038(test.)X
-2209(All)X
-2331(times)X
-2524(are)X
-2643(in)X
-2725(seconds.)X
-755 5187(Table)N
-960(two)X
-1102(shows)X
-1324(that)X
-1466(LIBTP)X
-1710(outperforms)X
-2123(the)X
-2242(commercial)X
-2642(relational)X
-2966(system,)X
-3229(but)X
-3352(is)X
-3426(slower)X
-3661(than)X
-3820(OODBMS)X
-4183(and)X
-555 5277(INDEX.)N
-872(Since)X
-1077(the)X
-1202(caches)X
-1444(were)X
-1628(cleared)X
-1888(at)X
-1973(the)X
-2098(start)X
-2263(of)X
-2356(each)X
-2530(test,)X
-2687(disk)X
-2846(throughput)X
-3223(is)X
-3302(critical)X
-3551(in)X
-3639(this)X
-3780(test.)X
-3957(The)X
-4108(single)X
-555 5367(SCSI)N
-749(HP)X
-877(drive)X
-1068(used)X
-1241(by)X
-1347(LIBTP)X
-1595(is)X
-1674(approximately)X
-2163(13%)X
-2336(slower)X
-2576(than)X
-2739(the)X
-2862(disks)X
-3051(used)X
-3223(in)X
-3310([CATT91])X
-3678(which)X
-3899(accounts)X
-4205(for)X
-555 5457(part)N
-700(of)X
-787(the)X
-905(difference.)X
-755 5580(OODBMS)N
-1118(and)X
-1255(INDEX)X
-1525(outperform)X
-1906(LIBTP)X
-2148(most)X
-2323(dramatically)X
-2744(on)X
-2844(traversal.)X
-3181(This)X
-3343(is)X
-3416(because)X
-3691(we)X
-3805(use)X
-3932(index)X
-4130(look-)X
-555 5670(ups)N
-689(to)X
-774(\256nd)X
-921(connections,)X
-1347(whereas)X
-1634(the)X
-1755(other)X
-1942(two)X
-2084(systems)X
-2359(use)X
-2488(a)X
-2546(link)X
-2692(access)X
-2920(method.)X
-3222(The)X
-3369(index)X
-3569(requires)X
-3850(us)X
-3943(to)X
-4027(examine)X
-
-15 p
-%%Page: 15 15
-10 s 10 xH 0 xS 1 f
-3 f
-1 f
-10 f
-555 679(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)N
-2 f
-606 769(Measure)N
-1 f
-1019(INDEX)X
-1389(OODBMS)X
-1851(RDBMS)X
-2250(LIBTP)X
-10 f
-555 771(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)N
-555 787(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)N
-1 f
-595 869(Lookup)N
-1114(5.4)X
-1490(12.9)X
-1950(27)X
-2291(27.2)X
-595 959(Traversal)N
-1074(13)X
-1530(9.8)X
-1950(90)X
-2291(47.3)X
-595 1049(Insert)N
-1114(7.4)X
-1530(1.5)X
-1950(22)X
-2331(9.7)X
-10 f
-555 1059(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)N
-555(c)X
-999(c)Y
-919(c)Y
-839(c)Y
-759(c)Y
-959 1059(c)N
-999(c)Y
-919(c)Y
-839(c)Y
-759(c)Y
-1329 1059(c)N
-999(c)Y
-919(c)Y
-839(c)Y
-759(c)Y
-1791 1059(c)N
-999(c)Y
-919(c)Y
-839(c)Y
-759(c)Y
-2190 1059(c)N
-999(c)Y
-919(c)Y
-839(c)Y
-759(c)Y
-2512 1059(c)N
-999(c)Y
-919(c)Y
-839(c)Y
-759(c)Y
-2618 679(i)N
-2629(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-2 f
-2829 769(Measure)N
-3401(Cache)X
-3726(Local)X
-4028(Remote)X
-1 f
-10 f
-2618 771(i)N
-2629(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-2618 787(i)N
-2629(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-1 f
-2658 869(Lookup)N
-3401(cold)X
-3747(15.7)X
-4078(20.6)X
-3401 959(warm)N
-3787(7.8)X
-4078(12.4)X
-10 f
-2618 969(i)N
-2629(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-1 f
-2658 1059(Forward)N
-2950(traversal)X
-3401(cold)X
-3747(28.4)X
-4078(52.6)X
-3401 1149(warm)N
-3747(23.5)X
-4078(47.4)X
-10 f
-2618 1159(i)N
-2629(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-1 f
-2658 1249(Backward)N
-3004(traversal)X
-3401(cold)X
-3747(24.2)X
-4078(47.4)X
-3401 1339(warm)N
-3747(24.3)X
-4078(47.6)X
-10 f
-2618 1349(i)N
-2629(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-1 f
-2658 1439(Insert)N
-3401(cold)X
-3787(7.5)X
-4078(10.3)X
-3401 1529(warm)N
-3787(6.7)X
-4078(10.9)X
-10 f
-2618 1539(i)N
-2629(iiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiii)X
-2618(c)X
-1479(c)Y
-1399(c)Y
-1319(c)Y
-1239(c)Y
-1159(c)Y
-1079(c)Y
-999(c)Y
-919(c)Y
-839(c)Y
-759(c)Y
-3341 1539(c)N
-1479(c)Y
-1399(c)Y
-1319(c)Y
-1239(c)Y
-1159(c)Y
-1079(c)Y
-999(c)Y
-919(c)Y
-839(c)Y
-759(c)Y
-3666 1539(c)N
-1479(c)Y
-1399(c)Y
-1319(c)Y
-1239(c)Y
-1159(c)Y
-1079(c)Y
-999(c)Y
-919(c)Y
-839(c)Y
-759(c)Y
-3968 1539(c)N
-1479(c)Y
-1399(c)Y
-1319(c)Y
-1239(c)Y
-1159(c)Y
-1079(c)Y
-999(c)Y
-919(c)Y
-839(c)Y
-759(c)Y
-4309 1539(c)N
-1479(c)Y
-1399(c)Y
-1319(c)Y
-1239(c)Y
-1159(c)Y
-1079(c)Y
-999(c)Y
-919(c)Y
-839(c)Y
-759(c)Y
-3 f
-587 1785(Table)N
-823(2:)X
-931(Local)X
-1163(MC680x0)X
-1538(Performance)X
-2026(of)X
-2133(Several)X
-587 1875(Systems)N
-883(on)X
-987(OO1.)X
-2667 1785(Table)N
-2909(3:)X
-3023(Local)X
-3260(vs.)X
-3397(Remote)X
-3707(Performance)X
-4200(of)X
-2667 1875(LIBTP)N
-2926(on)X
-3030(OO1.)X
-1 f
-10 f
-555 1998(h)N
-579(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)X
-1 f
-555 2274(two)N
-696(disk)X
-850(pages,)X
-1074(but)X
-1197(the)X
-1316(links)X
-1492(require)X
-1741(only)X
-1904(one,)X
-2061(regardless)X
-2408(of)X
-2496(database)X
-2794(size.)X
-2980(Cattell)X
-3214(reports)X
-3458(that)X
-3599(lookups)X
-3873(using)X
-4067(B-trees)X
-555 2364(instead)N
-808(of)X
-901(links)X
-1082(makes)X
-1313(traversal)X
-1616(take)X
-1776(twice)X
-1976(as)X
-2069(long)X
-2237(in)X
-2325(INDEX.)X
-2641(Adding)X
-2907(a)X
-2969(link)X
-3119(access)X
-3351(method)X
-3617(to)X
-3 f
-3704(db)X
-1 f
-3792(\(3\))X
-3911(or)X
-4003(using)X
-4201(the)X
-555 2454(existing)N
-828(hash)X
-995(method)X
-1255(would)X
-1475(apparently)X
-1834(be)X
-1930(a)X
-1986(good)X
-2166(idea.)X
-755 2577(Both)N
-936(OODBMS)X
-1304(and)X
-1446(INDEX)X
-1722(issue)X
-1908 0.1944(coarser-granularity)AX
-2545(locks)X
-2739(than)X
-2902(LIBTP.)X
-3189(This)X
-3356(limits)X
-3562(concurrency)X
-3985(for)X
-4104(multi-)X
-555 2667(user)N
-711(applications,)X
-1140(but)X
-1264(helps)X
-1455(single-user)X
-1829(applications.)X
-2278(In)X
-2367(addition,)X
-2671(the)X
-2791(fact)X
-2934(that)X
-3076(LIBTP)X
-3319(releases)X
-3595(B-tree)X
-3817(locks)X
-4007(early)X
-4189(is)X
-4263(a)X
-555 2757(drawback)N
-896(in)X
-986(OO1.)X
-1210(Since)X
-1416(there)X
-1605(is)X
-1686(no)X
-1793(concurrency)X
-2218(in)X
-2307(the)X
-2432(benchmark,)X
-2836(high-concurrency)X
-3430(strategies)X
-3760(only)X
-3929(show)X
-4125(up)X
-4232(as)X
-555 2847(increased)N
-882(locking)X
-1145(overhead.)X
-1503(Finally,)X
-1772(the)X
-1892(architecture)X
-2294(of)X
-2383(the)X
-2503(LIBTP)X
-2747(implementation)X
-3271(was)X
-3418(substantially)X
-3844(different)X
-4143(from)X
-555 2937(that)N
-702(of)X
-796(either)X
-1006(OODBMS)X
-1375(or)X
-1469(INDEX.)X
-1786(Both)X
-1968(of)X
-2062(those)X
-2258(systems)X
-2538(do)X
-2645(the)X
-2770(searches)X
-3070(in)X
-3159(the)X
-3284(user's)X
-3503(address)X
-3771(space,)X
-3997(and)X
-4139(issue)X
-555 3027(requests)N
-844(for)X
-964(pages)X
-1173(to)X
-1260(the)X
-1383(server)X
-1605(process.)X
-1911(Pages)X
-2123(are)X
-2247(cached)X
-2496(in)X
-2583(the)X
-2706(client,)X
-2929(and)X
-3070(many)X
-3273(queries)X
-3530(can)X
-3667(be)X
-3768(satis\256ed)X
-4055(without)X
-555 3117(contacting)N
-910(the)X
-1029(server)X
-1247(at)X
-1326(all.)X
-1467(LIBTP)X
-1710(submits)X
-1979(all)X
-2080(the)X
-2199(queries)X
-2452(to)X
-2535(the)X
-2653(server)X
-2870(process,)X
-3151(and)X
-3287(receives)X
-3571(database)X
-3868(records)X
-4125(back;)X
-555 3207(it)N
-619(does)X
-786(no)X
-886(client)X
-1084(caching.)X
-755 3330(The)N
-911(RDBMS)X
-1221(architecture)X
-1632(is)X
-1716(much)X
-1925(closer)X
-2148(to)X
-2241(that)X
-2392(of)X
-2490(LIBTP.)X
-2783(A)X
-2872(server)X
-3100(process)X
-3372(receives)X
-3667(queries)X
-3930(and)X
-4076(returns)X
-555 3420(results)N
-786(to)X
-870(a)X
-928(client.)X
-1168(The)X
-1315(timing)X
-1545(results)X
-1776(in)X
-1860(table)X
-2038(two)X
-2180(clearly)X
-2421(show)X
-2612(that)X
-2754(the)X
-2874(conventional)X
-3309(database)X
-3607(client/server)X
-4025(model)X
-4246(is)X
-555 3510(expensive.)N
-941(LIBTP)X
-1188(outperforms)X
-1605(the)X
-1728(RDBMS)X
-2032(on)X
-2136(traversal)X
-2437(and)X
-2577(insertion.)X
-2921(We)X
-3057(speculate)X
-3380(that)X
-3524(this)X
-3663(is)X
-3740(due)X
-3880(in)X
-3966(part)X
-4115(to)X
-4201(the)X
-555 3600(overhead)N
-870(of)X
-957(query)X
-1160(parsing,)X
-1436(optimization,)X
-1880(and)X
-2016(repeated)X
-2309(interpretation)X
-2761(of)X
-2848(the)X
-2966(plan)X
-3124(tree)X
-3265(in)X
-3347(the)X
-3465(RDBMS')X
-3791(query)X
-3994(executor.)X
-755 3723(Table)N
-962(three)X
-1147(shows)X
-1371(the)X
-1492(differences)X
-1873(between)X
-2164(local)X
-2343(and)X
-2482(remote)X
-2728(execution)X
-3063(of)X
-3153(LIBTP's)X
-3456(OO1)X
-3635(implementation)X
-4160(on)X
-4263(a)X
-555 3813(DECstation.)N
-989(We)X
-1122(measured)X
-1451(performance)X
-1879(with)X
-2042(a)X
-2099(populated)X
-2436(\(warm\))X
-2694(cache)X
-2899(and)X
-3036(an)X
-3133(empty)X
-3354(\(cold\))X
-3567(cache.)X
-3812(Reported)X
-4126(times)X
-555 3903(are)N
-681(the)X
-806(means)X
-1037(of)X
-1130(twenty)X
-1374(tests,)X
-1562(and)X
-1704(are)X
-1829(in)X
-1917(seconds.)X
-2237(Standard)X
-2548(deviations)X
-2903(were)X
-3086(within)X
-3316(seven)X
-3525(percent)X
-3788(of)X
-3881(the)X
-4005(mean)X
-4205(for)X
-555 3993(remote,)N
-818(and)X
-954(two)X
-1094(percent)X
-1351(of)X
-1438(the)X
-1556(mean)X
-1750(for)X
-1864(local.)X
-755 4116(The)N
-914(20ms)X
-1121(overhead)X
-1450(of)X
-1551(TCP/IP)X
-1824(on)X
-1938(an)X
-2048(Ethernet)X
-2354(entirely)X
-2633(accounts)X
-2948(for)X
-3076(the)X
-3207(difference)X
-3567(in)X
-3662(speed.)X
-3918(The)X
-4076(remote)X
-555 4206(traversal)N
-857(times)X
-1055(are)X
-1179(nearly)X
-1405(double)X
-1648(the)X
-1771(local)X
-1952(times)X
-2150(because)X
-2430(we)X
-2549(do)X
-2653(index)X
-2855(lookups)X
-3132(and)X
-3272(part)X
-3421(fetches)X
-3673(in)X
-3759(separate)X
-4047(queries.)X
-555 4296(It)N
-629(would)X
-854(make)X
-1053(sense)X
-1252(to)X
-1339(do)X
-1444(indexed)X
-1723(searches)X
-2021(on)X
-2126(the)X
-2248(server,)X
-2489(but)X
-2615(we)X
-2733(were)X
-2914(unwilling)X
-3244(to)X
-3330(hard-code)X
-3676(knowledge)X
-4052(of)X
-4143(OO1)X
-555 4386(indices)N
-803(into)X
-948(our)X
-1075(LIBTP)X
-1317(TCL)X
-1488(server.)X
-1745(Cold)X
-1920(and)X
-2056(warm)X
-2259(insertion)X
-2559(times)X
-2752(are)X
-2871(identical)X
-3167(since)X
-3352(insertions)X
-3683(do)X
-3783(not)X
-3905(bene\256t)X
-4143(from)X
-555 4476(caching.)N
-755 4599(One)N
-915(interesting)X
-1279(difference)X
-1632(shown)X
-1867(by)X
-1973(table)X
-2155(three)X
-2342(is)X
-2421(the)X
-2545(cost)X
-2700(of)X
-2793(forward)X
-3074(versus)X
-3305(backward)X
-3644(traversal.)X
-3987(When)X
-4205(we)X
-555 4689(built)N
-725(the)X
-847(database,)X
-1168(we)X
-1285(inserted)X
-1562(parts)X
-1741(in)X
-1826(part)X
-2 f
-1974(id)X
-1 f
-2059(order.)X
-2292(We)X
-2427(built)X
-2596(the)X
-2717(indices)X
-2967(at)X
-3048(the)X
-3169(same)X
-3357(time.)X
-3562(Therefore,)X
-3923(the)X
-4044(forward)X
-555 4779(index)N
-757(had)X
-897(keys)X
-1068(inserted)X
-1346(in)X
-1432(order,)X
-1646(while)X
-1848(the)X
-1970(backward)X
-2307(index)X
-2509(had)X
-2649(keys)X
-2820(inserted)X
-3098(more)X
-3286(randomly.)X
-3656(In-order)X
-3943(insertion)X
-4246(is)X
-555 4885(pessimal)N
-858(for)X
-975(B-tree)X
-1199(indices,)X
-1469(so)X
-1563(the)X
-1684(forward)X
-1962(index)X
-2163(is)X
-2239(much)X
-2440(larger)X
-2651(than)X
-2812(the)X
-2933(backward)X
-3269(one)X
-7 s
-3385 4853(5)N
-10 s
-4885(.)Y
-3476(This)X
-3640(larger)X
-3850(size)X
-3997(shows)X
-4219(up)X
-555 4975(as)N
-642(extra)X
-823(disk)X
-976(reads)X
-1166(in)X
-1248(the)X
-1366(cold)X
-1524(benchmark.)X
-3 f
-555 5161(6.)N
-655(Conclusions)X
-1 f
-755 5284(LIBTP)N
-1006(provides)X
-1311(the)X
-1438(basic)X
-1632(building)X
-1927(blocks)X
-2165(to)X
-2256(support)X
-2525(transaction)X
-2906(protection.)X
-3300(In)X
-3396(comparison)X
-3799(with)X
-3970(traditional)X
-555 5374(Unix)N
-746(libraries)X
-1040(and)X
-1187(commercial)X
-1597(systems,)X
-1900(it)X
-1974(offers)X
-2192(a)X
-2258(variety)X
-2511(of)X
-2608(tradeoffs.)X
-2964(Using)X
-3185(complete)X
-3509(transaction)X
-3891(protection)X
-4246(is)X
-555 5464(more)N
-747(complicated)X
-1166(than)X
-1331(simply)X
-1575(adding)X
-3 f
-1820(fsync)X
-1 f
-1998(\(2\))X
-2119(and)X
-3 f
-2262(\257ock)X
-1 f
-2426(\(2\))X
-2547(calls)X
-2721(to)X
-2810(code,)X
-3008(but)X
-3136(it)X
-3206(is)X
-3285(faster)X
-3490(in)X
-3578(some)X
-3773(cases)X
-3969(and)X
-4111(offers)X
-8 s
-10 f
-555 5536(hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh)N
-5 s
-1 f
-727 5614(5)N
-8 s
-763 5639(The)N
-878(next)X
-1004(release)X
-1196(of)X
-1265(the)X
-1359(4.4BSD)X
-1580(access)X
-1758(method)X
-1966(will)X
-2082(automatically)X
-2446(detect)X
-2614(and)X
-2722(compensate)X
-3039(for)X
-3129(in-order)X
-3350(insertion,)X
-3606(eliminating)X
-3914(this)X
-4023(problem.)X
-
-16 p
-%%Page: 16 16
-8 s 8 xH 0 xS 1 f
-10 s
-3 f
-1 f
-555 630(stricter)N
-801(guarantees)X
-1168(\(atomicity,)X
-1540(consistency,)X
-1957(isolation,)X
-2275(and)X
-2414(durability\).)X
-2815(If)X
-2892(the)X
-3013(data)X
-3170(to)X
-3255(be)X
-3354(protected)X
-3676(are)X
-3798(already)X
-4058(format-)X
-555 720(ted)N
-675(\()X
-2 f
-702(i.e.)X
-1 f
-821(use)X
-949(one)X
-1086(of)X
-1174(the)X
-1293(database)X
-1591(access)X
-1818(methods\),)X
-2157(then)X
-2316(adding)X
-2555(transaction)X
-2928(protection)X
-3274(requires)X
-3554(no)X
-3655(additional)X
-3996(complex-)X
-555 810(ity,)N
-679(but)X
-801(incurs)X
-1017(a)X
-1073(performance)X
-1500(penalty)X
-1756(of)X
-1843(approximately)X
-2326(15%.)X
-755 933(In)N
-844(comparison)X
-1240(with)X
-1404(commercial)X
-1805(database)X
-2104(systems,)X
-2399(the)X
-2519(tradeoffs)X
-2827(are)X
-2948(more)X
-3135(complex.)X
-3473(LIBTP)X
-3717(does)X
-3886(not)X
-4009(currently)X
-555 1023(support)N
-825(a)X
-891(standard)X
-1193(query)X
-1406(language.)X
-1766(The)X
-1921(TCL-based)X
-2312(server)X
-2539(process)X
-2810(allows)X
-3049(a)X
-3115(certain)X
-3364(ease)X
-3533(of)X
-3630(use)X
-3767(which)X
-3993(would)X
-4223(be)X
-555 1113(enhanced)N
-882(with)X
-1047(a)X
-1106(more)X
-1294(user-friendly)X
-1732(interface)X
-2037(\()X
-2 f
-2064(e.g.)X
-1 f
-2203(a)X
-2261(windows)X
-2572(based)X
-2777(query-by-form)X
-3272(application\),)X
-3697(for)X
-3813(which)X
-4031(we)X
-4147(have)X
-555 1203(a)N
-620(working)X
-916(prototype.)X
-1292(When)X
-1513(accesses)X
-1815(do)X
-1924(not)X
-2055(require)X
-2312(sophisticated)X
-2758(query)X
-2969(processing,)X
-3360(the)X
-3486(TCL)X
-3665(interface)X
-3975(is)X
-4056(an)X
-4160(ade-)X
-555 1293(quate)N
-756(solution.)X
-1080(What)X
-1281(LIBTP)X
-1529(fails)X
-1693(to)X
-1781(provide)X
-2052(in)X
-2140(functionality,)X
-2595(it)X
-2665(makes)X
-2896(up)X
-3002(for)X
-3122(in)X
-3210(performance)X
-3643(and)X
-3785(\257exibility.)X
-4161(Any)X
-555 1383(application)N
-931(may)X
-1089(make)X
-1283(use)X
-1410(of)X
-1497(its)X
-1592(record)X
-1818(interface)X
-2120(or)X
-2207(the)X
-2325(more)X
-2510(primitive)X
-2823(log,)X
-2965(lock,)X
-3143(and)X
-3279(buffer)X
-3496(calls.)X
-755 1506(Future)N
-987(work)X
-1175(will)X
-1322(focus)X
-1519(on)X
-1621(overcoming)X
-2026(some)X
-2217(of)X
-2306(the)X
-2426(areas)X
-2614(in)X
-2698(which)X
-2916(LIBTP)X
-3160(is)X
-3235(currently)X
-3547(de\256cient)X
-3845(and)X
-3983(extending)X
-555 1596(its)N
-652(transaction)X
-1026(model.)X
-1288(The)X
-1435(addition)X
-1719(of)X
-1808(an)X
-1905(SQL)X
-2077(parser)X
-2295(and)X
-2432(forms)X
-2640(front)X
-2817(end)X
-2954(will)X
-3099(improve)X
-3387(the)X
-3506(system's)X
-3807(ease)X
-3967(of)X
-4055(use)X
-4183(and)X
-555 1686(make)N
-750(it)X
-815(more)X
-1001(competitive)X
-1400(with)X
-1563(commercial)X
-1963(systems.)X
-2277(In)X
-2365(the)X
-2484(long)X
-2647(term,)X
-2835(we)X
-2950(would)X
-3170(like)X
-3310(to)X
-3392(add)X
-3528(generalized)X
-3919(hierarchical)X
-555 1776(locking,)N
-836(nested)X
-1062(transactions,)X
-1486(parallel)X
-1748(transactions,)X
-2171(passing)X
-2431(of)X
-2518(transactions)X
-2921(between)X
-3209(processes,)X
-3557(and)X
-3693(distributed)X
-4055(commit)X
-555 1866(handling.)N
-900(In)X
-992(the)X
-1115(short)X
-1300(term,)X
-1492(the)X
-1614(next)X
-1776(step)X
-1929(is)X
-2006(to)X
-2092(integrate)X
-2397(LIBTP)X
-2643(with)X
-2809(the)X
-2931(most)X
-3110(recent)X
-3331(release)X
-3579(of)X
-3670(the)X
-3792(database)X
-4093(access)X
-555 1956(routines)N
-833(and)X
-969(make)X
-1163(it)X
-1227(freely)X
-1435(available)X
-1745(via)X
-1863(anonymous)X
-2252(ftp.)X
-3 f
-555 2142(7.)N
-655(Acknowledgements)X
-1 f
-755 2265(We)N
-888(would)X
-1109(like)X
-1250(to)X
-1332(thank)X
-1530(John)X
-1701(Wilkes)X
-1948(and)X
-2084(Carl)X
-2242(Staelin)X
-2484(of)X
-2571(Hewlett-Packard)X
-3131(Laboratories)X
-3557(and)X
-3693(Jon)X
-3824(Krueger.)X
-4148(John)X
-555 2355(and)N
-694(Carl)X
-855(provided)X
-1162(us)X
-1255(with)X
-1419(an)X
-1517(extra)X
-1700(disk)X
-1855(for)X
-1971(the)X
-2091(HP)X
-2215(testbed)X
-2464(less)X
-2606(than)X
-2766(24)X
-2868(hours)X
-3068(after)X
-3238(we)X
-3354(requested)X
-3684(it.)X
-3770(Jon)X
-3903(spent)X
-4094(count-)X
-555 2445(less)N
-699(hours)X
-901(helping)X
-1164(us)X
-1258(understand)X
-1633(the)X
-1754(intricacies)X
-2107(of)X
-2197(commercial)X
-2599(database)X
-2899(products)X
-3198(and)X
-3337(their)X
-3507(behavior)X
-3811(under)X
-4017(a)X
-4076(variety)X
-555 2535(of)N
-642(system)X
-884(con\256gurations.)X
-3 f
-555 2721(8.)N
-655(References)X
-1 f
-555 2901([ANDR89])N
-942(Andrade,)X
-1265(J.,)X
-1361(Carges,)X
-1629(M.,)X
-1765(Kovach,)X
-2060(K.,)X
-2183(``Building)X
-2541(an)X
-2642(On-Line)X
-2939(Transaction)X
-3343(Processing)X
-3715(System)X
-3975(On)X
-4098(UNIX)X
-727 2991(System)N
-982(V'',)X
-2 f
-1134(CommUNIXations)X
-1 f
-1725(,)X
-1765 0.2188(November/December)AX
-2477(1989.)X
-555 3171([BAY77])N
-878(Bayer,)X
-1110(R.,)X
-1223(Schkolnick,)X
-1623(M.,)X
-1754(``Concurrency)X
-2243(of)X
-2330(Operations)X
-2702(on)X
-2802(B-Trees'',)X
-2 f
-3155(Acta)X
-3322(Informatica)X
-1 f
-3700(,)X
-3740(1977.)X
-555 3351([BERN80])N
-936(Bernstein,)X
-1297(P.,)X
-1415(Goodman,)X
-1785(N.,)X
-1917(``Timestamp)X
-2365(Based)X
-2595(Algorithms)X
-2992(for)X
-3119(Concurrency)X
-3567(Control)X
-3844(in)X
-3939(Distributed)X
-727 3441(Database)N
-1042(Systems'',)X
-2 f
-1402(Proceedings)X
-1823(6th)X
-1945(International)X
-2387(Conference)X
-2777(on)X
-2877(Very)X
-3049(Large)X
-3260(Data)X
-3440(Bases)X
-1 f
-3627(,)X
-3667(October)X
-3946(1980.)X
-555 3621([BSD91])N
-864(DB\(3\),)X
-2 f
-1109(4.4BSD)X
-1376(Unix)X
-1552(Programmer's)X
-2044(Manual)X
-2313(Reference)X
-2655(Guide)X
-1 f
-2851(,)X
-2891(University)X
-3249(of)X
-3336(California,)X
-3701(Berkeley,)X
-4031(1991.)X
-555 3801([CATT91])N
-923(Cattell,)X
-1181(R.G.G.,)X
-1455(``An)X
-1632(Engineering)X
-2049(Database)X
-2369(Benchmark'',)X
-2 f
-2838(The)X
-2983(Benchmark)X
-3373(Handbook)X
-3731(for)X
-3848(Database)X
-4179(and)X
-727 3891(Transaction)N
-1133(Processing)X
-1509(Systems)X
-1 f
-1763(,)X
-1803(J.)X
-1874(Gray,)X
-2075(editor,)X
-2302(Morgan)X
-2576(Kaufman)X
-2895(1991.)X
-555 4071([CHEN91])N
-929(Cheng,)X
-1180(E.,)X
-1291(Chang,)X
-1542(E.,)X
-1653(Klein,)X
-1872(J.,)X
-1964(Lee,)X
-2126(D.,)X
-2245(Lu,)X
-2375(E.,)X
-2485(Lutgardo,)X
-2820(A.,)X
-2939(Obermarck,)X
-3342(R.,)X
-3456(``An)X
-3629(Open)X
-3824(and)X
-3961(Extensible)X
-727 4161(Event-Based)N
-1157(Transaction)X
-1556(Manager'',)X
-2 f
-1936(Proceedings)X
-2357(1991)X
-2537(Summer)X
-2820(Usenix)X
-1 f
-3043(,)X
-3083(Nashville,)X
-3430(TN,)X
-3577(June)X
-3744(1991.)X
-555 4341([CHOU85])N
-943(Chou,)X
-1163(H.,)X
-1288(DeWitt,)X
-1570(D.,)X
-1694(``An)X
-1872(Evaluation)X
-2245(of)X
-2338(Buffer)X
-2574(Management)X
-3019(Strategies)X
-3361(for)X
-3481(Relational)X
-3836(Database)X
-4157(Sys-)X
-727 4431(tems'',)N
-2 f
-972(Proceedings)X
-1393(of)X
-1475(the)X
-1593(11th)X
-1755(International)X
-2197(Conference)X
-2587(on)X
-2687(Very)X
-2859(Large)X
-3070(Databases)X
-1 f
-3408(,)X
-3448(1985.)X
-555 4611([DEWI84])N
-925(DeWitt,)X
-1207(D.,)X
-1331(Katz,)X
-1529(R.,)X
-1648(Olken,)X
-1890(F.,)X
-2000(Shapiro,)X
-2295(L.,)X
-2410(Stonebraker,)X
-2843(M.,)X
-2979(Wood,)X
-3220(D.,)X
-3343(``Implementation)X
-3929(Techniques)X
-727 4701(for)N
-841(Main)X
-1030(Memory)X
-1326(Database)X
-1641(Systems'',)X
-2 f
-2001(Proceedings)X
-2422(of)X
-2504(SIGMOD)X
-1 f
-2812(,)X
-2852(pp.)X
-2972(1-8,)X
-3119(June)X
-3286(1984.)X
-555 4881([GRAY76])N
-944(Gray,)X
-1153(J.,)X
-1252(Lorie,)X
-1474(R.,)X
-1595(Putzolu,)X
-1887(F.,)X
-1999(and)X
-2143(Traiger,)X
-2428(I.,)X
-2522(``Granularity)X
-2973(of)X
-3067(locks)X
-3263(and)X
-3406(degrees)X
-3679(of)X
-3773(consistency)X
-4174(in)X
-4263(a)X
-727 4971(large)N
-909(shared)X
-1140(data)X
-1295(base'',)X
-2 f
-1533(Modeling)X
-1861(in)X
-1944(Data)X
-2125(Base)X
-2301(Management)X
-2740(Systems)X
-1 f
-2994(,)X
-3034(Elsevier)X
-3317(North)X
-3524(Holland,)X
-3822(New)X
-3994(York,)X
-4199(pp.)X
-727 5061(365-394.)N
-555 5241([HAER83])N
-931(Haerder,)X
-1235(T.)X
-1348(Reuter,)X
-1606(A.)X
-1728(``Principles)X
-2126(of)X
-2217(Transaction-Oriented)X
-2928(Database)X
-3246(Recovery'',)X
-2 f
-3651(Computing)X
-4029(Surveys)X
-1 f
-4279(,)X
-727 5331(15\(4\);)N
-943(237-318,)X
-1250(1983.)X
-555 5511([KUNG81])N
-943(Kung,)X
-1162(H.)X
-1261(T.,)X
-1371(Richardson,)X
-1777(J.,)X
-1869(``On)X
-2042(Optimistic)X
-2400(Methods)X
-2701(for)X
-2816(Concurrency)X
-3252(Control'',)X
-2 f
-3591(ACM)X
-3781(Transactions)X
-4219(on)X
-727 5601(Database)N
-1054(Systems)X
-1 f
-1328(6\(2\);)X
-1504(213-226,)X
-1811(1981.)X
-
-17 p
-%%Page: 17 17
-10 s 10 xH 0 xS 1 f
-3 f
-1 f
-555 630([LEHM81])N
-939(Lehman,)X
-1245(P.,)X
-1352(Yao,)X
-1529(S.,)X
-1636(``Ef\256cient)X
-1989(Locking)X
-2279(for)X
-2396(Concurrent)X
-2780(Operations)X
-3155(on)X
-3258(B-trees'',)X
-2 f
-3587(ACM)X
-3779(Transactions)X
-4219(on)X
-727 720(Database)N
-1054(Systems)X
-1 f
-1308(,)X
-1348(6\(4\),)X
-1522(December)X
-1873(1981.)X
-555 900([MOHA91])N
-964(Mohan,)X
-1241(C.,)X
-1364(Pirahesh,)X
-1690(H.,)X
-1818(``ARIES-RRH:)X
-2366(Restricted)X
-2721(Repeating)X
-3076(of)X
-3173(History)X
-3442(in)X
-3533(the)X
-3660(ARIES)X
-3920(Transaction)X
-727 990(Recovery)N
-1055(Method'',)X
-2 f
-1398(Proceedings)X
-1819(7th)X
-1941(International)X
-2383(Conference)X
-2773(on)X
-2873(Data)X
-3053(Engineering)X
-1 f
-3449(,)X
-3489(Kobe,)X
-3703(Japan,)X
-3926(April)X
-4115(1991.)X
-555 1170([NODI90])N
-914(Nodine,)X
-1194(M.,)X
-1328(Zdonik,)X
-1602(S.,)X
-1709(``Cooperative)X
-2178(Transaction)X
-2580(Hierarchies:)X
-2996(A)X
-3077(Transaction)X
-3479(Model)X
-3711(to)X
-3796(Support)X
-4072(Design)X
-727 1260(Applications'',)N
-2 f
-1242(Proceedings)X
-1675(16th)X
-1849(International)X
-2303(Conference)X
-2704(on)X
-2815(Very)X
-2998(Large)X
-3220(Data)X
-3411(Bases)X
-1 f
-3598(,)X
-3649(Brisbane,)X
-3985(Australia,)X
-727 1350(August)N
-978(1990.)X
-555 1530([OUST90])N
-923(Ousterhout,)X
-1324(J.,)X
-1420(``Tcl:)X
-1648(An)X
-1771(Embeddable)X
-2197(Command)X
-2555(Language'',)X
-2 f
-2971(Proceedings)X
-3396(1990)X
-3580(Winter)X
-3822(Usenix)X
-1 f
-4045(,)X
-4089(Wash-)X
-727 1620(ington,)N
-971(D.C.,)X
-1162(January)X
-1432(1990.)X
-555 1800([POSIX91])N
-955(``Unapproved)X
-1441(Draft)X
-1645(for)X
-1773(Realtime)X
-2096(Extension)X
-2450(for)X
-2578(Portable)X
-2879(Operating)X
-3234(Systems'',)X
-3608(Draft)X
-3812(11,)X
-3946(October)X
-4239(7,)X
-727 1890(1991,)N
-927(IEEE)X
-1121(Computer)X
-1461(Society.)X
-555 2070([ROSE91])N
-925(Rosenblum,)X
-1341(M.,)X
-1484(Ousterhout,)X
-1892(J.,)X
-1995(``The)X
-2206(Design)X
-2464(and)X
-2611(Implementation)X
-3149(of)X
-3247(a)X
-3314(Log-Structured)X
-3835(File)X
-3990(System'',)X
-2 f
-727 2160(Proceedings)N
-1148(of)X
-1230(the)X
-1348(13th)X
-1510(Symposium)X
-1895(on)X
-1995(Operating)X
-2344(Systems)X
-2618(Principles)X
-1 f
-2947(,)X
-2987(1991.)X
-555 2340([SELT91])N
-904(Seltzer,)X
-1171(M.,)X
-1306(Stonebraker,)X
-1738(M.,)X
-1873(``Read)X
-2116(Optimized)X
-2478(File)X
-2626(Systems:)X
-2938(A)X
-3020(Performance)X
-3454(Evaluation'',)X
-2 f
-3898(Proceedings)X
-727 2430(7th)N
-849(Annual)X
-1100(International)X
-1542(Conference)X
-1932(on)X
-2032(Data)X
-2212(Engineering)X
-1 f
-2608(,)X
-2648(Kobe,)X
-2862(Japan,)X
-3085(April)X
-3274(1991.)X
-555 2610([SPEC88])N
-907(Spector,)X
-1200(Rausch,)X
-1484(Bruell,)X
-1732(``Camelot:)X
-2107(A)X
-2192(Flexible,)X
-2501(Distributed)X
-2888(Transaction)X
-3294(Processing)X
-3668(System'',)X
-2 f
-4004(Proceed-)X
-727 2700(ings)N
-880(of)X
-962(Spring)X
-1195(COMPCON)X
-1606(1988)X
-1 f
-(,)S
-1806(February)X
-2116(1988.)X
-555 2880([SQL86])N
-862(American)X
-1201(National)X
-1499(Standards)X
-1836(Institute,)X
-2139(``Database)X
-2509(Language)X
-2847(SQL'',)X
-3093(ANSI)X
-3301(X3.135-1986)X
-3747(\(ISO)X
-3924(9075\),)X
-4152(May)X
-727 2970(1986.)N
-555 3150([STON81])N
-919(Stonebraker,)X
-1348(M.,)X
-1480(``Operating)X
-1876(System)X
-2132(Support)X
-2406(for)X
-2520(Database)X
-2835(Management'',)X
-2 f
-3348(Communications)X
-3910(of)X
-3992(the)X
-4110(ACM)X
-1 f
-4279(,)X
-727 3240(1981.)N
-555 3420([SULL92])N
-925(Sullivan,)X
-1247(M.,)X
-1394(Olson,)X
-1641(M.,)X
-1788(``An)X
-1976(Index)X
-2195(Implementation)X
-2737(Supporting)X
-3127(Fast)X
-3295(Recovery)X
-3638(for)X
-3767(the)X
-3900(POSTGRES)X
-727 3510(Storage)N
-1014(System'',)X
-1365(to)X
-1469(appear)X
-1726(in)X
-2 f
-1830(Proceedings)X
-2272(8th)X
-2415(Annual)X
-2687(International)X
-3150(Conference)X
-3561(on)X
-3682(Data)X
-3883(Engineering)X
-1 f
-4279(,)X
-727 3600(Tempe,)N
-990(Arizona,)X
-1289(February)X
-1599(1992.)X
-555 3780([TPCB90])N
-914(Transaction)X
-1319(Processing)X
-1692(Performance)X
-2129(Council,)X
-2428(``TPC)X
-2653(Benchmark)X
-3048(B'',)X
-3200(Standard)X
-3510(Speci\256cation,)X
-3973(Waterside)X
-727 3870(Associates,)N
-1110(Fremont,)X
-1421(CA.,)X
-1592(1990.)X
-555 4050([YOUN91])N
-947(Young,)X
-1211(M.)X
-1328(W.,)X
-1470(Thompson,)X
-1858(D.)X
-1962(S.,)X
-2072(Jaffe,)X
-2274(E.,)X
-2388(``A)X
-2525(Modular)X
-2826(Architecture)X
-3253(for)X
-3372(Distributed)X
-3757(Transaction)X
-4161(Pro-)X
-727 4140(cessing'',)N
-2 f
-1057(Proceedings)X
-1478(1991)X
-1658(Winter)X
-1896(Usenix)X
-1 f
-2119(,)X
-2159(Dallas,)X
-2404(TX,)X
-2551(January)X
-2821(1991.)X
-3 f
-755 4263(Margo)N
-1008(I.)X
-1080(Seltzer)X
-1 f
-1338(is)X
-1411(a)X
-1467(Ph.D.)X
-1669(student)X
-1920(in)X
-2002(the)X
-2120(Department)X
-2519(of)X
-2606(Electrical)X
-2934(Engineering)X
-3346(and)X
-3482(Computer)X
-3822(Sciences)X
-4123(at)X
-4201(the)X
-555 4353(University)N
-919(of)X
-1012(California,)X
-1383(Berkeley.)X
-1739(Her)X
-1886(research)X
-2181(interests)X
-2474(include)X
-2735(\256le)X
-2862(systems,)X
-3160(databases,)X
-3513(and)X
-3654(transaction)X
-4031(process-)X
-555 4443(ing)N
-686(systems.)X
-1008(She)X
-1157(spent)X
-1355(several)X
-1612(years)X
-1811(working)X
-2107(at)X
-2194(startup)X
-2441(companies)X
-2813(designing)X
-3153(and)X
-3298(implementing)X
-3771(\256le)X
-3902(systems)X
-4183(and)X
-555 4533(transaction)N
-929(processing)X
-1294(software)X
-1592(and)X
-1729(designing)X
-2061(microprocessors.)X
-2648(Ms.)X
-2791(Seltzer)X
-3035(received)X
-3329(her)X
-3453(AB)X
-3585(in)X
-3668(Applied)X
-3947(Mathemat-)X
-555 4623(ics)N
-664(from)X
-840 0.1953(Harvard/Radcliffe)AX
-1445(College)X
-1714(in)X
-1796(1983.)X
-755 4746(In)N
-845(her)X
-971(spare)X
-1163(time,)X
-1347(Margo)X
-1583(can)X
-1717(usually)X
-1970(be)X
-2068(found)X
-2277(preparing)X
-2607(massive)X
-2887(quantities)X
-3220(of)X
-3309(food)X
-3478(for)X
-3594(hungry)X
-3843(hordes,)X
-4099(study-)X
-555 4836(ing)N
-677(Japanese,)X
-1003(or)X
-1090(playing)X
-1350(soccer)X
-1576(with)X
-1738(an)X
-1834(exciting)X
-2112(Bay)X
-2261(Area)X
-2438(Women's)X
-2770(Soccer)X
-3009(team,)X
-3205(the)X
-3323(Berkeley)X
-3633(Bruisers.)X
-3 f
-755 5049(Michael)N
-1056(A.)X
-1159(Olson)X
-1 f
-1383(is)X
-1461(a)X
-1522(Master's)X
-1828(student)X
-2084(in)X
-2170(the)X
-2292(Department)X
-2695(of)X
-2786(Electrical)X
-3118(Engineering)X
-3534(and)X
-3674(Computer)X
-4018(Sciences)X
-555 5139(at)N
-645(the)X
-774(University)X
-1143(of)X
-1241(California,)X
-1617(Berkeley.)X
-1978(His)X
-2120(primary)X
-2405(interests)X
-2703(are)X
-2833(database)X
-3141(systems)X
-3425(and)X
-3572(mass)X
-3763(storage)X
-4026(systems.)X
-555 5229(Mike)N
-759(spent)X
-963(two)X
-1118(years)X
-1323(working)X
-1625(for)X
-1754(a)X
-1825(commercial)X
-2239(database)X
-2551(system)X
-2808(vendor)X
-3066(before)X
-3307(joining)X
-3567(the)X
-3699(Postgres)X
-4004(Research)X
-555 5319(Group)N
-780(at)X
-858(Berkeley)X
-1168(in)X
-1250(1988.)X
-1470(He)X
-1584(received)X
-1877(his)X
-1990(B.A.)X
-2161(in)X
-2243(Computer)X
-2583(Science)X
-2853(from)X
-3029(Berkeley)X
-3339(in)X
-3421(May)X
-3588(1991.)X
-755 5442(Mike)N
-945(only)X
-1108(recently)X
-1388(transferred)X
-1758(into)X
-1903(Sin)X
-2030(City,)X
-2208(but)X
-2330(is)X
-2403(rapidly)X
-2650(adopting)X
-2950(local)X
-3126(customs)X
-3408(and)X
-3544(coloration.)X
-3929(In)X
-4016(his)X
-4129(spare)X
-555 5532(time,)N
-742(he)X
-843(organizes)X
-1176(informal)X
-1477(Friday)X
-1711(afternoon)X
-2043(study)X
-2240(groups)X
-2482(to)X
-2568(discuss)X
-2823(recent)X
-3044(technical)X
-3358(and)X
-3498(economic)X
-3834(developments.)X
-555 5622(Among)N
-815(his)X
-928(hobbies)X
-1197(are)X
-1316(Charles)X
-1581(Dickens,)X
-1884(Red)X
-2033(Rock,)X
-2242(and)X
-2378(speaking)X
-2683(Dutch)X
-2899(to)X
-2981(anyone)X
-3233(who)X
-3391(will)X
-3535(permit)X
-3764(it.)X
-
-17 p
-%%Trailer
-xt
-
-xs
-
diff --git a/bdb/docs/ref/refs/refs.html b/bdb/docs/ref/refs/refs.html
deleted file mode 100644
index 9e321b938c5..00000000000
--- a/bdb/docs/ref/refs/refs.html
+++ /dev/null
@@ -1,75 +0,0 @@
-<!--$Id: refs.so,v 10.24 2000/12/19 18:54:17 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Additional references</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Additional References</dl></h3></td>
-<td width="1%"><a href="../../ref/distrib/layout.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Additional references</h1>
-<p>For more information on Berkeley DB, or on database systems theory in general,
-we recommend the sources listed below.
-<h3>Technical Papers on Berkeley DB</h3>
-<p>These papers have appeared in refereed conference proceedings, and are
-subject to copyrights held by the conference organizers and the authors
-of the papers. Sleepycat Software makes them available here as a courtesy
-with the permission of the copyright holders.
-<p><dl compact>
-<p><dt><i>Berkeley DB</i> (<a href="bdb_usenix.html">HTML</a>, <a href="bdb_usenix.ps">Postscript</a>)<dd>Michael Olson, Keith Bostic, and Margo Seltzer, Proceedings of the 1999
-Summer Usenix Technical Conference, Monterey, California, June 1999. This
-paper describes recent commercial releases of Berkeley DB, its most important
-features, the history of the software, and Sleepycat's Open Source
-licensing policies.
-<p><dt><i>Challenges in Embedded Database System Administration</i>
-(<a href="embedded.html">HTML</a>)<dd>Margo Seltzer and Michael Olson, First Workshop on Embedded Systems,
-Cambridge, Massachusetts, March 1999. This paper describes the challenges
-that face embedded systems developers, and how Berkeley DB has been designed to
-address them.
-<p><dt><i>LIBTP: Portable Modular Transactions for UNIX</i>
-(<a href="libtp_usenix.ps">Postscript</a>)<dd>Margo Seltzer and Michael Olson, USENIX Conference Proceedings, Winter
-1992. This paper describes an early prototype of the transactional system
-for Berkeley DB.
-<p><dt><i>A New Hashing Package for UNIX</i>
-(<a href="hash_usenix.ps">Postscript</a>)<dd>Margo Seltzer and Oz Yigit, USENIX Conference Proceedings, Winter 1991.
-This paper describes the Extended Linear Hashing techniques used by Berkeley DB.
-</dl>
-<h3>Background on Berkeley DB Features</h3>
-<p>These papers, while not specific to Berkeley DB, give a good overview of how
-different Berkeley DB features were implemented.
-<p><dl compact>
-<p><dt><i>Operating System Support for Database Management</i><dd>Michael Stonebraker, Communications of the ACM 24(7), 1981, pp. 412-418.
-<p><dt><i>Dynamic Hash Tables</i><dd>Per-Ake Larson, Communications of the ACM, April 1988.
-<p><dt><i>Linear Hashing: A New Tool for File and Table Addressing</i><dd><a href="witold.html">Witold Litwin</a>, Proceedings of the 6th International
-Conference on Very Large Databases (VLDB), 1980
-<p><dt><i>The Ubiquitous B-tree</i><dd>Douglas Comer, ACM Comput. Surv. 11, 2 (June 1979), pp. 121-138.
-<p><dt><i>Prefix B-trees</i><dd>Bayer and Unterauer, ACM Transactions on Database Systems, Vol. 2, 1
-(March 1977), pp. 11-26.
-<p><dt><i>The Art of Computer Programming Vol. 3: Sorting and Searching</i><dd>D.E. Knuth, 1968, pp. 471-480.
-<p><dt><i>Document Processing in a Relational Database System</i><dd>Michael Stonebraker, Heidi Stettner, Joseph Kalash, Antonin Guttman,
-Nadene Lynn, Memorandum No. UCB/ERL M82/32, May 1982.
-</dl>
-<h3>Database Systems Theory</h3>
-<p>These publications are standard reference works on the design and
-implementation of database systems. Berkeley DB uses many of the ideas they
-describe.
-<p><dl compact>
-<p><dt><i>Transaction Processing Concepts and Techniques</i><dd>by Jim Gray and Andreas Reuter, Morgan Kaufmann Publishers.
-We recommend chapters 1, 4 (skip 4.6, 4.7, 4.9, 4.10 and 4.11),
-7, 9, 10.3, and 10.4.
-<p><dt><i>An Introduction to Database Systems, Volume 1</i><dd>by C.J. Date, Addison Wesley Longman Publishers.
-In the 5th Edition, we recommend chapters 1, 2, 3, 16 and 17.
-<p><dt><i>Concurrency Control and Recovery in Database Systems</i><dd>by Bernstein, Goodman, Hadzilaco. Currently out of print, but available
-from <a href="http://research.microsoft.com/pubs/ccontrol/">http://research.microsoft.com/pubs/ccontrol/</a>.
-</dl>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/distrib/layout.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/refs/witold.html b/bdb/docs/ref/refs/witold.html
deleted file mode 100644
index d81065e66c4..00000000000
--- a/bdb/docs/ref/refs/witold.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<!--$Id: witold.so,v 10.4 1999/11/19 17:21:03 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Witold Litwin</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<h1 align=center>Witold Litwin</h1>
-Witold is a hell of a guy to take you on a late-night high-speed car
-chase up the mountains of Austria in search of very green wine.
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/rpc/client.html b/bdb/docs/ref/rpc/client.html
deleted file mode 100644
index e8eb90dcfe1..00000000000
--- a/bdb/docs/ref/rpc/client.html
+++ /dev/null
@@ -1,75 +0,0 @@
-<!--$Id: client.so,v 1.6 2000/03/18 21:43:16 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Client program</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>RPC Client/Server</dl></h3></td>
-<td width="1%"><a href="../../ref/rpc/intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/rpc/server.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Client program</h1>
-<p>Changing a Berkeley DB application to remotely call a server program requires
-only a few changes on the client side:
-<p><ol>
-<p><li>The client application must create and use a Berkeley DB environment,
-that is, it cannot simply call the <a href="../../api_c/db_create.html">db_create</a> interface, but must
-first call the <a href="../../api_c/env_create.html">db_env_create</a> interface to create an environment in
-which the database will live.
-<p><li>The client application must call <a href="../../api_c/env_create.html">db_env_create</a> using the
-<a href="../../api_c/env_create.html#DB_CLIENT">DB_CLIENT</a> flag.
-<p><li>The client application must call the additional DB_ENV
-method <a href="../../api_c/env_set_server.html">DBENV-&gt;set_server</a> to specify the database server. This call
-must be made before opening the environment with the <a href="../../api_c/env_open.html">DBENV-&gt;open</a>
-call.
-</ol>
-<p>The client application provides three pieces of information to Berkeley DB as
-part of the <a href="../../api_c/env_set_server.html">DBENV-&gt;set_server</a> call:
-<p><ol>
-<p><li>The hostname of the server. The hostname format is not
-specified by Berkeley DB, but must be in a format acceptable to the local
-network support, specifically, the RPC clnt_create interface.
-<p><li>The client timeout. This is the number of seconds the client
-will wait for the server to respond to its requests. A default is used
-if this value is zero.
-<p><li>The server timeout. This is the number of seconds the server
-will allow client resources to remain idle before releasing those
-resources. The resources this applies to are transactions and cursors,
-as those objects hold locks and if a client dies, the server needs to
-release those resources in a timely manner. This value
-is really a hint to the server, as the server may choose to override this
-value with its own.
-</ol>
-<p>The only other item of interest to the client is the home directory
-that is given to the <a href="../../api_c/env_open.html">DBENV-&gt;open</a> call.
-The server is started with a list of allowed home directories.
-The client must use one of those names (where a name is the last
-component of the home directory). This allows the pathname structure
-on the server to change without client applications needing to be
-aware of it.
-<p>Once the <a href="../../api_c/env_set_server.html">DBENV-&gt;set_server</a> call has been made, the client is
-connected to the server and all subsequent Berkeley DB
-operations will be forwarded to the server. The client does not need to
-be otherwise aware that it is using a database server rather than
-accessing the database locally.
-<p>It is important to realize that the client portion of the Berkeley DB library
-acts as a simple conduit, forwarding Berkeley DB interface arguments to the
-server without interpretation. This has two important implications.
-First, all pathnames must be specified relative to the server. For
-example, the home directory and other configuration information passed by
-the application when creating its environment or databases must be
-pathnames for the server, not the client system. In addition, as there
-is no logical bundling of operations at the server, performance is usually
-significantly less than when Berkeley DB is embedded within the client's address
-space, even if the RPC is to a local address.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/rpc/intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/rpc/server.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/rpc/intro.html b/bdb/docs/ref/rpc/intro.html
deleted file mode 100644
index 25e4f4aea61..00000000000
--- a/bdb/docs/ref/rpc/intro.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!--$Id: intro.so,v 1.6 2000/12/04 21:51:04 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Introduction</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>RPC Client/Server</dl></h3></td>
-<td width="1%"><a href="../../ref/txn/other.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/rpc/client.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Introduction</h1>
-<p>Berkeley DB includes a basic implementation of a client-server protocol, using
-Sun Microsystem's Remote Procedure Call Protocol. RPC support is only
-available for UNIX systems, and is not included in the Berkeley DB library by
-default, but must be enabled during configuration. See
-<a href="../../ref/build_unix/conf.html">Configuring Berkeley DB</a> for more
-information. For more information on RPC itself, see your UNIX system
-documentation or <i>RPC: Remote Procedure Call Protocol
-Specification, RFC1832, Sun Microsystems, Inc., USC-ISI</i>.
-<p>Only some of the complete Berkeley DB functionality is available when using RPC.
-The following functionality is available:
-<p><ol>
-<li>The <a href="../../api_c/env_create.html">db_env_create</a> interface and the DB_ENV
-handle methods.
-<li>The <a href="../../api_c/db_create.html">db_create</a> interface and the DB handle
-methods.
-<li>The <a href="../../api_c/txn_begin.html">txn_begin</a>, <a href="../../api_c/txn_commit.html">txn_commit</a> and
-<a href="../../api_c/txn_abort.html">txn_abort</a> interfaces.
-</ol>
-<p>The RPC client/server code does not support any of the user-defined
-comparison or allocation functions, e.g., an application using the RPC
-support may not specify its own Btree comparison function. If your
-application only requires those portions of Berkeley DB, then using RPC is
-fairly simple. If your application requires other Berkeley DB functionality,
-such as direct access to locking, logging or shared memory buffer memory
-pools, then your application cannot use the RPC support.
-<p><b>The Berkeley DB RPC support does not provide any security or authentication of
-any kind.</b> Sites needing any kind of data security measures must modify
-the client and server code to provide whatever level of security they
-require.
-<p>One particularly interesting use of the RPC support is for debugging Berkeley DB
-applications. The seamless nature of the interface means that with very
-minor application code changes, an application can run outside of the
-Berkeley DB address space, making it far easier to track down many types of
-errors such as memory misuse.
-<p>Using the RPC mechanisms in Berkeley DB involves two basic steps:
-<p><ol>
-<p><li>Modify your Berkeley DB application to act as a client and call the
-RPC server.
-<li>Run the <a href="../../utility/berkeley_db_svc.html">berkeley_db_svc</a> server program on the system
-where the database resides.
-</ol>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/txn/other.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/rpc/client.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/rpc/server.html b/bdb/docs/ref/rpc/server.html
deleted file mode 100644
index 64572a90d30..00000000000
--- a/bdb/docs/ref/rpc/server.html
+++ /dev/null
@@ -1,54 +0,0 @@
-<!--$Id: server.so,v 1.6 2000/03/18 21:43:16 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Server program</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>RPC Client/Server</dl></h3></td>
-<td width="1%"><a href="../../ref/rpc/client.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/java/conf.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Server program</h1>
-<p>The Berkeley DB server utility, <a href="../../utility/berkeley_db_svc.html">berkeley_db_svc</a>, handles all of the
-client application requests.
-<p>Currently, the <a href="../../utility/berkeley_db_svc.html">berkeley_db_svc</a> utility is single-threaded,
-limiting the number of requests that it can handle. Modifying the server
-implementation to run in multi-thread or multi-process mode will require
-modification of the server code automatically generated by the rpcgen
-program.
-<p>There are two different types of timeouts used by <a href="../../utility/berkeley_db_svc.html">berkeley_db_svc</a>.
-The first timeout (which can be modified within some constraints by the
-client application), is the resource timeout. When clients use
-transactions or cursors, those resources hold locks in Berkeley DB across calls
-to the server. If a client application dies or loses its connection to
-the server while holding those resources, it prevents any other client
-from acquiring them. Therefore, it is important to detect that a client
-has not used a resource for some period of time and release them. In the
-case of transactions, the server aborts the transaction. In the case of
-cursors, the server closes the cursor.
-<p>The second timeout is an idle timeout. A client application may remain
-idle with an open handle to an environment and a database. Doing so
-simply consumes some memory, it does not hold locks. However, the Berkeley DB
-server may want to eventually reclaim resources if a client dies or
-remains disconnected for a long period of time, so there is a separate
-idle timeout for open Berkeley DB handles.
-<p>The list of home directories specified to <a href="../../utility/berkeley_db_svc.html">berkeley_db_svc</a> are the
-only ones client applications are allowed to use. When
-<a href="../../utility/berkeley_db_svc.html">berkeley_db_svc</a> is started, it is given a list of pathnames.
-Clients are expected to specify the name of the home directory (defined
-as the last component in the directory pathname) as the database
-environment they are opening. In this manner, clients need only know the
-name of their home environment, and not its full pathname on the server
-machine. This means, of course, that only one environment of a particular
-name is allowed on the server at any given time.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/rpc/client.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/java/conf.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/sendmail/intro.html b/bdb/docs/ref/sendmail/intro.html
deleted file mode 100644
index 9dc1b4a141e..00000000000
--- a/bdb/docs/ref/sendmail/intro.html
+++ /dev/null
@@ -1,51 +0,0 @@
-<!--$Id: intro.so,v 10.20 2001/01/09 18:48:06 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Using Berkeley DB with Sendmail</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Sendmail</dl></h3></td>
-<td width="1%"><a href="../../ref/tcl/faq.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/dumpload/utility.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Using Berkeley DB with Sendmail</h1>
-<p>If you are attempting to use Berkeley DB with Sendmail 8.8.X, you must use
-Berkeley DB version 1.85 (see the Sleepycat Software web site's
-<a href="http://www.sleepycat.com/historic.html">historic releases</a>
-of Berkeley DB page for more information.
-<p>Berkeley DB versions 2.0 and later are only supported by Sendmail versions 8.9.X
-and later.
-<p>Berkeley DB versions 3.0 and later are only supported by Sendmail versions
-8.10.X and later.
-<p>We strongly recommend that you not use Berkeley DB version 1.85. It is no longer
-maintained or supported and has known bugs that can cause Sendmail to
-fail. Instead, please upgrade to Sendmail version 8.9.X or later and use
-a later version of Berkeley DB. For more information on using Berkeley DB with
-Sendmail, please review the README and src/README files in the Sendmail
-distribution.
-<p>To load sendmail against Berkeley DB, add the following lines to
-BuildTools/Site/site.config.m4:
-<p><blockquote><pre>APPENDDEF(`confINCDIRS', `-I/usr/local/BerkeleyDB/include')
-APPENDDEF(`confLIBDIRS', `-L/usr/local/BerkeleyDB/lib')</pre></blockquote>
-<p>where those are the paths to #include &lt;db.h&gt; and libdb.a respectively.
-Then, run "Build -c" from the src directory.
-<p>Note that this Build script will use -DNEWDB on the compiles
-and -L/path/to/libdb/directory -ldb on the link if it can find libdb.a;
-the search path is $LIBDIRS:/lib:/usr/lib:/usr/shlib. $LIBDIRS is
-NULL by default for most systems, but some set it in BuildTools/OS/foo.
-Anyone can append to it as above (confLIBDIRS is the m4 variable name;
-LIBDIRS is the shell-script variable name).
-<p>To download Sendmail, or to obtain more information on Sendmail, see the
-<a href="http://www.sendmail.org">Sendmail home page</a>, which includes
-FAQ pages and problem addresses.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/tcl/faq.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/dumpload/utility.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/simple_tut/close.html b/bdb/docs/ref/simple_tut/close.html
deleted file mode 100644
index a268a591c7d..00000000000
--- a/bdb/docs/ref/simple_tut/close.html
+++ /dev/null
@@ -1,102 +0,0 @@
-<!--$Id: close.so,v 10.22 2000/12/18 21:05:15 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Closing a database</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Simple Tutorial</dl></h3></td>
-<td width="1%"><a href="../../ref/simple_tut/del.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_conf/intro.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Closing a database</h1>
-<p>The only other operation that we need for our simple example is closing
-the database, and cleaning up the DB handle.
-<p>It is necessary that the database be closed. The most important reason
-for this is that Berkeley DB runs on top of an underlying buffer cache. If
-the modified database pages are never explicitly flushed to disk and
-the database is never closed, changes made to the database may never
-make it out to disk, because they are held in the Berkeley DB cache. As the
-default behavior of the close function is to flush the Berkeley DB cache,
-closing the database will update the on-disk information.
-<p>The <a href="../../api_c/db_close.html">DB-&gt;close</a> interface takes two arguments:
-<p><dl compact>
-<p><dt>db<dd>The database handle returned by <a href="../../api_c/db_create.html">db_create</a>.
-<p><dt>flags<dd>Optional flags modifying the underlying behavior of the <a href="../../api_c/db_close.html">DB-&gt;close</a>
-interface.
-</dl>
-<p>Here's what the code to call <a href="../../api_c/db_close.html">DB-&gt;close</a> looks like:
-<p><blockquote><pre>#include &lt;sys/types.h&gt;
-#include &lt;stdio.h&gt;
-#include &lt;db.h&gt;
-<p>
-#define DATABASE "access.db"
-<p>
-int
-main()
-{
- DB *dbp;
- DBT key, data;
- <b>int ret, t_ret;</b>
-<p>
- if ((ret = db_create(&dbp, NULL, 0)) != 0) {
- fprintf(stderr, "db_create: %s\n", db_strerror(ret));
- exit (1);
- }
- if ((ret = dbp-&gt;open(
- dbp, DATABASE, NULL, DB_BTREE, DB_CREATE, 0664)) != 0) {
- dbp-&gt;err(dbp, ret, "%s", DATABASE);
- goto err;
- }
-<p>
- memset(&key, 0, sizeof(key));
- memset(&data, 0, sizeof(data));
- key.data = "fruit";
- key.size = sizeof("fruit");
- data.data = "apple";
- data.size = sizeof("apple");
-<p>
- if ((ret = dbp-&gt;put(dbp, NULL, &key, &data, 0)) == 0)
- printf("db: %s: key stored.\n", (char *)key.data);
- else {
- dbp-&gt;err(dbp, ret, "DB-&gt;put");
- goto err;
- }
-<p>
- if ((ret = dbp-&gt;get(dbp, NULL, &key, &data, 0)) == 0)
- printf("db: %s: key retrieved: data was %s.\n",
- (char *)key.data, (char *)data.data);
- else {
- dbp-&gt;err(dbp, ret, "DB-&gt;get");
- goto err;
- }
-<p>
- if ((ret = dbp-&gt;del(dbp, NULL, &key, 0)) == 0)
- printf("db: %s: key was deleted.\n", (char *)key.data);
- else {
- dbp-&gt;err(dbp, ret, "DB-&gt;del");
- goto err;
- }
-<p>
- if ((ret = dbp-&gt;get(dbp, NULL, &key, &data, 0)) == 0)
- printf("db: %s: key retrieved: data was %s.\n",
- (char *)key.data, (char *)data.data);
- else
- dbp-&gt;err(dbp, ret, "DB-&gt;get");
-<p><b>err: if ((t_ret = dbp-&gt;close(dbp, 0)) != 0 && ret == 0)
- ret = t_ret; </b>
-<p>
- exit(ret);
-}
-</pre></blockquote>
-<p>Note that we do not necessarily overwrite the <b>ret</b> variable, as it
-may contain error return information from a previous Berkeley DB call.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/simple_tut/del.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/am_conf/intro.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/simple_tut/del.html b/bdb/docs/ref/simple_tut/del.html
deleted file mode 100644
index ac4d4126033..00000000000
--- a/bdb/docs/ref/simple_tut/del.html
+++ /dev/null
@@ -1,93 +0,0 @@
-<!--$Id: del.so,v 10.20 2000/03/18 21:43:17 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Removing elements from a database</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Simple Tutorial</dl></h3></td>
-<td width="1%"><a href="../../ref/simple_tut/get.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/simple_tut/close.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Removing elements from a database</h1>
-<p>The simplest way to remove elements from a database is the <a href="../../api_c/db_del.html">DB-&gt;del</a>
-interface.
-<p>The <a href="../../api_c/db_del.html">DB-&gt;del</a> interface takes four of the same five arguments that
-the <a href="../../api_c/db_get.html">DB-&gt;get</a> and <a href="../../api_c/db_put.html">DB-&gt;put</a> interfaces take. The difference
-is that there is no need to specify a data item, as the delete operation
-is only interested in the key that you want to remove.
-<p><dl compact>
-<p><dt>db<dd>The database handle returned by <a href="../../api_c/db_create.html">db_create</a>.
-<p><dt>txnid<dd>A transaction ID.
-In our simple case, we aren't expecting to recover the database after
-application or system crash, so we aren't using transactions, and will
-leave this argument unspecified.
-<p><dt>key<dd>The key item for the key/data pair that we want to delete from the
-database.
-<p><dt>flags<dd>Optional flags modifying the underlying behavior of the <a href="../../api_c/db_del.html">DB-&gt;del</a>
-interface. There are currently no available flags for this interface,
-so the flags argument should always be set to 0.
-</dl>
-<p>Here's what the code to call <a href="../../api_c/db_del.html">DB-&gt;del</a> looks like:
-<p><blockquote><pre>#include &lt;sys/types.h&gt;
-#include &lt;stdio.h&gt;
-#include &lt;db.h&gt;
-<p>
-#define DATABASE "access.db"
-<p>
-int
-main()
-{
- DB *dbp;
- DBT key, data;
- int ret;
-<p>
- if ((ret = db_create(&dbp, NULL, 0)) != 0) {
- fprintf(stderr, "db_create: %s\n", db_strerror(ret));
- exit (1);
- }
- if ((ret = dbp-&gt;open(
- dbp, DATABASE, NULL, DB_BTREE, DB_CREATE, 0664)) != 0) {
- dbp-&gt;err(dbp, ret, "%s", DATABASE);
- goto err;
- }
-<p>
- memset(&key, 0, sizeof(key));
- memset(&data, 0, sizeof(data));
- key.data = "fruit";
- key.size = sizeof("fruit");
- data.data = "apple";
- data.size = sizeof("apple");
-<p>
- if ((ret = dbp-&gt;put(dbp, NULL, &key, &data, 0)) == 0)
- printf("db: %s: key stored.\n", (char *)key.data);
- else {
- dbp-&gt;err(dbp, ret, "DB-&gt;put");
- goto err;
- }
-<p>
- if ((ret = dbp-&gt;get(dbp, NULL, &key, &data, 0)) == 0)
- printf("db: %s: key retrieved: data was %s.\n",
- (char *)key.data, (char *)data.data);
- else {
- dbp-&gt;err(dbp, ret, "DB-&gt;get");
- goto err;
- }
-<p><b> if ((ret = dbp-&gt;del(dbp, NULL, &key, 0)) == 0)
- printf("db: %s: key was deleted.\n", (char *)key.data);
- else {
- dbp-&gt;err(dbp, ret, "DB-&gt;del");
- goto err;
- }
-</b></pre></blockquote>
-<p>After the <a href="../../api_c/db_del.html">DB-&gt;del</a> call returns, the entry referenced by the key
-fruit has been removed from the database.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/simple_tut/get.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/simple_tut/close.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/simple_tut/errors.html b/bdb/docs/ref/simple_tut/errors.html
deleted file mode 100644
index bb7e8a67184..00000000000
--- a/bdb/docs/ref/simple_tut/errors.html
+++ /dev/null
@@ -1,46 +0,0 @@
-<!--$Id: errors.so,v 10.19 2000/12/14 21:42:18 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Error returns</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Simple Tutorial</dl></h3></td>
-<td width="1%"><a href="../../ref/simple_tut/handles.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/simple_tut/open.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Error returns</h1>
-<p>The Berkeley DB interfaces always return a value of 0 on success. If the
-operation does not succeed for any reason, the return value will be
-non-zero.
-<p>If a system error occurred (e.g., Berkeley DB ran out of disk space, or
-permission to access a file was denied, or an illegal argument was
-specified to one of the interfaces), Berkeley DB returns an <b>errno</b>
-value. All of the possible values of <b>errno</b> are greater than
-0.
-<p>If the operation didn't fail due to a system error, but wasn't
-successful either, Berkeley DB returns a special error value. For example,
-if you tried to retrieve the data item associated with the key
-<b>fruit</b>, and there was no such key/data pair in the database,
-Berkeley DB would return <a href="../../ref/program/errorret.html#DB_NOTFOUND">DB_NOTFOUND</a>, a special error value that means
-the requested key does not appear in the database. All of the possible
-special error values are less than 0.
-<p>Berkeley DB also offers programmatic support for displaying error return values.
-First, the <a href="../../api_c/env_strerror.html">db_strerror</a> interface returns a pointer to the error
-message corresponding to any Berkeley DB error return, similar to the ANSI C
-strerror interface, but is able to handle both system error returns and
-Berkeley DB-specific return values.
-<p>Second, there are two error functions, <a href="../../api_c/db_err.html">DB-&gt;err</a> and <a href="../../api_c/db_err.html">DB-&gt;errx</a>.
-These functions work like the ANSI C printf interface, taking a
-printf-style format string and argument list, and optionally appending
-the standard error string to a message constructed from the format string
-and other arguments.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/simple_tut/handles.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/simple_tut/open.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/simple_tut/example.txt b/bdb/docs/ref/simple_tut/example.txt
deleted file mode 100644
index e610648d1c1..00000000000
--- a/bdb/docs/ref/simple_tut/example.txt
+++ /dev/null
@@ -1,73 +0,0 @@
-#include <sys/types.h>
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-
-#include "db.h"
-
-#define DATABASE "access.db"
-
-int
-main()
-{
- DB *dbp;
- DBT key, data;
- int ret, t_ret;
-
- /* Create the database handle and open the underlying database. */
- if ((ret = db_create(&dbp, NULL, 0)) != 0) {
- fprintf(stderr, "db_create: %s\n", db_strerror(ret));
- exit (1);
- }
- if ((ret =
- dbp->open(dbp, DATABASE, NULL, DB_BTREE, DB_CREATE, 0664)) != 0) {
- dbp->err(dbp, ret, "%s", DATABASE);
- goto err;
- }
-
- /* Initialize key/data structures. */
- memset(&key, 0, sizeof(key));
- memset(&data, 0, sizeof(data));
- key.data = "fruit";
- key.size = sizeof("fruit");
- data.data = "apple";
- data.size = sizeof("apple");
-
- /* Store a key/data pair. */
- if ((ret = dbp->put(dbp, NULL, &key, &data, 0)) == 0)
- printf("db: %s: key stored.\n", (char *)key.data);
- else {
- dbp->err(dbp, ret, "DB->put");
- goto err;
- }
-
- /* Retrieve a key/data pair. */
- if ((ret = dbp->get(dbp, NULL, &key, &data, 0)) == 0)
- printf("db: %s: key retrieved: data was %s.\n",
- (char *)key.data, (char *)data.data);
- else {
- dbp->err(dbp, ret, "DB->get");
- goto err;
- }
-
- /* Delete a key/data pair. */
- if ((ret = dbp->del(dbp, NULL, &key, 0)) == 0)
- printf("db: %s: key was deleted.\n", (char *)key.data);
- else {
- dbp->err(dbp, ret, "DB->del");
- goto err;
- }
-
- /* Retrieve a key/data pair. */
- if ((ret = dbp->get(dbp, NULL, &key, &data, 0)) == 0)
- printf("db: %s: key retrieved: data was %s.\n",
- (char *)key.data, (char *)data.data);
- else
- dbp->err(dbp, ret, "DB->get");
-
-err: if ((t_ret = dbp->close(dbp, 0)) != 0 && ret == 0)
- ret = t_ret;
-
- exit(ret);
-}
diff --git a/bdb/docs/ref/simple_tut/get.html b/bdb/docs/ref/simple_tut/get.html
deleted file mode 100644
index 697aa8f511c..00000000000
--- a/bdb/docs/ref/simple_tut/get.html
+++ /dev/null
@@ -1,97 +0,0 @@
-<!--$Id: get.so,v 10.23 2000/12/14 21:42:18 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Retrieving elements from a database</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Simple Tutorial</dl></h3></td>
-<td width="1%"><a href="../../ref/simple_tut/put.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/simple_tut/del.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Retrieving elements from a database</h1>
-<p>The simplest way to retrieve elements from a database is the
-<a href="../../api_c/db_get.html">DB-&gt;get</a> interface.
-<p>The <a href="../../api_c/db_get.html">DB-&gt;get</a> interface takes the same five arguments that the
-<a href="../../api_c/db_put.html">DB-&gt;put</a> interface takes:
-<p><dl compact>
-<p><dt>db<dd>The database handle returned by <a href="../../api_c/db_create.html">db_create</a>.
-<p><dt>txnid<dd>A transaction ID. In our simple case, we aren't expecting to recover
-the database after application or system crash, so we aren't using
-transactions, and will leave this argument NULL.
-<p><dt>key<dd>The key item for the key/data pair that we want to retrieve from the
-database.
-<p><dt>data<dd>The data item for the key/data pair that we want to retrieve from the
-database.
-<p><dt>flags<dd>Optional flags modifying the underlying behavior of the <a href="../../api_c/db_get.html">DB-&gt;get</a>
-interface.
-</dl>
-<p>Here's what the code to call <a href="../../api_c/db_get.html">DB-&gt;get</a> looks like:
-<p><blockquote><pre>#include &lt;sys/types.h&gt;
-#include &lt;stdio.h&gt;
-#include &lt;db.h&gt;
-<p>
-#define DATABASE "access.db"
-<p>
-int
-main()
-{
- DB *dbp;
- DBT key, data;
- int ret;
-<p>
- if ((ret = db_create(&dbp, NULL, 0)) != 0) {
- fprintf(stderr, "db_create: %s\n", db_strerror(ret));
- exit (1);
- }
- if ((ret = dbp-&gt;open(
- dbp, DATABASE, NULL, DB_BTREE, DB_CREATE, 0664)) != 0) {
- dbp-&gt;err(dbp, ret, "%s", DATABASE);
- goto err;
- }
-<p>
- memset(&key, 0, sizeof(key));
- memset(&data, 0, sizeof(data));
- key.data = "fruit";
- key.size = sizeof("fruit");
- data.data = "apple";
- data.size = sizeof("apple");
-<p>
- if ((ret = dbp-&gt;put(dbp, NULL, &key, &data, 0)) == 0)
- printf("db: %s: key stored.\n", (char *)key.data);
- else {
- dbp-&gt;err(dbp, ret, "DB-&gt;put");
- goto err;
- }
-<p><b> if ((ret = dbp-&gt;get(dbp, NULL, &key, &data, 0)) == 0)
- printf("db: %s: key retrieved: data was %s.\n",
- (char *)key.data, (char *)data.data);
- else {
- dbp-&gt;err(dbp, ret, "DB-&gt;get");
- goto err;
- }
-</b></pre></blockquote>
-<p>It is not usually necessary to clear the <a href="../../api_c/dbt.html">DBT</a> structures passed
-to the Berkeley DB functions between calls. This is not always true, when
-some of the less commonly used flags for <a href="../../api_c/dbt.html">DBT</a> structures are
-used. The <a href="../../api_c/dbt.html">DBT</a> manual page specified the details of those cases.
-<p>It is possible, of course, to distinguish between system errors and the
-key/data pair simply not existing in the database. There are three
-standard returns from <a href="../../api_c/db_get.html">DB-&gt;get</a>:
-<p><ol>
-<p><li>The call might be successful and the key found, in which case the return
-value will be 0.
-<li>The call might be successful, but the key not found, in which case the
-return value will be <a href="../../ref/program/errorret.html#DB_NOTFOUND">DB_NOTFOUND</a>.
-<li>The call might not be successful, in which case the return value will
-be a system error.
-</ol>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/simple_tut/put.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/simple_tut/del.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/simple_tut/handles.html b/bdb/docs/ref/simple_tut/handles.html
deleted file mode 100644
index 2396a224ee9..00000000000
--- a/bdb/docs/ref/simple_tut/handles.html
+++ /dev/null
@@ -1,29 +0,0 @@
-<!--$Id: handles.so,v 10.8 2000/03/18 21:43:17 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Handles</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Simple Tutorial</dl></h3></td>
-<td width="1%"><a href="../../ref/simple_tut/keydata.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/simple_tut/errors.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Handles</h1>
-<p>With a few minor exceptions, Berkeley DB functionality is accessed by creating
-a structure and then calling functions that are fields in that structure.
-This is, of course, similar to object-oriented concepts, of instances and
-methods on them. For simplicity, we will often refer to these structure
-fields as methods of the handle.
-<p>The manual pages will show these methods as C structure references. For
-example, the open-a-database method for a database handle is represented
-as <a href="../../api_c/db_open.html">DB-&gt;open</a>.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/simple_tut/keydata.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/simple_tut/errors.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/simple_tut/intro.html b/bdb/docs/ref/simple_tut/intro.html
deleted file mode 100644
index a9b6f648cf5..00000000000
--- a/bdb/docs/ref/simple_tut/intro.html
+++ /dev/null
@@ -1,40 +0,0 @@
-<!--$Id: intro.so,v 10.20 2000/12/04 18:05:44 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Introduction</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Simple Tutorial</dl></h3></td>
-<td width="1%"><a href="../../ref/intro/products.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/simple_tut/keydata.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Introduction</h1>
-<p>As an introduction to Berkeley DB, we will present a few Berkeley DB programming
-concepts, and then a simple database application.
-<p>The programming concepts are:
-<ul type=disc>
-<li><a href="keydata.html">Key/data pairs</a>
-<li><a href="handles.html">Object handles</a>
-<li><a href="errors.html">Error returns</a>
-</ul>
-<p>This database application will:
-<ul type=disc>
-<li><a href="open.html">Create a simple database</a>
-<li><a href="put.html">Store items</a>
-<li><a href="get.html">Retrieve items</a>
-<li><a href="del.html">Remove items</a>
-<li><a href="close.html">Close the database</a>
-</ul>
-<p>The introduction will be presented using the programming language C. The
-<a href="example.txt">complete source</a> of the final version of the
-example program is included in the Berkeley DB distribution.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/intro/products.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/simple_tut/keydata.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/simple_tut/keydata.html b/bdb/docs/ref/simple_tut/keydata.html
deleted file mode 100644
index 38d34aebc5a..00000000000
--- a/bdb/docs/ref/simple_tut/keydata.html
+++ /dev/null
@@ -1,48 +0,0 @@
-<!--$Id: keydata.so,v 10.19 2000/12/14 21:42:18 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Key/data pairs</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Simple Tutorial</dl></h3></td>
-<td width="1%"><a href="../../ref/simple_tut/intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/simple_tut/handles.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Key/data pairs</h1>
-<p>Berkeley DB uses key/data pairs to identify elements in the database.
-That is, in the general case, whenever you call a Berkeley DB interface,
-you present a key to identify the key/data pair on which you intend
-to operate.
-<p>For example, you might store some key/data pairs as follows:
-<p><table border=1>
-<tr><th>Key:</th><th>Data:</th></tr>
-<tr><td>fruit</td><td>apple</td></tr>
-<tr><td>sport</td><td>cricket</td></tr>
-<tr><td>drink</td><td>water</td></tr>
-</table>
-<p>In each case, the first element of the pair is the key, and the second is
-the data. To store the first of these key/data pairs into the database,
-you would call the Berkeley DB interface to store items, with <b>fruit</b> as
-the key, and <b>apple</b> as the data. At some future time, you could
-then retrieve the data item associated with <b>fruit</b>, and the Berkeley DB
-retrieval interface would return <b>apple</b> to you. While there are
-many variations and some subtleties, all accesses to data in Berkeley DB come
-down to key/data pairs.
-<p>Both key and data items are stored in simple structures (called
-<a href="../../api_c/dbt.html">DBT</a>s) that contain a reference to memory and a length, counted
-in bytes. (The name <a href="../../api_c/dbt.html">DBT</a> is an acronym for <i>database
-thang</i>, chosen because nobody could think of a sensible name that wasn't
-already in use somewhere else.) Key and data items can be arbitrary
-binary data of practically any length, including 0 bytes. There is a
-single data item for each key item, by default, but databases can be
-configured to support multiple data items for each key item.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/simple_tut/intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/simple_tut/handles.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/simple_tut/open.html b/bdb/docs/ref/simple_tut/open.html
deleted file mode 100644
index 24df8a8e17f..00000000000
--- a/bdb/docs/ref/simple_tut/open.html
+++ /dev/null
@@ -1,90 +0,0 @@
-<!--$Id: open.so,v 10.27 2000/12/14 21:42:18 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Opening a database</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Simple Tutorial</dl></h3></td>
-<td width="1%"><a href="../../ref/simple_tut/errors.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/simple_tut/put.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Opening a database</h1>
-<p>Opening a database is done in two steps: first, a DB handle is
-created using the Berkeley DB <a href="../../api_c/db_create.html">db_create</a> interface, and then the
-actual database is opened using the <a href="../../api_c/db_open.html">DB-&gt;open</a> function.
-<p>The <a href="../../api_c/db_create.html">db_create</a> interface takes three arguments:
-<p><dl compact>
-<p><dt>dbp<dd>A location to store a reference to the created structure.
-<p><dt>environment<dd>A location to specify an enclosing Berkeley DB environment, not used in our
-example.
-<p><dt>flags<dd>A placeholder for flags, not used in our example.
-</dl>
-<p>The <a href="../../api_c/db_open.html">DB-&gt;open</a> interface takes five arguments:
-<p><dl compact>
-<p><dt>file<dd>The name of the database file to be opened.
-<p><dt>database<dd>The optional database name, not used in this example.
-<p><dt>type<dd>The type of database to open. This value will be one of the four access
-methods Berkeley DB supports: DB_BTREE, DB_HASH, DB_QUEUE or DB_RECNO, or the
-special value DB_UNKNOWN, which allows you to open an existing file
-without knowing its type.
-<p><dt>flags<dd>Various flags that modify the behavior of <a href="../../api_c/db_open.html">DB-&gt;open</a>. In our
-simple case, the only interesting flag is <a href="../../api_c/env_open.html#DB_CREATE">DB_CREATE</a>. This flag
-behaves similarly to the IEEE/ANSI Std 1003.1 (POSIX) O_CREATE flag to the open system
-call, causing Berkeley DB to create the underlying database if it does not
-yet exist.
-<p><dt>mode<dd>The file mode of any underlying files that <a href="../../api_c/db_open.html">DB-&gt;open</a> will create.
-The mode behaves as does the IEEE/ANSI Std 1003.1 (POSIX) mode argument to the open
-system call, and specifies file read, write and execute permissions.
-Of course, only the read and write permissions are relevant to Berkeley DB.
-</dl>
-<p>Here's what the code to create the handle and then call <a href="../../api_c/db_open.html">DB-&gt;open</a>
-looks like:
-<p><blockquote><pre><b>#include &lt;sys/types.h&gt;
-#include &lt;stdio.h&gt;
-#include &lt;db.h&gt;
-<p>
-#define DATABASE "access.db"
-<p>
-int
-main()
-{
- DB *dbp;
- int ret;
-<p>
- if ((ret = db_create(&dbp, NULL, 0)) != 0) {
- fprintf(stderr, "db_create: %s\n", db_strerror(ret));
- exit (1);
- }
- if ((ret = dbp-&gt;open(
- dbp, DATABASE, NULL, DB_BTREE, DB_CREATE, 0664)) != 0) {
- dbp-&gt;err(dbp, ret, "%s", DATABASE);
- goto err;
- }</b>
-</pre></blockquote>
-<p>If the call to <a href="../../api_c/db_create.html">db_create</a> is successful, the variable <b>dbp</b>
-will contain a database handle that will be used to configure and access
-an underlying database.
-<p>As you see, the program opens a database named <b>access.db</b>. The
-underlying database is a Btree. Because the <a href="../../api_c/env_open.html#DB_CREATE">DB_CREATE</a> flag was
-specified, the file will be created if it does not already exist. The
-mode of any created files will be 0664 (i.e., readable and writeable by
-the owner and the group, and readable by everyone else).
-<p>One additional function call is used in this code sample, <a href="../../api_c/db_err.html">DB-&gt;err</a>.
-This method works like the ANSI C printf interface. The second argument
-is the error return from a Berkeley DB function, and the rest of the arguments
-are a printf-style format string and argument list. The error message
-associated with the error return will be appended to a message constructed
-from the format string and other arguments. In the above code, if the
-<a href="../../api_c/db_open.html">DB-&gt;open</a> call were to fail, the message it would display would be
-something like
-<p><blockquote><pre>access.db: Operation not permitted</pre></blockquote>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/simple_tut/errors.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/simple_tut/put.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/simple_tut/put.html b/bdb/docs/ref/simple_tut/put.html
deleted file mode 100644
index 8ecdfa6cabf..00000000000
--- a/bdb/docs/ref/simple_tut/put.html
+++ /dev/null
@@ -1,127 +0,0 @@
-<!--$Id: put.so,v 10.31 2000/12/18 21:05:15 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Adding elements to a database</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Simple Tutorial</dl></h3></td>
-<td width="1%"><a href="../../ref/simple_tut/open.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/simple_tut/get.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Adding elements to a database</h1>
-<p>The simplest way to add elements to a database is the <a href="../../api_c/db_put.html">DB-&gt;put</a>
-interface.
-<p>The <a href="../../api_c/db_put.html">DB-&gt;put</a> interface takes five arguments:
-<p><dl compact>
-<p><dt>db<dd>The database handle returned by <a href="../../api_c/db_create.html">db_create</a>.
-<p><dt>txnid<dd>A transaction handle. In our simple case, we aren't expecting to
-recover the database after application or system crash, so we aren't
-using transactions, and will leave this argument NULL.
-<p><dt>key<dd>The key item for the key/data pair that we want to add to the database.
-<p><dt>data<dd>The data item for the key/data pair that we want to add to the database.
-<p><dt>flags<dd>Optional flags modifying the underlying behavior of the <a href="../../api_c/db_put.html">DB-&gt;put</a>
-interface.
-</dl>
-<p>Here's what the code to call <a href="../../api_c/db_put.html">DB-&gt;put</a> looks like:
-<p><blockquote><pre>#include &lt;sys/types.h&gt;
-#include &lt;stdio.h&gt;
-#include &lt;db.h&gt;
-<p>
-#define DATABASE "access.db"
-<p>
-int
-main()
-{
- DB *dbp;
- <b>DBT key, data;</b>
- int ret;
-<p>
- if ((ret = db_create(&dbp, NULL, 0)) != 0) {
- fprintf(stderr, "db_create: %s\n", db_strerror(ret));
- exit (1);
- }
- if ((ret = dbp-&gt;open(
- dbp, DATABASE, NULL, DB_BTREE, DB_CREATE, 0664)) != 0) {
- dbp-&gt;err(dbp, ret, "%s", DATABASE);
- goto err;
- }
-<p><b> memset(&key, 0, sizeof(key));
- memset(&data, 0, sizeof(data));
- key.data = "fruit";
- key.size = sizeof("fruit");
- data.data = "apple";
- data.size = sizeof("apple");
-<p>
- if ((ret = dbp-&gt;put(dbp, NULL, &key, &data, 0)) == 0)
- printf("db: %s: key stored.\n", (char *)key.data);
- else {
- dbp-&gt;err(dbp, ret, "DB-&gt;put");
- goto err;
- }
-</b></pre></blockquote>
-<p>The first thing to notice about this new code is that we clear the
-<a href="../../api_c/dbt.html">DBT</a> structures that we're about to pass as arguments to Berkeley DB
-functions. This is very important, and being careful to do so will
-result in fewer errors in your programs. All Berkeley DB structures
-instantiated in the application and handed to Berkeley DB should be cleared
-before use, without exception. This is necessary so that future
-versions of Berkeley DB may add additional fields to the structures. If
-applications clear the structures before use, it will be possible for
-Berkeley DB to change those structures without requiring that the applications
-be rewritten to be aware of the changes.
-<p>Notice also that we're storing the trailing nul byte found in the C
-strings <b>"fruit"</b> and <b>"apple"</b> in both the key and data
-items, that is, the trailing nul byte is part of the stored key, and
-therefore has to be specified in order to access the data item. There is
-no requirement to store the trailing nul byte, it simply makes it easier
-for us to display strings that we've stored in programming languages that
-use nul bytes to terminate strings.
-<p>In many applications, it is important not to overwrite existing
-data. For example, we might not want to store the key/data pair
-<b>fruit/apple</b> if it already existed, e.g., if someone had
-previously stored the key/data pair <b>fruit/cherry</b> into the
-database.
-<p>This is easily accomplished by adding the <a href="../../api_c/db_put.html#DB_NOOVERWRITE">DB_NOOVERWRITE</a> flag to
-the <a href="../../api_c/db_put.html">DB-&gt;put</a> call:
-<p><blockquote><pre><b>if ((ret =
- dbp-&gt;put(dbp, NULL, &key, &data, DB_NOOVERWRITE)) == 0)
- printf("db: %s: key stored.\n", (char *)key.data);
-else {
- dbp-&gt;err(dbp, ret, "DB-&gt;put");
- goto err;
-}</b></pre></blockquote>
-<p>This flag causes the underlying database functions to not overwrite any
-previously existing key/data pair. (Note that the value of the previously
-existing data doesn't matter in this case. The only question is if a
-key/data pair already exists where the key matches the key that we are
-trying to store.)
-<p>Specifying <a href="../../api_c/db_put.html#DB_NOOVERWRITE">DB_NOOVERWRITE</a> opens up the possibility of a new
-Berkeley DB return value from the <a href="../../api_c/db_put.html">DB-&gt;put</a> function, <a href="../../api_c/dbc_put.html#DB_KEYEXIST">DB_KEYEXIST</a>,
-which means we were unable to add the key/data pair to the database
-because the key already existed in the database. While the above sample
-code simply displays a message in this case:
-<p><blockquote><pre>DB-&gt;put: DB_KEYEXIST: Key/data pair already exists</pre></blockquote>
-<p>The following code shows an explicit check for this possibility:
-<p><blockquote><pre><b>switch (ret =
- dbp-&gt;put(dbp, NULL, &key, &data, DB_NOOVERWRITE)) {
-case 0:
- printf("db: %s: key stored.\n", (char *)key.data);
- break;
-case DB_KEYEXIST:
- printf("db: %s: key previously stored.\n",
- (char *)key.data);
- break;
-default:
- dbp-&gt;err(dbp, ret, "DB-&gt;put");
- goto err;
-}</b></pre></blockquote>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/simple_tut/open.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/simple_tut/get.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/tcl/error.html b/bdb/docs/ref/tcl/error.html
deleted file mode 100644
index 3d1de037d52..00000000000
--- a/bdb/docs/ref/tcl/error.html
+++ /dev/null
@@ -1,69 +0,0 @@
-<!--$Id: error.so,v 11.13 2001/01/09 18:48:06 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Tcl error handling</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Tcl</dl></h3></td>
-<td width="1%"><a href="../../ref/tcl/program.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/tcl/faq.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Tcl error handling</h1>
-<p>The Tcl interfaces to Berkeley DB generally return TCL_OK on success and throw
-a Tcl error on failure, using the appropriate Tcl interfaces to provide
-the user with an informative error message. There are some "expected"
-failures, however, for which no Tcl error will be thrown and for which
-Tcl commands will return TCL_OK. These failures include when a
-searched-for key is not found, a requested key/data pair was previously
-deleted, or a key/data pair cannot be written because the key already
-exists.
-<p>These failures can be detected by searching the Berkeley DB error message that
-is returned. For example, to detect that an attempt to put a record into
-the database failed because the key already existed:
-<p><blockquote><pre>% berkdb open -create -btree a.db
-db0
-% db0 put dog cat
-0
-% set ret [db0 put -nooverwrite dog newcat]
-DB_KEYEXIST: Key/data pair already exists
-% if { [string first DB_KEYEXIST $ret] != -1 } {
- puts "This was an error; the key existed"
-}
-This was an error; the key existed
-% db0 close
-0
-% exit</pre></blockquote>
-<p>To simplify parsing, it is recommended that the initial Berkeley DB error name
-be checked, e.g., DB_KEYEXIST in the above example. These values will
-not change in future releases of Berkeley DB to ensure that Tcl scripts are not
-broken by upgrading to new releases of Berkeley DB. There are currently only
-three such "expected" error returns. They are:
-<p><blockquote><pre>DB_NOTFOUND: No matching key/data pair found
-DB_KEYEMPTY: Non-existent key/data pair
-DB_KEYEXIST: Key/data pair already exists</pre></blockquote>
-<p>Finally, in some cases, when a Berkeley DB error occurs Berkeley DB will output
-additional error information. By default, all Berkeley DB error messages will
-be prefixed with the created command in whose context the error occurred
-(e.g., "env0", "db2", etc.). There are several ways to capture and
-access this information.
-<p>First, if Berkeley DB invokes the error callback function, the additional
-information will be placed in the error result returned from the
-command and in the errorInfo backtrace variable in Tcl.
-<p>Also the two calls to open an environment and
-open a database take an option, <b>-errfile filename</b>, which sets an
-output file to which these additional error messages should be written.
-<p>Additionally the two calls to open an environment and
-open a database take an option, <b>-errpfx string</b>, which sets the
-error prefix to the given string. This option may be useful
-in circumstances where a more descriptive prefix is desired or
-where a constant prefix indicating an error is desired.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/tcl/program.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/tcl/faq.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/tcl/faq.html b/bdb/docs/ref/tcl/faq.html
deleted file mode 100644
index 29f63b42385..00000000000
--- a/bdb/docs/ref/tcl/faq.html
+++ /dev/null
@@ -1,60 +0,0 @@
-<!--$Id: faq.so,v 11.2 2001/01/15 17:50:48 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Frequently Asked Questions</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a> <a name="3"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Tcl API</dl></h3></td>
-<td width="1%"><a href="../../ref/tcl/error.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/sendmail/intro.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Frequently Asked Questions</h1>
-<p><ol>
-<p><li><b>I have several versions of Tcl installed. How do I configure
-Berkeley DB to use a particular version?</b>
-<p>To compile the Tcl interface with a particular version of Tcl, use the
---with-tcl option to specify the Tcl installation directory that contains
-the tclConfig.sh file.
-<p>See <a href="../../ref/build_unix/flags.html">Changing compile or load options</a>
-for more information.
-<hr size=1 noshade>
-<p><li><b>Berkeley DB was configured using --enable-tcl or --with-tcl and fails
-to build.</b>
-<p>The Berkeley DB Tcl interface requires Tcl version 8.1 or greater. You can
-download a copy of Tcl from the
-<a href="http://www.ajubasolutions.com/home.html">Ajuba Solutions</a>
-corporate web site.
-<hr size=1 noshade>
-<p><li><b>Berkeley DB was configured using --enable-tcl or --with-tcl and fails
-to build.</b>
-<p>If the Tcl installation was moved after it was configured and installed,
-try re-configuring and re-installing Tcl.
-<p>Also, some systems do not search for shared libraries by default, or do
-not search for shared libraries named the way the Tcl installation names
-them, or are searching for a different kind of library than those in
-your Tcl installation. For example, Linux systems often require linking
-"libtcl.a" to "libtcl#.#.a", while AIX systems often require adding the
-"-brtl" flag to the linker. A simpler solution that almost always works
-on all systems is to create a link from "libtcl.#.#.a" or "libtcl.so"
-(or whatever you happen to have) to "libtcl.a" and reconfigure.
-<hr size=1 noshade>
-<p><li><b>Loading the Berkeley DB library into Tcl on AIX causes a core dump.</b>
-<p>In some versions of Tcl, the "tclConfig.sh" autoconfiguration script
-created by the Tcl installation does not work properly under AIX. To
-build a working Berkeley DB Tcl API when this happens, use the "--enable-tcl"
-flag to configure Berkeley DB (rather than "--with-tcl"). In addition, you
-will have to specify any necessary include and library paths and linker
-flags needed to build with Tcl by setting the CPPFLAGS, LIBS and LDFLAGS
-environment variables before running configure.
-</ol>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/tcl/error.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/sendmail/intro.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/tcl/intro.html b/bdb/docs/ref/tcl/intro.html
deleted file mode 100644
index 6484eaac6b8..00000000000
--- a/bdb/docs/ref/tcl/intro.html
+++ /dev/null
@@ -1,70 +0,0 @@
-<!--$Id: intro.so,v 11.14 2000/12/04 20:49:18 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Loading Berkeley DB with Tcl</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Tcl</dl></h3></td>
-<td width="1%"><a href="../../ref/perl/intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/tcl/using.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Loading Berkeley DB with Tcl</h1>
-<p>Berkeley DB includes a dynamically loadable Tcl API. The Tcl API requires that
-Tcl/Tk 8.1 or later already be installed on your system. We recommend
-that you install later releases of Tcl/Tk than 8.1, if possible,
-especially on Windows platforms, as we found that we had to make local
-fixes to the 8.1 release in a few cases. You can download a copy of
-Tcl from the <a href="http://www.ajubasolutions.com/home.html">Ajuba
-Solutions</a> corporate web site.
-<p>This document assumes that you have already configured Berkeley DB for Tcl
-support and you have built and installed everything where you want it
-to be. If you have not done so, see
-<a href="../../ref/build_unix/conf.html">Configuring Berkeley DB</a> or
-<a href="../../ref/build_win/intro.html">Building for Win32</a> for more
-information.
-<h3>Installing as a Tcl Package</h3>
-<p>Once enabled, the Berkeley DB shared library for Tcl is automatically installed
-as part of the standard installation process. However, if you wish to be
-able to dynamically load it as a Tcl package into your script there are
-several steps that must be performed:
-<p><ol>
-<p><li>Run the Tcl shell in the install directory
-<li>Append this directory to your auto_path variable
-<li>Run the pkg_mkIndex proc giving the name of the Berkeley DB Tcl library
-</ol>
-<p>For example:
-<p><blockquote><pre># tclsh8.1
-% lappend auto_path /usr/local/BerkeleyDB/lib
-% pkg_mkIndex /usr/local/BerkeleyDB/lib libdb_tcl-3.2.so libdb-3.2.so</pre></blockquote>
-<p>Note that your Tcl and Berkeley DB version numbers may differ from the example,
-and so your tclsh and and library names may be different.
-<h3>Loading Berkeley DB with Tcl</h3>
-<p>The Berkeley DB package may be loaded into the user's interactive Tcl script
-(or wish session) via the "load" command. For example:
-<p><blockquote><pre>load /usr/local/BerkeleyDB/lib/libdb_tcl-3.2.so</pre></blockquote>
-<p>Note that your Berkeley DB version numbers may differ from the example, and so
-the library name may be different.
-<p>If you installed your library to run as a Tcl package, Tcl application
-scripts should use the "package" command to indicate to the Tcl
-interpreter that it needs the Berkeley DB package and where to find it. For
-example:
-<p><blockquote><pre>lappend auto_path "/usr/local/BerkeleyDB/lib"
-package require Db_tcl</pre></blockquote>
-<p>No matter which way the library gets loaded, it creates a command named
-<b>berkdb</b>. All of the Berkeley DB functionality is accessed via this
-command and additional commands it creates on behalf of the application.
-A simple test to determine if everything is loaded and ready is to ask
-for the version:
-<p><blockquote><pre>berkdb version -string</pre></blockquote>
-<p>This should return you the Berkeley DB version in a string format.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/perl/intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/tcl/using.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/tcl/program.html b/bdb/docs/ref/tcl/program.html
deleted file mode 100644
index 881c8848bac..00000000000
--- a/bdb/docs/ref/tcl/program.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!--$Id: program.so,v 11.9 2000/12/04 18:05:44 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Tcl API programming notes</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Tcl</dl></h3></td>
-<td width="1%"><a href="../../ref/tcl/using.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/tcl/error.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Tcl API programming notes</h1>
-<p>The Tcl API closely parallels the Berkeley DB programmatic interfaces. If you
-are already familiar with one of those interfaces there will not be many
-surprises in the Tcl API.
-<p>Several pieces of Berkeley DB functionality are not available in the Tcl API.
-Any of the functions that require a user-provided function are not
-supported via the Tcl API. For example, there is no equivalent to the
-<a href="../../api_c/db_set_dup_compare.html">DB-&gt;set_dup_compare</a> or the <a href="../../api_c/env_set_errcall.html">DBENV-&gt;set_errcall</a>
-methods.
-<p>The Berkeley DB Tcl API always turns on the DB_THREAD flag for environments and
-databases making no assumptions about the existence or lack thereof of
-threads support in current or future releases of Tcl.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/tcl/using.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/tcl/error.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/tcl/using.html b/bdb/docs/ref/tcl/using.html
deleted file mode 100644
index 6c927477c2c..00000000000
--- a/bdb/docs/ref/tcl/using.html
+++ /dev/null
@@ -1,53 +0,0 @@
-<!--$Id: using.so,v 11.6 2000/03/18 21:43:17 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Using Berkeley DB with Tcl</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Tcl</dl></h3></td>
-<td width="1%"><a href="../../ref/tcl/intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/tcl/program.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Using Berkeley DB with Tcl</h1>
-<p>All commands in the Berkeley DB Tcl interface are of the form:
-<p><blockquote><pre>command_handle operation options</pre></blockquote>
-<p>The <i>command handle</i> is <b>berkdb</b> or one of the additional
-commands that may be created. The <i>operation</i> is what you want
-to do to that handle and the <i>options</i> apply to the operation.
-Commands that get created on behalf of the application have their own sets
-of operations. Generally any calls in DB that result in new object
-handles will translate into a new command handle in Tcl. Then the user
-can access the operations of the handle via the new Tcl command handle.
-<p>Newly created commands are named with an abbreviated form of their objects
-followed by a number. Some created commands are subcommands of other
-created commands and will be the first command, followed by a period, '.'
-followed by the new subcommand. For example, suppose you have a database
-already existing called my_data.db. The following example shows the
-commands created when you open the database, and when you open a cursor:
-<p><blockquote><pre># First open the database and get a database command handle
-% berkdb open my_data.db
-db0
-#Get some data from that database
-% db0 get my_key
-{{my_key my_data0}{my_key my_data1}}
-#Open a cursor in this database, get a new cursor handle
-% db0 cursor
-db0.c0
-#Get the first data from the cursor
-% db0.c0 get -first
-{{first_key first_data}}</pre></blockquote>
-<p>All commands in the library support a special option <b>-?</b> that will
-list the correct operations for a command or the correct options.
-<p>A list of commands and operations can be found in the
-<a href="../../api_tcl/tcl_index.html">Tcl Interface</a> documentation.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/tcl/intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/tcl/program.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/test/faq.html b/bdb/docs/ref/test/faq.html
deleted file mode 100644
index ec5d2d3f061..00000000000
--- a/bdb/docs/ref/test/faq.html
+++ /dev/null
@@ -1,32 +0,0 @@
-<!--$Id: faq.so,v 10.2 2000/08/10 17:54:49 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Test suite FAQ</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Test Suite</dl></h3></td>
-<td width="1%"><a href="../../ref/test/run.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/distrib/layout.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Test suite FAQ</h1>
-<p><ol>
-<p><li><b>The test suite has been running for over a day. What's wrong?</b>
-<p>The test suite an take anywhere from some number of hours to several
-days to run, depending on your hardware configuration. As long as the
-run is making forward progress and new lines are being written to the
-<b>ALL.OUT</b> file, everything is probably fine.
-<p><li><b>The test suite hangs.</b>
-<p>The test suite requires Tcl 8.1 or greater, preferably at least Tcl 8.3.
-If you are using an earlier version of Tcl, the test suite may simply
-hang at some point.
-</ol>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/test/run.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/distrib/layout.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/test/run.html b/bdb/docs/ref/test/run.html
deleted file mode 100644
index 078951a05ea..00000000000
--- a/bdb/docs/ref/test/run.html
+++ /dev/null
@@ -1,78 +0,0 @@
-<!--$Id: run.so,v 10.34 2000/11/28 21:27:49 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Running the test suite</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Test Suite</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.2/disk.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/test/faq.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Running the test suite</h1>
-<p>Once you have started tclsh and have loaded the test.tcl source file (see
-<a href="../../ref/build_unix/test.html">Running the test suite under UNIX</a>
-and <a href="../../ref/build_win/test.html">Running the test suite under
-Windows</a> for more information), you are ready to run the test suite. At
-the tclsh prompt, to run the entire test suite, enter:
-<p><blockquote><pre>% run_all</pre></blockquote>
-<p>Running all the tests can take from several hours to a few days to
-complete, depending on your hardware. For this reason, the output from
-this command is re-directed to a file in the current directory named
-<b>ALL.OUT</b>. Periodically, a line will be written to the standard
-output indicating what test is being run. When the suite has finished,
-a single message indicating that the test suite completed successfully or
-that it failed will be written. If the run failed, you should review the
-file ALL.OUT to determine which tests failed. Any errors will appear in
-that file as output lines beginning with the string: FAIL.
-<p>It is also possible to run specific tests or tests for a particular
-subsystem:
-<p><blockquote><pre>% r archive
-% r btree
-% r env
-% r frecno
-% r hash
-% r join
-% r join
-% r lock
-% r log
-% r mpool
-% r mutex
-% r queue
-% r rbtree
-% r recno
-% r rrecno
-% r subdb
-% r txn</pre></blockquote>
-<p>Or to run a single, individual test:
-<p><blockquote><pre>% test001 btree</pre></blockquote>
-<p>It is also possible to modify the test run based on arguments on the
-command line. For example, the command:
-<p><blockquote><pre>% test001 btree 10</pre></blockquote>
-<p>will run a greatly abbreviated form of test001, doing 10 operations
-instead of 10,000.
-<p>In all cases, when not running the entire test suite as described above,
-a successful test run will return you to the tclsh prompt (%). On
-failure, a message is displayed indicating what failed.
-<p>Tests are run, by default, in the directory <b>TESTDIR</b>. However,
-the test files are often very large. To use a different directory for
-the test directory, edit the file include.tcl in your build directory,
-and change the line:
-<p><blockquote><pre>set testdir ./TESTDIR</pre></blockquote>
-<p>to a more appropriate value for your system, e.g.:
-<p><blockquote><pre>set testdir /var/tmp/db.test</pre></blockquote>
-<p>Alternatively, you can create a symbolic link named TESTDIR in your build
-directory to an appropriate location for running the tests. Regardless
-of where you run the tests, the TESTDIR directory should be on a local
-filesystem, using a remote filesystem (e.g., NFS) will almost certainly
-cause spurious test failures.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.2/disk.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/test/faq.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/toc.html b/bdb/docs/ref/toc.html
deleted file mode 100644
index e56ee5d4859..00000000000
--- a/bdb/docs/ref/toc.html
+++ /dev/null
@@ -1,310 +0,0 @@
-<!--$Id: toc.so,v 10.166 2001/01/18 20:31:37 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Reference Guide Table of Contents</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<h1 align=center>Reference Guide Table of Contents</h1>
-<ol>
-<font size="+1"><li>Introduction</font>
- <ol>
- <li><a href="intro/data.html">An introduction to data management</a>
- <li><a href="intro/terrain.html">Mapping the terrain: theory and practice</a>
- <li><a href="intro/dbis.html">What is Berkeley DB?</a>
- <li><a href="intro/dbisnot.html">What is Berkeley DB not?</a>
- <li><a href="intro/need.html">Do you need Berkeley DB?</a>
- <li><a href="intro/what.html">What other services does Berkeley DB provide?</a>
- <li><a href="intro/distrib.html">What does the Berkeley DB distribution include?</a>
- <li><a href="intro/where.html">Where does Berkeley DB run?</a>
- <li><a href="intro/products.html">Sleepycat Software's Berkeley DB products</a>
- </ol>
-<font size="+1"><li>Getting Started: A Simple Tutorial</font>
- <ol>
- <li><a href="simple_tut/intro.html">Introduction</a>
- <li><a href="simple_tut/keydata.html">Key/data pairs</a>
- <li><a href="simple_tut/handles.html">Object handles</a>
- <li><a href="simple_tut/errors.html">Error returns</a>
- <li><a href="simple_tut/open.html">Opening a database</a>
- <li><a href="simple_tut/put.html">Adding elements to a database</a>
- <li><a href="simple_tut/get.html">Retrieving elements from a database</a>
- <li><a href="simple_tut/del.html">Removing elements from a database</a>
- <li><a href="simple_tut/close.html">Closing a database</a>
- </ol>
-<font size="+1"><li>Access Method Configuration</font>
- <ol>
- <li><a href="am_conf/intro.html">What are the available access methods?</a>
- <li><a href="am_conf/select.html">Selecting an access method</a>
- <li><a href="am_conf/logrec.html">Logical record numbers</a>
- <li>General access method configuration
- <ol>
- <li><a href="am_conf/pagesize.html">Selecting a page size</a>
- <li><a href="am_conf/cachesize.html">Selecting a cache size</a>
- <li><a href="am_conf/byteorder.html">Selecting a byte order</a>
- <li><a href="am_conf/dup.html">Duplicate data items</a>
- <li><a href="am_conf/malloc.html">Non-local memory allocation</a>
- </ol>
- <li>Btree access method specific configuration
- <ol>
- <li><a href="am_conf/bt_compare.html">Btree comparison</a>
- <li><a href="am_conf/bt_prefix.html">Btree prefix comparison</a>
- <li><a href="am_conf/bt_minkey.html">Minimum keys per page</a>
- <li><a href="am_conf/bt_recnum.html">Retrieving Btree records by logical record number</a>
- </ol>
- <li>Hash access method specific configuration
- <ol>
- <li><a href="am_conf/h_ffactor.html">Page fill factor</a>
- <li><a href="am_conf/h_hash.html">Specifying a database hash</a>
- <li><a href="am_conf/h_nelem.html">Hash table size</a>
- </ol>
- <li>Queue and Recno access method specific configuration
- <ol>
- <li><a href="am_conf/recno.html">Managing record-based databases</a>
- <li><a href="am_conf/extentsize.html">Selecting a Queue extent size</a>
- <li><a href="am_conf/re_source.html">Flat-text backing files</a>
- <li><a href="am_conf/renumber.html">Logically renumbering records</a>
- </ol>
- </ol>
-<font size="+1"><li>Access Method Operations</font>
- <ol>
- <li><a href="am/ops.html">Access method operations</a>
- <li><a href="am/open.html">Opening a database</a>
- <li><a href="am/opensub.html">Opening multiple databases in a single file</a>
- <li><a href="am/upgrade.html">Upgrading databases</a>
- <li><a href="am/get.html">Retrieving records</a>
- <li><a href="am/put.html">Storing records</a>
- <li><a href="am/delete.html">Deleting records</a>
- <li><a href="am/sync.html">Flushing the database cache</a>
- <li><a href="am/stat.html">Database statistics</a>
- <li><a href="am/close.html">Closing a database</a>
- <li><a href="am/cursor.html">Database cursors</a>
- <ol>
- <li><a href="am/curget.html">Retrieving records with a cursor</a>
- <li><a href="am/curput.html">Storing records with a cursor</a>
- <li><a href="am/curdel.html">Deleting records with a cursor</a>
- <li><a href="am/curdup.html">Duplicating a cursor</a>
- <li><a href="am/join.html">Logical join</a>
- <li><a href="am/count.html">Data item count</a>
- <li><a href="am/curclose.html">Closing a cursor</a>
- <li><a href="am/stability.html">Cursor stability</a>
- </ol>
- <li><a href="am/partial.html">Partial record storage and retrieval</a>
- <li><a href="am/verify.html">Database verification and salvage</a>
- <li><a href="am/error.html">Error support</a>
- </ol>
-<font size="+1"><li>Berkeley DB Architecture</font>
- <ol>
- <li><a href="arch/bigpic.html">The big picture</a>
- <li><a href="arch/progmodel.html">Programming model</a>
- <li><a href="arch/apis.html">Programmatic APIs</a>
- <li><a href="arch/script.html">Scripting languages</a>
- <li><a href="arch/utilities.html">Supporting utilities</a>
- </ol>
-<font size="+1"><li>The Berkeley DB Environment</font>
- <ol>
- <li><a href="env/intro.html">Introduction</a>
- <li><a href="env/create.html">Creating an environment</a>
- <li><a href="env/naming.html">File naming</a>
- <li><a href="env/security.html">Security</a>
- <li><a href="env/region.html">Shared memory regions</a>
- <li><a href="env/remote.html">Remote filesystems</a>
- <li><a href="env/open.html">Opening databases within the environment</a>
- <li><a href="env/error.html">Error support</a>
- </ol>
-<font size="+1"><li>Berkeley DB Concurrent Data Store Applications</font>
- <ol>
- <li><a href="cam/intro.html">Building Berkeley DB Concurrent Data Store applications</a>
- </ol>
-<font size="+1"><li>Berkeley DB Transactional Data Store Applications</font>
- <ol>
- <li><a href="transapp/intro.html">Building Berkeley DB Transactional Data Store applications</a>
- <li><a href="transapp/why.html">Why transactions?</a>
- <li><a href="transapp/term.html">Terminology</a>
- <li><a href="transapp/app.html">Application structure</a>
- <li><a href="transapp/env_open.html">Opening the environment</a>
- <li><a href="transapp/data_open.html">Opening the databases</a>
- <li><a href="transapp/put.html">Recoverability and deadlock avoidance</a>
- <li><a href="transapp/inc.html">Atomicity</a>
- <li><a href="transapp/read.html">Repeatable reads</a>
- <li><a href="transapp/cursor.html">Transactional cursors</a>
- <li><a href="transapp/admin.html">Environment infrastructure</a>
- <li><a href="transapp/deadlock.html">Deadlock detection</a>
- <li><a href="transapp/checkpoint.html">Checkpoints</a>
- <li><a href="transapp/archival.html">Database and log file archival</a>
- <li><a href="transapp/logfile.html">Log file removal</a>
- <li><a href="transapp/recovery.html">Recovery procedures</a>
- <li><a href="transapp/filesys.html">Recovery and filesystem operations</a>
- <li><a href="transapp/reclimit.html">Berkeley DB recoverability</a>
- <li><a href="transapp/throughput.html">Transaction throughput</a>
- </ol>
-<font size="+1"><li>XA Resource Manager</font>
- <ol>
- <li><a href="xa/intro.html">Introduction</a>
- <li><a href="xa/config.html">Configuring Berkeley DB with The Tuxedo System</a>
- <li><a href="xa/faq.html">Frequently Asked Questions</a>
- </ol>
-<font size="+1"><li>Programmer Notes</font>
- <ol>
- <li><a href="program/appsignals.html">Application signal handling</a>
- <li><a href="program/errorret.html">Error returns to applications</a>
- <li><a href="program/environ.html">Environmental variables</a>
- <li><a href="program/mt.html">Building multi-threaded applications</a>
- <li><a href="program/scope.html">Berkeley DB handles</a>
- <li><a href="program/namespace.html">Name spaces</a>
- <li><a href="program/copy.html">Copying databases</a>
- <li><a href="program/version.html">Library version information</a>
- <li><a href="program/dbsizes.html">Database limits</a>
- <li><a href="program/byteorder.html">Byte ordering</a>
- <li><a href="program/diskspace.html">Disk space requirements</a>
- <li><a href="program/compatible.html">Compatibility with historic interfaces</a>
- <li><a href="program/recimp.html">Recovery implementation</a>
- <li><a href="program/extending.html">Application-specific logging and recovery</a>
- <li><a href="program/runtime.html">Run-time configuration</a>
- </ol>
-<font size="+1"><li>The Locking Subsystem</font>
- <ol>
- <li><a href="lock/intro.html">Berkeley DB and locking</a>
- <li><a href="lock/page.html">Page locks</a>
- <ol>
- <li><a href="lock/stdmode.html">Standard lock modes</a>
- <li><a href="lock/notxn.html">Locking without transactions</a>
- <li><a href="lock/twopl.html">Locking with transactions: two-phase locking</a>
- </ol>
- <li><a href="lock/am_conv.html">Access method locking conventions</a>
- <li><a href="lock/cam_conv.html">Berkeley DB Concurrent Data Store locking conventions</a>
- <li><a href="lock/dead.html">Deadlocks and deadlock avoidance</a>
- <li><a href="lock/config.html">Configuring locking</a>
- <li><a href="lock/max.html">Configuring locking: sizing the system</a>
- <li><a href="lock/nondb.html">Locking and non-Berkeley DB applications</a>
- </ol>
-<font size="+1"><li>The Logging Subsystem</font>
- <ol>
- <li><a href="log/intro.html">Berkeley DB and logging</a>
- <li><a href="log/config.html">Configuring logging</a>
- <li><a href="log/limits.html">Log file limits</a>
- </ol>
-<font size="+1"><li>The Memory Pool Subsystem</font>
- <ol>
- <li><a href="mp/intro.html">Berkeley DB and the memory pool</a>
- <li><a href="mp/config.html">Configuring the memory pool</a>
- </ol>
-<font size="+1"><li>The Transaction Subsystem</font>
- <ol>
- <li><a href="txn/intro.html">Berkeley DB and transactions</a>
- <li><a href="txn/nested.html">Nested transactions</a>
- <li><a href="txn/limits.html">Transaction limits</a>
- <li><a href="txn/config.html">Configuring transactions</a>
- <li><a href="txn/other.html">Transactions and non-Berkeley DB applications</a>
- </ol>
-<font size="+1"><li>RPC Client/Server</font>
- <ol>
- <li><a href="rpc/intro.html">Introduction</a>
- <li><a href="rpc/client.html">Client program</a>
- <li><a href="rpc/server.html">Server program</a>
- </ol>
-<font size="+1"><li>Java API</font>
- <ol>
- <li><a href="java/conf.html">Configuration</a>
- <li><a href="java/compat.html">Compatibility</a>
- <li><a href="java/program.html">Programming notes</a>
- <li><a href="java/faq.html">Java FAQ</a>
- </ol>
-<font size="+1"><li>Perl API</font>
- <ol>
- <li><a href="perl/intro.html">Using Berkeley DB with Perl</a>
- </ol>
-<font size="+1"><li>Tcl API</font>
- <ol>
- <li><a href="tcl/intro.html">Loading Berkeley DB with Tcl</a>
- <li><a href="tcl/using.html">Using Berkeley DB with Tcl</a>
- <li><a href="tcl/program.html">Tcl API programming notes</a>
- <li><a href="tcl/error.html">Tcl error handling</a>
- <li><a href="tcl/faq.html">Tcl FAQ</a>
- </ol>
-<font size="+1"><li>Sendmail</font>
- <ol>
- <li><a href="sendmail/intro.html">Using Berkeley DB with Sendmail</a>
- </ol>
-<font size="+1"><li>Dumping and Reloading Databases</font>
- <ol>
- <li><a href="dumpload/utility.html">The db_dump and db_load utilities</a>
- <li><a href="dumpload/format.html">Dump output formats</a>
- <li><a href="dumpload/text.html">Loading text into databases</a>
- </ol>
-<font size="+1"><li>System Installation Notes</font>
- <ol>
- <li><a href="install/file.html">File utility /etc/magic information</a>
- </ol>
-<font size="+1"><li>Debugging Applications</font>
- <ol>
- <li><a href="debug/intro.html">Introduction</a>
- <li><a href="debug/compile.html">Compile-time configuration</a>
- <li><a href="debug/runtime.html">Run-time error information</a>
- <li><a href="debug/printlog.html">Reviewing Berkeley DB log files</a>
- <li><a href="debug/common.html">Common errors</a>
- </ol>
-<font size="+1"><li>Building Berkeley DB for UNIX and QNX systems</font>
- <ol>
- <li><a href="build_unix/intro.html">Building for UNIX</a>
- <li><a href="build_unix/conf.html">Configuring Berkeley DB</a>
- <li><a href="build_unix/flags.html">Changing compile or load options</a>
- <li><a href="build_unix/install.html">Installing Berkeley DB</a>
- <li><a href="build_unix/shlib.html">Dynamic shared libraries</a>
- <li><a href="build_unix/test.html">Running the test suite under UNIX</a>
- <li><a href="build_unix/notes.html">Architecture independent FAQ</a>
- <li>Architecture specific FAQs
- <ol>
- <li><a href="build_unix/aix.html">AIX</a>
- <li><a href="build_unix/freebsd.html">FreeBSD</a>
- <li><a href="build_unix/hpux.html">HP-UX</a>
- <li><a href="build_unix/irix.html">IRIX</a>
- <li><a href="build_unix/linux.html">Linux</a>
- <li><a href="build_unix/osf1.html">OSF/1</a>
- <li><a href="build_unix/qnx.html">QNX</a>
- <li><a href="build_unix/sco.html">SCO</a>
- <li><a href="build_unix/solaris.html">Solaris</a>
- <li><a href="build_unix/sunos.html">SunOS</a>
- <li><a href="build_unix/ultrix.html">Ultrix</a>
- </ol>
- </ol>
-<font size="+1"><li>Building Berkeley DB for Win32 platforms</font>
- <ol>
- <li><a href="build_win/intro.html">Building for Win32</a>
- <li><a href="build_win/test.html">Running the test suite under Windows</a>
- <li><a href="build_win/notes.html">Windows notes</a>
- <li><a href="build_win/faq.html">Windows FAQ</a>
- </ol>
-<font size="+1"><li>Building Berkeley DB for VxWorks systems</font>
- <ol>
- <li><a href="build_vxworks/intro.html">Building for VxWorks</a>
- <li><a href="build_vxworks/notes.html">VxWorks notes</a>
- <li><a href="build_vxworks/faq.html">VxWorks FAQ</a>
- </ol>
-<font size="+1"><li>Upgrading Berkeley DB Applications</font>
- <ol>
- <li><a href="upgrade/process.html">Upgrading Berkeley DB installations</a>
- <li><a href="upgrade.2.0/toc.html">Upgrading Berkeley DB 1.XX applications to Berkeley DB 2.0</a>
- <li><a href="upgrade.3.0/toc.html">Upgrading Berkeley DB 2.X.X applications to Berkeley DB 3.0</a>
- <li><a href="upgrade.3.1/toc.html">Upgrading Berkeley DB 3.0.X applications to Berkeley DB 3.1</a>
- <li><a href="upgrade.3.2/toc.html">Upgrading Berkeley DB 3.1.X applications to Berkeley DB 3.2</a>
- </ol>
-<font size="+1"><li>Test Suite</font>
- <ol>
- <li><a href="test/run.html">Running the test suite</a>
- <li><a href="test/faq.html">Test suite FAQ</a>
- </ol>
-<font size="+1"><li>Distribution</font>
- <ol>
- <li><a href="distrib/layout.html">Source code layout</a>
- </ol>
-<font size="+1"><li>Additional References</font>
- <ol>
- <li><a href="refs/refs.html">Additional references</a>
- </ol>
-</ol>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/transapp/admin.html b/bdb/docs/ref/transapp/admin.html
deleted file mode 100644
index c908a7a33a2..00000000000
--- a/bdb/docs/ref/transapp/admin.html
+++ /dev/null
@@ -1,47 +0,0 @@
-<!--$Id: admin.so,v 10.14 2000/08/16 17:50:39 margo Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Environment infrastructure</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Transaction Protected Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/transapp/cursor.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/transapp/deadlock.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Environment infrastructure</h1>
-<p>When building transactional applications, it is usually necessary to
-build an administrative infrastructure around the database environment.
-There are five components to this infrastructure, and each is
-supported by the Berkeley DB package in two different ways: a standalone
-utility and one or more library interfaces.
-<ul type=disc>
-<li>Deadlock detection: <a href="../../utility/db_deadlock.html">db_deadlock</a>,
-<a href="../../api_c/lock_detect.html">lock_detect</a>, <a href="../../api_c/env_set_lk_detect.html">DBENV-&gt;set_lk_detect</a>
-<li>Checkpoints: <a href="../../utility/db_checkpoint.html">db_checkpoint</a>, <a href="../../api_c/txn_checkpoint.html">txn_checkpoint</a>
-<li>Database and log file archival:
-<a href="../../utility/db_archive.html">db_archive</a>, <a href="../../api_c/log_archive.html">log_archive</a>
-<li>Log file removal: <a href="../../utility/db_archive.html">db_archive</a>, <a href="../../api_c/log_archive.html">log_archive</a>
-<li>Recovery procedures: <a href="../../utility/db_recover.html">db_recover</a>, <a href="../../api_c/env_open.html">DBENV-&gt;open</a>
-</ul>
-<p>When writing multi-threaded server applications and/or applications
-intended for download from the web, it is usually simpler to create
-local threads that are responsible for administration of the database
-environment as scheduling is often simpler in a single-process model,
-and only a single binary need be installed and run. However, the
-supplied utilities can be generally useful tools even when the
-application is responsible for doing its own administration, as
-applications rarely offer external interfaces to database
-administration. The utilities are required when programming to a Berkeley DB
-scripting interface, as the scripting APIs do not always offer
-interfaces to the administrative functionality.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/transapp/cursor.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/transapp/deadlock.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/transapp/app.html b/bdb/docs/ref/transapp/app.html
deleted file mode 100644
index 3c946989b50..00000000000
--- a/bdb/docs/ref/transapp/app.html
+++ /dev/null
@@ -1,117 +0,0 @@
-<!--$Id: app.so,v 10.4 2000/07/25 16:31:20 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Application structure</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Transaction Protected Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/transapp/term.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/transapp/env_open.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Application structure</h1>
-<p>When building transactionally protected applications, there are some
-special issues that must be considered. The most important one is that,
-if any thread of control exits for any reason while holding Berkeley DB
-resources, recovery must be performed to:
-<ul type=disc>
-<li>recover the Berkeley DB resources,
-<li>release any locks or mutexes that may have been held to avoid starvation
-as the remaining threads of control convoy behind the failed thread's
-locks, and
-<li>clean up any partially completed operations that may have left a
-database in an inconsistent or corrupted state.
-</ul>
-<p>Complicating this problem is the fact that the Berkeley DB library itself
-cannot determine if recovery is required, the application itself
-<b>must</b> make that decision. A further complication is that
-recovery must be single-threaded, that is, one thread of control or
-process must perform recovery before any other thread of control or
-processes attempts to create or join the Berkeley DB environment.
-<p>There are two approaches to handling this problem:
-<p><dl compact>
-<p><dt>The hard way:<dd>An application can track its own state carefully enough that it knows
-when recovery needs to be performed. Specifically, the rule to use is
-that recovery must be performed before using a Berkeley DB environment any
-time the threads of control previously using the Berkeley DB environment did
-not shut the environment down cleanly before exiting the environment
-for any reason (including application or system failure).
-<p>Requirements for shutting down the environment cleanly differ depending
-on the type of environment created. If the environment is public and
-persistent (i.e., the <a href="../../api_c/env_open.html#DB_PRIVATE">DB_PRIVATE</a> flag was not specified to the
-<a href="../../api_c/env_open.html">DBENV-&gt;open</a> function), recovery must be performed if any transaction was
-not committed or aborted, or <a href="../../api_c/env_close.html">DBENV-&gt;close</a> function was not called for
-any open DB_ENV handle.
-<p>If the environment is private and temporary (i.e., the <a href="../../api_c/env_open.html#DB_PRIVATE">DB_PRIVATE</a>
-flag was specified to the <a href="../../api_c/env_open.html">DBENV-&gt;open</a> function), recovery must be performed
-if any transaction was not committed or aborted, or <a href="../../api_c/env_close.html">DBENV-&gt;close</a> function
-was not called for any open DB_ENV handle. In addition, at least
-one transaction checkpoint must be performed after all existing
-transactions have been committed or aborted.
-<p><dt>The easy way:<dd>It greatly simplifies matters that recovery may be performed regardless
-of whether recovery strictly needs to be performed, that is, it is not
-an error to run recovery on a database where no recovery is necessary.
-Because of this fact, it is almost invariably simpler to ignore the
-above rules about shutting an application down cleanly, and simply run
-recovery each time a thread of control accessing a database environment
-fails for any reason, as well as before accessing any database
-environment after system reboot.
-</dl>
-<p>There are two common ways to build transactionally protected Berkeley DB
-applications. The most common way is as a single, usually
-multi-threaded, process. This architecture is simplest because it
-requires no monitoring of other threads of control. When the
-application starts, it opens and potentially creates the environment,
-runs recovery (whether it was needed or not), and then opens its
-databases. From then on, the application can create new threads of
-control as it chooses. All threads of control share the open Berkeley DB
-DB_ENV and DB handles. In this model, databases are
-rarely opened or closed when more than a single thread of control is
-running, that is, they are opened when only a single thread is running,
-and closed after all threads but one have exited. The last thread of
-control to exit closes the databases and the environment.
-<p>An alternative way to build Berkeley DB applications is as a set of
-cooperating processes, which may or may not be multi-threaded. This
-architecture is more complicated.
-<p>First, this architecture requires that the order in which threads of
-control are created and subsequently access the Berkeley DB environment be
-controlled, because recovery must be single-threaded. The first thread
-of control to access the environment must run recovery, and no other
-thread should attempt to access the environment until recovery is
-complete. (Note that this ordering requirement does not apply to
-environment creation without recovery. If multiple threads attempt to
-create a Berkeley DB environment, only one will perform the creation and the
-others will join the already existing environment.)
-<p>Second, this architecture requires that threads of control be monitored.
-If any thread of control that owns Berkeley DB resources exits, without first
-cleanly discarding those resources, recovery is usually necessary.
-Before running recovery, all threads using the Berkeley DB environment must
-relinquish all of their Berkeley DB resources (it does not matter if they do
-so gracefully or because they are forced to exit). Then recovery can
-be run and the threads of control continued or re-started.
-<p>We have found that the safest way to structure groups of cooperating
-processes is to first create a single process (often a shell script)
-that opens/creates the Berkeley DB environment and runs recovery, and which
-then creates the processes or threads that will actually perform work.
-The initial thread has no further responsibilities other than to monitor
-the threads of control it has created, to ensure that none of them
-unexpectedly exits. If one exits, the initial process then forces all
-of the threads of control using the Berkeley DB environment to exit, runs
-recovery, and restarts the working threads of control.
-<p>If it is not practical to have a single parent for the processes sharing
-a Berkeley DB environment, each process sharing the environment should log
-their connection to and exit from the environment in some fashion that
-permits a monitoring process to detect if a thread of control may have
-potentially acquired Berkeley DB resources and never released them.
-<p>Obviously, it is important that the monitoring process in either case
-be as simple and well-tested as possible as there is no recourse should
-it fail.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/transapp/term.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/transapp/env_open.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/transapp/archival.html b/bdb/docs/ref/transapp/archival.html
deleted file mode 100644
index 2e88158504d..00000000000
--- a/bdb/docs/ref/transapp/archival.html
+++ /dev/null
@@ -1,149 +0,0 @@
-<!--$Id: archival.so,v 10.41 2000/12/05 20:36:25 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Database and log file archival</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Transaction Protected Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/transapp/checkpoint.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/transapp/logfile.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Database and log file archival</h1>
- <a name="3"><!--meow--></a>
-<p>The third component of the administrative infrastructure, archival for
-catastrophic recovery, concerns the recoverability of the database in
-the face of catastrophic failure. Recovery after catastrophic failure
-is intended to minimize data loss when physical hardware has been
-destroyed, for example, loss of a disk that contains databases or log
-files. While the application may still experience data loss in this
-case, it is possible to minimize it.
-<p>First, you may want to periodically create snapshots (i.e., backups) of
-your databases to make it possible to recover from catastrophic failure.
-These snapshots are either a standard backup which creates a consistent
-picture of the databases as of a single instant in time, or an on-line
-backup (also known as a <i>hot</i> backup), which creates a
-consistent picture of the databases as of an unspecified instant during
-the period of time when the snapshot was made. The advantage of a hot
-backup is that applications may continue to read and write the databases
-while the snapshot is being taken. The disadvantage of a hot backup is
-that more information must be archived, and recovery based on a hot
-backup is to an unspecified time between the start of the backup and
-when the backup is completed.
-<p>Second, after taking a snapshot, you should periodically archive the
-log files being created in the environment. It is often helpful to
-think of database archival in terms of full and incremental filesystem
-backups. A snapshot is a full backup, while the periodic archival of
-the current log files is an incremental. For example, it might be
-reasonable to take a full snapshot of a database environment weekly or
-monthly, and then archive additional log files daily. Using both the
-snapshot and the log files, a catastrophic crash at any time can be
-recovered to the time of the most recent log archival, a time long after
-the original snapshot.
-<p>To create a standard backup of your database that can be used to recover
-from catastrophic failure, take the following steps:
-<p><ol>
-<p><li>Commit or abort all on-going transactions.
-<p><li>Force an environment checkpoint (see <a href="../../utility/db_checkpoint.html">db_checkpoint</a> for more
-information).
-<p><li>Stop writing your databases until the backup has completed. Read-only
-operations are permitted, but no write operations and no filesystem
-operations may be performed, e.g., the <a href="../../api_c/env_remove.html">DBENV-&gt;remove</a> and
-<a href="../../api_c/db_open.html">DB-&gt;open</a> functions may not be called).
-<p><li>Run <a href="../../utility/db_archive.html">db_archive</a> <b>-s</b> to identify all of the database data
-files, and copy them to a backup device, such as CDROM, alternate disk,
-or tape. Obviously, the reliability of your archive media will affect
-the safety of your data.
-<p>If the database files are stored in a separate directory from the other
-Berkeley DB files, it may be simpler to archive the directory itself instead
-of the individual files (see <a href="../../api_c/env_set_data_dir.html">DBENV-&gt;set_data_dir</a> for additional
-information). If you are performing a hot backup, the utility you use
-to copy the files must read database pages atomically (as described by
-<a href="../../ref/transapp/reclimit.html">Berkeley DB recoverability</a>).
-<p><b>Note: if any of the database files did not have an open DB
-handle during the lifetime of the current log files, <a href="../../utility/db_archive.html">db_archive</a>
-will not list them in its output!</b> For this reason, it may be simpler
-to use a separate database file directory, and archive the entire
-directory instead of only the files listed by <a href="../../utility/db_archive.html">db_archive</a>.
-</ol>
-<p>To create a <i>hot</i> backup of your database that can be used to
-recover from catastrophic failure, take the following steps:
-<p><ol>
-<p><li>Archive your databases as described in Step #4 above. You
-do not have to halt on-going transactions or force a checkpoint.
-<p><li>When performing a hot backup, you must additionally archive the active
-log files. Note that the order of these two operations is required,
-and the database files must be archived before the log files. This
-means that if the database files and log files are in the same
-directory, you cannot simply archive the directory, you must make sure
-that the correct order of archival is maintained.
-<p>To archive your log files, run the <a href="../../utility/db_archive.html">db_archive</a> utility, using
-the <b>-l</b> option, to identify all of the database log files, and
-copy them to your backup media. If the database log files are stored
-in a separate directory from the other database files, it may be simpler
-to archive the directory itself instead of the individual files (see
-the <a href="../../api_c/env_set_lg_dir.html">DBENV-&gt;set_lg_dir</a> function for more information).
-</ol>
-<p>Once these steps are completed, your database can be recovered from
-catastrophic failure (see <a href="recovery.html">Recovery procedures</a> for
-more information).
-<p>To update your snapshot so that recovery from catastrophic failure is
-possible up to a new point in time, repeat step #2 under the hot backup
-instructions, copying all existing log files to a backup device. This
-is applicable to both standard and hot backups, that is, you can update
-snapshots made in either way. Each time both the database and log files
-are copied to backup media, you may discard all previous database
-snapshots and saved log files. Archiving additional log files does not
-allow you to discard either previous database snapshots or log files.
-<p>The time to restore from catastrophic failure is a function of the
-number of log records that have been written since the snapshot was
-originally created. Perhaps more importantly, the more separate pieces
-of backup media you use, the more likely that you will have a problem
-reading from one of them. For these reasons, it is often best to make
-snapshots on a regular basis.
-<p><b>For archival safety, ensure that you have multiple copies of your
-database backups, verify that your archival media is error-free and
-readable, and that copies of your backups are stored off-site!</b>
-<p>The functionality provided by the <a href="../../utility/db_archive.html">db_archive</a> utility is also
-available directly from the Berkeley DB library. The following code fragment
-prints out a list of log and database files that need to be archived.
-<p><blockquote><pre>void
-log_archlist(DB_ENV *dbenv)
-{
- int ret;
- char **begin, **list;
-<p>
- /* Get the list of database files. */
- if ((ret = log_archive(dbenv,
- &list, DB_ARCH_ABS | DB_ARCH_DATA, NULL)) != 0) {
- dbenv-&gt;err(dbenv, ret, "log_archive: DB_ARCH_DATA");
- exit (1);
- }
- if (list != NULL) {
- for (begin = list; *list != NULL; ++list)
- printf("database file: %s\n", *list);
- free (begin);
- }
-<p>
- /* Get the list of log files. */
- if ((ret = log_archive(dbenv,
- &list, DB_ARCH_ABS | DB_ARCH_LOG, NULL)) != 0) {
- dbenv-&gt;err(dbenv, ret, "log_archive: DB_ARCH_LOG");
- exit (1);
- }
- if (list != NULL) {
- for (begin = list; *list != NULL; ++list)
- printf("log file: %s\n", *list);
- free (begin);
- }
-}</pre></blockquote>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/transapp/checkpoint.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/transapp/logfile.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/transapp/checkpoint.html b/bdb/docs/ref/transapp/checkpoint.html
deleted file mode 100644
index b9bd81a3ed6..00000000000
--- a/bdb/docs/ref/transapp/checkpoint.html
+++ /dev/null
@@ -1,127 +0,0 @@
-<!--$Id: checkpoint.so,v 10.13 2000/08/16 17:50:40 margo Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Checkpoints</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Transaction Protected Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/transapp/deadlock.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/transapp/archival.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Checkpoints</h1>
-<p>The second component of the infrastructure is performing checkpoints of
-the log files. As transactions commit, change records are written into
-the log files, but the actual changes to the database are not
-necessarily written to disk. When a checkpoint is performed, the
-changes to the database that are part of committed transactions are
-written into the backing database file.
-<p>Performing checkpoints is necessary for two reasons. First, you can
-only remove the Berkeley DB log files from your system after a checkpoint.
-Second, the frequency of your checkpoints is inversely proportional to
-the amount of time it takes to run database recovery after a system or
-application failure.
-<p>Once the database pages are written, log files can be archived and removed
-from the system because they will never be needed for anything other than
-catastrophic failure. In addition, recovery after system or application
-failure only has to redo or undo changes since the last checkpoint, since
-changes before the checkpoint have all been flushed to the filesystem.
-<p>Berkeley DB provides a separate utility, <a href="../../utility/db_checkpoint.html">db_checkpoint</a>, which can be
-used to perform checkpoints. Alternatively, applications can write
-their own checkpoint utility using the underlying <a href="../../api_c/txn_checkpoint.html">txn_checkpoint</a>
-function. The following code fragment checkpoints the database
-environment every 60 seconds:
-<p><blockquote><pre>int
-main(int argc, char *argv)
-{
- extern char *optarg;
- extern int optind;
- DB *db_cats, *db_color, *db_fruit;
- DB_ENV *dbenv;
- pthread_t ptid;
- int ch;
-<p>
- while ((ch = getopt(argc, argv, "")) != EOF)
- switch (ch) {
- case '?':
- default:
- usage();
- }
- argc -= optind;
- argv += optind;
-<p>
- env_dir_create();
- env_open(&dbenv);
-<p>
-<b> /* Start a checkpoint thread. */
- if ((errno = pthread_create(
- &ptid, NULL, checkpoint_thread, (void *)dbenv)) != 0) {
- fprintf(stderr,
- "txnapp: failed spawning checkpoint thread: %s\n",
- strerror(errno));
- exit (1);
- }</b>
-<p>
- /* Open database: Key is fruit class; Data is specific type. */
- db_open(dbenv, &db_fruit, "fruit", 0);
-<p>
- /* Open database: Key is a color; Data is an integer. */
- db_open(dbenv, &db_color, "color", 0);
-<p>
- /*
- * Open database:
- * Key is a name; Data is: company name, address, cat breeds.
- */
- db_open(dbenv, &db_cats, "cats", 1);
-<p>
- add_fruit(dbenv, db_fruit, "apple", "yellow delicious");
-<p>
- add_color(dbenv, db_color, "blue", 0);
- add_color(dbenv, db_color, "blue", 3);
-<p>
- add_cat(dbenv, db_cats,
- "Amy Adams",
- "Sleepycat Software",
- "394 E. Riding Dr., Carlisle, MA 01741, USA",
- "abyssinian",
- "bengal",
- "chartreaux",
- NULL);
-<p>
- return (0);
-}
-<p>
-<b>void *
-checkpoint_thread(void *arg)
-{
- DB_ENV *dbenv;
- int ret;
-<p>
- dbenv = arg;
- dbenv-&gt;errx(dbenv, "Checkpoint thread: %lu", (u_long)pthread_self());
-<p>
- /* Checkpoint once a minute. */
- for (;; sleep(60))
- switch (ret = txn_checkpoint(dbenv, 0, 0, 0)) {
- case 0:
- case DB_INCOMPLETE:
- break;
- default:
- dbenv-&gt;err(dbenv, ret, "checkpoint thread");
- exit (1);
- }
-<p>
- /* NOTREACHED */
-}</b></pre></blockquote>
-<p>As checkpoints can be quite expensive, choosing how often to perform a
-checkpoint is a common tuning parameter for Berkeley DB applications.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/transapp/deadlock.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/transapp/archival.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/transapp/cursor.html b/bdb/docs/ref/transapp/cursor.html
deleted file mode 100644
index bb1aff98a8c..00000000000
--- a/bdb/docs/ref/transapp/cursor.html
+++ /dev/null
@@ -1,169 +0,0 @@
-<!--$Id: cursor.so,v 1.2 2000/08/16 17:50:40 margo Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Transactional cursors</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Transaction Protected Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/transapp/read.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/transapp/admin.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Transactional cursors</h1>
-<p>Berkeley DB cursors may be used inside a transaction, exactly like any other
-DB method. The enclosing transaction ID must be specified when
-the cursor is created, but it does not then need to be further specified
-on operations performed using the cursor. One important point to
-remember is that a cursor <b>must be closed</b> before the enclosing
-transaction is committed or aborted.
-<p>The following code fragment uses a cursor to store a new key in the cats
-database with four associated data items. The key is a name. The data
-items are a company name, an address, and a list of the breeds of cat
-owned. Each of the data entries is stored as a duplicate data item.
-In this example, transactions are necessary to ensure that either all or none
-of the data items appear in case of system or application failure.
-<p><blockquote><pre>int
-main(int argc, char *argv)
-{
- extern char *optarg;
- extern int optind;
- DB *db_cats, *db_color, *db_fruit;
- DB_ENV *dbenv;
- pthread_t ptid;
- int ch;
-<p>
- while ((ch = getopt(argc, argv, "")) != EOF)
- switch (ch) {
- case '?':
- default:
- usage();
- }
- argc -= optind;
- argv += optind;
-<p>
- env_dir_create();
- env_open(&dbenv);
-<p>
- /* Open database: Key is fruit class; Data is specific type. */
- db_open(dbenv, &db_fruit, "fruit", 0);
-<p>
- /* Open database: Key is a color; Data is an integer. */
- db_open(dbenv, &db_color, "color", 0);
-<p>
- /*
- * Open database:
- * Key is a name; Data is: company name, address, cat breeds.
- */
- db_open(dbenv, &db_cats, "cats", 1);
-<p>
- add_fruit(dbenv, db_fruit, "apple", "yellow delicious");
-<p>
- add_color(dbenv, db_color, "blue", 0);
- add_color(dbenv, db_color, "blue", 3);
-<p>
-<b> add_cat(dbenv, db_cats,
- "Amy Adams",
- "Sleepycat Software",
- "394 E. Riding Dr., Carlisle, MA 01741, USA",
- "abyssinian",
- "bengal",
- "chartreaux",
- NULL);</b>
-<p>
- return (0);
-}
-<p>
-<b>void
-add_cat(DB_ENV *dbenv, DB *db, char *name, ...)
-{
- va_list ap;
- DBC *dbc;
- DBT key, data;
- DB_TXN *tid;
- int ret;
- char *s;
-<p>
- /* Initialization. */
- memset(&key, 0, sizeof(key));
- memset(&data, 0, sizeof(data));
- key.data = name;
- key.size = strlen(name);
-<p>
-retry: /* Begin the transaction. */
- if ((ret = txn_begin(dbenv, NULL, &tid, 0)) != 0) {
- dbenv-&gt;err(dbenv, ret, "txn_begin");
- exit (1);
- }
-<p>
- /* Delete any previously existing item. */
- switch (ret = db-&gt;del(db, tid, &key, 0)) {
- case 0:
- case DB_NOTFOUND:
- break;
- case DB_LOCK_DEADLOCK:
- /* Deadlock: retry the operation. */
- if ((ret = txn_abort(tid)) != 0) {
- dbenv-&gt;err(dbenv, ret, "txn_abort");
- exit (1);
- }
- goto retry;
- default:
- dbenv-&gt;err(dbenv, ret, "db-&gt;del: %s", name);
- exit (1);
- }
-<p>
- /* Create a cursor. */
- if ((ret = db-&gt;cursor(db, tid, &dbc, 0)) != 0) {
- dbenv-&gt;err(dbenv, ret, "db-&gt;cursor");
- exit (1);
- }
-<p>
- /* Append the items, in order. */
- va_start(ap, name);
- while ((s = va_arg(ap, char *)) != NULL) {
- data.data = s;
- data.size = strlen(s);
- switch (ret = dbc-&gt;c_put(dbc, &key, &data, DB_KEYLAST)) {
- case 0:
- break;
- case DB_LOCK_DEADLOCK:
- va_end(ap);
-<p>
- /* Deadlock: retry the operation. */
- if ((ret = dbc-&gt;c_close(dbc)) != 0) {
- dbenv-&gt;err(
- dbenv, ret, "dbc-&gt;c_close");
- exit (1);
- }
- if ((ret = txn_abort(tid)) != 0) {
- dbenv-&gt;err(dbenv, ret, "txn_abort");
- exit (1);
- }
- goto retry;
- default:
- /* Error: run recovery. */
- dbenv-&gt;err(dbenv, ret, "dbc-&gt;put: %s/%s", name, s);
- exit (1);
- }
- }
- va_end(ap);
-<p>
- /* Success: commit the change. */
- if ((ret = dbc-&gt;c_close(dbc)) != 0) {
- dbenv-&gt;err(dbenv, ret, "dbc-&gt;c_close");
- exit (1);
- }
- if ((ret = txn_commit(tid, 0)) != 0) {
- dbenv-&gt;err(dbenv, ret, "txn_commit");
- exit (1);
- }
-}</b></pre></blockquote>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/transapp/read.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/transapp/admin.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/transapp/data_open.html b/bdb/docs/ref/transapp/data_open.html
deleted file mode 100644
index 904778c3558..00000000000
--- a/bdb/docs/ref/transapp/data_open.html
+++ /dev/null
@@ -1,119 +0,0 @@
-<!--$Id: data_open.so,v 1.3 2000/08/16 17:50:40 margo Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Opening the databases</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Transaction Protected Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/transapp/env_open.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/transapp/put.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Opening the databases</h1>
-<p>Next, we open three databases ("color" and "fruit" and "cats"), in the
-database environment. Again, our DB database handles are
-declared to be free-threaded using the <a href="../../api_c/env_open.html#DB_THREAD">DB_THREAD</a> flag, and so
-may be used by any number of threads we subsequently create.
-<p><blockquote><pre>int
-main(int argc, char *argv)
-{
- extern char *optarg;
- extern int optind;
- DB *db_cats, *db_color, *db_fruit;
- DB_ENV *dbenv;
- pthread_t ptid;
- int ch;
-<p>
- while ((ch = getopt(argc, argv, "")) != EOF)
- switch (ch) {
- case '?':
- default:
- usage();
- }
- argc -= optind;
- argv += optind;
-<p>
- env_dir_create();
- env_open(&dbenv);
-<p>
-<b> /* Open database: Key is fruit class; Data is specific type. */
- db_open(dbenv, &db_fruit, "fruit", 0);
-<p>
- /* Open database: Key is a color; Data is an integer. */
- db_open(dbenv, &db_color, "color", 0);
-<p>
- /*
- * Open database:
- * Key is a name; Data is: company name, address, cat breeds.
- */
- db_open(dbenv, &db_cats, "cats", 1);</b>
-<p>
- return (0);
-}
-<p>
-<b>void
-db_open(DB_ENV *dbenv, DB **dbp, char *name, int dups)
-{
- DB *db;
- int ret;
-<p>
- /* Create the database handle. */
- if ((ret = db_create(&db, dbenv, 0)) != 0) {
- dbenv-&gt;err(dbenv, ret, "db_create");
- exit (1);
- }
-<p>
- /* Optionally, turn on duplicate data items. */
- if (dups && (ret = db-&gt;set_flags(db, DB_DUP)) != 0) {
- dbenv-&gt;err(dbenv, ret, "db-&gt;set_flags: DB_DUP");
- exit (1);
- }
-<p>
- /*
- * Open a database in the environment:
- * create if it doesn't exist
- * free-threaded handle
- * read/write owner only
- */
- if ((ret = db-&gt;open(db, name, NULL,
- DB_BTREE, DB_CREATE | DB_THREAD, S_IRUSR | S_IWUSR)) != 0) {
- dbenv-&gt;err(dbenv, ret, "db-&gt;open: %s", name);
- exit (1);
- }
-<p>
- *dbp = db;
-}</b></pre></blockquote>
-<p>There is no reason to wrap database opens inside of transactions. All
-database opens are transaction protected internally to Berkeley DB, and
-applications using transaction-protected environments can simply rely on
-files either being successfully re-created in a recovered environment,
-or not appearing at all.
-<p>After running this initial code, we can use the <a href="../../utility/db_stat.html">db_stat</a> utility
-to display information about a database we have created:
-<p><blockquote><pre>prompt&gt; db_stat -h TXNAPP -d color
-53162 Btree magic number.
-8 Btree version number.
-Flags:
-2 Minimum keys per-page.
-8192 Underlying database page size.
-1 Number of levels in the tree.
-0 Number of unique keys in the tree.
-0 Number of data items in the tree.
-0 Number of tree internal pages.
-0 Number of bytes free in tree internal pages (0% ff).
-1 Number of tree leaf pages.
-8166 Number of bytes free in tree leaf pages (0.% ff).
-0 Number of tree duplicate pages.
-0 Number of bytes free in tree duplicate pages (0% ff).
-0 Number of tree overflow pages.
-0 Number of bytes free in tree overflow pages (0% ff).
-0 Number of pages on the free list.</pre></blockquote>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/transapp/env_open.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/transapp/put.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/transapp/deadlock.html b/bdb/docs/ref/transapp/deadlock.html
deleted file mode 100644
index 65765ec5903..00000000000
--- a/bdb/docs/ref/transapp/deadlock.html
+++ /dev/null
@@ -1,92 +0,0 @@
-<!--$Id: deadlock.so,v 10.15 2000/08/10 17:54:49 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Deadlock detection</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Transaction Protected Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/transapp/admin.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/transapp/checkpoint.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Deadlock detection</h1>
-<p>The first component of the infrastructure, deadlock detection, is not
-so much a requirement specific to transaction protected applications,
-but rather is necessary for almost all applications where more than a
-single thread of control will be accessing the database at one time.
-While Berkeley DB automatically handles database locking, it is normally
-possible for deadlock to occur. It is not required by all transactional
-applications, but exceptions are rare.
-<p>When the deadlock occurs, two (or more) threads of control each request
-additional locks which can never be granted because one of the threads
-of control waiting holds the requested resource.
-<p>For example, consider two processes A and B. Let's say that A obtains
-an exclusive lock on item X, and B obtains an exclusive lock on item Y.
-Then, A requests a lock on Y and B requests a lock on X. A will wait
-until resource Y becomes available and B will wait until resource X
-becomes available. Unfortunately, since both A and B are waiting,
-neither will release the locks they hold and neither will ever obtain
-the resource on which it is waiting. In order to detect that deadlock
-has happened, a separate process or thread must review the locks
-currently held in the database. If deadlock has occurred, a victim must
-be selected, and that victim will then return the error
-<a href="../../ref/program/errorret.html#DB_LOCK_DEADLOCK">DB_LOCK_DEADLOCK</a> from whatever Berkeley DB call it was making.
-<p>Berkeley DB provides a separate UNIX-style utility which can be used to
-perform this deadlock detection, named <a href="../../utility/db_deadlock.html">db_deadlock</a>.
-Alternatively, applications can create their own deadlock utility or
-thread using the underlying <a href="../../api_c/lock_detect.html">lock_detect</a> function, or specify
-that Berkeley DB run the deadlock detector internally whenever there is a
-conflict over a lock (see <a href="../../api_c/env_set_lk_detect.html">DBENV-&gt;set_lk_detect</a> for more
-information). The following code fragment does the latter:
-<p><blockquote><pre>void
-env_open(DB_ENV **dbenvp)
-{
- DB_ENV *dbenv;
- int ret;
-<p>
- /* Create the environment handle. */
- if ((ret = db_env_create(&dbenv, 0)) != 0) {
- fprintf(stderr,
- "txnapp: db_env_create: %s\n", db_strerror(ret));
- exit (1);
- }
-<p>
- /* Set up error handling. */
- dbenv-&gt;set_errpfx(dbenv, "txnapp");
-<p>
-<b> /* Do deadlock detection internally. */
- if ((ret = dbenv-&gt;set_lk_detect(dbenv, DB_LOCK_DEFAULT)) != 0) {
- dbenv-&gt;err(dbenv, ret, "set_lk_detect: DB_LOCK_DEFAULT");
- exit (1);
- }</b>
-<p>
- /*
- * Open a transactional environment:
- * create if it doesn't exist
- * free-threaded handle
- * run recovery
- * read/write owner only
- */
- if ((ret = dbenv-&gt;open(dbenv, ENV_DIRECTORY,
- DB_CREATE | DB_INIT_LOCK | DB_INIT_LOG |
- DB_INIT_MPOOL | DB_INIT_TXN | DB_RECOVER | DB_THREAD,
- S_IRUSR | S_IWUSR)) != 0) {
- dbenv-&gt;err(dbenv, ret, "dbenv-&gt;open: %s", ENV_DIRECTORY);
- exit (1);
- }
-<p>
- *dbenvp = dbenv;
-}</pre></blockquote>
-<p>Deciding how often to run the deadlock detector and which of the
-deadlocked transactions will be forced to abort when the deadlock is
-detected is a common tuning parameter for Berkeley DB applications.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/transapp/admin.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/transapp/checkpoint.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/transapp/env_open.html b/bdb/docs/ref/transapp/env_open.html
deleted file mode 100644
index 7209a3fef5f..00000000000
--- a/bdb/docs/ref/transapp/env_open.html
+++ /dev/null
@@ -1,174 +0,0 @@
-<!--$Id: env_open.so,v 1.1 2000/07/25 17:56:36 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Opening the environment</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Transaction Protected Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/transapp/app.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/transapp/data_open.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Opening the environment</h1>
-<p>Creating transaction-protected applications using the Berkeley DB library is
-quite easy. Applications first use <a href="../../api_c/env_open.html">DBENV-&gt;open</a> to initialize
-the database environment. Transaction-protected applications normally
-require all four Berkeley DB subsystems, so the <a href="../../api_c/env_open.html#DB_INIT_MPOOL">DB_INIT_MPOOL</a>,
-<a href="../../api_c/env_open.html#DB_INIT_LOCK">DB_INIT_LOCK</a>, <a href="../../api_c/env_open.html#DB_INIT_LOG">DB_INIT_LOG</a> and <a href="../../api_c/env_open.html#DB_INIT_TXN">DB_INIT_TXN</a> flags
-should be specified.
-<p>Once the application has called <a href="../../api_c/env_open.html">DBENV-&gt;open</a>, it opens its
-databases within the environment. Once the databases are opened, the
-application makes changes to the databases inside of transactions. Each
-set of changes that entail a unit of work should be surrounded by the
-appropriate <a href="../../api_c/txn_begin.html">txn_begin</a>, <a href="../../api_c/txn_commit.html">txn_commit</a> and <a href="../../api_c/txn_abort.html">txn_abort</a>
-calls. The Berkeley DB access methods will make the appropriate calls into
-the lock, log and memory pool subsystems in order to guarantee
-transaction semantics. When the application is ready to exit, all
-outstanding transactions should have been committed or aborted.
-<p>Databases accessed by a transaction must not be closed during the
-transaction. Once all outstanding transactions are finished, all open
-Berkeley DB files should be closed. When the Berkeley DB database files have been
-closed, the environment should be closed by calling <a href="../../api_c/env_close.html">DBENV-&gt;close</a>.
-<p>The following code fragment creates the database environment directory,
-then opens the environment, running recovery. Our DB_ENV
-database environment handle is declared to be free-threaded using the
-<a href="../../api_c/env_open.html#DB_THREAD">DB_THREAD</a> flag, and so may be used by any number of threads that
-we may subsequently create.
-<p><blockquote><pre>#include &lt;sys/types.h&gt;
-#include &lt;sys/stat.h&gt;
-<p>
-#include &lt;errno.h&gt;
-#include &lt;pthread.h&gt;
-#include &lt;stdarg.h&gt;
-#include &lt;stdlib.h&gt;
-#include &lt;string.h&gt;
-#include &lt;unistd.h&gt;
-<p>
-#include &lt;db.h&gt;
-<p>
-#define ENV_DIRECTORY "TXNAPP"
-<p>
-void env_dir_create(void);
-void env_open(DB_ENV **);
-<p>
-int
-main(int argc, char *argv)
-{
- extern char *optarg;
- extern int optind;
- DB *db_cats, *db_color, *db_fruit;
- DB_ENV *dbenv;
- pthread_t ptid;
- int ch;
-<p>
- while ((ch = getopt(argc, argv, "")) != EOF)
- switch (ch) {
- case '?':
- default:
- usage();
- }
- argc -= optind;
- argv += optind;
-<p>
- env_dir_create();
- env_open(&dbenv);
-<p>
- return (0);
-}
-<p>
-void
-env_dir_create()
-{
- struct stat sb;
-<p>
- /*
- * If the directory exists, we're done. We do not further check
- * the type of the file, DB will fail appropriately if it's the
- * wrong type.
- */
- if (stat(ENV_DIRECTORY, &sb) == 0)
- return;
-<p>
- /* Create the directory, read/write/access owner only. */
- if (mkdir(ENV_DIRECTORY, S_IRWXU) != 0) {
- fprintf(stderr,
- "txnapp: mkdir: %s: %s\n", ENV_DIRECTORY, strerror(errno));
- exit (1);
- }
-}
-<p>
-void
-env_open(DB_ENV **dbenvp)
-{
- DB_ENV *dbenv;
- int ret;
-<p>
- /* Create the environment handle. */
- if ((ret = db_env_create(&dbenv, 0)) != 0) {
- fprintf(stderr,
- "txnapp: db_env_create: %s\n", db_strerror(ret));
- exit (1);
- }
-<p>
- /* Set up error handling. */
- dbenv-&gt;set_errpfx(dbenv, "txnapp");
-<p>
- /*
- * Open a transactional environment:
- * create if it doesn't exist
- * free-threaded handle
- * run recovery
- * read/write owner only
- */
- if ((ret = dbenv-&gt;open(dbenv, ENV_DIRECTORY,
- DB_CREATE | DB_INIT_LOCK | DB_INIT_LOG |
- DB_INIT_MPOOL | DB_INIT_TXN | DB_RECOVER | DB_THREAD,
- S_IRUSR | S_IWUSR)) != 0) {
- dbenv-&gt;err(dbenv, ret, "dbenv-&gt;open: %s", ENV_DIRECTORY);
- exit (1);
- }
-<p>
- *dbenvp = dbenv;
-}</pre></blockquote>
-<p>After running this initial program, we can use the <a href="../../utility/db_stat.html">db_stat</a>
-utility to display the contents of the environment directory:
-<p><blockquote><pre>prompt&gt; db_stat -e -h TXNAPP
-3.2.1 Environment version.
-120897 Magic number.
-0 Panic value.
-1 References.
-6 Locks granted without waiting.
-0 Locks granted after waiting.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-Mpool Region: 4.
-264KB Size (270336 bytes).
--1 Segment ID.
-1 Locks granted without waiting.
-0 Locks granted after waiting.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-Log Region: 3.
-96KB Size (98304 bytes).
--1 Segment ID.
-3 Locks granted without waiting.
-0 Locks granted after waiting.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-Lock Region: 2.
-240KB Size (245760 bytes).
--1 Segment ID.
-1 Locks granted without waiting.
-0 Locks granted after waiting.
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
-Txn Region: 5.
-8KB Size (8192 bytes).
--1 Segment ID.
-1 Locks granted without waiting.
-0 Locks granted after waiting.</pre></blockquote>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/transapp/app.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/transapp/data_open.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/transapp/filesys.html b/bdb/docs/ref/transapp/filesys.html
deleted file mode 100644
index fc68089e90f..00000000000
--- a/bdb/docs/ref/transapp/filesys.html
+++ /dev/null
@@ -1,62 +0,0 @@
-<!--$Id: filesys.so,v 10.30 2000/07/25 16:31:20 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Recovery and filesystem operations</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Transaction Protected Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/transapp/recovery.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/transapp/reclimit.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Recovery and filesystem operations</h1>
-<p>When running in a transaction-protected environment, database creation
-and deletion are logged as stand-alone transactions internal to Berkeley DB.
-That is, for each such operation a new transaction is begun and aborted
-or committed internally, so that they will be recovered during recovery.
-<p>The Berkeley DB API supports removing and renaming files. Renaming files is
-supported by the <a href="../../api_c/db_rename.html">DB-&gt;rename</a> method, and removing files by the
-<a href="../../api_c/db_remove.html">DB-&gt;remove</a> method. Berkeley DB does not permit specifying the
-<a href="../../api_c/db_open.html#DB_TRUNCATE">DB_TRUNCATE</a> flag when opening a file in a transaction protected
-environment. This is an implicit file deletion, but one that does not
-always require the same operating system file permissions as does deleting
-and creating a file.
-<p>If you have changed the name of a file or deleted it outside of the Berkeley DB
-library (e.g., you explicitly removed a file using your normal operating
-system utilities), then it is possible that recovery will not be able to
-find a database referenced in the log. In this case, <a href="../../utility/db_recover.html">db_recover</a>
-will produce a warning message saying it was unable to locate a file it
-expected to find. This message is only a warning, as the file may have
-been subsequently deleted as part of normal database operations before
-the failure occurred, and so is not necessarily a problem.
-<p>Generally, any filesystem operations that are performed outside the Berkeley DB
-interface should be performed at the same time as making a snapshot of
-the database. To perform filesystem operations correctly:
-<p><ol>
-<p><li>Cleanly shutdown database operations.
-<p>To shutdown database operations cleanly, all applications accessing the
-database environment must be shutdown and a transaction checkpoint must
-be taken. If the applications are not implemented such that they can be
-shutdown gracefully (i.e., closing all references to the database
-environment), recovery must be performed after all applications have been
-killed to ensure that the underlying databases are consistent on disk.
-<p><li>Perform the filesystem operations, e.g., remove or rename one
-or more files.
-<p><li>Make an archival snapshot of the database.
-<p>While this step is not strictly necessary, it is strongly recommended.
-If this step is not performed, recovery from catastrophic failure will
-require that recovery first be performed up to the time of the
-filesystem operations, the filesystem operations be redone, and then
-recovery be performed from the filesystem operations forward.
-<p><li>Restart the database applications.
-</ol>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/transapp/recovery.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/transapp/reclimit.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/transapp/inc.html b/bdb/docs/ref/transapp/inc.html
deleted file mode 100644
index 35cf67d7efa..00000000000
--- a/bdb/docs/ref/transapp/inc.html
+++ /dev/null
@@ -1,201 +0,0 @@
-<!--$Id: inc.so,v 1.6 2000/08/08 19:58:20 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Atomicity</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Transaction Protected Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/transapp/put.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/transapp/read.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Atomicity</h1>
-<p>The third reason listed for using transactions was atomicity. Consider
-an application suite where multiple threads of control (multiple
-processes or threads in one or more processes) are changing the values
-associated with a key in one or more databases. Specifically, they are
-taking the current value, incrementing it, and then storing it back into
-the database.
-<p>Such an application requires atomicity. Since we want to change a value
-in the database, we must make sure that once we read it, no other thread
-of control modifies it. For example, assume that both thread #1 and
-thread #2 are doing similar operations in the database, where thread #1
-is incrementing records by 3, and thread #2 is incrementing records by
-5. We want to increment the record by a total of 8. If the operations
-interleave in the right (well, wrong) order, that is not what will
-happen:
-<p><blockquote><pre>thread #1 <b>read</b> record: the value is 2
-thread #2 <b>read</b> record: the value is 2
-thread #2 <b>write</b> record + 5 back into the database (new value 7)
-thread #1 <b>write</b> record + 3 back into the database (new value 5)</pre></blockquote>
-<p>As you can see, instead of incrementing the record by a total of 8,
-we've only incremented it by 3, because thread #1 overwrote thread #2's
-change. By wrapping the operations in transactions, we ensure that this
-cannot happen. In a transaction, when the first thread reads the
-record, locks are acquired that will not be released until the
-transaction finishes, guaranteeing that all other readers and writers
-will block, waiting for the first thread's transaction to complete (or
-to be aborted).
-<p>Here is an example function that does transaction-protected increments
-on database records to ensure atomicity.
-<p><blockquote><pre>int
-main(int argc, char *argv)
-{
- extern char *optarg;
- extern int optind;
- DB *db_cats, *db_color, *db_fruit;
- DB_ENV *dbenv;
- pthread_t ptid;
- int ch;
-<p>
- while ((ch = getopt(argc, argv, "")) != EOF)
- switch (ch) {
- case '?':
- default:
- usage();
- }
- argc -= optind;
- argv += optind;
-<p>
- env_dir_create();
- env_open(&dbenv);
-<p>
- /* Open database: Key is fruit class; Data is specific type. */
- db_open(dbenv, &db_fruit, "fruit", 0);
-<p>
- /* Open database: Key is a color; Data is an integer. */
- db_open(dbenv, &db_color, "color", 0);
-<p>
- /*
- * Open database:
- * Key is a name; Data is: company name, address, cat breeds.
- */
- db_open(dbenv, &db_cats, "cats", 1);
-<p>
- add_fruit(dbenv, db_fruit, "apple", "yellow delicious");
-<p>
-<b> add_color(dbenv, db_color, "blue", 0);
- add_color(dbenv, db_color, "blue", 3);</b>
-<p>
- return (0);
-}
-<p>
-<b>void
-add_color(DB_ENV *dbenv, DB *dbp, char *color, int increment)
-{
- DBT key, data;
- DB_TXN *tid;
- int original, ret;
- char buf64;
-<p>
- /* Initialization. */
- memset(&key, 0, sizeof(key));
- key.data = color;
- key.size = strlen(color);
- memset(&data, 0, sizeof(data));
- data.flags = DB_DBT_MALLOC;
-<p>
- for (;;) {
- /* Begin the transaction. */
- if ((ret = txn_begin(dbenv, NULL, &tid, 0)) != 0) {
- dbenv-&gt;err(dbenv, ret, "txn_begin");
- exit (1);
- }
-<p>
- /*
- * Get the key. If it exists, we increment the value. If it
- * doesn't exist, we create it.
- */
- switch (ret = dbp-&gt;get(dbp, tid, &key, &data, 0)) {
- case 0:
- original = atoi(data.data);
- break;
- case DB_LOCK_DEADLOCK:
- /* Deadlock: retry the operation. */
- if ((ret = txn_abort(tid)) != 0) {
- dbenv-&gt;err(dbenv, ret, "txn_abort");
- exit (1);
- }
- continue;
- case DB_NOTFOUND:
- original = 0;
- break;
- default:
- /* Error: run recovery. */
- dbenv-&gt;err(
- dbenv, ret, "dbc-&gt;get: %s/%d", color, increment);
- exit (1);
- }
- if (data.data != NULL)
- free(data.data);
-<p>
- /* Create the new data item. */
- (void)snprintf(buf, sizeof(buf), "%d", original + increment);
- data.data = buf;
- data.size = strlen(buf) + 1;
-<p>
- /* Store the new value. */
- switch (ret = dbp-&gt;put(dbp, tid, &key, &data, 0)) {
- case 0:
- /* Success: commit the change. */
- if ((ret = txn_commit(tid, 0)) != 0) {
- dbenv-&gt;err(dbenv, ret, "txn_commit");
- exit (1);
- }
- return;
- case DB_LOCK_DEADLOCK:
- /* Deadlock: retry the operation. */
- if ((ret = txn_abort(tid)) != 0) {
- dbenv-&gt;err(dbenv, ret, "txn_abort");
- exit (1);
- }
- break;
- default:
- /* Error: run recovery. */
- dbenv-&gt;err(
- dbenv, ret, "dbc-&gt;put: %s/%d", color, increment);
- exit (1);
- }
- }
-}</b></pre></blockquote>
-<p>Any number of operations, on any number of databases, can be included
-in a single transaction to ensure atomicity of the operations. There
-is, however, a trade-off between the number of operations included in
-a single transaction and both throughput and the possibility of
-deadlock. The reason for this is because transactions acquire locks
-throughout their lifetime, and do not release them until transaction
-commit or abort. So, the more operations included in a transaction,
-the more likely that a transaction will block other operations and that
-deadlock will occur. However, each transaction commit requires a
-synchronous disk I/O, so grouping multiple operations into a transaction
-can increase overall throughput. (There is one exception to this. The
-<a href="../../api_c/env_open.html#DB_TXN_NOSYNC">DB_TXN_NOSYNC</a> option causes transactions to exhibit the ACI
-(atomicity, consistency and isolation) properties, but not D
-(durability), avoiding the synchronous disk I/O on transaction commit
-and greatly increasing transaction throughput for some applications.
-<p>When applications do create complex transactions, they often avoid
-having more than one complex transaction at a time, as simple operations
-like a single <a href="../../api_c/db_put.html">DB-&gt;put</a> are unlikely to deadlock with each other
-or the complex transaction, while multiple complex transactions are
-likely to deadlock with each other as they will both acquire many locks
-over their lifetime. Alternatively, complex transactions can be broken
-up into smaller sets of operations, and each of those sets may be
-encapsulated in a nested transaction. Because nested transactions may
-be individually aborted and retried without causing the entire
-transaction to be aborted, this allows complex transactions to proceed
-even in the face of heavy contention, repeatedly trying the
-sub-operations until they succeed.
-<p>It is also helpful to order operations within a transaction, that is,
-access the databases and items within the databases in the same order,
-to the extent possible, in all transactions. Accessing databases and
-items in different orders greatly increases the likelihood of operations
-being blocked and failing due to deadlocks.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/transapp/put.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/transapp/read.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/transapp/intro.html b/bdb/docs/ref/transapp/intro.html
deleted file mode 100644
index 758169e8552..00000000000
--- a/bdb/docs/ref/transapp/intro.html
+++ /dev/null
@@ -1,42 +0,0 @@
-<!--$Id: intro.so,v 10.35 2000/12/04 18:05:44 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Building transaction protected applications</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Transaction Protected Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/cam/intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/transapp/why.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Building transaction protected applications</h1>
-<p>It is difficult to write a useful transactional tutorial and still keep
-within reasonable bounds of documentation, that is, without writing a
-book on transactional programming. We have two goals in this section:
-to familiarize readers with the transactional interfaces of Berkeley DB and
-to provide code building blocks that will be useful in creating
-applications.
-<p>We have not attempted to present this information using a real-world
-application. First, transactional applications are often complex and
-time consuming to explain. Also, one of our goals is to give you an
-understanding of the wide variety of tools Berkeley DB makes available to you,
-and no single application would use most of the interfaces included in
-the Berkeley DB library. For these reasons, we have chosen to simply present
-the Berkeley DB data structures and programming solutions, using examples that
-differ from page to page. All of the examples are included in a
-standalone program you can examine, modify and run, and from which you
-will be able to extract code blocks for your own applications.
-Fragments of the program will be presented throughout this chapter, and
-the complete text of the <a href="transapp.txt">example program</a>
-for IEEE/ANSI Std 1003.1 (POSIX) standard systems is included in the Berkeley DB
-distribution.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/cam/intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/transapp/why.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/transapp/logfile.html b/bdb/docs/ref/transapp/logfile.html
deleted file mode 100644
index 64d8a96475e..00000000000
--- a/bdb/docs/ref/transapp/logfile.html
+++ /dev/null
@@ -1,104 +0,0 @@
-<!--$Id: logfile.so,v 11.1 2000/07/25 16:31:20 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Log file removal</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Transaction Protected Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/transapp/archival.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/transapp/recovery.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Log file removal</h1>
-<p>The fourth component of the infrastructure, log file removal, concerns
-the ongoing disk consumption of the database log files. Depending on
-the rate at which the application writes to the databases and the
-available disk space, the number of log files may increase quickly
-enough that disk space will be a resource problem. For this reason,
-you will periodically want to remove log files in order to conserve disk
-space. This procedure is distinct from database and log file archival
-for catastrophic recovery, and you cannot remove the current log files
-simply because you have created a database snapshot or copied log files
-to archival media.
-<p>Log files may be removed at any time, as long as:
-<ul type=disc>
-<li>the log file is not involved in an active transaction
-<li>at least two checkpoints have been written subsequent to the
-log file's creation, and
-<li>the log file is not the only log file in the environment.
-</ul>
-<p>Obviously, if you are preparing for catastrophic failure, you will want
-to copy the log files to archival media before you remove them.
-<p>To remove log files, take the following steps:
-<p><ol>
-<p><li>If you are concerned with catastrophic failure, first copy the log files
-to backup media as described in <a href="archival.html">Archival for
-catastrophic recovery</a>.
-<p><li>Run <a href="../../utility/db_archive.html">db_archive</a> without options to identify all of the log files
-that are no longer in use (e.g., no longer involved in an active
-transaction).
-<p><li>Remove those log files from the system.
-</ol>
-<p>The functionality provided by the <a href="../../utility/db_archive.html">db_archive</a> utility is also
-available directly from the Berkeley DB library. The following code fragment
-removes log files that are no longer needed by the database
-environment.
-<p><blockquote><pre>int
-main(int argc, char *argv)
-{
- ...
-<p>
-<b> /* Start a logfile removal thread. */
- if ((errno = pthread_create(
- &ptid, NULL, logfile_thread, (void *)dbenv)) != 0) {
- fprintf(stderr,
- "txnapp: failed spawning log file removal thread: %s\n",
- strerror(errno));
- exit (1);
- }</b>
-<p>
- ...
-}
-<p>
-<b>void *
-logfile_thread(void *arg)
-{
- DB_ENV *dbenv;
- int ret;
- char **begin, **list;
-<p>
- dbenv = arg;
- dbenv-&gt;errx(dbenv,
- "Log file removal thread: %lu", (u_long)pthread_self());
-<p>
- /* Check once every 5 minutes. */
- for (;; sleep(300)) {
- /* Get the list of log files. */
- if ((ret = log_archive(dbenv, &list, DB_ARCH_ABS, NULL)) != 0) {
- dbenv-&gt;err(dbenv, ret, "log_archive");
- exit (1);
- }
-<p>
- /* Remove the log files. */
- if (list != NULL) {
- for (begin = list; *list != NULL; ++list)
- if ((ret = remove(*list)) != 0) {
- dbenv-&gt;err(dbenv,
- ret, "remove %s", *list);
- exit (1);
- }
- free (begin);
- }
- }
- /* NOTREACHED */
-}</b></pre></blockquote>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/transapp/archival.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/transapp/recovery.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/transapp/put.html b/bdb/docs/ref/transapp/put.html
deleted file mode 100644
index e04a04f70bb..00000000000
--- a/bdb/docs/ref/transapp/put.html
+++ /dev/null
@@ -1,151 +0,0 @@
-<!--$Id: put.so,v 1.3 2000/08/16 17:50:40 margo Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Recoverability and deadlock avoidance</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Transaction Protected Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/transapp/data_open.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/transapp/inc.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Recoverability and deadlock avoidance</h1>
-<p>The first reason listed for using transactions was recoverability. Any
-logical change to a database may require multiple changes to underlying
-data structures. For example, modifying a record in a Btree may require
-leaf and internal pages to split, and so a single <a href="../../api_c/db_put.html">DB-&gt;put</a> method
-call can potentially require that multiple physical database pages be
-written. If only some of those pages are written and then the system
-or application fails, the database is left inconsistent and cannot be
-used until it has been recovered, that is, until the partially completed
-changes have been undone.
-<p>Write-ahead-logging is the term that describes the underlying
-implementation that Berkeley DB uses to ensure recoverability. What it means
-is that before any change is made to a database, information about the
-change is written to a database log. During recovery, the log is read,
-and databases are checked to ensure that changes described in the log
-for committed transactions appear in the database. Changes that appear
-in the database but are related to aborted or unfinished transactions
-in the log are undone from the database.
-<p>For recoverability after application or system failure, operations that
-modify the database must be protected by transactions. More
-specifically, operations are not recoverable unless a transaction is
-begun and each operation is associated with the transaction via the
-Berkeley DB interfaces, and then the transaction successfully committed. This
-is true even if logging is turned on in the database environment.
-<p>Here is an example function that updates a record in a database in a
-transactionally protected manner. The function takes a key and data
-items as arguments, and then attempts to store them into the database.
-<p><blockquote><pre>int
-main(int argc, char *argv)
-{
- extern char *optarg;
- extern int optind;
- DB *db_cats, *db_color, *db_fruit;
- DB_ENV *dbenv;
- pthread_t ptid;
- int ch;
-<p>
- while ((ch = getopt(argc, argv, "")) != EOF)
- switch (ch) {
- case '?':
- default:
- usage();
- }
- argc -= optind;
- argv += optind;
-<p>
- env_dir_create();
- env_open(&dbenv);
-<p>
- /* Open database: Key is fruit class; Data is specific type. */
- db_open(dbenv, &db_fruit, "fruit", 0);
-<p>
- /* Open database: Key is a color; Data is an integer. */
- db_open(dbenv, &db_color, "color", 0);
-<p>
- /*
- * Open database:
- * Key is a name; Data is: company name, address, cat breeds.
- */
- db_open(dbenv, &db_cats, "cats", 1);
-<p>
-<b> add_fruit(dbenv, db_fruit, "apple", "yellow delicious");</b>
-<p>
- return (0);
-}
-<p>
-<b>void
-add_fruit(DB_ENV *dbenv, DB *db, char *fruit, char *name)
-{
- DBT key, data;
- DB_TXN *tid;
- int ret;
-<p>
- /* Initialization. */
- memset(&key, 0, sizeof(key));
- memset(&data, 0, sizeof(data));
- key.data = fruit;
- key.size = strlen(fruit);
- data.data = name;
- data.size = strlen(name);
-<p>
- for (;;) {
- /* Begin the transaction. */
- if ((ret = txn_begin(dbenv, NULL, &tid, 0)) != 0) {
- dbenv-&gt;err(dbenv, ret, "txn_begin");
- exit (1);
- }
-<p>
- /* Store the value. */
- switch (ret = db-&gt;put(db, tid, &key, &data, 0)) {
- case 0:
- /* Success: commit the change. */
- if ((ret = txn_commit(tid, 0)) != 0) {
- dbenv-&gt;err(dbenv, ret, "txn_commit");
- exit (1);
- }
- return;
- case DB_LOCK_DEADLOCK:
- /* Deadlock: retry the operation. */
- if ((ret = txn_abort(tid)) != 0) {
- dbenv-&gt;err(dbenv, ret, "txn_abort");
- exit (1);
- }
- break;
- default:
- /* Error: run recovery. */
- dbenv-&gt;err(dbenv, ret, "dbc-&gt;put: %s/%s", fruit, name);
- exit (1);
- }
- }
-}</b></pre></blockquote>
-<p>The second reason listed for using transactions was deadlock avoidance.
-There is a new error return in this function that you may not have seen
-before. In transactional (not Concurrent Data Store) applications
-supporting both readers and writers or just multiple writers, Berkeley DB
-functions have an additional possible error return:
-<a href="../../ref/program/errorret.html#DB_LOCK_DEADLOCK">DB_LOCK_DEADLOCK</a>. This return means that our thread of control
-deadlocked with another thread of control, and our thread was selected
-to discard all of its Berkeley DB resources in order to resolve the problem.
-In the sample code, any time the <a href="../../api_c/db_put.html">DB-&gt;put</a> function returns
-<a href="../../ref/program/errorret.html#DB_LOCK_DEADLOCK">DB_LOCK_DEADLOCK</a>, the transaction is aborted (by calling
-<a href="../../api_c/txn_abort.html">txn_abort</a>, which releases the transaction's Berkeley DB resources and
-undoes any partial changes to the databases), and then the transaction
-is retried from the beginning.
-<p>There is no requirement that the transaction be attempted again, but
-that is a common course of action for applications. Applications may
-want to set an upper boundary on the number of times an operation will
-be retried, as some operations on some data sets may simply be unable
-to succeed. For example, updating all of the pages on a large web site
-during prime business hours may simply be impossible because of the high
-access rate to the database.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/transapp/data_open.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/transapp/inc.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/transapp/read.html b/bdb/docs/ref/transapp/read.html
deleted file mode 100644
index 912401e8758..00000000000
--- a/bdb/docs/ref/transapp/read.html
+++ /dev/null
@@ -1,40 +0,0 @@
-<!--$Id: read.so,v 1.1 2000/07/25 17:56:36 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Repeatable reads</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Transaction Protected Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/transapp/inc.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/transapp/cursor.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Repeatable reads</h1>
-<p>The fourth reason listed for using transactions was repeatable reads.
-Generally, most applications do not need to place reads inside a
-transaction for performance reasons. The problem is that a
-transactionally protected cursor, reading each key/data pair in a
-database, will acquire a read lock on most of the pages in the database
-and so will gradually block all write operations on the databases until
-the transaction commits or aborts. Note, however, if there are update
-transactions present in the application, the reading transactions must
-still use locking, and should be prepared to repeat any operation
-(possibly closing and reopening a cursor) which fails with a return
-value of <a href="../../ref/program/errorret.html#DB_LOCK_DEADLOCK">DB_LOCK_DEADLOCK</a>.
-<p>The exceptions to this rule are when the application is doing a
-read-modify-write operation and so requires atomicity, and when an
-application requires the ability to repeatedly access a data item
-knowing that it will not have changed. A repeatable read simply means
-that, for the life of the transaction, every time a request is made by
-any thread of control to read a data item, it will be unchanged from
-its previous value, that is, that the value will not change until the
-transaction commits or aborts.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/transapp/inc.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/transapp/cursor.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/transapp/reclimit.html b/bdb/docs/ref/transapp/reclimit.html
deleted file mode 100644
index 559f8ed11b3..00000000000
--- a/bdb/docs/ref/transapp/reclimit.html
+++ /dev/null
@@ -1,106 +0,0 @@
-<!--$Id: reclimit.so,v 11.19 2000/08/16 17:50:40 margo Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Berkeley DB recoverability</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Transaction Protected Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/transapp/filesys.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/transapp/throughput.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Berkeley DB recoverability</h1>
-<p>Berkeley DB recovery is based on write-ahead logging. What this means is that,
-when a change is made to a database page, a description of the change is
-written into a log file. This description in the log file is guaranteed
-to be written to stable storage before the database pages that were
-changed are written to stable storage. This is the fundamental feature
-of the logging system that makes durability and rollback work.
-<p>If the application or system crashes, the log is reviewed during recovery.
-Any database changes described in the log that were part of committed
-transactions, and that were never written to the actual database itself,
-are written to the database as part of recovery. Any database changes
-described in the log that were never committed, and that were written to
-the actual database itself, are backed-out of the the database as part of
-recovery. This design allows the database to be written lazily, and only
-blocks from the log file have to be forced to disk as part of transaction
-commit.
-<p>There are two interfaces that are a concern when considering Berkeley DB
-recoverability:
-<p><ol>
-<p><li>The interface between Berkeley DB and the operating system/filesystem.
-<li>The interface between the operating system/filesystem and the
-underlying stable storage hardware.
-</ol>
-<p>Berkeley DB uses the operating system interfaces and its underlying filesystem
-when writing its files. This means that Berkeley DB can fail if the underlying
-filesystem fails in some unrecoverable way. Otherwise, the interface
-requirements here are simple: the system call that Berkeley DB uses to flush
-data to disk (normally <b>fsync</b>(2)), must guarantee that all the
-information necessary for a file's recoverability has been written to
-stable storage before it returns to Berkeley DB, and that no possible
-application or system crash can cause that file to be unrecoverable.
-<p>In addition, Berkeley DB implicitly uses the interface between the operating
-system and the underlying hardware. The interface requirements here are
-not as simple.
-<p>First, it is necessary to consider the underlying page size of the Berkeley DB
-databases. The Berkeley DB library performs all database writes using the page
-size specified by the application. These pages are not checksummed and
-Berkeley DB assumes that they are written atomically. This means that if the
-operating system performs filesystem I/O in different sized blocks than
-the database page size, it may increase the possibility for database
-corruption. For example, assume that Berkeley DB is writing 32KB pages for a
-database and the operating system does filesystem I/O in 16KB blocks. If
-the operating system writes the first 16KB of the database page
-successfully, but crashes before being able to write the second 16KB of
-the database, the database has been corrupted and this corruption will
-not be detected during recovery. For this reason, it may be important
-to select database page sizes that will be written as single block
-transfers by the underlying operating system.
-<p>Second, it is necessary to consider the behavior of the system's underlying
-stable storage hardware. For example, consider a SCSI controller that
-has been configured to cache data and return to the operating system that
-the data has been written to stable storage, when, in fact, it has only
-been written into the controller RAM cache. If power is lost before the
-controller is able to flush its cache to disk, and the controller cache
-is not stable (i.e., the writes will not be flushed to disk when power
-returns), the writes will be lost. If the writes include database blocks,
-there is no loss as recovery will correctly update the database. If the
-writes include log file blocks, it is possible that transactions that were
-already committed may not appear in the recovered database, although the
-recovered database will be coherent after a crash.
-<p>If the underlying hardware can fail in any way such that only part of the
-block was written, the failure conditions are the same as those described
-above for an operating system failure that only writes part of a logical
-database block.
-<p>For these reasons, it is important to select hardware that does not do
-partial writes and does not cache data writes (or does not return that
-the data has been written to stable storage until it either has been
-written to stable storage or the actual writing of all of the data is
-guaranteed barring catastrophic hardware failure, e.g., your disk drive
-exploding). You should also be aware that Berkeley DB does not protect against
-all cases of stable storage hardware failure, nor does it protect against
-hardware misbehavior.
-<p>If the disk drive on which you are storing your databases explodes, you
-can perform normal Berkeley DB catastrophic recovery, as that requires only a
-snapshot of your databases plus all of the log files you have archived
-since those snapshots were taken. In this case, you will lose no database
-changes at all. If the disk drive on which you are storing your log files
-explodes, you can still perform catastrophic recovery, but you will lose
-any database changes that were part of transactions committed since your
-last archival of the log files. For this reason, storing your databases
-and log files on different disks should be considered a safety measure as
-well as a performance enhancement.
-<p>Finally, if your hardware misbehaves, for example, a SCSI controller
-writes incorrect data to the disk, Berkeley DB will not detect this and your
-data may be corrupted.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/transapp/filesys.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/transapp/throughput.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/transapp/recovery.html b/bdb/docs/ref/transapp/recovery.html
deleted file mode 100644
index 5be94bf417c..00000000000
--- a/bdb/docs/ref/transapp/recovery.html
+++ /dev/null
@@ -1,91 +0,0 @@
-<!--$Id: recovery.so,v 10.26 2000/08/16 17:50:40 margo Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Recovery procedures</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Transaction Protected Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/transapp/logfile.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/transapp/filesys.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Recovery procedures</h1>
-<p>The fifth component of the infrastructure, recovery procedures, concerns
-the recoverability of the database. After any application or system
-failure, there are two possible approaches to database recovery:
-<p><ol>
-<p><li>There is no need for recoverability and all databases can be recreated
-from scratch. While these applications may still need transaction
-protection for other reasons, recovery usually consists of removing the
-Berkeley DB environment home directory and all files it contains, and then
-restarting the application.
-<p><li>It is necessary to recover information after system or application
-failure. In this case, recovery processing must be performed on any
-database environments that were active at the time of the failure.
-Recovery processing involves running the <a href="../../utility/db_recover.html">db_recover</a> utility or
-calling the <a href="../../api_c/env_open.html">DBENV-&gt;open</a> function with the <a href="../../api_c/env_open.html#DB_RECOVER">DB_RECOVER</a> or
-<a href="../../api_c/env_open.html#DB_RECOVER_FATAL">DB_RECOVER_FATAL</a> flags.
-<p>During recovery processing, all database changes made by aborted or
-unfinished transactions are undone and all database changes made by
-committed transactions are redone, as necessary. Database applications
-must not be restarted until recovery completes. After recovery
-finishes, the environment is properly initialized so that applications
-may be restarted.
-</ol>
-<p>If you intend to do recovery, there are two possible types of recovery
-processing:
-<p><ol>
-<p><li><i>catastrophic</i> recovery. A failure that requires catastrophic
-recovery is a failure where either the database or log files have been
-destroyed or corrupted. For example, catastrophic failure includes the
-case where the disk drive on which either the database or logs are
-stored has been physically destroyed, or when the system's normal
-filesystem recovery on startup is unable to bring the database and log
-files to a consistent state. This is often difficult to detect, and
-perhaps the most common sign of the need for catastrophic recovery is
-when the normal recovery procedures fail.
-<p>To restore your database environment after catastrophic failure, take
-the following steps:
-<p><ol>
-<p><li>Restore the most recent snapshots of the database and log files from
-the backup media into the system directory where recovery will be
-performed.
-<p><li>If any log files were archived since the last snapshot was made, they
-should be restored into the Berkeley DB environment directory where recovery
-will be performed. Make sure you restore them in the order in which
-they were written. The order is important because it's possible that
-the same log file appears on multiple backups and you want to run
-recovery using the most recent version of each log file.
-<p><li>Run the <a href="../../utility/db_recover.html">db_recover</a> utility, specifying its <b>-c</b> option,
-or call the <a href="../../api_c/env_open.html">DBENV-&gt;open</a> function specifying the <a href="../../api_c/env_open.html#DB_RECOVER_FATAL">DB_RECOVER_FATAL</a>
-flag. The catastrophic recovery process will review the logs and
-database files to bring the environment databases to a consistent state
-as of the time of the last uncorrupted log file that is found. It is
-important to realize that only transactions committed before that date
-will appear in the databases.
-<p>It is possible to recreate the database in a location different than
-the original, by specifying appropriate pathnames to the <b>-h</b>
-option of the <a href="../../utility/db_recover.html">db_recover</a> utility. In order for this to work
-properly, it is important that your application reference files by
-names relative to the database home directory or the pathname(s) specified
-in calls to <a href="../../api_c/env_set_data_dir.html">DBENV-&gt;set_data_dir</a>, instead of using full path names.
-</ol>
-<p><li><i>non-catastrophic</i> or <i>normal</i> recovery. If the
-failure is non-catastrophic and the database files and log are both
-accessible on a stable filesystem, run the <a href="../../utility/db_recover.html">db_recover</a> utility
-without the <b>-c</b> option or call the <a href="../../api_c/env_open.html">DBENV-&gt;open</a> function
-specifying the <a href="../../api_c/env_open.html#DB_RECOVER">DB_RECOVER</a> flag. The normal recovery process
-will review the logs and database files to ensure that all changes
-associated with committed transactions appear in the databases and that
-all uncommitted transactions do not.
-</ol>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/transapp/logfile.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/transapp/filesys.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/transapp/term.html b/bdb/docs/ref/transapp/term.html
deleted file mode 100644
index d6d54a44d29..00000000000
--- a/bdb/docs/ref/transapp/term.html
+++ /dev/null
@@ -1,60 +0,0 @@
-<!--$Id: term.so,v 10.16 2000/08/16 17:50:40 margo Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Terminology</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Transaction Protected Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/transapp/why.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/transapp/app.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Terminology</h1>
-<p>Here are some definitions that will be helpful in understanding
-transactions:
-<p><dl compact>
-<p><dt>Thread of control<dd>Berkeley DB is indifferent to the type or style of threads being used by the
-application, or, for that matter, if threads are being used at all, as
-Berkeley DB supports multi-process access. In the Berkeley DB documentation, any
-time we refer to a "thread of control", that can be read as a true
-thread (one of many in an application's address space), or, a process.
-<p><dt>Free-threaded<dd>A Berkeley DB handle that can be used by multiple threads simultaneously
-without any application-level synchronization is called free-threaded.
-<p><dt>Transaction<dd>A transaction is a one or more operations on one or more databases, that
-should be treated as a single unit of work. For example, changes to a
-set of databases, where either all of the changes must be applied to
-the database(s) or none of them should. Applications specify when each
-transaction starts, what database operations are included in it, and
-when it ends.
-<p><dt>Transaction abort/commit<dd>Every transaction ends by <i>committing</i> or <i>aborting</i>.
-If a transaction commits, then Berkeley DB guarantees that any database
-changes included in the transaction will never be lost, even after
-system or application failure. If a transaction aborts, or is
-uncommitted when the system or application fails, then the changes
-involved will never appear in the database.
-<p><dt>System or application failure<dd>This is the phrase that we will use to describe when something bad
-happens near your data. It can be an application dumping core, being
-interrupted by a signal, the disk filling up, or the entire system
-crashing. In any case, for whatever reason, the application can no
-longer make forward progress, and its databases were left in an unknown
-state.
-<p><dt>Recovery<dd>Whenever system or application failure occurs, the application must run
-recovery. Recovery is what makes the database consistent, that is, the
-recovery process includes review of log files and databases to ensure
-that the changes from each committed transaction appear in the database,
-and that no changes from an unfinished (or aborted) transaction do.
-<p><dt>Deadlock<dd>Deadlock, in its simplest form, happens when one thread of control owns
-resource A, but needs resource B, while another thread of control owns
-resource B, but needs resource A. Neither thread of control can make
-progress, and so one has to give up and release all of its resources,
-at which time the remaining thread of control can make forward progress.
-</dl>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/transapp/why.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/transapp/app.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/transapp/throughput.html b/bdb/docs/ref/transapp/throughput.html
deleted file mode 100644
index 734f3c7f9ab..00000000000
--- a/bdb/docs/ref/transapp/throughput.html
+++ /dev/null
@@ -1,117 +0,0 @@
-<!--$Id: throughput.so,v 10.24 2000/12/04 18:05:44 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Transaction throughput</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Transaction Protected Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/transapp/reclimit.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/xa/intro.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Transaction throughput</h1>
-<p>Generally, the speed of a database system is measured by the transaction
-throughput, expressed as the number of transactions per second. The two
-gating factors for Berkeley DB performance in a transactional system are usually
-the underlying database files and the log file. Both are factors because
-they require disk I/O, which is slow relative to other system resources
-like CPU.
-<p>In the worst case scenario:
-<ul type=disc>
-<li>Database access is truly random and the database is too large to fit into
-the cache, resulting in a single I/O per requested key/data pair.
-<li>Both the database and the log are on a single disk.
-</ul>
-<p>This means that for each transaction, Berkeley DB is potentially performing
-several filesystem operations:
-<ul type=disc>
-<li>Disk seek to database file.
-<li>Database file read.
-<li>Disk seek to log file.
-<li>Log file write.
-<li>Flush log file information to disk.
-<li>Disk seek to update log file metadata (e.g., inode).
-<li>Log metadata write.
-<li>Flush log file metadata to disk.
-</ul>
-<p>There are a number of ways to increase transactional throughput, all of
-which attempt to decrease the number of filesystem operations per
-transaction:
-<ul type=disc>
-<li>Tune the size of the database cache. If the Berkeley DB key/data pairs used
-during the transaction are found in the database cache, the seek and read
-from the database are no longer necessary, resulting in two fewer
-filesystem operations per transaction. To determine if your cache size
-is too small, see <a href="../../ref/am_conf/cachesize.html">Selecting a
-cache size</a>.
-<li>Put the database and the log files on different disks. This allows reads
-and writes to the log files and the database files to be performed
-concurrently.
-<li>Set the filesystem configuration so that file access and modification
-times are not updated. Note, although the file access and modification
-times are not used by Berkeley DB, this may affect other programs, so be
-careful.
-<li>Upgrade your hardware. When considering the hardware on which to run your
-application, however, it is important to consider the entire system. The
-controller and bus can have as much to do with the disk performance as
-the disk itself. It is also important to remember that throughput is
-rarely the limiting factor, and that disk seek times are normally the true
-performance issue for Berkeley DB.
-<li>Turn on the <a href="../../api_c/env_open.html#DB_TXN_NOSYNC">DB_TXN_NOSYNC</a> flag. This changes the Berkeley DB behavior
-so that the log files are not flushed when transactions are committed.
-While this change will greatly increase your transaction throughput, it
-means that transactions will exhibit the ACI (atomicity, consistency and
-isolation) properties, but not D (durability). Database integrity will
-be maintained but it is possible that some number of the most recently
-committed transactions may be undone during recovery instead of being
-redone.
-</ul>
-<p>If you are bottlenecked on logging, the following test will help you
-confirm that the number of transactions per second that your application
-does is reasonable for the hardware on which you're running. Your test
-program should repeatedly perform the following operations:
-<ul type=disc>
-<li>Seek to the beginning of a file.
-<li>Write to the file.
-<li>Flush the file write to disk.
-</ul>
-<p>The number of times that you can perform these three operations per second
-is a rough measure of the number of transactions per second of which the
-hardware is capable. This test simulates the operations applied to the
-log file. (As a simplifying assumption in this experiment, we assume that
-the database files are either on a separate disk, or that they fit, with
-some few exceptions, into the database cache.) We do not have to directly
-simulate updating the log file directory information, as it will normally
-be updated and flushed to disk as a result of flushing the log file write
-to disk.
-<p>Running this test program, where we write 256 bytes, for 1000 operations,
-on reasonably standard commodity hardware (Pentium II CPU, SCSI disk),
-returned the following results:
-<p><blockquote><pre>% testfile -b256 -o1000
-running: 1000 ops
-Elapsed time: 16.641934 seconds
-1000 ops: 60.09 ops per second</pre></blockquote>
-<p>Note that the number of bytes being written to the log as part of each
-transaction can dramatically affect the transaction throughput. The
-above test run used 256, which is a reasonable size log write. Your
-log writes may be different. To determine your average log write size,
-use the <a href="../../utility/db_stat.html">db_stat</a> utility to display your log statistics.
-<p>As a quick sanity check, for this particular disk, the average seek time
-is 9.4 msec, and the average latency is 4.17 msec. That results in a
-minimum requirement for a data transfer to the disk of 13.57 msec, or a
-maximum of 74 transfers per second. This is close enough to the above 60
-operations per second (which wasn't done on a quiescent disk) that the
-number is believable.
-<p>An implementation of the above <a href="writetest.txt">example test
-program</a> for IEEE/ANSI Std 1003.1 (POSIX) standard systems is included in the Berkeley DB
-distribution.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/transapp/reclimit.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/xa/intro.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/transapp/transapp.txt b/bdb/docs/ref/transapp/transapp.txt
deleted file mode 100644
index afd441c59f8..00000000000
--- a/bdb/docs/ref/transapp/transapp.txt
+++ /dev/null
@@ -1,492 +0,0 @@
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#include <errno.h>
-#include <pthread.h>
-#include <stdarg.h>
-#include <stdlib.h>
-#include <string.h>
-#include <unistd.h>
-
-#include <db.h>
-
-#define ENV_DIRECTORY "TXNAPP"
-
-void add_cat(DB_ENV *, DB *, char *, ...);
-void add_color(DB_ENV *, DB *, char *, int);
-void add_fruit(DB_ENV *, DB *, char *, char *);
-void *checkpoint_thread(void *);
-void log_archlist(DB_ENV *);
-void *logfile_thread(void *);
-void db_open(DB_ENV *, DB **, char *, int);
-void env_dir_create(void);
-void env_open(DB_ENV **);
-void usage(void);
-
-int
-main(int argc, char *argv[])
-{
- extern char *optarg;
- extern int optind;
- DB *db_cats, *db_color, *db_fruit;
- DB_ENV *dbenv;
- pthread_t ptid;
- int ch;
-
- while ((ch = getopt(argc, argv, "")) != EOF)
- switch (ch) {
- case '?':
- default:
- usage();
- }
- argc -= optind;
- argv += optind;
-
- env_dir_create();
- env_open(&dbenv);
-
- /* Start a checkpoint thread. */
- if ((errno = pthread_create(
- &ptid, NULL, checkpoint_thread, (void *)dbenv)) != 0) {
- fprintf(stderr,
- "txnapp: failed spawning checkpoint thread: %s\n",
- strerror(errno));
- exit (1);
- }
-
- /* Start a logfile removal thread. */
- if ((errno = pthread_create(
- &ptid, NULL, logfile_thread, (void *)dbenv)) != 0) {
- fprintf(stderr,
- "txnapp: failed spawning log file removal thread: %s\n",
- strerror(errno));
- exit (1);
- }
-
- /* Open database: Key is fruit class; Data is specific type. */
- db_open(dbenv, &db_fruit, "fruit", 0);
-
- /* Open database: Key is a color; Data is an integer. */
- db_open(dbenv, &db_color, "color", 0);
-
- /*
- * Open database:
- * Key is a name; Data is: company name, address, cat breeds.
- */
- db_open(dbenv, &db_cats, "cats", 1);
-
- add_fruit(dbenv, db_fruit, "apple", "yellow delicious");
-
- add_color(dbenv, db_color, "blue", 0);
- add_color(dbenv, db_color, "blue", 3);
-
- add_cat(dbenv, db_cats,
- "Amy Adams",
- "Sleepycat Software",
- "394 E. Riding Dr., Carlisle, MA 01741, USA",
- "abyssinian",
- "bengal",
- "chartreaux",
- NULL);
-
- return (0);
-}
-
-void
-env_dir_create()
-{
- struct stat sb;
-
- /*
- * If the directory exists, we're done. We do not further check
- * the type of the file, DB will fail appropriately if it's the
- * wrong type.
- */
- if (stat(ENV_DIRECTORY, &sb) == 0)
- return;
-
- /* Create the directory, read/write/access owner only. */
- if (mkdir(ENV_DIRECTORY, S_IRWXU) != 0) {
- fprintf(stderr,
- "txnapp: mkdir: %s: %s\n", ENV_DIRECTORY, strerror(errno));
- exit (1);
- }
-}
-
-void
-env_open(DB_ENV **dbenvp)
-{
- DB_ENV *dbenv;
- int ret;
-
- /* Create the environment handle. */
- if ((ret = db_env_create(&dbenv, 0)) != 0) {
- fprintf(stderr,
- "txnapp: db_env_create: %s\n", db_strerror(ret));
- exit (1);
- }
-
- /* Set up error handling. */
- dbenv->set_errpfx(dbenv, "txnapp");
-
- /* Do deadlock detection internally. */
- if ((ret = dbenv->set_lk_detect(dbenv, DB_LOCK_DEFAULT)) != 0) {
- dbenv->err(dbenv, ret, "set_lk_detect: DB_LOCK_DEFAULT");
- exit (1);
- }
-
- /*
- * Open a transactional environment:
- * create if it doesn't exist
- * free-threaded handle
- * run recovery
- * read/write owner only
- */
- if ((ret = dbenv->open(dbenv, ENV_DIRECTORY,
- DB_CREATE | DB_INIT_LOCK | DB_INIT_LOG |
- DB_INIT_MPOOL | DB_INIT_TXN | DB_RECOVER | DB_THREAD,
- S_IRUSR | S_IWUSR)) != 0) {
- dbenv->err(dbenv, ret, "dbenv->open: %s", ENV_DIRECTORY);
- exit (1);
- }
-
- *dbenvp = dbenv;
-}
-
-void *
-checkpoint_thread(void *arg)
-{
- DB_ENV *dbenv;
- int ret;
-
- dbenv = arg;
- dbenv->errx(dbenv, "Checkpoint thread: %lu", (u_long)pthread_self());
-
- /* Checkpoint once a minute. */
- for (;; sleep(60))
- switch (ret = txn_checkpoint(dbenv, 0, 0, 0)) {
- case 0:
- case DB_INCOMPLETE:
- break;
- default:
- dbenv->err(dbenv, ret, "checkpoint thread");
- exit (1);
- }
-
- /* NOTREACHED */
-}
-
-void *
-logfile_thread(void *arg)
-{
- DB_ENV *dbenv;
- int ret;
- char **begin, **list;
-
- dbenv = arg;
- dbenv->errx(dbenv,
- "Log file removal thread: %lu", (u_long)pthread_self());
-
- /* Check once every 5 minutes. */
- for (;; sleep(300)) {
- /* Get the list of log files. */
- if ((ret = log_archive(dbenv, &list, DB_ARCH_ABS, NULL)) != 0) {
- dbenv->err(dbenv, ret, "log_archive");
- exit (1);
- }
-
- /* Remove the log files. */
- if (list != NULL) {
- for (begin = list; *list != NULL; ++list)
- if ((ret = remove(*list)) != 0) {
- dbenv->err(dbenv,
- ret, "remove %s", *list);
- exit (1);
- }
- free (begin);
- }
- }
- /* NOTREACHED */
-}
-
-void
-log_archlist(DB_ENV *dbenv)
-{
- int ret;
- char **begin, **list;
-
- /* Get the list of database files. */
- if ((ret = log_archive(dbenv,
- &list, DB_ARCH_ABS | DB_ARCH_DATA, NULL)) != 0) {
- dbenv->err(dbenv, ret, "log_archive: DB_ARCH_DATA");
- exit (1);
- }
- if (list != NULL) {
- for (begin = list; *list != NULL; ++list)
- printf("database file: %s\n", *list);
- free (begin);
- }
-
- /* Get the list of log files. */
- if ((ret = log_archive(dbenv,
- &list, DB_ARCH_ABS | DB_ARCH_LOG, NULL)) != 0) {
- dbenv->err(dbenv, ret, "log_archive: DB_ARCH_LOG");
- exit (1);
- }
- if (list != NULL) {
- for (begin = list; *list != NULL; ++list)
- printf("log file: %s\n", *list);
- free (begin);
- }
-}
-
-void
-db_open(DB_ENV *dbenv, DB **dbp, char *name, int dups)
-{
- DB *db;
- int ret;
-
- /* Create the database handle. */
- if ((ret = db_create(&db, dbenv, 0)) != 0) {
- dbenv->err(dbenv, ret, "db_create");
- exit (1);
- }
-
- /* Optionally, turn on duplicate data items. */
- if (dups && (ret = db->set_flags(db, DB_DUP)) != 0) {
- dbenv->err(dbenv, ret, "db->set_flags: DB_DUP");
- exit (1);
- }
-
- /*
- * Open a database in the environment:
- * create if it doesn't exist
- * free-threaded handle
- * read/write owner only
- */
- if ((ret = db->open(db, name, NULL,
- DB_BTREE, DB_CREATE | DB_THREAD, S_IRUSR | S_IWUSR)) != 0) {
- dbenv->err(dbenv, ret, "db->open: %s", name);
- exit (1);
- }
-
- *dbp = db;
-}
-
-void
-add_fruit(DB_ENV *dbenv, DB *db, char *fruit, char *name)
-{
- DBT key, data;
- DB_TXN *tid;
- int ret;
-
- /* Initialization. */
- memset(&key, 0, sizeof(key));
- memset(&data, 0, sizeof(data));
- key.data = fruit;
- key.size = strlen(fruit);
- data.data = name;
- data.size = strlen(name);
-
- for (;;) {
- /* Begin the transaction. */
- if ((ret = txn_begin(dbenv, NULL, &tid, 0)) != 0) {
- dbenv->err(dbenv, ret, "txn_begin");
- exit (1);
- }
-
- /* Store the value. */
- switch (ret = db->put(db, tid, &key, &data, 0)) {
- case 0:
- /* Success: commit the change. */
- if ((ret = txn_commit(tid, 0)) != 0) {
- dbenv->err(dbenv, ret, "txn_commit");
- exit (1);
- }
- return;
- case DB_LOCK_DEADLOCK:
- /* Deadlock: retry the operation. */
- if ((ret = txn_abort(tid)) != 0) {
- dbenv->err(dbenv, ret, "txn_abort");
- exit (1);
- }
- break;
- default:
- /* Error: run recovery. */
- dbenv->err(dbenv, ret, "dbc->put: %s/%s", fruit, name);
- exit (1);
- }
- }
-}
-
-void
-add_color(DB_ENV *dbenv, DB *dbp, char *color, int increment)
-{
- DBT key, data;
- DB_TXN *tid;
- int original, ret;
- char buf[64];
-
- /* Initialization. */
- memset(&key, 0, sizeof(key));
- key.data = color;
- key.size = strlen(color);
- memset(&data, 0, sizeof(data));
- data.flags = DB_DBT_MALLOC;
-
- for (;;) {
- /* Begin the transaction. */
- if ((ret = txn_begin(dbenv, NULL, &tid, 0)) != 0) {
- dbenv->err(dbenv, ret, "txn_begin");
- exit (1);
- }
-
- /*
- * Get the key. If it exists, we increment the value. If it
- * doesn't exist, we create it.
- */
- switch (ret = dbp->get(dbp, tid, &key, &data, 0)) {
- case 0:
- original = atoi(data.data);
- break;
- case DB_LOCK_DEADLOCK:
- /* Deadlock: retry the operation. */
- if ((ret = txn_abort(tid)) != 0) {
- dbenv->err(dbenv, ret, "txn_abort");
- exit (1);
- }
- continue;
- case DB_NOTFOUND:
- original = 0;
- break;
- default:
- /* Error: run recovery. */
- dbenv->err(
- dbenv, ret, "dbc->get: %s/%d", color, increment);
- exit (1);
- }
- if (data.data != NULL)
- free(data.data);
-
- /* Create the new data item. */
- (void)snprintf(buf, sizeof(buf), "%d", original + increment);
- data.data = buf;
- data.size = strlen(buf) + 1;
-
- /* Store the new value. */
- switch (ret = dbp->put(dbp, tid, &key, &data, 0)) {
- case 0:
- /* Success: commit the change. */
- if ((ret = txn_commit(tid, 0)) != 0) {
- dbenv->err(dbenv, ret, "txn_commit");
- exit (1);
- }
- return;
- case DB_LOCK_DEADLOCK:
- /* Deadlock: retry the operation. */
- if ((ret = txn_abort(tid)) != 0) {
- dbenv->err(dbenv, ret, "txn_abort");
- exit (1);
- }
- break;
- default:
- /* Error: run recovery. */
- dbenv->err(
- dbenv, ret, "dbc->put: %s/%d", color, increment);
- exit (1);
- }
- }
-}
-
-void
-add_cat(DB_ENV *dbenv, DB *db, char *name, ...)
-{
- va_list ap;
- DBC *dbc;
- DBT key, data;
- DB_TXN *tid;
- int ret;
- char *s;
-
- /* Initialization. */
- memset(&key, 0, sizeof(key));
- memset(&data, 0, sizeof(data));
- key.data = name;
- key.size = strlen(name);
-
-retry: /* Begin the transaction. */
- if ((ret = txn_begin(dbenv, NULL, &tid, 0)) != 0) {
- dbenv->err(dbenv, ret, "txn_begin");
- exit (1);
- }
-
- /* Delete any previously existing item. */
- switch (ret = db->del(db, tid, &key, 0)) {
- case 0:
- case DB_NOTFOUND:
- break;
- case DB_LOCK_DEADLOCK:
- /* Deadlock: retry the operation. */
- if ((ret = txn_abort(tid)) != 0) {
- dbenv->err(dbenv, ret, "txn_abort");
- exit (1);
- }
- goto retry;
- default:
- dbenv->err(dbenv, ret, "db->del: %s", name);
- exit (1);
- }
-
- /* Create a cursor. */
- if ((ret = db->cursor(db, tid, &dbc, 0)) != 0) {
- dbenv->err(dbenv, ret, "db->cursor");
- exit (1);
- }
-
- /* Append the items, in order. */
- va_start(ap, name);
- while ((s = va_arg(ap, char *)) != NULL) {
- data.data = s;
- data.size = strlen(s);
- switch (ret = dbc->c_put(dbc, &key, &data, DB_KEYLAST)) {
- case 0:
- break;
- case DB_LOCK_DEADLOCK:
- va_end(ap);
-
- /* Deadlock: retry the operation. */
- if ((ret = dbc->c_close(dbc)) != 0) {
- dbenv->err(
- dbenv, ret, "dbc->c_close");
- exit (1);
- }
- if ((ret = txn_abort(tid)) != 0) {
- dbenv->err(dbenv, ret, "txn_abort");
- exit (1);
- }
- goto retry;
- default:
- /* Error: run recovery. */
- dbenv->err(dbenv, ret, "dbc->put: %s/%s", name, s);
- exit (1);
- }
- }
- va_end(ap);
-
- /* Success: commit the change. */
- if ((ret = dbc->c_close(dbc)) != 0) {
- dbenv->err(dbenv, ret, "dbc->c_close");
- exit (1);
- }
- if ((ret = txn_commit(tid, 0)) != 0) {
- dbenv->err(dbenv, ret, "txn_commit");
- exit (1);
- }
-}
-
-void
-usage()
-{
- (void)fprintf(stderr, "usage: txnapp\n");
- exit(1);
-}
diff --git a/bdb/docs/ref/transapp/why.html b/bdb/docs/ref/transapp/why.html
deleted file mode 100644
index 8fee1308246..00000000000
--- a/bdb/docs/ref/transapp/why.html
+++ /dev/null
@@ -1,49 +0,0 @@
-<!--$Id: why.so,v 1.1 2000/07/25 17:56:36 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Why transactions?</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Transaction Protected Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/transapp/intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/transapp/term.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Why transactions?</h1>
-<p>Perhaps the first question to answer is "Why transactions?" There are
-a number of reasons for including transactional support in your
-applications. The most common ones are:
-<p><dl compact>
-<p><dt>Recoverability<dd>Applications often need to ensure that, no matter how the system or
-application fails, previously saved data is available the next time the
-application runs.
-<p><dt>Deadlock avoidance<dd>When multiple threads of control change the database at the same time,
-there is usually the possibility of deadlock, that is, where each of
-the threads of control owns a resource another thread wants, and so no
-thread is able to make forward progress, all waiting for a resource.
-Deadlocks are resolved by having one of the operations involved release
-the resources it controls so the other operations can proceed. (The
-operation releasing its resources usually just tries again later.)
-Transactions are necessary so that any changes that were already made
-to the database can be undone as part of releasing the held resources.
-<p><dt>Atomicity<dd>Applications often need to make multiple changes to one or more
-databases, but want to ensure that either all of the changes happen, or
-none of them happen. Transactions guarantee that a group of changes
-are atomic, that is, if the application or system fails, either all of
-the changes to the databases will appear when the application next runs,
-or none of them.
-<p><dt>Repeatable reads<dd>Applications sometimes need to ensure that, while doing a group of
-operations on a database, the value returned as a result of a database
-retrieval doesn't change, that is, if you retrieve the same key more
-than once, the data item will be the same each time. Transactions
-guarantee this behavior.
-</dl>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/transapp/intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/transapp/term.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/transapp/writetest.txt b/bdb/docs/ref/transapp/writetest.txt
deleted file mode 100644
index b86c1b6ce66..00000000000
--- a/bdb/docs/ref/transapp/writetest.txt
+++ /dev/null
@@ -1,100 +0,0 @@
-/*
- * writetest --
- *
- * $Id: writetest.txt,v 10.3 1999/11/19 17:21:06 bostic Exp $
- */
-#include <sys/types.h>
-
-#include <errno.h>
-#include <fcntl.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <time.h>
-#include <unistd.h>
-
-void usage __P((void));
-
-int
-main(argc, argv)
- int argc;
- char *argv[];
-{
- struct timeval start_time, end_time;
- long usecs;
- int bytes, ch, cnt, fd, ops;
- char *fname, buf[100 * 1024];
-
- bytes = 256;
- fname = "testfile";
- ops = 1000;
- while ((ch = getopt(argc, argv, "b:f:o:")) != EOF)
- switch (ch) {
- case 'b':
- if ((bytes = atoi(optarg)) > sizeof(buf)) {
- fprintf(stderr,
- "max -b option %d\n", sizeof(buf));
- exit (1);
- }
- break;
- case 'f':
- fname = optarg;
- break;
- case 'o':
- if ((ops = atoi(optarg)) <= 0) {
- fprintf(stderr, "illegal -o option value\n");
- exit (1);
- }
- break;
- case '?':
- default:
- usage();
- }
- argc -= optind;
- argv += optind;
-
- (void)unlink(fname);
- if ((fd = open(fname, O_RDWR | O_CREAT, 0666)) == -1) {
- perror(fname);
- exit (1);
- }
-
- memset(buf, 0, bytes);
-
- printf("running: %d ops\n", ops);
-
- (void)gettimeofday(&start_time, NULL);
- for (cnt = 0; cnt < ops; ++cnt) {
- if (write(fd, buf, bytes) != bytes) {
- fprintf(stderr, "write: %s\n", strerror(errno));
- exit (1);
- }
- if (lseek(fd, (off_t)0, SEEK_SET) == -1) {
- fprintf(stderr, "lseek: %s\n", strerror(errno));
- exit (1);
- }
- if (fsync(fd) != 0) {
- fprintf(stderr, "fsync: %s\n", strerror(errno));
- exit (1);
- }
- }
- (void)gettimeofday(&end_time, NULL);
-
- usecs = (end_time.tv_sec - start_time.tv_sec) * 1000000 +
- end_time.tv_usec - start_time.tv_usec;
- printf("Elapsed time: %ld.%06ld seconds\n",
- usecs / 1000000, usecs % 1000000);
- printf("%d ops: %7.2f ops per second\n",
- ops, (float)1000000 * ops/usecs);
-
- (void)unlink(fname);
- exit (0);
-}
-
-void
-usage()
-{
- (void)fprintf(stderr,
- "usage: testfile [-b bytes] [-f file] [-o ops]\n");
- exit(1);
-}
diff --git a/bdb/docs/ref/txn/config.html b/bdb/docs/ref/txn/config.html
deleted file mode 100644
index beb73859fe8..00000000000
--- a/bdb/docs/ref/txn/config.html
+++ /dev/null
@@ -1,37 +0,0 @@
-<!--$Id: config.so,v 10.14 2000/10/03 17:17:36 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Configuring transactions</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Transaction Subsystem</dl></h3></td>
-<td width="1%"><a href="../../ref/txn/limits.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/txn/other.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Configuring transactions</h1>
-<p>There is only a single parameter used in configuring transactions, the
-<a href="../../api_c/env_open.html#DB_TXN_NOSYNC">DB_TXN_NOSYNC</a> flag. Setting the <a href="../../api_c/env_open.html#DB_TXN_NOSYNC">DB_TXN_NOSYNC</a> flag to
-<a href="../../api_c/env_set_flags.html">DBENV-&gt;set_flags</a> when opening a transaction region changes the
-behavior of transactions not to synchronously flush the log during
-transaction commit.
-<p>This change will significantly increase application transactional
-throughput. However, it means that while transactions will continue to
-exhibit the ACI (atomicity, consistency and isolation) properties, they
-will not have D (durability). Database integrity will be maintained but
-it is possible that some number of the most recently committed
-transactions may be undone during recovery instead of being redone.
-<p>The application may also limit the number of simultaneous outstanding
-transactions supported by the environment by calling the
-<a href="../../api_c/env_set_tx_max.html">DBENV-&gt;set_tx_max</a> function. When this number is met, additional calls to
-<a href="../../api_c/txn_begin.html">txn_begin</a> will fail until some active transactions complete.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/txn/limits.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/txn/other.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/txn/intro.html b/bdb/docs/ref/txn/intro.html
deleted file mode 100644
index 557481509e0..00000000000
--- a/bdb/docs/ref/txn/intro.html
+++ /dev/null
@@ -1,86 +0,0 @@
-<!--$Id: intro.so,v 10.14 2000/03/18 21:43:19 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Berkeley DB and transactions</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Transaction Subsystem</dl></h3></td>
-<td width="1%"><a href="../../ref/mp/config.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/txn/nested.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Berkeley DB and transactions</h1>
-<p>The transaction subsystem makes operations atomic, consistent, isolated,
-and durable in the face of system and application failures. The subsystem
-requires that the data be properly logged and locked in order to attain
-these properties. Berkeley DB contains all the components necessary to
-transaction-protect the Berkeley DB access methods and other forms of data may
-be protected if they are logged and locked appropriately.
-<p>The transaction subsystem is created, initialized, and opened by calls to
-<a href="../../api_c/env_open.html">DBENV-&gt;open</a> with the <a href="../../api_c/env_open.html#DB_INIT_TXN">DB_INIT_TXN</a> flag specified. Note that
-enabling transactions automatically enables logging, but does not enable
-locking, as a single thread of control that needed atomicity and
-recoverability would not require it.
-<p>The <a href="../../api_c/txn_begin.html">txn_begin</a> function starts a transaction, returning an opaque
-handle to a transaction. If the parent parameter to <a href="../../api_c/txn_begin.html">txn_begin</a> is
-non-NULL, then the new transaction is a child of the designated parent
-transaction.
-<p>The <a href="../../api_c/txn_abort.html">txn_abort</a> function ends the designated transaction and causes
-all updates performed by the transaction to be undone. The end result is
-that the database is left in a state identical to the state that existed
-prior to the <a href="../../api_c/txn_begin.html">txn_begin</a>. If the aborting transaction has any child
-transactions associated with it (even ones that have already been
-committed), they are also aborted. Any transactions that are unresolved
-(i.e., neither committed nor aborted) when the application or system fails
-are aborted during recovery.
-<p>The <a href="../../api_c/txn_commit.html">txn_commit</a> function ends the designated transaction and makes
-all the updates performed by the transaction permanent, even in the face
-of application or system failure. If this is a parent transaction
-committing, then all child transactions that individually committed or
-had not been resolved are also committed.
-<p>Transactions are identified by 32-bit unsigned integers. The ID
-associated with any transaction can be obtained using the <a href="../../api_c/txn_id.html">txn_id</a>
-function. If an application is maintaining information outside of Berkeley DB
-that it wishes to transaction-protect, it should use this transaction ID
-as the locking ID.
-<p>The <a href="../../api_c/txn_checkpoint.html">txn_checkpoint</a> function causes a transaction checkpoint. A
-checkpoint is performed relative to a specific log sequence number (LSN),
-referred to as the checkpoint LSN. When a checkpoint completes
-successfully, it means that all data buffers whose updates are described
-by LSNs less than the checkpoint LSN have been written to disk. This, in
-turn, means that the log records less than the checkpoint LSN are no
-longer necessary for normal recovery (although they would be required for
-catastrophic recovery should the database files be lost) and all log files
-containing only records prior to the checkpoint LSN may be safely archived
-and removed.
-<p>It is possible that in order to complete a transaction checkpoint, it will
-be necessary to write a buffer that is currently in use (i.e., is actively
-being read or written by some transaction). In this case,
-<a href="../../api_c/txn_checkpoint.html">txn_checkpoint</a> will not be able to write the buffer, as doing so
-might cause an inconsistent version of the page to be written to disk,
-and instead of completing successfully will return with an error code of
-<a href="../../api_c/memp_fsync.html#DB_INCOMPLETE">DB_INCOMPLETE</a>. In such cases, the checkpoint can simply be
-retried after a short delay.
-<p>The interval between successive checkpoints is directly proportional to
-the length of time required to run normal recovery. If the interval
-between checkpoints is long, then a large number of updates that are
-recorded in the log may not yet be written to disk and recovery may take
-longer to run. If the interval is short, then data is being written to
-disk more frequently, but the recovery time will be shorter. Often, the
-checkpoint interval will be tuned for each specific application.
-<p>The <a href="../../api_c/txn_stat.html">txn_stat</a> function returns information about the status of
-the transaction subsystem. It is the programmatic interface used by the
-<a href="../../utility/db_stat.html">db_stat</a> utility.
-<p>The transaction system is closed by a call to <a href="../../api_c/env_close.html">DBENV-&gt;close</a>.
-<p>Finally, the entire transaction system may be removed using the
-<a href="../../api_c/env_remove.html">DBENV-&gt;remove</a> interface.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/mp/config.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/txn/nested.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/txn/limits.html b/bdb/docs/ref/txn/limits.html
deleted file mode 100644
index 0ed97806667..00000000000
--- a/bdb/docs/ref/txn/limits.html
+++ /dev/null
@@ -1,66 +0,0 @@
-<!--$Id: limits.so,v 10.29 2001/01/10 17:33:53 margo Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Transaction limits</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Transaction Subsystem</dl></h3></td>
-<td width="1%"><a href="../../ref/txn/nested.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/txn/config.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Transaction limits</h1>
-<h3>Transaction IDs</h3>
-<p>Transactions are identified uniquely by 32-bit unsigned integers. The
-high-order bit of the transaction ID is reserved (and defined to be 1)
-resulting in just over two billion unique transaction IDs. Each time
-that recovery is run, the beginning transaction ID is reset with new
-transactions being numbered starting from 1. This means that recovery
-must be run at least once every two billion transactions.
-<p>It is possible that some environments may need to be aware of this
-limitation. Consider an application performing 600 transactions a second
-for 15 hours a day. The transaction ID space will run out in roughly 66
-days:
-<p><blockquote><pre>2^31 / (600 * 15 * 60 * 60) = 66</pre></blockquote>
-<p>Doing only 100 transactions a second exhausts the transaction ID space
-in roughly one year.
-<p>The transaction ID name space is initialized each time
-a database environment is created or recovered. If you
-reach the end of the transaction ID name space, it must
-be handled as if an application or system failure had
-occurred. The most recently allocated transaction ID
-is the <b>st_last_txnid</b> value in the transaction
-statistics information, and is displayed by the
-<a href="../../utility/db_stat.html">db_stat</a> utility.
-<h3>Cursors</h3>
-<p>When using transactions, cursors are localized to a single transaction.
-That is, a cursor may not span transactions and must be opened and
-closed within a single transaction. In addition, intermingling
-transaction-protected cursor operations and non-transaction-protected
-cursor operations on the same database in a single thread of control is
-practically guaranteed to deadlock as the locks obtained for transactions
-and non-transactions can conflict.
-<h3>Multiple Threads of Control</h3>
-<p>Since transactions must hold all their locks until commit, a single
-transaction may accumulate a large number of long-term locks during its
-lifetime. As a result, when two concurrently running transactions access
-the same database, there is strong potential for conflict. While Berkeley
-DB allows an application to have multiple outstanding transactions active
-within a single thread of control, great care must be taken to ensure that
-the transactions do not interfere with each other (e.g., attempt to obtain
-conflicting locks on the same data). If two concurrently active
-transactions in the same thread of control do encounter a lock conflict,
-the thread of control will deadlock in such a manner that the deadlock
-detector will be unable to resolve the problem. In this case, there is
-no true deadlock, but because the transaction on which a transaction is
-waiting is in the same thread of control, no forward progress can be made.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/txn/nested.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/txn/config.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/txn/nested.html b/bdb/docs/ref/txn/nested.html
deleted file mode 100644
index a635abf52a8..00000000000
--- a/bdb/docs/ref/txn/nested.html
+++ /dev/null
@@ -1,66 +0,0 @@
-<!--$Id: nested.so,v 10.17 2000/12/31 19:26:22 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Nested transactions</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Transaction Subsystem</dl></h3></td>
-<td width="1%"><a href="../../ref/txn/intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/txn/limits.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Nested transactions</h1>
-<p>Berkeley DB provides support for nested transactions. Nested transactions
-allow an application to decompose a large or long-running transaction
-into smaller units that may be independently aborted.
-<p>Normally, when beginning a transaction, the application will pass a NULL
-value for the parent argument to <a href="../../api_c/txn_begin.html">txn_begin</a>. If, however, the
-parent argument is a DB_TXN handle, then the newly created
-transaction will be treated as a nested transaction within the parent.
-Transactions may nest arbitrarily deeply. For the purposes of this
-discussion, transactions created with a parent identifier will be called
-child transactions.
-<p>Once a transaction becomes a parent, as long as any of its child
-transactions are unresolved (i.e., they have neither committed nor
-aborted), the parent may not issue any Berkeley DB calls except to begin more
-child transactions or to commit or abort. That is, it may not issue
-any access method or cursor calls. Once all of a parent's children have
-committed or aborted, the parent may again request operations on its
-own behalf.
-<p>The semantics of nested transactions are as follows. When a child
-transaction is begun, it inherits all the locks of its parent. This
-means that the child will never block waiting on a lock held by its
-parent. However, if a parent attempts to obtain locks after they have
-begun a child, the parental locks can conflict with those held by a
-child. Furthermore, locks held by two different children will also
-conflict. To make this concrete, consider the following set of
-transactions and lock acquisitions.
-<p>Transaction T1 is the parent transaction. It acquires an exclusive lock
-on item A and then begins two child transactions, C1 and C2. C1 also
-wishes to acquire a write lock on A; this succeeds. Now, let's say that
-C1 acquires a write lock on B. If C2 now attempts to obtain a lock on
-B, it will block. However, let's now assume that C1 commits. Its locks
-are anti-inherited, which means they are now given to T1. At this
-point, either T1 or C2 is allowed to acquire a lock on B. If, however,
-transaction T1 aborts, then its locks are released. Future requests by
-T1 or C2 will also succeed, but they will be obtaining new locks as
-opposed to piggy-backing off a lock already held by T1.
-<p>Child transactions are entirely subservient to their parent transaction.
-They may abort, undoing their operations regardless of the eventual fate
-of the parent. However, even if a child transaction commits, if its
-parent transaction is eventually aborted, the child's changes are undone
-and the child's transaction is effectively aborted. Any child
-transactions that are not yet resolved when the parent commits or aborts
-are resolved based on the parent's resolution, committing if the parent
-commits and aborting if the parent aborts. Any child transactions that
-are not yet resolved when the parent prepares are also prepared.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/txn/intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/txn/limits.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/txn/other.html b/bdb/docs/ref/txn/other.html
deleted file mode 100644
index e4678c2cbb0..00000000000
--- a/bdb/docs/ref/txn/other.html
+++ /dev/null
@@ -1,67 +0,0 @@
-<!--$Id: other.so,v 10.16 2000/03/18 21:43:19 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Transactions and non-Berkeley DB applications</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Transaction Subsystem</dl></h3></td>
-<td width="1%"><a href="../../ref/txn/config.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/rpc/intro.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Transactions and non-Berkeley DB applications</h1>
-<p>It is possible to use the locking, logging and transaction subsystems
-of Berkeley DB to provide transaction semantics on objects other than those
-described by the Berkeley DB access methods. In these cases, the application
-will need more explicit customization of the subsystems as well as the
-development of appropriate data-structure-specific recovery functions.
-<p>For example, consider an application that provides transaction semantics
-on data stored in plain UNIX files accessed using the POSIX read and write
-system calls. The operations for which transaction protection is desired
-are bracketed by calls to <a href="../../api_c/txn_begin.html">txn_begin</a> and <a href="../../api_c/txn_commit.html">txn_commit</a>.
-<p>Before data are referenced, the application must make a call to the lock
-manager, <a href="../../api_c/lock_get.html">lock_get</a>, for a lock of the appropriate type (e.g.,
-read) on the object being locked. The object might be a page in the file,
-a byte, a range of bytes, or some key. It is up to the application to
-ensure that appropriate locks are acquired. Before a write is performed,
-the application should acquire a write lock on the object, by making an
-appropriate call to the lock manager, <a href="../../api_c/lock_get.html">lock_get</a>. Then, the
-application should make a call to the log manager, <a href="../../api_c/log_put.html">log_put</a>, to
-record enough information to redo the operation in case of failure after
-commit and to undo the operation in case of abort.
-<p>It is important, when designing applications that will use the log
-subsystem, to remember that the application is responsible for providing
-any necessary structure to the log record. For example, the application
-must understand what part of the log record is an operation code, what
-part identifies the file being modified, what part is redo information,
-and what part is undo information.
-<p>After the log message is written, the application may issue the write
-system call. After all requests are issued, the application may call
-<a href="../../api_c/txn_commit.html">txn_commit</a>. When <a href="../../api_c/txn_commit.html">txn_commit</a> returns, the caller is
-guaranteed that all necessary log writes have been written to disk.
-<p>At any time, the application may call <a href="../../api_c/txn_abort.html">txn_abort</a>, which will result
-in restoration of the database to a consistent pre-transaction state.
-(The application may specify its own recovery function for this purpose
-using the <a href="../../api_c/env_set_tx_recover.html">DBENV-&gt;set_tx_recover</a> function. The recovery function must be
-able to either re-apply or undo the update depending on the context, for
-each different type of log record.)
-<p>If the application should crash, the recovery process uses the log to
-restore the database to a consistent state.
-<p>The <a href="../../api_c/txn_prepare.html">txn_prepare</a> function provides the core functionality to
-implement distributed transactions, but it does not manage the
-notification of distributed transaction managers. The caller is
-responsible for issuing <a href="../../api_c/txn_prepare.html">txn_prepare</a> calls to all sites
-participating in the transaction. If all responses are positive, the
-caller can issue a <a href="../../api_c/txn_commit.html">txn_commit</a>. If any of the responses are
-negative, the caller should issue a <a href="../../api_c/txn_abort.html">txn_abort</a>. In general, the
-<a href="../../api_c/txn_prepare.html">txn_prepare</a> call requires that the transaction log be flushed to
-disk.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/txn/config.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/rpc/intro.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.2.0/convert.html b/bdb/docs/ref/upgrade.2.0/convert.html
deleted file mode 100644
index ad5685368dc..00000000000
--- a/bdb/docs/ref/upgrade.2.0/convert.html
+++ /dev/null
@@ -1,74 +0,0 @@
-<!--$Id: convert.so,v 11.6 2000/03/18 21:43:19 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 2.0: converting applications</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.2.0/system.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.2.0/disk.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 2.0: converting applications</h1>
-<p>Mapping the Berkeley DB 1.85 functionality into Berkeley DB version 2 is almost always
-simple. The manual page <a href="../../api_c/db_open.html">DB-&gt;open</a> replaces the Berkeley DB 1.85 manual
-pages <b>dbopen</b>(3), <b>btree</b>(3), <b>hash</b>(3) and
-<b>recno</b>(3). You should be able to convert each 1.85 function
-call into a Berkeley DB version 2 function call using just the <a href="../../api_c/db_open.html">DB-&gt;open</a>
-documentation.
-<p>Some guidelines and things to watch out for:
-<p><ol>
-<p><li>Most access method functions have exactly the same semantics as in Berkeley DB
-1.85, although the arguments to the functions have changed in some cases.
-To get your code to compile, the most common change is to add the
-transaction ID as an argument (NULL, since Berkeley DB 1.85 did not support
-transactions.)
-<p><li>You must always initialize DBT structures to zero before using them with
-any Berkeley DB version 2 function. (They do not normally have to be
-reinitialized each time, only when they are first allocated. Do this by
-declaring the DBT structure external or static, or by calling the C
-library routine <b>bzero</b>(3) or <b>memset</b>(3).)
-<p><li>The error returns are completely different in the two versions. In Berkeley DB
-1.85, &lt; 0 meant an error, and &gt; 0 meant a minor Berkeley DB exception.
-In Berkeley DB 2.0, &gt; 0 means an error (the Berkeley DB version 2 functions
-return <b>errno</b> on error) and &lt; 0 means a Berkeley DB exception.
-See <a href="../../ref/program/errorret.html">Error Returns to Applications</a>
-for more information.
-<p><li>The Berkeley DB 1.85 DB-&gt;seq function has been replaced by cursors in Berkeley DB
-version 2. The semantics are approximately the same, but cursors require
-the creation of an extra object (the DBC object), which is then used to
-access the database.
-<p>Specifically, the partial key match and range search functionality of the
-R_CURSOR flag in DB-&gt;seq has been replaced by the
-<a href="../../api_c/dbc_get.html#DB_SET_RANGE">DB_SET_RANGE</a> flag in <a href="../../api_c/dbc_get.html">DBcursor-&gt;c_get</a>.
-<p><li>In version 2 of the Berkeley DB library, additions or deletions into Recno
-(fixed and variable-length record) databases no longer automatically
-logically renumber all records after the add/delete point, by default.
-The default behavior is that deleting records does not cause subsequent
-records to be renumbered, and it is an error to attempt to add new records
-between records already in the database. Applications wanting the
-historic Recno access method semantics should call the
-<a href="../../api_c/db_set_flags.html">DB-&gt;set_flags</a> function with the <a href="../../api_c/db_set_flags.html#DB_RENUMBER">DB_RENUMBER</a> flag.
-<p><li>Opening a database in Berkeley DB version 2 is a much heavier-weight operation
-than it was in Berkeley DB 1.85. Therefore, if your historic applications were
-written to open a database, perform a single operation, and close the
-database, you may observe performance degradation. In most cases, this
-is due to the expense of creating the environment upon each open. While
-we encourage restructuring your application to avoid repeated opens and
-closes, you can probably recover most of the lost performance by simply
-using a persistent environment across invocations.
-</ol>
-<p>While simply converting Berkeley DB 1.85 function calls to Berkeley DB version 2
-function calls will work, we recommend that you eventually reconsider your
-application's interface to the Berkeley DB database library in light of the
-additional functionality supplied by Berkeley DB version 2, as it is likely to
-result in enhanced application performance.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.2.0/system.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.2.0/disk.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.2.0/disk.html b/bdb/docs/ref/upgrade.2.0/disk.html
deleted file mode 100644
index 8e7aeabc718..00000000000
--- a/bdb/docs/ref/upgrade.2.0/disk.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!--$Id: disk.so,v 11.6 2000/12/05 20:36:25 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 2.0: upgrade requirements</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.2.0/convert.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/intro.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 2.0: upgrade requirements</h1>
-<p>You will need to upgrade your on-disk databases, as all access method
-database formats changed in the Berkeley DB 2.0 release. For information on
-converting databases from Berkeley DB 1.85 to Berkeley DB 2.0, see the
-<a href="../../utility/db_dump.html">db_dump185</a> and <a href="../../utility/db_load.html">db_load</a> documentation. As database
-environments did not exist prior to the 2.0 release, there is no
-question of upgrading existing database environments.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.2.0/convert.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/intro.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.2.0/intro.html b/bdb/docs/ref/upgrade.2.0/intro.html
deleted file mode 100644
index 1bebc81cbf5..00000000000
--- a/bdb/docs/ref/upgrade.2.0/intro.html
+++ /dev/null
@@ -1,32 +0,0 @@
-<!--$Id: intro.so,v 11.8 2000/12/21 18:33:44 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 2.0: introduction</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade/process.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.2.0/system.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 2.0: introduction</h1>
-<p>The following pages describe how to upgrade applications coded against
-the Berkeley DB 1.85 and 1.86 release interfaces to the Berkeley DB 2.0 release
-interfaces. They do not describe how to upgrade to the current Berkeley DB
-release interfaces.
-<p>It is not difficult to upgrade Berkeley DB 1.85 applications to use the Berkeley DB
-version 2 library. The Berkeley DB version 2 library has a Berkeley DB 1.85
-compatibility API, which you can use by either recompiling your
-application's source code or by relinking its object files against the
-version 2 library. The underlying databases must be converted, however,
-as the Berkeley DB version 2 library has a different underlying database format.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade/process.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.2.0/system.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.2.0/system.html b/bdb/docs/ref/upgrade.2.0/system.html
deleted file mode 100644
index 60a11c9bdf0..00000000000
--- a/bdb/docs/ref/upgrade.2.0/system.html
+++ /dev/null
@@ -1,84 +0,0 @@
-<!--$Id: system.so,v 11.5 2000/03/18 21:43:20 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 2.0: system integration</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.2.0/intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.2.0/convert.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 2.0: system integration</h1>
-<p><ol>
-<p><li>It is possible to maintain both the Berkeley DB 1.85 and Berkeley DB version 2
-libraries on your system. However, the <b>db.h</b> include file that
-was distributed with Berkeley DB 1.85 is not compatible with the <b>db.h</b>
-file distributed with Berkeley DB version 2, so you will have to install them
-in different locations. In addition, both the Berkeley DB 1.85 and Berkeley DB
-version 2 libraries are named <b>libdb.a</b>.
-<p>As the Berkeley DB 1.85 library did not have an installation target in the
-Makefile, there's no way to know exactly where it was installed on the
-system. In addition, many vendors included it in the C library instead
-of as a separate library, and so it may actually be part of libc and the
-<b>db.h</b> include file may be installed in <b>/usr/include</b>.
-<p>For these reasons, the simplest way to maintain both libraries is to
-install Berkeley DB version 2 in a completely separate area of your system.
-The Berkeley DB version 2 installation process allows you to install into a
-standalone directory hierarchy on your system. See the
-<a href="../../ref/build_unix/intro.html">Building for UNIX systems</a>
-documentation for more information and instructions on how to install the
-Berkeley DB version 2 library, include files and documentation into specific
-locations.
-<p><li>Alternatively, you can replace Berkeley DB 1.85 on your system with Berkeley DB
-version 2. In this case, you'll probably want to install Berkeley DB version
-2 in the normal place on your system, wherever that may be, and delete
-the Berkeley DB 1.85 include files, manual pages and libraries.
-<p>To replace 1.85 with version 2, you must either convert your 1.85
-applications to use the version 2 API or build the Berkeley DB version 2 library
-to include Berkeley DB 1.85 interface compatibility code. Whether converting
-your applications to use the version 2 interface or using the version 1.85
-compatibility API, you will need to recompile or relink your 1.85
-applications, and you must convert any persistent application databases
-to the Berkeley DB version 2 database formats.
-<p>If you want to recompile your Berkeley DB 1.85 applications, you will have to
-change them to include the file <b>db_185.h</b> instead of
-<b>db.h</b>. (The <b>db_185.h</b> file is automatically installed
-during the Berkeley DB version 2 installation process.) You can then recompile
-the applications, linking them against the Berkeley DB version 2 library.
-<p>For more information on compiling the Berkeley DB 1.85 compatibility code into
-the Berkeley DB version 2 library, see <a href="../../ref/build_unix/intro.html">Building for UNIX platforms</a>.
-<p>For more information on converting databases from the Berkeley DB 1.85 formats
-to the Berkeley DB version 2 formats, see the <a href="../../utility/db_dump.html">db_dump185</a> and
-<a href="../../utility/db_load.html">db_load</a> documentation.
-<p><li>Finally, although we certainly do not recommend it, it is possible to
-load both Berkeley DB 1.85 and Berkeley DB version 2 into the same library.
-Similarly, it is possible to use both Berkeley DB 1.85 and Berkeley DB version 2
-within a single application, although it is not possible to use them from
-within the same file.
-<p>The name space in Berkeley DB version 2 has been changed from that of previous
-Berkeley DB versions, notably version 1.85, for portability and consistency
-reasons. The only name collisions in the two libraries are the names used
-by the historic <a href="../../api_c/dbm.html">dbm</a>, <a href="../../api_c/dbm.html">ndbm</a> and <a href="../../api_c/hsearch.html">hsearch</a> interfaces,
-and the Berkeley DB 1.85 compatibility interfaces in the Berkeley DB version 2
-library.
-<p>If you are loading both Berkeley DB 1.85 and Berkeley DB version 2 into a single
-library, remove the historic interfaces from one of the two library
-builds, and configure the Berkeley DB version 2 build to not include the Berkeley DB
-1.85 compatibility API, otherwise you could have collisions and undefined
-behavior. This can be done by editing the library Makefiles and
-reconfiguring and rebuilding the Berkeley DB version 2 library. Obviously, if
-you use the historic interfaces, you will get the version in the library
-from which you did not remove them. Similarly, you will not be able to
-access Berkeley DB version 2 files using the Berkeley DB 1.85 compatibility interface,
-since you have removed that from the library as well.
-</ol>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.2.0/intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.2.0/convert.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.2.0/toc.html b/bdb/docs/ref/upgrade.2.0/toc.html
deleted file mode 100644
index 68502be59cb..00000000000
--- a/bdb/docs/ref/upgrade.2.0/toc.html
+++ /dev/null
@@ -1,20 +0,0 @@
-<!--$Id: toc.so,v 11.2 2000/12/05 20:36:25 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Upgrading Berkeley DB 1.XX applications to Berkeley DB 2.0</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<h1 align=center>Upgrading Berkeley DB 1.XX applications to Berkeley DB 2.0</h1>
-<ol>
-<li><a href="intro.html">Release 2.0: introduction</a>
-<li><a href="system.html">Release 2.0: system integration</a>
-<li><a href="convert.html">Release 2.0: converting applications</a>
-<li><a href="disk.html">Release 2.0: upgrade requirements</a>
-</ol>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.0/close.html b/bdb/docs/ref/upgrade.3.0/close.html
deleted file mode 100644
index 620e4babb8b..00000000000
--- a/bdb/docs/ref/upgrade.3.0/close.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!--$Id: close.so,v 11.9 2000/07/25 16:59:36 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.0: DB-&gt;sync and DB-&gt;close</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.0/stat.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/lock_put.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.0: DB-&gt;sync and DB-&gt;close</h1>
-<p>In previous Berkeley DB releases, the <a href="../../api_c/db_close.html">DB-&gt;close</a> and <a href="../../api_c/db_sync.html">DB-&gt;sync</a> functions
-discarded any return of <a href="../../api_c/memp_fsync.html#DB_INCOMPLETE">DB_INCOMPLETE</a> from the underlying buffer
-pool interfaces, and returned success to its caller. (The
-<a href="../../api_c/memp_fsync.html#DB_INCOMPLETE">DB_INCOMPLETE</a> error will be returned if the buffer pool functions
-are unable to flush all of the database's dirty blocks from the pool.
-This often happens if another thread is reading or writing the database's
-pages in the pool.)
-<p>In the 3.X release, <a href="../../api_c/db_sync.html">DB-&gt;sync</a> and <a href="../../api_c/db_close.html">DB-&gt;close</a> will return
-<a href="../../api_c/memp_fsync.html#DB_INCOMPLETE">DB_INCOMPLETE</a> to the application. The best solution is to not
-call <a href="../../api_c/db_sync.html">DB-&gt;sync</a> and specify the <a href="../../api_c/db_close.html#DB_NOSYNC">DB_NOSYNC</a> flag to the
-<a href="../../api_c/db_close.html">DB-&gt;close</a> function when multiple threads are expected to be accessing the
-database. Alternatively, the caller can ignore any error return of
-<a href="../../api_c/memp_fsync.html#DB_INCOMPLETE">DB_INCOMPLETE</a>.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.0/stat.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/lock_put.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.0/cxx.html b/bdb/docs/ref/upgrade.3.0/cxx.html
deleted file mode 100644
index 7f6c1ab7ea9..00000000000
--- a/bdb/docs/ref/upgrade.3.0/cxx.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<!--$Id: cxx.so,v 11.5 2000/03/18 21:43:20 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.0: additional C++ changes</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.0/db_cxx.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/java.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.0: additional C++ changes</h1>
-<p>The Db::set_error_model method is gone. The way to change the C++ API to
-return errors rather than throw exceptions is via a flag on the DbEnv or
-Db constructor. For example:
-<p><blockquote><pre>int dberr;
-DbEnv *dbenv = new DbEnv(DB_CXX_NO_EXCEPTIONS);</pre></blockquote>
-<p>creates an environment that will never throw exceptions, and method
-returns should be checked instead.
-<p>There are a number of smaller changes to the API that bring the C, C++
-and Java APIs much closer in terms of functionality and usage. Please
-refer to the pages for upgrading C applications for further details.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.0/db_cxx.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/java.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.0/db.html b/bdb/docs/ref/upgrade.3.0/db.html
deleted file mode 100644
index a086b589e1b..00000000000
--- a/bdb/docs/ref/upgrade.3.0/db.html
+++ /dev/null
@@ -1,48 +0,0 @@
-<!--$Id: db.so,v 11.9 2000/12/01 17:57:34 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.0: the DB structure</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.0/xa.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/dbinfo.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.0: the DB structure</h1>
-<p>The DB structure is now opaque for applications in the Berkeley DB 3.0
-release. Accesses to any fields within that structure by the application
-should be replaced with method calls. The following example illustrates
-this using the historic type structure field. In the Berkeley DB 2.X releases,
-applications could find the type of an underlying database using code
-similar to the following:
-<p><blockquote><pre>DB *db;
-DB_TYPE type;
-<p>
- type = db-&gt;type;</pre></blockquote>
-<p>in the Berkeley DB 3.X releases, this should be done using the
-<a href="../../api_c/db_get_type.html">DB-&gt;get_type</a> method, as follows:
-<p><blockquote><pre>DB *db;
-DB_TYPE type;
-<p>
- type = db-&gt;get_type(db);</pre></blockquote>
-<p>The following table lists the DB fields previously used by
-applications and the methods that should now be used to get or set them.
-<p><table border=1 align=center>
-<tr><th>DB field</th><th>Berkeley DB 3.X method</th></tr>
-<tr><td>byteswapped</td><td><a href="../../api_c/db_get_byteswapped.html">DB-&gt;get_byteswapped</a></td></tr>
-<tr><td>db_errcall</td><td><a href="../../api_c/db_set_errcall.html">DB-&gt;set_errcall</a></td></tr>
-<tr><td>db_errfile</td><td><a href="../../api_c/db_set_errfile.html">DB-&gt;set_errfile</a></td></tr>
-<tr><td>db_errpfx</td><td><a href="../../api_c/db_set_errpfx.html">DB-&gt;set_errpfx</a></td></tr>
-<tr><td>db_paniccall</td><td><a href="../../api_c/db_set_paniccall.html">DB-&gt;set_paniccall</a></td></tr>
-<tr><td>type</td><td><a href="../../api_c/db_get_type.html">DB-&gt;get_type</a></td></tr>
-</table>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.0/xa.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/dbinfo.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.0/db_cxx.html b/bdb/docs/ref/upgrade.3.0/db_cxx.html
deleted file mode 100644
index e3a794e3865..00000000000
--- a/bdb/docs/ref/upgrade.3.0/db_cxx.html
+++ /dev/null
@@ -1,47 +0,0 @@
-<!--$Id: db_cxx.so,v 11.9 2000/03/22 22:02:14 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.0: the Db class for C++ and Java</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.0/dbenv_cxx.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/cxx.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.0: the Db class for C++ and Java</h1>
-<p>The static Db::open method and the DbInfo class have been removed in the
-Berkeley DB 3.0 release. The way to open a database file is to use the new Db
-constructor with two arguments, followed by set_XXX methods to configure
-the Db object, and finally a call to the new (nonstatic) Db::open(). In
-comparing the Berkeley DB 3.0 release open method with the 2.X static open
-method, the second argument is new. It is a database name, which can
-be null. The DbEnv argument has been removed, as the environment is now
-specified in the constructor. The open method no longer returns a Db,
-since it operates on one.
-<p>Here's a C++ example opening a Berkeley DB database using the 2.X interface:
-<p><blockquote><pre>// Note: by default, errors are thrown as exceptions
-Db *table;
-Db::open("lookup.db", DB_BTREE, DB_CREATE, 0644, dbenv, 0, &table);</pre></blockquote>
-<p>In the Berkeley DB 3.0 release, this code would be written as:
-<p><blockquote><pre>// Note: by default, errors are thrown as exceptions
-Db *table = new Db(dbenv, 0);
-table-&gt;open("lookup.db", NULL, DB_BTREE, DB_CREATE, 0644);</pre></blockquote>
-<p>Here's a Java example opening a Berkeley DB database using the 2.X interface:
-<p><blockquote><pre>// Note: errors are thrown as exceptions
-Db table = Db.open("lookup.db", Db.DB_BTREE, Db.DB_CREATE, 0644, dbenv, 0);</pre></blockquote>
-<p>In the Berkeley DB 3.0 release, this code would be written as:
-<p><blockquote><pre>// Note: errors are thrown as exceptions
-Db table = new Db(dbenv, 0);
-table.open("lookup.db", null, Db.DB_BTREE, Db.DB_CREATE, 0644);</pre></blockquote>
-<p>Note that if the dbenv argument is null, the database will not exist
-within an environment.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.0/dbenv_cxx.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/cxx.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.0/dbenv.html b/bdb/docs/ref/upgrade.3.0/dbenv.html
deleted file mode 100644
index 08b6ec149ef..00000000000
--- a/bdb/docs/ref/upgrade.3.0/dbenv.html
+++ /dev/null
@@ -1,68 +0,0 @@
-<!--$Id: dbenv.so,v 11.9 2000/03/18 21:43:20 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.0: the DB_ENV structure</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.0/func.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/open.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.0: the DB_ENV structure</h1>
-<p>The DB_ENV structure is now opaque for applications in the Berkeley DB
-3.0 release. Accesses to any fields within that structure by the
-application should be replaced with method calls. The following example
-illustrates this using the historic errpfx structure field. In the Berkeley DB
-2.X releases, applications set error prefixes using code similar to the
-following:
-<p><blockquote><pre>DB_ENV *dbenv;
-<p>
- dbenv-&gt;errpfx = "my prefix";</pre></blockquote>
-<p>in the Berkeley DB 3.X releases, this should be done using the
-<a href="../../api_c/env_set_errpfx.html">DBENV-&gt;set_errpfx</a> method, as follows:
-<p><blockquote><pre>DB_ENV *dbenv;
-<p>
- dbenv-&gt;set_errpfx(dbenv, "my prefix");</pre></blockquote>
-<p>The following table lists the DB_ENV fields previously used by
-applications and the methods that should now be used to set them.
-<p><table border=1 align=center>
-<tr><th>DB_ENV field</th><th>Berkeley DB 3.X method</th></tr>
-<tr><td>db_errcall</td><td><a href="../../api_c/env_set_errcall.html">DBENV-&gt;set_errcall</a></td></tr>
-<tr><td>db_errfile</td><td><a href="../../api_c/env_set_errfile.html">DBENV-&gt;set_errfile</a></td></tr>
-<tr><td>db_errpfx</td><td><a href="../../api_c/env_set_errpfx.html">DBENV-&gt;set_errpfx</a></td></tr>
-<tr><td>db_lorder</td><td>This field was removed from the DB_ENV structure in the Berkeley DB
-3.0 release as no application should have ever used it. Any code using
-it should be evaluated for potential bugs.</td></tr>
-<tr><td>db_paniccall</td><td><a href="../../api_c/env_set_paniccall.html">DBENV-&gt;set_paniccall</a></td></tr>
-<tr><td>db_verbose</td><td><a href="../../api_c/env_set_verbose.html">DBENV-&gt;set_verbose</a>
-<p>Note: the db_verbose field was a simple boolean toggle, the
-<a href="../../api_c/env_set_verbose.html">DBENV-&gt;set_verbose</a> method takes arguments that specify exactly
-which verbose messages are desired.</td></tr>
-<tr><td>lg_max</td><td><a href="../../api_c/env_set_lg_max.html">DBENV-&gt;set_lg_max</a></td></tr>
-<tr><td>lk_conflicts</td><td><a href="../../api_c/env_set_lk_conflicts.html">DBENV-&gt;set_lk_conflicts</a></td></tr>
-<tr><td>lk_detect</td><td><a href="../../api_c/env_set_lk_detect.html">DBENV-&gt;set_lk_detect</a></td></tr>
-<tr><td>lk_max</td><td><a href="../../api_c/env_set_lk_max.html">DBENV-&gt;set_lk_max</a></td></tr>
-<tr><td>lk_modes</td><td><a href="../../api_c/env_set_lk_conflicts.html">DBENV-&gt;set_lk_conflicts</a></td></tr>
-<tr><td>mp_mmapsize</td><td><a href="../../api_c/env_set_mp_mmapsize.html">DBENV-&gt;set_mp_mmapsize</a></td></tr>
-<tr><td>mp_size</td><td><a href="../../api_c/env_set_cachesize.html">DBENV-&gt;set_cachesize</a>
-<p>Note: the <a href="../../api_c/env_set_cachesize.html">DBENV-&gt;set_cachesize</a> function takes additional arguments.
-Setting both the second argument (the number of GB in the pool) and the
-last argument (the number of memory pools to create) to 0 will result in
-behavior that is backward compatible with previous Berkeley DB releases.</td></tr>
-<tr><td>tx_info</td><td>This field was used by applications as an argument to the transaction
-subsystem functions. As those functions take references to a
-DB_ENV structure as arguments in the Berkeley DB 3.0 release, it should
-no longer be used by any application.</td></tr>
-<tr><td>tx_max</td><td><a href="../../api_c/env_set_tx_max.html">DBENV-&gt;set_tx_max</a></td></tr>
-<tr><td>tx_recover</td><td><a href="../../api_c/env_set_tx_recover.html">DBENV-&gt;set_tx_recover</a></td></tr>
-</table>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.0/func.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/open.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.0/dbenv_cxx.html b/bdb/docs/ref/upgrade.3.0/dbenv_cxx.html
deleted file mode 100644
index 8839d640897..00000000000
--- a/bdb/docs/ref/upgrade.3.0/dbenv_cxx.html
+++ /dev/null
@@ -1,72 +0,0 @@
-<!--$Id: dbenv_cxx.so,v 11.10 2000/12/01 17:59:32 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.0: the DbEnv class for C++ and Java</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.0/value_set.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/db_cxx.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.0: the DbEnv class for C++ and Java</h1>
-<p>The DbEnv::appinit() method and two constructors for the DbEnv class are
-gone. There is now a single way to create and initialize the environment.
-The way to create an environment is to use the new DbEnv constructor with
-one argument. After this call, the DbEnv can be configured with various
-set_XXX methods. Finally, a call to DbEnv::open is made to initialize
-the environment.
-<p>Here's a C++ example creating a Berkeley DB environment using the 2.X interface
-<p><blockquote><pre>int dberr;
-DbEnv *dbenv = new DbEnv();
-<p>
-dbenv-&gt;set_error_stream(&cerr);
-dbenv-&gt;set_errpfx("myprog");
-<p>
-if ((dberr = dbenv-&gt;appinit("/database/home",
- NULL, DB_CREATE | DB_INIT_LOCK | DB_INIT_MPOOL)) != 0) {
- cerr &lt;&lt; "failure: " &lt;&lt; strerror(dberr);
- exit (1);
-}</pre></blockquote>
-<p>In the Berkeley DB 3.0 release, this code would be written as:
-<p><blockquote><pre>int dberr;
-DbEnv *dbenv = new DbEnv(0);
-<p>
-dbenv-&gt;set_error_stream(&cerr);
-dbenv-&gt;set_errpfx("myprog");
-<p>
-if ((dberr = dbenv-&gt;open("/database/home",
- NULL, DB_CREATE | DB_INIT_LOCK | DB_INIT_MPOOL, 0)) != 0) {
- cerr &lt;&lt; "failure: " &lt;&lt; dbenv-&gt;strerror(dberr);
- exit (1);
-}</pre></blockquote>
-<p>Here's a Java example creating a Berkeley DB environment using the 2.X interface:
-<p><blockquote><pre>int dberr;
-DbEnv dbenv = new DbEnv();
-<p>
-dbenv.set_error_stream(System.err);
-dbenv.set_errpfx("myprog");
-<p>
-dbenv.appinit("/database/home",
- null, Db.DB_CREATE | Db.DB_INIT_LOCK | Db.DB_INIT_MPOOL);</pre></blockquote>
-<p>In the Berkeley DB 3.0 release, this code would be written as:
-<p><blockquote><pre>int dberr;
-DbEnv dbenv = new DbEnv(0);
-<p>
-dbenv.set_error_stream(System.err);
-dbenv.set_errpfx("myprog");
-<p>
-dbenv.open("/database/home",
- null, Db.DB_CREATE | Db.DB_INIT_LOCK | Db.DB_INIT_MPOOL, 0);</pre></blockquote>
-<p>In the Berkeley DB 2.X release, DbEnv had accessors to obtain "managers" of type
-DbTxnMgr, DbMpool, DbLog, DbTxnMgr. If you used any of these managers,
-all their methods are now found directly in the DbEnv class.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.0/value_set.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/db_cxx.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.0/dbinfo.html b/bdb/docs/ref/upgrade.3.0/dbinfo.html
deleted file mode 100644
index da1f8460d80..00000000000
--- a/bdb/docs/ref/upgrade.3.0/dbinfo.html
+++ /dev/null
@@ -1,72 +0,0 @@
-<!--$Id: dbinfo.so,v 11.8 2000/03/18 21:43:20 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.0: the DBINFO structure</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.0/db.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/join.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.0: the DBINFO structure</h1>
-<p>The DB_INFO structure has been removed from the Berkeley DB 3.0 release.
-Accesses to any fields within that structure by the application should be
-replaced with method calls on the DB handle. The following
-example illustrates this using the historic db_cachesize structure field.
-In the Berkeley DB 2.X releases, applications could set the size of an
-underlying database cache using code similar to the following:
-<p><blockquote><pre>DB_INFO dbinfo;
-<p>
- memset(dbinfo, 0, sizeof(dbinfo));
- dbinfo.db_cachesize = 1024 * 1024;</pre></blockquote>
-<p>in the Berkeley DB 3.X releases, this should be done using the
-<a href="../../api_c/db_set_cachesize.html">DB-&gt;set_cachesize</a> method, as follows:
-<p><blockquote><pre>DB *db;
-int ret;
-<p>
- ret = db-&gt;set_cachesize(db, 0, 1024 * 1024, 0);</pre></blockquote>
-<p>The DB_INFO structure is no longer used in any way by the Berkeley DB 3.0
-release, and should be removed from the application.
-<p>The following table lists the DB_INFO fields previously used by
-applications and the methods that should now be used to set
-them. Because these calls provide configuration for the
-database open, they must precede the call to <a href="../../api_c/db_open.html">DB-&gt;open</a>.
-Calling them after the call to <a href="../../api_c/db_open.html">DB-&gt;open</a> will return an
-error.
-<p><table border=1 align=center>
-<tr><th>DB_INFO field</th><th>Berkeley DB 3.X method</th></tr>
-<tr><td>bt_compare</td><td><a href="../../api_c/db_set_bt_compare.html">DB-&gt;set_bt_compare</a></td></tr>
-<tr><td>bt_minkey</td><td><a href="../../api_c/db_set_bt_minkey.html">DB-&gt;set_bt_minkey</a></td></tr>
-<tr><td>bt_prefix</td><td><a href="../../api_c/db_set_bt_prefix.html">DB-&gt;set_bt_prefix</a></td></tr>
-<tr><td>db_cachesize</td><td><a href="../../api_c/db_set_cachesize.html">DB-&gt;set_cachesize</a>
-<p>Note: the <a href="../../api_c/db_set_cachesize.html">DB-&gt;set_cachesize</a> function takes additional arguments.
-Setting both the second argument (the number of GB in the pool) and the
-last argument (the number of memory pools to create) to 0 will result in
-behavior that is backward compatible with previous Berkeley DB releases.</td></tr>
-<tr><td>db_lorder</td><td><a href="../../api_c/db_set_lorder.html">DB-&gt;set_lorder</a></td></tr>
-<tr><td>db_malloc</td><td><a href="../../api_c/db_set_malloc.html">DB-&gt;set_malloc</a></td></tr>
-<tr><td>db_pagesize</td><td><a href="../../api_c/db_set_pagesize.html">DB-&gt;set_pagesize</a></td></tr>
-<tr><td>dup_compare</td><td><a href="../../api_c/db_set_dup_compare.html">DB-&gt;set_dup_compare</a></td></tr>
-<tr><td>flags</td><td><a href="../../api_c/db_set_flags.html">DB-&gt;set_flags</a>
-<p>Note: the DB_DELIMITER, DB_FIXEDLEN and DB_PAD flags no longer need to be
-set as there are specific methods off the DB handle that set the
-file delimiter, the length of fixed-length records and the fixed-length
-record pad character. They should simply be discarded from the application.</td></tr>
-<tr><td>h_ffactor</td><td><a href="../../api_c/db_set_h_ffactor.html">DB-&gt;set_h_ffactor</a></td></tr>
-<tr><td>h_hash</td><td><a href="../../api_c/db_set_h_hash.html">DB-&gt;set_h_hash</a></td></tr>
-<tr><td>h_nelem</td><td><a href="../../api_c/db_set_h_nelem.html">DB-&gt;set_h_nelem</a></td></tr>
-<tr><td>re_delim</td><td><a href="../../api_c/db_set_re_delim.html">DB-&gt;set_re_delim</a></td></tr>
-<tr><td>re_len</td><td><a href="../../api_c/db_set_re_len.html">DB-&gt;set_re_len</a></td></tr>
-<tr><td>re_pad</td><td><a href="../../api_c/db_set_re_pad.html">DB-&gt;set_re_pad</a></td></tr>
-<tr><td>re_source</td><td><a href="../../api_c/db_set_re_source.html">DB-&gt;set_re_source</a></td></tr>
-</table>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.0/db.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/join.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.0/disk.html b/bdb/docs/ref/upgrade.3.0/disk.html
deleted file mode 100644
index f6ea2799be9..00000000000
--- a/bdb/docs/ref/upgrade.3.0/disk.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!--$Id: disk.so,v 11.15 2000/12/21 18:37:09 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.0: upgrade requirements</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.0/java.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.1/intro.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.0: upgrade requirements</h1>
-<p>Log file formats and the Btree, Recno and Hash Access Method database
-formats changed in the Berkeley DB 3.0 release. (The on-disk Btree/Recno
-format changed from version 6 to version 7. The on-disk Hash format
-changed from version 5 to version 6.) Until the underlying databases
-are upgraded, the <a href="../../api_c/db_open.html">DB-&gt;open</a> function will return a <a href="../../api_c/db_open.html#DB_OLD_VERSION">DB_OLD_VERSION</a>
-error.
-<p>For further information on upgrading Berkeley DB installations, see
-<a href="../../ref/upgrade/process.html">Upgrading Berkeley DB
-installations</a>.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.0/java.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.1/intro.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.0/eacces.html b/bdb/docs/ref/upgrade.3.0/eacces.html
deleted file mode 100644
index b7fb3e8598a..00000000000
--- a/bdb/docs/ref/upgrade.3.0/eacces.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!--$Id: eacces.so,v 11.7 2000/12/01 17:58:21 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.0: EACCES</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.0/eagain.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/jump_set.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.0: EACCES</h1>
-<p>There was an error in previous releases of the Berkeley DB documentation that
-said that the <a href="../../api_c/lock_put.html">lock_put</a> and <a href="../../api_c/lock_vec.html">lock_vec</a> interfaces could
-return EACCES as an error to indicate that a lock could not be released
-because it was held by another locker. The application should be
-searched for any occurrences of EACCES. For each of these, any that are
-checking for an error return from <a href="../../api_c/lock_put.html">lock_put</a> or <a href="../../api_c/lock_vec.html">lock_vec</a>
-should have the test and any error handling removed.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.0/eagain.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/jump_set.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.0/eagain.html b/bdb/docs/ref/upgrade.3.0/eagain.html
deleted file mode 100644
index e998c1b4351..00000000000
--- a/bdb/docs/ref/upgrade.3.0/eagain.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!--$Id: eagain.so,v 11.5 2000/03/18 21:43:20 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.0: EAGAIN</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.0/txn_commit.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/eacces.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.0: EAGAIN</h1>
-<p>Historically, the Berkeley DB interfaces have returned the POSIX error value
-EAGAIN to indicate a deadlock. This has been removed from the Berkeley DB 3.0
-release in order to make it possible for applications to distinguish
-between EAGAIN errors returned by the system and returns from Berkeley DB
-indicating deadlock.
-<p>The application should be searched for any occurrences of EAGAIN. For
-each of these, any that are checking for a deadlock return from Berkeley DB
-should be changed to check for the DB_LOCK_DEADLOCK return value.
-<p>If, for any reason, this is a difficult change for the application to
-make, the <b>include/db.src</b> distribution file should be modified to
-translate all returns of DB_LOCK_DEADLOCK to EAGAIN. Search for the
-string EAGAIN in that file, there is a comment that describes how to make
-the change.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.0/txn_commit.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/eacces.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.0/envopen.html b/bdb/docs/ref/upgrade.3.0/envopen.html
deleted file mode 100644
index 3c20a0e9e21..00000000000
--- a/bdb/docs/ref/upgrade.3.0/envopen.html
+++ /dev/null
@@ -1,156 +0,0 @@
-<!--$Id: envopen.so,v 11.12 2000/03/18 21:43:20 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.0: environment open/close/unlink</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.0/intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/func.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.0: environment open/close/unlink</h1>
-<p>The hardest part of upgrading your application from a 2.X code base to
-the 3.0 release is translating the Berkeley DB environment open, close and
-remove calls.
-<p>There were two logical changes in this part of the Berkeley DB interface.
-First, in Berkeley DB 3.0, there are no longer separate structures that
-represent each subsystem (e.g., DB_LOCKTAB or DB_TXNMGR) and an overall
-DB_ENV environment structure. Instead there is only the
-DB_ENV structure. This means that DB_ENV references should
-be passed around by your application instead of passing around DB_LOCKTAB
-or DB_TXNMGR references. This is likely to be a simple change for most
-applications as few applications use the lock_XXX, log_XXX,
-memp_XXX or txn_XXX interfaces to create Berkeley DB environments.
-<p>The second change is that there are no longer separate open, close, and
-unlink interfaces to the
-Berkeley DB subsystems, e.g., in previous releases, it was possible to open a
-lock subsystem either using db_appinit or using the lock_open call. In
-the 3.0 release the XXX_open interfaces to the subsystems have been
-removed, and subsystems must now be opened using the 3.0 replacement for the
-db_appinit call.
-<p>To upgrade your application, first find each place your application opens,
-closes and/or removes a Berkeley DB environment. This will be code of the form:
-<p><blockquote><pre>db_appinit, db_appexit
-lock_open, lock_close, lock_unlink
-log_open, log_close, log_unlink
-memp_open, memp_close, memp_unlink
-txn_open, txn_close, txn_unlink</pre></blockquote>
-<p>Each of these groups of calls should be replaced with calls to:
-<p><blockquote><pre><a href="../../api_c/env_create.html">db_env_create</a>, <a href="../../api_c/env_open.html">DBENV-&gt;open</a>, <a href="../../api_c/env_close.html">DBENV-&gt;close</a>,
-<a href="../../api_c/env_remove.html">DBENV-&gt;remove</a></pre></blockquote>
-<p>The <a href="../../api_c/env_create.html">db_env_create</a> call and the call to the <a href="../../api_c/env_open.html">DBENV-&gt;open</a>
-method replace the db_appinit, lock_open, log_open, memp_open and txn_open
-calls. The <a href="../../api_c/env_close.html">DBENV-&gt;close</a> method replaces the db_appexit,
-lock_close, log_close, memp_close and txn_close calls. The
-<a href="../../api_c/env_remove.html">DBENV-&gt;remove</a> call replaces the lock_unlink, log_unlink,
-memp_unlink and txn_unlink calls.
-<p>Here's an example creating a Berkeley DB environment using the 2.X interface:
-<p><blockquote><pre>/*
- * db_init --
- * Initialize the environment.
- */
-DB_ENV *
-db_init(home)
- char *home;
-{
- DB_ENV *dbenv;
-<p>
- if ((dbenv = (DB_ENV *)calloc(sizeof(DB_ENV), 1)) == NULL)
- return (errno);
-<p>
- if ((errno = db_appinit(home, NULL, dbenv,
- DB_INIT_LOCK | DB_INIT_LOG | DB_INIT_MPOOL | DB_INIT_TXN |
- DB_USE_ENVIRON)) == 0)
- return (dbenv);
-<p>
- free(dbenv);
- return (NULL);
-}</pre></blockquote>
-<p>In the Berkeley DB 3.0 release, this code would be written as:
-<p><blockquote><pre>/*
- * db_init --
- * Initialize the environment.
- */
-int
-db_init(home, dbenvp)
- char *home;
- DB_ENV **dbenvp;
-{
- int ret;
- DB_ENV *dbenv;
-<p>
- if ((ret = db_env_create(&dbenv, 0)) != 0)
- return (ret);
-<p>
- if ((ret = dbenv-&gt;open(dbenv, home, NULL,
- DB_INIT_LOCK | DB_INIT_LOG | DB_INIT_MPOOL | DB_INIT_TXN |
- DB_USE_ENVIRON, 0)) == 0) {
- *dbenvp = dbenv;
- return (0);
- }
-<p>
- (void)dbenv-&gt;close(dbenv, 0);
- return (ret);
-}</pre></blockquote>
-<p>As you can see, the arguments to db_appinit and to <a href="../../api_c/env_open.html">DBENV-&gt;open</a> are
-largely the same. There is some minor re-organization: the mapping is
-that arguments #1, 2, 3, and 4 to db_appinit become arguments #2, 3, 1
-and 4 to <a href="../../api_c/env_open.html">DBENV-&gt;open</a>. There is one additional argument to
-<a href="../../api_c/env_open.html">DBENV-&gt;open</a>, argument #5. For backward compatibility with the 2.X
-Berkeley DB releases, simply set that argument to 0.
-<p>It is only slightly more complex to translate calls to XXX_open to the
-<a href="../../api_c/env_open.html">DBENV-&gt;open</a> method. Here's an example of creating a lock region
-using the 2.X interface:
-<p><blockquote><pre>lock_open(dir, DB_CREATE, 0664, dbenv, &regionp);</pre></blockquote>
-<p>In the Berkeley DB 3.0 release, this code would be written as:
-<p><blockquote><pre>if ((ret = db_env_create(&dbenv, 0)) != 0)
- return (ret);
-<p>
-if ((ret = dbenv-&gt;open(dbenv,
- dir, NULL, DB_CREATE | DB_INIT_LOCK, 0664)) == 0) {
- *dbenvp = dbenv;
- return (0);
-}</pre></blockquote>
-<p>Note that in this example, you no longer need the DB_LOCKTAB structure
-reference that was required in Berkeley DB 2.X releases.
-<p>The final issue with upgrading the db_appinit call is the DB_MPOOL_PRIVATE
-option previously provided for the db_appinit interface. If your
-application is using this flag, it should almost certainly use the new
-<a href="../../api_c/env_open.html#DB_PRIVATE">DB_PRIVATE</a> flag to the <a href="../../api_c/env_open.html">DBENV-&gt;open</a> interface. Regardless,
-you should carefully consider this change before converting to use the
-<a href="../../api_c/env_open.html#DB_PRIVATE">DB_PRIVATE</a> flag.
-<p>Translating db_appexit or XXX_close calls to <a href="../../api_c/env_close.html">DBENV-&gt;close</a> is equally
-simple. Instead of taking a reference to a per-subsystem structure such
-as DB_LOCKTAB or DB_TXNMGR, all calls take a reference to a DB_ENV
-structure. The calling sequence is otherwise unchanged. Note that as
-the application no longer allocates the memory for the DB_ENV structure,
-application code to discard it after the call to db_appexit() is no longer
-needed.
-<p>Translating XXX_unlink calls to <a href="../../api_c/env_remove.html">DBENV-&gt;remove</a> is slightly more complex.
-As with <a href="../../api_c/env_close.html">DBENV-&gt;close</a>, the call takes a reference to a DB_ENV
-structure instead of a per-subsystem structure. The calling sequence is
-slightly different, however. Here is an example of removing a lock region
-using the 2.X interface:
-<p><blockquote><pre>DB_ENV *dbenv;
-<p>
-ret = lock_unlink(dir, 1, dbenv);</pre></blockquote>
-<p>In the Berkeley DB 3.0 release, this code fragment would be written as:
-<p><blockquote><pre>DB_ENV *dbenv;
-<p>
-ret = dbenv-&gt;remove(dbenv, dir, NULL, DB_FORCE);</pre></blockquote>
-<p>The additional argument to the <a href="../../api_c/env_remove.html">DBENV-&gt;remove</a> function is a
-configuration argument similar to that previously taken by db_appinit and
-now taken by the <a href="../../api_c/env_open.html">DBENV-&gt;open</a> method. For backward compatibility
-this new argument should simply be set to NULL. The force argument to
-XXX_unlink is now a flag value that is set by bitwise inclusively <b>OR</b>'ing it the
-<a href="../../api_c/env_remove.html">DBENV-&gt;remove</a> flag argument.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.0/intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/func.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.0/func.html b/bdb/docs/ref/upgrade.3.0/func.html
deleted file mode 100644
index b6f7d816b49..00000000000
--- a/bdb/docs/ref/upgrade.3.0/func.html
+++ /dev/null
@@ -1,69 +0,0 @@
-<!--$Id: func.so,v 11.8 2000/03/18 21:43:20 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.0: function arguments</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.0/envopen.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/dbenv.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.0: function arguments</h1>
-<p>In Berkeley DB 3.0, there are no longer separate structures that
-represent each subsystem (e.g., DB_LOCKTAB or DB_TXNMGR), and an overall
-DB_ENV environment structure. Instead there is only the
-DB_ENV structure. This means that DB_ENV references should
-be passed around by your application instead of passing around DB_LOCKTAB
-or DB_TXNMGR references.
-<p>Each of the following functions:
-<p><blockquote><pre>lock_detect
-lock_get
-lock_id
-lock_put
-lock_stat
-lock_vec</pre></blockquote>
-<p>should have its first argument, a reference to the DB_LOCKTAB structure,
-replaced with a reference to the enclosing DB_ENV structure. For
-example, the following line of code from a Berkeley DB 2.X application:
-<p><blockquote><pre>DB_LOCKTAB *lt;
-DB_LOCK lock;
- ret = lock_put(lt, lock);</pre></blockquote>
-<p>should now be written as follows:
-<p><blockquote><pre>DB_ENV *dbenv;
-DB_LOCK *lock;
- ret = lock_put(dbenv, lock);</pre></blockquote>
-<p>Similarly, all of the functions:
-<p><blockquote><pre>log_archive
-log_compare
-log_file
-log_flush
-log_get
-log_put
-log_register
-log_stat
-log_unregister</pre></blockquote>
-<p>should have their DB_LOG argument replaced with a reference to a
-DB_ENV structure, and the functions:
-<p><blockquote><pre>memp_fopen
-memp_register
-memp_stat
-memp_sync
-memp_trickle</pre></blockquote>
-<p>should have their DB_MPOOL argument replaced with a reference to a
-DB_ENV structure.
-<p>You should remove all references to DB_LOCKTAB, DB_LOG, DB_MPOOL, and
-DB_TXNMGR structures from your application, they are no longer useful
-in any way. In fact, a simple way to identify all of the places that
-need to be upgraded is to remove all such structures and variables
-they declare, and then compile. You will see a warning message from
-your compiler in each case that needs to be upgraded.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.0/envopen.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/dbenv.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.0/intro.html b/bdb/docs/ref/upgrade.3.0/intro.html
deleted file mode 100644
index a74e40f4ee7..00000000000
--- a/bdb/docs/ref/upgrade.3.0/intro.html
+++ /dev/null
@@ -1,26 +0,0 @@
-<!--$Id: intro.so,v 11.6 2000/03/18 21:43:20 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.0: introduction</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.2.0/disk.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/envopen.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.0: introduction</h1>
-<p>The following pages describe how to upgrade applications coded against
-the Berkeley DB 2.X release interfaces to the Berkeley DB 3.0 release interfaces.
-This information does not describe how to upgrade Berkeley DB 1.85 release
-applications.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.2.0/disk.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/envopen.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.0/java.html b/bdb/docs/ref/upgrade.3.0/java.html
deleted file mode 100644
index 3997095bc96..00000000000
--- a/bdb/docs/ref/upgrade.3.0/java.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!--$Id: java.so,v 11.8 2000/12/01 18:33:56 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.0: additional Java changes</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.0/cxx.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/disk.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.0: additional Java changes</h1>
-<p>There are several additional types of exceptions thrown in the Berkeley DB 3.0
-Java API.
-<p>DbMemoryException and DbDeadlockException can be caught independently of
-DbException if you want to do special handling for these kinds of errors.
-Since they are subclassed from DbException, a try block that catches
-DbException will catch these also, so code is not required to change.
-The catch clause for these new exceptions should appear before the catch
-clause for DbException.
-<p>You will need to add a catch clause for java.io.FileNotFoundException,
-since that can be thrown by the <a href="../../api_java/db_open.html">Db.open</a> and <a href="../../api_java/env_open.html">DbEnv.open</a> functions.
-<p>There are a number of smaller changes to the API that bring the C, C++
-and Java APIs much closer in terms of functionality and usage. Please
-refer to the pages for upgrading C applications for further details.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.0/cxx.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/disk.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.0/join.html b/bdb/docs/ref/upgrade.3.0/join.html
deleted file mode 100644
index 82c9019fa1b..00000000000
--- a/bdb/docs/ref/upgrade.3.0/join.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!--$Id: join.so,v 11.9 2000/07/25 16:59:36 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.0: DB-&gt;join</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.0/dbinfo.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/stat.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.0: DB-&gt;join</h1>
-<p>Historically, the last two arguments to the Berkeley DB <a href="../../api_c/db_join.html">DB-&gt;join</a>
-interface were a flags value followed by a reference to a memory location
-to store the returned cursor object. In the Berkeley DB 3.0 release, the
-order of those two arguments has been swapped for consistency with other
-Berkeley DB interfaces.
-<p>The application should be searched for any occurrences of <a href="../../api_c/db_join.html">DB-&gt;join</a>.
-For each of these, the order of the last two arguments should be swapped.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.0/dbinfo.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/stat.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.0/jump_set.html b/bdb/docs/ref/upgrade.3.0/jump_set.html
deleted file mode 100644
index c93e7270ee6..00000000000
--- a/bdb/docs/ref/upgrade.3.0/jump_set.html
+++ /dev/null
@@ -1,48 +0,0 @@
-<!--$Id: jump_set.so,v 11.6 2000/03/18 21:43:20 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.0: db_jump_set</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.0/eacces.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/value_set.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.0: db_jump_set</h1>
-<p>The db_jump_set interface has been removed from the Berkeley DB 3.0 release,
-replaced by method calls on the DB_ENV handle.
-<p>The following table lists the db_jump_set arguments previously used by
-applications and the methods that should now be used instead.
-<p><table border=1 align=center>
-<tr><th>db_jump_set argument</th><th>Berkeley DB 3.X method</th></tr>
-<tr><td>DB_FUNC_CLOSE</td><td><a href="../../api_c/set_func_close.html">db_env_set_func_close</a></td></tr>
-<tr><td>DB_FUNC_DIRFREE</td><td><a href="../../api_c/set_func_dirfree.html">db_env_set_func_dirfree</a></td></tr>
-<tr><td>DB_FUNC_DIRLIST</td><td><a href="../../api_c/set_func_dirlist.html">db_env_set_func_dirlist</a></td></tr>
-<tr><td>DB_FUNC_EXISTS</td><td><a href="../../api_c/set_func_exists.html">db_env_set_func_exists</a></td></tr>
-<tr><td>DB_FUNC_FREE</td><td><a href="../../api_c/set_func_free.html">db_env_set_func_free</a></td></tr>
-<tr><td>DB_FUNC_FSYNC</td><td><a href="../../api_c/set_func_fsync.html">db_env_set_func_fsync</a></td></tr>
-<tr><td>DB_FUNC_IOINFO</td><td><a href="../../api_c/set_func_ioinfo.html">db_env_set_func_ioinfo</a></td></tr>
-<tr><td>DB_FUNC_MALLOC</td><td><a href="../../api_c/set_func_malloc.html">db_env_set_func_malloc</a></td></tr>
-<tr><td>DB_FUNC_MAP</td><td><a href="../../api_c/set_func_map.html">db_env_set_func_map</a></td></tr>
-<tr><td>DB_FUNC_OPEN</td><td><a href="../../api_c/set_func_open.html">db_env_set_func_open</a></td></tr>
-<tr><td>DB_FUNC_READ</td><td><a href="../../api_c/set_func_read.html">db_env_set_func_read</a></td></tr>
-<tr><td>DB_FUNC_REALLOC</td><td><a href="../../api_c/set_func_realloc.html">db_env_set_func_realloc</a></td></tr>
-<tr><td>DB_FUNC_RUNLINK</td><td>The DB_FUNC_RUNLINK functionality has been removed from the Berkeley DB
-3.0 release, and should be removed from the application.</td></tr>
-<tr><td>DB_FUNC_SEEK</td><td><a href="../../api_c/set_func_seek.html">db_env_set_func_seek</a></td></tr>
-<tr><td>DB_FUNC_SLEEP</td><td><a href="../../api_c/set_func_sleep.html">db_env_set_func_sleep</a></td></tr>
-<tr><td>DB_FUNC_UNLINK</td><td><a href="../../api_c/set_func_unlink.html">db_env_set_func_unlink</a></td></tr>
-<tr><td>DB_FUNC_UNMAP</td><td><a href="../../api_c/set_func_unmap.html">db_env_set_func_unmap</a></td></tr>
-<tr><td>DB_FUNC_WRITE</td><td><a href="../../api_c/set_func_write.html">db_env_set_func_write</a></td></tr>
-<tr><td>DB_FUNC_YIELD</td><td><a href="../../api_c/set_func_yield.html">db_env_set_func_yield</a></td></tr>
-</table>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.0/eacces.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/value_set.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.0/lock_detect.html b/bdb/docs/ref/upgrade.3.0/lock_detect.html
deleted file mode 100644
index 4ff00a8a6b0..00000000000
--- a/bdb/docs/ref/upgrade.3.0/lock_detect.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<!--$Id: lock_detect.so,v 11.8 2000/07/25 16:59:36 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.0: lock_detect</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.0/lock_put.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/lock_stat.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.0: lock_detect</h1>
-<p>An additional argument has been added to the <a href="../../api_c/lock_detect.html">lock_detect</a> interface.
-<p>The application should be searched for any occurrences of <a href="../../api_c/lock_detect.html">lock_detect</a>.
-For each one, a NULL argument should be appended to the current arguments.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.0/lock_put.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/lock_stat.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.0/lock_notheld.html b/bdb/docs/ref/upgrade.3.0/lock_notheld.html
deleted file mode 100644
index 3f11738563e..00000000000
--- a/bdb/docs/ref/upgrade.3.0/lock_notheld.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!--$Id: lock_notheld.so,v 11.7 2000/12/01 17:58:21 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.0: DB_LOCK_NOTHELD</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.0/rmw.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/eagain.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.0: DB_LOCK_NOTHELD</h1>
-<p>Historically, the Berkeley DB <a href="../../api_c/lock_put.html">lock_put</a> and <a href="../../api_c/lock_vec.html">lock_vec</a> interfaces
-could return the DB_LOCK_NOTHELD error to indicate that a lock could
-not be released as it was held by another locker. This error can no
-longer be returned under any circumstances. The application should be
-searched for any occurrences of DB_LOCK_NOTHELD. For each of these,
-the test and any error processing should be removed.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.0/rmw.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/eagain.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.0/lock_put.html b/bdb/docs/ref/upgrade.3.0/lock_put.html
deleted file mode 100644
index d6057f8e291..00000000000
--- a/bdb/docs/ref/upgrade.3.0/lock_put.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<!--$Id: lock_put.so,v 11.8 2000/07/25 16:59:36 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.0: lock_put</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.0/close.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/lock_detect.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.0: lock_put</h1>
-<p>An argument change has been made in the <a href="../../api_c/lock_put.html">lock_put</a> interface.
-<p>The application should be searched for any occurrences of <a href="../../api_c/lock_put.html">lock_put</a>.
-For each one, instead of passing a DB_LOCK variable as the last argument
-to the function, the address of the DB_LOCK variable should be passed.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.0/close.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/lock_detect.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.0/lock_stat.html b/bdb/docs/ref/upgrade.3.0/lock_stat.html
deleted file mode 100644
index 80504db3bdf..00000000000
--- a/bdb/docs/ref/upgrade.3.0/lock_stat.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<!--$Id: lock_stat.so,v 11.3 2000/07/25 16:59:36 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.0: lock_stat</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.0/lock_detect.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/log_register.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.0: lock_stat</h1>
-<p>The <b>st_magic</b>, <b>st_version</b>, <b>st_numobjs</b> and
-<b>st_refcnt</b> fields returned from the <a href="../../api_c/lock_stat.html">lock_stat</a> interface
-have been removed, and this information is no longer available.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.0/lock_detect.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/log_register.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.0/log_register.html b/bdb/docs/ref/upgrade.3.0/log_register.html
deleted file mode 100644
index 3a856275ff0..00000000000
--- a/bdb/docs/ref/upgrade.3.0/log_register.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<!--$Id: log_register.so,v 11.8 2000/07/25 16:59:36 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.0: log_register</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.0/lock_stat.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/log_stat.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.0: log_register</h1>
-<p>An argument has been removed from the <a href="../../api_c/log_register.html">log_register</a> interface.
-The application should be searched for any occurrences of
-<a href="../../api_c/log_register.html">log_register</a>. In each of these, the DBTYPE argument (it is the
-fourth argument) should be removed.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.0/lock_stat.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/log_stat.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.0/log_stat.html b/bdb/docs/ref/upgrade.3.0/log_stat.html
deleted file mode 100644
index 8c023bfe26f..00000000000
--- a/bdb/docs/ref/upgrade.3.0/log_stat.html
+++ /dev/null
@@ -1,23 +0,0 @@
-<!--$Id: log_stat.so,v 11.3 2000/07/25 16:59:36 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.0: log_stat</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.0/log_register.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/memp_stat.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.0: log_stat</h1>
-<p>The <b>st_refcnt</b> field returned from the <a href="../../api_c/log_stat.html">log_stat</a> interface
-has been removed, and this information is no longer available.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.0/log_register.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/memp_stat.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.0/memp_stat.html b/bdb/docs/ref/upgrade.3.0/memp_stat.html
deleted file mode 100644
index ff61fa745d6..00000000000
--- a/bdb/docs/ref/upgrade.3.0/memp_stat.html
+++ /dev/null
@@ -1,26 +0,0 @@
-<!--$Id: memp_stat.so,v 11.3 2000/07/25 16:59:36 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.0: memp_stat</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.0/log_stat.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/txn_begin.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.0: memp_stat</h1>
-<p>The <b>st_refcnt</b> field returned from the <a href="../../api_c/memp_stat.html">memp_stat</a> interface
-has been removed, and this information is no longer available.
-<p>The <b>st_cachesize</b> field returned from the <a href="../../api_c/memp_stat.html">memp_stat</a>
-interface has been replaced with two new fields, <b>st_gbytes</b> and
-<b>st_bytes</b>.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.0/log_stat.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/txn_begin.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.0/open.html b/bdb/docs/ref/upgrade.3.0/open.html
deleted file mode 100644
index 3730ab4749d..00000000000
--- a/bdb/docs/ref/upgrade.3.0/open.html
+++ /dev/null
@@ -1,65 +0,0 @@
-<!--$Id: open.so,v 11.10 2000/03/18 21:43:21 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.0: database open/close</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.0/dbenv.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/xa.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.0: database open/close</h1>
-<p>Database opens were changed in the Berkeley DB 3.0 release in a similar way to
-environment opens.
-<p>To upgrade your application, first find each place your application opens
-a database, that is, calls the db_open function. Each of these calls
-should be replaced with calls to <a href="../../api_c/db_create.html">db_create</a> and <a href="../../api_c/db_open.html">DB-&gt;open</a>.
-<p>Here's an example creating a Berkeley DB database using the 2.X interface:
-<p><blockquote><pre>DB *dbp;
-DB_ENV *dbenv;
-int ret;
-<p>
-if ((ret = db_open(DATABASE,
- DB_BTREE, DB_CREATE, 0664, dbenv, NULL, &dbp)) != 0)
- return (ret);</pre></blockquote>
-<p>In the Berkeley DB 3.0 release, this code would be written as:
-<p><blockquote><pre>DB *dbp;
-DB_ENV *dbenv;
-int ret;
-<p>
-if ((ret = db_create(&dbp, dbenv, 0)) != 0)
- return (ret);
-<p>
-if ((ret = dbp-&gt;open(dbp,
- DATABASE, NULL, DB_BTREE, DB_CREATE, 0664)) != 0) {
- (void)dbp-&gt;close(dbp, 0);
- return (ret);
-}</pre></blockquote>
-<p>As you can see, the arguments to db_open and to <a href="../../api_c/db_open.html">DB-&gt;open</a> are
-largely the same. There is some re-organization, and note that the
-enclosing DB_ENV structure is specified when the DB object
-is created using the <a href="../../api_c/db_create.html">db_create</a> interface. There is one
-additional argument to <a href="../../api_c/db_open.html">DB-&gt;open</a>, argument #3. For backward
-compatibility with the 2.X Berkeley DB releases, simply set that argument to
-NULL.
-<p>There are two additional issues with the db_open call.
-<p>First, it was possible in the 2.X releases for an application to provide
-an environment that did not contain a shared memory buffer pool as the
-database environment, and Berkeley DB would create a private one automatically.
-This functionality is no longer available, applications must specify the
-<a href="../../api_c/env_open.html#DB_INIT_MPOOL">DB_INIT_MPOOL</a> flag if databases are going to be opened in the
-environment.
-<p>The final issue with upgrading the db_open call is that the DB_INFO
-structure is no longer used, having been replaced by individual methods
-on the DB handle. That change is discussed in detail later in
-this chapter.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.0/dbenv.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/xa.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.0/rmw.html b/bdb/docs/ref/upgrade.3.0/rmw.html
deleted file mode 100644
index a1a30da5ecf..00000000000
--- a/bdb/docs/ref/upgrade.3.0/rmw.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<!--$Id: rmw.so,v 11.9 2000/03/18 21:43:21 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.0: DB_RMW</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.0/txn_stat.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/lock_notheld.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.0: DB_RMW</h1>
-<p>The following change applies only to applications using the
-Berkeley DB Concurrent Data Store product. If your application is not using that product,
-you can ignore this change.
-<p>Historically, the Berkeley DB <a href="../../api_c/db_cursor.html">DB-&gt;cursor</a> interface took the DB_RMW flag
-to indicate that the created cursor would be used for write operations on
-the database. This flag has been renamed to the <a href="../../api_c/db_cursor.html#DB_WRITECURSOR">DB_WRITECURSOR</a>
-flag.
-<p>The application should be searched for any occurrences of DB_RMW. For
-each of these, any that are arguments to the <a href="../../api_c/db_cursor.html">DB-&gt;cursor</a> function
-should be changed to pass in the <a href="../../api_c/db_cursor.html#DB_WRITECURSOR">DB_WRITECURSOR</a> flag instead.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.0/txn_stat.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/lock_notheld.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.0/stat.html b/bdb/docs/ref/upgrade.3.0/stat.html
deleted file mode 100644
index 735e235d9cd..00000000000
--- a/bdb/docs/ref/upgrade.3.0/stat.html
+++ /dev/null
@@ -1,24 +0,0 @@
-<!--$Id: stat.so,v 11.3 2000/07/25 16:59:36 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.0: DB-&gt;stat</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.0/join.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/close.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.0: DB-&gt;stat</h1>
-<p>The <b>bt_flags</b> field returned from the <a href="../../api_c/db_stat.html">DB-&gt;stat</a> interface
-for Btree and Recno databases has been removed, and this information is
-no longer available.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.0/join.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/close.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.0/toc.html b/bdb/docs/ref/upgrade.3.0/toc.html
deleted file mode 100644
index 189d7c0a657..00000000000
--- a/bdb/docs/ref/upgrade.3.0/toc.html
+++ /dev/null
@@ -1,47 +0,0 @@
-<!--$Id: toc.so,v 11.2 2000/12/05 20:36:26 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Upgrading Berkeley DB 2.X.X applications to Berkeley DB 3.0</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<h1 align=center>Upgrading Berkeley DB 2.X.X applications to Berkeley DB 3.0</h1>
-<ol>
-<li><a href="intro.html">Release 3.0: introduction</a>
-<li><a href="envopen.html">Release 3.0: environment open/close/unlink</a>
-<li><a href="func.html">Release 3.0: function arguments</a>
-<li><a href="dbenv.html">Release 3.0: the DB_ENV structure</a>
-<li><a href="open.html">Release 3.0: database open/close</a>
-<li><a href="xa.html">Release 3.0: db_xa_open</a>
-<li><a href="db.html">Release 3.0: the DB structure</a>
-<li><a href="dbinfo.html">Release 3.0: the DBINFO structure</a>
-<li><a href="join.html">Release 3.0: DB-&gt;join</a>
-<li><a href="stat.html">Release 3.0: DB-&gt;stat</a>
-<li><a href="close.html">Release 3.0: DB-&gt;sync and DB-&gt;close</a>
-<li><a href="lock_put.html">Release 3.0: lock_put</a>
-<li><a href="lock_detect.html">Release 3.0: lock_detect</a>
-<li><a href="lock_stat.html">Release 3.0: lock_stat</a>
-<li><a href="log_register.html">Release 3.0: log_register</a>
-<li><a href="log_stat.html">Release 3.0: log_stat</a>
-<li><a href="memp_stat.html">Release 3.0: memp_stat</a>
-<li><a href="txn_begin.html">Release 3.0: txn_begin</a>
-<li><a href="txn_commit.html">Release 3.0: txn_commit</a>
-<li><a href="txn_stat.html">Release 3.0: txn_stat</a>
-<li><a href="rmw.html">Release 3.0: DB_RMW</a>
-<li><a href="lock_notheld.html">Release 3.0: DB_LOCK_NOTHELD</a>
-<li><a href="eagain.html">Release 3.0: EAGAIN</a>
-<li><a href="eacces.html">Release 3.0: EACCES</a>
-<li><a href="jump_set.html">Release 3.0: db_jump_set</a>
-<li><a href="value_set.html">Release 3.0: db_value_set</a>
-<li><a href="dbenv_cxx.html">Release 3.0: the DbEnv class for C++ and Java</a>
-<li><a href="db_cxx.html">Release 3.0: the Db class for C++ and Java</a>
-<li><a href="cxx.html">Release 3.0: additional C++ changes</a>
-<li><a href="java.html">Release 3.0: additional Java changes</a>
-<li><a href="disk.html">Release 3.0: upgrade requirements</a>
-</ol>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.0/txn_begin.html b/bdb/docs/ref/upgrade.3.0/txn_begin.html
deleted file mode 100644
index 3fb9a6527d4..00000000000
--- a/bdb/docs/ref/upgrade.3.0/txn_begin.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<!--$Id: txn_begin.so,v 11.7 2000/07/25 16:59:36 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.0: txn_begin</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.0/memp_stat.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/txn_commit.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.0: txn_begin</h1>
-<p>An additional argument has been added to the <a href="../../api_c/txn_begin.html">txn_begin</a> interface.
-<p>The application should be searched for any occurrences of
-<a href="../../api_c/txn_begin.html">txn_begin</a>. For each one, an argument of 0 should be appended to
-the current arguments.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.0/memp_stat.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/txn_commit.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.0/txn_commit.html b/bdb/docs/ref/upgrade.3.0/txn_commit.html
deleted file mode 100644
index 8090b1e3b84..00000000000
--- a/bdb/docs/ref/upgrade.3.0/txn_commit.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<!--$Id: txn_commit.so,v 11.8 2000/07/25 16:59:36 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.0: txn_commit</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.0/txn_begin.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/txn_stat.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.0: txn_commit</h1>
-<p>An additional argument has been added to the <a href="../../api_c/txn_commit.html">txn_commit</a> interface.
-<p>The application should be searched for any occurrences of
-<a href="../../api_c/txn_commit.html">txn_commit</a>. For each one, an argument of 0 should be appended to
-the current arguments.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.0/txn_begin.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/txn_stat.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.0/txn_stat.html b/bdb/docs/ref/upgrade.3.0/txn_stat.html
deleted file mode 100644
index d965494d5ef..00000000000
--- a/bdb/docs/ref/upgrade.3.0/txn_stat.html
+++ /dev/null
@@ -1,23 +0,0 @@
-<!--$Id: txn_stat.so,v 11.3 2000/07/25 16:59:36 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.0: txn_stat</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.0/txn_commit.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/rmw.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.0: txn_stat</h1>
-<p>The <b>st_refcnt</b> field returned from the <a href="../../api_c/txn_stat.html">txn_stat</a> interface
-has been removed, and this information is no longer available.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.0/txn_commit.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/rmw.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.0/value_set.html b/bdb/docs/ref/upgrade.3.0/value_set.html
deleted file mode 100644
index 66070b09fd6..00000000000
--- a/bdb/docs/ref/upgrade.3.0/value_set.html
+++ /dev/null
@@ -1,41 +0,0 @@
-<!--$Id: value_set.so,v 11.6 2000/03/18 21:43:21 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.0: db_value_set</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.0/jump_set.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/dbenv_cxx.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.0: db_value_set</h1>
-<p>The db_value_set interface has been removed from the Berkeley DB 3.0 release,
-replaced by method calls on the DB_ENV handle.
-<p>The following table lists the db_value_set arguments previously used by
-applications and the methods that should now be used instead.
-<p><table border=1 align=center>
-<tr><th>db_value_set argument</th><th>Berkeley DB 3.X method</th></tr>
-<tr><td>DB_MUTEX_LOCKS</td><td><a href="../../api_c/env_set_mutexlocks.html">DBENV-&gt;set_mutexlocks</a></td></tr>
-<tr><td>DB_REGION_ANON</td><td>The DB_REGION_ANON functionality has
-been replaced by the <a href="../../api_c/env_open.html#DB_SYSTEM_MEM">DB_SYSTEM_MEM</a> and <a href="../../api_c/env_open.html#DB_PRIVATE">DB_PRIVATE</a> flags
-to the <a href="../../api_c/env_open.html">DBENV-&gt;open</a> function. A direct translation is not
-available, please review the <a href="../../api_c/env_open.html">DBENV-&gt;open</a> manual page for more
-information.</td></tr>
-<tr><td>DB_REGION_INIT</td><td><a href="../../api_c/env_set_region_init.html">db_env_set_region_init</a></td></tr>
-<tr><td>DB_REGION_NAME</td><td>The DB_REGION_NAME functionality has
-been replaced by the <a href="../../api_c/env_open.html#DB_SYSTEM_MEM">DB_SYSTEM_MEM</a> and <a href="../../api_c/env_open.html#DB_PRIVATE">DB_PRIVATE</a> flags
-to the <a href="../../api_c/env_open.html">DBENV-&gt;open</a> function. A direct translation is not
-available, please review the <a href="../../api_c/env_open.html">DBENV-&gt;open</a> manual page for more
-information.</td></tr>
-<tr><td>DB_TSL_SPINS</td><td><a href="../../api_c/env_set_tas_spins.html">db_env_set_tas_spins</a></td></tr>
-</table>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.0/jump_set.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/dbenv_cxx.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.0/xa.html b/bdb/docs/ref/upgrade.3.0/xa.html
deleted file mode 100644
index 41f5a993d23..00000000000
--- a/bdb/docs/ref/upgrade.3.0/xa.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!--$Id: xa.so,v 11.7 2000/03/18 21:43:21 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.0: db_xa_open</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.0/open.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/db.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.0: db_xa_open</h1>
-<p>The following change applies only to applications using Berkeley DB as an XA
-Resource Manager. If your application is not using Berkeley DB in this way,
-you can ignore this change.
-<p>The db_xa_open function has been replaced with the <a href="../../api_c/db_create.html#DB_XA_CREATE">DB_XA_CREATE</a>
-flag to the <a href="../../api_c/db_create.html">db_create</a> function. All calls to db_xa_open should
-be replaced with calls to <a href="../../api_c/db_create.html">db_create</a> with the <a href="../../api_c/db_create.html#DB_XA_CREATE">DB_XA_CREATE</a>
-flag set, followed by a call to the <a href="../../api_c/db_open.html">DB-&gt;open</a> function.
-<p>A similar change has been made for the C++ API, where the
-<a href="../../api_c/db_create.html#DB_XA_CREATE">DB_XA_CREATE</a> flag should be specified to the Db constructor. All
-calls to the Db::xa_open method should be replaced with the
-<a href="../../api_c/db_create.html#DB_XA_CREATE">DB_XA_CREATE</a> flag to the Db constructor, followed by a call to
-the DB::open method.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.0/open.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.0/db.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.1/btstat.html b/bdb/docs/ref/upgrade.3.1/btstat.html
deleted file mode 100644
index e5d7c4bb5d5..00000000000
--- a/bdb/docs/ref/upgrade.3.1/btstat.html
+++ /dev/null
@@ -1,50 +0,0 @@
-<!--$Id: btstat.so,v 1.11 2000/07/25 16:59:36 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.1: DB-&gt;stat</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.1/dup.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.1/sysmem.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.1: DB-&gt;stat</h1>
-<p>For Btree database statistics, the <a href="../../api_c/db_stat.html">DB-&gt;stat</a> interface field
-<b>bt_nrecs</b> has been removed, replaced by two fields:
-<b>bt_nkeys</b> and <b>bt_ndata</b>. The <b>bt_nkeys</b> field returns
-a count of the unique keys in the database. The <b>bt_ndata</b> field
-returns a count of the key/data pairs in the database. Neither exactly
-matches the previous value of the <b>bt_nrecs</b> field, which returned
-a count of keys in the database, but, in the case of Btree databases,
-could overcount as it sometimes counted duplicate data items as unique
-keys. The application should be searched for any uses of the
-<b>bt_nrecs</b> field and the field should be changed to be either
-<b>bt_nkeys</b> or <b>bt_ndata</b>, whichever is more appropriate.
-<p>For Hash database statistics, the <a href="../../api_c/db_stat.html">DB-&gt;stat</a> interface field
-<b>hash_nrecs</b> has been removed, replaced by two fields:
-<b>hash_nkeys</b> and <b>hash_ndata</b>. The <b>hash_nkeys</b> field
-returns a count of the unique keys in the database. The
-<b>hash_ndata</b> field returns a count of the key/data pairs in the
-database. The new <b>hash_nkeys</b> field exactly matches the previous
-value of the <b>hash_nrecs</b> field. The application should be searched
-for any uses of the <b>hash_nrecs</b> field, and the field should be
-changed to be <b>hash_nkeys</b>.
-<p>For Queue database statistics, the <a href="../../api_c/db_stat.html">DB-&gt;stat</a> interface field
-<b>qs_nrecs</b> has been removed, replaced by two fields:
-<b>qs_nkeys</b> and <b>qs_ndata</b>. The <b>qs_nkeys</b> field returns
-a count of the unique keys in the database. The <b>qs_ndata</b> field
-returns a count of the key/data pairs in the database. The new
-<b>qs_nkeys</b> field exactly matches the previous value of the
-<b>qs_nrecs</b> field. The application should be searched for any uses
-of the <b>qs_nrecs</b> field, and the field should be changed to be
-<b>qs_nkeys</b>.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.1/dup.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.1/sysmem.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.1/config.html b/bdb/docs/ref/upgrade.3.1/config.html
deleted file mode 100644
index 29a53363eaf..00000000000
--- a/bdb/docs/ref/upgrade.3.1/config.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!--$Id: config.so,v 1.3 2000/07/25 16:59:36 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.1: DBENV-&gt;open, DBENV-&gt;remove</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.1/intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.1/set_tx_recover.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.1: DBENV-&gt;open, DBENV-&gt;remove</h1>
-<p>In the Berkeley DB 3.1 release, the <b>config</b> argument to the
-<a href="../../api_c/env_open.html">DBENV-&gt;open</a>, <a href="../../api_c/env_remove.html">DBENV-&gt;remove</a> methods has been removed,
-replaced by additional methods on the DB_ENV handle. If your
-application calls <a href="../../api_c/env_open.html">DBENV-&gt;open</a> or <a href="../../api_c/env_remove.html">DBENV-&gt;remove</a> with a NULL
-<b>config</b> argument, find those functions and remove the config
-argument from the call. If your application has non-NULL <b>config</b>
-argument, the strings values in that argument are replaced with calls to
-DB_ENV methods as follows:
-<p><table border=1 align=center>
-<tr><th>Previous config string</th><th>Berkeley DB 3.1 version method</th></tr>
-<tr><td>DB_DATA_DIR</td><td><a href="../../api_c/env_set_data_dir.html">DBENV-&gt;set_data_dir</a></td></tr>
-<tr><td>DB_LOG_DIR</td><td><a href="../../api_c/env_set_lg_dir.html">DBENV-&gt;set_lg_dir</a></td></tr>
-<tr><td>DB_TMP_DIR</td><td><a href="../../api_c/env_set_tmp_dir.html">DBENV-&gt;set_tmp_dir</a></td></tr>
-</table>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.1/intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.1/set_tx_recover.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.1/disk.html b/bdb/docs/ref/upgrade.3.1/disk.html
deleted file mode 100644
index cbaa3342b5f..00000000000
--- a/bdb/docs/ref/upgrade.3.1/disk.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!--$Id: disk.so,v 1.9 2000/12/21 18:37:09 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.1: upgrade requirements</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.1/logalloc.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.2/intro.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.1: upgrade requirements</h1>
-<p>Log file formats and the Btree, Queue, Recno and Hash Access Method
-database formats changed in the Berkeley DB 3.1 release. (The on-disk
-Btree/Recno format changed from version 7 to version 8. The on-disk
-Hash format changed from version 6 to version 7. The on-disk Queue
-format changed from version 1 to version 2.) Until the underlying
-databases are upgraded, the <a href="../../api_c/db_open.html">DB-&gt;open</a> function will return a
-<a href="../../api_c/db_open.html#DB_OLD_VERSION">DB_OLD_VERSION</a> error.
-<p>An additional flag, <a href="../../api_c/db_set_flags.html#DB_DUPSORT">DB_DUPSORT</a>, has been added to the
-<a href="../../api_c/db_upgrade.html">DB-&gt;upgrade</a> function for this upgrade. Please review the
-<a href="../../api_c/db_upgrade.html">DB-&gt;upgrade</a> documentation for further information.
-<p>For further information on upgrading Berkeley DB installations, see
-<a href="../../ref/upgrade/process.html">Upgrading Berkeley DB
-installations</a>.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.1/logalloc.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.2/intro.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.1/dup.html b/bdb/docs/ref/upgrade.3.1/dup.html
deleted file mode 100644
index 33f71ebb418..00000000000
--- a/bdb/docs/ref/upgrade.3.1/dup.html
+++ /dev/null
@@ -1,31 +0,0 @@
-<!--$Id: dup.so,v 1.1 2000/05/31 18:53:28 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.1: identical duplicate data items</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.1/put.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.1/btstat.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.1: identical duplicate data items</h1>
-<p>In previous releases of Berkeley DB, it was not an error to store identical
-duplicate data items, or, for those that just like the way it sounds,
-duplicate duplicates. However, there were implementation bugs where
-storing duplicate duplicates could cause database corruption.
-<p>In this release, applications may store identical duplicate data items
-as long as the data items are unsorted. It is an error to attempt to
-store identical duplicate data items when duplicates are being stored
-in a sorted order. This restriction is expected to be lifted in a future
-release. See <a href="../../ref/am_conf/dup.html">Duplicate data items</a>
-for more information.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.1/put.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.1/btstat.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.1/env.html b/bdb/docs/ref/upgrade.3.1/env.html
deleted file mode 100644
index 6e1b8ccde53..00000000000
--- a/bdb/docs/ref/upgrade.3.1/env.html
+++ /dev/null
@@ -1,53 +0,0 @@
-<!--$Id: env.so,v 1.1 2000/05/31 15:10:03 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.1: environment configuration</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.1/txn_check.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.1/tcl.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.1: environment configuration</h1>
-<p>A set of DB_ENV configuration methods which were not environment
-specific, but which instead affected the entire application space, have
-been removed from the DB_ENV object and replaced by static
-functions. The following table lists the DB_ENV methods previously
-available to applications and the static functions that should now be used
-instead.
-<p><table border=1 align=center>
-<tr><th>DB_ENV method</th><th>Berkeley DB 3.1 function</th></tr>
-<tr><td>DBENV-&gt;set_func_close</td><td><a href="../../api_c/set_func_close.html">db_env_set_func_close</a></td></tr>
-<tr><td>DBENV-&gt;set_func_dirfree</td><td><a href="../../api_c/set_func_dirfree.html">db_env_set_func_dirfree</a></td></tr>
-<tr><td>DBENV-&gt;set_func_dirlist</td><td><a href="../../api_c/set_func_dirlist.html">db_env_set_func_dirlist</a></td></tr>
-<tr><td>DBENV-&gt;set_func_exists</td><td><a href="../../api_c/set_func_exists.html">db_env_set_func_exists</a></td></tr>
-<tr><td>DBENV-&gt;set_func_free</td><td><a href="../../api_c/set_func_free.html">db_env_set_func_free</a></td></tr>
-<tr><td>DBENV-&gt;set_func_fsync</td><td><a href="../../api_c/set_func_fsync.html">db_env_set_func_fsync</a></td></tr>
-<tr><td>DBENV-&gt;set_func_ioinfo</td><td><a href="../../api_c/set_func_ioinfo.html">db_env_set_func_ioinfo</a></td></tr>
-<tr><td>DBENV-&gt;set_func_malloc</td><td><a href="../../api_c/set_func_malloc.html">db_env_set_func_malloc</a></td></tr>
-<tr><td>DBENV-&gt;set_func_map</td><td><a href="../../api_c/set_func_map.html">db_env_set_func_map</a></td></tr>
-<tr><td>DBENV-&gt;set_func_open</td><td><a href="../../api_c/set_func_open.html">db_env_set_func_open</a></td></tr>
-<tr><td>DBENV-&gt;set_func_read</td><td><a href="../../api_c/set_func_read.html">db_env_set_func_read</a></td></tr>
-<tr><td>DBENV-&gt;set_func_realloc</td><td><a href="../../api_c/set_func_realloc.html">db_env_set_func_realloc</a></td></tr>
-<tr><td>DBENV-&gt;set_func_rename</td><td><a href="../../api_c/set_func_rename.html">db_env_set_func_rename</a></td></tr>
-<tr><td>DBENV-&gt;set_func_seek</td><td><a href="../../api_c/set_func_seek.html">db_env_set_func_seek</a></td></tr>
-<tr><td>DBENV-&gt;set_func_sleep</td><td><a href="../../api_c/set_func_sleep.html">db_env_set_func_sleep</a></td></tr>
-<tr><td>DBENV-&gt;set_func_unlink</td><td><a href="../../api_c/set_func_unlink.html">db_env_set_func_unlink</a></td></tr>
-<tr><td>DBENV-&gt;set_func_unmap</td><td><a href="../../api_c/set_func_unmap.html">db_env_set_func_unmap</a></td></tr>
-<tr><td>DBENV-&gt;set_func_write</td><td><a href="../../api_c/set_func_write.html">db_env_set_func_write</a></td></tr>
-<tr><td>DBENV-&gt;set_func_yield</td><td><a href="../../api_c/set_func_yield.html">db_env_set_func_yield</a></td></tr>
-<tr><td>DBENV-&gt;set_pageyield</td><td><a href="../../api_c/env_set_pageyield.html">db_env_set_pageyield</a></td></tr>
-<tr><td>DBENV-&gt;set_region_init</td><td><a href="../../api_c/env_set_region_init.html">db_env_set_region_init</a></td></tr>
-<tr><td>DBENV-&gt;set_mutexlocks</td><td><a href="../../api_c/env_set_mutexlocks.html">DBENV-&gt;set_mutexlocks</a></td></tr>
-<tr><td>DBENV-&gt;set_tas_spins</td><td><a href="../../api_c/env_set_tas_spins.html">db_env_set_tas_spins</a></td></tr>
-</table>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.1/txn_check.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.1/tcl.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.1/intro.html b/bdb/docs/ref/upgrade.3.1/intro.html
deleted file mode 100644
index 9c5d9529158..00000000000
--- a/bdb/docs/ref/upgrade.3.1/intro.html
+++ /dev/null
@@ -1,26 +0,0 @@
-<!--$Id: intro.so,v 1.4 2000/03/18 21:43:21 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.1: introduction</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.0/disk.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.1/config.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.1: introduction</h1>
-<p>The following pages describe how to upgrade applications coded against
-the Berkeley DB 3.0 release interfaces to the Berkeley DB 3.1 release interfaces.
-This information does not describe how to upgrade Berkeley DB 1.85 release
-applications.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.0/disk.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.1/config.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.1/log_register.html b/bdb/docs/ref/upgrade.3.1/log_register.html
deleted file mode 100644
index 8823d643953..00000000000
--- a/bdb/docs/ref/upgrade.3.1/log_register.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!--$Id: log_register.so,v 1.3 2000/07/25 16:59:37 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.1: log_register</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.1/sysmem.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.1/memp_register.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.1: log_register</h1>
-<p>The arguments to the <a href="../../api_c/log_register.html">log_register</a> and <a href="../../api_c/log_unregister.html">log_unregister</a>
-interfaces have changed. Instead of returning (and passing in) a logging
-file ID, a reference to the DB structure being registered (or
-unregistered) is passed. The application should be searched for any
-occurrences of <a href="../../api_c/log_register.html">log_register</a> and <a href="../../api_c/log_unregister.html">log_unregister</a>. For each
-one, change the arguments to be a reference to the DB structure
-being registered or unregistered.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.1/sysmem.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.1/memp_register.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.1/logalloc.html b/bdb/docs/ref/upgrade.3.1/logalloc.html
deleted file mode 100644
index acafbf6ee0a..00000000000
--- a/bdb/docs/ref/upgrade.3.1/logalloc.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!--$Id: logalloc.so,v 1.1 2000/06/02 23:32:48 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.1: log file pre-allocation</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.1/tmp.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.1/disk.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.1: log file pre-allocation</h1>
-<p>This change only affects Win/32 applications.
-<p>On Win/32 platforms Berkeley DB no longer pre-allocates log files. The problem
-was a noticeable performance spike as each log file was created. To turn
-this feature back on, search for the flag DB_OSO_LOG in the source file
-<b>log/log_put.c</b> and make the change described there, or contact
-Sleepycat Software for assistance.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.1/tmp.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.1/disk.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.1/memp_register.html b/bdb/docs/ref/upgrade.3.1/memp_register.html
deleted file mode 100644
index e8a667031e6..00000000000
--- a/bdb/docs/ref/upgrade.3.1/memp_register.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!--$Id: memp_register.so,v 1.3 2000/07/25 16:59:37 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.1: memp_register</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.1/log_register.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.1/txn_check.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.1: memp_register</h1>
-<p>An additional argument has been added to the <b>pgin</b> and
-<b>pgout</b> functions provided to the <a href="../../api_c/memp_register.html">memp_register</a> interface.
-The application should be searched for any occurrences of
-<a href="../../api_c/memp_register.html">memp_register</a>. For each one, if <b>pgin</b> or <b>pgout</b>
-functions are specified, the <b>pgin</b> and <b>pgout</b> functions
-should be modified to take an initial argument of a <b>DB_ENV *</b>.
-This argument is intended to support better error reporting for
-applications, and may be entirely ignored by the <b>pgin</b> and
-<b>pgout</b> functions themselves.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.1/log_register.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.1/txn_check.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.1/put.html b/bdb/docs/ref/upgrade.3.1/put.html
deleted file mode 100644
index 5252b3ac00a..00000000000
--- a/bdb/docs/ref/upgrade.3.1/put.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<!--$Id: put.so,v 1.8 2000/07/25 16:59:37 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.1: DB-&gt;put</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.1/set_paniccall.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.1/dup.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.1: DB-&gt;put</h1>
-<p>For the Queue and Recno access methods, when the <a href="../../api_c/db_put.html#DB_APPEND">DB_APPEND</a> flag
-is specified to the <a href="../../api_c/db_put.html">DB-&gt;put</a> interface, the allocated record number
-is returned to the application in the <b>key</b> <a href="../../api_c/dbt.html">DBT</a> argument.
-In previous releases of Berkeley DB, this <a href="../../api_c/dbt.html">DBT</a> structure did not follow
-the usual <a href="../../api_c/dbt.html">DBT</a> conventions, e.g., it was not possible to cause
-Berkeley DB to allocate space for the returned record number. Rather, it was
-always assumed that the <b>data</b> field of the <b>key</b> structure
-referenced memory that could be used as storage for a db_recno_t type.
-<p>As of the Berkeley DB 3.1.0 release, the <b>key</b> structure behaves as
-described in the <a href="../../api_c/dbt.html">DBT</a> C++/Java class or C structure documentation.
-<p>Applications which are using the <a href="../../api_c/db_put.html#DB_APPEND">DB_APPEND</a> flag for Queue and
-Recno access method databases will require a change to upgrade to the
-Berkeley DB 3.1 releases. The simplest change is likely to be to add the
-<a href="../../api_c/dbt.html#DB_DBT_USERMEM">DB_DBT_USERMEM</a> flag to the <b>key</b> structure. For example,
-code that appears as follows:
-<p><blockquote><pre>DBT key;
-db_recno_t recno;
-<p>
-memset(&key, 0, sizeof(DBT));
-key.data = &recno;
-key.size = sizeof(recno);
-DB-&gt;put(DB, NULL, &key, &data, DB_APPEND);
-printf("new record number is %lu\n", (u_long)recno);</pre></blockquote>
-<p>would be changed to:
-<p><blockquote><pre>DBT key;
-db_recno_t recno;
-<p>
-memset(&key, 0, sizeof(DBT));
-key.data = &recno;
-key.ulen = sizeof(recno);
-key.flags = DB_DBT_USERMEM;
-DB-&gt;put(DB, NULL, &key, &data, DB_APPEND);
-printf("new record number is %lu\n", (u_long)recno);</pre></blockquote>
-<p>Note that the <b>ulen</b> field is now set as well as the flag value.
-An alternative change would be:
-<p><blockquote><pre>DBT key;
-db_recno_t recno;
-<p>
-memset(&key, 0, sizeof(DBT));
-DB-&gt;put(DB, NULL, &key, &data, DB_APPEND);
-recno = *(db_recno_t *)key-&gt;data;
-printf("new record number is %lu\n", (u_long)recno);</pre></blockquote>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.1/set_paniccall.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.1/dup.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.1/set_feedback.html b/bdb/docs/ref/upgrade.3.1/set_feedback.html
deleted file mode 100644
index c7b7864b9d2..00000000000
--- a/bdb/docs/ref/upgrade.3.1/set_feedback.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!--$Id: set_feedback.so,v 1.3 2000/07/25 16:59:37 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.1: DBENV-&gt;set_feedback, DB-&gt;set_feedback</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.1/set_tx_recover.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.1/set_paniccall.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.1: DBENV-&gt;set_feedback, DB-&gt;set_feedback</h1>
-<p>Starting with the 3.1 release of Berkeley DB, the <a href="../../api_c/env_set_feedback.html">DBENV-&gt;set_feedback</a>
-and <a href="../../api_c/db_set_feedback.html">DB-&gt;set_feedback</a> functions may return an error value, that is, they
-are no longer declared as returning no value, instead they return an int
-or throw an exception as appropriate when an error occurs.
-<p>If your application calls these functions, you may want to check for a
-possible error on return.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.1/set_tx_recover.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.1/set_paniccall.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.1/set_paniccall.html b/bdb/docs/ref/upgrade.3.1/set_paniccall.html
deleted file mode 100644
index 8aa554cf067..00000000000
--- a/bdb/docs/ref/upgrade.3.1/set_paniccall.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!--$Id: set_paniccall.so,v 1.4 2000/07/25 16:59:37 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.1: DBENV-&gt;set_paniccall, DB-&gt;set_paniccall</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.1/set_feedback.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.1/put.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.1: DBENV-&gt;set_paniccall, DB-&gt;set_paniccall</h1>
-<p>Starting with the 3.1 release of Berkeley DB, the <a href="../../api_c/env_set_paniccall.html">DBENV-&gt;set_paniccall</a>
-and <a href="../../api_c/db_set_paniccall.html">DB-&gt;set_paniccall</a> functions may return an error value, that is, they
-are no longer declared as returning no value, instead they return an int
-or throw an exception as appropriate when an error occurs.
-<p>If your application calls these functions, you may want to check for a
-possible error on return.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.1/set_feedback.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.1/put.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.1/set_tx_recover.html b/bdb/docs/ref/upgrade.3.1/set_tx_recover.html
deleted file mode 100644
index 9943845e864..00000000000
--- a/bdb/docs/ref/upgrade.3.1/set_tx_recover.html
+++ /dev/null
@@ -1,36 +0,0 @@
-<!--$Id: set_tx_recover.so,v 1.9 2000/07/25 16:59:37 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.1: DBENV-&gt;set_tx_recover</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.1/config.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.1/set_feedback.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.1: DBENV-&gt;set_tx_recover</h1>
-<p>The redo parameter of the function passed to <a href="../../api_c/env_set_tx_recover.html">DBENV-&gt;set_tx_recover</a>
-used to be an integer set to any one of a number of #defined values. In
-the 3.1 release of Berkeley DB, the redo parameter has been replaced by the op
-parameter which is an enumerated type of type db_recops.
-<p>If your application calls <a href="../../api_c/env_set_tx_recover.html">DBENV-&gt;set_tx_recover</a>, then find the
-function referenced in the call. Replace the flag values in that function
-as follows:
-<p><table border=1 align=center>
-<tr><th>Previous flag</th><th>Berkeley DB 3.1 version flag</th></tr>
-<tr><td>TXN_BACKWARD_ROLL</td><td>DB_TXN_BACKWARD_ROLL</td></tr>
-<tr><td>TXN_FORWARD_ROLL</td><td>DB_TXN_FORWARD_ROLL</td></tr>
-<tr><td>TXN_OPENFILES</td><td>DB_TXN_OPENFILES</td></tr>
-<tr><td>TXN_REDO</td><td>DB_TXN_FORWARD_ROLL</td></tr>
-<tr><td>TXN_UNDO</td><td>DB_TXN_ABORT</td></tr>
-</table>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.1/config.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.1/set_feedback.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.1/sysmem.html b/bdb/docs/ref/upgrade.3.1/sysmem.html
deleted file mode 100644
index 7e21a565e97..00000000000
--- a/bdb/docs/ref/upgrade.3.1/sysmem.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<!--$Id: sysmem.so,v 1.3 2000/07/25 16:59:37 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.1: DB_SYSTEM_MEM</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.1/btstat.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.1/log_register.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.1: DB_SYSTEM_MEM</h1>
-<p>Using the <a href="../../api_c/env_open.html#DB_SYSTEM_MEM">DB_SYSTEM_MEM</a> option on UNIX systems now requires the
-specification of a base system memory segment ID, using the
-<a href="../../api_c/env_set_shm_key.html">DBENV-&gt;set_shm_key</a> function. Any valid segment ID may be specified, for
-example, one returned by the UNIX <b>ftok</b>(3) interface.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.1/btstat.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.1/log_register.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.1/tcl.html b/bdb/docs/ref/upgrade.3.1/tcl.html
deleted file mode 100644
index 0f964abb31e..00000000000
--- a/bdb/docs/ref/upgrade.3.1/tcl.html
+++ /dev/null
@@ -1,30 +0,0 @@
-<!--$Id: tcl.so,v 1.5 2000/06/02 14:50:20 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.1: Tcl API</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.1/env.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.1/tmp.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.1: Tcl API</h1>
-<p>The Berkeley DB Tcl API has been modified so that the <b>-mpool</b> option to
-the <b>berkdb env</b> command is now the default behavior. The Tcl API
-has also been modified so that the <b>-txn</b> option to the
-<b>berkdb env</b> command implies the <b>-lock</b> and <b>-log</b>
-options. Tcl scripts should be updated to remove the <b>-mpool</b>,
-<b>-lock</b> and <b>-log</b> options.
-<p>The Berkeley DB Tcl API has been modified to follow the Tcl standard rules for
-integer conversion, e.g., if the first two characters of a record number
-are "0x", the record number is expected to be in hexadecimal form.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.1/env.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.1/tmp.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.1/tmp.html b/bdb/docs/ref/upgrade.3.1/tmp.html
deleted file mode 100644
index 72034803b1b..00000000000
--- a/bdb/docs/ref/upgrade.3.1/tmp.html
+++ /dev/null
@@ -1,34 +0,0 @@
-<!--$Id: tmp.so,v 1.7 2000/05/22 20:26:35 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.1: DB_TMP_DIR</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.1/tcl.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.1/logalloc.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.1: DB_TMP_DIR</h1>
-<p>This change only affects Win/32 applications that create in-memory
-databases.
-<p>On Win/32 platforms an additional test has been added when searching for
-the appropriate directory in which to create the temporary files that are
-used to back in-memory databases. Berkeley DB now uses any return value from
-the GetTempPath interface as the temporary file directory name before
-resorting to the static list of compiled-in pathnames.
-<p>If the system registry does not return the same directory as Berkeley DB has
-been using previously, this change could cause temporary backing files to
-move to a new directory when applications are upgraded to the 3.1 release.
-In extreme cases, this could create (or fix) security problems if the file
-protection modes for the system registry directory are different from
-those on the directory previously used by Berkeley DB.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.1/tcl.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.1/logalloc.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.1/toc.html b/bdb/docs/ref/upgrade.3.1/toc.html
deleted file mode 100644
index 091318810da..00000000000
--- a/bdb/docs/ref/upgrade.3.1/toc.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<!--$Id: toc.so,v 1.2 2000/12/05 20:36:27 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Upgrading Berkeley DB 3.0.X applications to Berkeley DB 3.1</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<h1 align=center>Upgrading Berkeley DB 3.0.X applications to Berkeley DB 3.1</h1>
-<ol>
-<li><a href="intro.html">Release 3.1: introduction</a>
-<li><a href="config.html">Release 3.1: DBENV-&gt;open, DBENV-&gt;remove</a>
-<li><a href="set_tx_recover.html">Release 3.1: DBENV-&gt;set_tx_recover</a>
-<li><a href="set_feedback.html">Release 3.1: DBENV-&gt;set_feedback, DB-&gt;set_feedback</a>
-<li><a href="set_paniccall.html">Release 3.1: DBENV-&gt;set_paniccall, DB-&gt;set_paniccall</a>
-<li><a href="put.html">Release 3.1: DB-&gt;put</a>
-<li><a href="dup.html">Release 3.1: identical duplicate data items</a>
-<li><a href="btstat.html">Release 3.1: DB-&gt;stat</a>
-<li><a href="sysmem.html">Release 3.1: DB_SYSTEM_MEM</a>
-<li><a href="log_register.html">Release 3.1: log_register</a>
-<li><a href="memp_register.html">Release 3.1: memp_register</a>
-<li><a href="txn_check.html">Release 3.1: txn_checkpoint</a>
-<li><a href="env.html">Release 3.1: environment configuration</a>
-<li><a href="tcl.html">Release 3.1: Tcl API</a>
-<li><a href="tmp.html">Release 3.1: DB_TMP_DIR</a>
-<li><a href="logalloc.html">Release 3.1: log file pre-allocation</a>
-<li><a href="disk.html">Release 3.1: upgrade requirements</a>
-</ol>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.1/txn_check.html b/bdb/docs/ref/upgrade.3.1/txn_check.html
deleted file mode 100644
index 27dc3851f7e..00000000000
--- a/bdb/docs/ref/upgrade.3.1/txn_check.html
+++ /dev/null
@@ -1,26 +0,0 @@
-<!--$Id: txn_check.so,v 1.6 2000/07/25 16:59:37 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.1: txn_checkpoint</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.1/memp_register.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.1/env.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.1: txn_checkpoint</h1>
-<p>An additional argument has been added to the <a href="../../api_c/txn_checkpoint.html">txn_checkpoint</a>
-interface.
-<p>The application should be searched for any occurrences of
-<a href="../../api_c/txn_checkpoint.html">txn_checkpoint</a>. For each one, an argument of 0 should be appended
-to the current arguments.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.1/memp_register.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.1/env.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.2/callback.html b/bdb/docs/ref/upgrade.3.2/callback.html
deleted file mode 100644
index f60a81d5c56..00000000000
--- a/bdb/docs/ref/upgrade.3.2/callback.html
+++ /dev/null
@@ -1,39 +0,0 @@
-<!--$Id: callback.so,v 1.5 2000/10/26 15:20:40 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.2: DB callback functions, app_private field</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.2/set_flags.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.2/renumber.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.2: DB callback functions, app_private field</h1>
-<p>In the Berkeley DB 3.2 release, four application callback functions (the
-callback functions set by <a href="../../api_c/db_set_bt_compare.html">DB-&gt;set_bt_compare</a>,
-<a href="../../api_c/db_set_bt_prefix.html">DB-&gt;set_bt_prefix</a>, <a href="../../api_c/db_set_dup_compare.html">DB-&gt;set_dup_compare</a> and
-<a href="../../api_c/db_set_h_hash.html">DB-&gt;set_h_hash</a>) were modified to take a reference to a
-DB object as their first argument. This change allows the Berkeley DB
-Java API to reasonably support these interfaces. There is currently no
-need for the callback functions to do anything with this additional
-argument.
-<p>C and C++ applications that specify their own Btree key comparison,
-Btree prefix comparison, duplicate data item comparison or Hash
-functions should modify these functions to take a reference to a
-DB structure as their first argument. No further change is
-required.
-<p>The app_private field of the <a href="../../api_c/dbt.html">DBT</a> structure (accessible only from
-the Berkeley DB C API) has been removed in the 3.2 release. It was replaced
-with app_private fields in the DB_ENV and DB handles.
-Applications using this field will have to convert to using one of the
-replacement fields.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.2/set_flags.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.2/renumber.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.2/db_dump.html b/bdb/docs/ref/upgrade.3.2/db_dump.html
deleted file mode 100644
index 87d909086b3..00000000000
--- a/bdb/docs/ref/upgrade.3.2/db_dump.html
+++ /dev/null
@@ -1,29 +0,0 @@
-<!--$Id: db_dump.so,v 1.3 2000/11/28 21:27:49 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.2: db_dump</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.2/notfound.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.2/disk.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.2: db_dump</h1>
-<p>In previous releases of Berkeley DB, the <a href="../../utility/db_dump.html">db_dump</a> utility dumped Recno
-access method database keys as numeric strings. For consistency, the
-<a href="../../utility/db_dump.html">db_dump</a> utility has been changed in the 3.2 release to dump
-record numbers as hex pairs when the data items are being dumped as hex
-pairs. (See the <b>-k</b> and <b>-p</b> options to the
-<a href="../../utility/db_dump.html">db_dump</a> utility for more information.) Any applications or
-scripts post-processing the <a href="../../utility/db_dump.html">db_dump</a> output of Recno databases
-under these conditions may require modification.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.2/notfound.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.2/disk.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.2/disk.html b/bdb/docs/ref/upgrade.3.2/disk.html
deleted file mode 100644
index 8cebb9319ec..00000000000
--- a/bdb/docs/ref/upgrade.3.2/disk.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!--$Id: disk.so,v 1.4 2000/12/21 18:37:09 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.2: upgrade requirements</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.2/db_dump.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/test/run.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.2: upgrade requirements</h1>
-<p>Log file formats and the Queue Access Method database formats changed
-in the Berkeley DB 3.2 release. (The on-disk Queue format changed from
-version 2 to version 3.) Until the underlying databases are upgraded,
-the <a href="../../api_c/db_open.html">DB-&gt;open</a> function will return a <a href="../../api_c/db_open.html#DB_OLD_VERSION">DB_OLD_VERSION</a> error.
-<p>For further information on upgrading Berkeley DB installations, see
-<a href="../../ref/upgrade/process.html">Upgrading Berkeley DB
-installations</a>.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.2/db_dump.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/test/run.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.2/handle.html b/bdb/docs/ref/upgrade.3.2/handle.html
deleted file mode 100644
index 86f86a03a93..00000000000
--- a/bdb/docs/ref/upgrade.3.2/handle.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!--$Id: handle.so,v 1.2 2000/11/17 19:56:16 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.2: Java and C++ object re-use</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.2/mutexlock.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.2/notfound.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.2: Java and C++ object re-use</h1>
-<p>In previous releases of Berkeley DB, Java <a href="../../api_java/dbenv_class.html">DbEnv</a> and <a href="../../api_java/db_class.html">Db</a>
-objects, and C++ <a href="../../api_cxx/dbenv_class.html">DbEnv</a> and <a href="../../api_cxx/db_class.html">Db</a> objects could be
-re-used after they were closed, by calling open on them again. This is
-no longer permitted, and these objects no longer allow any operations
-after a close. Applications re-using these objects should be modified
-to create new objects instead.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.2/mutexlock.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.2/notfound.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.2/incomplete.html b/bdb/docs/ref/upgrade.3.2/incomplete.html
deleted file mode 100644
index 5aeb7755952..00000000000
--- a/bdb/docs/ref/upgrade.3.2/incomplete.html
+++ /dev/null
@@ -1,39 +0,0 @@
-<!--$Id: incomplete.so,v 1.4 2000/12/07 15:59:23 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.2: DB_INCOMPLETE</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.2/renumber.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.2/tx_recover.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.2: DB_INCOMPLETE</h1>
-<p>There are a number of functions that flush pages from the Berkeley DB shared
-memory buffer pool to disk. Most of those functions can potentially
-fail because a page that needs to be flushed is not currently available.
-However, this is not a hard failure and is rarely cause for concern.
-In the Berkeley DB 3.2 release, the C++ API (if that API is configured to
-throw exceptions) and the Java API have been changed so that this
-failure does not throw an exception, but rather returns a non-zero error
-code of <a href="../../api_c/memp_fsync.html#DB_INCOMPLETE">DB_INCOMPLETE</a>.
-<p>The following C++ methods will return <a href="../../api_c/memp_fsync.html#DB_INCOMPLETE">DB_INCOMPLETE</a> rather than throw
-an exception: <a href="../../api_cxx/db_close.html">Db::close</a>, <a href="../../api_cxx/db_sync.html">Db::sync</a>, <a href="../../api_cxx/memp_sync.html">DbEnv::memp_sync</a>,
-<a href="../../api_cxx/txn_checkpoint.html">DbEnv::txn_checkpoint</a>, <a href="../../api_cxx/memp_fsync.html">DbMpoolFile::sync</a>.
-<p>The following Java methods are now declared "public int" rather than
-"public void", and will return <a href="../../api_c/memp_fsync.html#DB_INCOMPLETE">Db.DB_INCOMPLETE</a> rather than
-throw an exception: <a href="../../api_java/db_close.html">Db.close</a>, <a href="../../api_java/db_sync.html">Db.sync</a>,
-<a href="../../api_java/txn_checkpoint.html">DbEnv.txn_checkpoint</a>.
-<p>It is likely that the only change required by any application will be
-those currently checking for a <a href="../../api_c/memp_fsync.html#DB_INCOMPLETE">DB_INCOMPLETE</a> return that has
-been encapsulated in an exception.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.2/renumber.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.2/tx_recover.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.2/intro.html b/bdb/docs/ref/upgrade.3.2/intro.html
deleted file mode 100644
index df4d573a087..00000000000
--- a/bdb/docs/ref/upgrade.3.2/intro.html
+++ /dev/null
@@ -1,26 +0,0 @@
-<!--$Id: intro.so,v 1.3 2000/10/03 17:17:36 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.2: introduction</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.1/disk.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.2/set_flags.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.2: introduction</h1>
-<p>The following pages describe how to upgrade applications coded against
-the Berkeley DB 3.1 release interfaces to the Berkeley DB 3.2 release interfaces.
-This information does not describe how to upgrade Berkeley DB 1.85 release
-applications.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.1/disk.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.2/set_flags.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.2/mutexlock.html b/bdb/docs/ref/upgrade.3.2/mutexlock.html
deleted file mode 100644
index fb1b87ca9ed..00000000000
--- a/bdb/docs/ref/upgrade.3.2/mutexlock.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!--$Id: mutexlock.so,v 1.1 2000/11/17 19:56:16 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.2: DBENV-&gt;set_mutexlocks</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.2/tx_recover.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.2/handle.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.2: DBENV-&gt;set_mutexlocks</h1>
-<p>Previous Berkeley DB releases included the db_env_set_mutexlocks interface,
-intended for debugging, that allows applications to always obtain
-requested mutual exclusion mutexes without regard for their
-availability. This interface has been replaced with
-<a href="../../api_c/env_set_mutexlocks.html">DBENV-&gt;set_mutexlocks</a>, which provides the same functionality on
-a per-database environment basis. Applications using the old interface
-should be updated to use the new one.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.2/tx_recover.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.2/handle.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.2/notfound.html b/bdb/docs/ref/upgrade.3.2/notfound.html
deleted file mode 100644
index cb40beaae22..00000000000
--- a/bdb/docs/ref/upgrade.3.2/notfound.html
+++ /dev/null
@@ -1,25 +0,0 @@
-<!--$Id: notfound.so,v 1.1 2000/10/25 14:27:30 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.2: Java java.io.FileNotFoundException</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.2/handle.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.2/db_dump.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.2: Java java.io.FileNotFoundException</h1>
-<p>The Java <a href="../../api_java/env_remove.html">DbEnv.remove</a>, <a href="../../api_java/db_remove.html">Db.remove</a> and
-<a href="../../api_java/db_rename.html">Db.rename</a> methods now throw java.io.FileNotFoundException
-in the case where the named file does not exist. Applications should
-be modified to catch this exception where appropriate.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.2/handle.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.2/db_dump.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.2/renumber.html b/bdb/docs/ref/upgrade.3.2/renumber.html
deleted file mode 100644
index 619fa07ff0e..00000000000
--- a/bdb/docs/ref/upgrade.3.2/renumber.html
+++ /dev/null
@@ -1,39 +0,0 @@
-<!--$Id: renumber.so,v 1.3 2000/12/01 18:33:57 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.2: Logically renumbering records</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.2/callback.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.2/incomplete.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.2: Logically renumbering records</h1>
-<p>In the Berkeley DB 3.2 release, cursor adjustment semantics changed for Recno
-databases with mutable record numbers. Before the 3.2 release, cursors
-were adjusted to point to the previous or next record at the time the
-record referenced by the cursor was deleted. This could lead to
-unexpected behaviors. For example, two cursors referencing sequential
-records that were both deleted would lose their relationship to each
-other and would reference the same position in the database instead of
-their original sequential relationship. There were also command
-sequences that would have unexpected results. For example, DB_AFTER
-and DB_BEFORE cursor put operations, using a cursor previously used to
-delete an item, would perform the put relative to the cursor's adjusted
-position and not its original position.
-<p>In the Berkeley DB 3.2 release, cursors maintain their position in the tree
-regardless of deletion operations using the cursor. Applications that
-perform database operations, using cursors previously used to delete
-entries in Recno databases with mutable record numbers, should be
-evaluated to ensure that the new semantics do not cause application
-failure.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.2/callback.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.2/incomplete.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.2/set_flags.html b/bdb/docs/ref/upgrade.3.2/set_flags.html
deleted file mode 100644
index b1bbe906b2d..00000000000
--- a/bdb/docs/ref/upgrade.3.2/set_flags.html
+++ /dev/null
@@ -1,35 +0,0 @@
-<!--$Id: set_flags.so,v 1.1 2000/10/03 17:17:36 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.2: DBENV-&gt;set_flags</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.2/intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.2/callback.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.2: DBENV-&gt;set_flags</h1>
-<p>A new method has been added to the Berkeley DB environment handle,
-<a href="../../api_c/env_set_flags.html">DBENV-&gt;set_flags</a>. This interface currently takes three flags:
-<a href="../../api_c/env_set_flags.html#DB_CDB_ALLDB">DB_CDB_ALLDB</a>, <a href="../../api_c/env_open.html#DB_NOMMAP">DB_NOMMAP</a> and <a href="../../api_c/env_open.html#DB_TXN_NOSYNC">DB_TXN_NOSYNC</a>. The
-first of these flags, <a href="../../api_c/env_set_flags.html#DB_CDB_ALLDB">DB_CDB_ALLDB</a>, provides new functionality,
-allowing Berkeley DB Concurrent Data Store applications to do locking across multiple databases.
-<p>The other two flags, <a href="../../api_c/env_open.html#DB_NOMMAP">DB_NOMMAP</a> and <a href="../../api_c/env_open.html#DB_TXN_NOSYNC">DB_TXN_NOSYNC</a>, were
-specified to the <a href="../../api_c/env_open.html">DBENV-&gt;open</a> method in previous releases. In
-the 3.2 release, they have been moved to the <a href="../../api_c/env_set_flags.html">DBENV-&gt;set_flags</a> function
-because this allows the database environment's value to be toggled
-during the life of the application as well as because it is a more
-appropriate place for them. Applications specifying either the
-<a href="../../api_c/env_open.html#DB_NOMMAP">DB_NOMMAP</a> or <a href="../../api_c/env_open.html#DB_TXN_NOSYNC">DB_TXN_NOSYNC</a> flags to the
-<a href="../../api_c/env_open.html">DBENV-&gt;open</a> function should replace those flags with calls to the
-<a href="../../api_c/env_set_flags.html">DBENV-&gt;set_flags</a> function.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.2/intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.2/callback.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.2/toc.html b/bdb/docs/ref/upgrade.3.2/toc.html
deleted file mode 100644
index 8a466d1b4d3..00000000000
--- a/bdb/docs/ref/upgrade.3.2/toc.html
+++ /dev/null
@@ -1,27 +0,0 @@
-<!--$Id: toc.so,v 1.7 2000/12/07 15:59:23 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Upgrading Berkeley DB 3.1.X applications to Berkeley DB 3.2</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<h1 align=center>Upgrading Berkeley DB 3.1.X applications to Berkeley DB 3.2</h1>
-<ol>
-<li><a href="intro.html">Release 3.2: introduction</a>
-<li><a href="set_flags.html">Release 3.2: DBENV-&gt;set_flags</a>
-<li><a href="callback.html">Release 3.2: DB callback functions, app_private field</a>
-<li><a href="renumber.html">Release 3.2: logically renumbering records</a>
-<li><a href="incomplete.html">Release 3.2: DB_INCOMPLETE</a>
-<li><a href="tx_recover.html">Release 3.2: DBENV-&gt;set_tx_recover</a>
-<li><a href="mutexlock.html">Release 3.2: DBENV-&gt;set_mutexlocks</a>
-<li><a href="handle.html">Release 3.2: Java and C++ object re-use</a>
-<li><a href="notfound.html">Release 3.2: Java java.io.FileNotFoundException</a>
-<li><a href="db_dump.html">Release 3.2: db_dump</a>
-<li><a href="disk.html">Release 3.2: upgrade requirements</a>
-</ol>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade.3.2/tx_recover.html b/bdb/docs/ref/upgrade.3.2/tx_recover.html
deleted file mode 100644
index c5cf18ebcfb..00000000000
--- a/bdb/docs/ref/upgrade.3.2/tx_recover.html
+++ /dev/null
@@ -1,32 +0,0 @@
-<!--$Id: tx_recover.so,v 1.11 2000/12/07 15:59:23 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Release 3.2: DBENV-&gt;set_tx_recover</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/upgrade.3.2/incomplete.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.2/mutexlock.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Release 3.2: DBENV-&gt;set_tx_recover</h1>
-<p>The <b>info</b> parameter of the function passed to
-<a href="../../api_c/env_set_tx_recover.html">DBENV-&gt;set_tx_recover</a> is no longer needed. If your application
-calls <a href="../../api_c/env_set_tx_recover.html">DBENV-&gt;set_tx_recover</a>, find the callback function referenced
-in that call and remove the <b>info</b> parameter.
-<p>In addition, the called function no longer needs to handle Berkeley DB log
-records, Berkeley DB will handle them internally as well as call the
-application-specified function. Any handling of Berkeley DB log records in the
-application's callback function may be removed.
-<p>In addition, the callback function will no longer be called with the
-<a href="../../api_c/env_set_tx_recover.html#DB_TXN_FORWARD_ROLL">DB_TXN_FORWARD_ROLL</a> flag specified unless the transaction
-enclosing the operation successfully committed.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/upgrade.3.2/incomplete.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.3.2/mutexlock.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/upgrade/process.html b/bdb/docs/ref/upgrade/process.html
deleted file mode 100644
index 40be3c8e898..00000000000
--- a/bdb/docs/ref/upgrade/process.html
+++ /dev/null
@@ -1,108 +0,0 @@
-<!--$Id: process.so,v 1.1 2000/12/05 20:39:10 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Upgrading Berkeley DB installations</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>Upgrading Berkeley DB Applications</dl></h3></td>
-<td width="1%"><a href="../../ref/build_vxworks/faq.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.2.0/intro.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Upgrading Berkeley DB installations</h1>
-<p>The following information describes the general process of upgrading
-Berkeley DB installations. There are three issues to be considered when
-upgrading Berkeley DB applications and database environments. They are the
-application API, the underlying database formats, and, in the case of
-transactional database environments, the log files.
-<p>An application must always be re-compiled to use a new Berkeley DB release.
-Internal Berkeley DB interfaces may change at any time and in any release,
-without warning. This means the application and library must be entirely
-recompiled and reinstalled when upgrading to new releases of the
-library, as there is no guarantee that modules from one version of the
-library will interact correctly with modules from another release.
-<p>A Berkeley DB patch release will never modify the Berkeley DB API, log file or
-database formats in non-backward compatible ways. Berkeley DB minor and major
-releases may optionally include changes to the Berkeley DB application API,
-log files and database formats that are not backward compatible. Note,
-that there are several underlying Berkeley DB database formats. As all of
-them do not necessarily change at the same time, changes to one database
-format in a release may not affect any particular application.
-<p>Each Berkeley DB minor or major release has an upgrading section in this
-chapter of the Berkeley DB Reference Guide. The section describes any API
-changes that were made in the release. Application maintainers must
-review the API changes, update their applications as necessary, and then
-re-compile using the new release. In addition, each section includes
-a page specifying if the log file format or database formats changed in
-non-backward compatible ways as part of the release.
-<p>If the application does not have a Berkeley DB transactional environment, the
-re-compiled application may be installed in the field using the
-following steps:
-<p><ol>
-<p><li>Shut down the old version of the application.
-<p><li>Remove any Berkeley DB environment, using the <a href="../../api_c/env_remove.html">DBENV-&gt;remove</a> function or an
-appropriate system utility.
-<p><li>Install the new version of the application.
-<p><li>If the database format has changed, upgrade the application's databases.
-See <a href="../../ref/am/upgrade.html">Upgrading databases</a> for more
-information.
-<p><li>Re-start the application.
-</ol>
-<p>If the application has a Berkeley DB transactional environment, but neither
-the log file or database formats have changed, the re-compiled
-application may be installed in the field using the following steps:
-<p><ol>
-<p><li>Shut down the old version of the application.
-<p><li>Run recovery on the database environment, using the <a href="../../api_c/env_open.html">DBENV-&gt;open</a> function
-or the <a href="../../utility/db_recover.html">db_recover</a> utility.
-<p><li>Install the new version of the application.
-<p><li>Re-start the application.
-</ol>
-<p>If the application has a Berkeley DB transactional environment, and the log
-file format has changed but the database formats have not, the
-re-compiled application may be installed in the field using the
-following steps:
-<p><ol>
-<p><li>Shut down the old version of the application.
-<p><li>Run recovery on the database environment, using the <a href="../../api_c/env_open.html">DBENV-&gt;open</a> function
-or the <a href="../../utility/db_recover.html">db_recover</a> utility.
-<p><li>Archive the database environment for catastrophic recovery. See
-<a href="../../ref/transapp/archival.html">Archival procedures</a> for more
-information.
-<p><li>Install the new version of the application.
-<p><li>Re-start the application.
-</ol>
-<p>If the application has a Berkeley DB transactional environment and the
-database format has changed, the re-compiled application may be
-installed in the field using the following steps:
-<p><ol>
-<p><li>Shut down the old version of the application.
-<p><li>Run recovery on the database environment, using the <a href="../../api_c/env_open.html">DBENV-&gt;open</a> function
-or the <a href="../../utility/db_recover.html">db_recover</a> utility.
-<p><li>Archive the database environment for catastrophic recovery. See
-<a href="../../ref/transapp/archival.html">Archival procedures</a> for more
-information.
-<p><li>Install the new version of the application.
-<p><li>Upgrade the application's databases. See
-<a href="../../ref/am/upgrade.html">Upgrading databases</a> for more
-information.
-<p><li>Archive the database for catastrophic recovery again (using different
-media than before, of course).
-<p>This archival is not strictly necessary. However, if you have to perform
-catastrophic recovery after restarting your applications, that recovery
-must be done based on the last archive you have made. If you make this
-archive, you can use it as the basis of your catastrophic recovery. If
-you do not make this archive, you will have to use the archive you made
-in step #2 as the basis of your recovery, and you will have to upgrade it
-as described in step #3 before you can apply your log files to it.
-<p><li>Re-start the application.
-</ol>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/build_vxworks/faq.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/upgrade.2.0/intro.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/xa/config.html b/bdb/docs/ref/xa/config.html
deleted file mode 100644
index cfe31f372f4..00000000000
--- a/bdb/docs/ref/xa/config.html
+++ /dev/null
@@ -1,79 +0,0 @@
-<!--$Id: config.so,v 10.18 2000/03/22 22:02:15 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Configuring Berkeley DB with the Tuxedo System</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>XA Resource Manager</dl></h3></td>
-<td width="1%"><a href="../../ref/xa/intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/xa/faq.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Configuring Berkeley DB with the Tuxedo System</h1>
-<p>This information assumes that you have already installed the Berkeley DB
-library.
-<p>First, you must update the resource manager file in Tuxedo. For the
-purposes of this discussion, assume the Tuxedo home directory is in:
-<p><blockquote><pre>/home/tuxedo</pre></blockquote>
-In that case, the resource manager file will be located in:
-<p><blockquote><pre>/home/tuxedo/udataobj/RM</pre></blockquote>
-Edit the resource manager file, adding the following line:
-<p><blockquote><pre>BERKELEY-DB:db_xa_switch:-L${DB_INSTALL}/lib -ldb \
- -lsocket -ldl -lm</pre></blockquote>
-<p>where ${DB_INSTALLHOME} is the directory into which you installed the Berkeley DB
-library.
-<p><b>Note, the above load options are for a Sun Microsystems Solaris
-5.6 Sparc installation of Tuxedo, and may not be correct for your system.</b>
-<p>Next, you must build the transaction manager server. To do this, use the
-Tuxedo <b>buildtms</b>(1) utility. The buildtms utility will create
-the Berkeley-DB resource manager in the directory from which it was run.
-The parameters to buildtms should be:
-<p><blockquote><pre>buildtms -v -o DBRM -r BERKELEY-DB</pre></blockquote>
-<p>This will create an executable transaction manager server, DBRM, that is
-called by Tuxedo to process begins, commits, and aborts.
-<p>Finally, you must make sure that your TUXCONFIG environment variable
-identifies a ubbconfig file that properly identifies your resource
-managers. In the GROUPS section of the ubb file, you should identify the
-group's LMID and GRPNO as well as the transaction manager server name
-"TMSNAME=DBRM." You must also specify the OPENINFO parameter, setting it
-equal to the string:
-<p><blockquote><pre>rm_name:dir</pre></blockquote>
-<p>where rm_name is the resource name specified in the RM file (i.e.,
-BERKELEY-DB) and dir is the directory for the Berkeley DB home environment
-(see <a href="../../api_c/env_open.html">DBENV-&gt;open</a> for a discussion of Berkeley DB environments).
-<p>As Tuxedo resource manager startup accepts only a single string for
-configuration, any environment customization that might have been done
-via the config parameter to <a href="../../api_c/env_open.html">DBENV-&gt;open</a> must instead be done by
-placing a <a href="../../ref/env/naming.html#DB_CONFIG">DB_CONFIG</a> file in the Berkeley DB environment directory. See
-<a href="../../ref/env/naming.html">Berkeley DB File Naming</a> for further
-information.
-<p>Consider the following configuration. We have built a transaction
-manager server as described above. We want the Berkeley DB environment
-to be <b>/home/dbhome</b>, our database files to be maintained
-in <b>/home/datafiles</b>, our log files to be maintained in
-<b>/home/log</b>, and we want a duplexed server.
-<p>The GROUPS section of the ubb file might look like:
-<p><blockquote><pre>group_tm LMID=myname GRPNO=1 TMSNAME=DBRM TMSCOUNT=2 \
- OPENINFO="BERKELEY-DB:/home/dbhome"</pre></blockquote>
-<p>There would be a <a href="../../ref/env/naming.html#DB_CONFIG">DB_CONFIG</a> configuration file in the directory
-<b>/home/dbhome</b> that contained the following two lines:
-<p><blockquote><pre>DB_DATA_DIR /home/datafiles
-DB_LOG_DIR /home/log
-</pre></blockquote>
-<p>Finally, the ubb file must be translated into a binary version, using
-Tuxedo's <b>tmloadcf</b>(1) utility, and then the pathname of that
-binary file must be specified as your TUXCONFIG environment variable.
-<p>At this point, your system is properly initialized to use the Berkeley DB
-resource manager.
-<p>See <a href="../../api_c/db_create.html">db_create</a> for further information on accessing data files
-using XA.
-<table><tr><td><br></td><td width="1%"><a href="../../ref/xa/intro.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/xa/faq.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/xa/faq.html b/bdb/docs/ref/xa/faq.html
deleted file mode 100644
index db1e26a0b6b..00000000000
--- a/bdb/docs/ref/xa/faq.html
+++ /dev/null
@@ -1,55 +0,0 @@
-<!--$Id: faq.so,v 10.11 2000/03/18 21:43:21 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Frequently Asked Questions</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>XA Resource Manager</dl></h3></td>
-<td width="1%"><a href="../../ref/xa/config.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/program/appsignals.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Frequently Asked Questions</h1>
-<p><ol>
-<p><li><b>Does converting an application to run within XA change any of
-the already existing C/C++ API calls it does?</b>
-<p>When converting an application to run under XA, the application's Berkeley DB
-calls are unchanged, with two exceptions:
-<p><ol>
-<p><li>The application must use specify the <a href="../../api_c/db_create.html#DB_XA_CREATE">DB_XA_CREATE</a> flag
-to the <a href="../../api_c/db_create.html">db_create</a> interface.
-<p><li>The application should never explicitly call <a href="../../api_c/txn_commit.html">txn_commit</a>,
-<a href="../../api_c/txn_abort.html">txn_abort</a> or <a href="../../api_c/txn_begin.html">txn_begin</a>, as those calls are replaced by
-calls into the Tuxedo transaction manager. For the same reason, the
-application will always specify a transaction argument of NULL to the
-Berkeley DB functions that take transaction arguments (e.g., <a href="../../api_c/db_put.html">DB-&gt;put</a> or
-<a href="../../api_c/db_cursor.html">DB-&gt;cursor</a>).
-</ol>
-<p>Otherwise, your application should be unchanged.
-<hr size=1 noshade>
-<p><li><b>Is it possible to mix XA and non-XA transactions?</b>
-<p>Yes. It is also possible for XA and non-XA transactions to co-exist in
-the same Berkeley DB environment. To do this, specify the same environment to
-the non-XA <a href="../../api_c/env_open.html">DBENV-&gt;open</a> calls as was specified in the Tuxedo
-configuration file.
-<hr size=1 noshade>
-<p><li><b>How does Berkeley DB recovery interact with recovery by the transaction
-manager?</b>
-<p>When the Tuxedo recovery calls the Berkeley DB recovery functions, the standard
-Berkeley DB recovery procedures occur, for all operations that are represented
-in the Berkeley DB log files. This includes any non-XA transactions that were
-performed in the environment. Of course, this means that you can't use
-the standard Berkeley DB utilities (e.g., <a href="../../utility/db_recover.html">db_recover</a>) to perform
-recovery.
-<p>Also, standard log file archival and catastrophic recovery procedures
-should occur independently of XA operation.
-</ol>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/xa/config.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/program/appsignals.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/ref/xa/intro.html b/bdb/docs/ref/xa/intro.html
deleted file mode 100644
index 7643ee420c6..00000000000
--- a/bdb/docs/ref/xa/intro.html
+++ /dev/null
@@ -1,61 +0,0 @@
-<!--$Id: intro.so,v 10.19 2000/12/04 18:05:45 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB Reference Guide: Introduction</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td><h3><dl><dt>Berkeley DB Reference Guide:<dd>XA Resource Manager</dl></h3></td>
-<td width="1%"><a href="../../ref/transapp/throughput.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/xa/config.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p>
-<h1 align=center>Introduction</h1>
-<p>Berkeley DB can be used as an XA-compliant resource manager. The XA
-implementation is known to work with the Tuxedo(tm) transaction
-manager.
-<p>The XA support is encapsulated in the resource manager switch
-db_xa_switch, which defines the following functions:
-<p><blockquote><pre>__db_xa_close Close the resource manager.
-__db_xa_commit Commit the specified transaction.
-__db_xa_complete Wait for asynchronous operations to
- complete.
-__db_xa_end Disassociate the application from a
- transaction.
-__db_xa_forget Forget about a transaction that was heuristically
- completed. (Berkeley DB does not support heuristic
- completion.)
-__db_xa_open Open the resource manager.
-__db_xa_prepare Prepare the specified transaction.
-__db_xa_recover Return a list of prepared, but not yet
- committed transactions.
-__db_xa_rollback Abort the specified transaction.
-__db_xa_start Associate the application with a
- transaction.
-</pre></blockquote>
-<p>The Berkeley DB resource manager does not support the following optional
-XA features:
-<ul type=disc>
-<li>Asynchronous operations.
-<li>Transaction migration.
-</ul>
-<p>The Tuxedo System is available from <a href="http://www.beasys.com">BEA Systems, Inc.</a>
-<p>For additional information on Tuxedo, see:
-<p><blockquote><i>Building Client/Server Applications Using Tuxedo</i>,
-by Hall, John Wiley & Sons, Inc. Publishers.</blockquote>
-<p>For additional information on XA Resource Managers, see:
-<p><blockquote>X/Open CAE Specification
-<i>Distributed Transaction Processing: The XA Specification</i>,
-X/Open Document Number: XO/CAE/91/300.</blockquote>
-<p>For additional information on The Tuxedo System, see:
-<p><blockquote><i>The Tuxedo System</i>,
-by Andrade, Carges, Dwyer and Felts, Addison Wesley Longman Publishers.</blockquote>
-<table><tr><td><br></td><td width="1%"><a href="../../ref/transapp/throughput.html"><img src="../../images/prev.gif" alt="Prev"></a><a href="../../ref/toc.html"><img src="../../images/ref.gif" alt="Ref"></a><a href="../../ref/xa/config.html"><img src="../../images/next.gif" alt="Next"></a>
-</td></tr></table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/sleepycat/contact.html b/bdb/docs/sleepycat/contact.html
deleted file mode 100644
index c2d1e7f0ac7..00000000000
--- a/bdb/docs/sleepycat/contact.html
+++ /dev/null
@@ -1,107 +0,0 @@
-<!--$Id: contact.html,v 10.8 2000/02/19 20:57:58 bostic Exp $-->
-<html>
-<head>
-<title>The Sleepycat Software Contact Page</title>
-<meta name="description" content="DB: A database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-
-<p align=center>
-<img src="../images/sleepycat.gif" alt="Sleepycat Software Inc.">
-<p>
-
-<table>
-<tr>
-
-<td valign=top>
-<b>
-General:
-</b>
-</td><td>
-<a href="mailto:db@sleepycat.com">db@sleepycat.com</a>
-</td>
-
-</tr><tr>
-<td><br></td>
-</tr><tr>
-
-<td valign=top>
-<b>
-Sales and Marketing:
-</b>
-</td><td>
-<a href="mailto:sales@sleepycat.com">sales@sleepycat.com</a><br>
-+1-510-526-3972<br>
-+1-877-SLEEPYCAT (USA only, toll-free)<br>
-</td>
-
-</tr><tr>
-<td><br></td>
-</tr><tr>
-
-<td valign=top>
-<b>
-Technical Support:
-</b>
-</td><td>
-<a href="mailto:support@sleepycat.com">support@sleepycat.com</a>
-</td>
-
-</tr><tr>
-<td><br></td>
-</tr><tr>
-
-<td valign=top>
-<b>
-Web Site:
-</b>
-</td><td>
-<a href="mailto:webmaster@sleepycat.com">webmaster@sleepycat.com</a>
-</td>
-
-</tr><tr>
-<td><br></td>
-</tr><tr>
-
-<td valign=top>
-<b>
-Press Inquiries:
-</b>
-</td><td>
-Michael Olson, VP Marketing<br>
-Sleepycat Software, Inc.<br>
-<a href="mailto:mao@sleepycat.com">mao@sleepycat.com</a>
-</td>
-
-</tr><tr>
-<td><br></td>
-</tr><tr>
-
-<td valign=top>
-<b>
-Postal Mail:
-</b>
-</td><td bgcolor="#EEEEEE">
-<b>Massachussetts Corporate Office</b><br>
-<br>
-Sleepycat Software Inc.<br>
-394 E. Riding Dr.<br>
-Carlisle, MA 01741-1601<br>
-</td>
-
-</tr><tr>
-
-<td valign=top>
-</td><td bgcolor="#EEEEEE">
-<b>West Coast Sales Office</b><br>
-<br>
-Sleepycat Software Inc.<br>
-1509 McGee St.<br>
-Berkeley CA 94703<br>
-</td>
-</tr>
-</table>
-
-</body>
-</html>
diff --git a/bdb/docs/sleepycat/legal.html b/bdb/docs/sleepycat/legal.html
deleted file mode 100644
index 1945b3976d0..00000000000
--- a/bdb/docs/sleepycat/legal.html
+++ /dev/null
@@ -1,56 +0,0 @@
-<!--$Id: legal.so,v 10.7 2000/03/20 15:02:43 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Sleepycat Software Legal Notices</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<h1 align=center>Sleepycat Software Legal Notices</h1>
-<p>Copyright (c) 1990-2000 Sleepycat Software, Inc., 394 E. Riding Dr.,
-Carlisle, MA 01741-1601 U.S.A. All Rights Reserved.
-<p>This product and publication is protected by copyright and distributed
-under licenses restricting its use, copying and distribution. Permission
-to use this publication or portions of this publication is granted by
-Sleepycat Software provided that the above copyright notice appears in
-all copies and that use of such publications is for non-commercial use
-only and no modifications of the publication is made.
-<p>RESTRICTED RIGHTS: Use, duplication, or disclosure by the U.S. Government
-is subject to restrictions of FAR 52.227-14(g)(2)(6/87) and FAR
-52.227-19(6/87), or DFAR 252.227-7015(b)(6/95) and DFAR 227.7202-3(a).
-<p>Sleepycat and the names of Sleepycat Software products referenced herein
-are either trademarks and/or service marks or registered trademarks and/or
-service marks of Sleepycat Software Inc.
-<p>Sun Microsystems, SunOS and Solaris are trademarks or registered
-trademarks of Sun Microsystems, Inc.
-<p>Hewlett-Packard and HP-UX are trademarks or registered trademarks of
-Hewlett-Packard Company.
-<p>DIGITAL and ULTRIX are trademarks or registered trademarks of Digital
-Equipment Corporation.
-<p>Microsoft, Windows and Windows NT are trademarks or registered trademarks
-of Microsoft Corporation.
-<p>TUXEDO is a trademark or registered trademark of BEA Systems, Inc.
-<p>All other brand, company and product names referenced in this publication
-may be trademarks, registered trademarks or service marks of their
-respective holders and are used here for informational purposes only.
-<p>WARNING: There is a non-zero chance that, through a process know as
-"tunneling," this product may spontaneously disappear from its present
-location and reappear at any random place in the universe. Sleepycat
-Software will not be responsible for damages or inconvenience that may
-result.
-<p><b>THIS PRODUCT IS PROVIDED BY SLEEPYCAT SOFTWARE "AS IS" AND ANY EXPRESS OR
-IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT,
-ARE DISCLAIMED. IN NO EVENT SHALL SLEEPYCAT SOFTWARE BE LIABLE FOR ANY
-DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
-LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
-OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGE.</b>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/sleepycat/license.html b/bdb/docs/sleepycat/license.html
deleted file mode 100644
index 1407eed05ad..00000000000
--- a/bdb/docs/sleepycat/license.html
+++ /dev/null
@@ -1,109 +0,0 @@
-<!--$Id: license.so,v 10.3 2000/12/04 18:05:45 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Sleepycat Software Product License</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<h1 align=center>Sleepycat Software Product License</h1>
-<p>The following is the license that applies to this copy of the Berkeley DB
-software. For a license to use the Berkeley DB software under conditions
-other than those described here, or to purchase support for this software,
-please <a href="contact.html">contact Sleepycat Software</a>.
-<p><blockquote><pre>/*
- * Copyright (c) 1990-2000
- * Sleepycat Software. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Redistributions in any form must be accompanied by information on
- * how to obtain complete source code for the DB software and any
- * accompanying software that uses the DB software. The source code
- * must either be included in the distribution or be available for no
- * more than the cost of distribution plus a nominal fee, and must be
- * freely redistributable under reasonable conditions. For an
- * executable file, complete source code means the source code for all
- * modules it contains. It does not include source code for modules or
- * files that typically accompany the major components of the operating
- * system on which the executable file runs.
- *
- * THIS SOFTWARE IS PROVIDED BY SLEEPYCAT SOFTWARE ``AS IS'' AND ANY EXPRESS
- * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
- * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR
- * NON-INFRINGEMENT, ARE DISCLAIMED. IN NO EVENT SHALL SLEEPYCAT SOFTWARE
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-/*
- * Copyright (c) 1990, 1993, 1994, 1995
- * The Regents of the University of California. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-/*
- * Copyright (c) 1995, 1996
- * The President and Fellows of Harvard University. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY HARVARD AND ITS CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL HARVARD OR ITS CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */</pre></blockquote>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/utility/berkeley_db_svc.html b/bdb/docs/utility/berkeley_db_svc.html
deleted file mode 100644
index 9e9c7bb4e45..00000000000
--- a/bdb/docs/utility/berkeley_db_svc.html
+++ /dev/null
@@ -1,88 +0,0 @@
-<!--$Id: berkeley_db_svc.so,v 10.11 2000/04/15 16:57:38 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: berkeley_db_svc</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>berkeley_db_svc</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>berkeley_db_svc [<b>-Vv</b>] [<b>-h home</b>]
- [<b>-I seconds</b>] [<b>-L file</b>] [<b>-t seconds</b>] [<b>-T seconds</b>]</pre></h3>
-<h1>Description</h1>
- <a name="3"><!--meow--></a>
-<p>The berkeley_db_svc utility is the Berkeley DB RPC server.
-<p>The options are as follows:
-<p><dl compact>
-<p><dt><b>-h</b><dd>Add the specified home directory to the list of allowed home directories
-that can be specified by the client. The home directory should be an
-absolute pathname. The last component of each home directory specified
-must be unique, as that is how clients specify which database environment
-they wish to join.
-<p>Recovery will be run on each specified environment before the server
-begins accepting requests from clients. For this reason, only one copy
-of the server program should ever be run at any time, as recovery must
-always be single-threaded.
-<p><dt><b>-I</b><dd>Set the default idle timeout for client environments to the specified
-number of seconds. The default timeout is 24 hours.
-<p><dt><b>-L</b><dd>Log the execution of the berkeley_db_svc utility to the specified file in the
-following format, where <i>###</i> is the process ID, and the date
-is the time the utility was started.
-<p><blockquote><pre>berkeley_db_svc: ### Wed Jun 15 01:23:45 EDT 1995</pre></blockquote>
-This file will be removed if the berkeley_db_svc utility exits gracefully.
-<p><dt><b>-t</b><dd>Set the default timeout for client resources (idle transactions and
-cursors) to the
-specified number of seconds. When the timeout expires, if the
-resource is a transaction, it is aborted, if the resource is
-a cursor, it is closed.
-The default timeout is 5 minutes.
-<p><dt><b>-T</b><dd>Set the maximum timeout allowed for client resources.
-The default timeout is 20 minutes.
-If a client application requests a server timeout
-greater than the maximum timeout set for this server, then the client's
-timeout will be capped at the maximum timeout value.
-<p><dt><b>-V</b><dd>Write the version number to the standard output and exit.
-<p><dt><b>-v</b><dd>Run in verbose mode.
-</dl>
-<p>The berkeley_db_svc utility uses a Berkeley DB environment (as described for the
-<b>-h</b> option, the environment variable <b>DB_HOME</b>, or,
-because the utility was run in a directory containing a Berkeley DB
-environment). In order to avoid environment corruption when using a Berkeley DB
-environment, berkeley_db_svc should always be given the chance to detach from
-the environment and exit gracefully. To cause berkeley_db_svc to release all
-environment resources and exit cleanly, send it an interrupt signal
-(SIGINT).
-<p>The berkeley_db_svc utility exits 0 on success, and &gt;0 if an error occurs.
-<h1>Environment Variables</h1>
-<p><dl compact>
-<p><dt>DB_HOME<dd>If the <b>-h</b> option is not specified and the environment variable
-DB_HOME is set, it is used as the path of the database home, as described
-in <a href="../api_c/env_open.html">DBENV-&gt;open</a>.
-</dl>
-<h1>See Also</h1>
-berkeley_db_svc,
-<a href="../utility/db_archive.html">db_archive</a>,
-<a href="../utility/db_checkpoint.html">db_checkpoint</a>,
-<a href="../utility/db_deadlock.html">db_deadlock</a>,
-<a href="../utility/db_dump.html">db_dump</a>,
-<a href="../utility/db_load.html">db_load</a>,
-<a href="../utility/db_recover.html">db_recover</a>,
-<a href="../utility/db_stat.html">db_stat</a>,
-<a href="../utility/db_upgrade.html">db_upgrade</a>,
-and
-<a href="../utility/db_verify.html">db_verify</a>.
-</tt>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/utility/db_archive.html b/bdb/docs/utility/db_archive.html
deleted file mode 100644
index 5cc56a428b1..00000000000
--- a/bdb/docs/utility/db_archive.html
+++ /dev/null
@@ -1,85 +0,0 @@
-<!--$Id: db_archive.so,v 10.19 2000/04/03 20:10:39 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db_archive</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>db_archive</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>db_archive [<b>-alsVv</b>] [<b>-h home</b>]</pre></h3>
-<h1>Description</h1>
- <a name="3"><!--meow--></a>
-<p>The db_archive utility writes the pathnames of log files that are
-no longer in use (e.g., no longer involved in active transactions), to
-the standard output, one pathname per line. These log files should be
-written to backup media to provide for recovery in the case of
-catastrophic failure (which also requires a snapshot of the database
-files), but they may then be deleted from the system to reclaim disk
-space.
-<p>The options are as follows:
-<p><dl compact>
-<p><dt><b>-a</b><dd>Write all pathnames as absolute pathnames,
-instead of relative to the database home directories.
-<p><dt><b>-h</b><dd>Specify a home directory for the database environment; by
-default, the current working directory is used.
-<p><dt><b>-l</b><dd>Write out the pathnames of all of the database log files,
-whether or not they are involved in active transactions.
-<p><dt><b>-s</b><dd>Write the pathnames of all of the database files that need to be archived
-in order to recover the database from catastrophic failure.
-If any of the database files have not been accessed during the lifetime of
-the current log files, db_archive will
-not include them in this
-output.
-<p>It is possible that some of the files referenced in the log have since
-been deleted from the system.
-In this case, db_archive will ignore them.
-When <a href="../utility/db_recover.html">db_recover</a> is run, any files referenced in the log that
-are not present during recovery are assumed to have been deleted and will
-not be recovered.
-<p><dt><b>-V</b><dd>Write the version number to the standard output and exit.
-<p><dt><b>-v</b><dd>Run in verbose mode, listing the checkpoints in the log files as they
-are reviewed.
-</dl>
-<p>The db_archive utility uses a Berkeley DB environment (as described for the
-<b>-h</b> option, the environment variable <b>DB_HOME</b>, or,
-because the utility was run in a directory containing a Berkeley DB
-environment). In order to avoid environment corruption when using a Berkeley DB
-environment, db_archive should always be given the chance to detach from
-the environment and exit gracefully. To cause db_archive to release all
-environment resources and exit cleanly, send it an interrupt signal
-(SIGINT).
-<p>The db_archive utility exits 0 on success, and &gt;0 if an error occurs.
-<h1>Environment Variables</h1>
-<p><dl compact>
-<p><dt>DB_HOME<dd>If the <b>-h</b> option is not specified and the environment variable
-DB_HOME is set, it is used as the path of the database home, as described
-in <a href="../api_c/env_open.html">DBENV-&gt;open</a>.
-</dl>
-<h1>See Also</h1>
-<a href="../utility/berkeley_db_svc.html">berkeley_db_svc</a>,
-db_archive,
-<a href="../utility/db_checkpoint.html">db_checkpoint</a>,
-<a href="../utility/db_deadlock.html">db_deadlock</a>,
-<a href="../utility/db_dump.html">db_dump</a>,
-<a href="../utility/db_load.html">db_load</a>,
-<a href="../utility/db_recover.html">db_recover</a>,
-<a href="../utility/db_stat.html">db_stat</a>,
-<a href="../utility/db_upgrade.html">db_upgrade</a>,
-and
-<a href="../utility/db_verify.html">db_verify</a>.
-</tt>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/utility/db_checkpoint.html b/bdb/docs/utility/db_checkpoint.html
deleted file mode 100644
index dc49d03d8f5..00000000000
--- a/bdb/docs/utility/db_checkpoint.html
+++ /dev/null
@@ -1,82 +0,0 @@
-<!--$Id: db_checkpoint.so,v 10.22 2000/04/03 20:10:39 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db_checkpoint</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>db_checkpoint</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>db_checkpoint [<b>-1Vv</b>]
- [<b>-h home</b>] [<b>-k kbytes</b>] [<b>-L file</b>] [<b>-p min</b>]</pre></h3>
-<h1>Description</h1>
- <a name="3"><!--meow--></a>
-<p>The db_checkpoint utility is a daemon process that monitors the
-database log and periodically calls <a href="../api_c/txn_checkpoint.html">txn_checkpoint</a> to checkpoint it.
-<p>The options are as follows:
-<p><dl compact>
-<p><dt><b>-1</b><dd>Checkpoint the log once, regardless of whether or not there has
-been activity since the last checkpoint, and then exit.
-<p><dt><b>-h</b><dd>Specify a home directory for the database environment; by
-default, the current working directory is used.
-<p><dt><b>-k</b><dd>Checkpoint the database at least as often as every <b>kbytes</b> of log
-file are written.
-<p><dt><b>-L</b><dd>Log the execution of the db_checkpoint utility to the specified file in the
-following format, where <i>###</i> is the process ID, and the date
-is the time the utility was started.
-<p><blockquote><pre>db_checkpoint: ### Wed Jun 15 01:23:45 EDT 1995</pre></blockquote>
-This file will be removed if the db_checkpoint utility exits gracefully.
-<p><dt><b>-p</b><dd>Checkpoint the database at least every <b>min</b> minutes if
-there has been any activity since the last checkpoint.
-<p><dt><b>-V</b><dd>Write the version number to the standard output and exit.
-<p><dt><b>-v</b><dd>Write the time of each checkpoint attempt to the standard
-output.
-</dl>
-<p>At least one of the <b>-1</b>, <b>-k</b> and <b>-p</b> options must
-be specified.
-<p>The db_checkpoint utility uses a Berkeley DB environment (as described for the
-<b>-h</b> option, the environment variable <b>DB_HOME</b>, or,
-because the utility was run in a directory containing a Berkeley DB
-environment). In order to avoid environment corruption when using a Berkeley DB
-environment, db_checkpoint should always be given the chance to detach from
-the environment and exit gracefully. To cause db_checkpoint to release all
-environment resources and exit cleanly, send it an interrupt signal
-(SIGINT).
-<p>The db_checkpoint utility does not attempt to create the Berkeley DB
-shared memory regions if they do not already exist. The application
-which creates the region should be started first, and then, once the
-region is created, the db_checkpoint utility should be started.
-<p>The db_checkpoint utility exits 0 on success, and &gt;0 if an error occurs.
-<h1>Environment Variables</h1>
-<p><dl compact>
-<p><dt>DB_HOME<dd>If the <b>-h</b> option is not specified and the environment variable
-DB_HOME is set, it is used as the path of the database home, as described
-in <a href="../api_c/env_open.html">DBENV-&gt;open</a>.
-</dl>
-<h1>See Also</h1>
-<a href="../utility/berkeley_db_svc.html">berkeley_db_svc</a>,
-<a href="../utility/db_archive.html">db_archive</a>,
-db_checkpoint,
-<a href="../utility/db_deadlock.html">db_deadlock</a>,
-<a href="../utility/db_dump.html">db_dump</a>,
-<a href="../utility/db_load.html">db_load</a>,
-<a href="../utility/db_recover.html">db_recover</a>,
-<a href="../utility/db_stat.html">db_stat</a>,
-<a href="../utility/db_upgrade.html">db_upgrade</a>,
-and
-<a href="../utility/db_verify.html">db_verify</a>.
-</tt>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/utility/db_deadlock.html b/bdb/docs/utility/db_deadlock.html
deleted file mode 100644
index dfd23a903be..00000000000
--- a/bdb/docs/utility/db_deadlock.html
+++ /dev/null
@@ -1,85 +0,0 @@
-<!--$Id: db_deadlock.so,v 10.22 2000/11/29 16:52:38 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db_deadlock</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>db_deadlock</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>db_deadlock [<b>-Vvw</b>]
- [<b>-a o | y</b>] [<b>-h home</b>] [<b>-L file</b>] [<b>-t sec</b>]</pre></h3>
-<h1>Description</h1>
- <a name="3"><!--meow--></a>
-<p>The db_deadlock utility traverses the database lock structures
-and aborts a lock request each time it detects a deadlock. By default,
-a random lock request is chosen to be aborted. This utility should be
-run as a background daemon, or the underlying Berkeley DB deadlock detection
-interfaces should be called in some other way, whenever there are
-multiple threads or processes accessing a database and at least one of
-them is modifying it.
-<p>The options are as follows:
-<p><dl compact>
-<p><dt><b>-a</b><dd>When a deadlock is detected, abort the oldest (o) lock request or the
-youngest (y) lock request.
-<p><dt><b>-h</b><dd>Specify a home directory for the database environment; by
-default, the current working directory is used.
-<p><dt><b>-L</b><dd>Log the execution of the db_deadlock utility to the specified file in the
-following format, where <i>###</i> is the process ID, and the date
-is the time the utility was started.
-<p><blockquote><pre>db_deadlock: ### Wed Jun 15 01:23:45 EDT 1995</pre></blockquote>
-This file will be removed if the db_deadlock utility exits gracefully.
-<p><dt><b>-t</b><dd>Initiate a pass over the database locks at least every <b>sec</b>
-seconds.
-<p><dt><b>-V</b><dd>Write the version number to the standard output and exit.
-<p><dt><b>-v</b><dd>Run in verbose mode, generating messages each time the detector runs.
-<p><dt><b>-w</b><dd>Make a single pass over the database locks every time a process is
-forced to wait for a lock.
-</dl>
-<p>At least one of the <b>-t</b> and <b>-w</b> options must be specified.
-<p>The db_deadlock utility uses a Berkeley DB environment (as described for the
-<b>-h</b> option, the environment variable <b>DB_HOME</b>, or,
-because the utility was run in a directory containing a Berkeley DB
-environment). In order to avoid environment corruption when using a Berkeley DB
-environment, db_deadlock should always be given the chance to detach from
-the environment and exit gracefully. To cause db_deadlock to release all
-environment resources and exit cleanly, send it an interrupt signal
-(SIGINT).
-<p>The db_deadlock utility does not attempt to create the Berkeley DB
-shared memory regions if they do not already exist. The application
-which creates the region should be started first, and then, once the
-region is created, the db_deadlock utility should be started.
-<p>The db_deadlock utility exits 0 on success, and &gt;0 if an error occurs.
-<h1>Environment Variables</h1>
-<p><dl compact>
-<p><dt>DB_HOME<dd>If the <b>-h</b> option is not specified and the environment variable
-DB_HOME is set, it is used as the path of the database home, as described
-in <a href="../api_c/env_open.html">DBENV-&gt;open</a>.
-</dl>
-<h1>See Also</h1>
-<a href="../utility/berkeley_db_svc.html">berkeley_db_svc</a>,
-<a href="../utility/db_archive.html">db_archive</a>,
-<a href="../utility/db_checkpoint.html">db_checkpoint</a>,
-db_deadlock,
-<a href="../utility/db_dump.html">db_dump</a>,
-<a href="../utility/db_load.html">db_load</a>,
-<a href="../utility/db_recover.html">db_recover</a>,
-<a href="../utility/db_stat.html">db_stat</a>,
-<a href="../utility/db_upgrade.html">db_upgrade</a>,
-and
-<a href="../utility/db_verify.html">db_verify</a>.
-</tt>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/utility/db_dump.html b/bdb/docs/utility/db_dump.html
deleted file mode 100644
index bd97b307c7b..00000000000
--- a/bdb/docs/utility/db_dump.html
+++ /dev/null
@@ -1,128 +0,0 @@
-<!--$Id: db_dump.so,v 10.26 2000/09/04 16:00:50 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db_dump</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>db_dump</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>db_dump [<b>-klNpRrV</b>] [<b>-d ahr</b>]
- [<b>-f output</b>] [<b>-h home</b>] [<b>-s database</b>] file
-db_dump185 [<b>-p</b>] [<b>-f output</b>] file</pre></h3>
-<h1>Description</h1>
- <a name="3"><!--meow--></a>
-<p>The db_dump utility reads the database file <b>file</b> and
-writes it to the standard output using a portable flat-text format
-understood by the <a href="../utility/db_load.html">db_load</a> utility. The argument <b>file</b>
-must be a file produced using the Berkeley DB library functions.
-<p>The <a href="../utility/db_dump.html">db_dump185</a> utility is similar to the db_dump utility
-except that it reads databases in the format used by Berkeley DB versions 1.85
-and 1.86.
-<p>The options are as follows:
-<p><dl compact>
-<p><dt><b>-d</b><dd>Dump the specified database in a format helpful for debugging the Berkeley DB
-library routines.
-<p><dl compact>
-<p><dt>a<dd>Display all information.
-<dt>h<dd>Display only page headers.
-<dt>r<dd>Do not display the free-list or pages on the free list. This
-mode is used by the recovery tests.
-</dl>
-<p><b>The output format of the <b>-d</b> option is not standard and may change,
-without notice, between releases of the Berkeley DB library.</b>
-<p><dt><b>-f</b><dd>Write to the specified <b>file</b> instead of to the standard output.
-<p><dt><b>-h</b><dd>Specify a home directory for the database environment; by
-default, the current working directory is used.
-<p><dt><b>-k</b><dd>Dump record numbers from Queue and Recno databases as keys.
-<p><dt><b>-l</b><dd>List the databases stored in the file.
-<p><dt><b>-N</b><dd>Do not acquire shared region locks while running. Other problems such as
-potentially fatal errors in Berkeley DB will be ignored as well. This option
-is intended only for debugging errors and should not be used under any
-other circumstances.
-<p><dt><b>-p</b><dd>If characters in either the key or data items are printing characters (as
-defined by <b>isprint</b>(3)), use printing characters in <b>file</b>
-to represent them. This option permits users to use standard text editors
-and tools to modify the contents of databases.
-<p>Note, different systems may have different notions as to what characters
-are considered <i>printing characters</i>, and databases dumped in
-this manner may be less portable to external systems.
-<p><dt><b>-R</b><dd>Aggressively salvage data from a possibly corrupt file. The <b>-R</b>
-flag differs from the <b>-r</b> option in that it will return all
-possible data from the file at the risk of also returning already deleted
-or otherwise nonsensical items. Data dumped in this fashion will almost
-certainly have to be edited by hand or other means before the data is
-ready for re-load into another database
-<p><dt><b>-r</b><dd>Salvage data from a possibly corrupt file. When used on a uncorrupted
-database, this option should return equivalent data to a normal dump, but
-most likely in a different order.
-<p><dt><b>-s</b><dd>Specify a single database to dump. If no database is specified, all
-databases in the database file are dumped.
-<p><dt><b>-V</b><dd>Write the version number to the standard output and exit.
-</dl>
-<p>Dumping and reloading Hash databases that use user-defined hash functions
-will result in new databases that use the default hash function.
-While using the default hash function may not be optimal for the new database,
-it will continue to work correctly.
-<p>Dumping and reloading Btree databases that use user-defined prefix or
-comparison functions will result in new databases that use the default
-prefix and comparison functions.
-<b>In this case, it is quite likely that the database will be damaged
-beyond repair permitting neither record storage or retrieval.</b>
-<p>The only available workaround for either case is to modify the sources
-for the <a href="../utility/db_load.html">db_load</a> utility to load the database using the correct
-hash, prefix and comparison functions.
-<p>The <a href="../utility/db_dump.html">db_dump185</a> utility may not be available on your system as it
-is not always built when the Berkeley DB libraries and utilities are installed.
-If you are unable to find it, see your system administrator for further
-information.
-<p>The db_dump and <a href="../utility/db_dump.html">db_dump185</a> utility output formats are
-documented in the <a href="../ref/dumpload/format.html">Dump Output
-Formats</a> section of the Reference Guide.
-<p>The db_dump utility may be used with a Berkeley DB environment (as described for the
-<b>-h</b> option, the environment variable <b>DB_HOME</b>, or,
-because the utility was run in a directory containing a Berkeley DB
-environment). In order to avoid environment corruption when using a Berkeley DB
-environment, db_dump should always be given the chance to detach from
-the environment and exit gracefully. To cause db_dump to release all
-environment resources and exit cleanly, send it an interrupt signal
-(SIGINT).
-<p>When using an Berkeley DB database environment, the db_dump utility
-does not configure for any kind of database locking and so should not
-be used with active Berkeley DB environments. If db_dump is used in
-an active database environment, corruption may result.
-<p>The db_dump utility exits 0 on success, and &gt;0 if an error occurs.
-<p>The <a href="../utility/db_dump.html">db_dump185</a> utility exits 0 on success, and &gt;0 if an error occurs.
-<h1>Environment Variables</h1>
-<p><dl compact>
-<p><dt>DB_HOME<dd>If the <b>-h</b> option is not specified and the environment variable
-DB_HOME is set, it is used as the path of the database home, as described
-in <a href="../api_c/env_open.html">DBENV-&gt;open</a>.
-</dl>
-<h1>See Also</h1>
-<a href="../utility/berkeley_db_svc.html">berkeley_db_svc</a>,
-<a href="../utility/db_archive.html">db_archive</a>,
-<a href="../utility/db_checkpoint.html">db_checkpoint</a>,
-<a href="../utility/db_deadlock.html">db_deadlock</a>,
-db_dump,
-<a href="../utility/db_load.html">db_load</a>,
-<a href="../utility/db_recover.html">db_recover</a>,
-<a href="../utility/db_stat.html">db_stat</a>,
-<a href="../utility/db_upgrade.html">db_upgrade</a>,
-and
-<a href="../utility/db_verify.html">db_verify</a>.
-</tt>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/utility/db_load.html b/bdb/docs/utility/db_load.html
deleted file mode 100644
index 41084f09cd0..00000000000
--- a/bdb/docs/utility/db_load.html
+++ /dev/null
@@ -1,151 +0,0 @@
-<!--$Id: db_load.so,v 10.29 2000/12/04 18:05:45 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db_load</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>db_load</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>db_load [<b>-nTV</b>] [<b>-c name=value</b>] [<b>-f file</b>]
- [<b>-h home</b>] [<b>-t btree | hash | queue | recno</b>] file</pre></h3>
-<h1>Description</h1>
- <a name="3"><!--meow--></a>
-<p>The db_load utility reads from the standard input and loads it
-into the database <b>file</b>. The database <b>file</b> is created if
-it does not already exist.
-<p>The input to db_load must be in the output format specified by the
-<a href="../utility/db_dump.html">db_dump</a> utility, utilities, or as specified for the <b>-T</b>
-below.
-<p>The options are as follows:
-<p><dl compact>
-<p><dt><b>-c</b><dd>Specify configuration options ignoring any value they may have based on
-the input. The command-line format is <b>name=value</b>. See
-<a href="db_load.html#Supported Keywords">Supported Keywords</a> for a
-list of supported words for the <b>-c</b> option.
-<p><dt><b>-f</b><dd>Read from the specified <b>input</b> file instead of from the standard
-input.
-<p><dt><b>-h</b><dd>Specify a home directory for the database environment.
-<p>If a home directory is specified, the database environment is opened using
-the <a href="../api_c/env_open.html#DB_INIT_LOCK">DB_INIT_LOCK</a>, <a href="../api_c/env_open.html#DB_INIT_LOG">DB_INIT_LOG</a>, <a href="../api_c/env_open.html#DB_INIT_MPOOL">DB_INIT_MPOOL</a>,
-<a href="../api_c/env_open.html#DB_INIT_TXN">DB_INIT_TXN</a> and <a href="../api_c/env_open.html#DB_USE_ENVIRON">DB_USE_ENVIRON</a> flags to
-<a href="../api_c/env_open.html">DBENV-&gt;open</a>. (This means that db_load can be used to load
-data into databases while they are in use by other processes.) If the
-<a href="../api_c/env_open.html">DBENV-&gt;open</a> call fails, or if no home directory is specified, the
-database is still updated, but the environment is ignored, e.g., no
-locking is done.
-<p><dt><b>-n</b><dd>Do not overwrite existing keys in the database when loading into an
-already existing database. If a key/data pair cannot be loaded into the
-database for this reason, a warning message is displayed on the standard
-error output and the key/data pair are skipped.
-<p><dt><b>-T</b><dd>The <b>-T</b> option allows non-Berkeley DB applications to easily load text
-files into databases.
-<p>If the database to be created is of type Btree or Hash, or the keyword
-<b>keys</b> is specified as set, the input must be paired lines of text,
-where the first line of the pair is the key item, and the second line of
-the pair is its corresponding data item. If the database to be created
-is of type Queue or Recno and the keywork <b>keys</b> is not set, the
-input must be lines of text, where each line is a new data item for the
-database.
-<p>A simple escape mechanism, where newline and backslash (\)
-characters are special, is applied to the text input. Newline characters
-are interpreted as record separators. Backslash characters in the text
-will be interpreted in one of two ways: if the backslash character
-precedes another backslash character, the pair will be interpreted as a
-literal backslash. If the backslash character precedes any other
-character, the two characters following the backslash will be interpreted
-as hexadecimal specification of a single character, e.g., \0a
-is a newline character in the ASCII character set.
-<p>For this reason, any backslash or newline characters that naturally
-occur in the text input must be escaped to avoid misinterpretation by
-db_load.
-<p>If the <b>-T</b> option is specified, the underlying access method type
-must be specified using the <b>-t</b> option.
-<p><dt><b>-t</b><dd>Specify the underlying access method. If no <b>-t</b> option is
-specified, the database will be loaded into a database of the same type
-as was dumped, e.g., a Hash database will be created if a Hash database
-was dumped.
-<p>Btree and Hash databases may be converted from one to the other. Queue
-and Recno databases may be converted from one to the other. If the
-<b>-k</b> option was specified on the call to <a href="../utility/db_dump.html">db_dump</a> then Queue
-and Recno databases may be converted to Btree or Hash, with the key being
-the integer record number.
-<p><dt><b>-V</b><dd>Write the version number to the standard output and exit.
-</dl>
-<p>The db_load utility may be used with a Berkeley DB environment (as described for the
-<b>-h</b> option, the environment variable <b>DB_HOME</b>, or,
-because the utility was run in a directory containing a Berkeley DB
-environment). In order to avoid environment corruption when using a Berkeley DB
-environment, db_load should always be given the chance to detach from
-the environment and exit gracefully. To cause db_load to release all
-environment resources and exit cleanly, send it an interrupt signal
-(SIGINT).
-<p>The db_load utility exits 0 on success, 1 if one or more key/data
-pairs were not loaded into the database because the key already existed,
-and &gt;1 if an error occurs.
-<h3>Examples</h3>
-<p>The db_load utility can be used to load text files into databases.
-For example, the following command loads the standard UNIX
-<i>/etc/passwd</i> file into a database, with the login name as the
-key item and the entire password entry as the data item:
-<p><blockquote><pre>awk -F: '{print $1; print $0}' &lt; /etc/passwd |
- sed 's/\\/\\\\/g' | db_load -T -t hash passwd.db</pre></blockquote>
-<p>Note that backslash characters naturally occurring in the text are escaped
-to avoid interpretation as escape characters by db_load.
-<h1>Environment Variables</h1>
-<p><dl compact>
-<p><dt>DB_HOME<dd>If the <b>-h</b> option is not specified and the environment variable
-DB_HOME is set, it is used as the path of the database home, as described
-in <a href="../api_c/env_open.html">DBENV-&gt;open</a>.
-</dl>
-<h3>Supported Keywords</h3>
-The following keywords are supported for the <b>-c</b> command-line
-option to the db_load utility. See <a href="../api_c/db_open.html">DB-&gt;open</a> for further
-discussion of these keywords and what values should be specified.
-<p>The parenthetical listing specifies how the value part of the
-<b>name=value</b> pair is interpreted. Items listed as (boolean) expect
-value to be <b>1</b> (set) or <b>0</b> (unset). Items listed as
-(number) convert value to a number. Items listed as (string) use the
-string value without modification.
-<p><dl compact>
-<dt>bt_minkey (number)<dd>The minimum number of keys per page.
-<dt>database (string)<dd>The database to load.
-<dt>db_lorder (number)<dd>The byte order for integers in the stored database metadata.
-<dt>db_pagesize (number)<dd>The size of pages used for nodes in the tree, in bytes.
-<dt>duplicates (boolean)<dd>The value of the <a href="../api_c/db_set_flags.html#DB_DUP">DB_DUP</a> flag.
-<dt>dupsort (boolean)<dd>The value of the <a href="../api_c/db_set_flags.html#DB_DUPSORT">DB_DUPSORT</a> flag.
-<dt>h_ffactor (number)<dd>The density within the Hash database.
-<dt>h_nelem (number)<dd>The size of the Hash database.
-<dt>keys (boolean)<dd>Specify if keys are present for Queue or Recno databases.
-<dt>re_len (number)<dd>Specify fixed-length records of the specified length.
-<dt>re_pad (string)<dd>Specify the fixed-length record pad character.
-<dt>recnum (boolean)<dd>The value of the <a href="../api_c/db_set_flags.html#DB_RECNUM">DB_RECNUM</a> flag.
-<dt>renumber (boolean)<dd>The value of the <a href="../api_c/db_set_flags.html#DB_RENUMBER">DB_RENUMBER</a> flag.
-</dl>
-<h1>See Also</h1>
-<a href="../utility/berkeley_db_svc.html">berkeley_db_svc</a>,
-<a href="../utility/db_archive.html">db_archive</a>,
-<a href="../utility/db_checkpoint.html">db_checkpoint</a>,
-<a href="../utility/db_deadlock.html">db_deadlock</a>,
-<a href="../utility/db_dump.html">db_dump</a>,
-db_load,
-<a href="../utility/db_recover.html">db_recover</a>,
-<a href="../utility/db_stat.html">db_stat</a>,
-<a href="../utility/db_upgrade.html">db_upgrade</a>,
-and
-<a href="../utility/db_verify.html">db_verify</a>.
-</tt>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/utility/db_printlog.html b/bdb/docs/utility/db_printlog.html
deleted file mode 100644
index 10033e09483..00000000000
--- a/bdb/docs/utility/db_printlog.html
+++ /dev/null
@@ -1,69 +0,0 @@
-<!--$Id: db_printlog.so,v 10.10 2000/04/03 20:10:39 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db_printlog</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>db_printlog</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>db_printlog [<b>-NV</b>] [<b>-h home</b>]</pre></h3>
-<h1>Description</h1>
- <a name="3"><!--meow--></a>
-<p>The db_printlog utility is a debugging utility that dumps Berkeley DB
-log files in a human-readable format.
-<p>The options are as follows:
-<p><dl compact>
-<p><dt><b>-h</b><dd>Specify a home directory for the database environment; by
-default, the current working directory is used.
-<p><dt><b>-N</b><dd>Do not acquire shared region locks while running. Other problems such as
-potentially fatal errors in Berkeley DB will be ignored as well. This option
-is intended only for debugging errors and should not be used under any
-other circumstances.
-<p><dt><b>-V</b><dd>Write the version number to the standard output and exit.
-</dl>
-<p>For more information on the db_printlog output and using it to
-debug applications, see <a href="../ref/debug/printlog.html">Reviewing
-Berkeley DB log files</a>.
-<p>The db_printlog utility uses a Berkeley DB environment (as described for the
-<b>-h</b> option, the environment variable <b>DB_HOME</b>, or,
-because the utility was run in a directory containing a Berkeley DB
-environment). In order to avoid environment corruption when using a Berkeley DB
-environment, db_printlog should always be given the chance to detach from
-the environment and exit gracefully. To cause db_printlog to release all
-environment resources and exit cleanly, send it an interrupt signal
-(SIGINT).
-<p>The db_printlog utility exits 0 on success, and &gt;0 if an error occurs.
-<h1>Environment Variables</h1>
-<p><dl compact>
-<p><dt>DB_HOME<dd>If the <b>-h</b> option is not specified and the environment variable
-DB_HOME is set, it is used as the path of the database home, as described
-in <a href="../api_c/env_open.html">DBENV-&gt;open</a>.
-</dl>
-<h1>See Also</h1>
-<a href="../utility/berkeley_db_svc.html">berkeley_db_svc</a>,
-<a href="../utility/db_archive.html">db_archive</a>,
-<a href="../utility/db_checkpoint.html">db_checkpoint</a>,
-<a href="../utility/db_deadlock.html">db_deadlock</a>,
-<a href="../utility/db_dump.html">db_dump</a>,
-<a href="../utility/db_load.html">db_load</a>,
-<a href="../utility/db_recover.html">db_recover</a>,
-<a href="../utility/db_stat.html">db_stat</a>,
-<a href="../utility/db_upgrade.html">db_upgrade</a>,
-and
-<a href="../utility/db_verify.html">db_verify</a>.
-</tt>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/utility/db_recover.html b/bdb/docs/utility/db_recover.html
deleted file mode 100644
index 80341597cd7..00000000000
--- a/bdb/docs/utility/db_recover.html
+++ /dev/null
@@ -1,97 +0,0 @@
-<!--$Id: db_recover.so,v 10.22 2000/05/10 17:56:02 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db_recover</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>db_recover</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>db_recover [<b>-cVv</b>] [<b>-h home</b>] [<b>-t [[CC]YY]MMDDhhmm[.SS]]</b>]</pre></h3>
-<h1>Description</h1>
- <a name="3"><!--meow--></a>
-<p>The db_recover utility must be run after an unexpected application,
-Berkeley DB, or system failure to restore the database to a consistent state.
-All committed transactions are guaranteed to appear after db_recover
-has run, and all uncommitted transactions will be completely undone.
-<p>The options are as follows:
-<p><dl compact>
-<p><dt><b>-c</b><dd>Perform catastrophic recovery instead of normal recovery.
-<p><dt><b>-h</b><dd>Specify a home directory for the database environment; by
-default, the current working directory is used.
-<p><dt><b>-t</b><dd>Recover to the time specified rather than to the most current possible
-date. The timestamp argument should be in the form
-[[CC]YY]MMDDhhmm[.SS] where each pair of
-letters represents the following:
-<p><dl compact>
-<p><dt>CC<dd>The first two digits of the year (the century).
-<dt>YY<dd>The second two digits of the year. If "YY" is specified, but "CC" is not,
-a value for "YY" between 69 and 99 results in a "YY" value of 19. Otherwise,
-a "YY" value of 20 is used.
-<dt>MM<dd>The month of the year, from 1 to 12.
-<dt>DD<dd>The day of the month, from 1 to 31.
-<dt>hh<dd>The hour of the day, from 0 to 23.
-<dt>mm<dd>The minute of the hour, from 0 to 59.
-<dt>SS<dd>The second of the minute, from 0 to 61.
-</dl>
-<p>If the "CC" and "YY" letter pairs are not specified, the values default
-to the current year. If the "SS" letter pair is not specified, the value
-defaults to 0.
-<p><dt><b>-V</b><dd>Write the version number to the standard output and exit.
-<p><dt><b>-v</b><dd>Run in verbose mode.
-</dl>
-<p>In the case of catastrophic recovery, an archival copy, or
-<i>snapshot</i> of all database files must be restored along with all
-of the log files written since the database file snapshot was made. (If
-disk space is a problem, log files may be referenced by symbolic links).
-For further information on creating a database snapshot, see
-<a href="../ref/transapp/archival.html">Archival Procedures</a>.
-For further information on performing recovery, see
-<a href="../ref/transapp/recovery.html">Recovery Procedures</a>.
-<p>If the failure was not catastrophic, the files present on the system at the
-time of failure are sufficient to perform recovery.
-<p>If log files are missing, db_recover will identify the missing
-log file(s) and fail, in which case the missing log files need to be
-restored and recovery performed again.
-<p>The db_recover utility uses a Berkeley DB environment (as described for the
-<b>-h</b> option, the environment variable <b>DB_HOME</b>, or,
-because the utility was run in a directory containing a Berkeley DB
-environment). In order to avoid environment corruption when using a Berkeley DB
-environment, db_recover should always be given the chance to detach from
-the environment and exit gracefully. To cause db_recover to release all
-environment resources and exit cleanly, send it an interrupt signal
-(SIGINT).
-<p>The db_recover utility exits 0 on success, and &gt;0 if an error occurs.
-<h1>Environment Variables</h1>
-<p><dl compact>
-<p><dt>DB_HOME<dd>If the <b>-h</b> option is not specified and the environment variable
-DB_HOME is set, it is used as the path of the database home, as described
-in <a href="../api_c/env_open.html">DBENV-&gt;open</a>.
-</dl>
-<h1>See Also</h1>
-<a href="../utility/berkeley_db_svc.html">berkeley_db_svc</a>,
-<a href="../utility/db_archive.html">db_archive</a>,
-<a href="../utility/db_checkpoint.html">db_checkpoint</a>,
-<a href="../utility/db_deadlock.html">db_deadlock</a>,
-<a href="../utility/db_dump.html">db_dump</a>,
-<a href="../utility/db_load.html">db_load</a>,
-db_recover,
-<a href="../utility/db_stat.html">db_stat</a>,
-<a href="../utility/db_upgrade.html">db_upgrade</a>,
-and
-<a href="../utility/db_verify.html">db_verify</a>.
-</tt>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/utility/db_stat.html b/bdb/docs/utility/db_stat.html
deleted file mode 100644
index ba9263e3221..00000000000
--- a/bdb/docs/utility/db_stat.html
+++ /dev/null
@@ -1,104 +0,0 @@
-<!--$Id: db_stat.so,v 10.27 2000/04/03 20:10:39 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db_stat</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>db_stat</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>db_stat [<b>-celmNtV</b>]
- [<b>-C Acfhlmo</b>] [<b>-d file [<b>-s database</b>]</b>] [<b>-h home</b>] [<b>-M Ahlm</b>]</pre></h3>
-<h1>Description</h1>
- <a name="3"><!--meow--></a>
-<p>The db_stat utility displays statistics for Berkeley DB environments.
-<p>The options are as follows:
-<p><dl compact>
-<p><dt><b>-C</b><dd>Display internal information about the lock region. (The output from this
-option is often both voluminous and meaningless, and is intended only for
-debugging.)
-<p><dl compact>
-<p><dt>A<dd>Display all information.
-<dt>c<dd>Display lock conflict matrix.
-<dt>f<dd>Display lock and object free lists.
-<dt>l<dd>Display lockers within hash chains.
-<dt>m<dd>Display region memory information.
-<dt>o<dd>Display objects within hash chains.
-</dl>
-<p><dt><b>-c</b><dd>Display lock region statistics as described in <a href="../api_c/lock_stat.html">lock_stat</a>.
-<p><dt><b>-d</b><dd>Display database statistics for the specified file, as described in
-<a href="../api_c/db_stat.html">DB-&gt;stat</a>.
-<p>If the database contains multiple databases and the <b>-s</b> flag is
-not specified, the statistics are for the internal database that describes
-the other databases the file contains, and not for the file as a whole.
-<p><dt><b>-e</b><dd>Display current environment statistics.
-<p><dt><b>-h</b><dd>Specify a home directory for the database environment; by
-default, the current working directory is used.
-<p><dt><b>-l</b><dd>Display log region statistics as described in <a href="../api_c/log_stat.html">log_stat</a>.
-<p><dt><b>-M</b><dd>Display internal information about the shared memory buffer pool. (The
-output from this option is often both voluminous and meaningless, and is
-intended only for debugging.)
-<p><dl compact>
-<p><dt>A<dd>Display all information.
-<dt>h<dd>Display buffers within hash chains.
-<dt>l<dd>Display buffers within LRU chains.
-<dt>m<dd>Display region memory information.
-</dl>
-<p><dt><b>-m</b><dd>Display shared memory buffer pool statistics as described in
-<a href="../api_c/memp_stat.html">memp_stat</a>.
-<p><dt><b>-N</b><dd>Do not acquire shared region locks while running. Other problems such as
-potentially fatal errors in Berkeley DB will be ignored as well. This option
-is intended only for debugging errors and should not be used under any
-other circumstances.
-<p><dt><b>-s</b><dd>Display statistics for the specified database contained in the file
-specified with the <b>-d</b> flag.
-<p><dt><b>-t</b><dd>Display transaction region statistics as described in <a href="../api_c/txn_stat.html">txn_stat</a>.
-<p><dt><b>-V</b><dd>Write the version number to the standard output and exit.
-</dl>
-<p>Only one set of statistics is displayed for each run, and the last option
-specifying a set of statistics takes precedence.
-<p>Values smaller than 10 million are generally displayed without any special
-notation. Values larger than 10 million are normally displayed as
-<b>&lt;number&gt;M</b>.
-<p>The db_stat utility may be used with a Berkeley DB environment (as described for the
-<b>-h</b> option, the environment variable <b>DB_HOME</b>, or,
-because the utility was run in a directory containing a Berkeley DB
-environment). In order to avoid environment corruption when using a Berkeley DB
-environment, db_stat should always be given the chance to detach from
-the environment and exit gracefully. To cause db_stat to release all
-environment resources and exit cleanly, send it an interrupt signal
-(SIGINT).
-<p>The db_stat utility exits 0 on success, and &gt;0 if an error occurs.
-<h1>Environment Variables</h1>
-<p><dl compact>
-<p><dt>DB_HOME<dd>If the <b>-h</b> option is not specified and the environment variable
-DB_HOME is set, it is used as the path of the database home, as described
-in <a href="../api_c/env_open.html">DBENV-&gt;open</a>.
-</dl>
-<h1>See Also</h1>
-<a href="../utility/berkeley_db_svc.html">berkeley_db_svc</a>,
-<a href="../utility/db_archive.html">db_archive</a>,
-<a href="../utility/db_checkpoint.html">db_checkpoint</a>,
-<a href="../utility/db_deadlock.html">db_deadlock</a>,
-<a href="../utility/db_dump.html">db_dump</a>,
-<a href="../utility/db_load.html">db_load</a>,
-<a href="../utility/db_recover.html">db_recover</a>,
-db_stat,
-<a href="../utility/db_upgrade.html">db_upgrade</a>,
-and
-<a href="../utility/db_verify.html">db_verify</a>.
-</tt>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/utility/db_upgrade.html b/bdb/docs/utility/db_upgrade.html
deleted file mode 100644
index 6375f380ed9..00000000000
--- a/bdb/docs/utility/db_upgrade.html
+++ /dev/null
@@ -1,93 +0,0 @@
-<!--$Id: db_upgrade.so,v 1.4 2000/08/10 17:54:50 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db_upgrade</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>db_upgrade</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>db_upgrade [<b>-NsV</b>] [<b>-h home</b>] file ...</pre></h3>
-<h1>Description</h1>
- <a name="3"><!--meow--></a> <a name="4"><!--meow--></a>
-<p>The db_upgrade utility upgrades the Berkeley DB version of one or more
-files and the databases they contain to the current release version.
-<p>The options are as follows:
-<p><dl compact>
-<p><dt><b>-h</b><dd>Specify a home directory for the database environment; by
-default, the current working directory is used.
-<p><dt><b>-N</b><dd>Do not acquire shared region locks while running. Other problems such as
-potentially fatal errors in Berkeley DB will be ignored as well. This option
-is intended only for debugging errors and should not be used under any
-other circumstances.
-<p><dt><b>-s</b><dd>This flag is only meaningful when upgrading databases from releases before the
-Berkeley DB 3.1 release.
-<p>As part of the upgrade from the Berkeley DB 3.0 release to the 3.1 release, the
-on-disk format of duplicate data items changed. To correctly upgrade the
-format requires applications specify if duplicate data items in the
-database are sorted or not. Specifying the <b>-s</b> flag means that
-the duplicates are sorted, otherwise they are assumed to be unsorted.
-Incorrectly specifying the value of this flag may lead to database
-corruption.
-<p>Because the db_upgrade utility upgrades a physical file (including
-all of the databases it contains), it is not possible to use
-db_upgrade to upgrade files where some of the databases it
-includes have sorted duplicate data items and some of the databases it
-includes have unsorted duplicate data items. If the file does not have
-more than a single database, or the databases do not support duplicate
-data items, or all of the databases that support duplicate data items
-support the same style of duplicates (either sorted or unsorted),
-db_upgrade will work correctly as long as the <b>-s</b> flag is
-correctly specified. Otherwise, the file cannot be upgraded using
-db_upgrade, and must be upgraded manually using the <a href="../utility/db_dump.html">db_dump</a>
-and <a href="../utility/db_load.html">db_load</a> utilities.
-<p><dt><b>-V</b><dd>Write the version number to the standard output and exit.
-</dl>
-<p><b>It is important to realize that Berkeley DB database upgrades are done
-in place, and so are potentially destructive.</b> This means that if the
-system crashes during the upgrade procedure, or if the upgrade procedure
-runs out of disk space, the databases may be left in an inconsistent and
-unrecoverable state. See <a href="../ref/am/upgrade.html">Upgrading
-databases</a> for more information.
-<p>The db_upgrade utility may be used with a Berkeley DB environment (as described for the
-<b>-h</b> option, the environment variable <b>DB_HOME</b>, or,
-because the utility was run in a directory containing a Berkeley DB
-environment). In order to avoid environment corruption when using a Berkeley DB
-environment, db_upgrade should always be given the chance to detach from
-the environment and exit gracefully. To cause db_upgrade to release all
-environment resources and exit cleanly, send it an interrupt signal
-(SIGINT).
-<p>The db_upgrade utility exits 0 on success, and &gt;0 if an error occurs.
-<h1>Environment Variables</h1>
-<p><dl compact>
-<p><dt>DB_HOME<dd>If the <b>-h</b> option is not specified and the environment variable
-DB_HOME is set, it is used as the path of the database home, as described
-in <a href="../api_c/env_open.html">DBENV-&gt;open</a>.
-</dl>
-<h1>See Also</h1>
-<a href="../utility/berkeley_db_svc.html">berkeley_db_svc</a>,
-<a href="../utility/db_archive.html">db_archive</a>,
-<a href="../utility/db_checkpoint.html">db_checkpoint</a>,
-<a href="../utility/db_deadlock.html">db_deadlock</a>,
-<a href="../utility/db_dump.html">db_dump</a>,
-<a href="../utility/db_load.html">db_load</a>,
-<a href="../utility/db_recover.html">db_recover</a>,
-<a href="../utility/db_stat.html">db_stat</a>,
-db_upgrade,
-and
-<a href="../utility/db_verify.html">db_verify</a>.
-</tt>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/utility/db_verify.html b/bdb/docs/utility/db_verify.html
deleted file mode 100644
index 610e857a9da..00000000000
--- a/bdb/docs/utility/db_verify.html
+++ /dev/null
@@ -1,73 +0,0 @@
-<!--$Id: db_verify.so,v 10.3 2000/07/13 16:41:50 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: db_verify</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
- <a name="2"><!--meow--></a>
-<table><tr valign=top>
-<td>
-<h1>db_verify</h1>
-</td>
-<td width="1%">
-<a href="../api_c/c_index.html"><img src="../images/api.gif" alt="API"></a><a href="../ref/toc.html"><img src="../images/ref.gif" alt="Ref"></a>
-</td></tr></table>
-<hr size=1 noshade>
-<tt>
-<h3><pre>db_verify [<b>-NqV</b>] [<b>-h home</b>] file ...</pre></h3>
-<h1>Description</h1>
- <a name="3"><!--meow--></a> <a name="4"><!--meow--></a>
-<p>The db_verify utility verifies the structure of one or more
-files and the databases they contain.
-<p>The options are as follows:
-<p><dl compact>
-<p><dt><b>-h</b><dd>Specify a home directory for the database environment; by
-default, the current working directory is used.
-<p><dt><b>-N</b><dd>Do not acquire shared region locks while running. Other problems such as
-potentially fatal errors in Berkeley DB will be ignored as well. This option
-is intended only for debugging errors and should not be used under any
-other circumstances.
-<p><dt><b>-q</b><dd>Suppress the printing of any error descriptions, simply exit success or
-failure.
-<p><dt><b>-V</b><dd>Write the version number to the standard output and exit.
-</dl>
-<p>If the file being verified contains databases using non-default
-comparison or hashing functions, the db_verify utility may
-not be used for verification, as it will likely always return failure.
-Such files must be verified explicitly, using the <a href="../api_c/db_verify.html">DB-&gt;verify</a> function,
-after setting the correct comparison or hashing functions.
-<p>The db_verify utility may be used with a Berkeley DB environment (as described for the
-<b>-h</b> option, the environment variable <b>DB_HOME</b>, or,
-because the utility was run in a directory containing a Berkeley DB
-environment). In order to avoid environment corruption when using a Berkeley DB
-environment, db_verify should always be given the chance to detach from
-the environment and exit gracefully. To cause db_verify to release all
-environment resources and exit cleanly, send it an interrupt signal
-(SIGINT).
-<p>The db_verify utility exits 0 on success, and &gt;0 if an error occurs.
-<h1>Environment Variables</h1>
-<p><dl compact>
-<p><dt>DB_HOME<dd>If the <b>-h</b> option is not specified and the environment variable
-DB_HOME is set, it is used as the path of the database home, as described
-in <a href="../api_c/env_open.html">DBENV-&gt;open</a>.
-</dl>
-<h1>See Also</h1>
-<a href="../utility/berkeley_db_svc.html">berkeley_db_svc</a>,
-<a href="../utility/db_archive.html">db_archive</a>,
-<a href="../utility/db_checkpoint.html">db_checkpoint</a>,
-<a href="../utility/db_deadlock.html">db_deadlock</a>,
-<a href="../utility/db_dump.html">db_dump</a>,
-<a href="../utility/db_load.html">db_load</a>,
-<a href="../utility/db_recover.html">db_recover</a>,
-<a href="../utility/db_stat.html">db_stat</a>,
-<a href="../utility/db_upgrade.html">db_upgrade</a>,
-and
-db_verify.
-</tt>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/bdb/docs/utility/index.html b/bdb/docs/utility/index.html
deleted file mode 100644
index 3f0c430ab0f..00000000000
--- a/bdb/docs/utility/index.html
+++ /dev/null
@@ -1,28 +0,0 @@
-<!--$Id: index.so,v 10.10 2000/04/03 20:10:39 bostic Exp $-->
-<!--Copyright 1997, 1998, 1999, 2000 by Sleepycat Software, Inc.-->
-<!--All rights reserved.-->
-<html>
-<head>
-<title>Berkeley DB: Berkeley DB Supporting Utilities</title>
-<meta name="description" content="Berkeley DB: An embedded database programmatic toolkit.">
-<meta name="keywords" content="embedded,database,programmatic,toolkit,b+tree,btree,hash,hashing,transaction,transactions,locking,logging,access method,access methods,java,C,C++">
-</head>
-<body bgcolor=white>
-<h1 align=center>Berkeley DB Supporting Utilities</h1>
-<p><table border=1 align=center>
-<tr><th>Utility</th><th>Description</th></tr>
-<tr><td><a href="../utility/berkeley_db_svc.html">berkeley_db_svc</a></td><td>RPC server utility</td></tr>
-<tr><td><a href="../utility/db_archive.html">db_archive</a></td><td>Archival utility</td></tr>
-<tr><td><a href="../utility/db_checkpoint.html">db_checkpoint</a></td><td>Transaction checkpoint utility</td></tr>
-<tr><td><a href="../utility/db_deadlock.html">db_deadlock</a></td><td>Deadlock detection utility</td></tr>
-<tr><td><a href="../utility/db_dump.html">db_dump</a></td><td>Database dump utility</td></tr>
-<tr><td><a href="../utility/db_load.html">db_load</a></td><td>Database load utility</td></tr>
-<tr><td><a href="../utility/db_printlog.html">db_printlog</a></td><td>Transaction log display utility</td></tr>
-<tr><td><a href="../utility/db_recover.html">db_recover</a></td><td>Recovery utility</td></tr>
-<tr><td><a href="../utility/db_stat.html">db_stat</a></td><td>Statistics utility</td></tr>
-<tr><td><a href="../utility/db_upgrade.html">db_upgrade</a></td><td>Database upgrade utility</td></tr>
-<tr><td><a href="../utility/db_verify.html">db_verify</a></td><td>Verification utility</td></tr>
-</table>
-<p><font size=1><a href="http://www.sleepycat.com">Copyright Sleepycat Software</a></font>
-</body>
-</html>
diff --git a/client/client_priv.h b/client/client_priv.h
index f321b47aec0..ae5556cac35 100644
--- a/client/client_priv.h
+++ b/client/client_priv.h
@@ -22,7 +22,7 @@
#include <mysql_embed.h>
#include <mysql.h>
#include <errmsg.h>
-#include <getopt.h>
+#include <my_getopt.h>
/* We have to define 'enum options' identical in all files to keep OS2 happy */
diff --git a/client/mysql.cc b/client/mysql.cc
index c4dbf1688ef..1f710580991 100644
--- a/client/mysql.cc
+++ b/client/mysql.cc
@@ -1,4 +1,4 @@
-/* Copyright (C) 2000 MySQL AB
+/* Copyright (C) 2000-2002 MySQL AB
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -32,7 +32,6 @@
#include "client_priv.h"
#include <m_ctype.h>
#include <stdarg.h>
-#include <my_getopt.h>
#include <my_dir.h>
#ifndef __GNU_LIBRARY__
#define __GNU_LIBRARY__ // Skip warnings in getopt.h
@@ -41,7 +40,7 @@
#include <signal.h>
#include <violite.h>
-const char *VER= "12.1";
+const char *VER= "12.10";
/* Don't try to make a nice table if the data is too big */
#define MAX_COLUMN_LENGTH 1024
@@ -120,7 +119,7 @@ typedef enum enum_info_type INFO_TYPE;
static MYSQL mysql; /* The connection */
static my_bool info_flag=0,ignore_errors=0,wait_flag=0,quick=0,
connected=0,opt_raw_data=0,unbuffered=0,output_tables=0,
- no_rehash=0,skip_updates=0,safe_updates=0,one_database=0,
+ rehash=1,skip_updates=0,safe_updates=0,one_database=0,
opt_compress=0, using_opt_local_infile=0,
vertical=0, line_numbers=1, column_names=1,opt_html=0,
opt_xml=0,opt_nopager=1, opt_outfile=0, named_cmds= 0,
@@ -355,18 +354,6 @@ int main(int argc,char *argv[])
mysql_thread_id(&mysql),mysql_get_server_info(&mysql));
put_info((char*) glob_buffer.ptr(),INFO_INFO);
-#ifdef HAVE_OPENSSL
- if (mysql.net.vio->ssl_ && SSL_get_cipher(mysql.net.vio->ssl_))
- {
- sprintf((char*) glob_buffer.ptr(),
- "SSL cipher in use is %s\n", SSL_get_cipher(mysql.net.vio->ssl_));
- put_info((char*) glob_buffer.ptr(),INFO_INFO);
- }
- else
- put_info("SSL is not in use\n",INFO_INFO);
-#endif /* HAVE_OPENSSL */
-
-
#ifdef HAVE_READLINE
initialize_readline(my_progname);
if (!status.batch && !quick && !opt_html && !opt_xml)
@@ -452,16 +439,18 @@ static struct my_option my_long_options[] =
0, 0, 0, 0, 0},
{"auto-rehash", OPT_AUTO_REHASH,
"Enable automatic rehashing. One doesn't need to use 'rehash' to get table and field completion, but startup and reconnecting may take a longer time. Disable with --disable-auto-rehash.",
- (gptr*) &no_rehash, (gptr*) &no_rehash, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0,
- 0},
+ (gptr*) &rehash, (gptr*) &rehash, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
{"no-auto-rehash", 'A',
- "No automatic rehashing. One has to use 'rehash' to get table and field completion. This gives a quicker start of mysql and disables rehashing on reconnect. WARNING: options depricated; use --disable-auto-rehash instead.",
+ "No automatic rehashing. One has to use 'rehash' to get table and field completion. This gives a quicker start of mysql and disables rehashing on reconnect. WARNING: options deprecated; use --disable-auto-rehash instead.",
0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
{"batch", 'B',
"Print results with a tab as separator, each row on new line. Doesn't use history file.", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
{"character-sets-dir", OPT_CHARSETS_DIR,
"Directory where character sets are.", (gptr*) &charsets_dir,
(gptr*) &charsets_dir, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"default-character-set", OPT_DEFAULT_CHARSET,
+ "Set the default character set.", (gptr*) &default_charset,
+ (gptr*) &default_charset, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"compress", 'C', "Use compression in server/client protocol.",
(gptr*) &opt_compress, (gptr*) &opt_compress, 0, GET_BOOL, NO_ARG, 0, 0, 0,
0, 0, 0},
@@ -469,8 +458,8 @@ static struct my_option my_long_options[] =
{"debug", '#', "Output debug log.", (gptr*) &default_dbug_option,
(gptr*) &default_dbug_option, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
#endif
- {"database", 'D', "Database to use.", 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0,
- 0, 0, 0, 0},
+ {"database", 'D', "Database to use.", (gptr*) &current_db,
+ (gptr*) &current_db, 0, GET_STR_ALLOC, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"execute", 'e', "Execute command and quit. (Output like with --batch).", 0,
0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"vertical", 'E', "Print the output of a query (rows) vertically.",
@@ -479,20 +468,21 @@ static struct my_option my_long_options[] =
{"force", 'f', "Continue even if we get an sql error.",
(gptr*) &ignore_errors, (gptr*) &ignore_errors, 0, GET_BOOL, NO_ARG, 0, 0,
0, 0, 0, 0},
- {"no-named-commands", 'g', "Named commands are disabled. Use \\* form only, or use named commands only in the beginning of a line ending with a semicolon (;) Since version 10.9 the client now starts with this option ENABLED by default! Disable with '-G'. Long format commands still work from the first line. WARNING: option depricated; use --disable-named-commands instead.",
+ {"no-named-commands", 'g',
+ "Named commands are disabled. Use \\* form only, or use named commands only in the beginning of a line ending with a semicolon (;) Since version 10.9 the client now starts with this option ENABLED by default! Disable with '-G'. Long format commands still work from the first line. WARNING: option deprecated; use --disable-named-commands instead.",
0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
{"named-commands", 'G',
- "Enable named commands. Disable with --disable-named-commands. This option is disabled by default.",
+ "Enable named commands. Named commands mean this program's internal commands; see mysql> help . When enabled, the named commands can be used from any line of the query, otherwise only from the first line, before an enter. Disable with --disable-named-commands. This option is disabled by default.",
(gptr*) &named_cmds, (gptr*) &named_cmds, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0,
0, 0},
{"ignore-space", 'i', "Ignore space after function names.", 0, 0, 0,
GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
{"local-infile", OPT_LOCAL_INFILE, "Enable/disable LOAD DATA LOCAL INFILE.",
0, 0, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
- {"no-beep", 'b', "Turn off beep on error.", 0, 0, 0, GET_NO_ARG, NO_ARG, 0,
- 0, 0, 0, 0, 0},
- {"host", 'h', "Connect to host.", (gptr*) &current_host,
- (gptr*) &current_host, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"no-beep", 'b', "Turn off beep on error.", (gptr*) &opt_nobeep,
+ (gptr*) &opt_nobeep, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"host", 'h', "Connect to host.", (gptr*) &current_host,
+ (gptr*) &current_host, 0, GET_STR_ALLOC, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"html", 'H', "Produce HTML output.", (gptr*) &opt_html, (gptr*) &opt_html,
0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
{"xml", 'X', "Produce XML output", (gptr*) &opt_xml, (gptr*) &opt_xml, 0,
@@ -500,25 +490,25 @@ static struct my_option my_long_options[] =
{"line-numbers", OPT_LINE_NUMBERS, "Write line numbers for errors.",
(gptr*) &line_numbers, (gptr*) &line_numbers, 0, GET_BOOL,
NO_ARG, 0, 0, 0, 0, 0, 0},
- {"skip-line-numbers", 'L', "Don't write line number for errors. WARNING: -L is depricated, use long version of this option instead.", 0, 0, 0, GET_NO_ARG,
+ {"skip-line-numbers", 'L', "Don't write line number for errors. WARNING: -L is deprecated, use long version of this option instead.", 0, 0, 0, GET_NO_ARG,
NO_ARG, 0, 0, 0, 0, 0, 0},
#ifndef __WIN__
{"no-pager", OPT_NOPAGER,
- "Disable pager and print to stdout. See interactive help (\\h) also. WARNING: option depricated; use --disable-pager instead.",
+ "Disable pager and print to stdout. See interactive help (\\h) also. WARNING: option deprecated; use --disable-pager instead.",
0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
#endif
- {"no-tee", OPT_NOTEE, "Disable outfile. See interactive help (\\h) also. WARNING: option depricated; use --disable-tee instead", 0, 0, 0, GET_NO_ARG,
+ {"no-tee", OPT_NOTEE, "Disable outfile. See interactive help (\\h) also. WARNING: option deprecated; use --disable-tee instead", 0, 0, 0, GET_NO_ARG,
NO_ARG, 0, 0, 0, 0, 0, 0},
{"unbuffered", 'n', "Flush buffer after each query.", (gptr*) &unbuffered,
(gptr*) &unbuffered, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
{"column-names", OPT_COLUMN_NAMES, "Write column names in results.",
(gptr*) &column_names, (gptr*) &column_names, 0, GET_BOOL,
- NO_ARG, 0, 0, 0, 0, 0, 0},
+ NO_ARG, 1, 0, 0, 0, 0, 0},
{"skip-column-names", 'N',
- "Don't write column names in results. WARNING: -N is depricated, use long version of this options instead.",
+ "Don't write column names in results. WARNING: -N is deprecated, use long version of this options instead.",
0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
{"set-variable", 'O',
- "Change the value of a variable. Please note that this option is depricated; you can set variables directly with --variable-name=value.",
+ "Change the value of a variable. Please note that this option is deprecated; you can set variables directly with --variable-name=value.",
0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"one-database", 'o',
"Only update the default database. This is useful for skipping updates to other database in the update log.",
@@ -535,10 +525,12 @@ static struct my_option my_long_options[] =
{"pipe", 'W', "Use named pipes to connect to server.", 0, 0, 0, GET_NO_ARG,
NO_ARG, 0, 0, 0, 0, 0, 0},
#endif
- {"port", 'P', "Port number to use for connection.", 0, 0, 0,
- GET_LONG, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
- {"prompt", OPT_PROMPT, "Set the mysql prompt to this value.", 0, 0, 0,
- GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"port", 'P', "Port number to use for connection.", (gptr*) &opt_mysql_port,
+ (gptr*) &opt_mysql_port, 0, GET_UINT, REQUIRED_ARG, MYSQL_PORT, 0, 0, 0, 0,
+ 0},
+ {"prompt", OPT_PROMPT, "Set the mysql prompt to this value.",
+ (gptr*) &current_prompt, (gptr*) &current_prompt, 0, GET_STR_ALLOC,
+ REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"quick", 'q',
"Don't cache result, print it row by row. This may slow down the server if the output is suspended. Doesn't use history file. ",
(gptr*) &quick, (gptr*) &quick, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
@@ -548,7 +540,8 @@ static struct my_option my_long_options[] =
{"silent", 's', "Be more silent.", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0,
0, 0},
{"socket", 'S', "Socket file to use for connection.",
- 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ (gptr*) &opt_mysql_unix_port, (gptr*) &opt_mysql_unix_port, 0, GET_STR_ALLOC,
+ REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
#include "sslopt-longopts.h"
{"table", 't', "Output in table format.", (gptr*) &output_tables,
(gptr*) &output_tables, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
@@ -559,7 +552,7 @@ static struct my_option my_long_options[] =
0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
#ifndef DONT_ALLOW_USER_CHANGE
{"user", 'u', "User for login if not current user.", (gptr*) &current_user,
- (gptr*) &current_user, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ (gptr*) &current_user, 0, GET_STR_ALLOC, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
#endif
{"safe-updates", 'U', "Only allow UPDATE and DELETE that uses keys.",
(gptr*) &safe_updates, (gptr*) &safe_updates, 0, GET_BOOL, OPT_ARG, 0, 0,
@@ -573,19 +566,19 @@ static struct my_option my_long_options[] =
{"wait", 'w', "Wait and retry if connection is down.", 0, 0, 0, GET_NO_ARG,
NO_ARG, 0, 0, 0, 0, 0, 0},
{"connect_timeout", OPT_CONNECT_TIMEOUT, "", (gptr*) &opt_connect_timeout,
- (gptr*) &opt_connect_timeout, 0, GET_LONG, REQUIRED_ARG, 0, 0, 3600*12, 0,
+ (gptr*) &opt_connect_timeout, 0, GET_ULONG, REQUIRED_ARG, 0, 0, 3600*12, 0,
0, 1},
{"max_allowed_packet", OPT_MAX_ALLOWED_PACKET, "",
- (gptr*) &max_allowed_packet, (gptr*) &max_allowed_packet, 0, GET_LONG,
+ (gptr*) &max_allowed_packet, (gptr*) &max_allowed_packet, 0, GET_ULONG,
REQUIRED_ARG, 16 *1024L*1024L, 4096, 512*1024L*1024L, MALLOC_OVERHEAD,
1024, 0},
{"net_buffer_length", OPT_NET_BUFFER_LENGTH, "",
- (gptr*) &net_buffer_length, (gptr*) &net_buffer_length, 0, GET_LONG,
+ (gptr*) &net_buffer_length, (gptr*) &net_buffer_length, 0, GET_ULONG,
REQUIRED_ARG, 16384, 1024, 512*1024*1024L, MALLOC_OVERHEAD, 1024, 0},
{"select_limit", OPT_SELECT_LIMIT, "", (gptr*) &select_limit,
- (gptr*) &select_limit, 0, GET_LONG, REQUIRED_ARG, 1000L, 1, ~0L, 0, 1, 0},
+ (gptr*) &select_limit, 0, GET_ULONG, REQUIRED_ARG, 1000L, 1, ~0L, 0, 1, 0},
{"max_join_size", OPT_MAX_JOIN_SIZE, "", (gptr*) &max_join_size,
- (gptr*) &max_join_size, 0, GET_LONG, REQUIRED_ARG, 1000000L, 1, ~0L, 0, 1,
+ (gptr*) &max_join_size, 0, GET_ULONG, REQUIRED_ARG, 1000000L, 1, ~0L, 0, 1,
0},
{ 0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
};
@@ -612,146 +605,115 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
char *argument)
{
switch(optid) {
- case OPT_DEFAULT_CHARSET:
- default_charset= argument;
- break;
- case OPT_CHARSETS_DIR:
- strmov(mysql_charsets_dir, argument);
- charsets_dir = mysql_charsets_dir;
- break;
- case OPT_LOCAL_INFILE:
- using_opt_local_infile=1;
- opt_local_infile= test(!optarg || atoi(optarg)>0);
- break;
- case OPT_TEE:
- if (argument == disabled_my_option)
- {
- if (opt_outfile)
- end_tee();
- opt_outfile= 0;
- }
- else
- if (!opt_outfile)
- {
- strmov(outfile, argument);
- opt_outfile= 1;
- init_tee();
- }
- break;
- case OPT_NOTEE:
- printf("WARNING: option depricated; use --disable-tee instead.\n");
+ case OPT_CHARSETS_DIR:
+ strmov(mysql_charsets_dir, argument);
+ charsets_dir = mysql_charsets_dir;
+ break;
+ case OPT_LOCAL_INFILE:
+ using_opt_local_infile=1;
+ opt_local_infile= test(!argument || atoi(argument)>0);
+ break;
+ case OPT_TEE:
+ if (argument == disabled_my_option)
+ {
if (opt_outfile)
end_tee();
- opt_outfile= 0;
- break;
- case OPT_PAGER:
- opt_nopager= 0;
- if (argument)
- strmov(pager, argument);
- else
- strmov(pager, default_pager);
- strmov(default_pager, pager);
- break;
- case OPT_NOPAGER:
- printf("WARNING: option depricated; use --disable-pager instead.\n");
- opt_nopager= 1;
- break;
- case OPT_PROMPT:
- my_free(current_prompt,MYF(MY_ALLOW_ZERO_PTR));
- current_prompt=my_strdup(optarg,MYF(MY_FAE));
- break;
- case 'b':
- opt_nobeep = 1;
- break;
- case 'D':
- my_free(current_db, MYF(MY_ALLOW_ZERO_PTR));
- current_db= my_strdup(argument, MYF(MY_WME));
- break;
- case 'e':
- status.batch= 1;
- status.add_to_history= 0;
- batch_readline_end(status.line_buff); // If multiple -e
- if (!(status.line_buff= batch_readline_command(argument)))
- return 1;
- ignore_errors= 0;
- break;
- case 'h':
- my_free(current_host, MYF(MY_ALLOW_ZERO_PTR));
- current_host= my_strdup(argument, MYF(MY_WME));
- break;
-#ifndef DONT_ALLOW_USER_CHANGE
- case 'u':
- my_free(current_user, MYF(MY_ALLOW_ZERO_PTR));
- current_user= my_strdup(argument, MYF(MY_WME));
- break;
-#endif
- case 'o':
- if (argument == disabled_my_option)
- one_database= 0;
- else
- one_database= skip_updates= 1;
- break;
- case 'p':
- if (argument == disabled_my_option)
- opt_password= "";
- else
- {
- if (argument)
- {
- char *start= argument;
- my_free(opt_password, MYF(MY_ALLOW_ZERO_PTR));
- opt_password= my_strdup(argument, MYF(MY_FAE));
- while (*argument) *argument++= 'x'; // Destroy argument
- if (*start)
- start[1]=0 ;
- }
- else
- tty_password= 1;
- }
- break;
- case '#':
- DBUG_PUSH(argument ? argument : default_dbug_option);
- info_flag= 1;
- break;
- case 's':
- if (argument == disabled_my_option)
- opt_silent= 0;
- else
- opt_silent++;
- break;
- case 'v':
- if (argument == disabled_my_option)
- verbose= 0;
- else
- verbose++;
- break;
- case 'B':
- if (!status.batch)
+ }
+ else
+ if (!opt_outfile)
{
- status.batch= 1;
- status.add_to_history= 0;
- opt_silent++; // more silent
+ strmov(outfile, argument);
+ init_tee();
}
- break;
- case 'P':
- opt_mysql_port= (unsigned int) atoi(argument);
- break;
- case 'S':
- my_free(opt_mysql_unix_port, MYF(MY_ALLOW_ZERO_PTR));
- opt_mysql_unix_port= my_strdup(argument, MYF(0));
- break;
- case 'W':
+ break;
+ case OPT_NOTEE:
+ printf("WARNING: option deprecated; use --disable-tee instead.\n");
+ if (opt_outfile)
+ end_tee();
+ break;
+ case OPT_PAGER:
+ opt_nopager= 0;
+ if (argument)
+ strmov(pager, argument);
+ else
+ strmov(pager, default_pager);
+ strmov(default_pager, pager);
+ break;
+ case OPT_NOPAGER:
+ printf("WARNING: option deprecated; use --disable-pager instead.\n");
+ opt_nopager= 1;
+ break;
+ case 'A':
+ rehash= 0;
+ break;
+ case 'N':
+ column_names= 0;
+ break;
+ case 'e':
+ status.batch= 1;
+ status.add_to_history= 0;
+ batch_readline_end(status.line_buff); // If multiple -e
+ if (!(status.line_buff= batch_readline_command(argument)))
+ return 1;
+ ignore_errors= 0;
+ break;
+ case 'o':
+ if (argument == disabled_my_option)
+ one_database= 0;
+ else
+ one_database= skip_updates= 1;
+ break;
+ case 'p':
+ if (argument == disabled_my_option)
+ argument= (char*) ""; // Don't require password
+ if (argument)
+ {
+ char *start= argument;
+ my_free(opt_password, MYF(MY_ALLOW_ZERO_PTR));
+ opt_password= my_strdup(argument, MYF(MY_FAE));
+ while (*argument) *argument++= 'x'; // Destroy argument
+ if (*start)
+ start[1]=0 ;
+ }
+ else
+ tty_password= 1;
+ break;
+ case '#':
+ DBUG_PUSH(argument ? argument : default_dbug_option);
+ info_flag= 1;
+ break;
+ case 's':
+ if (argument == disabled_my_option)
+ opt_silent= 0;
+ else
+ opt_silent++;
+ break;
+ case 'v':
+ if (argument == disabled_my_option)
+ verbose= 0;
+ else
+ verbose++;
+ break;
+ case 'B':
+ if (!status.batch)
+ {
+ status.batch= 1;
+ status.add_to_history= 0;
+ opt_silent++; // more silent
+ }
+ break;
+ case 'W':
#ifdef __WIN__
- opt_mysql_unix_port= my_strdup(MYSQL_NAMEDPIPE, MYF(0));
+ opt_mysql_unix_port= my_strdup(MYSQL_NAMEDPIPE, MYF(0));
#endif
- break;
- case 'V':
- usage(1);
- exit(0);
- case 'I':
- case '?':
- usage(0);
- exit(0);
+ break;
+ case 'V':
+ usage(1);
+ exit(0);
+ case 'I':
+ case '?':
+ usage(0);
+ exit(0);
#include "sslopt-case.h"
}
return 0;
@@ -778,11 +740,7 @@ static int get_options(int argc, char **argv)
strmov(default_pager, pager);
if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
- {
- printf("%s: handle_options() failed with error %d\n", my_progname,
- ho_error);
- exit(1);
- }
+ exit(ho_error);
if (status.batch) /* disable pager and outfile in this case */
{
@@ -1180,7 +1138,7 @@ static char *new_command_generator(char *text,int state)
/* Build up the completion hash */
-static void build_completion_hash(bool skip_rehash,bool write_info)
+static void build_completion_hash(bool rehash, bool write_info)
{
COMMANDS *cmd=commands;
MYSQL_RES *databases=0,*tables=0;
@@ -1206,7 +1164,7 @@ static void build_completion_hash(bool skip_rehash,bool write_info)
add_word(&ht,(char*) cmd->name);
cmd++;
}
- if (skip_rehash)
+ if (!rehash)
DBUG_VOID_RETURN;
/* Free old used memory */
@@ -1345,7 +1303,7 @@ static int reconnect(void)
{
put_info("No connection. Trying to reconnect...",INFO_INFO);
(void) com_connect((String *) 0, 0);
- if(!no_rehash) com_rehash(NULL, NULL);
+ if(rehash) com_rehash(NULL, NULL);
}
if (!connected)
return put_info("Can't connect to the server\n",INFO_ERROR);
@@ -1556,17 +1514,22 @@ static void end_pager()
static void init_tee()
{
+ if (opt_outfile)
+ end_tee();
if (!(OUTFILE= my_fopen(outfile, O_APPEND | O_WRONLY, MYF(MY_WME))))
{
- opt_outfile=0;
+ opt_outfile= 0;
init_pager();
return;
}
+ opt_outfile= 1;
+ tee_fprintf(stdout, "Logging to file '%s'\n", outfile);
}
static void end_tee()
{
my_fclose(OUTFILE, MYF(0));
+ opt_outfile= 0;
return;
}
@@ -1641,18 +1604,19 @@ print_table_data(MYSQL_RES *result)
tee_puts(separator.c_ptr(), PAGER);
}
- while ((cur = mysql_fetch_row(result)))
+ while ((cur= mysql_fetch_row(result)))
{
(void) tee_fputs("|", PAGER);
- mysql_field_seek(result,0);
- for (uint off=0 ; off < mysql_num_fields(result); off++)
+ mysql_field_seek(result, 0);
+ for (uint off= 0; off < mysql_num_fields(result); off++)
{
- const char *str=cur[off] ? cur[off] : "NULL";
- field = mysql_fetch_field(result);
- uint length=field->max_length;
+ const char *str= cur[off] ? cur[off] : "NULL";
+ field= mysql_fetch_field(result);
+ uint length= field->max_length;
if (length > MAX_COLUMN_LENGTH)
{
- tee_fputs(str,PAGER); tee_fputs(" |",PAGER);
+ tee_fputs(str, PAGER);
+ tee_fputs(" |", PAGER);
}
else
tee_fprintf(PAGER, num_flag[off] ? "%*s |" : " %-*s|",
@@ -1853,7 +1817,7 @@ print_tab_data(MYSQL_RES *result)
for (uint off=1 ; off < mysql_num_fields(result); off++)
{
(void) tee_fputs("\t", PAGER);
- safe_put_field(cur[off],lengths[off]);
+ safe_put_field(cur[off], lengths[off]);
}
(void) tee_fputs("\n", PAGER);
}
@@ -1872,8 +1836,8 @@ com_tee(String *buffer, char *line __attribute__((unused)))
{
if (!strlen(outfile))
{
- printf("No previous outfile available, you must give the filename!\n");
- opt_outfile=0;
+ printf("No previous outfile available, you must give a filename!\n");
+ opt_outfile= 0;
return 0;
}
}
@@ -1881,11 +1845,11 @@ com_tee(String *buffer, char *line __attribute__((unused)))
{
while (my_isspace(system_charset_info,*param))
param++;
- end=strmake(file_name, param, sizeof(file_name)-1);
+ end= strmake(file_name, param, sizeof(file_name) - 1);
while (end > file_name && (my_isspace(system_charset_info,end[-1]) ||
my_iscntrl(system_charset_info,end[-1])))
end--;
- end[0]=0;
+ end[0]= 0;
strmov(outfile, file_name);
}
if (!strlen(outfile))
@@ -1893,12 +1857,7 @@ com_tee(String *buffer, char *line __attribute__((unused)))
printf("No outfile specified!\n");
return 0;
}
- if (!opt_outfile)
- {
- init_tee();
- opt_outfile=1;
- }
- tee_fprintf(stdout, "Logging to file '%s'\n", outfile);
+ init_tee();
return 0;
}
@@ -1908,7 +1867,6 @@ com_notee(String *buffer __attribute__((unused)),
{
if (opt_outfile)
end_tee();
- opt_outfile=0;
tee_fprintf(stdout, "Outfile disabled.\n");
return 0;
}
@@ -2031,7 +1989,7 @@ com_rehash(String *buffer __attribute__((unused)),
char *line __attribute__((unused)))
{
#ifdef HAVE_READLINE
- build_completion_hash(0,0);
+ build_completion_hash(1, 0);
#endif
return 0;
}
@@ -2075,7 +2033,7 @@ static int
com_connect(String *buffer, char *line)
{
char *tmp,buff[256];
- bool save_rehash=no_rehash;
+ bool save_rehash= rehash;
int error;
if (buffer)
@@ -2097,13 +2055,13 @@ com_connect(String *buffer, char *line)
}
}
else
- no_rehash=1; // Quick re-connect
+ rehash= 0; // Quick re-connect
buffer->length(0); // command used
}
else
- no_rehash=1;
+ rehash= 0;
error=sql_connect(current_host,current_db,current_user,opt_password,0);
- no_rehash=save_rehash;
+ rehash= save_rehash;
if (connected)
{
@@ -2212,7 +2170,7 @@ com_use(String *buffer __attribute__((unused)), char *line)
my_free(current_db,MYF(MY_ALLOW_ZERO_PTR));
current_db=my_strdup(tmp,MYF(MY_WME));
#ifdef HAVE_READLINE
- build_completion_hash(no_rehash,1);
+ build_completion_hash(rehash, 1);
#endif
}
}
@@ -2270,7 +2228,7 @@ sql_real_connect(char *host,char *database,char *user,char *password,
connected=1;
mysql.reconnect=info_flag ? 1 : 0; // We want to know if this happens
#ifdef HAVE_READLINE
- build_completion_hash(no_rehash,1);
+ build_completion_hash(rehash, 1);
#endif
return 0;
}
@@ -2331,6 +2289,13 @@ com_status(String *buffer __attribute__((unused)),
tee_fprintf(stdout, "Current user:\t\t%s\n",cur[1]);
(void) mysql_fetch_row(result); // Read eof
}
+#ifdef HAVE_OPENSSL
+ if (mysql.net.vio->ssl_ && SSL_get_cipher(mysql.net.vio->ssl_))
+ tee_fprintf(stdout, "SSL:\t\t\tCipher in use is %s\n",
+ SSL_get_cipher(mysql.net.vio->ssl_));
+ else
+#endif /* HAVE_OPENSSL */
+ tee_puts("SSL:\t\t\tNot in use", stdout);
}
else
{
diff --git a/client/mysqladmin.c b/client/mysqladmin.c
index 7f6d1d1a85d..fd2a17eee31 100644
--- a/client/mysqladmin.c
+++ b/client/mysqladmin.c
@@ -19,12 +19,11 @@
#include "client_priv.h"
#include <signal.h>
-#include <my_getopt.h>
#ifdef THREAD
#include <my_pthread.h> /* because of signal() */
#endif
-#define ADMIN_VERSION "8.30"
+#define ADMIN_VERSION "8.35"
#define MAX_MYSQL_VAR 64
#define SHUTDOWN_DEF_TIMEOUT 3600 /* Wait for shutdown */
#define MAX_TRUNC_LENGTH 3
@@ -124,25 +123,27 @@ static struct my_option my_long_options[] =
{"pipe", 'W', "Use named pipes to connect to server.", 0, 0, 0, GET_NO_ARG,
NO_ARG, 0, 0, 0, 0, 0, 0},
#endif
- {"port", 'P', "Port number to use for connection.", 0, 0, 0,
- GET_LONG, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"port", 'P', "Port number to use for connection.", (gptr*) &tcp_port,
+ (gptr*) &tcp_port, 0, GET_UINT, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"relative", 'r',
"Show difference between current and previous values when used with -i. Currently works only with extended-status.",
(gptr*) &opt_relative, (gptr*) &opt_relative, 0, GET_BOOL, NO_ARG, 0, 0, 0,
0, 0, 0},
{"set-variable", 'O',
- "Change the value of a variable. Please note that this option is depricated; you can set variables directly with --variable-name=value.",
+ "Change the value of a variable. Please note that this option is deprecated; you can set variables directly with --variable-name=value.",
0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"silent", 's', "Silently exit if one can't connect to server",
0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
{"socket", 'S', "Socket file to use for connection.",
- 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ (gptr*) &unix_port, (gptr*) &unix_port, 0, GET_STR, REQUIRED_ARG, 0, 0, 0,
+ 0, 0, 0},
{"sleep", 'i', "Execute commands again and again with a sleep between.",
- 0, 0, 0, GET_LONG, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ (gptr*) &interval, (gptr*) &interval, 0, GET_INT, REQUIRED_ARG, 0, 0, 0, 0,
+ 0, 0},
#include "sslopt-longopts.h"
#ifndef DONT_ALLOW_USER_CHANGE
{"user", 'u', "User for login if not current user.", (gptr*) &user,
- (gptr*) &user, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ (gptr*) &user, 0, GET_STR_ALLOC, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
#endif
{"verbose", 'v', "Write more information.", (gptr*) &opt_verbose,
(gptr*) &opt_verbose, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
@@ -155,10 +156,10 @@ static struct my_option my_long_options[] =
{"wait", 'w', "Wait and retry if connection is down", 0, 0, 0, GET_NO_ARG,
NO_ARG, 0, 0, 0, 0, 0, 0},
{"connect_timeout", OPT_CONNECT_TIMEOUT, "", (gptr*) &opt_connect_timeout,
- (gptr*) &opt_connect_timeout, 0, GET_LONG, REQUIRED_ARG, 3600*12, 0,
+ (gptr*) &opt_connect_timeout, 0, GET_ULONG, REQUIRED_ARG, 3600*12, 0,
3600*12, 0, 1, 0},
{"shutdown_timeout", OPT_SHUTDOWN_TIMEOUT, "", (gptr*) &opt_shutdown_timeout,
- (gptr*) &opt_shutdown_timeout, 0, GET_LONG, REQUIRED_ARG,
+ (gptr*) &opt_shutdown_timeout, 0, GET_ULONG, REQUIRED_ARG,
SHUTDOWN_DEF_TIMEOUT, 0, 3600*12, 0, 1, 0},
{ 0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
};
@@ -173,10 +174,6 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
int error = 0;
switch(optid) {
- case 'h':
- host = argument;
- break;
- case 'q': /* Allow old 'q' option */
case 'p':
if (argument)
{
@@ -190,23 +187,9 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
else
tty_password=1;
break;
-#ifndef DONT_ALLOW_USER_CHANGE
- case 'u':
- user= my_strdup(argument,MYF(0));
- break;
-#endif
- case 'i':
- interval=atoi(argument);
- break;
- case 'P':
- tcp_port= (unsigned int) atoi(argument);
- break;
case 's':
option_silent++;
break;
- case 'S':
- unix_port= argument;
- break;
case 'W':
#ifdef __WIN__
unix_port=MYSQL_NAMEDPIPE;
@@ -264,11 +247,8 @@ int main(int argc,char *argv[])
free_defaults()
*/
if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
- {
- printf("%s: handle_options() failed with error %d\n", my_progname,
- ho_error);
- exit(1);
- }
+ exit(ho_error);
+
if (argc == 0)
{
usage();
diff --git a/client/mysqlbinlog.cc b/client/mysqlbinlog.cc
index 3d30283d13a..3020e105954 100644
--- a/client/mysqlbinlog.cc
+++ b/client/mysqlbinlog.cc
@@ -38,26 +38,10 @@ static FILE *result_file;
static const char* default_dbug_option = "d:t:o,/tmp/mysqlbinlog.trace";
#endif
-static struct option long_options[] =
-{
-#ifndef DBUG_OFF
- {"debug", optional_argument, 0, '#'},
-#endif
- {"help", no_argument, 0, '?'},
- {"host", required_argument, 0, 'h'},
- {"offset", required_argument, 0, 'o'},
- {"password", required_argument, 0, 'p'},
- {"port", required_argument, 0, 'P'},
- {"position", required_argument, 0, 'j'},
- {"result-file", required_argument, 0, 'r'},
- {"short-form", no_argument, 0, 's'},
- {"table", required_argument, 0, 't'},
- {"user", required_argument, 0, 'u'},
- {"version", no_argument, 0, 'V'},
-};
-
void sql_print_error(const char *format,...);
+static bool one_database = 0;
+static const char* database;
static bool short_form = 0;
static ulonglong offset = 0;
static const char* host = "localhost";
@@ -78,6 +62,44 @@ static void dump_remote_table(NET* net, const char* db, const char* table);
static void die(const char* fmt, ...);
static MYSQL* safe_connect();
+static struct my_option my_long_options[] =
+{
+#ifndef DBUG_OFF
+ {"debug", '#', "Output debug log.", (gptr*) &default_dbug_option,
+ (gptr*) &default_dbug_option, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
+#endif
+ {"database", 'd', "List entries for just this database (local log only)",
+ (gptr*) &database, (gptr*) &database, 0, GET_STR_ALLOC, REQUIRED_ARG,
+ 0, 0, 0, 0, 0, 0},
+ {"help", '?', "Display this help and exit",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"host", 'h', "Get the binlog from server", (gptr*) &host, (gptr*) &host,
+ 0, GET_STR_ALLOC, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"offset", 'o', "Skip the first N entries", (gptr*) &offset, (gptr*) &offset,
+ 0, GET_ULL, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"password", 'p', "Password to connect to remote server",
+ 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"port", 'P', "Use port to connect to the remote server",
+ (gptr*) &port, (gptr*) &port, 0, GET_INT, REQUIRED_ARG, MYSQL_PORT, 0, 0,
+ 0, 0, 0},
+ {"position", 'j', "Start reading the binlog at position N",
+ (gptr*) &position, (gptr*) &position, 0, GET_ULL, REQUIRED_ARG, 0, 0, 0, 0,
+ 0, 0},
+ {"result-file", 'r', "Direct output to a given file", 0, 0, 0, GET_STR,
+ REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"short-form", 's', "Just show the queries, no extra info",
+ (gptr*) &short_form, (gptr*) &short_form, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0,
+ 0, 0},
+ {"table", 't', "Get raw table dump using COM_TABLE_DUMB", (gptr*) &table,
+ (gptr*) &table, 0, GET_STR_ALLOC, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"user", 'u', "Connect to the remote server as username",
+ (gptr*) &user, (gptr*) &user, 0, GET_STR_ALLOC, REQUIRED_ARG, 0, 0, 0, 0,
+ 0, 0},
+ {"version", 'V', "Print version and exit.", 0, 0, 0, GET_NO_ARG, NO_ARG, 0,
+ 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
+};
+
void sql_print_error(const char *format,...)
{
@@ -102,38 +124,23 @@ static void die(const char* fmt, ...)
static void print_version()
{
- printf("%s Ver 1.7 for %s at %s\n",my_progname,SYSTEM_TYPE, MACHINE_TYPE);
+ printf("%s Ver 2.3 for %s at %s\n", my_progname, SYSTEM_TYPE, MACHINE_TYPE);
}
static void usage()
{
print_version();
- puts("By Sasha, for your professional use\n\
-This software comes with NO WARRANTY: see the file PUBLIC for details\n");
+ puts("By Monty and Sasha, for your professional use\n\
+This software comes with NO WARRANTY: This is free software,\n\
+and you are welcome to modify and redistribute it under the GPL license\n");
printf("\
Dumps a MySQL binary log in a format usable for viewing or for pipeing to\n\
the mysql command line client\n\n");
- printf("Usage: %s [options] log-files\n",my_progname);
- puts("Options:");
-#ifndef DBUG_OFF
- printf("-#, --debug[=...] Output debug log. (%s)\n",
- default_dbug_option);
-#endif
- printf("\
--?, --help Display this help and exit\n\
--s, --short-form Just show the queries, no extra info\n\
--o, --offset=N Skip the first N entries\n\
--h, --host=server Get the binlog from server\n\
--P, --port=port Use port to connect to the remote server\n\
--u, --user=username Connect to the remote server as username\n\
--p, --password=password Password to connect to remote server\n\
--r, --result-file=file Direct output to a given file\n\
--j, --position=N Start reading the binlog at position N\n\
--t, --table=name Get raw table dump using COM_TABLE_DUMB\n\
--V, --version Print version and exit.\n\
-");
+ printf("Usage: %s [options] log-files\n", my_progname);
+ my_print_help(my_long_options);
+ my_print_variables(my_long_options);
}
static void dump_remote_file(NET* net, const char* fname)
@@ -166,76 +173,57 @@ static void dump_remote_file(NET* net, const char* fname)
fflush(result_file);
}
-static int parse_args(int *argc, char*** argv)
-{
- int c, opt_index = 0;
- result_file = stdout;
- while((c = getopt_long(*argc, *argv, "so:#::h:j:u:p:P:r:t:?V", long_options,
- &opt_index)) != EOF)
+static my_bool
+get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
+ char *argument)
+{
+ switch(optid)
{
- switch(c)
- {
#ifndef DBUG_OFF
- case '#':
- DBUG_PUSH(optarg ? optarg : default_dbug_option);
- break;
+ case '#':
+ DBUG_PUSH(argument ? argument : default_dbug_option);
+ break;
#endif
- case 's':
- short_form = 1;
- break;
-
- case 'o':
- offset = strtoull(optarg,(char**) 0, 10);
- break;
-
- case 'j':
- position = strtoull(optarg,(char**) 0, 10);
- break;
-
- case 'h':
- use_remote = 1;
- host = my_strdup(optarg, MYF(0));
- break;
-
- case 'P':
- use_remote = 1;
- port = atoi(optarg);
- break;
-
- case 'p':
- use_remote = 1;
- pass = my_strdup(optarg, MYF(0));
- break;
-
- case 'r':
- if (!(result_file = my_fopen(optarg, O_WRONLY | O_BINARY, MYF(MY_WME))))
- exit(1);
- break;
-
- case 'u':
- use_remote = 1;
- user = my_strdup(optarg, MYF(0));
- break;
-
- case 't':
- table = my_strdup(optarg, MYF(0));
- break;
-
- case 'V':
- print_version();
- exit(0);
+ case 'd':
+ one_database = 1;
+ break;
+ case 'h':
+ use_remote = 1;
+ break;
+ case 'P':
+ use_remote = 1;
+ break;
+ case 'p':
+ use_remote = 1;
+ pass = my_strdup(argument, MYF(0));
+ break;
+ case 'r':
+ if (!(result_file = my_fopen(argument, O_WRONLY | O_BINARY, MYF(MY_WME))))
+ exit(1);
+ break;
+ case 'u':
+ use_remote = 1;
+ break;
+ case 'V':
+ print_version();
+ exit(0);
+ case '?':
+ default:
+ usage();
+ exit(0);
+ }
+ return 0;
+}
- case '?':
- default:
- usage();
- exit(0);
- }
- }
+static int parse_args(int *argc, char*** argv)
+{
+ int ho_error;
- (*argc)-=optind;
- (*argv)+=optind;
+ result_file = stdout;
+ if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option)))
+ exit(ho_error);
return 0;
}
@@ -471,6 +459,37 @@ Could not read entry at offset %s : Error in log format or read error",
}
if (rec_count >= offset)
{
+ // see if we should skip this event (only care about queries for now)
+ if (one_database)
+ {
+ if (ev->get_type_code() == QUERY_EVENT)
+ {
+ //const char * log_dbname = ev->get_db();
+ const char * log_dbname = ((Query_log_event*)ev)->db;
+ //printf("entry: %llu, database: %s\n", rec_count, log_dbname);
+
+ if ((log_dbname != NULL) && (strcmp(log_dbname, database)))
+ {
+ //printf("skipping, %s is not %s\n", log_dbname, database);
+ rec_count++;
+ delete ev;
+ continue; // next
+ }
+#ifndef DBUG_OFF
+ else
+ {
+ printf("no skip\n");
+ }
+#endif
+ }
+#ifndef DBUG_OFF
+ else
+ {
+ const char * query_type = ev->get_type_str();
+ printf("not query -- %s\n", query_type);
+ }
+#endif
+ }
if (!short_form)
fprintf(result_file, "# at %s\n",llstr(old_off,llbuff));
diff --git a/client/mysqlcheck.c b/client/mysqlcheck.c
index 86507bc0b31..78cd277f9be 100644
--- a/client/mysqlcheck.c
+++ b/client/mysqlcheck.c
@@ -16,10 +16,9 @@
/* By Jani Tolonen, 2001-04-20, MySQL Development Team */
-#define CHECK_VERSION "2.0"
+#define CHECK_VERSION "2.4"
#include "client_priv.h"
-#include <my_getopt.h>
#include <m_ctype.h>
#include "mysql_version.h"
#include "mysqld_error.h"
@@ -94,7 +93,7 @@ static struct my_option my_long_options[] =
{"help", '?', "Display this help message and exit.", 0, 0, 0, GET_NO_ARG,
NO_ARG, 0, 0, 0, 0, 0, 0},
{"host",'h', "Connect to host.", (gptr*) &current_host,
- (gptr*) &current_host, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ (gptr*) &current_host, 0, GET_STR_ALLOC, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"medium-check", 'm',
"Faster than extended-check, but only finds 99.99 percent of all errors. Should be good enough for most cases.",
0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
@@ -107,8 +106,9 @@ static struct my_option my_long_options[] =
{"pipe", 'W', "Use named pipes to connect to server.", 0, 0, 0, GET_NO_ARG,
NO_ARG, 0, 0, 0, 0, 0, 0},
#endif
- {"port", 'P', "Port number to use for connection.", 0, 0, 0, GET_LONG,
- REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"port", 'P', "Port number to use for connection.", (gptr*) &opt_mysql_port,
+ (gptr*) &opt_mysql_port, 0, GET_UINT, REQUIRED_ARG, MYSQL_PORT, 0, 0, 0, 0,
+ 0},
{"quick", 'q',
"If you are using this option with CHECK TABLE, it prevents the check from scanning the rows to check for wrong links. This is the fastest check. If you are using this option with REPAIR TABLE, it will try to repair only the index tree. This is the fastest repair method for a table.",
(gptr*) &opt_quick, (gptr*) &opt_quick, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0,
@@ -165,9 +165,8 @@ static void usage(void)
{
print_version();
puts("By Jani Tolonen, 2001-04-20, MySQL Development Team\n");
- puts("This software comes with ABSOLUTELY NO WARRANTY. This is free");
- puts("software and you are welcome to modify and redistribute it");
- puts("under the GPL license.\n");
+ puts("This software comes with ABSOLUTELY NO WARRANTY. This is free software,\n");
+ puts("and you are welcome to modify and redistribute it under the GPL license.\n");
puts("This program can be used to CHECK (-c,-m,-C), REPAIR (-r), ANALYZE (-a)");
puts("or OPTIMIZE (-o) tables. Some of the options (like -e or -q) can be");
puts("used same time. It works on MyISAM and in some cases on BDB tables.");
@@ -198,12 +197,6 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
case 'a':
what_to_do = DO_ANALYZE;
break;
- case OPT_DEFAULT_CHARSET:
- default_charset = argument;
- break;
- case OPT_CHARSETS_DIR:
- charsets_dir = argument;
- break;
case 'c':
what_to_do = DO_CHECK;
break;
@@ -215,10 +208,6 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
case '?':
usage();
exit(0);
- case 'h':
- my_free(current_host, MYF(MY_ALLOW_ZERO_PTR));
- current_host = my_strdup(argument, MYF(MY_WME));
- break;
case 'm':
what_to_do = DO_CHECK;
opt_medium_check = 1;
@@ -226,11 +215,6 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
case 'o':
what_to_do = DO_OPTIMIZE;
break;
-#ifndef DONT_ALLOW_USER_CHANGE
- case 'u':
- current_user = argument;
- break;
-#endif
case 'p':
if (argument)
{
@@ -244,15 +228,9 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
else
tty_password = 1;
break;
- case 'P':
- opt_mysql_port = (unsigned int) atoi(argument);
- break;
case 'r':
what_to_do = DO_REPAIR;
break;
- case 'S':
- opt_mysql_unix_port = argument;
- break;
case 'W':
#ifdef __WIN__
opt_mysql_unix_port = MYSQL_NAMEDPIPE;
@@ -287,11 +265,7 @@ static int get_options(int *argc, char ***argv)
load_defaults("my", load_default_groups, argc, argv);
if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option)))
- {
- printf("%s: handle_options() failed with error %d\n", my_progname,
- ho_error);
- exit(1);
- }
+ exit(ho_error);
if (!what_to_do)
{
@@ -614,8 +588,8 @@ int main(int argc, char **argv)
if (dbConnect(current_host, current_user, opt_password))
exit(EX_MYSQLERR);
- if (opt_auto_repair &&
- init_dynamic_array(&tables4repair, sizeof(char)*(NAME_LEN*2+2),16,64))
+ if (opt_auto_repair &&
+ my_init_dynamic_array(&tables4repair, sizeof(char)*(NAME_LEN*2+2),16,64))
{
first_error = 1;
goto end;
diff --git a/client/mysqldump.c b/client/mysqldump.c
index 833f28bba98..9c27029582c 100644
--- a/client/mysqldump.c
+++ b/client/mysqldump.c
@@ -35,7 +35,7 @@
** and adapted to mysqldump 05/11/01 by Jani Tolonen
*/
-#define DUMP_VERSION "9.00"
+#define DUMP_VERSION "9.06"
#include <my_global.h>
#include <my_sys.h>
@@ -46,7 +46,6 @@
#include "mysql.h"
#include "mysql_version.h"
#include "mysqld_error.h"
-#include <my_getopt.h>
/* Exit codes */
@@ -64,6 +63,9 @@
#define SHOW_EXTRA 5
#define QUOTE_CHAR '`'
+/* Size of buffer for dump's select query */
+#define QUERY_LENGTH 1536
+
static char *add_load_option(char *ptr, const char *object,
const char *statement);
@@ -94,8 +96,9 @@ static struct my_option my_long_options[] =
"Dump all the databases. This will be same as --databases with all databases selected.",
(gptr*) &opt_alldbs, (gptr*) &opt_alldbs, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0,
0, 0},
- {"all", 'a', "Include all MySQL specific create options.", 0, 0, 0,
- GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"all", 'a', "Include all MySQL specific create options.",
+ (gptr*) &create_options, (gptr*) &create_options, 0, GET_BOOL, NO_ARG, 0,
+ 0, 0, 0, 0, 0},
{"add-drop-table", OPT_DROP, "Add a 'drop table' before each create.",
(gptr*) &opt_drop, (gptr*) &opt_drop, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0,
0},
@@ -108,8 +111,8 @@ static struct my_option my_long_options[] =
{"character-sets-dir", OPT_CHARSETS_DIR,
"Directory where character sets are", (gptr*) &charsets_dir,
(gptr*) &charsets_dir, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
- {"complete-insert", 'c', "Use complete insert statements.", 0, 0, 0,
- GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"complete-insert", 'c', "Use complete insert statements.", (gptr*) &cFlag,
+ (gptr*) &cFlag, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
{"compress", 'C', "Use compression in server/client protocol.",
(gptr*) &opt_compress, (gptr*) &opt_compress, 0, GET_BOOL, NO_ARG, 0, 0, 0,
0, 0, 0},
@@ -155,7 +158,7 @@ static struct my_option my_long_options[] =
{"help", '?', "Display this help message and exit.", 0, 0, 0, GET_NO_ARG,
NO_ARG, 0, 0, 0, 0, 0, 0},
{"host", 'h', "Connect to host.", (gptr*) &current_host,
- (gptr*) &current_host, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ (gptr*) &current_host, 0, GET_STR_ALLOC, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"lines-terminated-by", OPT_LTB, "Lines in the i.file are terminated by ...",
(gptr*) &lines_terminated, (gptr*) &lines_terminated, 0, GET_STR,
REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
@@ -173,11 +176,11 @@ static struct my_option my_long_options[] =
(gptr*) &opt_create_db, (gptr*) &opt_create_db, 0, GET_BOOL, NO_ARG, 0, 0,
0, 0, 0, 0},
{"no-create-info", 't', "Don't write table creation info.",
- 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
- {"no-data", 'd', "No row information.", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0,
- 0, 0, 0, 0},
+ (gptr*) &tFlag, (gptr*) &tFlag, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"no-data", 'd', "No row information.", (gptr*) &dFlag, (gptr*) &dFlag, 0,
+ GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
{"set-variable", 'O',
- "Change the value of a variable. Please note that this option is depricated; you can set variables directly with --variable-name=value.",
+ "Change the value of a variable. Please note that this option is deprecated; you can set variables directly with --variable-name=value.",
0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"opt", OPT_OPTIMIZE,
"Same as --add-drop-table --add-locks --all --quick --extended-insert --lock-tables --disable-keys",
@@ -189,8 +192,9 @@ static struct my_option my_long_options[] =
{"pipe", 'W', "Use named pipes to connect to server", 0, 0, 0, GET_NO_ARG,
NO_ARG, 0, 0, 0, 0, 0, 0},
#endif
- {"port", 'P', "Port number to use for connection.", 0, 0, 0, GET_LONG,
- REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"port", 'P', "Port number to use for connection.", (gptr*) &opt_mysql_port,
+ (gptr*) &opt_mysql_port, 0, GET_UINT, REQUIRED_ARG, MYSQL_PORT, 0, 0, 0, 0,
+ 0},
{"quick", 'q', "Don't buffer query, dump directly to stdout.",
(gptr*) &quick, (gptr*) &quick, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
{"quote-names",'Q', "Quote table and column names with a `",
@@ -198,8 +202,7 @@ static struct my_option my_long_options[] =
0, 0},
{"result-file", 'r',
"Direct output to a given file. This option should be used in MSDOS, because it prevents new line '\\n' from being converted to '\\n\\r' (newline + carriage return).",
- (gptr*) &md_result_file, (gptr*) &md_result_file, 0, GET_STR, REQUIRED_ARG,
- 0, 0, 0, 0, 0, 0},
+ 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"socket", 'S', "Socket file to use for connection.",
(gptr*) &opt_mysql_unix_port, (gptr*) &opt_mysql_unix_port, 0, GET_STR,
REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
@@ -222,15 +225,15 @@ static struct my_option my_long_options[] =
(gptr*) &where, (gptr*) &where, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"xml", 'X', "Dump a database as well formed XML.", 0, 0, 0, GET_NO_ARG,
NO_ARG, 0, 0, 0, 0, 0, 0},
- { "max_allowed_packet", OPT_MAX_ALLOWED_PACKET, "",
+ {"max_allowed_packet", OPT_MAX_ALLOWED_PACKET, "",
(gptr*) &max_allowed_packet, (gptr*) &max_allowed_packet, 0,
- GET_LONG, REQUIRED_ARG, 24*1024*1024, 4096, 512*1024L*1024L,
+ GET_ULONG, REQUIRED_ARG, 24*1024*1024, 4096, 512*1024L*1024L,
MALLOC_OVERHEAD, 1024, 0},
- { "net_buffer_length", OPT_NET_BUFFER_LENGTH, "",
+ {"net_buffer_length", OPT_NET_BUFFER_LENGTH, "",
(gptr*) &net_buffer_length, (gptr*) &net_buffer_length, 0,
- GET_LONG, REQUIRED_ARG, 1024*1024L-1025, 4096, 16*1024L*1024L,
+ GET_ULONG, REQUIRED_ARG, 1024*1024L-1025, 4096, 16*1024L*1024L,
MALLOC_OVERHEAD-1024, 1024, 0},
- { 0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
+ {0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
};
static const char *load_default_groups[]= { "mysqldump","client",0 };
@@ -257,7 +260,6 @@ static void print_version(void)
static void usage(void)
{
- uint i;
print_version();
puts("By Igor Romanenko, Monty, Jani & Sinisa");
puts("This software comes with ABSOLUTELY NO WARRANTY. This is free software,\nand you are welcome to modify and redistribute it under the GPL license\n");
@@ -299,24 +301,6 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
opt_master_data=1;
opt_first_slave=1;
break;
- case 'a':
- create_options=1;
- break;
- case OPT_DEFAULT_CHARSET:
- default_charset= argument;
- break;
- case OPT_CHARSETS_DIR:
- charsets_dir= argument;
- break;
- case 'h':
- my_free(current_host,MYF(MY_ALLOW_ZERO_PTR));
- current_host=my_strdup(argument,MYF(MY_WME));
- break;
-#ifndef DONT_ALLOW_USER_CHANGE
- case 'u':
- current_user=argument;
- break;
-#endif
case 'p':
if (argument)
{
@@ -330,62 +314,31 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
else
tty_password=1;
break;
- case 'P':
- opt_mysql_port= (unsigned int) atoi(argument);
- break;
case 'r':
if (!(md_result_file = my_fopen(argument, O_WRONLY | O_BINARY,
MYF(MY_WME))))
exit(1);
break;
- case 'S':
- opt_mysql_unix_port= argument;
- break;
case 'W':
#ifdef __WIN__
opt_mysql_unix_port=MYSQL_NAMEDPIPE;
#endif
break;
case 'T':
- path= argument;
opt_disable_keys=0;
break;
case '#':
DBUG_PUSH(argument ? argument : "d:t:o");
break;
- case 'c': cFlag=1; break;
- case 'd': dFlag=1; break;
- case 't': tFlag=1; break;
case 'V': print_version(); exit(0);
- case 'w':
- where=argument;
- break;
case 'X':
opt_xml = 1;
opt_disable_keys=0;
break;
- default:
- fprintf(stderr,"%s: Illegal option character '%c'\n",my_progname,opterr);
- /* Fall throught */
case 'I':
case '?':
usage();
exit(0);
- case (int) OPT_FTB:
- fields_terminated= argument;
- break;
- case (int) OPT_LTB:
- lines_terminated= argument;
- break;
- case (int) OPT_ENC:
- enclosed= argument;
- break;
- case (int) OPT_O_ENC:
- opt_enclosed= argument;
- break;
- case (int) OPT_ESC:
- escaped= argument;
- break;
case (int) OPT_OPTIMIZE:
extended_insert=opt_drop=opt_lock=lock_tables=quick=create_options=
opt_disable_keys=1;
@@ -407,11 +360,7 @@ static int get_options(int *argc, char ***argv)
load_defaults("my",load_default_groups,argc,argv);
if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option)))
- {
- printf("%s: handle_options() failed with error %d\n", my_progname,
- ho_error);
- exit(1);
- }
+ exit(ho_error);
if (opt_delayed)
opt_lock=0; /* Can't have lock with delayed */
@@ -910,7 +859,7 @@ static char *field_escape(char *to,const char *from,uint length)
*/
static void dumpTable(uint numFields, char *table)
{
- char query[1024], *end, buff[256],table_buff[NAME_LEN+3];
+ char query[QUERY_LENGTH], *end, buff[256],table_buff[NAME_LEN+3];
MYSQL_RES *res;
MYSQL_FIELD *field;
MYSQL_ROW row;
@@ -927,7 +876,8 @@ static void dumpTable(uint numFields, char *table)
my_delete(filename, MYF(0)); /* 'INTO OUTFILE' doesn't work, if
filename wasn't deleted */
to_unix_path(filename);
- sprintf(query, "SELECT * INTO OUTFILE '%s'", filename);
+ sprintf(query, "SELECT /*!40001 SQL_NO_CACHE */ * INTO OUTFILE '%s'",
+ filename);
end= strend(query);
if (replace)
end= strmov(end, " REPLACE");
@@ -958,7 +908,8 @@ static void dumpTable(uint numFields, char *table)
if (!opt_xml)
fprintf(md_result_file,"\n--\n-- Dumping data for table '%s'\n--\n",
table);
- sprintf(query, "SELECT * FROM %s", quote_name(table,table_buff));
+ sprintf(query, "SELECT /*!40001 SQL_NO_CACHE */ * FROM %s",
+ quote_name(table,table_buff));
if (where)
{
if (!opt_xml)
@@ -1424,8 +1375,6 @@ int main(int argc, char **argv)
return(first_error);
}
}
- if(mysql_query(sock, "set sql_query_cache_type=off") && verbose)
- fprintf(stderr, "-- can't take off query cache (not supported).\n");
if (opt_alldbs)
dump_all_databases();
/* Only one database and selected table(s) */
diff --git a/client/mysqlimport.c b/client/mysqlimport.c
index e8403abe8c1..1933ea41bcf 100644
--- a/client/mysqlimport.c
+++ b/client/mysqlimport.c
@@ -25,11 +25,10 @@
** * *
** *************************
*/
-#define IMPORT_VERSION "3.0"
+#define IMPORT_VERSION "3.4"
#include "client_priv.h"
#include "mysql_version.h"
-#include <my_getopt.h>
static void db_error_with_table(MYSQL *mysql, char *table);
static void db_error(MYSQL *mysql);
@@ -90,8 +89,9 @@ static struct my_option my_long_options[] =
(gptr*) &current_host, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"ignore", 'i', "If duplicate unique key was found, keep old row.",
(gptr*) &ignore, (gptr*) &ignore, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
- {"ignore-lines", OPT_IGN_LINES, "Ignore first n lines of data infile.", 0, 0,
- 0, GET_LL, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"ignore-lines", OPT_IGN_LINES, "Ignore first n lines of data infile.",
+ (gptr*) &opt_ignore_lines, (gptr*) &opt_ignore_lines, 0, GET_STR,
+ REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"lines-terminated-by", OPT_LTB, "Lines in the i.file are terminated by ...",
(gptr*) &lines_terminated, (gptr*) &lines_terminated, 0, GET_STR,
REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
@@ -110,7 +110,8 @@ static struct my_option my_long_options[] =
NO_ARG, 0, 0, 0, 0, 0, 0},
#endif
{"port", 'P', "Port number to use for connection.", (gptr*) &opt_mysql_port,
- (gptr*) &opt_mysql_port, 0, GET_LONG, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ (gptr*) &opt_mysql_port, 0, GET_UINT, REQUIRED_ARG, MYSQL_PORT, 0, 0, 0, 0,
+ 0},
{"replace", 'r', "If duplicate unique key was found, replace old row.",
(gptr*) &replace, (gptr*) &replace, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
{"silent", 's', "Be more silent.", (gptr*) &silent, (gptr*) &silent, 0,
@@ -165,23 +166,6 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
char *argument)
{
switch(optid) {
- case 'c':
- opt_columns= argument;
- break;
- case OPT_DEFAULT_CHARSET:
- default_charset= argument;
- break;
- case OPT_CHARSETS_DIR:
- charsets_dir= argument;
- break;
- case 'h':
- current_host= argument;
- break;
-#ifndef DONT_ALLOW_USER_CHANGE
- case 'u':
- current_user= argument;
- break;
-#endif
case 'p':
if (argument)
{
@@ -195,12 +179,6 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
else
tty_password= 1;
break;
- case 'P':
- opt_mysql_port= (unsigned int) atoi(argument);
- break;
- case 'S':
- opt_mysql_unix_port= argument;
- break;
#ifdef __WIN__
case 'W':
opt_mysql_unix_port=MYSQL_NAMEDPIPE;
@@ -215,24 +193,6 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
case '?':
usage();
exit(0);
- case (int) OPT_FTB:
- fields_terminated= argument;
- break;
- case (int) OPT_LTB:
- lines_terminated= argument;
- break;
- case (int) OPT_ENC:
- enclosed= argument;
- break;
- case (int) OPT_O_ENC:
- opt_enclosed= argument;
- break;
- case (int) OPT_ESC:
- escaped= argument;
- break;
- case (int) OPT_IGN_LINES:
- opt_ignore_lines= argument;
- break;
#include "sslopt-case.h"
}
return 0;
@@ -244,11 +204,8 @@ static int get_options(int *argc, char ***argv)
int ho_error;
if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option)))
- {
- printf("%s: handle_options() failed with error %d\n", my_progname,
- ho_error);
- exit(1);
- }
+ exit(ho_error);
+
if (enclosed && opt_enclosed)
{
fprintf(stderr, "You can't use ..enclosed.. and ..optionally-enclosed.. at the same time.\n");
diff --git a/client/mysqlmanager-pwgen.c b/client/mysqlmanager-pwgen.c
index 97eb31eb9c8..40126e279b5 100644
--- a/client/mysqlmanager-pwgen.c
+++ b/client/mysqlmanager-pwgen.c
@@ -14,7 +14,7 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-#define MANAGER_PWGEN_VERSION "1.0"
+#define MANAGER_PWGEN_VERSION "1.4"
#include <my_global.h>
#include <m_ctype.h>
@@ -22,18 +22,23 @@
#include <m_string.h>
#include <mysql_version.h>
#include <errno.h>
-#include <getopt.h>
+#include <my_getopt.h>
#include <md5.h>
const char* outfile=0,*user="root";
-struct option long_options[] =
+static struct my_option my_long_options[] =
{
- {"output-file",required_argument,0,'o'},
- {"user",required_argument,0,'u'},
- {"help",no_argument,0,'?'},
- {"version",no_argument,0,'V'},
- {0,0,0,0}
+ {"output-file", 'o', "Write the output to the file with the given name",
+ (gptr*) &outfile, (gptr*) &outfile, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0,
+ 0, 0},
+ {"user", 'u', "Put given user in the password file", (gptr*) &user,
+ (gptr*) &user, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"help", '?', "Display this message and exit", 0, 0, 0, GET_NO_ARG, NO_ARG,
+ 0, 0, 0, 0, 0, 0},
+ {"version", 'V', "Display version info", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0,
+ 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
};
static void die(const char* fmt, ...)
@@ -66,40 +71,36 @@ void usage()
printf("This software comes with ABSOLUTELY NO WARRANTY\n\n");
printf("Generates a password file to be used by mysqltest.\n\n");
printf("Usage: %s [OPTIONS]\n", my_progname);
- printf("-?,--help Display this message and exit\n\
--V,--version Display version info\n\
--u,--user= Put given user in the password file\n\
--o,--output-file= Write the output to the file with the given name\n");
+ my_print_help(my_long_options);
+ my_print_variables(my_long_options);
}
-int parse_args(int argc, char** argv)
+static my_bool
+get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
+ char *argument __attribute__((unused)))
{
- int c,option_index=0;
- while ((c=getopt_long(argc,argv,"?Vu:o:",long_options,&option_index))
- != EOF)
- {
- switch (c)
- {
- case 'o':
- outfile=optarg;
- break;
- case 'u':
- user=optarg;
- break;
- case '?':
- usage();
- exit(0);
- case 'V':
- print_version();
- exit(0);
- default:
- usage();
- exit(1);
- }
+ switch (optid) {
+ case '?':
+ usage();
+ exit(0);
+ case 'V':
+ print_version();
+ exit(0);
}
return 0;
}
+
+int parse_args(int argc, char** argv)
+{
+ int ho_error;
+
+ if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
+ exit(ho_error);
+
+ return 0;
+}
+
void get_pass(char* pw, int len)
{
FILE* fp;
diff --git a/client/mysqlmanagerc.c b/client/mysqlmanagerc.c
index a01f6c25f34..f200b993147 100644
--- a/client/mysqlmanagerc.c
+++ b/client/mysqlmanagerc.c
@@ -14,7 +14,7 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-#define MANAGER_CLIENT_VERSION "1.1"
+#define MANAGER_CLIENT_VERSION "1.4"
#include <my_global.h>
#include <mysql.h>
@@ -22,7 +22,7 @@
#include <mysqld_error.h>
#include <my_sys.h>
#include <m_string.h>
-#include <getopt.h>
+#include <my_getopt.h>
#include <stdarg.h>
#include <sys/stat.h>
#include <unistd.h>
@@ -35,23 +35,31 @@ static void die(const char* fmt, ...);
const char* user="root",*host="localhost";
char* pass=0;
-int quiet=0;
+my_bool quiet=0;
uint port=MYSQL_MANAGER_PORT;
static const char *load_default_groups[]= { "mysqlmanagerc",0 };
char** default_argv;
MYSQL_MANAGER *manager;
FILE* fp, *fp_out;
-struct option long_options[] =
+static struct my_option my_long_options[] =
{
- {"host",required_argument,0,'h'},
- {"user",required_argument,0,'u'},
- {"password",optional_argument,0,'p',},
- {"port",required_argument,0,'P'},
- {"help",no_argument,0,'?'},
- {"version",no_argument,0,'V'},
- {"quiet",no_argument,0,'q'},
- {0,0,0,0}
+ {"host", 'h', "Connect to host.", (gptr*) &host, (gptr*) &host, 0,
+ GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"user", 'u', "User for login.", (gptr*) &user, (gptr*) &user, 0,
+ GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"password", 'p', "Password to use when connecting to server.",
+ 0, 0, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
+ {"port", 'P', "Port number to use for connection.", (gptr*) &port,
+ (gptr*) &port, 0, GET_UINT, REQUIRED_ARG, MYSQL_MANAGER_PORT, 0, 0, 0, 0,
+ 0},
+ {"help", '?', "Display this help and exit.", 0, 0, 0, GET_NO_ARG, NO_ARG,
+ 0, 0, 0, 0, 0, 0},
+ {"version", 'V', "Output version information and exit.", 0, 0, 0,
+ GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"quiet", 'q', "Suppress all normal output.", (gptr*) &quiet, (gptr*) &quiet,
+ 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
};
static void die(const char* fmt, ...)
@@ -84,65 +92,51 @@ void usage()
printf("This software comes with ABSOLUTELY NO WARRANTY\n\n");
printf("Command-line client for MySQL manager daemon.\n\n");
printf("Usage: %s [OPTIONS] < command_file\n", my_progname);
- printf("\n\
- -?, --help Display this help and exit.\n");
- printf("\
- -h, --host=... Connect to host.\n\
- -u, --user=... User for login.\n\
- -p[password], --password[=...]\n\
- Password to use when connecting to server.\n\
- -P, --port=... Port number to use for connection.\n\
- -q, --quiet, --silent Suppress all normal output.\n\
- -V, --version Output version information and exit.\n\
- --no-defaults Don't read default options from any options file.\n\n");
+ my_print_help(my_long_options);
+ printf(" --no-defaults Don't read default options from any options file.\n");
+ my_print_variables(my_long_options);
}
-int parse_args(int argc, char **argv)
+
+
+static my_bool
+get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
+ char *argument)
{
- int c, option_index = 0;
my_bool tty_password=0;
+
+ switch (optid) {
+ case 'p':
+ if (argument)
+ {
+ my_free(pass, MYF(MY_ALLOW_ZERO_PTR));
+ pass= my_strdup(argument, MYF(MY_FAE));
+ while (*argument) *argument++= 'x'; /* Destroy argument */
+ }
+ else
+ tty_password=1;
+ break;
+ case 'V':
+ print_version();
+ exit(0);
+ case '?':
+ usage();
+ exit(0);
+ }
+ return 0;
+}
+
+
+int parse_args(int argc, char **argv)
+{
+ int ho_error;
load_defaults("my",load_default_groups,&argc,&argv);
default_argv= argv;
- while ((c = getopt_long(argc, argv, "h:p::u:P:?Vq",
- long_options, &option_index)) != EOF)
- {
- switch (c)
- {
- case 'h':
- host=optarg;
- break;
- case 'u':
- user=optarg;
- break;
- case 'p':
- if (optarg)
- {
- my_free(pass,MYF(MY_ALLOW_ZERO_PTR));
- pass=my_strdup(optarg,MYF(MY_FAE));
- while (*optarg) *optarg++= 'x'; /* Destroy argument */
- }
- else
- tty_password=1;
- break;
- case 'P':
- port=atoi(optarg);
- break;
- case 'q':
- quiet=1;
- break;
- case 'V':
- print_version();
- exit(0);
- case '?':
- usage();
- exit(0);
- default:
- usage();
- exit(1);
- }
- }
- return 0;
+ if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
+ exit(ho_error);
+
+ return 0;
}
int main(int argc, char** argv)
{
diff --git a/client/mysqlshow.c b/client/mysqlshow.c
index 2326d72ea34..81b4d2ab4f7 100644
--- a/client/mysqlshow.c
+++ b/client/mysqlshow.c
@@ -16,7 +16,7 @@
/* Show databases, tables or columns */
-#define SHOW_VERSION "9.0"
+#define SHOW_VERSION "9.4"
#include <my_global.h>
#include "client_priv.h"
@@ -27,7 +27,6 @@
#include "mysqld_error.h"
#include <signal.h>
#include <stdarg.h>
-#include <my_getopt.h>
#include "sslopt-vars.h"
static my_string host=0,opt_password=0,user=0;
@@ -144,8 +143,9 @@ static struct my_option my_long_options[] =
{"password", 'p',
"Password to use when connecting to server. If password is not given it's asked from the tty.",
0, 0, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
- {"port", 'P', "Port number to use for connection.", 0, 0, 0, GET_LONG,
- REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"port", 'P', "Port number to use for connection.", (gptr*) &opt_mysql_port,
+ (gptr*) &opt_mysql_port, 0, GET_UINT, REQUIRED_ARG, MYSQL_PORT, 0, 0, 0, 0,
+ 0},
#ifdef __WIN__
{"pipe", 'W', "Use named pipes to connect to server.", 0, 0, 0, GET_NO_ARG,
NO_ARG, 0, 0, 0, 0, 0, 0},
@@ -197,15 +197,9 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
char *argument)
{
switch(optid) {
- case 'c':
- charsets_dir= argument;
- break;
case 'v':
opt_verbose++;
break;
- case 'h':
- host = argument;
- break;
case 'p':
if (argument)
{
@@ -219,17 +213,6 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
else
tty_password=1;
break;
-#ifndef DONT_ALLOW_USER_CHANGE
- case 'u':
- user=argument;
- break;
-#endif
- case 'P':
- opt_mysql_port= (unsigned int) atoi(argument);
- break;
- case 'S':
- opt_mysql_unix_port= argument;
- break;
case 'W':
#ifdef __WIN__
opt_mysql_unix_port=MYSQL_NAMEDPIPE;
@@ -258,11 +241,7 @@ get_options(int *argc,char ***argv)
int ho_error;
if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option)))
- {
- printf("%s: handle_options() failed with error %d\n", my_progname,
- ho_error);
- exit(1);
- }
+ exit(ho_error);
if (tty_password)
opt_password=get_tty_password(NullS);
diff --git a/client/mysqltest.c b/client/mysqltest.c
index e75cc9190e5..b13f6b710eb 100644
--- a/client/mysqltest.c
+++ b/client/mysqltest.c
@@ -22,6 +22,7 @@
* Sasha Pachev <sasha@mysql.com>
* Matt Wagner <matt@mysql.com>
* Monty
+ * Jani
**/
/**********************************************************************
@@ -41,7 +42,7 @@
**********************************************************************/
-#define MTEST_VERSION "1.14"
+#define MTEST_VERSION "1.23"
#include <my_global.h>
#include <mysql_embed.h>
@@ -55,7 +56,7 @@
#include <hash.h>
#include <stdio.h>
#include <stdlib.h>
-#include <getopt.h>
+#include <my_getopt.h>
#include <stdarg.h>
#include <sys/stat.h>
#include <unistd.h>
@@ -95,10 +96,12 @@
enum {OPT_MANAGER_USER=256,OPT_MANAGER_HOST,OPT_MANAGER_PASSWD,
OPT_MANAGER_PORT,OPT_MANAGER_WAIT_TIMEOUT};
-static int record = 0, verbose = 0, silent = 0, opt_sleep=0;
+static int record = 0, opt_sleep=0;
static char *db = 0, *pass=0;
const char* user = 0, *host = 0, *unix_sock = 0, *opt_basedir="./";
-static int port = 0, opt_big_test=0, opt_compress=0;
+static int port = 0;
+static my_bool opt_big_test= 0, opt_compress= 0, silent= 0, verbose = 0,
+ tty_password= 0;
static uint start_lineno, *lineno;
const char* manager_user="root",*manager_host=0;
char *manager_pass=0;
@@ -661,7 +664,7 @@ int open_file(const char* name)
}
/* ugly long name, but we are following the convention */
-int do_wait_for_slave_to_stop(struct st_query* __attribute__((unused)) q)
+int do_wait_for_slave_to_stop(struct st_query* q __attribute__((unused)))
{
MYSQL* mysql = &cur_con->mysql;
#ifndef OS2
@@ -699,7 +702,7 @@ int do_wait_for_slave_to_stop(struct st_query* __attribute__((unused)) q)
return 0;
}
-int do_require_manager(struct st_query* __attribute__((unused)) q)
+int do_require_manager(struct st_query* a __attribute__((unused)))
{
if (!manager)
abort_not_supported_test();
@@ -1022,20 +1025,20 @@ int do_let(struct st_query* q)
return var_set(var_name, var_name_end, var_val_start, q->end);
}
-int do_rpl_probe(struct st_query* __attribute__((unused)) q)
+int do_rpl_probe(struct st_query* q __attribute__((unused)))
{
if(mysql_rpl_probe(&cur_con->mysql))
die("Failed in mysql_rpl_probe(): %s", mysql_error(&cur_con->mysql));
return 0;
}
-int do_enable_rpl_parse(struct st_query* __attribute__((unused)) q)
+int do_enable_rpl_parse(struct st_query* q __attribute__((unused)))
{
mysql_enable_rpl_parse(&cur_con->mysql);
return 0;
}
-int do_disable_rpl_parse(struct st_query* __attribute__((unused)) q)
+int do_disable_rpl_parse(struct st_query* q __attribute__((unused)))
{
mysql_disable_rpl_parse(&cur_con->mysql);
return 0;
@@ -1448,7 +1451,7 @@ int do_connect(struct st_query* q)
if (!con_db[0])
con_db=db;
/* Special database to allow one to connect without a database name */
- if (!strcmp(con_db,"*NO-ONE*"))
+ if (con_db && !strcmp(con_db,"*NO-ONE*"))
con_db=0;
if ((con_error = safe_connect(&next_con->mysql, con_host,
con_user, con_pass,
@@ -1785,36 +1788,74 @@ int read_query(struct st_query** q_ptr)
return 0;
}
-struct option long_options[] =
-{
- {"debug", optional_argument, 0, '#'},
- {"database", required_argument, 0, 'D'},
- {"basedir", required_argument, 0, 'b'},
- {"big-test", no_argument, 0, 'B'},
- {"compress", no_argument, 0, 'C'},
- {"help", no_argument, 0, '?'},
- {"host", required_argument, 0, 'h'},
- {"manager-user",required_argument, 0, OPT_MANAGER_USER},
- {"manager-host",required_argument, 0, OPT_MANAGER_HOST},
- {"manager-password",required_argument,0,OPT_MANAGER_PASSWD},
- {"manager-port",required_argument,0,OPT_MANAGER_PORT},
- {"manager-wait-timeout",required_argument,0,OPT_MANAGER_WAIT_TIMEOUT},
- {"password", optional_argument, 0, 'p'},
- {"port", required_argument, 0, 'P'},
- {"quiet", no_argument, 0, 's'},
- {"record", no_argument, 0, 'r'},
- {"result-file", required_argument, 0, 'R'},
- {"server-arg", required_argument, 0, 'A'},
- {"server-file", required_argument, 0, 'F'},
- {"silent", no_argument, 0, 's'},
- {"sleep", required_argument, 0, 'T'},
- {"socket", required_argument, 0, 'S'},
- {"test-file", required_argument, 0, 'x'},
- {"tmpdir", required_argument, 0, 't'},
- {"user", required_argument, 0, 'u'},
- {"verbose", no_argument, 0, 'v'},
- {"version", no_argument, 0, 'V'},
- {0, 0, 0, 0}
+
+static struct my_option my_long_options[] =
+{
+#ifndef DBUG_OFF
+ {"debug", '#', "Output debug log. Often this is 'd:t:o,filename'",
+ 0, 0, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
+#endif
+ {"database", 'D', "Database to use.", (gptr*) &db, (gptr*) &db, 0,
+ GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"basedir", 'b', "Basedir for tests", (gptr*) &opt_basedir,
+ (gptr*) &opt_basedir, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"big-test", 'B', "Define BIG_TEST to 1", (gptr*) &opt_big_test,
+ (gptr*) &opt_big_test, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"compress", 'C', "Use the compressed server/client protocol",
+ (gptr*) &opt_compress, (gptr*) &opt_compress, 0, GET_BOOL, NO_ARG, 0, 0, 0,
+ 0, 0, 0},
+ {"help", '?', "Display this help and exit.", 0, 0, 0, GET_NO_ARG, NO_ARG,
+ 0, 0, 0, 0, 0, 0},
+ {"host", 'h', "Connect to host.", (gptr*) &host, (gptr*) &host, 0,
+ GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"manager-user", OPT_MANAGER_USER, "Undocumented: Used for debugging",
+ (gptr*) &manager_user, (gptr*) &manager_user, 0, GET_STR, REQUIRED_ARG, 0,
+ 0, 0, 0, 0, 0},
+ {"manager-host", OPT_MANAGER_HOST, "Undocumented: Used for debugging",
+ (gptr*) &manager_host, (gptr*) &manager_host, 0, GET_STR, REQUIRED_ARG,
+ 0, 0, 0, 0, 0, 0},
+ {"manager-password", OPT_MANAGER_PASSWD, "Undocumented: Used for debugging",
+ 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"manager-port", OPT_MANAGER_PORT, "Undocumented: Used for debugging",
+ (gptr*) &manager_port, (gptr*) &manager_port, 0, GET_INT, REQUIRED_ARG,
+ MYSQL_MANAGER_PORT, 0, 0, 0, 0, 0},
+ {"manager-wait-timeout", OPT_MANAGER_WAIT_TIMEOUT,
+ "Undocumented: Used for debugging", (gptr*) &manager_wait_timeout,
+ (gptr*) &manager_wait_timeout, 0, GET_INT, REQUIRED_ARG, 3, 0, 0, 0, 0, 0},
+ {"password", 'p', "Password to use when connecting to server.",
+ 0, 0, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
+ {"port", 'P', "Port number to use for connection.", (gptr*) &port,
+ (gptr*) &port, 0, GET_INT, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"quiet", 's', "Suppress all normal output.", (gptr*) &silent,
+ (gptr*) &silent, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"record", 'r', "Record output of test_file into result file.",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"result-file", 'R', "Read/Store result from/in this file.",
+ (gptr*) &result_file, (gptr*) &result_file, 0, GET_STR, REQUIRED_ARG,
+ 0, 0, 0, 0, 0, 0},
+ {"server-arg", 'A', "Send enbedded server this as a paramenter",
+ 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"server-file", 'F', "Read embedded server arguments from file",
+ 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"silent", 's', "Suppress all normal output. Synonym for --quiet.",
+ (gptr*) &silent, (gptr*) &silent, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"sleep", 'T', "Sleep always this many seconds on sleep commands",
+ (gptr*) &opt_sleep, (gptr*) &opt_sleep, 0, GET_INT, REQUIRED_ARG, 0, 0, 0,
+ 0, 0, 0},
+ {"socket", 'S', "Socket file to use for connection.",
+ (gptr*) &unix_sock, (gptr*) &unix_sock, 0, GET_STR, REQUIRED_ARG, 0, 0, 0,
+ 0, 0, 0},
+ {"test-file", 'x', "Read test from/in this file (default stdin).",
+ 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"tmpdir", 't', "Temporary directory where sockets are put",
+ 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"user", 'u', "User for login.", (gptr*) &user, (gptr*) &user, 0, GET_STR,
+ REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"verbose", 'v', "Write more.", (gptr*) &verbose, (gptr*) &verbose, 0,
+ GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"version", 'V', "Output version information and exit.",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ { 0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
};
@@ -1827,170 +1868,97 @@ static void print_version(void)
void usage()
{
print_version();
- printf("MySQL AB, by Sasha, Matt & Monty\n");
+ printf("MySQL AB, by Sasha, Matt, Monty & Jani\n");
printf("This software comes with ABSOLUTELY NO WARRANTY\n\n");
printf("Runs a test against the mysql server and compares output with a results file.\n\n");
printf("Usage: %s [OPTIONS] [database] < test_file\n", my_progname);
- printf("\n\
- -?, --help Display this help and exit.\n");
-#ifndef DBUG_OFF
- puts("\
- -#, --debug=[...] Output debug log. Often this is 'd:t:o,filename`");
-#endif
- printf("\
- -h, --host=... Connect to host.\n\
- -u, --user=... User for login.\n\
- -p[password], --password[=...]\n\
- Password to use when connecting to server.\n\
- -b, --basedir=... Basedir for tests\n\
- -B, --big-test Define BIG_TEST to 1\n\
- -C, --compress Use the compressed server/client protocol\n\
- -D, --database=... Database to use.\n\
- -P, --port=... Port number to use for connection.\n\
- --server-arg=... Send enbedded server this as a paramenter\n\
- --server-file=... Read embedded server arguments from file\n\
- -s, --silent, --quiet Suppress all normal output.\n\
- -S, --socket=... Socket file to use for connection.\n\
- -t, --tmpdir=... Temporary directory where sockets are put\n\
- -T, --sleep=# Sleep always this many seconds on sleep commands\n\
- -r, --record Record output of test_file into result file.\n\
- -R, --result-file=... Read/Store result from/in this file.\n\
- -x, --test-file=... Read test from/in this file (default stdin).\n\
- -v, --verbose Write more.\n\
- -V, --version Output version information and exit.\n\
- --no-defaults Don't read default options from any options file.\n\n");
+ my_print_help(my_long_options);
+ printf(" --no-defaults Don't read default options from any options file.\n");
+ my_print_variables(my_long_options);
}
+
+static my_bool
+get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
+ char *argument)
+{
+ switch(optid) {
+ case '#':
+ DBUG_PUSH(argument ? argument : "d:t:S:i:O,/tmp/mysqltest.trace");
+ break;
+ case 'r':
+ record = 1;
+ break;
+ case (int)OPT_MANAGER_PASSWD:
+ my_free(manager_pass,MYF(MY_ALLOW_ZERO_PTR));
+ manager_pass=my_strdup(argument, MYF(MY_FAE));
+ while (*argument) *argument++= 'x'; /* Destroy argument */
+ break;
+ case 'x':
+ {
+ char buff[FN_REFLEN];
+ if (!test_if_hard_path(argument))
+ {
+ strxmov(buff, opt_basedir, argument, NullS);
+ argument= buff;
+ }
+ fn_format(buff, argument, "", "", 4);
+ if (!(*++cur_file = my_fopen(buff, O_RDONLY, MYF(MY_WME))))
+ die("Could not open %s: errno = %d", argument, errno);
+ break;
+ }
+ case 'p':
+ if (argument)
+ {
+ my_free(pass, MYF(MY_ALLOW_ZERO_PTR));
+ pass= my_strdup(argument, MYF(MY_FAE));
+ while (*argument) *argument++= 'x'; /* Destroy argument */
+ }
+ else
+ tty_password= 1;
+ break;
+ case 't':
+ strnmov(TMPDIR, argument, sizeof(TMPDIR));
+ break;
+ case 'A':
+ if (!embedded_server_arg_count)
+ {
+ embedded_server_arg_count=1;
+ embedded_server_args[0]= (char*) "";
+ }
+ embedded_server_args[embedded_server_arg_count++]=
+ my_strdup(argument, MYF(MY_FAE));
+ if (embedded_server_arg_count == MAX_SERVER_ARGS ||
+ !embedded_server_args[embedded_server_arg_count-1])
+ {
+ die("Can't use server argument");
+ }
+ break;
+ case 'F':
+ if (read_server_arguments(argument))
+ die(NullS);
+ break;
+ case 'V':
+ print_version();
+ exit(0);
+ case '?':
+ usage();
+ exit(1);
+ }
+ return 0;
+}
+
+
int parse_args(int argc, char **argv)
{
- int c, option_index = 0;
- my_bool tty_password=0;
+ int ho_error;
load_defaults("my",load_default_groups,&argc,&argv);
default_argv= argv;
- while ((c = getopt_long(argc, argv, "A:h:p::u:b:BCF:P:D:S:R:x:t:T:#:?rvVs",
- long_options, &option_index)) != EOF)
- {
- switch(c) {
- case '#':
- DBUG_PUSH(optarg ? optarg : "d:t:S:i:O,/tmp/mysqltest.trace");
- break;
- case 'v':
- verbose = 1;
- break;
- case 'r':
- record = 1;
- break;
- case (int)OPT_MANAGER_WAIT_TIMEOUT:
- manager_wait_timeout=atoi(optarg);
- break;
- case (int)OPT_MANAGER_PORT:
- manager_port=atoi(optarg);
- break;
- case (int)OPT_MANAGER_HOST:
- manager_host=optarg;
- break;
- case (int)OPT_MANAGER_USER:
- manager_user=optarg;
- break;
- case (int)OPT_MANAGER_PASSWD:
- my_free(manager_pass,MYF(MY_ALLOW_ZERO_PTR));
- manager_pass=my_strdup(optarg,MYF(MY_FAE));
- while (*optarg) *optarg++= 'x'; /* Destroy argument */
- break;
- case 'u':
- user = optarg;
- break;
- case 'R':
- result_file = optarg;
- break;
- case 'x':
- {
- char buff[FN_REFLEN];
- if (!test_if_hard_path(optarg))
- {
- strxmov(buff, opt_basedir, optarg, NullS);
- optarg=buff;
- }
- fn_format(buff,optarg,"","",4);
- if (!(*++cur_file = my_fopen(buff, O_RDONLY, MYF(MY_WME))))
- die("Could not open %s: errno = %d", optarg, errno);
- break;
- }
- case 'p':
- if (optarg)
- {
- my_free(pass,MYF(MY_ALLOW_ZERO_PTR));
- pass=my_strdup(optarg,MYF(MY_FAE));
- while (*optarg) *optarg++= 'x'; /* Destroy argument */
- }
- else
- tty_password=1;
- break;
- case 'b':
- opt_basedir= optarg;
- break;
- case 'B':
- opt_big_test=1;
- break;
- case 'C':
- opt_compress=1;
- break;
- case 'P':
- port = atoi(optarg);
- break;
- case 'S':
- unix_sock = optarg;
- break;
- case 'D':
- db = optarg;
- break;
- case 'h':
- host = optarg;
- break;
- case 's':
- silent = 1;
- break;
- case 't':
- strnmov(TMPDIR,optarg,sizeof(TMPDIR));
- break;
- case 'T':
- opt_sleep=atoi(optarg);
- break;
- case 'A':
- if (!embedded_server_arg_count)
- {
- embedded_server_arg_count=1;
- embedded_server_args[0]= (char*) "";
- }
- embedded_server_args[embedded_server_arg_count++]=
- my_strdup(optarg,MYF(MY_FAE));
- if (embedded_server_arg_count == MAX_SERVER_ARGS ||
- !embedded_server_args[embedded_server_arg_count-1])
- {
- die("Can't use server argument");
- }
- break;
- case 'F':
- if (read_server_arguments(optarg))
- die(NullS);
- break;
- case 'V':
- print_version();
- exit(0);
- case '?':
- usage();
- exit(1); /* Unknown option */
- default:
- fprintf(stderr,"Unknown option '%c'\n",c);
- usage();
- exit(1);
- }
- }
+ if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
+ exit(ho_error);
- argc-=optind;
- argv+=optind;
if (argc > 1)
{
usage();
@@ -2361,7 +2329,7 @@ int main(int argc, char** argv)
file_stack_end = file_stack + MAX_INCLUDE_DEPTH;
cur_file = file_stack;
lineno = lineno_stack;
- init_dynamic_array(&q_lines, sizeof(struct st_query*), INIT_Q_LINES,
+ my_init_dynamic_array(&q_lines, sizeof(struct st_query*), INIT_Q_LINES,
INIT_Q_LINES);
memset(block_stack, 0, sizeof(block_stack));
block_stack_end = block_stack + BLOCK_STACK_DEPTH;
@@ -2439,9 +2407,11 @@ int main(int argc, char** argv)
case Q_QUERY:
case Q_REAP:
{
- int flags = QUERY_REAP; /* we read the result always regardless
- * of the mode for both full query and
- * read-result only ( reap) */
+ /*
+ We read the result always regardless of the mode for both full
+ query and read-result only (reap)
+ */
+ int flags = QUERY_REAP;
if (q->type != Q_REAP) /* for a full query, enable the send stage */
flags |= QUERY_SEND;
if (q_send_flag)
@@ -2468,12 +2438,13 @@ int main(int argc, char** argv)
/* fix up query pointer if this is * first iteration for this line */
if (q->query == q->query_buf)
q->query += q->first_word_len;
- error |= run_query(&cur_con->mysql, q, QUERY_SEND);
- /* run query can execute a query partially, depending on the flags
- * QUERY_SEND flag without QUERY_REAP tells it to just send the
- * query and read the result some time later when reap instruction
- * is given on this connection
+ /*
+ run_query() can execute a query partially, depending on the flags
+ QUERY_SEND flag without QUERY_REAP tells it to just send the
+ query and read the result some time later when reap instruction
+ is given on this connection.
*/
+ error |= run_query(&cur_con->mysql, q, QUERY_SEND);
break;
case Q_RESULT:
get_file_name(save_file,q);
diff --git a/client/thread_test.c b/client/thread_test.c
index f7e2a6fd32a..2900ab712e2 100644
--- a/client/thread_test.c
+++ b/client/thread_test.c
@@ -28,9 +28,9 @@ int main(int argc __attribute__((unused)), char **argv __attribute__((unused)))
#include <my_sys.h>
#include <my_pthread.h>
#include "mysql.h"
-#include <getopt.h>
+#include <my_getopt.h>
-static my_bool version,verbose;
+static my_bool version, verbose, tty_password= 0;
static uint thread_count,number_of_tests=1000,number_of_threads=2;
static pthread_cond_t COND_thread_count;
static pthread_mutex_t LOCK_thread_count;
@@ -84,23 +84,39 @@ end:
}
-static struct option long_options[] =
+static struct my_option my_long_options[] =
{
- {"help", no_argument, 0, '?'},
- {"database", required_argument, 0, 'D'},
- {"host", required_argument, 0, 'h'},
- {"password", optional_argument, 0, 'p'},
- {"user", required_argument, 0, 'u'},
- {"version", no_argument, 0, 'V'},
- {"verbose", no_argument, 0, 'v'},
- {"query", required_argument, 0, 'Q'},
- {"port", required_argument, 0, 'P'},
- {"socket", required_argument, 0, 'S'},
- {"test-count",required_argument, 0, 'c'},
- {"thread-count",required_argument, 0, 't'},
- {0, 0, 0, 0}
+ {"help", '?', "Display this help and exit", 0, 0, 0, GET_NO_ARG, NO_ARG, 0,
+ 0, 0, 0, 0, 0},
+ {"database", 'D', "Database to use", (gptr*) &database, (gptr*) &database,
+ 0, GET_STR_ALLOC, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"host", 'h', "Connect to host", (gptr*) &host, (gptr*) &host, 0, GET_STR,
+ REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"password", 'p',
+ "Password to use when connecting to server. If password is not given it's asked from the tty.",
+ 0, 0, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
+ {"user", 'u', "User for login if not current user", (gptr*) &user,
+ (gptr*) &user, 0, GET_STR_ALLOC, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"version", 'V', "Output version information and exit",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"verbose", 'v', "Write some progress indicators", (gptr*) &verbose,
+ (gptr*) &verbose, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"query", 'Q', "Query to execute in each threads", (gptr*) &query,
+ (gptr*) &query, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"port", 'P', "Port number to use for connection", (gptr*) &tcp_port,
+ (gptr*) &tcp_port, 0, GET_UINT, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"socket", 'S', "Socket file to use for connection", (gptr*) &unix_socket,
+ (gptr*) &unix_socket, 0, GET_STR_ALLOC, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"test-count", 'c', "Run test count times (default %d)",
+ (gptr*) &number_of_tests, (gptr*) &number_of_tests, 0, GET_UINT,
+ REQUIRED_ARG, 1000, 0, 0, 0, 0, 0},
+ {"thread-count", 't', "Number of threads to start",
+ (gptr*) &number_of_threads, (gptr*) &number_of_threads, 0, GET_UINT,
+ REQUIRED_ARG, 2, 0, 0, 0, 0, 0},
+ { 0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
};
+
static const char *load_default_groups[]= { "client",0 };
static void usage()
@@ -110,103 +126,55 @@ static void usage()
return;
puts("This software comes with ABSOLUTELY NO WARRANTY.\n");
printf("Usage: %s [OPTIONS] [database]\n", my_progname);
- printf("\n\
- -?, --help Display this help and exit\n\
- -c #, --test-count=# Run test count times (default %d)\n",number_of_tests);
- printf("\
- -D, --database=.. Database to use\n\
- -h, --host=... Connect to host\n\
- -p[password], --password[=...]\n\
- Password to use when connecting to server\n\
- If password is not given it's asked from the tty.\n");
- printf("\n\
- -P --port=... Port number to use for connection\n\
- -Q, --query=... Query to execute in each threads\n\
- -S --socket=... Socket file to use for connection\n");
- printf("\
- -t --thread-count=# Number of threads to start (default: %d) \n\
- -u, --user=# User for login if not current user\n\
- -v, --verbose Write some progress indicators\n\
- -V, --version Output version information and exit\n",
- number_of_threads);
+ my_print_help(my_long_options);
print_defaults("my",load_default_groups);
-
+ my_print_variables(my_long_options);
printf("\nExample usage:\n\n\
%s -Q 'select * from mysql.user' -c %d -t %d\n",
my_progname, number_of_tests, number_of_threads);
}
-static void get_options(int argc, char **argv)
+static my_bool
+get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
+ char *argument)
{
- int c,option_index=0,error=0;
- bool tty_password=0;
- load_defaults("my",load_default_groups,&argc,&argv);
-
- while ((c=getopt_long(argc,argv, "c:D:h:p::VQ:P:S:t:?I",
- long_options, &option_index)) != EOF)
- {
- switch (c) {
- case 'c':
- number_of_tests=atoi(optarg);
- break;
- case 'D':
- my_free(database,MYF(MY_ALLOW_ZERO_PTR));
- database=my_strdup(optarg,MYF(MY_WME));
- break;
- case 'h':
- host = optarg;
- break;
- case 'Q': /* Allow old 'q' option */
- query= optarg;
- break;
- case 'p':
- if (optarg)
- {
- my_free(password,MYF(MY_ALLOW_ZERO_PTR));
- password=my_strdup(optarg,MYF(MY_FAE));
- while (*optarg) *optarg++= 'x'; /* Destroy argument */
- }
- else
- tty_password=1;
- break;
- case 'u':
- my_free(user,MYF(MY_ALLOW_ZERO_PTR));
- user= my_strdup(optarg,MYF(0));
- break;
- case 'P':
- tcp_port= (unsigned int) atoi(optarg);
- break;
- case 'S':
- my_free(unix_socket,MYF(MY_ALLOW_ZERO_PTR));
- unix_socket= my_strdup(optarg,MYF(0));
- break;
- case 't':
- number_of_threads=atoi(optarg);
- break;
- case 'v':
- verbose=1;
- break;
- case 'V':
- version=1;
- usage();
- exit(0);
- break;
- default:
- fprintf(stderr,"Illegal option character '%c'\n",opterr);
- /* Fall through */
- case '?':
- case 'I': /* Info */
- error++;
- break;
+ switch (optid) {
+ case 'p':
+ if (argument)
+ {
+ my_free(password, MYF(MY_ALLOW_ZERO_PTR));
+ password= my_strdup(argument, MYF(MY_FAE));
+ while (*argument) *argument++= 'x'; /* Destroy argument */
}
- }
- if (error || argc != optind)
- {
+ else
+ tty_password= 1;
+ break;
+ case 'V':
+ version= 1;
+ usage();
+ exit(0);
+ break;
+ case '?':
+ case 'I': /* Info */
usage();
exit(1);
+ break;
}
+ return 0;
+}
+
+
+static void get_options(int argc, char **argv)
+{
+ int ho_error;
+
+ load_defaults("my",load_default_groups,&argc,&argv);
+
+ if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
+ exit(ho_error);
+
free_defaults(argv);
if (tty_password)
password=get_tty_password(NullS);
diff --git a/configure.in b/configure.in
index cfd6ae5747c..b4c25021b7e 100644
--- a/configure.in
+++ b/configure.in
@@ -364,6 +364,9 @@ AC_PATH_PROG(SED, sed, sed)
AC_PATH_PROG(CMP, cmp, cmp)
AC_PATH_PROG(CHMOD, chmod, chmod)
AC_PATH_PROG(HOSTNAME, hostname, hostname)
+# Check for a GNU tar named 'gtar', or 'gnutar' (MacOS X) and
+# fall back to 'tar' otherwise and hope that it's a GNU tar as well
+AC_CHECK_PROGS(TAR, gnutar gtar tar)
dnl We use a path for perl so the script startup works
dnl We make sure to use perl, not perl5, in hopes that the RPMs will
dnl not depend on the perl5 binary being installed (probably a bug in RPM)
@@ -687,6 +690,9 @@ AC_CHECK_FUNC(bind, , AC_CHECK_LIB(bind, bind))
AC_CHECK_LIB(crypt, crypt)
AC_CHECK_FUNC(crypt, AC_DEFINE(HAVE_CRYPT))
+# For sem_xxx functions on Solaris 2.6
+AC_CHECK_FUNC(sem_init, , AC_CHECK_LIB(posix4))
+
# For compress in zlib
MYSQL_CHECK_ZLIB_WITH_COMPRESS($with_named_zlib)
@@ -885,9 +891,9 @@ case $SYSTEM_TYPE in
CFLAGS="$CFLAGS -DHAVE_BROKEN_GETPASS -DSOLARIS";
;;
*hpux10.20*)
- echo "Enabling snprintf workaround for hpux 10.20"
- CFLAGS="$CFLAGS -DHAVE_BROKEN_SNPRINTF -DSIGNALS_DONT_BREAK_READ -DDO_NOT_REMOVE_THREAD_WRAPPERS -DHPUX -DSIGNAL_WITH_VIO_CLOSE"
- CXXFLAGS="$CXXFLAGS -DHAVE_BROKEN_SNPRINTF -D_INCLUDE_LONGLONG -DSIGNALS_DONT_BREAK_READ -DDO_NOT_REMOVE_THREAD_WRAPPERS -DHPUX -DSIGNAL_WITH_VIO_CLOSE"
+ echo "Enabling workarounds for hpux 10.20"
+ CFLAGS="$CFLAGS -DHAVE_BROKEN_SNPRINTF -DSIGNALS_DONT_BREAK_READ -DDO_NOT_REMOVE_THREAD_WRAPPERS -DHPUX -DSIGNAL_WITH_VIO_CLOSE -DHAVE_BROKEN_PTHREAD_COND_TIMEDWAIT"
+ CXXFLAGS="$CXXFLAGS -DHAVE_BROKEN_SNPRINTF -D_INCLUDE_LONGLONG -DSIGNALS_DONT_BREAK_READ -DDO_NOT_REMOVE_THREAD_WRAPPERS -DHPUX -DSIGNAL_WITH_VIO_CLOSE -DHAVE_BROKEN_PTHREAD_COND_TIMEDWAIT"
if test "$with_named_thread" = "no"
then
echo "Using --with-named-thread=-lpthread"
@@ -895,9 +901,9 @@ case $SYSTEM_TYPE in
fi
;;
*hpux11.*)
- echo "Enabling pread/pwrite workaround for hpux 11"
- CFLAGS="$CFLAGS -DHAVE_BROKEN_PREAD -DDONT_USE_FINITE -DHAVE_BROKEN_GETPASS -DNO_FCNTL_NONBLOCK -DDO_NOT_REMOVE_THREAD_WRAPPERS"
- CXXFLAGS="$CXXFLAGS -DHAVE_BROKEN_PREAD -DDONT_USE_FINITE -D_INCLUDE_LONGLONG -DNO_FCNTL_NONBLOCK -DDO_NOT_REMOVE_THREAD_WRAPPERS"
+ echo "Enabling workarounds for hpux 11"
+ CFLAGS="$CFLAGS -DHAVE_BROKEN_PREAD -DDONT_USE_FINITE -DHAVE_BROKEN_GETPASS -DNO_FCNTL_NONBLOCK -DDO_NOT_REMOVE_THREAD_WRAPPERS -DHAVE_BROKEN_PTHREAD_COND_TIMEDWAIT"
+ CXXFLAGS="$CXXFLAGS -DHAVE_BROKEN_PREAD -DDONT_USE_FINITE -D_INCLUDE_LONGLONG -DNO_FCNTL_NONBLOCK -DDO_NOT_REMOVE_THREAD_WRAPPERS -DHAVE_BROKEN_PTHREAD_COND_TIMEDWAIT"
if test "$with_named_thread" = "no"
then
echo "Using --with-named-thread=-lpthread"
@@ -961,6 +967,10 @@ dnl Is this the right match for DEC OSF on alpha?
CFLAGS="$CFLAGS -mieee"
CXXFLAGS="$CXXFLAGS -mieee"
fi
+ echo "Adding defines for OSF1"
+ # gethostbyname_r is deprecated and doesn't work ok on OSF1
+ CFLAGS="$CFLAGS -DUNDEF_HAVE_GETHOSTBYNAME_R"
+ CXXFLAGS="$CXXFLAGS -DUNDEF_HAVE_GETHOSTBYNAME_R"
;;
esac
@@ -1594,7 +1604,7 @@ then
fi
AC_TRY_COMPILE(
[#undef inline
-#if !defined(SCO) && !defined(__osf__)
+#if !defined(SCO) && !defined(__osf__) && !defined(_REENTRANT)
#define _REENTRANT
#endif
#include <pthread.h>
@@ -1627,7 +1637,7 @@ then
fi
AC_TRY_COMPILE(
[#undef inline
-#if !defined(SCO) && !defined(__osf__)
+#if !defined(SCO) && !defined(__osf__) && !defined(_REENTRANT)
#define _REENTRANT
#endif
#include <pthread.h>
@@ -1659,7 +1669,7 @@ then
fi
AC_TRY_COMPILE(
[#undef inline
-#if !defined(SCO) && !defined(__osf__)
+#if !defined(SCO) && !defined(__osf__) && !defined(_REENTRANT)
#define _REENTRANT
#endif
#include <pthread.h>
@@ -1685,7 +1695,7 @@ then
# Check definition of pthread_getspecific
AC_CACHE_CHECK("args to pthread_getspecific", mysql_cv_getspecific_args,
AC_TRY_COMPILE(
-[#if !defined(SCO) && !defined(__osf__)
+[#if !defined(SCO) && !defined(__osf__) && !defined(_REENTRANT)
#define _REENTRANT
#endif
#define _POSIX_PTHREAD_SEMANTICS
@@ -1826,7 +1836,7 @@ AC_ARG_WITH(embedded-server,
)
AC_ARG_WITH(query_cache,
- [ --without-query-cache Don not build query cache in embedded server.],
+ [ --without-query-cache Do not build query cache.],
[with_query_cache=$withval],
[with_query_cache=yes]
)
@@ -2304,7 +2314,7 @@ AC_OUTPUT(Makefile extra/Makefile mysys/Makefile isam/Makefile \
myisam/Makefile myisammrg/Makefile \
man/Makefile BUILD/Makefile readline/Makefile vio/Makefile \
libmysql_r/Makefile libmysqld/Makefile libmysqld/examples/Makefile \
- libmysql/Makefile client/Makefile \
+ libmysql/Makefile client/Makefile os2/Makefile \
pstack/Makefile pstack/aout/Makefile sql/Makefile sql/share/Makefile \
merge/Makefile dbug/Makefile scripts/Makefile \
include/Makefile sql-bench/Makefile tools/Makefile \
@@ -2322,8 +2332,9 @@ echo "latest release, upcoming features, and other information to make your"
echo "work or play with MySQL more productive. There you can also find"
echo "information about mailing lists for MySQL discussion."
echo
-echo "Remember to check the platform specific part in the reference manual for"
-echo "hints about installing on your platfrom. See the Docs directory."
+echo "Remember to check the platform specific part of the reference manual for"
+echo "hints about installing MySQL on your platform. Also have a look at the"
+echo "files in the Docs directory."
echo
# The following text is checked in ./Do-compile to se that the configure ends.
echo "Thank you for choosing MySQL!"
diff --git a/dbug/Makefile.am b/dbug/Makefile.am
index 7add2fb6583..c789019cc6b 100644
--- a/dbug/Makefile.am
+++ b/dbug/Makefile.am
@@ -20,8 +20,9 @@ LDADD = libdbug.a ../strings/libmystrings.a
pkglib_LIBRARIES = libdbug.a
noinst_HEADERS = dbug_long.h
libdbug_a_SOURCES = dbug.c sanity.c
-EXTRA_DIST = example1.c example2.c example3.c user.r monty.doc readme.prof \
- main.c factorial.c
+EXTRA_DIST = example1.c example2.c example3.c \
+ user.r monty.doc readme.prof \
+ main.c factorial.c dbug_analyze.c
OMIT_DEPENDENCIES = pthread.h stdio.h __stdio.h stdlib.h __stdlib.h math.h\
__math.h time.h __time.h unistd.h __unistd.h types.h \
@@ -32,7 +33,7 @@ OMIT_DEPENDENCIES = pthread.h stdio.h __stdio.h stdlib.h __stdlib.h math.h\
sleep.h specific.h version.h pwd.h timers.h uio.h \
cdefs.h machdep.h signal.h __signal.h util.h
-# Must be linked with libs thta are not compiled yet
+# Must be linked with libs that are not compiled yet
extra_progs: factorial dbug_analyze
factorial: main.o factorial.o
diff --git a/dbug/monty.doc b/dbug/monty.doc
index f6d8bdff9cd..1c102e1c31e 100644
--- a/dbug/monty.doc
+++ b/dbug/monty.doc
@@ -10,3 +10,11 @@ giving a double ':'. (As in "O,c::\tmp\log")
DBUG_DUMP("keyword",memory-position,length) writes a hexdump of the
given memory-area to the outputfile.
+
+All changes that I or other people at MySQL AB have done to all files
+in the dbug library (Mainly in dbug.c, dbug_analyze.c, dbug_long.h,
+dbug.h) are put in public domain, as the rest of the dbug.c library)
+
+To my knowledge, all code in dbug library are in public domain.
+
+Michael Widenius
diff --git a/extra/my_print_defaults.c b/extra/my_print_defaults.c
index 70ccb3797e6..c0f8a54f432 100644
--- a/extra/my_print_defaults.c
+++ b/extra/my_print_defaults.c
@@ -23,71 +23,77 @@
#include <my_global.h>
#include <my_sys.h>
-#include <getopt.h>
+#include <my_getopt.h>
const char *config_file="my"; /* Default config file */
-static struct option long_options[] =
+static struct my_option my_long_options[] =
{
- {"config-file", required_argument, 0, 'c'},
- {"defaults-file", required_argument, 0, 'c'},
- {"defaults-extra-file", required_argument, 0, 'e'},
- {"extra-file", required_argument, 0, 'e'},
- {"no-defaults", no_argument, 0, 'n'},
- {"help", no_argument, 0, '?'},
- {"version", no_argument, 0, 'V'},
- {0, 0, 0, 0}
+ {"config-file", 'c', "The config file to be used",
+ (gptr*) &config_file, (gptr*) &config_file, 0, GET_STR, REQUIRED_ARG,
+ 0, 0, 0, 0, 0, 0},
+ {"defaults-file", 'c', "Synonym for --config-file",
+ (gptr*) &config_file, (gptr*) &config_file, 0, GET_STR, REQUIRED_ARG,
+ 0, 0, 0, 0, 0, 0},
+ {"defaults-extra-file", 'e',
+ "Read this file after the global /etc config file and before the config file in the users home directory.",
+ (gptr*) &defaults_extra_file, (gptr*) &defaults_extra_file, 0, GET_STR,
+ REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"extra-file", 'e',
+ "Synonym for --defaults-extra-file",
+ (gptr*) &defaults_extra_file, (gptr*) &defaults_extra_file, 0, GET_STR,
+ REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"no-defaults", 'n', "Return an empty string (useful for scripts)",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"help", '?', "Display this help message and exit.",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"version", 'V', "Output version information and exit.",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
};
+
static void usage(my_bool version)
{
- printf("%s Ver 1.3 for %s at %s\n",my_progname,SYSTEM_TYPE,
+ printf("%s Ver 1.5 for %s at %s\n",my_progname,SYSTEM_TYPE,
MACHINE_TYPE);
if (version)
return;
puts("This software comes with ABSOLUTELY NO WARRANTY. This is free software,\nand you are welcome to modify and redistribute it under the GPL license\n");
puts("Prints all arguments that is give to some program using the default files");
- printf("Usage: %s [OPTIONS] groups\n",my_progname);
- printf("\n\
- -c, --config-file=#, --defaults-file=#\n\
- The config file to use (default '%s')\n\
- -e, --extra-file=#, --defaults-extra-file=#\n\
- Read this file after the global /etc config file and\n\
- before the config file in the users home directory.\n\
- -n, --no-defaults Return an empty string (useful for scripts)\n\
- -?, --help Display this help message and exit.\n\
- -V, --version Output version information and exit.\n",
- config_file);
- printf("\nExample usage:\n%s --config-file=my client mysql\n",my_progname);
+ printf("Usage: %s [OPTIONS] groups\n", my_progname);
+ my_print_help(my_long_options);
+ my_print_variables(my_long_options);
+ printf("\nExample usage:\n%s --config-file=my client mysql\n", my_progname);
}
-static int get_options(int *argc,char ***argv)
-{
- int c,option_index;
- while ((c=getopt_long(*argc,*argv,"nc:e:V?I",
- long_options, &option_index)) != EOF)
- {
- switch (c) {
- case 'c':
- config_file=optarg;
- break;
- case 'e':
- defaults_extra_file=optarg; /* Used by the load_defaults */
- break;
+static my_bool
+get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
+ char *argument __attribute__((unused)))
+{
+ switch (optid) {
case 'n':
- exit(0);
+ exit(0);
case 'I':
case '?':
- usage(0);
- exit(0);
+ usage(0);
+ exit(0);
case 'V':
- usage(1);
- exit(0);
- }
+ usage(1);
+ exit(0);
}
- (*argc)-=optind;
- (*argv)+=optind;
+ return 0;
+}
+
+
+static int get_options(int *argc,char ***argv)
+{
+ int ho_error;
+
+ if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option)))
+ exit(ho_error);
+
if (*argc < 1)
{
usage(0);
diff --git a/extra/mysql_install.c b/extra/mysql_install.c
index 3f716dccef5..3f3da8cfb51 100644
--- a/extra/mysql_install.c
+++ b/extra/mysql_install.c
@@ -18,7 +18,7 @@
/* Install or upgrade MySQL server. By Sasha Pachev <sasha@mysql.com>
*/
-#define INSTALL_VERSION "1.0"
+#define INSTALL_VERSION "1.2"
#define DONT_USE_RAID
#include <my_global.h>
@@ -27,17 +27,19 @@
#include <m_string.h>
#include <mysql_version.h>
#include <errno.h>
-#include <getopt.h>
+#include <my_getopt.h>
#define ANSWERS_CHUNCK 32
int have_gui=0;
-struct option long_options[] =
+static struct my_option my_long_options[] =
{
- {"help", no_argument, 0, '?'},
- {"version", no_argument, 0, 'V'},
- {0, 0,0,0}
+ {"help", '?', "Display this help and exit.",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"version", 'V', "Output version information and exit.",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
};
/* For now, not much exciting here, but we'll add more once
@@ -135,7 +137,7 @@ static int init_question_widget(QUESTION_WIDGET* w, const char* question,
}
w->question = question;
w->default_ind = default_ind;
- if (init_dynamic_array(&w->answers,sizeof(char*),
+ if (my_init_dynamic_array(&w->answers,sizeof(char*),
ANSWERS_CHUNCK,ANSWERS_CHUNCK))
die("Out of memory");
return 0;
@@ -195,26 +197,30 @@ static int ask_user(const char* question,int default_ind, ...)
return ans;
}
+
+static my_bool
+get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
+ char *argument __attribute__((unused)))
+{
+ switch(optid) {
+ case 'V':
+ print_version();
+ exit(0);
+ case '?':
+ usage();
+ exit(0);
+ }
+ return 0;
+}
+
+
static int parse_args(int argc, char **argv)
{
- int c, option_index = 0;
+ int ho_error;
+
+ if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
+ exit(ho_error);
- while((c = getopt_long(argc, argv, "?V",
- long_options, &option_index)) != EOF)
- {
- switch(c)
- {
- case 'V':
- print_version();
- exit(0);
- case '?':
- usage();
- exit(0);
- default:
- usage();
- exit(1);
- }
- }
return 0;
}
@@ -231,10 +237,8 @@ static void usage()
printf("This software comes with ABSOLUTELY NO WARRANTY\n\n");
printf("Install or upgrade MySQL server.\n\n");
printf("Usage: %s [OPTIONS] \n", my_progname);
- printf("\n\
- -?, --help Display this help and exit.\n\
- -h, --host=... Connect to host.\n\
- -V, --version Output version information and exit.\n");
+ my_print_help(my_long_options);
+ my_print_variables(my_long_options);
}
int main(int argc, char** argv)
diff --git a/extra/perror.c b/extra/perror.c
index aa4ee71c7d1..4d05adf29aa 100644
--- a/extra/perror.c
+++ b/extra/perror.c
@@ -16,32 +16,42 @@
/* Return error-text for system error messages and nisam messages */
-#define PERROR_VERSION "2.7"
+#define PERROR_VERSION "2.9"
#include <my_global.h>
#include <my_sys.h>
#include <m_string.h>
#include <errno.h>
-#include <getopt.h>
+#include <my_getopt.h>
+static my_bool verbose, print_all_codes;
-static struct option long_options[] =
+static struct my_option my_long_options[] =
{
- {"help", no_argument, 0, '?'},
- {"info", no_argument, 0, 'I'},
- {"all", no_argument, 0, 'a'},
- {"silent", no_argument, 0, 's'},
- {"verbose", no_argument, 0, 'v'},
- {"version", no_argument, 0, 'V'},
- {0, 0, 0, 0}
+ {"help", '?', "Displays this help and exits.", 0, 0, 0, GET_NO_ARG,
+ NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"info", 'I', "Synonym for --help", 0, 0, 0, GET_NO_ARG,
+ NO_ARG, 0, 0, 0, 0, 0, 0},
+#ifdef HAVE_SYS_ERRLIST
+ {"all", 'a', "Print all the error messages and the number.",
+ (gptr*) &print_all_codes, (gptr*) &print_all_codes, 0, GET_BOOL, NO_ARG,
+ 0, 0, 0, 0, 0, 0},
+#endif
+ {"silent", 's', "Only print the error message", 0, 0, 0, GET_NO_ARG, NO_ARG,
+ 0, 0, 0, 0, 0, 0},
+ {"verbose", 'v', "Print error code and message (default).", (gptr*) &verbose,
+ (gptr*) &verbose, 0, GET_BOOL, NO_ARG, 1, 0, 0, 0, 0, 0},
+ {"version", 'V', "Displays version information and exits.",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
};
+
typedef struct ha_errors {
int errcode;
const char *msg;
} HA_ERRORS;
-static int verbose=1,print_all_codes=0;
static HA_ERRORS ha_errlist[]=
{
@@ -99,57 +109,40 @@ static void usage(void)
printf("Print a description for a system error code or a error code from\na MyISAM/ISAM/BDB table handler.\n");
printf("If you want to get the error for a negative error code, you should use\n-- before the first error code to tell perror that there was no more options.\n\n");
printf("Usage: %s [OPTIONS] [ERRORCODE [ERRORCODE...]]\n",my_progname);
- printf("\n\
- -?, --help Displays this help and exits.\n\
- -I, --info Synonym for the above.");
-#ifdef HAVE_SYS_ERRLIST
- printf("\n\
- -a, --all Print all the error messages and the number.");
-#endif
- printf("\n\
- -s, --silent Only print the error message\n\
- -v, --verbose Print error code and message (default).\n\
- -V, --version Displays version information and exits.\n");
+ my_print_help(my_long_options);
+ my_print_variables(my_long_options);
+}
+
+
+static my_bool
+get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
+ char *argument __attribute__((unused)))
+{
+ switch (optid) {
+ case 's':
+ verbose=0;
+ break;
+ case 'V':
+ print_version();
+ exit(0);
+ break;
+ case 'I':
+ case '?':
+ usage();
+ exit(0);
+ break;
+ }
+ return 0;
}
static int get_options(int *argc,char ***argv)
{
- int c,option_index;
+ int ho_error;
+
+ if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option)))
+ exit(ho_error);
- while ((c=getopt_long(*argc,*argv,"asvVI?",long_options,
- &option_index)) != EOF)
- {
- switch (c) {
-#ifdef HAVE_SYS_ERRLIST
- case 'a':
- print_all_codes=1;
- break;
-#endif
- case 'v':
- verbose=1;
- break;
- case 's':
- verbose=0;
- break;
- case 'V':
- print_version();
- exit(0);
- break;
- case 'I':
- case '?':
- usage();
- exit(0);
- break;
- default:
- fprintf(stderr,"%s: Illegal option character '%c'\n",
- my_progname,opterr);
- return(1);
- break;
- }
- }
- (*argc)-=optind;
- (*argv)+=optind;
if (!*argc && !print_all_codes)
{
usage();
diff --git a/extra/resolve_stack_dump.c b/extra/resolve_stack_dump.c
index 7d1d125ec7e..e606f38d179 100644
--- a/extra/resolve_stack_dump.c
+++ b/extra/resolve_stack_dump.c
@@ -25,12 +25,12 @@
#include <m_string.h>
#include <mysql_version.h>
#include <errno.h>
-#include <getopt.h>
+#include <my_getopt.h>
#define INIT_SYM_TABLE 4096
#define INC_SYM_TABLE 4096
#define MAX_SYM_SIZE 128
-#define DUMP_VERSION "1.2"
+#define DUMP_VERSION "1.4"
#define HEX_INVALID (uchar)255
typedef ulong my_long_addr_t ; /* at some point, we need to fix configure
@@ -48,15 +48,21 @@ static char* dump_fname = 0, *sym_fname = 0;
static DYNAMIC_ARRAY sym_table; /* how do you like this , static DYNAMIC ? */
static FILE* fp_dump, *fp_sym = 0, *fp_out;
-struct option long_options[] =
+static struct my_option my_long_options[] =
{
- {"help", no_argument, 0, 'h'},
- {"version", no_argument, 0, 'V'},
- {"symbols-file", required_argument, 0, 's'},
- {"numeric-dump-file", required_argument, 0, 'n'},
- {0, 0,0,0}
+ {"help", 'h', "Display this help and exit.",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"version", 'V', "Output version information and exit.",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"symbols-file", 's', "Use specified symbols file.", (gptr*) &sym_fname,
+ (gptr*) &sym_fname, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"numeric-dump-file", 'n', "Read the dump from specified file.",
+ (gptr*) &dump_fname, (gptr*) &dump_fname, 0, GET_STR, REQUIRED_ARG,
+ 0, 0, 0, 0, 0, 0},
+ { 0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
};
+
static void verify_sort();
static void print_version(void)
@@ -72,11 +78,8 @@ static void usage()
printf("This software comes with ABSOLUTELY NO WARRANTY\n\n");
printf("Resolve numeric stack strace dump into symbols.\n\n");
printf("Usage: %s [OPTIONS] symbols-file [numeric-dump-file]\n", my_progname);
- printf("\n\
- -?, --help Display this help and exit.\n\
- -s, --symbols-file=... Use specified symbols file.\n\
- -n, --numeric-dump-file=... Read the dump from specified file.\n\
- -V, --version Output version information and exit.\n");
+ my_print_help(my_long_options);
+ my_print_variables(my_long_options);
printf("\n\
The symbols-file should include the output from: 'nm --numeric-sort mysqld'.\n\
The numeric-dump-file should contain a numeric stack trace from mysqld.\n\
@@ -97,40 +100,33 @@ static void die(const char* fmt, ...)
}
-static int parse_args(int argc, char **argv)
+static my_bool
+get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
+ char *argument __attribute__((unused)))
{
- int c, option_index = 0;
+ switch(optid) {
+ case 'V':
+ print_version();
+ exit(0);
+ case '?':
+ usage();
+ exit(0);
+ }
+ return 0;
+}
- while((c = getopt_long(argc, argv, "?Vn:s:",
- long_options, &option_index)) != EOF)
- {
- switch(c)
- {
- case 'n':
- dump_fname = optarg;
- break;
- case 's':
- sym_fname = optarg;
- break;
- case 'V':
- print_version();
- exit(0);
- case '?':
- usage();
- exit(0);
- default:
- usage();
- exit(1);
- }
- }
- argc-=optind;
- argv+=optind;
+static int parse_args(int argc, char **argv)
+{
+ int ho_error;
+
+ if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
+ exit(ho_error);
/*
The following code is to make the command compatible with the old
version that required one to use the -n and -s options
- */
+ */
if (argc == 2)
{
@@ -230,9 +226,9 @@ static int init_sym_entry(SYM_ENTRY* se, char* buf)
static void init_sym_table()
{
char buf[512];
- if(init_dynamic_array(&sym_table, sizeof(SYM_ENTRY), INIT_SYM_TABLE,
+ if(my_init_dynamic_array(&sym_table, sizeof(SYM_ENTRY), INIT_SYM_TABLE,
INC_SYM_TABLE))
- die("Failed in init_dynamic_array() -- looks like out of memory problem");
+ die("Failed in my_init_dynamic_array() -- looks like out of memory problem");
while(fgets(buf, sizeof(buf), fp_sym))
{
diff --git a/extra/resolveip.c b/extra/resolveip.c
index 20630d8414d..17bf087bd19 100644
--- a/extra/resolveip.c
+++ b/extra/resolveip.c
@@ -16,11 +16,10 @@
/* Resolves IP's to hostname and hostnames to IP's */
-#define RESOLVE_VERSION "2.0"
+#define RESOLVE_VERSION "2.2"
#include <my_global.h>
#include <m_ctype.h>
-#include <my_net.h>
#include <my_sys.h>
#include <m_string.h>
#include <sys/types.h>
@@ -30,27 +29,27 @@
#endif
#include <arpa/inet.h>
#include <netdb.h>
-#include <getopt.h>
-
-#ifdef SCO
-#undef h_errno
-#define h_errno errno
-#endif
+#include <my_net.h>
+#include <my_getopt.h>
#if !defined(_AIX) && !defined(HAVE_UNIXWARE7_THREADS) && !defined(HAVE_UNIXWARE7_POSIX) && !defined(h_errno)
extern int h_errno;
#endif
-static int silent=0;
+static my_bool silent;
-static struct option long_options[] =
+static struct my_option my_long_options[] =
{
- {"help", no_argument, 0, '?'},
- {"info", no_argument, 0, 'I'},
- {"silent", no_argument, 0, 's'},
- {"version", no_argument, 0, 'V'},
- {0, 0, 0, 0}
+ {"help", '?', "Displays this help and exits.",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"info", 'I', "Synonym for --help",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"silent", 's', "Be more silent.", (gptr*) &silent, (gptr*) &silent,
+ 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"version", 'V', "Displays version information and exits.",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ { 0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
};
@@ -67,41 +66,36 @@ static void usage(void)
puts("This software comes with ABSOLUTELY NO WARRANTY. This is free software,\nand you are welcome to modify and redistribute it under the GPL license\n");
puts("Get hostname based on IP-address or IP-address based on hostname.\n");
printf("Usage: %s [OPTIONS] hostname or IP-address\n",my_progname);
- printf("\n\
- -?, --help Displays this help and exits.\n\
- -I, --info Synonym for the above.\n\
- -s, --silent Be more silent.\n\
- -V, --version Displays version information and exits.\n");
+ my_print_help(my_long_options);
+ my_print_variables(my_long_options);
+}
+
+
+static my_bool
+get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
+ char *argument __attribute__((unused)))
+{
+ switch (optid) {
+ case 'V': print_version(); exit(0);
+ case 'I':
+ case '?':
+ usage();
+ exit(0);
+ }
+ return 0;
}
/*static my_string load_default_groups[]= { "resolveip","client",0 }; */
static int get_options(int *argc,char ***argv)
{
- int c,option_index;
+ int ho_error;
/* load_defaults("my",load_default_groups,argc,argv); */
- while ((c=getopt_long(*argc,*argv,"?IsV",
- long_options, &option_index)) != EOF)
- {
- switch (c) {
- case 's':
- silent=1;
- break;
- case 'V': print_version(); exit(0);
- case 'I':
- case '?':
- usage();
- exit(0);
- default:
- fprintf(stderr,"%s: Illegal option character '%c'\n",
- my_progname,opterr);
- return(1);
- break;
- }
- }
- (*argc)-=optind;
- (*argv)+=optind;
+
+ if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option)))
+ exit(ho_error);
+
if (*argc == 0)
{
usage();
diff --git a/fs/database.c b/fs/database.c
index 4a328c41618..0ff12e433ee 100644
--- a/fs/database.c
+++ b/fs/database.c
@@ -243,7 +243,7 @@ int db_show_field(char *b,const char *database,const char *table, const char *fi
if (!(database[0] && table[0] && field[0]))
DBUG_RETURN(-1);
- init_dynamic_array(&field_array, sizeof(buff), 4096, 1024);
+ my_init_dynamic_array(&field_array, sizeof(buff), 4096, 1024);
if (mysql_select_db(sock,database))
{
@@ -593,7 +593,7 @@ gptr db_load_functions()
int i=0;
struct func_st func;
DBUG_ENTER("db_load_functions");
- init_dynamic_array(&functions_array, sizeof(struct func_st), 4096, 1024);
+ my_init_dynamic_array(&functions_array, sizeof(struct func_st), 4096, 1024);
while(functions[i]) {
strcpy(func.type_s, functions[i]); /* Type in string: "table"` */
strcpy(func.filename, functions[i+1]); /* Name like it appears on FS: "count" */
diff --git a/fs/mysqlcorbafs.c b/fs/mysqlcorbafs.c
index 8943c00ed25..4bc27618d4d 100644
--- a/fs/mysqlcorbafs.c
+++ b/fs/mysqlcorbafs.c
@@ -23,7 +23,7 @@
#include "libmysqlfs.h"
#include "mysqlcorbafs.h"
-#include <getopt.h>
+#include <my_getopt.h>
#define MAXPATHLEN 256
#include <sys/types.h>
@@ -62,6 +62,10 @@ static char *default_charset, *current_host, *current_user, *opt_password,
*path,*fields_terminated=0, *lines_terminated=0, *enclosed=0,
*opt_enclosed=0, *escaped=0;
+
+/* This should be fixed to use my_getopt when the program is ready
+
+
static struct option long_options[] =
{
{"add-locks", no_argument, 0,OPT_LOCKS},
@@ -99,6 +103,7 @@ static struct option long_options[] =
{0, 0, 0, 0}
};
+*/
/*
void
@@ -428,6 +433,8 @@ static int get_options(int *argc,char ***argv)
my_bool tty_password=0;
DBUG_ENTER("get_options");
load_defaults("my",load_default_groups,argc,argv);
+
+ /* change this to use my_getopt when program is ready */
set_all_changeable_vars(changeable_vars);
while ((c=getopt_long(*argc,*argv,"#::p::h:u:O:P:S:T:EBaAcCdefFlnqtvVw:?Ix",
long_options, &option_index)) != EOF)
diff --git a/include/Makefile.am b/include/Makefile.am
index 8cf9c7c5a78..85cd640a0a3 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -18,8 +18,8 @@
BUILT_SOURCES = mysql_version.h m_ctype.h my_config.h
pkginclude_HEADERS = dbug.h m_string.h my_sys.h my_list.h \
mysql.h mysql_com.h mysqld_error.h mysql_embed.h \
- my_pthread.h my_no_pthread.h raid.h errmsg.h \
- my_global.h my_net.h \
+ my_semaphore.h my_pthread.h my_no_pthread.h raid.h errmsg.h \
+ my_global.h my_net.h my_alloc.h\
sslopt-case.h sslopt-longopts.h sslopt-usage.h \
sslopt-vars.h $(BUILT_SOURCES)
noinst_HEADERS = config-win.h \
@@ -28,8 +28,8 @@ noinst_HEADERS = config-win.h \
my_dir.h mysys_err.h my_base.h \
my_nosys.h my_alarm.h queues.h \
my_tree.h hash.h thr_alarm.h thr_lock.h \
- getopt.h my_getopt.h t_ctype.h violite.h md5.h \
- my_handler.h mysql_version.h.in
+ t_ctype.h violite.h md5.h mysql_version.h.in \
+ my_handler.h
# mysql_version.h are generated
SUPERCLEANFILES = mysql_version.h my_config.h
diff --git a/include/my_alloc.h b/include/my_alloc.h
new file mode 100644
index 00000000000..0857c8886c5
--- /dev/null
+++ b/include/my_alloc.h
@@ -0,0 +1,39 @@
+/* Copyright (C) 2000 MySQL AB
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+
+/*
+ Data structures for mysys/my_alloc.c (root memory allocator)
+*/
+
+#ifndef ST_USED_MEM_DEFINED
+#define ST_USED_MEM_DEFINED
+typedef struct st_used_mem { /* struct for once_alloc (block) */
+ struct st_used_mem *next; /* Next block in use */
+ unsigned int left; /* memory left in block */
+ unsigned int size; /* size of block */
+} USED_MEM;
+typedef struct st_mem_root {
+ USED_MEM *free; /* blocks with free memory in it */
+ USED_MEM *used; /* blocks almost without free memory */
+ USED_MEM *pre_alloc; /* preallocated block */
+ /* if block have less memory it will be put in 'used' list*/
+ unsigned int min_malloc;
+ unsigned int block_size; /* initial block size */
+ unsigned int block_num; /* allocated blocks counter */
+
+ void (*error_handler)(void);
+} MEM_ROOT;
+#endif
diff --git a/include/my_getopt.h b/include/my_getopt.h
index b3b3ee2f785..3b50fbe2ded 100644
--- a/include/my_getopt.h
+++ b/include/my_getopt.h
@@ -16,7 +16,8 @@
C_MODE_START
-enum get_opt_var_type { GET_NO_ARG, GET_BOOL, GET_LONG, GET_LL, GET_STR };
+enum get_opt_var_type { GET_NO_ARG, GET_BOOL, GET_INT, GET_UINT, GET_LONG,
+ GET_ULONG, GET_LL, GET_ULL, GET_STR, GET_STR_ALLOC };
enum get_opt_arg_type { NO_ARG, OPT_ARG, REQUIRED_ARG };
struct my_option
@@ -38,6 +39,7 @@ struct my_option
};
extern char *disabled_my_option;
+extern my_bool my_getopt_print_errors;
extern int handle_options (int *argc, char ***argv,
const struct my_option *longopts,
diff --git a/include/my_global.h b/include/my_global.h
index 2b5c6915ad9..01910eb1342 100644
--- a/include/my_global.h
+++ b/include/my_global.h
@@ -1023,12 +1023,4 @@ typedef union {
#define C_MODE_END
#endif
-/*
- Now if query is taken off then tests with query cache fails
- SANJA TODO: remove this when problem with mysql-test will be solved
-*/
-#if defined(MYSQL_SERVER) && !defined(HAVE_QUERY_CACHE)
-#define HAVE_QUERY_CACHE
-#endif
-
#endif /* _global_h */
diff --git a/include/my_net.h b/include/my_net.h
index c2ebe80a343..2f5743923cf 100644
--- a/include/my_net.h
+++ b/include/my_net.h
@@ -67,5 +67,47 @@ C_MODE_START
void my_inet_ntoa(struct in_addr in, char *buf);
+/*
+ Handling of gethostbyname_r()
+*/
+
+#if !defined(HPUX)
+struct hostent;
+#endif /* HPUX */
+#if !defined(HAVE_GETHOSTBYNAME_R)
+struct hostent *my_gethostbyname_r(const char *name,
+ struct hostent *result, char *buffer,
+ int buflen, int *h_errnop);
+void my_gethostbyname_r_free();
+#elif defined(HAVE_PTHREAD_ATTR_CREATE) || defined(_AIX) || defined(HAVE_GETHOSTBYNAME_R_GLIBC2_STYLE)
+struct hostent *my_gethostbyname_r(const char *name,
+ struct hostent *result, char *buffer,
+ int buflen, int *h_errnop);
+#define my_gethostbyname_r_free()
+#if !defined(HAVE_GETHOSTBYNAME_R_GLIBC2_STYLE) && !defined(HPUX)
+#define GETHOSTBYNAME_BUFF_SIZE sizeof(struct hostent_data)
+#endif /* !defined(HAVE_GETHOSTBYNAME_R_GLIBC2_STYLE) */
+
+#elif defined(HAVE_GETHOSTBYNAME_R_RETURN_INT)
+#define GETHOSTBYNAME_BUFF_SIZE sizeof(struct hostent_data)
+struct hostent *my_gethostbyname_r(const char *name,
+ struct hostent *result, char *buffer,
+ int buflen, int *h_errnop);
+#define my_gethostbyname_r_free()
+#else
+#define my_gethostbyname_r(A,B,C,D,E) gethostbyname_r((A),(B),(C),(D),(E))
+#define my_gethostbyname_r_free()
+#endif /* !defined(HAVE_GETHOSTBYNAME_R) */
+
+#ifndef GETHOSTBYNAME_BUFF_SIZE
+#define GETHOSTBYNAME_BUFF_SIZE 2048
+#endif
+
+/* On SCO you get a link error when refering to h_errno */
+#ifdef SCO
+#undef h_errno
+#define h_errno errno
+#endif
+
C_MODE_END
#endif
diff --git a/include/my_pthread.h b/include/my_pthread.h
index cfc1ea326f4..fda31b9d4f2 100644
--- a/include/my_pthread.h
+++ b/include/my_pthread.h
@@ -349,6 +349,13 @@ extern void my_pthread_attr_setprio(pthread_attr_t *attr, int priority);
#undef HAVE_GETHOSTBYADDR_R /* No definition */
#endif
+#if defined(HAVE_BROKEN_PTHREAD_COND_TIMEDWAIT) && !defined(SAFE_MUTEX)
+extern int my_pthread_cond_timedwait(pthread_cond_t *cond,
+ pthread_mutex_t *mutex,
+ struct timespec *abstime);
+#define pthread_cond_timedwait(A,B,C) my_pthread_cond_timedwait((A),(B),(C))
+#endif
+
#if defined(OS2)
#define my_pthread_getspecific(T,A) ((T) &(A))
#define pthread_setspecific(A,B) win_pthread_setspecific(&(A),(B),sizeof(A))
@@ -419,31 +426,6 @@ struct tm *localtime_r(const time_t *clock, struct tm *res);
#define HAVE_PTHREAD_KILL
#endif
-#if defined(HAVE_PTHREAD_ATTR_CREATE) || defined(_AIX) || defined(HAVE_GETHOSTBYNAME_R_GLIBC2_STYLE)
-#if !defined(HPUX)
-struct hostent;
-#endif /* HPUX */
-struct hostent *my_gethostbyname_r(const char *name,
- struct hostent *result, char *buffer,
- int buflen, int *h_errnop);
-#if defined(HAVE_GETHOSTBYNAME_R_GLIBC2_STYLE)
-#define GETHOSTBYNAME_BUFF_SIZE 2048
-#else
-#define GETHOSTBYNAME_BUFF_SIZE sizeof(struct hostent_data)
-#endif /* defined(HAVE_GETHOSTBYNAME_R_GLIBC2_STYLE) */
-
-#else
-#ifdef HAVE_GETHOSTBYNAME_R_RETURN_INT
-#define GETHOSTBYNAME_BUFF_SIZE sizeof(struct hostent_data)
-struct hostent *my_gethostbyname_r(const char *name,
- struct hostent *result, char *buffer,
- int buflen, int *h_errnop);
-#else
-#define GETHOSTBYNAME_BUFF_SIZE 2048
-#define my_gethostbyname_r(A,B,C,D,E) gethostbyname_r((A),(B),(C),(D),(E))
-#endif /* HAVE_GETHOSTBYNAME_R_RETURN_INT */
-#endif /* defined(HAVE_PTHREAD_ATTR_CREATE) || defined(_AIX) || defined(HAVE_GETHOSTBYNAME_R_GLIBC2_STYLE) */
-
#endif /* defined(__WIN__) */
#if defined(HPUX) && !defined(DONT_REMAP_PTHREAD_FUNCTIONS)
diff --git a/include/my_sys.h b/include/my_sys.h
index 3b69092d5ae..54ed9110e95 100644
--- a/include/my_sys.h
+++ b/include/my_sys.h
@@ -464,26 +464,7 @@ typedef struct st_changeable_var {
} CHANGEABLE_VAR;
-/* structs for alloc_root */
-
-#ifndef ST_USED_MEM_DEFINED
-#define ST_USED_MEM_DEFINED
-typedef struct st_used_mem { /* struct for once_alloc */
- struct st_used_mem *next; /* Next block in use */
- unsigned int left; /* memory left in block */
- unsigned int size; /* Size of block */
-} USED_MEM;
-
-typedef struct st_mem_root {
- USED_MEM *free;
- USED_MEM *used;
- USED_MEM *pre_alloc;
- unsigned int min_malloc;
- unsigned int block_size;
-
- void (*error_handler)(void);
-} MEM_ROOT;
-#endif
+#include <my_alloc.h>
/* Prototypes for mysys and my_func functions */
@@ -602,7 +583,7 @@ extern int my_sortncmp(CHARSET_INFO *cs, const char *s,uint s_len, const char *t
extern WF_PACK *wf_comp(my_string str);
extern int wf_test(struct wild_file_pack *wf_pack,const char *name);
extern void wf_end(struct wild_file_pack *buffer);
-extern size_s stripp_sp(my_string str);
+extern size_s strip_sp(my_string str);
extern void get_date(my_string to,int timeflag,time_t use_time);
extern void soundex(CHARSET_INFO *, my_string out_pntr, my_string in_pntr,pbool remove_garbage);
extern int init_record_cache(RECORD_CACHE *info,uint cachesize,File file,
@@ -662,9 +643,9 @@ extern my_bool real_open_cached_file(IO_CACHE *cache);
extern void close_cached_file(IO_CACHE *cache);
File create_temp_file(char *to, const char *dir, const char *pfx,
int mode, myf MyFlags);
-#define init_dynamic_array(A,B,C,D) _init_dynamic_array(A,B,C,D CALLER_INFO)
-#define init_dynamic_array_ci(A,B,C,D) _init_dynamic_array(A,B,C,D ORIG_CALLER_INFO)
-extern my_bool _init_dynamic_array(DYNAMIC_ARRAY *array,uint element_size,
+#define my_init_dynamic_array(A,B,C,D) init_dynamic_array(A,B,C,D CALLER_INFO)
+#define my_init_dynamic_array_ci(A,B,C,D) init_dynamic_array(A,B,C,D ORIG_CALLER_INFO)
+extern my_bool init_dynamic_array(DYNAMIC_ARRAY *array,uint element_size,
uint init_alloc,uint alloc_increment CALLER_INFO_PROTO);
extern my_bool insert_dynamic(DYNAMIC_ARRAY *array,gptr element);
extern byte *alloc_dynamic(DYNAMIC_ARRAY *array);
diff --git a/include/mysql.h b/include/mysql.h
index 7a16cbbe1d2..5bcdca636c0 100644
--- a/include/mysql.h
+++ b/include/mysql.h
@@ -100,23 +100,7 @@ typedef struct st_mysql_rows {
typedef MYSQL_ROWS *MYSQL_ROW_OFFSET; /* offset to current row */
-#ifndef ST_USED_MEM_DEFINED
-#define ST_USED_MEM_DEFINED
-typedef struct st_used_mem { /* struct for once_alloc */
- struct st_used_mem *next; /* Next block in use */
- unsigned int left; /* memory left in block */
- unsigned int size; /* size of block */
-} USED_MEM;
-typedef struct st_mem_root {
- USED_MEM *free;
- USED_MEM *used;
- USED_MEM *pre_alloc;
- unsigned int min_malloc;
- unsigned int block_size;
-
- void (*error_handler)(void);
-} MEM_ROOT;
-#endif
+#include <my_alloc.h>
typedef struct st_mysql_data {
my_ulonglong rows;
diff --git a/include/mysql_com.h b/include/mysql_com.h
index 0e54c0e992b..c30eb30f779 100644
--- a/include/mysql_com.h
+++ b/include/mysql_com.h
@@ -81,6 +81,7 @@ enum enum_server_command {COM_SLEEP,COM_QUIT,COM_INIT_DB,COM_QUERY,
#define REFRESH_QUERY_CACHE 65536
#define REFRESH_QUERY_CACHE_FREE 0x20000L /* pack query cache */
#define REFRESH_DES_KEY_FILE 0x40000L
+#define REFRESH_USER_RESOURCES 0x80000L
#define CLIENT_LONG_PASSWORD 1 /* new more secure passwords */
#define CLIENT_FOUND_ROWS 2 /* Found instead of affected rows */
diff --git a/include/mysqld_error.h b/include/mysqld_error.h
index 61442247ea8..170a07422c3 100644
--- a/include/mysqld_error.h
+++ b/include/mysqld_error.h
@@ -14,7 +14,7 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-/* Definefile for errormessagenumbers */
+/* Definefile for error messagenumbers */
#define ER_HASHCHK 1000
#define ER_NISAMCHK 1001
diff --git a/include/mysys_err.h b/include/mysys_err.h
index b3d058aff3e..a86765c74fd 100644
--- a/include/mysys_err.h
+++ b/include/mysys_err.h
@@ -54,7 +54,23 @@ extern const char * NEAR globerrs[]; /* my_error_messages is here */
#define EE_CANT_SYMLINK 25
#define EE_REALPATH 26
+ /* exit codes for all MySQL programs */
+
+#define EXIT_UNSPECIFIED_ERROR 1
+#define EXIT_UNKNOWN_OPTION 2
+#define EXIT_AMBIGUOUS_OPTION 3
+#define EXIT_NO_ARGUMENT_ALLOWED 4
+#define EXIT_ARGUMENT_REQUIRED 5
+#define EXIT_VAR_PREFIX_NOT_UNIQUE 6
+#define EXIT_UNKNOWN_VARIABLE 7
+#define EXIT_OUT_OF_MEMORY 8
+#define EXIT_UNKNOWN_SUFFIX 9
+#define EXIT_NO_PTR_TO_VARIABLE 10
+#define EXIT_CANNOT_CONNECT_TO_SERVICE 11
+
+
#ifdef __cplusplus
}
#endif
#endif
+
diff --git a/include/violite.h b/include/violite.h
index 0f36e493b57..40da31ee1b6 100644
--- a/include/violite.h
+++ b/include/violite.h
@@ -153,27 +153,27 @@ my_bool vio_ssl_peer_addr(Vio* vio, char *buf);
void vio_ssl_in_addr(Vio *vio, struct in_addr *in);
/* Single copy for server */
+enum vio_ssl_acceptorfd_state
+{
+ state_connect = 1,
+ state_accept = 2
+};
+
struct st_VioSSLAcceptorFd
{
SSL_CTX* ssl_context_;
SSL_METHOD* ssl_method_;
struct st_VioSSLAcceptorFd* session_id_context_;
- enum {
- state_connect = 1,
- state_accept = 2
- };
-
- /* function pointers which are only once for SSL server
- Vio*(*sslaccept)(struct st_VioSSLAcceptorFd*,Vio*); */
};
/* One copy for client */
struct st_VioSSLConnectorFd
{
SSL_CTX* ssl_context_;
- SSL_METHOD* ssl_method_;
/* function pointers which are only once for SSL client */
+ SSL_METHOD* ssl_method_;
};
+
void sslaccept(struct st_VioSSLAcceptorFd*, Vio*, long timeout);
void sslconnect(struct st_VioSSLConnectorFd*, Vio*, long timeout);
diff --git a/innobase/btr/btr0cur.c b/innobase/btr/btr0cur.c
index 10813bbe1f7..1274719cf7d 100644
--- a/innobase/btr/btr0cur.c
+++ b/innobase/btr/btr0cur.c
@@ -228,6 +228,7 @@ btr_cur_search_to_nth_level(
ulint insert_planned;
ulint buf_mode;
ulint estimate;
+ ulint ignore_sec_unique;
ulint root_height = 0; /* remove warning */
#ifdef BTR_CUR_ADAPT
btr_search_t* info;
@@ -246,7 +247,9 @@ btr_cur_search_to_nth_level(
#endif
insert_planned = latch_mode & BTR_INSERT;
estimate = latch_mode & BTR_ESTIMATE;
- latch_mode = latch_mode & ~(BTR_INSERT | BTR_ESTIMATE);
+ ignore_sec_unique = latch_mode & BTR_IGNORE_SEC_UNIQUE;
+ latch_mode = latch_mode & ~(BTR_INSERT | BTR_ESTIMATE
+ | BTR_IGNORE_SEC_UNIQUE);
ut_ad(!insert_planned || (mode == PAGE_CUR_LE));
@@ -343,7 +346,8 @@ btr_cur_search_to_nth_level(
rw_latch = latch_mode;
- if (insert_planned && ibuf_should_try(index)) {
+ if (insert_planned && ibuf_should_try(index,
+ ignore_sec_unique)) {
/* Try insert to the insert buffer if the
page is not in the buffer pool */
@@ -356,7 +360,6 @@ retry_page_get:
buf_mode,
IB__FILE__, __LINE__,
mtr);
-
if (page == NULL) {
/* This must be a search to perform an insert;
try insert to the insert buffer */
@@ -365,7 +368,7 @@ retry_page_get:
ut_ad(insert_planned);
ut_ad(cursor->thr);
- if (ibuf_should_try(index) &&
+ if (ibuf_should_try(index, ignore_sec_unique) &&
ibuf_insert(tuple, index, space, page_no,
cursor->thr)) {
/* Insertion to the insert buffer succeeded */
diff --git a/innobase/dict/dict0crea.c b/innobase/dict/dict0crea.c
index 69b1e7c61fd..0da59d39646 100644
--- a/innobase/dict/dict0crea.c
+++ b/innobase/dict/dict0crea.c
@@ -1201,7 +1201,8 @@ loop:
ut_dulint_get_low(id),
table->name,
foreign->referenced_table_name,
- foreign->n_fields);
+ foreign->n_fields
+ + (foreign->type << 24));
for (i = 0; i < foreign->n_fields; i++) {
diff --git a/innobase/dict/dict0dict.c b/innobase/dict/dict0dict.c
index 43589eb03fe..5f6d947bb92 100644
--- a/innobase/dict/dict0dict.c
+++ b/innobase/dict/dict0dict.c
@@ -1652,7 +1652,7 @@ dict_foreign_find_index(
->col->name;
if (ut_strlen(columns[i]) !=
ut_strlen(col_name)
- || 0 != ut_memcmp(columns[i],
+ || 0 != ut_cmp_in_lower_case(columns[i],
col_name,
ut_strlen(col_name))) {
break;
@@ -1857,8 +1857,9 @@ dict_scan_col(
ibool* success,/* out: TRUE if success */
dict_table_t* table, /* in: table in which the column is */
dict_col_t** column, /* out: pointer to column if success */
- char** column_name)/* out: pointer to column->name if
+ char** column_name,/* out: pointer to column->name if
success */
+ ulint* column_name_len)/* out: column name length */
{
dict_col_t* col;
char* old_ptr;
@@ -1886,20 +1887,28 @@ dict_scan_col(
ptr++;
}
- for (i = 0; i < dict_table_get_n_cols(table); i++) {
+ *column_name_len = (ulint)(ptr - old_ptr);
+
+ if (table == NULL) {
+ *success = TRUE;
+ *column = NULL;
+ *column_name = old_ptr;
+ } else {
+ for (i = 0; i < dict_table_get_n_cols(table); i++) {
- col = dict_table_get_nth_col(table, i);
+ col = dict_table_get_nth_col(table, i);
- if (ut_strlen(col->name) == (ulint)(ptr - old_ptr)
- && 0 == ut_cmp_in_lower_case(col->name, old_ptr,
+ if (ut_strlen(col->name) == (ulint)(ptr - old_ptr)
+ && 0 == ut_cmp_in_lower_case(col->name, old_ptr,
(ulint)(ptr - old_ptr))) {
- /* Found */
+ /* Found */
- *success = TRUE;
- *column = col;
- *column_name = col->name;
+ *success = TRUE;
+ *column = col;
+ *column_name = col->name;
- break;
+ break;
+ }
}
}
@@ -1918,14 +1927,18 @@ dict_scan_table_name(
/*=================*/
/* out: scanned to */
char* ptr, /* in: scanned to */
- dict_table_t** table, /* out: table object or NULL if error */
- char* name) /* in: foreign key table name */
+ dict_table_t** table, /* out: table object or NULL */
+ char* name, /* in: foreign key table name */
+ ibool* success,/* out: TRUE if ok name found */
+ char* second_table_name)/* in/out: buffer where to store
+ the referenced table name; must be at least
+ 2500 bytes */
{
char* dot_ptr = NULL;
char* old_ptr;
ulint i;
- char second_table_name[10000];
+ *success = FALSE;
*table = NULL;
while (isspace(*ptr)) {
@@ -1951,7 +1964,7 @@ dict_scan_table_name(
ptr++;
}
- if (ptr - old_ptr > 9000) {
+ if (ptr - old_ptr > 2000) {
return(old_ptr);
}
@@ -1982,6 +1995,8 @@ dict_scan_table_name(
second_table_name[ptr - old_ptr] = '\0';
}
+ *success = TRUE;
+
*table = dict_table_get_low(second_table_name);
if (*ptr == '`') {
@@ -2047,9 +2062,12 @@ dict_create_foreign_constraints(
ibool success;
ulint error;
ulint i;
- dict_col_t* columns[1000];
- char* column_names[1000];
-
+ ulint j;
+ dict_col_t* columns[500];
+ char* column_names[500];
+ ulint column_name_lens[500];
+ char referenced_table_name[2500];
+
ut_ad(mutex_own(&(dict_sys->mutex)));
table = dict_table_get_low(name);
@@ -2094,7 +2112,7 @@ loop:
/* Scan the columns in the first list */
col_loop1:
ptr = dict_scan_col(ptr, &success, table, columns + i,
- column_names + i);
+ column_names + i, column_name_lens + i);
if (!success) {
return(DB_CANNOT_ADD_CONSTRAINT);
}
@@ -2145,9 +2163,13 @@ col_loop1:
1 + ut_strlen(columns[i]->name));
}
- ptr = dict_scan_table_name(ptr, &referenced_table, name);
+ ptr = dict_scan_table_name(ptr, &referenced_table, name,
+ &success, referenced_table_name);
- if (!referenced_table) {
+ /* Note that referenced_table can be NULL if the user has suppressed
+ checking of foreign key constraints! */
+
+ if (!success || (!referenced_table && trx->check_foreigns)) {
dict_foreign_free(foreign);
return(DB_CANNOT_ADD_CONSTRAINT);
@@ -2165,7 +2187,7 @@ col_loop1:
col_loop2:
ptr = dict_scan_col(ptr, &success, referenced_table, columns + i,
- column_names + i);
+ column_names + i, column_name_lens + i);
i++;
if (!success) {
@@ -2187,43 +2209,104 @@ col_loop2:
return(DB_CANNOT_ADD_CONSTRAINT);
}
+ ptr = dict_accept(ptr, "ON", &success);
+
+ if (!success) {
+
+ goto try_find_index;
+ }
+
+ ptr = dict_accept(ptr, "DELETE", &success);
+
+ if (!success) {
+
+ goto try_find_index;
+ }
+
+ ptr = dict_accept(ptr, "CASCADE", &success);
+
+ if (success) {
+
+ foreign->type = DICT_FOREIGN_ON_DELETE_CASCADE;
+
+ goto try_find_index;
+ }
+
+ ptr = dict_accept(ptr, "SET", &success);
+
+ if (!success) {
+
+ goto try_find_index;
+ }
+
+ ptr = dict_accept(ptr, "NULL", &success);
+
+ if (success) {
+ for (j = 0; j < foreign->n_fields; j++) {
+ if ((dict_index_get_nth_type(
+ foreign->foreign_index, j)->prtype)
+ & DATA_NOT_NULL) {
+
+ /* It is not sensible to define SET NULL
+ if the column is not allowed to be NULL! */
+
+ dict_foreign_free(foreign);
+ return(DB_CANNOT_ADD_CONSTRAINT);
+ }
+ }
+
+ foreign->type = DICT_FOREIGN_ON_DELETE_SET_NULL;
+
+ goto try_find_index;
+ }
+
+try_find_index:
/* Try to find an index which contains the columns as the first fields
and in the right order, and the types are the same as in
foreign->foreign_index */
- index = dict_foreign_find_index(referenced_table, column_names, i,
+ if (referenced_table) {
+ index = dict_foreign_find_index(referenced_table,
+ column_names, i,
foreign->foreign_index);
-
- if (!index) {
- dict_foreign_free(foreign);
- return(DB_CANNOT_ADD_CONSTRAINT);
+ if (!index) {
+ dict_foreign_free(foreign);
+ return(DB_CANNOT_ADD_CONSTRAINT);
+ }
+ } else {
+ ut_a(trx->check_foreigns == FALSE);
+ index = NULL;
}
foreign->referenced_index = index;
foreign->referenced_table = referenced_table;
foreign->referenced_table_name = mem_heap_alloc(foreign->heap,
- 1 + ut_strlen(referenced_table->name));
+ 1 + ut_strlen(referenced_table_name));
- ut_memcpy(foreign->referenced_table_name, referenced_table->name,
- 1 + ut_strlen(referenced_table->name));
+ ut_memcpy(foreign->referenced_table_name, referenced_table_name,
+ 1 + ut_strlen(referenced_table_name));
foreign->referenced_col_names = mem_heap_alloc(foreign->heap,
i * sizeof(void*));
for (i = 0; i < foreign->n_fields; i++) {
foreign->referenced_col_names[i]
= mem_heap_alloc(foreign->heap,
- 1 + ut_strlen(columns[i]->name));
- ut_memcpy(
- foreign->referenced_col_names[i], columns[i]->name,
- 1 + ut_strlen(columns[i]->name));
+ 1 + column_name_lens[i]);
+ ut_memcpy(foreign->referenced_col_names[i], column_names[i],
+ column_name_lens[i]);
+ (foreign->referenced_col_names[i])[column_name_lens[i]] = '\0';
}
/* We found an ok constraint definition: add to the lists */
UT_LIST_ADD_LAST(foreign_list, table->foreign_list, foreign);
- UT_LIST_ADD_LAST(referenced_list, referenced_table->referenced_list,
+
+ if (referenced_table) {
+ UT_LIST_ADD_LAST(referenced_list,
+ referenced_table->referenced_list,
foreign);
+ }
goto loop;
}
@@ -3039,6 +3122,14 @@ dict_print_info_on_foreign_keys_in_create_format(
buf2 += sprintf(buf2, ")");
+ if (foreign->type == DICT_FOREIGN_ON_DELETE_CASCADE) {
+ buf2 += sprintf(buf2, " ON DELETE CASCADE");
+ }
+
+ if (foreign->type == DICT_FOREIGN_ON_DELETE_SET_NULL) {
+ buf2 += sprintf(buf2, " ON DELETE SET NULL");
+ }
+
foreign = UT_LIST_GET_NEXT(foreign_list, foreign);
}
diff --git a/innobase/dict/dict0load.c b/innobase/dict/dict0load.c
index 53ba09616f7..221a6c7dabb 100644
--- a/innobase/dict/dict0load.c
+++ b/innobase/dict/dict0load.c
@@ -946,6 +946,11 @@ dict_load_foreign(
foreign->n_fields = mach_read_from_4(rec_get_nth_field(rec, 5, &len));
ut_a(len == 4);
+
+ /* We store the type to the bits 24-31 of n_fields */
+
+ foreign->type = foreign->n_fields >> 24;
+ foreign->n_fields = foreign->n_fields & 0xFFFFFF;
foreign->id = mem_heap_alloc(foreign->heap, ut_strlen(id) + 1);
diff --git a/innobase/dict/dict0mem.c b/innobase/dict/dict0mem.c
index 1f9a44aca35..52f46062065 100644
--- a/innobase/dict/dict0mem.c
+++ b/innobase/dict/dict0mem.c
@@ -61,7 +61,8 @@ dict_mem_table_create(
table->mem_fix = 0;
table->n_mysql_handles_opened = 0;
-
+ table->n_foreign_key_checks_running = 0;
+
table->cached = FALSE;
table->cols = mem_heap_alloc(heap, (n_cols + DATA_N_SYS_COLS)
@@ -235,6 +236,7 @@ dict_mem_foreign_create(void)
foreign->id = NULL;
+ foreign->type = 0;
foreign->foreign_table_name = NULL;
foreign->foreign_table = NULL;
foreign->foreign_col_names = NULL;
diff --git a/innobase/include/btr0btr.h b/innobase/include/btr0btr.h
index bea85565125..d22f9d79c1c 100644
--- a/innobase/include/btr0btr.h
+++ b/innobase/include/btr0btr.h
@@ -49,6 +49,12 @@ inserted to the index, at the searched position */
/* This flag ORed to latch mode says that we do the search in query
optimization */
#define BTR_ESTIMATE 1024
+
+/* This flag ORed to latch mode says that we can ignore possible
+UNIQUE definition on secondary indexes when we decide if we can use the
+insert buffer to speed up inserts */
+#define BTR_IGNORE_SEC_UNIQUE 2048
+
/******************************************************************
Gets a buffer page and declares its latching order level. */
UNIV_INLINE
diff --git a/innobase/include/dict0mem.h b/innobase/include/dict0mem.h
index 5ef0103087a..ef15c99fdba 100644
--- a/innobase/include/dict0mem.h
+++ b/innobase/include/dict0mem.h
@@ -249,6 +249,8 @@ struct dict_foreign_struct{
this memory heap */
char* id; /* id of the constraint as a
null-terminated string */
+ ulint type; /* 0 or DICT_FOREIGN_ON_DELETE_CASCADE
+ or DICT_FOREIGN_ON_DELETE_SET_NULL */
char* foreign_table_name;/* foreign table name */
dict_table_t* foreign_table; /* table where the foreign key is */
char** foreign_col_names;/* names of the columns in the
@@ -278,6 +280,9 @@ struct dict_foreign_struct{
table */
};
+#define DICT_FOREIGN_ON_DELETE_CASCADE 1
+#define DICT_FOREIGN_ON_DELETE_SET_NULL 2
+
#define DICT_INDEX_MAGIC_N 76789786
/* Data structure for a database table */
@@ -313,6 +318,12 @@ struct dict_table_struct{
NOT allowed until this count gets to zero;
MySQL does NOT itself check the number of
open handles at drop */
+ ulint n_foreign_key_checks_running;
+ /* count of how many foreign key check
+ operations are currently being performed
+ on the table: we cannot drop the table while
+ there are foreign key checks running on
+ it! */
ibool cached; /* TRUE if the table object has been added
to the dictionary cache */
lock_t* auto_inc_lock;/* a buffer for an auto-inc lock
@@ -359,17 +370,16 @@ struct dict_table_struct{
after database startup or table creation */
ulint stat_modified_counter;
/* when a row is inserted, updated, or deleted,
- we add the row length to this number; we
- calculate new estimates for the stat_...
- values for the table and the indexes at an
- interval of 2 GB or when about 1 / 16 of table
- has been modified; also
- when the estimate operation is called
- for MySQL SHOW TABLE STATUS; the counter is
- reset to zero at statistics calculation;
- this counter
- is not protected by any latch, because this
- is only used for heuristics */
+ we add 1 to this number; we calculate new
+ estimates for the stat_... values for the
+ table and the indexes at an interval of 2 GB
+ or when about 1 / 16 of table has been
+ modified; also when the estimate operation is
+ called for MySQL SHOW TABLE STATUS; the
+ counter is reset to zero at statistics
+ calculation; this counter is not protected by
+ any latch, because this is only used for
+ heuristics */
/*----------------------*/
mutex_t autoinc_mutex;
/* mutex protecting the autoincrement
diff --git a/innobase/include/ibuf0ibuf.h b/innobase/include/ibuf0ibuf.h
index 99fb1595f49..fac28461be4 100644
--- a/innobase/include/ibuf0ibuf.h
+++ b/innobase/include/ibuf0ibuf.h
@@ -127,7 +127,11 @@ UNIV_INLINE
ibool
ibuf_should_try(
/*============*/
- dict_index_t* index); /* in: index where to insert */
+ dict_index_t* index, /* in: index where to insert */
+ ulint ignore_sec_unique); /* in: if != 0, we should
+ ignore UNIQUE constraint on
+ a secondary index when we
+ decide */
/**********************************************************************
Returns TRUE if the current OS thread is performing an insert buffer
routine. */
diff --git a/innobase/include/ibuf0ibuf.ic b/innobase/include/ibuf0ibuf.ic
index e969a0550da..0886c8c02cc 100644
--- a/innobase/include/ibuf0ibuf.ic
+++ b/innobase/include/ibuf0ibuf.ic
@@ -81,10 +81,16 @@ UNIV_INLINE
ibool
ibuf_should_try(
/*============*/
- dict_index_t* index) /* in: index where to insert */
+ dict_index_t* index, /* in: index where to insert */
+ ulint ignore_sec_unique) /* in: if != 0, we should
+ ignore UNIQUE constraint on
+ a secondary index when we
+ decide */
{
- if (!(index->type & (DICT_CLUSTERED | DICT_UNIQUE))
- && ibuf->meter > IBUF_THRESHOLD) {
+ if (!(index->type & DICT_CLUSTERED)
+ && (ignore_sec_unique || !(index->type & DICT_UNIQUE))
+ && ibuf->meter > IBUF_THRESHOLD) {
+
ibuf_flush_count++;
if (ibuf_flush_count % 8 == 0) {
diff --git a/innobase/include/os0file.h b/innobase/include/os0file.h
index 67d76814936..01fa12955ff 100644
--- a/innobase/include/os0file.h
+++ b/innobase/include/os0file.h
@@ -25,12 +25,6 @@ extern ibool os_has_said_disk_full;
#define UNIV_NON_BUFFERED_IO
-#else
-
-#if defined(HAVE_AIO_H) && defined(HAVE_LIBRT)
-#define POSIX_ASYNC_IO
-#endif
-
#endif
#ifdef __WIN__
@@ -347,6 +341,8 @@ os_aio_windows_handle(
void** message2,
ulint* type); /* out: OS_FILE_WRITE or ..._READ */
#endif
+
+/* Currently we do not use Posix async i/o */
#ifdef POSIX_ASYNC_IO
/**************************************************************************
This function is only used in Posix asynchronous i/o. Waits for an aio
diff --git a/innobase/include/os0sync.h b/innobase/include/os0sync.h
index 617f6b036fe..b2d613c4619 100644
--- a/innobase/include/os0sync.h
+++ b/innobase/include/os0sync.h
@@ -149,9 +149,9 @@ void
os_mutex_free(
/*==========*/
os_mutex_t mutex); /* in: mutex to free */
-#ifndef _WIN32
/**************************************************************
-Acquires ownership of a fast mutex. */
+Acquires ownership of a fast mutex. Currently in Windows this is the same
+as os_fast_mutex_lock! */
UNIV_INLINE
ulint
os_fast_mutex_trylock(
@@ -160,7 +160,6 @@ os_fast_mutex_trylock(
was reserved by another
thread */
os_fast_mutex_t* fast_mutex); /* in: mutex to acquire */
-#endif
/**************************************************************
Releases ownership of a fast mutex. */
diff --git a/innobase/include/os0sync.ic b/innobase/include/os0sync.ic
index aa00300dec5..6bff75d8ec6 100644
--- a/innobase/include/os0sync.ic
+++ b/innobase/include/os0sync.ic
@@ -10,9 +10,9 @@ Created 9/6/1995 Heikki Tuuri
#include <winbase.h>
#endif
-#ifndef _WIN32
/**************************************************************
-Acquires ownership of a fast mutex. */
+Acquires ownership of a fast mutex. Currently in Windows this is the same
+as os_fast_mutex_lock! */
UNIV_INLINE
ulint
os_fast_mutex_trylock(
@@ -23,20 +23,11 @@ os_fast_mutex_trylock(
os_fast_mutex_t* fast_mutex) /* in: mutex to acquire */
{
#ifdef __WIN__
- int ret;
+ EnterCriticalSection(fast_mutex);
- /* TODO: TryEnterCriticalSection is probably not found from
- NT versions < 4! */
- ret = TryEnterCriticalSection(fast_mutex);
-
- if (ret) {
- return(0);
- }
-
- return(1);
+ return(0);
#else
return((ulint) pthread_mutex_trylock(fast_mutex));
#endif
}
-#endif
diff --git a/innobase/include/row0mysql.h b/innobase/include/row0mysql.h
index 92693319175..13b3dffd874 100644
--- a/innobase/include/row0mysql.h
+++ b/innobase/include/row0mysql.h
@@ -209,6 +209,27 @@ row_update_for_mysql(
row_prebuilt_t* prebuilt); /* in: prebuilt struct in MySQL
handle */
/*************************************************************************
+Creates an query graph node of 'update' type to be used in the MySQL
+interface. */
+
+upd_node_t*
+row_create_update_node_for_mysql(
+/*=============================*/
+ /* out, own: update node */
+ dict_table_t* table, /* in: table to update */
+ mem_heap_t* heap); /* in: mem heap from which allocated */
+/**************************************************************************
+Does a cascaded delete or set null in a foreign key operation. */
+
+ulint
+row_update_cascade_for_mysql(
+/*=========================*/
+ /* out: error code or DB_SUCCESS */
+ que_thr_t* thr, /* in: query thread */
+ upd_node_t* node, /* in: update node used in the cascade
+ or set null operation */
+ dict_table_t* table); /* in: table where we do the operation */
+/*************************************************************************
Does a table creation operation for MySQL. If the name of the created
table ends to characters INNODB_MONITOR, then this also starts
printing of monitor output by the master thread. */
diff --git a/innobase/include/row0upd.h b/innobase/include/row0upd.h
index 106d3866b25..9a3e2463267 100644
--- a/innobase/include/row0upd.h
+++ b/innobase/include/row0upd.h
@@ -312,6 +312,11 @@ struct upd_node_struct{
ibool in_mysql_interface;
/* TRUE if the update node was created
for the MySQL interface */
+ upd_node_t* cascade_node;/* NULL or an update node template which
+ is used to implement ON DELETE CASCADE
+ or ... SET NULL for foreign keys */
+ mem_heap_t* cascade_heap;/* NULL or a mem heap where the cascade
+ node is created */
sel_node_t* select; /* query graph subtree implementing a base
table cursor: the rows returned will be
updated */
@@ -322,6 +327,11 @@ struct upd_node_struct{
of the MySQL interface */
dict_table_t* table; /* table where updated */
upd_t* update; /* update vector for the row */
+ ulint update_n_fields;
+ /* when this struct is used to implement
+ a cascade operation for foreign keys, we store
+ here the size of the buffer allocated for use
+ as the update vector */
sym_node_list_t columns;/* symbol table nodes for the columns
to retrieve from the table */
ibool has_clust_rec_x_lock;
diff --git a/innobase/include/sync0sync.h b/innobase/include/sync0sync.h
index 6c3bff66e27..4f55709a5d7 100644
--- a/innobase/include/sync0sync.h
+++ b/innobase/include/sync0sync.h
@@ -359,12 +359,17 @@ V
Memory pool mutex */
/* Latching order levels */
+
+/* User transaction locks are higher than any of the latch levels below:
+no latches are allowed when a thread goes to wait for a normal table
+or row lock! */
+#define SYNC_USER_TRX_LOCK 9999
#define SYNC_NO_ORDER_CHECK 3000 /* this can be used to suppress
latching order checking */
#define SYNC_LEVEL_NONE 2000 /* default: level not defined */
+#define SYNC_FOREIGN_KEY_CHECK 1001
#define SYNC_DICT 1000
#define SYNC_DICT_AUTOINC_MUTEX 999
-#define SYNC_FOREIGN_KEY_CHECK 998
#define SYNC_PURGE_IS_RUNNING 997
#define SYNC_DICT_HEADER 995
#define SYNC_IBUF_HEADER 914
@@ -429,7 +434,7 @@ implementation of a mutual exclusion semaphore. */
struct mutex_struct {
ulint lock_word; /* This ulint is the target of the atomic
test-and-set instruction in Win32 */
-#ifndef _WIN32
+#if !defined(_WIN32) || !defined(UNIV_CAN_USE_X86_ASSEMBLER)
os_fast_mutex_t
os_fast_mutex; /* In other systems we use this OS mutex
in place of lock_word */
diff --git a/innobase/include/sync0sync.ic b/innobase/include/sync0sync.ic
index 9531377ce0b..9014eb5fb54 100644
--- a/innobase/include/sync0sync.ic
+++ b/innobase/include/sync0sync.ic
@@ -53,7 +53,7 @@ mutex_test_and_set(
1 */
mutex_t* mutex) /* in: mutex */
{
-#ifdef _WIN32
+#if defined(_WIN32) && defined(UNIV_CAN_USE_X86_ASSEMBLER)
ulint res;
ulint* lw; /* assembler code is used to ensure that
lock_word is loaded from memory */
@@ -120,7 +120,7 @@ mutex_reset_lock_word(
/*==================*/
mutex_t* mutex) /* in: mutex */
{
-#ifdef _WIN32
+#if defined(_WIN32) && defined(UNIV_CAN_USE_X86_ASSEMBLER)
ulint* lw; /* assembler code is used to ensure that
lock_word is loaded from memory */
ut_ad(mutex);
diff --git a/innobase/include/trx0sys.h b/innobase/include/trx0sys.h
index 98c726fb118..60d5adb72d1 100644
--- a/innobase/include/trx0sys.h
+++ b/innobase/include/trx0sys.h
@@ -259,7 +259,7 @@ therefore 256 */
/* The offset of the transaction system header on the page */
#define TRX_SYS FSEG_PAGE_DATA
-/* Transaction system header; protected by trx_sys->mutex */
+/* Transaction system header */
/*-------------------------------------------------------------*/
#define TRX_SYS_TRX_ID_STORE 0 /* the maximum trx id or trx number
modulo TRX_SYS_TRX_ID_UPDATE_MARGIN
diff --git a/innobase/include/trx0sys.ic b/innobase/include/trx0sys.ic
index 786e7905933..ada2d8cb19c 100644
--- a/innobase/include/trx0sys.ic
+++ b/innobase/include/trx0sys.ic
@@ -93,7 +93,6 @@ trx_sysf_get(
{
trx_sysf_t* header;
- ut_ad(mutex_own(&(kernel_mutex)));
ut_ad(mtr);
header = TRX_SYS + buf_page_get(TRX_SYS_SPACE, TRX_SYS_PAGE_NO,
diff --git a/innobase/include/trx0trx.h b/innobase/include/trx0trx.h
index 26c9ace08b6..261f33d3dc3 100644
--- a/innobase/include/trx0trx.h
+++ b/innobase/include/trx0trx.h
@@ -298,6 +298,17 @@ struct trx_struct{
of view of concurrency control:
TRX_ACTIVE, TRX_COMMITTED_IN_MEMORY,
... */
+ ibool check_foreigns; /* normally TRUE, but if the user
+ wants to suppress foreign key checks,
+ (in table imports, for example) we
+ set this FALSE */
+ ibool check_unique_secondary;
+ /* normally TRUE, but if the user
+ wants to speed up inserts by
+ suppressing unique key checks
+ for secondary indexes when we decide
+ if we can use the insert buffer for
+ them, we set this FALSE */
dulint id; /* transaction id */
dulint no; /* transaction serialization number ==
max trx id when the transaction is
@@ -328,6 +339,9 @@ struct trx_struct{
/* how many tables the current SQL
statement uses, except those
in consistent read */
+ ibool has_dict_foreign_key_check_lock;
+ /* TRUE if the trx currently holds
+ an s-lock on dict_foreign_... */
ibool has_search_latch;
/* TRUE if this trx has latched the
search system latch in S-mode */
diff --git a/innobase/include/univ.i b/innobase/include/univ.i
index 8870d80f611..160a435319a 100644
--- a/innobase/include/univ.i
+++ b/innobase/include/univ.i
@@ -14,6 +14,13 @@ Created 1/20/1994 Heikki Tuuri
#include <windows.h>
+/* When compiling for Itanium IA64, undefine the flag below to prevent use
+of 32-bit assembler */
+
+#ifndef WIN64
+#define UNIV_CAN_USE_X86_ASSEMBLER
+#endif
+
/* If you want to check for errors with compiler level -W4,
comment out the above include of windows.h and let the following defines
be defined:
@@ -71,13 +78,14 @@ memory is read outside the allocated blocks. */
*/
/* Make a non-inline debug version */
+
/*
#define UNIV_DEBUG
#define UNIV_MEM_DEBUG
-#define UNIV_SEARCH_DEBUG
+#define UNIV_SYNC_DEBUG
#define UNIV_IBUF_DEBUG
-#define UNIV_SYNC_DEBUG
+#define UNIV_SEARCH_DEBUG
#define UNIV_SYNC_PERF_STAT
#define UNIV_SEARCH_PERF_STAT
*/
diff --git a/innobase/lock/lock0lock.c b/innobase/lock/lock0lock.c
index f2309a5c562..b168ba41771 100644
--- a/innobase/lock/lock0lock.c
+++ b/innobase/lock/lock0lock.c
@@ -1535,6 +1535,8 @@ lock_rec_enqueue_waiting(
if (que_thr_stop(thr)) {
+ ut_a(0);
+
return(DB_QUE_THR_SUSPENDED);
}
@@ -2919,6 +2921,7 @@ lock_table_enqueue_waiting(
stopped anyway */
if (que_thr_stop(thr)) {
+ ut_a(0);
return(DB_QUE_THR_SUSPENDED);
}
diff --git a/innobase/pars/pars0opt.c b/innobase/pars/pars0opt.c
index 35d39caad00..dd0718ce946 100644
--- a/innobase/pars/pars0opt.c
+++ b/innobase/pars/pars0opt.c
@@ -526,7 +526,8 @@ opt_search_plan_for_table(
dict_index_t* best_index;
ulint n_fields;
ulint goodness;
- ulint last_op;
+ ulint last_op = 75946965; /* Eliminate a Purify
+ warning */
ulint best_goodness;
ulint best_last_op = 0; /* remove warning */
ulint mix_id_pos;
diff --git a/innobase/que/que0que.c b/innobase/que/que0que.c
index 1cee316f32c..7fa444f6741 100644
--- a/innobase/que/que0que.c
+++ b/innobase/que/que0que.c
@@ -555,6 +555,12 @@ que_graph_free_recursive(
btr_pcur_free_for_mysql(upd->pcur);
}
+ que_graph_free_recursive(upd->cascade_node);
+
+ if (upd->cascade_heap) {
+ mem_heap_free(upd->cascade_heap);
+ }
+
que_graph_free_recursive(upd->select);
mem_heap_free(upd->heap);
@@ -1110,9 +1116,6 @@ que_thr_move_to_run_state_for_mysql(
trx->n_active_thrs++;
thr->is_active = TRUE;
-
- ut_ad((thr->graph)->n_active_thrs == 1);
- ut_ad(trx->n_active_thrs == 1);
}
thr->state = QUE_THR_RUNNING;
diff --git a/innobase/row/row0ins.c b/innobase/row/row0ins.c
index eb07291e709..ed4df08fcf3 100644
--- a/innobase/row/row0ins.c
+++ b/innobase/row/row0ins.c
@@ -356,6 +356,227 @@ row_ins_dupl_error_with_rec(
}
/*************************************************************************
+Either deletes or sets the referencing columns SQL NULL in a child row.
+Used in ON DELETE ... clause for foreign keys when a parent row is
+deleted. */
+static
+ulint
+row_ins_foreign_delete_or_set_null(
+/*===============================*/
+ /* out: DB_SUCCESS, DB_LOCK_WAIT,
+ or error code */
+ que_thr_t* thr, /* in: query thread whose run_node
+ is an update node */
+ dict_foreign_t* foreign, /* in: foreign key constraint whose
+ type is != 0 */
+ btr_pcur_t* pcur, /* in: cursor placed on a matching
+ index record in the child table */
+ mtr_t* mtr) /* in: mtr holding the latch of pcur
+ page */
+{
+ upd_node_t* node;
+ upd_node_t* cascade;
+ dict_table_t* table = foreign->foreign_table;
+ dict_index_t* index;
+ dict_index_t* clust_index;
+ dtuple_t* ref;
+ mem_heap_t* tmp_heap;
+ rec_t* rec;
+ rec_t* clust_rec;
+ upd_t* update;
+ ulint err;
+ ulint i;
+ char err_buf[1000];
+
+ ut_a(thr && foreign && pcur && mtr);
+
+ node = thr->run_node;
+
+ if (node->cascade_node == NULL) {
+ /* Extend our query graph by creating a child to current
+ update node. The child is used in the cascade or set null
+ operation. */
+
+ node->cascade_heap = mem_heap_create(128);
+ node->cascade_node = row_create_update_node_for_mysql(
+ table, node->cascade_heap);
+ que_node_set_parent(node->cascade_node, node);
+ }
+
+ /* Initialize cascade_node to do the operation we want. Note that we
+ use the SAME cascade node to do all foreign key operations of the
+ SQL DELETE: the table of the cascade node may change if there are
+ several child tables to the table where the delete is done! */
+
+ cascade = node->cascade_node;
+
+ cascade->table = table;
+
+ if (foreign->type == DICT_FOREIGN_ON_DELETE_CASCADE ) {
+ cascade->is_delete = TRUE;
+ } else {
+ cascade->is_delete = FALSE;
+
+ if (foreign->n_fields > cascade->update_n_fields) {
+ /* We have to make the update vector longer */
+
+ cascade->update = upd_create(foreign->n_fields,
+ node->cascade_heap);
+ cascade->update_n_fields = foreign->n_fields;
+ }
+ }
+
+ index = btr_pcur_get_btr_cur(pcur)->index;
+
+ rec = btr_pcur_get_rec(pcur);
+
+ if (index->type & DICT_CLUSTERED) {
+ /* pcur is already positioned in the clustered index of
+ the child table */
+
+ clust_index = index;
+ clust_rec = rec;
+ } else {
+ /* We have to look for the record in the clustered index
+ in the child table */
+
+ clust_index = dict_table_get_first_index(table);
+
+ tmp_heap = mem_heap_create(256);
+
+ ref = row_build_row_ref(ROW_COPY_POINTERS, index, rec,
+ tmp_heap);
+ btr_pcur_open_with_no_init(clust_index, ref,
+ PAGE_CUR_LE, BTR_SEARCH_LEAF,
+ cascade->pcur, 0, mtr);
+
+ mem_heap_free(tmp_heap);
+
+ clust_rec = btr_pcur_get_rec(cascade->pcur);
+ }
+
+ if (!page_rec_is_user_rec(clust_rec)) {
+ fprintf(stderr,
+ "InnoDB: error in cascade of a foreign key op\n"
+ "InnoDB: index %s table %s\n", index->name,
+ index->table->name);
+
+ rec_sprintf(err_buf, 900, rec);
+ fprintf(stderr, "InnoDB: record %s\n", err_buf);
+
+ rec_sprintf(err_buf, 900, clust_rec);
+ fprintf(stderr, "InnoDB: clustered record %s\n", err_buf);
+
+ fprintf(stderr,
+ "InnoDB: Make a detailed bug report and send it\n");
+ fprintf(stderr, "InnoDB: to mysql@lists.mysql.com\n");
+
+ err = DB_SUCCESS;
+
+ goto nonstandard_exit_func;
+ }
+
+ /* Set an X-lock on the row to delete or update in the child table */
+
+ err = lock_table(0, table, LOCK_IX, thr);
+
+ if (err == DB_SUCCESS) {
+ err = lock_clust_rec_read_check_and_lock(0, clust_rec,
+ clust_index, LOCK_X, thr);
+ }
+
+ if (err != DB_SUCCESS) {
+
+ goto nonstandard_exit_func;
+ }
+
+ if (rec_get_deleted_flag(clust_rec)) {
+ /* This can happen if there is a circular reference of
+ rows such that cascading delete comes to delete a row
+ already in the process of being delete marked */
+/*
+ fprintf(stderr,
+ "InnoDB: error 2 in cascade of a foreign key op\n"
+ "InnoDB: index %s table %s\n", index->name,
+ index->table->name);
+
+ rec_sprintf(err_buf, 900, rec);
+ fprintf(stderr, "InnoDB: record %s\n", err_buf);
+
+ rec_sprintf(err_buf, 900, clust_rec);
+ fprintf(stderr, "InnoDB: clustered record %s\n", err_buf);
+
+ fprintf(stderr,
+ "InnoDB: Make a detailed bug report and send it\n");
+ fprintf(stderr, "InnoDB: to mysql@lists.mysql.com\n");
+
+ ut_a(0);
+*/
+ err = DB_SUCCESS;
+
+ goto nonstandard_exit_func;
+ }
+
+ if (foreign->type == DICT_FOREIGN_ON_DELETE_SET_NULL) {
+ /* Build the appropriate update vector which sets
+ foreign->n_fields first fields in rec to SQL NULL */
+
+ update = cascade->update;
+
+ update->info_bits = 0;
+ update->n_fields = foreign->n_fields;
+
+ for (i = 0; i < foreign->n_fields; i++) {
+ (update->fields + i)->field_no
+ = dict_table_get_nth_col_pos(table,
+ dict_index_get_nth_col_no(index, i));
+ (update->fields + i)->exp = NULL;
+ (update->fields + i)->new_val.len = UNIV_SQL_NULL;
+ (update->fields + i)->new_val.data = NULL;
+ (update->fields + i)->extern_storage = FALSE;
+ }
+ }
+
+ /* Store pcur position and initialize or store the cascade node
+ pcur stored position */
+
+ btr_pcur_store_position(pcur, mtr);
+
+ if (index == clust_index) {
+ btr_pcur_copy_stored_position(cascade->pcur, pcur);
+ } else {
+ btr_pcur_store_position(cascade->pcur, mtr);
+ }
+
+ mtr_commit(mtr);
+
+ ut_a(cascade->pcur->rel_pos == BTR_PCUR_ON);
+
+ cascade->state = UPD_NODE_UPDATE_CLUSTERED;
+
+ err = row_update_cascade_for_mysql(thr, cascade,
+ foreign->foreign_table);
+ mtr_start(mtr);
+
+ /* Restore pcur position */
+
+ btr_pcur_restore_position(BTR_SEARCH_LEAF, pcur, mtr);
+
+ return(err);
+
+nonstandard_exit_func:
+
+ btr_pcur_store_position(pcur, mtr);
+
+ mtr_commit(mtr);
+ mtr_start(mtr);
+
+ btr_pcur_restore_position(BTR_SEARCH_LEAF, pcur, mtr);
+
+ return(err);
+}
+
+/*************************************************************************
Sets a shared lock on a record. Used in locking possible duplicate key
records. */
static
@@ -416,6 +637,13 @@ row_ins_check_foreign_constraint(
ut_ad(rw_lock_own(&dict_foreign_key_check_lock, RW_LOCK_SHARED));
+ if (thr_get_trx(thr)->check_foreigns == FALSE) {
+ /* The user has suppressed foreign key checks currently for
+ this session */
+
+ return(DB_SUCCESS);
+ }
+
/* If any of the foreign key fields in entry is SQL NULL, we
suppress the foreign key check: this is compatible with Oracle,
for example */
@@ -478,8 +706,8 @@ row_ins_check_foreign_constraint(
goto next_rec;
}
-
- /* Try to place a lock on the index record */
+
+ /* Try to place a lock on the index record */
err = row_ins_set_shared_rec_lock(rec, check_index, thr);
@@ -501,11 +729,21 @@ row_ins_check_foreign_constraint(
if (check_ref) {
err = DB_SUCCESS;
+
+ break;
+ } else if (foreign->type != 0) {
+ err =
+ row_ins_foreign_delete_or_set_null(
+ thr, foreign, &pcur, &mtr);
+
+ if (err != DB_SUCCESS) {
+
+ break;
+ }
} else {
err = DB_ROW_IS_REFERENCED;
+ break;
}
-
- break;
}
}
@@ -534,6 +772,8 @@ next_rec:
}
}
+ btr_pcur_close(&pcur);
+
mtr_commit(&mtr);
/* Restore old value */
@@ -561,6 +801,10 @@ row_ins_check_foreign_constraints(
{
dict_foreign_t* foreign;
ulint err;
+ trx_t* trx;
+ ibool got_s_lock = FALSE;
+
+ trx = thr_get_trx(thr);
foreign = UT_LIST_GET_FIRST(table->foreign_list);
@@ -569,16 +813,26 @@ row_ins_check_foreign_constraints(
if (foreign->referenced_table == NULL) {
dict_table_get(foreign->referenced_table_name,
- thr_get_trx(thr));
+ trx);
}
- rw_lock_s_lock(&dict_foreign_key_check_lock);
+ if (!trx->has_dict_foreign_key_check_lock) {
+ got_s_lock = TRUE;
+
+ rw_lock_s_lock(&dict_foreign_key_check_lock);
+
+ trx->has_dict_foreign_key_check_lock = TRUE;
+ }
err = row_ins_check_foreign_constraint(TRUE, foreign,
table, index, entry, thr);
+ if (got_s_lock) {
- rw_lock_s_unlock(&dict_foreign_key_check_lock);
+ rw_lock_s_unlock(&dict_foreign_key_check_lock);
+ trx->has_dict_foreign_key_check_lock = FALSE;
+ }
+
if (err != DB_SUCCESS) {
return(err);
}
@@ -868,13 +1122,14 @@ row_ins_index_entry_low(
ulint n_ext_vec,/* in: number of fields in ext_vec */
que_thr_t* thr) /* in: query thread */
{
- btr_cur_t cursor;
+ btr_cur_t cursor;
+ ulint ignore_sec_unique = 0;
ulint modify = 0; /* remove warning */
rec_t* insert_rec;
rec_t* rec;
ulint err;
ulint n_unique;
- big_rec_t* big_rec = NULL;
+ big_rec_t* big_rec = NULL;
mtr_t mtr;
log_free_check();
@@ -887,8 +1142,13 @@ row_ins_index_entry_low(
the function will return in both low_match and up_match of the
cursor sensible values */
+ if (!(thr_get_trx(thr)->check_unique_secondary)) {
+ ignore_sec_unique = BTR_IGNORE_SEC_UNIQUE;
+ }
+
btr_cur_search_to_nth_level(index, 0, entry, PAGE_CUR_LE,
- mode | BTR_INSERT, &cursor, 0, &mtr);
+ mode | BTR_INSERT | ignore_sec_unique,
+ &cursor, 0, &mtr);
if (cursor.flag == BTR_CUR_INSERT_TO_IBUF) {
/* The insertion was made to the insert buffer already during
diff --git a/innobase/row/row0mysql.c b/innobase/row/row0mysql.c
index 78b32a5642b..d6c8d7ab412 100644
--- a/innobase/row/row0mysql.c
+++ b/innobase/row/row0mysql.c
@@ -28,6 +28,9 @@ Created 9/17/2000 Heikki Tuuri
#include "rem0cmp.h"
#include "log0log.h"
+/* A dummy variable used to fool the compiler */
+ibool row_mysql_identically_false = FALSE;
+
/* List of tables we should drop in background. ALTER TABLE in MySQL requires
that the table handler can drop the table in background when there are no
queries to it any more. Protected by the kernel mutex. */
@@ -63,15 +66,48 @@ row_mysql_store_blob_ref(
byte* dest, /* in: where to store */
ulint col_len, /* in: dest buffer size: determines into
how many bytes the BLOB length is stored,
- this may vary from 1 to 4 bytes */
- byte* data, /* in: BLOB data */
- ulint len) /* in: BLOB length */
+ the space for the length may vary from 1
+ to 4 bytes */
+ byte* data, /* in: BLOB data; if the value to store
+ is SQL NULL this should be NULL pointer */
+ ulint len) /* in: BLOB length; if the value to store
+ is SQL NULL this should be 0; remember
+ also to set the NULL bit in the MySQL record
+ header! */
{
+ ulint sum = 0;
+ ulint i;
+
+ /* MySQL might assume the field is set to zero except the length and
+ the pointer fields */
+
+ memset(dest, '\0', col_len);
+
/* In dest there are 1 - 4 bytes reserved for the BLOB length,
and after that 8 bytes reserved for the pointer to the data.
In 32-bit architectures we only use the first 4 bytes of the pointer
slot. */
+ ut_a(col_len - 8 > 1 || len < 256);
+ ut_a(col_len - 8 > 2 || len < 256 * 256);
+ ut_a(col_len - 8 > 3 || len < 256 * 256 * 256);
+
+ /* We try to track an elusive bug which probably was fixed
+ May 9, 2002, but better be sure: we probe the data buffer
+ to make sure it is in valid allocated memory */
+
+ for (i = 0; i < len; i++) {
+
+ sum += (ulint)(data + i);
+ }
+
+ /* The variable below is identically false, we just fool the
+ compiler to not optimize away our loop */
+ if (row_mysql_identically_false) {
+
+ printf("Sum %lu\n", sum);
+ }
+
mach_write_to_n_little_endian(dest, col_len - 8, len);
ut_memcpy(dest + col_len - 8, (byte*)&data, sizeof(byte*));
@@ -499,29 +535,24 @@ UNIV_INLINE
void
row_update_statistics_if_needed(
/*============================*/
- row_prebuilt_t* prebuilt) /* in: prebuilt struct */
+ dict_table_t* table) /* in: table */
{
ulint counter;
- counter = prebuilt->table->stat_modified_counter;
-
- /* Since the physical size of an InnoDB row is bigger than the
- MySQL row len, we put a safety factor 2 below */
+ counter = table->stat_modified_counter;
- counter += 2 * prebuilt->mysql_row_len;
-
- prebuilt->table->stat_modified_counter = counter;
+ table->stat_modified_counter = counter + 1;
/* Calculate new statistics if 1 / 16 of table has been modified
since the last time a statistics batch was run, or if
- stat_modified_counter > 2 000 000 000 (to avoid wrap-around) */
+ stat_modified_counter > 2 000 000 000 (to avoid wrap-around).
+ We calculate statistics at most every 16th round, since we may have
+ a counter table which is very small and updated very often. */
if (counter > 2000000000
- || ((ib_longlong)counter >
- (UNIV_PAGE_SIZE * prebuilt->table->stat_clustered_index_size)
- / 16)) {
+ || ((ib_longlong)counter > 16 + table->stat_n_rows / 16)) {
- dict_update_statistics(prebuilt->table);
+ dict_update_statistics(table);
}
}
@@ -712,7 +743,7 @@ run_again:
prebuilt->table->stat_n_rows--;
}
- row_update_statistics_if_needed(prebuilt);
+ row_update_statistics_if_needed(prebuilt->table);
trx->op_info = (char *) "";
return((int) err);
@@ -746,6 +777,43 @@ row_prebuild_sel_graph(
}
/*************************************************************************
+Creates an query graph node of 'update' type to be used in the MySQL
+interface. */
+
+upd_node_t*
+row_create_update_node_for_mysql(
+/*=============================*/
+ /* out, own: update node */
+ dict_table_t* table, /* in: table to update */
+ mem_heap_t* heap) /* in: mem heap from which allocated */
+{
+ upd_node_t* node;
+
+ node = upd_node_create(heap);
+
+ node->in_mysql_interface = TRUE;
+ node->is_delete = FALSE;
+ node->searched_update = FALSE;
+ node->select_will_do_update = FALSE;
+ node->select = NULL;
+ node->pcur = btr_pcur_create_for_mysql();
+ node->table = table;
+
+ node->update = upd_create(dict_table_get_n_cols(table), heap);
+
+ node->update_n_fields = dict_table_get_n_cols(table);
+
+ UT_LIST_INIT(node->columns);
+ node->has_clust_rec_x_lock = TRUE;
+ node->cmpl_info = 0;
+
+ node->table_sym = NULL;
+ node->col_assign_list = NULL;
+
+ return(node);
+}
+
+/*************************************************************************
Gets pointer to a prebuilt update vector used in updates. If the update
graph has not yet been built in the prebuilt struct, then this function
first builds it. */
@@ -767,26 +835,9 @@ row_get_prebuilt_update_vector(
/* Not called before for this handle: create an update node
and query graph to the prebuilt struct */
- node = upd_node_create(prebuilt->heap);
-
- prebuilt->upd_node = node;
+ node = row_create_update_node_for_mysql(table, prebuilt->heap);
- node->in_mysql_interface = TRUE;
- node->is_delete = FALSE;
- node->searched_update = FALSE;
- node->select_will_do_update = FALSE;
- node->select = NULL;
- node->pcur = btr_pcur_create_for_mysql();
- node->table = table;
-
- node->update = upd_create(dict_table_get_n_cols(table),
- prebuilt->heap);
- UT_LIST_INIT(node->columns);
- node->has_clust_rec_x_lock = TRUE;
- node->cmpl_info = 0;
-
- node->table_sym = NULL;
- node->col_assign_list = NULL;
+ prebuilt->upd_node = node;
prebuilt->upd_graph =
que_node_get_parent(
@@ -914,7 +965,7 @@ run_again:
que_thr_stop_for_mysql_no_error(thr, trx);
- if (prebuilt->upd_node->is_delete) {
+ if (node->is_delete) {
if (prebuilt->table->stat_n_rows > 0) {
prebuilt->table->stat_n_rows--;
}
@@ -924,13 +975,66 @@ run_again:
srv_n_rows_updated++;
}
- row_update_statistics_if_needed(prebuilt);
+ row_update_statistics_if_needed(prebuilt->table);
trx->op_info = (char *) "";
return((int) err);
}
+/**************************************************************************
+Does a cascaded delete or set null in a foreign key operation. */
+
+ulint
+row_update_cascade_for_mysql(
+/*=========================*/
+ /* out: error code or DB_SUCCESS */
+ que_thr_t* thr, /* in: query thread */
+ upd_node_t* node, /* in: update node used in the cascade
+ or set null operation */
+ dict_table_t* table) /* in: table where we do the operation */
+{
+ ulint err;
+ trx_t* trx;
+
+ trx = thr_get_trx(thr);
+
+run_again:
+ thr->run_node = node;
+ thr->prev_node = node;
+
+ row_upd_step(thr);
+
+ err = trx->error_state;
+
+ if (err == DB_LOCK_WAIT) {
+ que_thr_stop_for_mysql(thr);
+
+ row_mysql_handle_errors(&err, trx, thr, NULL);
+
+ goto run_again;
+ }
+
+ if (err != DB_SUCCESS) {
+
+ return(err);
+ }
+
+ if (node->is_delete) {
+ if (table->stat_n_rows > 0) {
+ table->stat_n_rows--;
+ }
+
+ srv_n_rows_deleted++;
+ } else {
+ srv_n_rows_updated++;
+ }
+
+ row_update_statistics_if_needed(table);
+
+ return(err);
+}
+
/*************************************************************************
Checks if a table is such that we automatically created a clustered
index on it (on row id). */
@@ -1171,6 +1275,7 @@ row_create_table_for_mysql(
/* Serialize data dictionary operations with dictionary mutex:
no deadlocks can occur then in these operations */
+ rw_lock_x_lock(&(dict_foreign_key_check_lock));
mutex_enter(&(dict_sys->mutex));
heap = mem_heap_create(512);
@@ -1223,6 +1328,8 @@ row_create_table_for_mysql(
}
mutex_exit(&(dict_sys->mutex));
+ rw_lock_x_unlock(&(dict_foreign_key_check_lock));
+
que_graph_free((que_t*) que_node_get_parent(thr));
trx->op_info = (char *) "";
@@ -1270,6 +1377,7 @@ row_create_index_for_mysql(
/* Serialize data dictionary operations with dictionary mutex:
no deadlocks can occur then in these operations */
+ rw_lock_x_lock(&(dict_foreign_key_check_lock));
mutex_enter(&(dict_sys->mutex));
heap = mem_heap_create(512);
@@ -1300,6 +1408,7 @@ row_create_index_for_mysql(
}
mutex_exit(&(dict_sys->mutex));
+ rw_lock_x_unlock(&(dict_foreign_key_check_lock));
que_graph_free((que_t*) que_node_get_parent(thr));
@@ -1355,6 +1464,7 @@ row_table_add_foreign_constraints(
/* Serialize data dictionary operations with dictionary mutex:
no deadlocks can occur then in these operations */
+ rw_lock_x_lock(&(dict_foreign_key_check_lock));
mutex_enter(&(dict_sys->mutex));
trx->dict_operation = TRUE;
@@ -1379,6 +1489,7 @@ row_table_add_foreign_constraints(
}
mutex_exit(&(dict_sys->mutex));
+ rw_lock_x_unlock(&(dict_foreign_key_check_lock));
return((int) err);
}
@@ -1473,7 +1584,8 @@ loop:
goto already_dropped;
}
- if (table->n_mysql_handles_opened > 0) {
+ if (table->n_mysql_handles_opened > 0
+ || table->n_foreign_key_checks_running > 0) {
return(n_tables + n_tables_dropped);
}
@@ -1722,6 +1834,9 @@ row_drop_table_for_mysql(
no deadlocks can occur then in these operations */
if (!has_dict_mutex) {
+ /* Prevent foreign key checks while we are dropping the table */
+ rw_lock_x_lock(&(dict_foreign_key_check_lock));
+
mutex_enter(&(dict_sys->mutex));
}
@@ -1734,9 +1849,6 @@ row_drop_table_for_mysql(
graph->fork_type = QUE_FORK_MYSQL_INTERFACE;
- /* Prevent foreign key checks while we are dropping the table */
- rw_lock_x_lock(&(dict_foreign_key_check_lock));
-
/* Prevent purge from running while we are dropping the table */
rw_lock_s_lock(&(purge_sys->purge_is_running));
@@ -1771,6 +1883,22 @@ row_drop_table_for_mysql(
goto funct_exit;
}
+ if (table->n_foreign_key_checks_running > 0) {
+
+ ut_print_timestamp(stderr);
+ fprintf(stderr,
+ " InnoDB: You are trying to drop table %s\n"
+ "InnoDB: though there are foreign key check running on it.\n"
+ "InnoDB: Adding the table to the background drop queue.\n",
+ table->name);
+
+ row_add_table_to_background_drop_list(table);
+
+ err = DB_SUCCESS;
+
+ goto funct_exit;
+ }
+
/* Remove any locks there are on the table or its records */
lock_reset_all_on_table(table);
@@ -1798,10 +1926,9 @@ row_drop_table_for_mysql(
funct_exit:
rw_lock_s_unlock(&(purge_sys->purge_is_running));
- rw_lock_x_unlock(&(dict_foreign_key_check_lock));
-
if (!has_dict_mutex) {
mutex_exit(&(dict_sys->mutex));
+ rw_lock_x_unlock(&(dict_foreign_key_check_lock));
}
que_graph_free(graph);
@@ -1837,6 +1964,7 @@ row_drop_database_for_mysql(
trx_start_if_not_started(trx);
loop:
+ rw_lock_x_lock(&(dict_foreign_key_check_lock));
mutex_enter(&(dict_sys->mutex));
while ((table_name = dict_get_first_table_name_in_db(name))) {
@@ -1878,6 +2006,7 @@ loop:
}
mutex_exit(&(dict_sys->mutex));
+ rw_lock_x_unlock(&(dict_foreign_key_check_lock));
trx_commit_for_mysql(trx);
@@ -2014,6 +2143,7 @@ row_rename_table_for_mysql(
/* Serialize data dictionary operations with dictionary mutex:
no deadlocks can occur then in these operations */
+ rw_lock_x_lock(&(dict_foreign_key_check_lock));
mutex_enter(&(dict_sys->mutex));
table = dict_table_get_low(old_name);
@@ -2095,6 +2225,7 @@ row_rename_table_for_mysql(
}
funct_exit:
mutex_exit(&(dict_sys->mutex));
+ rw_lock_x_unlock(&(dict_foreign_key_check_lock));
que_graph_free(graph);
diff --git a/innobase/row/row0sel.c b/innobase/row/row0sel.c
index a7462babb73..f3dced15fdf 100644
--- a/innobase/row/row0sel.c
+++ b/innobase/row/row0sel.c
@@ -2071,13 +2071,11 @@ row_sel_store_mysql_rec(
data = rec_get_nth_field(rec, templ->rec_field_no, &len);
if (rec_get_nth_field_extern_bit(rec, templ->rec_field_no)) {
+
/* Copy an externally stored field to the temporary
heap */
- if (prebuilt->trx->has_search_latch) {
- rw_lock_s_unlock(&btr_search_latch);
- prebuilt->trx->has_search_latch = FALSE;
- }
+ ut_a(!prebuilt->trx->has_search_latch);
extern_field_heap = mem_heap_create(UNIV_PAGE_SIZE);
@@ -2091,6 +2089,8 @@ row_sel_store_mysql_rec(
if (len != UNIV_SQL_NULL) {
if (templ->type == DATA_BLOB) {
+ ut_a(prebuilt->templ_contains_blob);
+
/* Copy the BLOB data to the BLOB
heap of prebuilt */
@@ -2116,8 +2116,28 @@ row_sel_store_mysql_rec(
extern_field_heap = NULL;
}
} else {
- mysql_rec[templ->mysql_null_byte_offset] |=
+ /* MySQL sometimes seems to copy the 'data'
+ pointed to by a BLOB field even if the field
+ has been marked to contain the SQL NULL value.
+ This caused seg faults reported by two users.
+ Set the BLOB length to 0 and the data pointer
+ to NULL to avoid a seg fault. */
+
+ if (templ->type == DATA_BLOB) {
+ row_sel_field_store_in_mysql_format(
+ mysql_rec + templ->mysql_col_offset,
+ templ->mysql_col_len, NULL,
+ 0, templ->type, templ->is_unsigned);
+ }
+
+ if (!templ->mysql_null_bit_mask) {
+ fprintf(stderr,
+"InnoDB: Error: trying to return an SQL NULL field in a non-null\n"
+"innoDB: column! Table name %s\n", prebuilt->table->name);
+ } else {
+ mysql_rec[templ->mysql_null_byte_offset] |=
(byte) (templ->mysql_null_bit_mask);
+ }
}
}
}
@@ -2363,6 +2383,7 @@ row_sel_push_cache_row_for_mysql(
ulint i;
ut_ad(prebuilt->n_fetch_cached < MYSQL_FETCH_CACHE_SIZE);
+ ut_a(!prebuilt->templ_contains_blob);
if (prebuilt->fetch_cache[0] == NULL) {
/* Allocate memory for the fetch cache */
@@ -2403,6 +2424,7 @@ row_sel_try_search_shortcut_for_mysql(
rec_t* rec;
ut_ad(index->type & DICT_CLUSTERED);
+ ut_ad(!prebuilt->templ_contains_blob);
btr_pcur_open_with_no_init(index, search_tuple, PAGE_CUR_GE,
BTR_SEARCH_LEAF, pcur,
@@ -2585,8 +2607,16 @@ row_search_for_mysql(
mtr_start(&mtr);
- if (match_mode == ROW_SEL_EXACT && index->type & DICT_UNIQUE
+ /* Since we must release the search system latch when we retrieve an
+ externally stored field, we cannot use the adaptive hash index in a
+ search in the case the row may be long and there may be externally
+ stored fields */
+
+ if (match_mode == ROW_SEL_EXACT
+ && index->type & DICT_UNIQUE
&& index->type & DICT_CLUSTERED
+ && !prebuilt->templ_contains_blob
+ && (prebuilt->mysql_row_len < UNIV_PAGE_SIZE / 8)
&& dtuple_get_n_fields(search_tuple)
== dict_index_get_n_unique(index)) {
@@ -2939,15 +2969,18 @@ rec_loop:
/* We found a qualifying row */
if (prebuilt->n_rows_fetched >= MYSQL_FETCH_CACHE_THRESHOLD
- && !prebuilt->templ_contains_blob
&& prebuilt->select_lock_type == LOCK_NONE
+ && !prebuilt->templ_contains_blob
&& !prebuilt->clust_index_was_generated
&& prebuilt->template_type
!= ROW_MYSQL_DUMMY_TEMPLATE) {
/* Inside an update, for example, we do not cache rows,
since we may use the cursor position to do the actual
- update, that is why we require ...lock_type == LOCK_NONE */
+ update, that is why we require ...lock_type == LOCK_NONE.
+ Since we keep space in prebuilt only for the BLOBs of
+ a single row, we cannot cache rows in the case there
+ are BLOBs in the fields to be fetched. */
row_sel_push_cache_row_for_mysql(prebuilt, rec);
diff --git a/innobase/row/row0upd.c b/innobase/row/row0upd.c
index 710f650c0bd..1d5319a182b 100644
--- a/innobase/row/row0upd.c
+++ b/innobase/row/row0upd.c
@@ -73,8 +73,7 @@ steps of query graph execution. */
/*************************************************************************
Checks if index currently is mentioned as a referenced index in a foreign
-key constraint. This function also loads into the dictionary cache the
-possible referencing table. */
+key constraint. */
static
ibool
row_upd_index_is_referenced(
@@ -85,44 +84,28 @@ row_upd_index_is_referenced(
the referencing table has been dropped when
we leave this function: this function is only
for heuristic use! */
- dict_index_t* index) /* in: index */
+ dict_index_t* index, /* in: index */
+ trx_t* trx) /* in: transaction */
{
- dict_table_t* table = index->table;
+ dict_table_t* table = index->table;
dict_foreign_t* foreign;
- ulint phase = 1;
-try_again:
if (!UT_LIST_GET_FIRST(table->referenced_list)) {
return(FALSE);
}
- if (phase == 2) {
- mutex_enter(&(dict_sys->mutex));
+ if (!trx->has_dict_foreign_key_check_lock) {
+ rw_lock_s_lock(&dict_foreign_key_check_lock);
}
- rw_lock_s_lock(&dict_foreign_key_check_lock);
-
foreign = UT_LIST_GET_FIRST(table->referenced_list);
while (foreign) {
if (foreign->referenced_index == index) {
- if (foreign->foreign_table == NULL) {
- if (phase == 2) {
- dict_table_get_low(foreign->
- foreign_table_name);
- } else {
- phase = 2;
- rw_lock_s_unlock(
- &dict_foreign_key_check_lock);
- goto try_again;
- }
- }
-
- rw_lock_s_unlock(&dict_foreign_key_check_lock);
- if (phase == 2) {
- mutex_exit(&(dict_sys->mutex));
+ if (!trx->has_dict_foreign_key_check_lock) {
+ rw_lock_s_unlock(&dict_foreign_key_check_lock);
}
return(TRUE);
@@ -131,10 +114,8 @@ try_again:
foreign = UT_LIST_GET_NEXT(referenced_list, foreign);
}
- rw_lock_s_unlock(&dict_foreign_key_check_lock);
-
- if (phase == 2) {
- mutex_exit(&(dict_sys->mutex));
+ if (!trx->has_dict_foreign_key_check_lock) {
+ rw_lock_s_unlock(&dict_foreign_key_check_lock);
}
return(FALSE);
@@ -160,8 +141,17 @@ row_upd_check_references_constraints(
dict_foreign_t* foreign;
mem_heap_t* heap;
dtuple_t* entry;
+ trx_t* trx;
rec_t* rec;
ulint err;
+ ibool got_s_lock = FALSE;
+
+ if (UT_LIST_GET_FIRST(table->referenced_list) == NULL) {
+
+ return(DB_SUCCESS);
+ }
+
+ trx = thr_get_trx(thr);
rec = btr_pcur_get_rec(pcur);
@@ -173,17 +163,61 @@ row_upd_check_references_constraints(
mtr_start(mtr);
- rw_lock_s_lock(&dict_foreign_key_check_lock);
+ if (!trx->has_dict_foreign_key_check_lock) {
+ got_s_lock = TRUE;
+ rw_lock_s_lock(&dict_foreign_key_check_lock);
+
+ trx->has_dict_foreign_key_check_lock = TRUE;
+ }
+
foreign = UT_LIST_GET_FIRST(table->referenced_list);
while (foreign) {
if (foreign->referenced_index == index) {
+ if (foreign->foreign_table == NULL) {
+ dict_table_get(foreign->foreign_table_name,
+ trx);
+ }
+ if (foreign->foreign_table) {
+ mutex_enter(&(dict_sys->mutex));
+
+ (foreign->foreign_table
+ ->n_foreign_key_checks_running)++;
+
+ mutex_exit(&(dict_sys->mutex));
+ }
+
+ /* NOTE that if the thread ends up waiting for a lock
+ we will release dict_foreign_key_check_lock
+ temporarily! But the counter on the table
+ protects 'foreign' from being dropped while the check
+ is running. */
+
err = row_ins_check_foreign_constraint(FALSE, foreign,
table, index, entry, thr);
+
+ if (foreign->foreign_table) {
+ mutex_enter(&(dict_sys->mutex));
+
+ ut_a(foreign->foreign_table
+ ->n_foreign_key_checks_running > 0);
+
+ (foreign->foreign_table
+ ->n_foreign_key_checks_running)--;
+
+ mutex_exit(&(dict_sys->mutex));
+ }
+
if (err != DB_SUCCESS) {
- rw_lock_s_unlock(&dict_foreign_key_check_lock);
+ if (got_s_lock) {
+ rw_lock_s_unlock(
+ &dict_foreign_key_check_lock);
+ trx->has_dict_foreign_key_check_lock
+ = FALSE;
+ }
+
mem_heap_free(heap);
return(err);
@@ -193,7 +227,11 @@ row_upd_check_references_constraints(
foreign = UT_LIST_GET_NEXT(referenced_list, foreign);
}
- rw_lock_s_unlock(&dict_foreign_key_check_lock);
+ if (got_s_lock) {
+ rw_lock_s_unlock(&dict_foreign_key_check_lock);
+ trx->has_dict_foreign_key_check_lock = FALSE;
+ }
+
mem_heap_free(heap);
return(DB_SUCCESS);
@@ -222,6 +260,9 @@ upd_node_create(
node->index = NULL;
node->update = NULL;
+ node->cascade_heap = NULL;
+ node->cascade_node = NULL;
+
node->select = NULL;
node->heap = mem_heap_create(128);
@@ -1027,7 +1068,7 @@ row_upd_sec_index_entry(
index = node->index;
- check_ref = row_upd_index_is_referenced(index);
+ check_ref = row_upd_index_is_referenced(index, thr_get_trx(thr));
heap = mem_heap_create(1024);
@@ -1391,7 +1432,7 @@ row_upd_clust_step(
index = dict_table_get_first_index(node->table);
- check_ref = row_upd_index_is_referenced(index);
+ check_ref = row_upd_index_is_referenced(index, thr_get_trx(thr));
pcur = node->pcur;
diff --git a/innobase/srv/srv0srv.c b/innobase/srv/srv0srv.c
index a17646a8c0f..f366ce0d160 100644
--- a/innobase/srv/srv0srv.c
+++ b/innobase/srv/srv0srv.c
@@ -2026,15 +2026,18 @@ srv_suspend_mysql_thread(
/*=====================*/
/* out: TRUE if the lock wait timeout was
exceeded */
- que_thr_t* thr) /* in: query thread associated with
- the MySQL OS thread */
+ que_thr_t* thr) /* in: query thread associated with the MySQL
+ OS thread */
{
srv_slot_t* slot;
os_event_t event;
double wait_time;
-
+ trx_t* trx;
+
ut_ad(!mutex_own(&kernel_mutex));
+ trx = thr_get_trx(thr);
+
os_event_set(srv_lock_timeout_thread_event);
mutex_enter(&kernel_mutex);
@@ -2070,10 +2073,21 @@ srv_suspend_mysql_thread(
srv_conc_force_exit_innodb(thr_get_trx(thr));
+ /* Release possible foreign key check latch */
+ if (trx->has_dict_foreign_key_check_lock) {
+
+ rw_lock_s_unlock(&dict_foreign_key_check_lock);
+ }
+
/* Wait for the release */
os_event_wait(event);
+ if (trx->has_dict_foreign_key_check_lock) {
+
+ rw_lock_s_lock(&dict_foreign_key_check_lock);
+ }
+
/* Return back inside InnoDB */
srv_conc_force_enter_innodb(thr_get_trx(thr));
diff --git a/innobase/sync/sync0sync.c b/innobase/sync/sync0sync.c
index 3f40aa166ee..144ed263db9 100644
--- a/innobase/sync/sync0sync.c
+++ b/innobase/sync/sync0sync.c
@@ -220,7 +220,7 @@ mutex_create_func(
char* cfile_name, /* in: file name where created */
ulint cline) /* in: file line where created */
{
-#ifdef _WIN32
+#if defined(_WIN32) && defined(UNIV_CAN_USE_X86_ASSEMBLER)
mutex_reset_lock_word(mutex);
#else
os_fast_mutex_init(&(mutex->os_fast_mutex));
@@ -273,7 +273,7 @@ mutex_free(
mutex_exit(&mutex_list_mutex);
-#ifndef _WIN32
+#if !defined(_WIN32) || !defined(UNIV_CAN_USE_X86_ASSEMBLER)
os_fast_mutex_free(&(mutex->os_fast_mutex));
#endif
/* If we free the mutex protecting the mutex list (freeing is
@@ -1009,7 +1009,7 @@ sync_thread_add_level(
} else if (level == SYNC_ANY_LATCH) {
ut_a(sync_thread_levels_g(array, SYNC_ANY_LATCH));
} else if (level == SYNC_TRX_SYS_HEADER) {
- ut_a(sync_thread_levels_contain(array, SYNC_KERNEL));
+ ut_a(sync_thread_levels_g(array, SYNC_TRX_SYS_HEADER));
} else if (level == SYNC_DOUBLEWRITE) {
ut_a(sync_thread_levels_g(array, SYNC_DOUBLEWRITE));
} else if (level == SYNC_BUF_BLOCK) {
diff --git a/innobase/trx/trx0sys.c b/innobase/trx/trx0sys.c
index 6c9776560bd..32a1db48488 100644
--- a/innobase/trx/trx0sys.c
+++ b/innobase/trx/trx0sys.c
@@ -438,7 +438,6 @@ trx_sys_update_mysql_binlog_offset(
trx_sysf_t* sys_header;
char namebuf[TRX_SYS_MYSQL_LOG_NAME_LEN];
- ut_ad(mutex_own(&kernel_mutex));
ut_ad(trx->mysql_log_file_name);
memset(namebuf, ' ', TRX_SYS_MYSQL_LOG_NAME_LEN - 1);
@@ -524,7 +523,7 @@ trx_sys_print_mysql_binlog_offset(void)
}
fprintf(stderr,
- "InnoDB: Last MySQL binlog file offset %lu %lu, file name %s\n",
+ "InnoDB: Last MySQL binlog file position %lu %lu, file name %s\n",
mach_read_from_4(sys_header + TRX_SYS_MYSQL_LOG_INFO
+ TRX_SYS_MYSQL_LOG_OFFSET_HIGH),
mach_read_from_4(sys_header + TRX_SYS_MYSQL_LOG_INFO
diff --git a/innobase/trx/trx0trx.c b/innobase/trx/trx0trx.c
index 607c80edd09..87b82cbee3a 100644
--- a/innobase/trx/trx0trx.c
+++ b/innobase/trx/trx0trx.c
@@ -71,6 +71,9 @@ trx_create(
trx->type = TRX_USER;
trx->conc_state = TRX_NOT_STARTED;
+ trx->check_foreigns = TRUE;
+ trx->check_unique_secondary = TRUE;
+
trx->dict_operation = FALSE;
trx->mysql_thd = NULL;
@@ -113,6 +116,7 @@ trx_create(
trx->lock_heap = mem_heap_create_in_buffer(256);
UT_LIST_INIT(trx->trx_locks);
+ trx->has_dict_foreign_key_check_lock = FALSE;
trx->has_search_latch = FALSE;
trx->search_latch_timeout = BTR_SEA_TIMEOUT;
@@ -703,8 +707,7 @@ trx_commit_off_kernel(
/*-------------------------------------*/
- /* Only in some performance tests the variable srv_flush..
- will be set to FALSE: */
+ /* Most MySQL users run with srv_flush.. set to FALSE: */
if (srv_flush_log_at_trx_commit) {
diff --git a/isam/isamchk.c b/isam/isamchk.c
index c09b1cd3324..23bded29f79 100644
--- a/isam/isamchk.c
+++ b/isam/isamchk.c
@@ -20,7 +20,7 @@
#include <m_ctype.h>
#include <stdarg.h>
-#include <getopt.h>
+#include <my_getopt.h>
#ifdef HAVE_SYS_VADVICE_H
#include <sys/vadvise.h>
#endif
@@ -94,12 +94,16 @@ typedef struct st_isam_sort_info {
N_KEYSEG *keyseg;
} ISAM_SORT_INFO;
-enum ic_options {OPT_CHARSETS_DIR_IC=256};
+enum ic_options {OPT_CHARSETS_DIR_IC=256, OPT_KEY_BUFFER_SIZE,
+ OPT_READ_BUFFER_SIZE, OPT_WRITE_BUFFER_SIZE,
+ OPT_SORT_BUFFER_SIZE, OPT_SORT_KEY_BLOCKS,
+ OPT_DECODE_BITS};
static ulong use_buffers=0,read_buffer_length=0,write_buffer_length=0,
sort_buffer_length=0,sort_key_blocks=0,crc=0,unique_count=0;
static uint testflag=0,out_flag=0,warning_printed=0,error_printed=0,
- rep_quick=0,verbose=0,opt_follow_links=1;
+ verbose=0,opt_follow_links=1;
+static my_bool rep_quick= 0;
static uint opt_sort_key=0,total_files=0,max_level=0,max_key=N_MAXKEY;
static ulong keydata=0,totaldata=0,key_blocks=0;
static ulong new_file_pos=0,record_checksum=0,key_file_blocks=0,decode_bits;
@@ -234,118 +238,118 @@ int main( int argc, char **argv)
} /* main */
-static CHANGEABLE_VAR changeable_vars[] = {
- { "key_buffer_size",(long*) &use_buffers,(long) USE_BUFFER_INIT,
- (long) MALLOC_OVERHEAD, (long) ~0L,(long) MALLOC_OVERHEAD,(long) IO_SIZE },
- { "read_buffer_size", (long*) &read_buffer_length,(long) READ_BUFFER_INIT,
- (long) MALLOC_OVERHEAD,(long) ~0L,(long) MALLOC_OVERHEAD,(long) 1L },
- { "write_buffer_size", (long*) &write_buffer_length,(long) READ_BUFFER_INIT,
- (long) MALLOC_OVERHEAD,(long) ~0L,(long) MALLOC_OVERHEAD,(long) 1L },
- { "sort_buffer_size",(long*) &sort_buffer_length,(long) SORT_BUFFER_INIT,
- (long) (MIN_SORT_BUFFER+MALLOC_OVERHEAD),(long) ~0L,
- (long) MALLOC_OVERHEAD,(long) 1L },
- { "sort_key_blocks",(long*) &sort_key_blocks,BUFFERS_WHEN_SORTING,4L,100L,0L,
- 1L },
- { "decode_bits",(long*) &decode_bits,9L,4L,17L,0L,1L },
- { NullS,(long*) 0,0L,0L,0L,0L,0L,} };
-
-
-static struct option long_options[] =
+static struct my_option my_long_options[] =
{
- {"analyze", no_argument, 0, 'a'},
- {"character-sets-dir", required_argument, 0, OPT_CHARSETS_DIR_IC},
+ {"analyze", 'a',
+ "Analyze distribution of keys. Will make some joins in MySQL faster.",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"character-sets-dir", OPT_CHARSETS_DIR_IC,
+ "Directory where character sets are", (gptr*) &charsets_dir,
+ (gptr*) &charsets_dir, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
#ifndef DBUG_OFF
- {"debug", required_argument, 0, '#'},
+ {"debug", '#', "Output debug log. Often this is 'd:t:o,filename'",
+ 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
#endif
- {"default-character-set", required_argument, 0, 'C'},
- {"description", no_argument, 0, 'd'},
- {"extend-check", no_argument, 0, 'e'},
- {"information", no_argument, 0, 'i'},
- {"force", no_argument, 0, 'f'},
- {"help", no_argument, 0, '?'},
- {"keys-used", required_argument, 0, 'k'},
- {"no-symlinks", no_argument, 0, 'l'},
- {"quick", no_argument, 0, 'q'},
- {"recover", no_argument, 0, 'r'},
- {"safe-recover", no_argument, 0, 'o'},
- {"block-search", required_argument, 0, 'b'},
- {"set-variable", required_argument, 0, 'O'},
- {"silent", no_argument, 0, 's'},
- {"sort-index", no_argument, 0, 'S'},
- {"sort-records", required_argument, 0, 'R'},
- {"unpack", no_argument, 0, 'u'},
- {"verbose", no_argument, 0, 'v'},
- {"version", no_argument, 0, 'V'},
- {"wait", no_argument, 0, 'w'},
- {0, 0, 0, 0}
+ {"default-character-set", 'C', "Set the default character set",
+ (gptr*) &default_charset, (gptr*) &default_charset, 0, GET_STR,
+ REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"description", 'd', "Prints some information about table.",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"extend-check", 'e',
+ "Check the table VERY thoroughly. One need to use this only in extreme cases, because isamchk should normally find all errors even without this switch.",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"information", 'i', "Print statistics information about the table",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"force", 'f',
+ "Overwrite old temporary files. If one uses -f when checking tables (running isamchk without -r), isamchk will automatically restart with -r on any wrong table.",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"help", '?', "Display this help and exit.", 0, 0, 0, GET_NO_ARG, NO_ARG, 0,
+ 0, 0, 0, 0, 0},
+ {"keys-used", 'k',
+ "Used with '-r'. Tell ISAM to update only the first # keys. This can be used to get faster inserts!",
+ (gptr*) &max_key, (gptr*) &max_key, 0, GET_UINT, REQUIRED_ARG, N_MAXKEY, 0,
+ 0, 0, 0, 0},
+ {"no-symlinks", 'l',
+ "Do not follow symbolic links when repairing. Normally isamchk repairs the table a symlink points at.",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"quick", 'q',
+ "Used with -r to get a faster repair. (The data file isn't touched.) One can give a second '-q' to force isamchk to modify the original datafile.",
+ (gptr*) &rep_quick, (gptr*) &rep_quick, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0,
+ 0},
+ {"recover", 'r',
+ "Can fix almost anything except unique keys that aren't unique.",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"safe-recover", 'o',
+ "Uses old recovery method; slower than '-r' but can handle a couple of cases that '-r' cannot handle.",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"set-variable", 'O',
+ "Change the value of a variable. Please note that this option is deprecated; you can set variables directly with --variable-name=value.",
+ 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"block-search", 'b', "For debugging.", (gptr*) &search_after_block,
+ (gptr*) &search_after_block, 0, GET_ULONG, REQUIRED_ARG, NI_POS_ERROR, 0,
+ 0, 0, 0, 0},
+ {"silent", 's',
+ "Only print errors. One can use two -s to make isamchk very silent.",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"sort-index", 'S',
+ "Sort index blocks. This speeds up 'read-next' in applications.",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"sort-records", 'R',
+ "Sort records according to an index. This makes your data much more localized and may speed up things (It may be VERY slow to do a sort the first time!)",
+ (gptr*) &opt_sort_key, (gptr*) &opt_sort_key, 0, GET_UINT, REQUIRED_ARG,
+ 0, 0, (N_MAXKEY - 1), 1, 0, 0},
+ {"unpack", 'u', "Unpack file packed with pack_isam.",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"verbose", 'v',
+ "Print more information. This can be used with -d and -e. Use many -v for more verbosity!",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"version", 'V', "Print version and exit.",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"wait", 'w', "Wait if table is locked.",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"key_buffer_size", OPT_KEY_BUFFER_SIZE, "", (gptr*) &use_buffers,
+ (gptr*) &use_buffers, 0, GET_ULONG, REQUIRED_ARG, (long) USE_BUFFER_INIT,
+ (long) MALLOC_OVERHEAD, (long) ~0L, (long) MALLOC_OVERHEAD, (long) IO_SIZE,
+ 0},
+ {"read_buffer_size", OPT_READ_BUFFER_SIZE, "",
+ (gptr*) &read_buffer_length, (gptr*) &read_buffer_length, 0, GET_ULONG,
+ REQUIRED_ARG, (long) READ_BUFFER_INIT, (long) MALLOC_OVERHEAD,
+ (long) ~0L, (long) MALLOC_OVERHEAD, (long) 1L, 0},
+ {"write_buffer_size", OPT_WRITE_BUFFER_SIZE, "",
+ (gptr*) &write_buffer_length, (gptr*) &write_buffer_length, 0, GET_ULONG,
+ REQUIRED_ARG, (long) READ_BUFFER_INIT, (long) MALLOC_OVERHEAD, (long) ~0L,
+ (long) MALLOC_OVERHEAD, (long) 1L, 0},
+ {"sort_buffer_size", OPT_SORT_BUFFER_SIZE, "",
+ (gptr*) &sort_buffer_length, (gptr*) &sort_buffer_length, 0, GET_ULONG,
+ REQUIRED_ARG, (long) SORT_BUFFER_INIT,
+ (long) (MIN_SORT_BUFFER + MALLOC_OVERHEAD), (long) ~0L,
+ (long) MALLOC_OVERHEAD, (long) 1L, 0},
+ {"sort_key_blocks", OPT_SORT_KEY_BLOCKS, "",
+ (gptr*) &sort_key_blocks, (gptr*) &sort_key_blocks, 0, GET_ULONG,
+ REQUIRED_ARG, BUFFERS_WHEN_SORTING, 4L, 100L, 0L, 1L, 0},
+ {"decode_bits", OPT_DECODE_BITS, "",
+ (gptr*) &decode_bits, (gptr*) &decode_bits, 0, GET_ULONG, REQUIRED_ARG,
+ 9L, 4L, 17L, 0L, 1L, 0},
+ {0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
};
static void print_version(void)
{
- printf("%s Ver 5.17 for %s at %s\n",my_progname,SYSTEM_TYPE,
+ printf("%s Ver 6.01 for %s at %s\n", my_progname, SYSTEM_TYPE,
MACHINE_TYPE);
}
static void usage(void)
{
- uint i;
print_version();
- puts("TCX Datakonsult AB, by Monty, for your professional use");
+ puts("MySQL AB, by Monty, for your professional use");
puts("This software comes with NO WARRANTY: see the PUBLIC for details.\n");
puts("Description, check and repair of ISAM tables.");
puts("Used without options all tables on the command will be checked for errors");
printf("Usage: %s [OPTIONS] tables[.ISM]\n", my_progname);
- puts("\n\
- -a, --analyze Analyze distribution of keys. Will make some joins in\n\
- MySQL faster.\n\
- -#, --debug=... Output debug log. Often this is 'd:t:o,filename`\n\
- --character-sets-dir=...\n\
- Directory where character sets are\n\
- -C, --default-character-set=...\n\
- Set the default character set\n\
- -d, --description Prints some information about table.\n\
- -e, --extend-check Check the table VERY thoroughly. One need use this\n\
- only in extreme cases as isamchk should normally find\n\
- all errors even without this switch\n\
- -f, --force Overwrite old temporary files.\n\
- If one uses -f when checking tables (running isamchk\n\
- without -r), isamchk will automatically restart with\n\
- -r on any wrong table.\n\
- -?, --help Display this help and exit.\n\
- -i, --information Print statistics information about the table\n\
- -k, --keys-used=# Used with '-r'. Tell ISAM to update only the first\n\
- # keys. This can be used to get faster inserts!\n\
- -l, --no-symlinks Do not follow symbolic links when repairing. Normally\n\
- isamchk repairs the table a symlink points at.\n\
- -q, --quick Used with -r to get a faster repair. (The data file\n\
- isn't touched.) One can give a second '-q' to force\n\
- isamchk to modify the original datafile.");
- puts("\
- -r, --recover Can fix almost anything except unique keys that aren't\n\
- unique.\n\
- -o, --safe-recover Uses old recovery method; slower than '-r' but can\n\
- handle a couple of cases that '-r' cannot handle.\n\
- -O, --set-variable var=option\n\
- Change the value of a variable.\n\
- -s, --silent Only print errors. One can use two -s to make isamchk\n\
- very silent\n\
- -S, --sort-index Sort index blocks. This speeds up 'read-next' in\n\
- applications\n\
- -R, --sort-records=#\n\
- Sort records according to an index. This makes your\n\
- data much more localized and may speed up things\n\
- (It may be VERY slow to do a sort the first time!)\n\
- -u, --unpack Unpack file packed with pack_isam.\n\
- -v, --verbose Print more information. This can be used with\n\
- -d and -e. Use many -v for more verbosity!\n\
- -V, --version Print version and exit.\n\
- -w, --wait Wait if table is locked.");
- print_defaults("my",load_default_groups);
- printf("\nPossible variables for option --set-variable (-O) are:\n");
- for (i=0; changeable_vars[i].name ; i++)
- printf("%-20s current value: %lu\n",
- changeable_vars[i].name,
- *changeable_vars[i].varptr);
+ my_print_help(my_long_options);
+ print_defaults("my", load_default_groups);
+ my_print_variables(my_long_options);
}
/* Check table */
@@ -575,112 +579,94 @@ end2:
} /* nisamchk */
+static my_bool
+get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
+ char *argument)
+
+{
+ switch(optid) {
+ case 'a':
+ testflag|= T_STATISTICS;
+ break;
+ case 's': /* silent */
+ if (testflag & T_SILENT)
+ testflag|=T_VERY_SILENT;
+ testflag|= T_SILENT;
+ testflag&= ~T_WRITE_LOOP;
+ break;
+ case 'w':
+ testflag|= T_WAIT_FOREVER;
+ break;
+ case 'd': /* description if isam-file */
+ testflag|= T_DESCRIPT;
+ break;
+ case 'e': /* extend check */
+ testflag|= T_EXTEND;
+ break;
+ case 'i':
+ testflag|= T_INFO;
+ break;
+ case 'f':
+ tmpfile_createflag= O_RDWR | O_TRUNC;
+ testflag|=T_FORCE_CREATE;
+ break;
+ case 'l':
+ opt_follow_links=0;
+ break;
+ case 'r': /* Repair table */
+ testflag= (testflag & ~T_REP) | T_REP_BY_SORT;
+ break;
+ case 'o':
+ testflag= (testflag & ~T_REP_BY_SORT) | T_REP;
+ my_disable_async_io=1; /* More safety */
+ break;
+ case 'u':
+ testflag|= T_UNPACK | T_REP_BY_SORT;
+ break;
+ case 'v': /* Verbose */
+ testflag|= T_VERBOSE;
+ verbose++;
+ break;
+ case 'R': /* Sort records */
+ testflag|= T_SORT_RECORDS;
+ if (opt_sort_key >= N_MAXKEY)
+ {
+ fprintf(stderr,
+ "The value of the sort key is bigger than max key: %d.\n",
+ N_MAXKEY);
+ exit(1);
+ }
+ break;
+ case 'S': /* Sort index */
+ testflag|= T_SORT_INDEX;
+ break;
+ case '#':
+ DBUG_PUSH(argument ? argument : "d:t:o,/tmp/isamchk.trace");
+ break;
+ case 'V':
+ print_version();
+ exit(0);
+ case '?':
+ usage();
+ exit(0);
+ }
+ return 0;
+}
+
/* Read options */
-static void get_options(register int *argc,register char ***argv)
+static void get_options(register int *argc, register char ***argv)
{
- int c,option_index=0;
+ int ho_error;
load_defaults("my",load_default_groups,argc,argv);
defaults_alloc= *argv;
- set_all_changeable_vars(changeable_vars);
if (isatty(fileno(stdout)))
testflag|=T_WRITE_LOOP;
- while ((c=getopt_long(*argc,*argv,"adeif?lqrosSuvVw#:b:k:O:R:C:",
- long_options, &option_index)) != EOF)
- {
- switch(c) {
- case 'a':
- testflag|= T_STATISTICS;
- break;
- case 'C':
- default_charset=optarg;
- break;
- case OPT_CHARSETS_DIR_IC:
- charsets_dir = optarg;
- break;
- case 'b':
- search_after_block=strtoul(optarg,NULL,10);
- break;
- case 's': /* silent */
- if (testflag & T_SILENT)
- testflag|=T_VERY_SILENT;
- testflag|= T_SILENT;
- testflag&= ~T_WRITE_LOOP;
- break;
- case 'w':
- testflag|= T_WAIT_FOREVER;
- break;
- case 'd': /* description if isam-file */
- testflag|= T_DESCRIPT;
- break;
- case 'e': /* extend check */
- testflag|= T_EXTEND;
- break;
- case 'i':
- testflag|= T_INFO;
- break;
- case 'f':
- tmpfile_createflag= O_RDWR | O_TRUNC;
- testflag|=T_FORCE_CREATE;
- break;
- case 'k':
- max_key= (uint) atoi(optarg);
- break;
- case 'l':
- opt_follow_links=0;
- break;
- case 'r': /* Repair table */
- testflag= (testflag & ~T_REP) | T_REP_BY_SORT;
- break;
- case 'o':
- testflag= (testflag & ~T_REP_BY_SORT) | T_REP;
- my_disable_async_io=1; /* More safety */
- break;
- case 'q':
- rep_quick++;
- break;
- case 'u':
- testflag|= T_UNPACK | T_REP_BY_SORT;
- break;
- case 'v': /* Verbose */
- testflag|= T_VERBOSE;
- verbose++;
- break;
- case 'O':
- if (set_changeable_var(optarg, changeable_vars))
- {
- usage();
- exit(1);
- }
- break;
- case 'R': /* Sort records */
- testflag|= T_SORT_RECORDS;
- opt_sort_key=(uint) atoi(optarg)-1;
- if (opt_sort_key >= N_MAXKEY)
- {
- fprintf(stderr,
- "The value of the sort key is bigger than max key: %d.\n",
- N_MAXKEY);
- exit(1);
- }
- break;
- case 'S': /* Sort index */
- testflag|= T_SORT_INDEX;
- break;
- case '#':
- DBUG_PUSH(optarg ? optarg : "d:t:o,/tmp/isamchk.trace");
- break;
- case 'V':
- print_version();
- exit(0);
- case '?':
- usage();
- exit(0);
- }
- }
- (*argc)-=optind;
- (*argv)+=optind;
+
+ if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option)))
+ exit(ho_error);
+
if (*argc == 0)
{
usage();
diff --git a/isam/pack_isam.c b/isam/pack_isam.c
index 6122a4e6024..0f36c3cb2aa 100644
--- a/isam/pack_isam.c
+++ b/isam/pack_isam.c
@@ -1,17 +1,20 @@
-/* Copyright (C) 1979-1999 TcX AB & Monty Program KB & Detron HB
-
- This software is distributed with NO WARRANTY OF ANY KIND. No author or
- distributor accepts any responsibility for the consequences of using it, or
- for whether it serves any particular purpose or works at all, unless he or
- she says so in writing. Refer to the Free Public License (the "License")
- for full details.
- Every copy of this file must include a copy of the License, normally in a
- plain ASCII text file named PUBLIC. The License grants you the right to
- copy, modify and redistribute this file, but only under certain conditions
- described in the License. Among other things, the License requires that
- the copyright notice and this notice be preserved on all copies. */
-
-/* Pack isam file*/
+/* Copyright (C) 1979-2002 MySQL AB
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+
+/* Pack isam file */
#ifndef USE_MY_FUNC
#define USE_MY_FUNC /* We nead at least my_malloc */
@@ -27,7 +30,7 @@
#ifndef __GNU_LIBRARY__
#define __GNU_LIBRARY__ /* Skipp warnings in getopt.h */
#endif
-#include <getopt.h>
+#include <my_getopt.h>
#if INT_MAX > 32767
#define BITS_SAVED 32
@@ -179,8 +182,9 @@ static int mrg_rrnd(MRG_INFO *info,byte *buf);
static void mrg_reset(MRG_INFO *mrg);
-static int backup=0,error_on_write=0,test_only=0,verbose=0,silent=0,
- write_loop=0,force_pack=0,opt_wait=0,isamchk_neaded=0;
+static int error_on_write=0,test_only=0,verbose=0,silent=0,
+ write_loop=0,force_pack=0,isamchk_neaded=0;
+static my_bool backup, opt_wait;
static int tmpfile_createflag=O_RDWR | O_TRUNC | O_EXCL;
static uint tree_buff_length=8196-MALLOC_OVERHEAD,force_pack_ref_length;
static char tmp_dir[FN_REFLEN]={0},*join_table;
@@ -237,26 +241,44 @@ int main(int argc, char **argv)
}
-static struct option long_options[] =
+static struct my_option my_long_options[] =
{
- {"backup", no_argument, 0, 'b'},
- {"debug", optional_argument, 0, '#'},
- {"force", no_argument, 0, 'f'},
- {"join", required_argument, 0, 'j'},
- {"help", no_argument, 0, '?'},
- {"packlength",required_argument, 0, 'p'},
- {"silent", no_argument, 0, 's'},
- {"tmpdir", required_argument, 0, 'T'},
- {"test", no_argument, 0, 't'},
- {"verbose", no_argument, 0, 'v'},
- {"version", no_argument, 0, 'V'},
- {"wait", no_argument, 0, 'w'},
- {0, 0, 0, 0}
+ {"backup", 'b', "Make a backup of the table as table_name.OLD",
+ (gptr*) &backup, (gptr*) &backup, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"debug", '#', "Output debug log. Often this is 'd:t:o,filename'",
+ 0, 0, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
+ {"force", 'f',
+ "Force packing of table even if it's gets bigger or tempfile exists.",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"join", 'j',
+ "Join all given tables into 'new_table_name'. All tables MUST have the identical layout.",
+ (gptr*) &join_table, (gptr*) &join_table, 0, GET_STR, REQUIRED_ARG, 0, 0,
+ 0, 0, 0, 0},
+ {"help", '?', "Display this help and exit.",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"packlength", 'p', "Force storage size of recordlength (1, 2 or 3)",
+ (gptr*) &force_pack_ref_length, (gptr*) &force_pack_ref_length, 0,
+ GET_UINT, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"silent", 's', "Be more silent.",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0 ,0},
+ {"tmpdir", 'T', "Use temporary directory to store temporary table",
+ (gptr*) &tmp_dir, (gptr*) &tmp_dir, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0,
+ 0, 0},
+ {"test", 't', "Don't pack table, only test packing it",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0 ,0},
+ {"verbose", 'v', "Write info about progress and packing result",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0 ,0},
+ {"version", 'V', "output version information and exit",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0 ,0},
+ {"wait", 'w', "Wait and retry if table is in use", (gptr*) &opt_wait,
+ (gptr*) &opt_wait, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
+ { 0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
};
+
static void print_version(void)
{
- printf("%s Ver 5.8 for %s on %s\n",my_progname,SYSTEM_TYPE,MACHINE_TYPE);
+ printf("%s Ver 5.10 for %s on %s\n", my_progname, SYSTEM_TYPE, MACHINE_TYPE);
}
static void usage(void)
@@ -271,92 +293,72 @@ static void usage(void)
puts("You should give the .ISM file as the filename argument");
printf("\nUsage: %s [OPTIONS] filename...\n", my_progname);
- puts("\n\
- -b, --backup Make a backup of the table as table_name.OLD\n\
- -f, --force Force packing of table even if it's gets bigger or\n\
- tempfile exists.\n\
- -j, --join='new_table_name'\n\
- Join all given tables into 'new_table_name'.\n\
- All tables MUST have the identical layout.\n\
- -p, --packlength=# Force storage size of recordlength (1,2 or 3)\n\
- -s, --silent Be more silent.\n\
- -t, --test Don't pack table, only test packing it\n\
- -v, --verbose Write info about progress and packing result\n\
- -w, --wait Wait and retry if table is in use\n\
- -T, --tmpdir=# Use temporary directory to store temporary table\n\
- -#, --debug=... output debug log. Often this is 'd:t:o,filename`\n\
- -?, --help display this help and exit\n\
- -V, --version output version information and exit\n");
- print_defaults("my",load_default_groups);
+ my_print_help(my_long_options);
+ print_defaults("my", load_default_groups);
+ my_print_variables(my_long_options);
+}
+
+
+static my_bool
+get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
+ char *argument)
+{
+ uint length;
+
+ switch(optid) {
+ case 'f':
+ force_pack= 1;
+ tmpfile_createflag= O_RDWR | O_TRUNC;
+ break;
+ case 'p':
+ if (force_pack_ref_length > 3)
+ force_pack_ref_length= 0;
+ break;
+ case 's':
+ write_loop= verbose= 0;
+ silent= 1;
+ break;
+ case 't':
+ test_only= verbose= 1;
+ break;
+ case 'T':
+ length=(uint) (strmov(tmp_dir, argument) - tmp_dir);
+ if (length != dirname_length(tmp_dir))
+ {
+ tmp_dir[length]= FN_LIBCHAR;
+ tmp_dir[length + 1]= 0;
+ }
+ break;
+ case 'v':
+ verbose= 1;
+ silent= 0;
+ break;
+ case '#':
+ DBUG_PUSH(argument ? argument : "d:t:o");
+ break;
+ case 'V': print_version(); exit(0);
+ case 'I':
+ case '?':
+ usage();
+ exit(0);
+ }
+ return 0;
}
/* reads options */
/* Initiates DEBUG - but no debugging here ! */
-static void get_options(int *argc,char ***argv)
+static void get_options(int *argc, char ***argv)
{
- int c,option_index=0;
- uint length;
+ int ho_error;
+
+ if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option)))
+ exit(ho_error);
my_progname= argv[0][0];
if (isatty(fileno(stdout)))
write_loop=1;
- while ((c=getopt_long(*argc,*argv,"bfj:p:stvwT:#::?V",long_options,
- &option_index)) != EOF)
- {
- switch(c) {
- case 'b':
- backup=1;
- break;
- case 'f':
- force_pack=1;
- tmpfile_createflag=O_RDWR | O_TRUNC;
- break;
- case 'j':
- join_table=optarg;
- break;
- case 'p':
- force_pack_ref_length=(uint) atoi(optarg);
- if (force_pack_ref_length > 3)
- force_pack_ref_length=0;
- break;
- case 's':
- write_loop=verbose=0; silent=1;
- break;
- case 't':
- test_only=verbose=1;
- break;
- case 'T':
- length=(uint) (strmov(tmp_dir,optarg)-tmp_dir);
- if (length != dirname_length(tmp_dir))
- {
- tmp_dir[length]=FN_LIBCHAR;
- tmp_dir[length+1]=0;
- }
- break;
- case 'v':
- verbose=1; silent=0;
- break;
- case 'w':
- opt_wait=1;
- break;
- case '#':
- DBUG_PUSH(optarg ? optarg : "d:t:o");
- break;
- case 'V': print_version(); exit(0);
- case 'I':
- case '?':
- usage();
- exit(0);
- default:
- fprintf(stderr,"%s: Illegal option: -%c\n",my_progname,opterr);
- usage();
- exit(1);
- }
- }
- (*argc)-=optind;
- (*argv)+=optind;
if (!*argc)
{
usage();
diff --git a/libmysql/Makefile.shared b/libmysql/Makefile.shared
index 5835fde8643..c227165d2a5 100644
--- a/libmysql/Makefile.shared
+++ b/libmysql/Makefile.shared
@@ -60,10 +60,10 @@ mysysobjects1 = my_init.lo my_static.lo my_malloc.lo my_realloc.lo \
charset.lo hash.lo mf_iocache.lo \
mf_iocache2.lo my_seek.lo \
my_pread.lo mf_cache.lo my_vsnprintf.lo md5.lo \
- my_getopt.lo
+ my_getopt.lo my_gethostbyname.lo
# Not needed in the minimum library
-mysysobjects2 = getopt.lo getopt1.lo getvar.lo my_lib.lo
+mysysobjects2 = getvar.lo my_lib.lo
mysysobjects = $(mysysobjects1) $(mysysobjects2)
target_libadd = $(mysysobjects) $(mystringsobjects) $(dbugobjects) \
$(vio_objects)
diff --git a/libmysql/libmysql.c b/libmysql/libmysql.c
index abee9014d53..e054b6777c9 100644
--- a/libmysql/libmysql.c
+++ b/libmysql/libmysql.c
@@ -90,6 +90,8 @@ static sig_handler pipe_sig_handler(int sig);
static ulong mysql_sub_escape_string(CHARSET_INFO *charset_info, char *to,
const char *from, ulong length);
+static my_bool org_my_init_done=0;
+
int STDCALL mysql_server_init(int argc __attribute__((unused)),
char **argv __attribute__((unused)),
char **groups __attribute__((unused)))
@@ -98,7 +100,11 @@ int STDCALL mysql_server_init(int argc __attribute__((unused)),
}
void STDCALL mysql_server_end()
-{}
+{
+ /* If library called my_init(), free memory allocated by it */
+ if (!org_my_init_done)
+ my_end(0);
+}
my_bool STDCALL mysql_thread_init()
{
@@ -211,8 +217,13 @@ int my_connect(my_socket s, const struct sockaddr *name, uint namelen,
{
tv.tv_sec = (long) timeout;
tv.tv_usec = 0;
+#if defined(HPUX) && defined(THREAD)
+ if ((res = select(s+1, NULL, (int*) &sfds, NULL, &tv)) >= 0)
+ break;
+#else
if ((res = select(s+1, NULL, &sfds, NULL, &tv)) >= 0)
break;
+#endif
now_time=time(NULL);
timeout-= (uint) (now_time - start_time);
if (errno != EINTR || (int) timeout <= 0)
@@ -698,7 +709,7 @@ static const char *default_options[]=
"port","socket","compress","password","pipe", "timeout", "user",
"init-command", "host", "database", "debug", "return-found-rows",
"ssl-key" ,"ssl-cert" ,"ssl-ca" ,"ssl-capath",
- "character-set-dir", "default-character-set", "interactive-timeout",
+ "character-sets-dir", "default-character-set", "interactive-timeout",
"connect-timeout", "local-infile", "disable-local-infile",
"replication-probe", "enable-reads-from-master", "repl-parse-query",
"ssl-cipher",
@@ -848,13 +859,13 @@ static void mysql_read_default_options(struct st_mysql_options *options,
options->client_flag&= CLIENT_LOCAL_FILES;
break;
case 23: /* replication probe */
- options->rpl_probe = 1;
+ options->rpl_probe= 1;
break;
case 24: /* enable-reads-from-master */
- options->rpl_parse = 1;
+ options->no_master_reads= 0;
break;
case 25: /* repl-parse-query */
- options->no_master_reads = 0;
+ options->rpl_parse= 1;
break;
default:
DBUG_PRINT("warning",("unknown option: %s",option[0]));
@@ -1354,6 +1365,7 @@ static void mysql_once_init()
if (!mysql_client_init)
{
mysql_client_init=1;
+ org_my_init_done=my_init_done;
my_init(); /* Will init threads */
init_client_errs();
if (!mysql_port)
@@ -1633,7 +1645,6 @@ mysql_real_connect(MYSQL *mysql,const char *host, const char *user,
memcpy_fixed(&sock_addr.sin_addr,&ip_addr,sizeof(ip_addr));
}
else
-#if defined(HAVE_GETHOSTBYNAME_R) && defined(_REENTRANT) && defined(THREAD)
{
int tmp_errno;
struct hostent tmp_hostent,*hp;
@@ -1644,22 +1655,12 @@ mysql_real_connect(MYSQL *mysql,const char *host, const char *user,
{
net->last_errno=CR_UNKNOWN_HOST;
sprintf(net->last_error, ER(CR_UNKNOWN_HOST), host, tmp_errno);
+ my_gethostbyname_r_free();
goto error;
}
memcpy(&sock_addr.sin_addr,hp->h_addr, (size_t) hp->h_length);
+ my_gethostbyname_r_free();
}
-#else
- {
- struct hostent *hp;
- if (!(hp=gethostbyname(host)))
- {
- net->last_errno=CR_UNKNOWN_HOST;
- sprintf(net->last_error, ER(CR_UNKNOWN_HOST), host, socket_errno);
- goto error;
- }
- memcpy(&sock_addr.sin_addr,hp->h_addr, (size_t) hp->h_length);
- }
-#endif
sock_addr.sin_port = (ushort) htons((ushort) port);
if (my_connect(sock,(struct sockaddr *) &sock_addr, sizeof(sock_addr),
mysql->options.connect_timeout) <0)
diff --git a/libmysql/manager.c b/libmysql/manager.c
index fbf0a0b2c22..330c070777c 100644
--- a/libmysql/manager.c
+++ b/libmysql/manager.c
@@ -122,7 +122,6 @@ MYSQL_MANAGER* STDCALL mysql_manager_connect(MYSQL_MANAGER* con,
memcpy_fixed(&sock_addr.sin_addr,&ip_addr,sizeof(ip_addr));
}
else
-#if defined(HAVE_GETHOSTBYNAME_R) && defined(_REENTRANT) && defined(THREAD)
{
int tmp_errno;
struct hostent tmp_hostent,*hp;
@@ -133,22 +132,12 @@ MYSQL_MANAGER* STDCALL mysql_manager_connect(MYSQL_MANAGER* con,
{
con->last_errno=tmp_errno;
sprintf(con->last_error,"Could not resolve host '%s'",host);
+ my_gethostbyname_r_free();
goto err;
}
memcpy(&sock_addr.sin_addr,hp->h_addr, (size_t) hp->h_length);
+ my_gethostbyname_r_free();
}
-#else
- {
- struct hostent *hp;
- if (!(hp=gethostbyname(host)))
- {
- con->last_errno=socket_errno;
- sprintf(con->last_error, "Could not resolve host '%s'", host);
- goto err;
- }
- memcpy(&sock_addr.sin_addr,hp->h_addr, (size_t) hp->h_length);
- }
-#endif
sock_addr.sin_port = (ushort) htons((ushort) port);
if (my_connect(sock,(struct sockaddr *) &sock_addr, sizeof(sock_addr),
0) <0)
diff --git a/libmysqld/lib_sql.cc b/libmysqld/lib_sql.cc
index 2a9a369e645..1ef84607155 100644
--- a/libmysqld/lib_sql.cc
+++ b/libmysqld/lib_sql.cc
@@ -236,7 +236,7 @@ static bool check_user(THD *thd,enum_server_command command, const char *user,
const char *passwd, const char *db, bool check_count)
{
NET *net= &thd->net;
- uint max=0;
+ USER_RESOURCES ur;
thd->db=0;
if (!(thd->user = my_strdup(user, MYF(0))))
@@ -248,22 +248,22 @@ static bool check_user(THD *thd,enum_server_command command, const char *user,
passwd, thd->scramble, &thd->priv_user,
protocol_version == 9 ||
!(thd->client_capabilities &
- CLIENT_LONG_PASSWORD),&max);
- DBUG_PRINT("general",
+ CLIENT_LONG_PASSWORD),&ur);
+ DBUG_PRINT("info",
("Capabilities: %d packet_length: %d Host: '%s' User: '%s' Using password: %s Access: %u db: '%s'",
thd->client_capabilities, thd->max_packet_length,
- thd->host ? thd->host : thd->ip, thd->priv_user,
+ thd->host_or_ip, thd->priv_user,
passwd[0] ? "yes": "no",
thd->master_access, thd->db ? thd->db : "*none*"));
if (thd->master_access & NO_ACCESS)
{
net_printf(net, ER_ACCESS_DENIED_ERROR,
thd->user,
- thd->host ? thd->host : thd->ip,
+ thd->host_or_ip,
passwd[0] ? ER(ER_YES) : ER(ER_NO));
mysql_log.write(thd,COM_CONNECT,ER(ER_ACCESS_DENIED_ERROR),
thd->user,
- thd->host ? thd->host : thd->ip ? thd->ip : "unknown ip",
+ thd->host_or_ip,
passwd[0] ? ER(ER_YES) : ER(ER_NO));
return(1); // Error already given
}
@@ -284,7 +284,7 @@ static bool check_user(THD *thd,enum_server_command command, const char *user,
(char*) "%s@%s on %s" :
(char*) "%s@%s as anonymous on %s"),
user,
- thd->host ? thd->host : thd->ip ? thd->ip : "unknown ip",
+ thd->host_or_ip,
db ? db : (char*) "");
thd->db_access=0;
if (db && db[0])
@@ -568,6 +568,9 @@ void STDCALL mysql_server_end()
if (!org_my_init_done)
my_thread_end();
#endif
+ /* If library called my_init(), free memory allocated by it */
+ if (!org_my_init_done)
+ my_end(0);
}
my_bool STDCALL mysql_thread_init()
diff --git a/libmysqld/lib_vio.c b/libmysqld/lib_vio.c
index 9bf492ed5ea..5460c546faa 100644
--- a/libmysqld/lib_vio.c
+++ b/libmysqld/lib_vio.c
@@ -61,15 +61,16 @@ struct st_vio
Vio *vio_new(my_socket sd, enum enum_vio_type type, my_bool localhost)
{
- Vio * vio = NULL;
- vio = (Vio *) my_malloc (sizeof(*vio),MYF(MY_WME|MY_ZEROFILL));
- if (vio)
+ DBUG_ENTER("vio_new");
+ Vio * vio;
+
+ if ((vio= (Vio *) my_malloc(sizeof(*vio),MYF(MY_WME|MY_ZEROFILL))))
{
init_alloc_root(&vio->root, 8192, 8192);
vio->root.min_malloc = sizeof(char *) + 4;
vio->last_packet = &vio->packets;
}
- return (vio);
+ DBUG_RETURN(vio);
}
@@ -84,19 +85,24 @@ Vio *vio_new_win32pipe(HANDLE hPipe)
void vio_delete(Vio * vio)
{
+ DBUG_ENTER("vio_delete");
if (vio)
{
- if (vio->type != VIO_CLOSED) vio_close(vio);
+ if (vio->type != VIO_CLOSED)
+ vio_close(vio);
free_root(&vio->root, MYF(0));
- my_free((gptr)vio, MYF(0));
+ my_free((gptr) vio, MYF(0));
}
+ DBUG_VOID_RETURN;
}
void vio_reset(Vio *vio)
{
+ DBUG_ENTER("vio_reset");
free_root(&vio->root, MYF(MY_KEEP_PREALLOC));
vio->packets = vio->where_in_packet = vio->end_of_packet = 0;
vio->last_packet = &vio->packets;
+ DBUG_VOID_RETURN;
}
int vio_errno(Vio *vio __attribute__((unused)))
@@ -124,6 +130,7 @@ int vio_read(Vio * vio, gptr buf, int size)
int vio_write(Vio * vio, const gptr buf, int size)
{
+ DBUG_ENTER("vio_write");
char *packet;
if (vio->reading)
{
@@ -141,7 +148,7 @@ int vio_write(Vio * vio, const gptr buf, int size)
}
else
size= -1;
- return (size);
+ DBUG_RETURN(size);
}
int vio_blocking(Vio * vio, my_bool set_blocking_mode)
diff --git a/mit-pthreads/Changes-mysql b/mit-pthreads/Changes-mysql
index ed557c1b927..da30f66fdec 100644
--- a/mit-pthreads/Changes-mysql
+++ b/mit-pthreads/Changes-mysql
@@ -1,4 +1,39 @@
-Changes done to this distrubtion (pthreads-1_60_beta6) by Monty (monty@tcx.se)
+Changes done to this distrubtion (pthreads-1_60_beta6) by Monty (monty@mysql.com)
+
+02.05.07
+- Hacked some files to get it to compile (not work) with glibc 2.2
+ This is needed so that we can do 'make dist' in the MySQL distribution
+
+02.04.26
+- removed the following files because of copyright problems
+
+machdep/i386-sco-3.2v5/__signal.h
+machdep/i386-sco-3.2v5/__stdio.h
+machdep/i386-sco-3.2v5/__stdlib.h
+machdep/i386-sco-3.2v5/__string.h
+machdep/i386-sco-3.2v5/__time.h
+machdep/i386-sco-3.2v5/__unistd.h
+machdep/i386-sco-3.2v5/compat.h
+machdep/i386-sco-3.2v5/dirent.h
+machdep/i386-sco-3.2v5/posix/__signal.h
+machdep/i386-sco-3.2v5/socket.h
+machdep/i386-sco-3.2v5/syscall.h
+machdep/i386-sco-3.2v5/timers.h
+machdep/i386-sco-3.2v5/trash.can
+machdep/sco-3.2v5/__math.h
+machdep/sco-3.2v5/__signal.h
+machdep/sco-3.2v5/__stdio.h
+machdep/sco-3.2v5/__stdlib.h
+machdep/sco-3.2v5/__string.h
+machdep/sco-3.2v5/__time.h
+machdep/sco-3.2v5/__unistd.h
+machdep/sco-3.2v5/compat.h
+machdep/sco-3.2v5/dirent.h
+machdep/sco-3.2v5/posix/__signal.h
+machdep/sco-3.2v5/socket.h
+machdep/sco-3.2v5/syscall.h
+machdep/sco-3.2v5/timers.h
+machdep/sco-3.2v5/trash.can
93.04.01
- socket() didn't return NOTOK (-1) on error.
diff --git a/mit-pthreads/GNUmakefile b/mit-pthreads/GNUmakefile
index a36f425c7a7..e3fd53b48e5 100644
--- a/mit-pthreads/GNUmakefile
+++ b/mit-pthreads/GNUmakefile
@@ -19,7 +19,7 @@ INSTALL_PATH = $(exec_prefix)
AR = ar
AS = gas
CFLAGS = -I. -Iinclude -I$(srcdir)/include -DPTHREAD_KERNEL \
- -O6 -DDBUG_OFF -Werror
+ -O3 -DDBUG_OFF -Werror
CXXFLAGS = -I. -Iinclude -I$(srcdir)/include -DPTHREAD_KERNEL \
-g -O2
LD = gld
diff --git a/mit-pthreads/include/pthread/ac-types.h b/mit-pthreads/include/pthread/ac-types.h
index 0a13d320e88..7fa4568817f 100644
--- a/mit-pthreads/include/pthread/ac-types.h
+++ b/mit-pthreads/include/pthread/ac-types.h
@@ -1,11 +1,10 @@
#ifndef pthread_size_t
-#define pthread_ipaddr_type unsigned int
+#define pthread_ipaddr_type unsigned long
#define pthread_ipport_type unsigned short
#define pthread_clock_t long
#define pthread_size_t unsigned int
#define pthread_ssize_t int
#define pthread_time_t long
-#define pthread_fpos_t long
#define pthread_off_t long
#define pthread_va_list void *
#endif
diff --git a/mit-pthreads/include/pthread/paths.h b/mit-pthreads/include/pthread/paths.h
index 8af9233a67c..bf2bf9d01a2 100644
--- a/mit-pthreads/include/pthread/paths.h
+++ b/mit-pthreads/include/pthread/paths.h
@@ -1,8 +1,8 @@
#ifndef _SYS___PATHS_H_
#define _SYS___PATHS_H_
#define _PATH_PTY "/dev/"
-#define _PATH_TZDIR "/usr/share/zoneinfo"
-#define _PATH_TZFILE "/etc/localtime"
+#define _PATH_TZDIR "/usr/lib/zoneinfo"
+#define _PATH_TZFILE "/usr/lib/zoneinfo/localtime"
#define _PATH_RESCONF "/etc/resolv.conf"
#define _PATH_HOSTS "/etc/hosts"
#define _PATH_NETWORKS "/etc/networks"
diff --git a/mit-pthreads/machdep/engine-i386-linux-2.0.h b/mit-pthreads/machdep/engine-i386-linux-2.0.h
index 721618a6f19..f4f75621226 100644
--- a/mit-pthreads/machdep/engine-i386-linux-2.0.h
+++ b/mit-pthreads/machdep/engine-i386-linux-2.0.h
@@ -4,6 +4,7 @@
* $Id$
*/
+/* Avoid problem with including bits/pthreadtypes.h with libc 2.2 */
#include <unistd.h>
#include <setjmp.h>
diff --git a/mit-pthreads/machdep/i386-sco-3.2v5/__math.h b/mit-pthreads/machdep/i386-sco-3.2v5/__math.h
deleted file mode 100755
index 4852683fcbf..00000000000
--- a/mit-pthreads/machdep/i386-sco-3.2v5/__math.h
+++ /dev/null
@@ -1,219 +0,0 @@
-/* Copyright 1994-1995 The Santa Cruz Operation, Inc. All Rights Reserved. */
-
-
-#if defined(_NO_PROTOTYPE) /* Old, crufty environment */
-#include <oldstyle/__math.h>
-#elif defined(_XOPEN_SOURCE) || defined(_XPG4_VERS) /* Xpg4 environment */
-#include <xpg4/__math.h>
-#elif defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) /* Posix environment */
-#include <posix/__math.h>
-#elif _STRICT_ANSI /* Pure Ansi/ISO environment */
-#include <ansi/__math.h>
-#elif defined(_SCO_ODS_30) /* Old, Tbird compatible environment */
-#include <ods_30_compat/__math.h>
-#else /* Normal, default environment */
-/*
- * Portions Copyright (C) 1983-1995 The Santa Cruz Operation, Inc.
- * All Rights Reserved.
- *
- * The information in this file is provided for the exclusive use of
- * the licensees of The Santa Cruz Operation, Inc. Such users have the
- * right to use, modify, and incorporate this code into other products
- * for purposes authorized by the license agreement provided they include
- * this notice and the associated copyright notice with any such product.
- * The information in this file is provided "AS IS" without warranty.
- */
-
-/* Portions Copyright (c) 1990, 1991, 1992, 1993 UNIX System Laboratories, Inc. */
-/* Portions Copyright (c) 1979 - 1990 AT&T */
-/* All Rights Reserved */
-
-/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF */
-/* UNIX System Laboratories, Inc. */
-/* The copyright notice above does not evidence any */
-/* actual or intended publication of such source code. */
-
-#ifndef ___MATH_H
-#define ___MATH_H
-
-#pragma comment(exestr, "xpg4plus @(#) math.h 20.1 94/12/04 ")
-
-#pragma pack(4)
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-extern double acos(double);
-extern double asin(double);
-extern double atan(double);
-extern double atan2(double, double);
-extern double cos(double);
-extern double sin(double);
-extern double tan(double);
-
-extern double cosh(double);
-extern double sinh(double);
-extern double tanh(double);
-
-extern double exp(double);
-extern double frexp(double, int *);
-extern double ldexp(double, int);
-extern double log(double);
-extern double log10(double);
-extern double modf(double, double *);
-
-extern double pow(double, double);
-extern double sqrt(double);
-
-extern double ceil(double);
-extern double fabs(double);
-extern double floor(double);
-extern double fmod(double, double);
-
-#ifndef HUGE_VAL
-extern const double __huge_val;
-#define HUGE_VAL (+__huge_val)
-#endif
-
-
-extern double erf(double);
-extern double erfc(double);
-extern double gamma(double);
-extern double hypot(double, double);
-extern double j0(double);
-extern double j1(double);
-extern double jn(int, double);
-extern double y0(double);
-extern double y1(double);
-extern double yn(int, double);
-extern double lgamma(double);
-extern int isnan(double);
-
-#define MAXFLOAT ((float)3.40282346638528860e+38)
-
-
-
-#define HUGE MAXFLOAT
-
-/*
- * The following are all legal as XPG4 external functions but must only
- * be declared in the non standards environments as they conflict with
- * the user name space
- */
-
-extern long double frexpl(long double, int *);
-extern long double ldexpl(long double, int);
-extern long double modfl(long double, long double *);
-
-extern float acosf(float);
-extern float asinf(float);
-extern float atanf(float);
-extern float atan2f(float, float);
-extern float cosf(float);
-extern float sinf(float);
-extern float tanf(float);
-
-extern float coshf(float);
-extern float sinhf(float);
-extern float tanhf(float);
-
-extern float expf(float);
-extern float logf(float);
-extern float log10f(float);
-
-extern float powf(float, float);
-extern float sqrtf(float);
-
-extern float ceilf(float);
-extern float fabsf(float);
-extern float floorf(float);
-extern float fmodf(float, float);
-extern float modff(float, float *);
-
-/* These are all extensions from XPG4 */
-
-extern double atof(const char *);
-extern double scalb(double, double);
-extern double logb(double);
-extern double log1p(double);
-extern double nextafter(double, double);
-extern double acosh(double);
-extern double asinh(double);
-extern double atanh(double);
-extern double cbrt(double);
-extern double copysign(double, double);
-extern double expm1(double);
-extern int ilogb(double);
-extern double remainder(double, double);
-extern double rint(double);
-extern int unordered(double, double);
-extern int finite(double);
-
-extern long double scalbl(long double, long double);
-extern long double logbl(long double);
-extern long double nextafterl(long double, long double);
-extern int unorderedl(long double, long double);
-extern int finitel(long double);
-
-
-
-
-extern int signgam;
-
-#define M_E 2.7182818284590452354
-#define M_LOG2E 1.4426950408889634074
-#define M_LOG10E 0.43429448190325182765
-#define M_LN2 0.69314718055994530942
-#define M_LN10 2.30258509299404568402
-#define M_PI 3.14159265358979323846
-#define M_PI_2 1.57079632679489661923
-#define M_PI_4 0.78539816339744830962
-#define M_1_PI 0.31830988618379067154
-#define M_2_PI 0.63661977236758134308
-#define M_2_SQRTPI 1.12837916709551257390
-#define M_SQRT2 1.41421356237309504880
-#define M_SQRT1_2 0.70710678118654752440
-
-
-
-#define _ABS(x) ((x) < 0 ? -(x) : (x))
-
-#define _REDUCE(TYPE, X, XN, C1, C2) { \
- double x1 = (double)(TYPE)X, x2 = X - x1; \
- X = x1 - (XN) * (C1); X += x2; X -= (XN) * (C2); }
-
-#define DOMAIN 1
-#define SING 2
-#define OVERFLOW 3
-#define UNDERFLOW 4
-#define TLOSS 5
-#define PLOSS 6
-
-#define _POLY1(x, c) ((c)[0] * (x) + (c)[1])
-#define _POLY2(x, c) (_POLY1((x), (c)) * (x) + (c)[2])
-#define _POLY3(x, c) (_POLY2((x), (c)) * (x) + (c)[3])
-#define _POLY4(x, c) (_POLY3((x), (c)) * (x) + (c)[4])
-#define _POLY5(x, c) (_POLY4((x), (c)) * (x) + (c)[5])
-#define _POLY6(x, c) (_POLY5((x), (c)) * (x) + (c)[6])
-#define _POLY7(x, c) (_POLY6((x), (c)) * (x) + (c)[7])
-#define _POLY8(x, c) (_POLY7((x), (c)) * (x) + (c)[8])
-#define _POLY9(x, c) (_POLY8((x), (c)) * (x) + (c)[9])
-
-
-#ifdef __cplusplus
-}
-inline int sqr(int i) {return(i*i);}
-inline double sqr(double i) {return(i*i);}
-
-#endif /* __cplusplus */
-
-#pragma pack()
-
-#if __cplusplus && !defined(PI)
-#define PI M_PI
-#endif /* __cplusplus */
-
-#endif /* _MATH_H */
-#endif
diff --git a/mit-pthreads/machdep/i386-sco-3.2v5/__signal.h b/mit-pthreads/machdep/i386-sco-3.2v5/__signal.h
deleted file mode 100755
index 6a33d37a261..00000000000
--- a/mit-pthreads/machdep/i386-sco-3.2v5/__signal.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/* Copyright 1994-1995 The Santa Cruz Operation, Inc. All Rights Reserved. */
-
-
-#if defined(_NO_PROTOTYPE) /* Old, crufty environment */
-#include <sys/oldstyle/signal.h>
-#elif defined(_XOPEN_SOURCE) || defined(_XPG4_VERS) /* Xpg4 environment */
-#include <xpg4/signal.h>
-#elif defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) /* Posix environment */
-#include <sys/posix/__signal.h>
-#elif _STRICT_ANSI /* Pure Ansi/ISO environment */
-#include <sys/ansi/signal.h>
-#elif defined(_SCO_ODS_30) /* Old, Tbird compatible environment */
-#include <sys/ods_30_compat/signal.h>
-#else /* Normal, default environment */
-/*
- * Portions Copyright (C) 1983-1995 The Santa Cruz Operation, Inc.
- * All Rights Reserved.
- *
- * The information in this file is provided for the exclusive use of
- * the licensees of The Santa Cruz Operation, Inc. Such users have the
- * right to use, modify, and incorporate this code into other products
- * for purposes authorized by the license agreement provided they include
- * this notice and the associated copyright notice with any such product.
- * The information in this file is provided "AS IS" without warranty.
- */
-
-/* Portions Copyright (c) 1990, 1991, 1992, 1993 UNIX System Laboratories, Inc. */
-/* Portions Copyright (c) 1979 - 1990 AT&T */
-/* All Rights Reserved */
-
-/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF */
-/* UNIX System Laboratories, Inc. */
-/* The copyright notice above does not evidence any */
-/* actual or intended publication of such source code. */
-
-#ifndef ___SIGNAL_H
-#define ___SIGNAL_H
-
-#pragma comment(exestr, "xpg4plus @(#) signal.h 20.3 94/12/19 ")
-
-#ifndef _SIG_ATOMIC_T
-#define _SIG_ATOMIC_T
- /* atomic entity for signal handling */
-typedef int sig_atomic_t;
-#endif
-
-extern const char * const _sys_siglist[];
-extern const int _sys_nsig;
-
-#ifndef _SYS_SIGNAL_H
-#include <sys/signal.h>
-#endif
-
-#define SignalBad ((SignalHandler)-1)
-#define SignalDefault ((SignalHandler)0)
-#define SignalIgnore ((SignalHandler)1)
-
-#define __sigmask(sig) (1 << ((sig) - 1))
-#define __SIGEMPTYSET (~SIGALL)
-#define __SIGFILLSET SIGALL
-#define __SIGADDSET(s,n) ((*s) |= (__sigmask(n)))
-#define __SIGDELSET(s,n) ((*s) &= ~(__sigmask(n)))
-#define __SIGISMEMBER(s,n) ((*s) & (__sigmask(n)))
-
-#if !defined(_SYS_TYPES_H)
-#include <sys/types.h>
-#endif
-
-
-#if __cplusplus
-extern "C" {
-#endif
-
-extern void (*signal(int, void(*)(int)))(int);
-extern int raise(int);
-
-extern void (*bsd_signal(int, void(*)(int)))(int);
-extern int ( *ssignal( int, int(*)(int) ) )(int);
-extern void ( *sigset( int, void(*)(int) ) )(int);
-extern int killpg(pid_t, int);
-#ifdef SS_ONSTACK /* Not defined on old versions of the OS */
-extern int sigaltstack(const stack_t *, stack_t *);
-extern int sigstack(struct sigstack *, struct sigstack *);
-#endif
-extern int sighold(int);
-extern int sigignore(int);
-extern int siginterrupt(int, int);
-extern int sigpause(int);
-extern int sigrelse(int);
-
-extern int (sigfillset)(sigset_t *);
-extern int (sigemptyset)(sigset_t *);
-extern int (sigaddset)(sigset_t *, int);
-extern int (sigdelset)(sigset_t *, int);
-extern int (sigismember)(const sigset_t *, int);
-extern int sigpending(sigset_t *);
-extern int sigsuspend(const sigset_t *);
-extern int sigprocmask(int, const sigset_t *, sigset_t *);
-extern int kill(pid_t, int);
-extern int sigaction(int, const struct sigaction *, struct sigaction *);
-
-#if __cplusplus
-};
-#endif
-
-
-#endif /* ___SIGNAL_H */
-
-#endif
diff --git a/mit-pthreads/machdep/i386-sco-3.2v5/__stdio.h b/mit-pthreads/machdep/i386-sco-3.2v5/__stdio.h
deleted file mode 100755
index f19672980ec..00000000000
--- a/mit-pthreads/machdep/i386-sco-3.2v5/__stdio.h
+++ /dev/null
@@ -1,113 +0,0 @@
-/* Copyright 1994-1995 The Santa Cruz Operation, Inc. All Rights Reserved. */
-
-
-#if defined(_NO_PROTOTYPE) /* Old, crufty environment */
-#include <oldstyle/__stdio.h>
-#elif defined(_XOPEN_SOURCE) || defined(_XPG4_VERS) /* Xpg4 environment */
-#include <xpg4/__stdio.h>
-#elif defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) /* Posix environment */
-#include <posix/__stdio.h>
-#elif _STRICT_ANSI /* Pure Ansi/ISO environment */
-#include <ansi/__stdio.h>
-#elif defined(_SCO_ODS_30) /* Old, Tbird compatible environment */
-#include <ods_30_compat/__stdio.h>
-#else /* Normal, default environment */
-/*
- * Portions Copyright (C) 1984-1995 The Santa Cruz Operation, Inc.
- * All Rights Reserved.
- *
- * The information in this file is provided for the exclusive use of
- * the licensees of The Santa Cruz Operation, Inc. Such users have the
- * right to use, modify, and incorporate this code into other products
- * for purposes authorized by the license agreement provided they include
- * this notice and the associated copyright notice with any such product.
- * The information in this file is provided "AS IS" without warranty.
- */
-
-/* Portions Copyright (c) 1990, 1991, 1992, 1993 UNIX System Laboratories, Inc. */
-/* Portions Copyright (c) 1979 - 1990 AT&T */
-/* All Rights Reserved */
-
-/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF */
-/* UNIX System Laboratories, Inc. */
-/* The copyright notice above does not evidence any */
-/* actual or intended publication of such source code. */
-
-#ifndef ___STDIO_H
-#define ___STDIO_H
-
-#pragma comment(exestr, "xpg4plus @(#) stdio.h 20.1 94/12/04 ")
-
-#pragma pack(4)
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef _SIZE_T
-#define _SIZE_T
-typedef unsigned int size_t;
-#endif
-
-#ifndef _FPOS_T
-#define _FPOS_T
-typedef long fpos_t;
-#endif
-
-#ifndef _WCHAR_T
-#define _WCHAR_T
-typedef long wchar_t;
-#endif
-
-#ifndef _WINT_T
-#define _WINT_T
-typedef long wint_t;
-#endif
-
-#ifndef NULL
-#define NULL 0
-#endif /* NULL */
-
-#ifndef EOF
-#define EOF (-1)
-#endif
-
-#define SEEK_SET 0
-#define SEEK_CUR 1
-#define SEEK_END 2
-
-#ifndef TMP_MAX
-#define TMP_MAX 17576 /* 26 * 26 * 26 */
-#endif
-
-#define BUFSIZ 1024 /* default buffer size */
-
-
-#define _IOEOF 0020 /* EOF reached on read */
-#define _IOERR 0040 /* I/O error from system */
-
-#define _IOREAD 0001 /* currently reading */
-#define _IOWRT 0002 /* currently writing */
-#define _IORW 0200 /* opened for reading and writing */
-#define _IOMYBUF 0010 /* stdio malloc()'d buffer */
-
-#define _SBFSIZ 8
-
-#define L_cuserid 9
-
-/* Non name space polluting version of above */
-#define _P_tmpdir "/usr/tmp/"
-
-#ifndef _VA_LIST
-#define _VA_LIST char *
-#endif
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#pragma pack()
-
-#endif /* ___STDIO_H */
-#endif
diff --git a/mit-pthreads/machdep/i386-sco-3.2v5/__stdlib.h b/mit-pthreads/machdep/i386-sco-3.2v5/__stdlib.h
deleted file mode 100755
index db6a8a56151..00000000000
--- a/mit-pthreads/machdep/i386-sco-3.2v5/__stdlib.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Copyright (C) 1984-1995 The Santa Cruz Operation, Inc.
- * All Rights Reserved.
- *
- * The information in this file is provided for the exclusive use of
- * the licensees of The Santa Cruz Operation, Inc. Such users have the
- * right to use, modify, and incorporate this code into other products
- * for purposes authorized by the license agreement provided they include
- * this notice and the associated copyright notice with any such product.
- * The information in this file is provided "AS IS" without warranty.
- */
-
-/* Portions Copyright (c) 1990, 1991, 1992, 1993 UNIX System Laboratories, Inc. */
-/* Portions Copyright (c) 1979 - 1990 AT&T */
-/* All Rights Reserved */
-
-/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF */
-/* UNIX System Laboratories, Inc. */
-/* The copyright notice above does not evidence any */
-/* actual or intended publication of such source code. */
-
-#ifndef ___STDLIB_H
-#define ___STDLIB_H
-
-#pragma comment(exestr, "posix @(#) stdlib.h 20.1 94/12/04 ")
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#pragma pack(4)
-
-#ifndef _DIV_T
-#define _DIV_T
-typedef struct
-{
- int quot;
- int rem;
-} div_t;
-#endif
-
-#ifndef _LDIV_T
-#define _LDIV_T
-typedef struct
-{
- long quot;
- long rem;
-} ldiv_t;
-#endif
-
-#ifndef _SIZE_T
-#define _SIZE_T
-typedef unsigned int size_t;
-#endif
-
-#if !defined(_SSIZE_T)
-#define _SSIZE_T
-typedef int ssize_t;
-#endif
-
-#ifndef _WCHAR_T
-#define _WCHAR_T
-typedef long wchar_t;
-#endif
-
-#ifndef NULL
-#define NULL 0
-#endif /* NULL */
-
-#define EXIT_FAILURE 1
-#define EXIT_SUCCESS 0
-#define RAND_MAX 077777
-
-
-
-extern unsigned char __ctype[];
-
-#define MB_CUR_MAX ((int)__ctype[520])
-
-extern double atof(const char *);
-extern int atoi(const char *);
-extern long atol(const char *);
-extern double strtod(const char *, char **);
-extern float strtof(const char *, char **);
-extern long strtol(const char *, char **, int);
-extern unsigned long strtoul(const char *, char **, int);
-
-extern int rand(void);
-extern void srand(unsigned int);
-
-extern void *calloc(size_t, size_t);
-extern void free(void *);
-extern void *malloc(size_t);
-extern void *realloc(void *, size_t);
-
-extern void abort(void);
-extern void exit(int);
-extern char *getenv(const char *);
-extern int system(const char *);
-
-extern void *bsearch(const void *, const void *, size_t, size_t,
- int (*)(const void *, const void *));
-extern void qsort(void *, size_t, size_t,
- int (*)(const void *, const void *));
-
-#ifdef __cplusplus
-#ifndef _ABS_INL
-#define _ABS_INL
-inline int (abs)(int i) {return (i > 0) ? i : -i;}
-#endif
-#else
-extern int (abs)(int); /* Protect from macro definitions */
-#endif
-
-extern div_t div(int, int);
-extern long labs(long);
-extern ldiv_t ldiv(long, long);
-
-extern int mbtowc(wchar_t *, const char *, size_t);
-extern int mblen(const char *, size_t);
-extern int wctomb(char *, wchar_t);
-
-extern size_t mbstowcs(wchar_t *, const char *, size_t);
-extern size_t wcstombs(char *, const wchar_t *, size_t);
-
-
-
-
-#define mblen(s, n) mbtowc((wchar_t *)0, s, n)
-
-#ifdef __cplusplus
-}
-#endif
-
-#pragma pack()
-
-#endif /* ___STDLIB_H */
diff --git a/mit-pthreads/machdep/i386-sco-3.2v5/__string.h b/mit-pthreads/machdep/i386-sco-3.2v5/__string.h
deleted file mode 100755
index e4bb93afe5a..00000000000
--- a/mit-pthreads/machdep/i386-sco-3.2v5/__string.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/* Copyright 1994-1995 The Santa Cruz Operation, Inc. All Rights Reserved. */
-
-
-#if defined(_NO_PROTOTYPE) /* Old, crufty environment */
-#include <oldstyle/string.h>
-#elif defined(_XOPEN_SOURCE) || defined(_XPG4_VERS) /* Xpg4 environment */
-#include <xpg4/string.h>
-#elif defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) /* Posix environment */
-#include <posix/string.h>
-#elif _STRICT_ANSI /* Pure Ansi/ISO environment */
-#include <ansi/string.h>
-#elif defined(_SCO_ODS_30) /* Old, Tbird compatible environment */
-#include <ods_30_compat/string.h>
-#else /* Normal, default environment */
-/*
- * Portions Copyright (C) 1983-1995 The Santa Cruz Operation, Inc.
- * All Rights Reserved.
- *
- * The information in this file is provided for the exclusive use of
- * the licensees of The Santa Cruz Operation, Inc. Such users have the
- * right to use, modify, and incorporate this code into other products
- * for purposes authorized by the license agreement provided they include
- * this notice and the associated copyright notice with any such product.
- * The information in this file is provided "AS IS" without warranty.
- */
-
-/* Portions Copyright (c) 1990, 1991, 1992, 1993 UNIX System Laboratories, Inc. */
-/* Portions Copyright (c) 1979 - 1990 AT&T */
-/* All Rights Reserved */
-
-/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF */
-/* UNIX System Laboratories, Inc. */
-/* The copyright notice above does not evidence any */
-/* actual or intended publication of such source code. */
-
-#ifndef ___STRING_H
-#define ___STRING_H
-
-#pragma comment(exestr, "xpg4plus @(#) string.h 20.1 94/12/04 ")
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef _SIZE_T
-#define _SIZE_T
-typedef unsigned int size_t;
-#endif
-
-#ifndef NULL
-#define NULL 0
-#endif /* NULL */
-
-
-
-extern void *memchr(const void *, int, size_t);
-extern void *memcpy(void *, const void *, size_t);
-extern void *memccpy(void *, const void *, int, size_t);
-extern void *memmove(void *, const void *, size_t);
-extern void *memset(void *, int, size_t);
-
-extern char *strchr(const char *, int);
-extern char *strcpy(char *, const char *);
-extern char *strncpy(char *, const char *, size_t);
-extern char *strcat(char *, const char *);
-extern char *strncat(char *, const char *, size_t);
-extern char *strpbrk(const char *, const char *);
-extern char *strrchr(const char *, int);
-extern char *strstr(const char *, const char *);
-extern char *strtok(char *, const char *);
-extern char *strtok_r(char *, const char *, char **);
-extern char *strerror(int);
-extern char *strlist(char *, const char *, ...);
-
-extern int memcmp(const void *, const void *, size_t);
-extern int strcmp(const char *, const char *);
-extern int strcoll(const char *, const char *);
-extern int strncmp(const char *, const char *, size_t);
-
-extern void perror(const char *);
-extern char *strdup(const char *);
-extern int strncoll(const char *, const char *, int);
-extern size_t strnxfrm(char *, const char *, size_t , int);
-
-extern size_t strxfrm(char *, const char *, size_t);
-extern size_t strcspn(const char *, const char *);
-extern size_t strspn(const char *, const char *);
-extern size_t strlen(const char *);
-
-#ifdef __USLC__
-#pragma int_to_unsigned strcspn
-#pragma int_to_unsigned strspn
-#pragma int_to_unsigned strlen
-#endif
-
-#if !defined(__cplusplus) && defined(__USLC__)
-/* Use intrinsic ??? */
-#ifndef strlen
-#define strlen __std_hdr_strlen
-#endif
-#ifndef strcpy
-#define strcpy __std_hdr_strcpy
-#endif
-#ifndef strncpy
-#define strncpy __std_hdr_strncpy
-#endif
-#endif
-
-
-extern int ffs(int);
-/*
- * The following two functions were withdrawn in XPG3,
- * but are provided for backwards compatibility.
- */
-extern int nl_strcmp(char *, char *);
-extern int nl_strncmp(char *, char *, int n);
-
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* ___STRING_H */
-#endif
diff --git a/mit-pthreads/machdep/i386-sco-3.2v5/__time.h b/mit-pthreads/machdep/i386-sco-3.2v5/__time.h
deleted file mode 100755
index 4aeee737601..00000000000
--- a/mit-pthreads/machdep/i386-sco-3.2v5/__time.h
+++ /dev/null
@@ -1,141 +0,0 @@
-/* Copyright 1994-1995 The Santa Cruz Operation, Inc. All Rights Reserved. */
-
-
-#if defined(_NO_PROTOTYPE) /* Old, crufty environment */
-#include <oldstyle/time.h>
-#elif defined(_XOPEN_SOURCE) || defined(_XPG4_VERS) /* Xpg4 environment */
-#include <xpg4/time.h>
-#elif defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) /* Posix environment */
-#include <posix/time.h>
-#elif _STRICT_ANSI /* Pure Ansi/ISO environment */
-#include <ansi/time.h>
-#elif defined(_SCO_ODS_30) /* Old, Tbird compatible environment */
-#include <ods_30_compat/time.h>
-#else /* Normal, default environment */
-/*
- * Portions Copyright (C) 1983-1995 The Santa Cruz Operation, Inc.
- * All Rights Reserved.
- *
- * The information in this file is provided for the exclusive use of
- * the licensees of The Santa Cruz Operation, Inc. Such users have the
- * right to use, modify, and incorporate this code into other products
- * for purposes authorized by the license agreement provided they include
- * this notice and the associated copyright notice with any such product.
- * The information in this file is provided "AS IS" without warranty.
- */
-
-/* Portions Copyright (c) 1990, 1991, 1992, 1993 UNIX System Laboratories, Inc. */
-/* Portions Copyright (c) 1979 - 1990 AT&T */
-/* All Rights Reserved */
-
-/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF */
-/* UNIX System Laboratories, Inc. */
-/* The copyright notice above does not evidence any */
-/* actual or intended publication of such source code. */
-
-#ifndef ___TIME_H
-#define ___TIME_H
-
-#pragma comment(exestr, "xpg4plus @(#) time.h 20.2 95/01/04 ")
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef NULL
-#define NULL 0
-#endif /* NULL */
-
-#ifndef _SIZE_T
-#define _SIZE_T
-typedef unsigned int size_t;
-#endif
-#ifndef _CLOCK_T
-#define _CLOCK_T
-typedef long clock_t;
-#endif
-#ifndef _TIME_T
-#define _TIME_T
-typedef long time_t;
-#endif
-
-#ifdef _POSIXTIMERS
-#include <sys/sudstime.h>
-#endif
-
-#define CLOCKS_PER_SEC 1000000 /* As required by XPG4 and friends */
-
-#pragma pack(4)
-
-#ifndef _STRUCT_TM
-#define _STRUCT_TM
-struct tm
-{
- int tm_sec;
- int tm_min;
- int tm_hour;
- int tm_mday;
- int tm_mon;
- int tm_year;
- int tm_wday;
- int tm_yday;
- int tm_isdst;
-#define LTZNMAX 50
- long tm_tzadj;
- char tm_name[LTZNMAX]; /* name of timezone */
-};
-
-#pragma pack()
-#endif /* _STRUCT_TM */
-
-
-extern clock_t clock(void);
-extern double difftime(time_t, time_t);
-extern time_t mktime(struct tm *);
-extern time_t time(time_t *);
-extern char *asctime(const struct tm *);
-extern char *ctime (const time_t *);
-extern struct tm *gmtime(const time_t *);
-extern struct tm *localtime(const time_t *);
-extern size_t strftime(char *, size_t, const char *, const struct tm *);
-
-
-extern void tzset(void);
-extern char *tzname[];
-
-#ifndef CLK_TCK
-#define CLK_TCK _sysconf(2) /* 2 is _SC_CLK_TCK */
-#endif
-
-extern long timezone;
-extern int daylight;
-extern char *strptime(const char *, const char *, struct tm *);
-
-
-
-
-#include <sys/timeb.h>
-extern int ftime ( struct timeb * );
-extern char * nl_cxtime( long *, char * );
-extern char * nl_ascxtime( struct tm *, char * );
-extern int cftime(char *, const char *, const time_t *);
-extern int ascftime(char *, const char *, const struct tm *);
-extern long altzone;
-extern struct tm *getdate(const char *);
-extern int getdate_err;
-extern char *asctime_r(const struct tm *, char *,int);
-extern char *ctime_r(const time_t *, char *,int);
-extern struct tm *localtime_r(const time_t *, struct tm *);
-extern struct tm *gmtime_r(const time_t *, struct tm *);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#ifndef difftime
-#define difftime(t1, t0) ((double)((t1) - (t0)))
-#endif
-
-#endif /* ___TIME_H */
-#endif
diff --git a/mit-pthreads/machdep/i386-sco-3.2v5/__unistd.h b/mit-pthreads/machdep/i386-sco-3.2v5/__unistd.h
deleted file mode 100755
index 408886301f5..00000000000
--- a/mit-pthreads/machdep/i386-sco-3.2v5/__unistd.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*-
- * Copyright (c) 1990 The Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * from: @(#)stdlib.h 5.13 (Berkeley) 6/4/91
- * __unistd.h,v 1.1 1995/01/03 12:54:54 proven Exp
- */
-
-#ifndef ___UNISTD_H_
-#define ___UNISTD_H_
-
-#include <sys/types.h>
-#include <stddef.h>
-
-#ifndef MAXPATHLEN
-#define MAXPATHLEN 1024
-#endif
-
-#endif
-
diff --git a/mit-pthreads/machdep/i386-sco-3.2v5/compat.h b/mit-pthreads/machdep/i386-sco-3.2v5/compat.h
deleted file mode 100755
index 3befbffa68d..00000000000
--- a/mit-pthreads/machdep/i386-sco-3.2v5/compat.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/* ==== compat.h ============================================================
- * Copyright (c) 1994 by Chris Provenzano, proven@mit.edu
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by Chris Provenzano.
- * 4. The name of Chris Provenzano may not be used to endorse or promote
- * products derived from this software without specific prior written
- * permission.
- *
- * THIS SOFTWARE IS PROVIDED BY CHRIS PROVENZANO ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL CHRIS PROVENZANO BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * compat.h,v 1.52 1995/10/20 09:32:56 proven Exp
- *
- * Description : Basic timers header.
- *
- * 1.00 94/06/13 proven
- * -Started coding this file.
- */
-
-#ifndef _SYS_COMPAT_H_
-#define _SYS_COMPAT_H_
-
-#include <sys/types.h>
-
-#define omsghdr msghdr
-#endif
diff --git a/mit-pthreads/machdep/i386-sco-3.2v5/dirent.h b/mit-pthreads/machdep/i386-sco-3.2v5/dirent.h
deleted file mode 100755
index 6f6804590bb..00000000000
--- a/mit-pthreads/machdep/i386-sco-3.2v5/dirent.h
+++ /dev/null
@@ -1,145 +0,0 @@
-/* Copyright 1994-1995 The Santa Cruz Operation, Inc. All Rights Reserved. */
-
-
-#if defined(_NO_PROTOTYPE) /* Old, crufty environment */
-#include <oldstyle/dirent.h>
-#elif defined(_XOPEN_SOURCE) || defined(_XPG4_VERS) /* Xpg4 environment */
-#include <xpg4/dirent.h>
-#elif defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) /* Posix environment */
-#include <posix/dirent.h>
-#elif defined(_SCO_ODS_30) /* Old, Tbird compatible environment */
-#include <ods_30_compat/dirent.h>
-#else /* Normal, default environment */
-/*
- * Portions Copyright (C) 1983-1995 The Santa Cruz Operation, Inc.
- * All Rights Reserved.
- *
- * The information in this file is provided for the exclusive use of
- * the licensees of The Santa Cruz Operation, Inc. Such users have the
- * right to use, modify, and incorporate this code into other products
- * for purposes authorized by the license agreement provided they include
- * this notice and the associated copyright notice with any such product.
- * The information in this file is provided "AS IS" without warranty.
- */
-
-/* Portions Copyright (c) 1990, 1991, 1992, 1993 UNIX System Laboratories, Inc. */
-/* Portions Copyright (c) 1979 - 1990 AT&T */
-/* All Rights Reserved */
-
-/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF */
-/* UNIX System Laboratories, Inc. */
-/* The copyright notice above does not evidence any */
-/* actual or intended publication of such source code. */
-
-#ifndef _DIRENT_H
-#define _DIRENT_H
-
-#pragma comment(exestr, "xpg4plus @(#) dirent.h 20.1 94/12/04 ")
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#pragma pack(4)
-
-#define MAXNAMLEN 512 /* maximum filename length */
-#ifndef MAXPATHLEN
-#define MAXPATHLEN 1024
-#endif
-#undef DIRBLKSIZ
-#define DIRBLKSIZ 1048 /* buffer size for fs-indep. dirs */
-
-#ifndef _SYS_TYPES_H
-#include <sys/types.h>
-#endif
-
-#ifndef _SYS_DIRENT_H
-#define _SYS_DIRENT_H
-#ifdef __STDC__
-#pragma comment(exestr, "@(#) dirent.h 25.8 94/09/22 ")
-#else
-#ident "@(#) dirent.h 25.8 94/09/22 "
-#endif
-/*
- * Copyright (C) 1988-1994 The Santa Cruz Operation, Inc.
- * All Rights Reserved.
- * The information in this file is provided for the exclusive use of
- * the licensees of The Santa Cruz Operation, Inc. Such users have the
- * right to use, modify, and incorporate this code into other products
- * for purposes authorized by the license agreement provided they include
- * this notice and the associated copyright notice with any such product.
- * The information in this file is provided "AS IS" without warranty.
- */
-/* Copyright (c) 1984, 1986, 1987, 1988 AT&T */
-/* All Rights Reserved */
-
-/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T */
-/* The copyright notice above does not evidence any */
-/* actual or intended publication of such source code. */
-
-/* #ident "@)#(head.sys:dirent.h 1.3" */
-
-/*
- * The following structure defines the file
- * system independent directory entry.
- *
- */
-
-#include <sys/types.h>
-
-#ifdef _M_I386
-#pragma pack(4)
-#else
-#pragma pack(2)
-#endif
-
-#ifdef _INKERNEL
-/*
- * dirent used by the kernel
- */
-struct dirent {
- ino32_t d_ino; /* inode number of entry */
- off_t d_off; /* offset of disk directory entry */
- unsigned short d_reclen; /* length of this record */
- char d_name[MAXNAMLEN+1]; /* name of file */
-};
-
-#else /* !_INKERNEL */
-/*
- * dirent as used by application code
- * For now leave the declaration as is. When the new development system
- * is implemented, ino_t may be ushort or ulong. If ino_t is ulong, there
- * will be no d_pad field.
- */
-struct dirent /* data from readdir() */
- {
-#if defined(_IBCS2)
- long d_ino;
-#else /* !_IBCS2 */
- ino_t d_ino; /* inode number of entry */
-#if defined(_INO_16_T)
- short d_pad; /* because ino_t is ushort */
-#endif /* defined(_INO_16_T) */
-#endif /* defined(_IBCS2) */
- off_t d_off; /* offset of disk directory entry */
- unsigned short d_reclen; /* length of this record */
- char d_name[MAXNAMLEN+1]; /* name of file */
- };
-#endif /* _INKERNEL */
-
-typedef struct dirent dirent_t;
-
-#pragma pack()
-#endif /* _SYS_DIRENT_H */
-
-#define d_fileno d_ino
-#define d_namlen d_reclen
-
-#ifdef __cplusplus
-}
-#endif
-
-#pragma pack()
-
-#endif /* _DIRENT_H */
-#endif
diff --git a/mit-pthreads/machdep/i386-sco-3.2v5/posix/__signal.h b/mit-pthreads/machdep/i386-sco-3.2v5/posix/__signal.h
deleted file mode 100755
index 5680fc1491a..00000000000
--- a/mit-pthreads/machdep/i386-sco-3.2v5/posix/__signal.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Portions Copyright (C) 1983-1995 The Santa Cruz Operation, Inc.
- * All Rights Reserved.
- *
- * The information in this file is provided for the exclusive use of
- * the licensees of The Santa Cruz Operation, Inc. Such users have the
- * right to use, modify, and incorporate this code into other products
- * for purposes authorized by the license agreement provided they include
- * this notice and the associated copyright notice with any such product.
- * The information in this file is provided "AS IS" without warranty.
- */
-
-/* Portions Copyright (c) 1990, 1991, 1992, 1993 UNIX System Laboratories, Inc. */
-/* Portions Copyright (c) 1979 - 1990 AT&T */
-/* All Rights Reserved */
-
-/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF */
-/* UNIX System Laboratories, Inc. */
-/* The copyright notice above does not evidence any */
-/* actual or intended publication of such source code. */
-
-#ifndef ___SIGNAL_H
-#define ___SIGNAL_H
-
-#pragma comment(exestr, "posix @(#) signal.h 20.3 94/12/19 ")
-
-#ifndef _SIG_ATOMIC_T
-#define _SIG_ATOMIC_T
- /* atomic entity for signal handling */
-typedef int sig_atomic_t;
-#endif
-
-
-#ifndef _SYS_SIGNAL_H
-#include <sys/signal.h>
-#endif
-
-#if !defined(_SYS_TYPES_H)
-#include <sys/types.h>
-#endif
-
-
-#if __cplusplus
-extern "C" {
-#endif
-
-extern void (*signal(int, void(*)(int)))(int);
-extern int raise(int);
-
-
-
-extern int (sigfillset)(sigset_t *);
-extern int (sigemptyset)(sigset_t *);
-extern int (sigaddset)(sigset_t *, int);
-extern int (sigdelset)(sigset_t *, int);
-extern int (sigismember)(const sigset_t *, int);
-extern int sigpending(sigset_t *);
-extern int sigsuspend(const sigset_t *);
-extern int sigprocmask(int, const sigset_t *, sigset_t *);
-extern int kill(pid_t, int);
-extern int sigaction(int, const struct sigaction *, struct sigaction *);
-
-#if __cplusplus
-};
-#endif
-
-
-#endif /* ___SIGNAL_H */
-
diff --git a/mit-pthreads/machdep/i386-sco-3.2v5/socket.h b/mit-pthreads/machdep/i386-sco-3.2v5/socket.h
deleted file mode 100755
index 4a53c7176f9..00000000000
--- a/mit-pthreads/machdep/i386-sco-3.2v5/socket.h
+++ /dev/null
@@ -1,490 +0,0 @@
-/* @(#)socket.h 6.23 7/18/94 - STREAMware TCP/IP source */
-/*
- * Copyrighted as an unpublished work.
- * (c) Copyright 1987-1994 Legent Corporation
- * All rights reserved.
- *
- * RESTRICTED RIGHTS
- *
- * These programs are supplied under a license. They may be used,
- * disclosed, and/or copied only as permitted under such license
- * agreement. Any copy must contain the above copyright notice and
- * this restricted rights notice. Use, copying, and/or disclosure
- * of the programs is strictly prohibited unless otherwise provided
- * in the license agreement.
- *
- */
-/* SCCS IDENTIFICATION */
-/*
- * Copyright (c) 1985 Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by the University of California, Berkeley. The name of the
- * University may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- */
-
-#ifndef __sys_socket_h
-#define __sys_socket_h
-
-#if !defined(FD_SETSIZE)
-/* Pick up select stuff from standard system include */
-#include <sys/types.h>
-#endif
-
-/* socket.h 6.1 83/07/29 */
-
-/*
- * Definitions related to sockets: types, address families, options.
- */
-
-/*
- * Types
- */
-#define SOCK_STREAM 1 /* stream socket */
-#define SOCK_DGRAM 2 /* datagram socket */
-#define SOCK_RAW 3 /* raw-protocol interface */
-#define SOCK_RDM 4 /* reliably-delivered message */
-#define SOCK_SEQPACKET 5 /* sequenced packet stream */
-
-/*
- * Option flags per-socket.
- */
-#define SO_DEBUG 0x0001 /* turn on debugging info recording */
-#define SO_ACCEPTCONN 0x0002 /* socket has had listen() */
-#define SO_REUSEADDR 0x0004 /* allow local address reuse */
-#define SO_KEEPALIVE 0x0008 /* keep connections alive */
-#define SO_DONTROUTE 0x0010 /* just use interface addresses */
-#define SO_BROADCAST 0x0020 /* permit sending of broadcast msgs */
-#define SO_USELOOPBACK 0x0040 /* bypass hardware when possible */
-#define SO_LINGER 0x0080 /* linger on close if data present */
-#define SO_OOBINLINE 0x0100 /* leave received OOB data in line */
-#define SO_ORDREL 0x0200 /* give use orderly release */
-#define SO_IMASOCKET 0x0400 /* use socket semantics (affects bind) */
-#define SO_MGMT 0x0800 /* => it is used for mgmt. purposes */
-#define SO_REUSEPORT 0x1000 /* allow local port reuse */
-
-/*
- * Additional options, not kept in so_options.
- */
-#define SO_SNDBUF 0x1001 /* send buffer size */
-#define SO_RCVBUF 0x1002 /* receive buffer size */
-#define SO_SNDLOWAT 0x1003 /* send low-water mark */
-#define SO_RCVLOWAT 0x1004 /* receive low-water mark */
-#define SO_SNDTIMEO 0x1005 /* send timeout */
-#define SO_RCVTIMEO 0x1006 /* receive timeout */
-#define SO_ERROR 0x1007 /* get error status and clear */
-#define SO_TYPE 0x1008 /* get socket type */
-#define SO_PROTOTYPE 0x1009 /* get/set protocol type */
-
-/*
- * Structure used for manipulating linger option.
- */
-struct linger {
- int l_onoff; /* option on/off */
- int l_linger; /* linger time */
-};
-
-/*
- * Level number for (get/set)sockopt() to apply to socket itself.
- */
-#define SOL_SOCKET 0xffff /* options for socket level */
-
-/*
- * An option specification consists of an opthdr, followed by the value of
- * the option. An options buffer contains one or more options. The len
- * field of opthdr specifies the length of the option value in bytes. This
- * length must be a multiple of sizeof(long) (use OPTLEN macro).
- */
-
-struct opthdr {
- long level; /* protocol level affected */
- long name; /* option to modify */
- long len; /* length of option value */
-};
-
-#define OPTLEN(x) ((((x) + sizeof(long) - 1) / sizeof(long)) * sizeof(long))
-#define OPTVAL(opt) ((char *)(opt + 1))
-
-#if defined(INKERNEL) || defined(_KERNEL) || defined(_INKERNEL)
-/*
- * the optdefault structure is used for internal tables of option default
- * values.
- */
-struct optdefault {
- int optname;/* the option */
- char *val; /* ptr to default value */
- int len; /* length of value */
-};
-
-/*
- * the opproc structure is used to build tables of options processing
- * functions for in_dooptions().
- */
-struct opproc {
- int level; /* options level this function handles */
- int (*func) (); /* the function */
-};
-#endif
-
-/*
- * Address families.
- */
-#define AF_UNSPEC 0 /* unspecified */
-#define AF_UNIX 1 /* local to host (pipes, portals) */
-#define AF_INET 2 /* internetwork: UDP, TCP, etc. */
-#define AF_IMPLINK 3 /* arpanet imp addresses */
-#define AF_PUP 4 /* pup protocols: e.g. BSP */
-#define AF_CHAOS 5 /* mit CHAOS protocols */
-#define AF_NS 6 /* XEROX NS protocols */
-#define AF_ISO 7 /* ISO protocols */
-#define AF_OSI AF_ISO
-#define AF_ECMA 8 /* european computer manufacturers */
-#define AF_DATAKIT 9 /* datakit protocols */
-#define AF_CCITT 10 /* CCITT protocols, X.25 etc */
-#define AF_SNA 11 /* IBM SNA */
-#define AF_DECnet 12 /* DECnet */
-#define AF_DLI 13 /* Direct data link interface */
-#define AF_LAT 14 /* LAT */
-#define AF_HYLINK 15 /* NSC Hyperchannel */
-#define AF_APPLETALK 16 /* Apple Talk */
-#define AF_ROUTE 17 /* Internal Routing Protocol */
-#define AF_LINK 18 /* Link layer interface */
-#define pseudo_AF_XTP 19 /* eXpress Transfer Protocol (no AF) */
-
-#define AF_MAX 20
-
-/*
- * Structure used by kernel to store most addresses.
- */
-struct sockaddr {
- u_short sa_family; /* address family */
- char sa_data[14]; /* up to 14 bytes of direct address */
-};
-
-/*
- * Structure used by kernel to pass protocol information in raw sockets.
- */
-struct sockproto {
- unsigned short sp_family; /* address family */
- unsigned short sp_protocol; /* protocol */
-};
-
-/*
- * Protocol families, same as address families for now.
- */
-#define PF_UNSPEC AF_UNSPEC
-#define PF_UNIX AF_UNIX
-#define PF_INET AF_INET
-#define PF_IMPLINK AF_IMPLINK
-#define PF_PUP AF_PUP
-#define PF_CHAOS AF_CHAOS
-#define PF_NS AF_NS
-#define PF_NBS AF_NBS
-#define PF_ECMA AF_ECMA
-#define PF_DATAKIT AF_DATAKIT
-#define PF_CCITT AF_CCITT
-#define PF_SNA AF_SNA
-#define PF_DECnet AF_DECnet
-#define PF_DLI AF_DLI
-#define PF_LAT AF_LAT
-#define PF_HYLINK AF_HYLINK
-#define PF_APPLETALK AF_APPLETALK
-#define PF_ROUTE AF_ROUTE
-#define PF_LINK AF_LINK
-#define PF_XTP pseudo_AF_XTP /* really just proto family, no AF */
-
-#define PF_MAX AF_MAX
-
-/*
- * Maximum queue length specifiable by listen.
- */
-#define SOMAXCONN 5
-
-/*
- * Message header for recvmsg and sendmsg calls.
- * Used value-result for recmvsg, value only for sendmsg.
- */
-struct msghdr {
- caddr_t msg_name; /* optional address */
- u_int msg_namelen; /* size of address */
- struct iovec *msg_iov; /* scatter/gather array */
- u_int msg_iovlen; /* # elements msg_iov */
- caddr_t msg_control; /* ancillary data, see below */
- u_int msg_controllen; /* ancillary data buffer len */
- int msg_flags; /* flags on received message */
-};
-#define msg_accrights msg_control
-#define msg_accrightslen msg_controllen
-
-#define MSG_OOB 0x1 /* process out-of-band data */
-#define MSG_PEEK 0x2 /* peek at incoming message */
-#define MSG_DONTROUTE 0x4 /* send without using routing tables */
-#define MSG_EOR 0x8 /* data completes record */ /*notused*/
-#define MSG_TRUNC 0x10 /* data discarded before delivery */
-#define MSG_CTRUNC 0x20 /* control data lost before delivery */
-#define MSG_WAITALL 0x40 /* wait for full request or error */ /*notused*/
-
-#define MSG_MAXIOVLEN 16
-
-/*
- * Header for ancillary data objects in msg_control buffer.
- * Used for additional information with/about a datagram
- * not expressible by flags. The format is a sequence
- * of message elements headed by cmsghdr structures.
- * In STREAMware, we shuffle the fields around a little from what
- * they were in net-2, so that they line up the same as an opthdr
- * which simplifies our socket implementation amazingly.
- *
- * Unfortunately, the opthdrs don't include their own length, which the
- * cmsghdrs do. What this means is that TLI programmers will not be
- * able to take something returned using these macros and immediately give
- * it back to the stack. The size of the struct cmsghdr will have to be
- * subtracted out.
- * There doesn't seem to be a way to avoid this, since several applications
- * look into the cmsg_len field and won't work if it doesn't include the size
- * of the struct cmsghdr.
- */
-struct cmsghdr {
- int cmsg_level; /* originating protocol */
- int cmsg_type; /* protocol-specific type */
- u_int cmsg_len; /* data byte count, including hdr */
-/* followed by u_char cmsg_data[]; */
-};
-
-/* given pointer to struct adatahdr, return pointer to data */
-#define CMSG_DATA(cmsg) ((u_char *)((cmsg) + 1))
-
-/* given pointer to struct adatahdr, return pointer to next adatahdr */
-#define CMSG_NXTHDR(mhdr, cmsg) \
- (((caddr_t)(cmsg) + (cmsg)->cmsg_len + sizeof(struct cmsghdr) > \
- (mhdr)->msg_control + (mhdr)->msg_controllen) ? \
- (struct cmsghdr *)NULL : \
- (struct cmsghdr *)((caddr_t)(cmsg) + OPTLEN((cmsg)->cmsg_len)))
-
-#define CMSG_FIRSTHDR(mhdr) ((struct cmsghdr *)(mhdr)->msg_control)
-
-/* "Socket"-level control message types: */
-#define SCM_RIGHTS 0x01 /* access rights (array of int) */
-
-/*
- * This ioctl code uses BSD style ioctls to avoid copyin/out problems.
- * Ioctls have the command encoded in the lower word, and the size of any in
- * or out parameters in the upper word. The high 2 bits of the upper word
- * are used to encode the in/out status of the parameter; for now we restrict
- * parameters to at most 128 bytes.
- */
-#define IOCPARM_MASK 0x7f /* parameters must be < 128 bytes */
-#define IOC_VOID 0x20000000 /* no parameters */
-#define IOC_OUT 0x40000000 /* copy out parameters */
-#define IOC_IN 0x80000000 /* copy in parameters */
-#define IOC_INOUT (IOC_IN|IOC_OUT)
-/* the 0x20000000 is so we can distinguish new ioctls from old */
-#define _IOS(x,y) (IOC_VOID|(x<<8)|y)
-#define _IOSR(x,y,t) (IOC_OUT|((sizeof(t)&IOCPARM_MASK)<<16)|(x<<8)|y)
-#define _IOSW(x,y,t) (IOC_IN|((sizeof(t)&IOCPARM_MASK)<<16)|(x<<8)|y)
-/* this should be _IOSRW, but stdio got there first */
-#define _IOSWR(x,y,t) (IOC_INOUT|((sizeof(t)&IOCPARM_MASK)<<16)|(x<<8)|y)
-
-/*
- * Socket ioctl commands
- */
-
-#define SIOCSHIWAT _IOSW('S', 1, int) /* set high watermark */
-#define SIOCGHIWAT _IOSR('S', 2, int) /* get high watermark */
-#define SIOCSLOWAT _IOSW('S', 3, int) /* set low watermark */
-#define SIOCGLOWAT _IOSR('S', 4, int) /* get low watermark */
-#define SIOCATMARK _IOSR('S', 5, int) /* at oob mark? */
-#define SIOCSPGRP _IOSW('S', 6, int) /* set process group */
-#define SIOCGPGRP _IOSR('S', 7, int) /* get process group */
-#define FIONREAD _IOSR('S', 8, int) /* BSD compatibilty */
-#define FIONBIO _IOSW('S', 9, int) /* BSD compatibilty */
-#define FIOASYNC _IOSW('S', 10, int) /* BSD compatibilty */
-#define SIOCPROTO _IOSW('S', 11, struct socknewproto) /* link proto */
-#define SIOCGETNAME _IOSR('S', 12, struct sockaddr) /* getsockname */
-#define SIOCGETPEER _IOSR('S', 13, struct sockaddr) /* getpeername */
-#define IF_UNITSEL _IOSW('S', 14, int) /* set unit number */
-#define SIOCXPROTO _IOS('S', 15) /* empty proto table */
-#define SIOCSHRDTYPE _IOSW('S', 16, int) /* set hardware type */
-
-#define SIOCADDRT _IOSW('R', 9, struct ortentry) /* add route */
-#define SIOCDELRT _IOSW('R', 10, struct ortentry) /* delete route */
-
-#define SIOCSIFADDR _IOSW('I', 11, struct ifreq) /* set ifnet address */
-#define SIOCGIFADDR _IOSWR('I', 12, struct ifreq) /* get ifnet address */
-#define SIOCSIFDSTADDR _IOSW('I', 13, struct ifreq) /* set p-p address */
-#define SIOCGIFDSTADDR _IOSWR('I', 14, struct ifreq) /* get p-p address */
-#define SIOCSIFFLAGS _IOSW('I', 15, struct ifreq) /* set ifnet flags */
-#define SIOCGIFFLAGS _IOSWR('I', 16, struct ifreq) /* get ifnet flags */
-#define SIOCGIFCONF _IOSWR('I', 17, struct ifconf) /* get ifnet list */
-
-#define SIOCSIFMTU _IOSW('I', 21, struct ifreq) /* get if_mtu */
-#define SIOCGIFMTU _IOSWR('I', 22, struct ifreq) /* set if_mtu */
-
-
-#define SIOCGIFBRDADDR _IOSWR('I', 32, struct ifreq) /* get broadcast addr */
-#define SIOCSIFBRDADDR _IOSW('I', 33, struct ifreq) /* set broadcast addr */
-#define SIOCGIFNETMASK _IOSWR('I', 34, struct ifreq) /* get net addr mask */
-#define SIOCSIFNETMASK _IOSW('I', 35, struct ifreq) /* set net addr mask */
-#define SIOCGIFMETRIC _IOSWR('I', 36, struct ifreq) /* get IF metric */
-#define SIOCSIFMETRIC _IOSW('I', 37, struct ifreq) /* set IF metric */
-
-#define SIOCSARP _IOSW('I', 38, struct arpreq) /* set arp entry */
-#define SIOCGARP _IOSWR('I', 39, struct arpreq) /* get arp entry */
-#define SIOCDARP _IOSW('I', 40, struct arpreq) /* delete arp entry */
-
-#define SIOCSIFNAME _IOSW('I', 41, struct ifreq) /* set interface name */
-#define SIOCGIFONEP _IOSWR('I', 42, struct ifreq) /* get one-packet params */
-#define SIOCSIFONEP _IOSW('I', 43, struct ifreq) /* set one-packet params */
-#define SIOCDIFADDR _IOSW('I', 44, struct ifreq) /* delete IF addr */
-#define SIOCAIFADDR _IOSW('I', 45, struct ifaliasreq) /*add/change IF alias*/
-#define SIOCADDMULTI _IOSW('I', 49, struct ifreq) /* add m'cast addr */
-#define SIOCDELMULTI _IOSW('I', 50, struct ifreq) /* del m'cast addr */
-#define SIOCGIFALIAS _IOSWR('I', 51, struct ifaliasreq) /* get IF alias */
-
-
-#define SIOCSOCKSYS _IOSW('I', 66, struct socksysreq) /* Pseudo socket syscall */
-
-/* these use ifr_metric to pass the information */
-#define SIOCSIFDEBUG _IOSW('I', 67, struct ifreq) /* set if debug level */
-#define SIOCGIFDEBUG _IOSWR('I', 68, struct ifreq) /* get if debug level */
-
-#define SIOCSIFTYPE _IOSW('I', 69, struct ifreq) /* set if MIB type */
-#define SIOCGIFTYPE _IOSWR('I', 70, struct ifreq) /* get if MIB type */
-
-#define SIOCGIFNUM _IOSR('I', 71, int) /* get number of ifs */
-/*
- * This returns the number of ifreqs that SIOCGIFCONF would return, including
- * aliases. This is the preferred way of sizing a buffer big enough to hold
- * all interfaces.
- */
-#define SIOCGIFANUM _IOSR('I', 72, int) /* get number of ifreqs */
-/*
- * Interface specific performance tuning
- */
-#define SIOCGIFPERF _IOSR('I', 73, struct ifreq) /* get perf info */
-#define SIOCSIFPERF _IOSR('I', 74, struct ifreq) /* get perf info */
-
-/*
- * This structure is used to encode pseudo system calls
- */
-struct socksysreq {
- /* When porting, make this the widest thing it can be */
- int args[7];
-};
-
-/*
- * This structure is used for adding new protocols to the list supported by
- * sockets.
- */
-struct socknewproto {
- int family; /* address family (AF_INET, etc.) */
- int type; /* protocol type (SOCK_STREAM, etc.) */
- int proto; /* per family proto number */
- dev_t dev; /* major/minor to use (must be a clone) */
- int flags; /* protosw flags */
-};
-
-/*
- * utility definitions.
- */
-
-#ifdef MIN
-#undef MIN
-#endif
-#define MIN(x,y) ((x) < (y) ? (x) : (y))
-#ifndef MAX
-#define MAX(x,y) ((x) > (y) ? (x) : (y))
-#endif
-
-#define MAXHOSTNAMELEN 256
-
-#define NBBY 8 /* number of bits in a byte */
-
-
-/* defines for user/kernel interface */
-
-#define MAX_MINOR (makedev(1,0) - 1) /* could be non-portable */
-
-#define SOCKETSYS 140 /* SCO 3.2v5 */
-
-#define SO_ACCEPT 1
-#define SO_BIND 2
-#define SO_CONNECT 3
-#define SO_GETPEERNAME 4
-#define SO_GETSOCKNAME 5
-#define SO_GETSOCKOPT 6
-#define SO_LISTEN 7
-#define SO_RECV 8
-#define SO_RECVFROM 9
-#define SO_SEND 10
-#define SO_SENDTO 11
-#define SO_SETSOCKOPT 12
-#define SO_SHUTDOWN 13
-#define SO_SOCKET 14
-#define SO_SELECT 15
-#define SO_GETIPDOMAIN 16
-#define SO_SETIPDOMAIN 17
-#define SO_ADJTIME 18
-#define SO_SETREUID 19
-#define SO_SETREGID 20
-#define SO_GETTIME 21
-#define SO_SETTIME 22
-#define SO_GETITIMER 23
-#define SO_SETITIMER 24
-#define SO_RECVMSG 25
-#define SO_SENDMSG 26
-#define SO_SOCKPAIR 27
-
-/*
- * message flags
- */
-#define M_BCAST 0x80000000
-
-/* Definitions and structures used for extracting */
-/* the size and/or the contents of kernel tables */
-
-/* Copyin/out values */
-#define GIARG 0x1
-#define CONTI 0x2
-#define GITAB 0x4
-
-struct gi_arg {
- caddr_t gi_where;
- unsigned gi_size;
-};
-
-#if !defined(_KERNEL) && !defined(INKERNEL) && !defined(_INKERNEL)
-
-#include <sys/cdefs.h>
-
-__BEGIN_DECLS
-int accept __P_((int, struct sockaddr *, int *));
-int bind __P_((int, const struct sockaddr *, int));
-int connect __P_((int, const struct sockaddr *, int));
-int getpeername __P_((int, struct sockaddr *, int *));
-int getsockname __P_((int, struct sockaddr *, int *));
-int getsockopt __P_((int, int, int, void *, int *));
-int setsockopt __P_((int, int, int, const void *, int));
-int listen __P_((int, int));
-ssize_t recv __P_((int, void *, size_t, int));
-ssize_t recvfrom __P_((int, void *, size_t, int, struct sockaddr *, int *));
-int recvmsg __P_((int, struct msghdr *, int));
-ssize_t send __P_((int, const void *, size_t, int));
-int sendmsg __P_((int, const struct msghdr *, int));
-ssize_t sendto __P_((int, const void *, size_t, int, const struct sockaddr *, int));
-int shutdown __P_((int, int));
-int socket __P_((int, int, int));
-int socketpair __P_((int, int, int, int[2]));
-__END_DECLS
-
-#endif /* !INKERNEL */
-#endif /* __sys_socket_h */
diff --git a/mit-pthreads/machdep/i386-sco-3.2v5/syscall.h b/mit-pthreads/machdep/i386-sco-3.2v5/syscall.h
deleted file mode 100755
index f49fba81b6e..00000000000
--- a/mit-pthreads/machdep/i386-sco-3.2v5/syscall.h
+++ /dev/null
@@ -1,175 +0,0 @@
-/* Copyright 1994-1995 The Santa Cruz Operation, Inc. All Rights Reserved. */
-
-
-#if defined(_NO_PROTOTYPE) /* Old, crufty environment */
-#include <oldstyle/syscall.h>
-#elif defined(_SCO_ODS_30) /* Old, Tbird compatible environment */
-#include <ods_30_compat/syscall.h>
-#else /* Normal, default environment */
-/*
-/ Portions Copyright (C) 1983-1995 The Santa Cruz Operation, Inc.
- * All Rights Reserved.
- *
- * The information in this file is provided for the exclusive use of
- * the licensees of The Santa Cruz Operation, Inc. Such users have the
- * right to use, modify, and incorporate this code into other products
- * for purposes authorized by the license agreement provided they include
- * this notice and the associated copyright notice with any such product.
- * The information in this file is provided "AS IS" without warranty.
- */
-
-/* Portions Copyright (c) 1990, 1991, 1992, 1993 UNIX System Laboratories, Inc. */
-/* Portions Copyright (c) 1979 - 1990 AT&T */
-
-#ident "xpg4plus @(#) sys.i386 20.1 94/12/04 "
-/* #ident "xpg4plus @(#)head:sys.i386 1.2" */
-
-/*
-/* Definitions of Kernel Entry Call Gates
-*/
-
-#ifndef _SYSCALL_H_
-#define _SYSCALL_H_
-
-/*#define SYSCALL $0x7,$0*/
-/*#define SIGCALL $0xF,$0*/
-
-/*
-/* Definitions of System Call Entry Point Numbers
-*/
-
-#define SYS_access 33
-#define SYS_acct 51
-#define SYS_advfs 70
-#define SYS_alarm 27
-#define SYS_break 17
-#define SYS_brk 17
-#define SYS_chdir 12
-#define SYS_chmod 15
-#define SYS_chown 16
-#define SYS_chroot 61
-#define SYS_close 6
-#define SYS_creat 8
-#define SYS_dup 41
-#define SYS_exec 11
-#define SYS_execve 59
-#define SYS_exit 1
-#define SYS_fcntl 62
-#define SYS_fork 2
-#define SYS_fstat 28
-#define SYS_fstatfs 38
-#define SYS_fxstat 125
-#define SYS_getdents 81
-#define SYS_getgid 47
-#define SYS_getmsg 85
-#define SYS_getpid 20
-#define SYS_gettimeofday 171
-#define SYS_getuid 24
-#define SYS_gtty 32
-#define SYS_ioctl 54
-#define SYS_kill 37
-#define SYS_link 9
-#define SYS_lock 45
-#define SYS_lseek 19
-#define SYS_lstat 91
-#define SYS_lxstat 124
-#define SYS_mkdir 80
-#define SYS_mknod 14
-#define SYS_mount 21
-#define SYS_msgsys 49
-#define SYS_nice 34
-#define SYS_open 5
-#define SYS_pause 29
-#define SYS_pipe 42
-#define SYS_plock 45
-#define SYS_poll 87
-#define SYS_prof 44
-#define SYS_ptrace 26
-#define SYS_putmsg 86
-#define SYS_rdebug 76
-#define SYS_read 3
-#define SYS_readlink 92
-#define SYS_readv 121
-#define SYS_rfstart 74
-#define SYS_rfstop 77
-#define SYS_rfsys 78
-#define SYS_rmdir 79
-#define SYS_rmount 72
-#define SYS_rumount 73
-#define SYS_seek 19
-#define SYS_semsys 53
-#define SYS_setgid 46
-#define SYS_setpgrp 39
-#define SYS_settimeofday 172
-#define SYS_setuid 23
-#define SYS_shmsys 52
-#define SYS_signal 48
-#define SYS_stat 18
-#define SYS_statfs 35
-#define SYS_stime 25
-#define SYS_stty 31
-#define SYS_symlink 90
-#define SYS_sync 36
-#define SYS_sys3b 50
-#define SYS_sysi86 50
-#define SYS_sysacct 51
-#define SYS_sysfs 84
-#define SYS_time 13
-#define SYS_times 43
-#define SYS_uadmin 55
-#define SYS_ulimit 63
-#define SYS_umask 60
-#define SYS_umount 22
-#define SYS_unadvfs 71
-#define SYS_unlink 10
-#define SYS_utime 30
-#define SYS_utssys 57
-#define SYS_wait 7
-#define SYS_write 4
-#define SYS_writev 122
-#define SYS_xstat 123
-#define SYS_ftruncate 192
-
-/* cxenix numbers are created by the formula
- * (table index << 8) + CXENIX
- */
-
-#define CXENIX 0x28 /* Decimal 40 */
-
-#define XLOCKING 0x0128
-#define CREATSEM 0x0228
-#define OPENSEM 0x0328
-#define SIGSEM 0x0428
-#define WAITSEM 0x0528
-#define NBWAITSEM 0x0628
-#define RDCHK 0x0728
-#define CHSIZE 0x0a28
-#define SYS_ftime 0x0b28
-#define NAP 0x0c28
-#define SDGET 0x0d28
-#define SDFREE 0x0e28
-#define SDENTER 0x0f28
-#define SDLEAVE 0x1028
-#define SDGETV 0x1128
-#define SDWAITV 0x1228
-#define PROCTL 0x2028
-#define EXECSEG 0x2128
-#define UNEXECSEG 0x2228
-#define SYS_select 0x2428
-#define SYS_eaccess 0x2528
-#define SYS_paccess 0x2628
-#define SYS_sigaction 0x2728
-#define SYS_sigprocmask 0x2828
-#define SYS_sigpending 0x2928
-#define SYS_sigsuspend 0x2a28
-#define SYS_getgroups 0x2b28
-#define SYS_setgroups 0x2c28
-#define SYS_sysconf 0x2d28
-#define SYS_pathconf 0x2e28
-#define SYS_fpathconf 0x2f28
-#define SYS_rename 0x3028
-#define SYS_setitimer 0x3828
-
-#define CLOCAL 127
-#endif
-#endif
diff --git a/mit-pthreads/machdep/i386-sco-3.2v5/timers.h b/mit-pthreads/machdep/i386-sco-3.2v5/timers.h
deleted file mode 100755
index cbc48ccc8d8..00000000000
--- a/mit-pthreads/machdep/i386-sco-3.2v5/timers.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/* ==== timers.h ============================================================
- * Copyright (c) 1994 by Chris Provenzano, proven@mit.edu
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by Chris Provenzano.
- * 4. The name of Chris Provenzano may not be used to endorse or promote
- * products derived from this software without specific prior written
- * permission.
- *
- * THIS SOFTWARE IS PROVIDED BY CHRIS PROVENZANO ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL CHRIS PROVENZANO BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * timers.h,v 1.50.8.1 1996/03/05 08:28:36 proven Exp
- *
- * Description : Basic timers header.
- *
- * 1.00 94/06/13 proven
- * -Started coding this file.
- */
-
-#ifndef _SYS_TIMERS_H_
-#define _SYS_TIMERS_H_
-
-#include <sys/types.h>
-#include <time.h>
-
-struct timespec {
- long tv_sec;
- long tv_nsec;
-};
-
-#define TIMEVAL_TO_TIMESPEC(tv, ts) { \
- (ts)->tv_sec = (tv)->tv_sec; \
- (ts)->tv_nsec = (tv)->tv_usec * 1000; \
-}
-#define TIMESPEC_TO_TIMEVAL(tv, ts) { \
- (tv)->tv_sec = (ts)->tv_sec; \
- (tv)->tv_usec = (ts)->tv_nsec / 1000; \
-}
-
-/*
- * New functions
- */
-
-__BEGIN_DECLS
-
-__END_DECLS
-
-#endif
diff --git a/mit-pthreads/machdep/i386-sco-3.2v5/trash.can b/mit-pthreads/machdep/i386-sco-3.2v5/trash.can
deleted file mode 100755
index 33edf65aab6..00000000000
--- a/mit-pthreads/machdep/i386-sco-3.2v5/trash.can
+++ /dev/null
@@ -1 +0,0 @@
-make: *** No targets specified and no makefile found. Stop.
diff --git a/mit-pthreads/machdep/linux-2.0/__signal.h b/mit-pthreads/machdep/linux-2.0/__signal.h
index 4cd671f155c..81136b8c14d 100755
--- a/mit-pthreads/machdep/linux-2.0/__signal.h
+++ b/mit-pthreads/machdep/linux-2.0/__signal.h
@@ -1,24 +1,86 @@
#include <features.h>
-#include <linux/signal.h>
+
+#define SIGHUP 1
+#define SIGINT 2
+#define SIGQUIT 3
+#define SIGILL 4
+#define SIGTRAP 5
+#define SIGABRT 6
+#define SIGIOT 6
+#define SIGBUS 7
+#define SIGFPE 8
+#define SIGKILL 9
+#define SIGUSR1 10
+#define SIGSEGV 11
+#define SIGUSR2 12
+#define SIGPIPE 13
+#define SIGALRM 14
+#define SIGTERM 15
+#define SIGSTKFLT 16
+#define SIGCHLD 17
+#define SIGCONT 18
+#define SIGSTOP 19
+#define SIGTSTP 20
+#define SIGTTIN 21
+#define SIGTTOU 22
+#define SIGURG 23
+#define SIGXCPU 24
+#define SIGXFSZ 25
+#define SIGVTALRM 26
+#define SIGPROF 27
+#define SIGWINCH 28
+#define SIGIO 29
+#define SIGPOLL SIGIO
+/*
+#define SIGLOST 29
+*/
+#define SIGPWR 30
+#define SIGSYS 31
+#define SIGUNUSED 31
+
+#define _NSIG 64 /* Biggest signal number + 1
+ (including real-time signals). */
+# define NSIG _NSIG
+
+/* These should not be considered constants from userland. */
+#define SIGRTMIN 32
+#define SIGRTMAX (_NSIG-1)
#ifndef SIGCLD
#define SIGCLD SIGCHLD
#endif
-typedef int sig_atomic_t;
-typedef __sighandler_t SignalHandler;
+/* Type of a signal handler. */
+typedef void (*__sighandler_t)(int);
+
+#define SIG_DFL ((__sighandler_t)0) /* default signal handling */
+#define SIG_IGN ((__sighandler_t)1) /* ignore signal */
+#define SIG_ERR ((__sighandler_t)-1) /* error return from signal */
-#define SignalBad ((SignalHandler)-1)
+typedef int sig_atomic_t;
+
+#define SignalBad ((SignalHandler)-1)
#define SignalDefault ((SignalHandler)0)
#define SignalIgnore ((SignalHandler)1)
-#define __sigmask(sig) (1 << ((sig) - 1))
-#define sigmask __sigmask
+#include "bits/sigset.h"
+
+#define __SIGFILLSET {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}
+#define __SIGEMPTYSET { 0,0,0,0,0,0,0,0 }
+#define __SIGADDSET(s,n) __sigaddset((s),(n))
+#define __SIGDELSET(s,n) __sigdelset((s),(n))
+#define __SIGISMEMBER(s,n) __sigismember((s),(n))
+
-#define __SIGFILLSET 0xffffffff
-#define __SIGEMPTYSET 0
-#define __SIGADDSET(s,n) ((*s) |= (__sigmask(n)))
-#define __SIGDELSET(s,n) ((*s) &= ~(__sigmask(n)))
-#define __SIGISMEMBER(s,n) ((*s) & (__sigmask(n)))
+struct sigaction {
+ __sighandler_t sa_handler;
+ unsigned long sa_flags;
+ void (*sa_restorer)(void);
+ sigset_t sa_mask; /* mask last for extensibility */
+};
+/* Values for the HOW argument to `sigprocmask'. */
+#define SIG_BLOCK 0 /* Block signals. */
+#define SIG_UNBLOCK 1 /* Unblock signals. */
+#define SIG_SETMASK 2 /* Set the set of blocked signals. */
diff --git a/mit-pthreads/machdep/linux-2.0/__stdio.h b/mit-pthreads/machdep/linux-2.0/__stdio.h
index eb7e904c34d..38deb337038 100755
--- a/mit-pthreads/machdep/linux-2.0/__stdio.h
+++ b/mit-pthreads/machdep/linux-2.0/__stdio.h
@@ -4,4 +4,9 @@
typedef pthread_size_t size_t;
#endif
+/* Hack for configuration with libgcc 2.2 */
+#ifndef pthread_fpos_t
+#define pthread_fpos_t long
+#endif
+
typedef pthread_fpos_t fpos_t;
diff --git a/mit-pthreads/machdep/linux-2.0/extra/bits/pthreadtypes.h b/mit-pthreads/machdep/linux-2.0/extra/bits/pthreadtypes.h
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/mit-pthreads/machdep/linux-2.0/extra/bits/pthreadtypes.h
diff --git a/mit-pthreads/machdep/linux-2.0/extra/bits/socket.h b/mit-pthreads/machdep/linux-2.0/extra/bits/socket.h
index cc4c0fd262e..1814e189b64 100755
--- a/mit-pthreads/machdep/linux-2.0/extra/bits/socket.h
+++ b/mit-pthreads/machdep/linux-2.0/extra/bits/socket.h
@@ -1,11 +1,11 @@
-/* ==== socket.h.h ============================================================
+/* ==== socket.h ============================================================
* Copyright (c) 1994 by Chris Provenzano, proven@athena.mit.edu
*
* Description : Correct Linux header file.
*/
-#ifndef _PTHREAD_SOCKET_H_
-#define _PTHREAD_SOCKET_H_
+#ifndef _PTHREAD_BITS_SOCKET_H_
+#define _PTHREAD_BITS_SOCKET_H_
/* #include <linux/socket.h> */
#ifndef _LINUX_SOCKET_H
@@ -26,6 +26,15 @@
#endif
+/* Fixes to be able to configure with glibc 2.2 */
+typedef unsigned short int sa_family_t;
+#define __SOCKADDR_COMMON(sa_prefix) \
+ sa_family_t sa_prefix##family
+#define __SOCKADDR_COMMON_SIZE (sizeof (unsigned short int))
+
+/* Type for length arguments in socket calls. */
+typedef unsigned int socklen_t;
+
/* #include <asm/socket.h> arch-dependent defines */
#include <linux/sockios.h> /* the SIOCxxx I/O controls */
#include <pthread/posix.h>
@@ -156,28 +165,28 @@ struct msghdr
__BEGIN_DECLS
-int accept __P_((int, struct sockaddr *, int *));
-int bind __P_((int, const struct sockaddr *, int));
-int connect __P_((int, const struct sockaddr *, int));
+int accept __P_((int, struct sockaddr *, socklen_t *));
+int bind __P_((int, const struct sockaddr *, socklen_t));
+int connect __P_((int, const struct sockaddr *, socklen_t));
int listen __P_((int, int));
int socket __P_((int, int, int));
int getsockopt __P_((int __s, int __level, int __optname,
- void *__optval, int *__optlen));
+ void *__optval, socklen_t *__optlen));
int setsockopt __P_((int __s, int __level, int __optname,
- __const void *__optval, int optlen));
+ __const void *__optval, socklen_t optlen));
int getsockname __P_((int __sockfd, struct sockaddr *__addr,
- int *__paddrlen));
+ socklen_t *__paddrlen));
int getpeername __P_((int __sockfd, struct sockaddr *__peer,
- int *__paddrlen));
+ socklen_t *__paddrlen));
ssize_t send __P_((int __sockfd, __const void *__buff, size_t __len, int __flags));
ssize_t recv __P_((int __sockfd, void *__buff, size_t __len, int __flags));
ssize_t sendto __P_((int __sockfd, __const void *__buff, size_t __len,
int __flags, __const struct sockaddr *__to,
- int __tolen));
+ socklen_t __tolen));
ssize_t recvfrom __P_((int __sockfd, void *__buff, size_t __len,
int __flags, struct sockaddr *__from,
- int *__fromlen));
+ socklen_t *__fromlen));
extern ssize_t sendmsg __P_((int __fd, __const struct msghdr *__message,
int __flags));
extern ssize_t recvmsg __P_((int __fd, struct msghdr *__message,
@@ -187,7 +196,3 @@ int shutdown __P_((int __sockfd, int __how));
__END_DECLS
#endif
-
-
-
-
diff --git a/mit-pthreads/machdep/linux-2.0/socket.h b/mit-pthreads/machdep/linux-2.0/socket.h
index fb43c394e10..2a8a04f1903 100755
--- a/mit-pthreads/machdep/linux-2.0/socket.h
+++ b/mit-pthreads/machdep/linux-2.0/socket.h
@@ -1,4 +1,4 @@
-/* ==== socket.h.h ============================================================
+/* ==== socket.h ============================================================
* Copyright (c) 1994 by Chris Provenzano, proven@athena.mit.edu
*
* Description : Correct Linux header file.
@@ -7,190 +7,7 @@
#ifndef _PTHREAD_SOCKET_H_
#define _PTHREAD_SOCKET_H_
-/* #include <linux/socket.h> */
-#ifndef _LINUX_SOCKET_H
-#define _LINUX_SOCKET_H
+#include "bits/socket.h"
-/* IP options */
-#define IP_TOS 1
-#define IPTOS_LOWDELAY 0x10
-#define IPTOS_THROUGHPUT 0x08
-#define IPTOS_RELIABILITY 0x04
-#define IP_TTL 2
-#ifndef IP_HDRINCL
-#define IP_HDRINCL 3
#endif
-#ifdef V1_3_WILL_DO_THIS_FUNKY_STUFF
-#define IP_OPTIONS 4
-#endif
-
-#endif
-
-/* Type for length arguments in socket calls. */
-typedef unsigned int socklen_t;
-
-/* #include <asm/socket.h> arch-dependent defines */
-#include <linux/sockios.h> /* the SIOCxxx I/O controls */
-#include <pthread/posix.h>
-
-struct sockaddr {
- unsigned short sa_family; /* address family, AF_xxx */
- char sa_data[14]; /* 14 bytes of protocol address */
-};
-
-struct linger {
- int l_onoff; /* Linger active */
- int l_linger; /* How long to linger for */
-};
-
-struct msghdr
-{
- void * msg_name; /* Socket name */
- int msg_namelen; /* Length of name */
- struct iovec * msg_iov; /* Data blocks */
- int msg_iovlen; /* Number of blocks */
- void * msg_accrights; /* Per protocol magic (eg BSD file descriptor passing) */
- int msg_accrightslen;/* Length of rights list */
-};
-
-/* Socket types. */
-#define SOCK_STREAM 1 /* stream (connection) socket */
-#define SOCK_DGRAM 2 /* datagram (conn.less) socket */
-#define SOCK_RAW 3 /* raw socket */
-#define SOCK_RDM 4 /* reliably-delivered message */
-#define SOCK_SEQPACKET 5 /* sequential packet socket */
-#define SOCK_PACKET 10 /* linux specific way of */
- /* getting packets at the dev */
- /* level. For writing rarp and */
- /* other similar things on the */
- /* user level. */
-
-/* Supported address families. */
-#define AF_UNSPEC 0
-#define AF_UNIX 1 /* Unix domain sockets */
-#define AF_INET 2 /* Internet IP Protocol */
-#define AF_AX25 3 /* Amateur Radio AX.25 */
-#define AF_IPX 4 /* Novell IPX */
-#define AF_APPLETALK 5 /* Appletalk DDP */
-#define AF_NETROM 6 /* Amateur radio NetROM */
-#define AF_BRIDGE 7 /* Multiprotocol bridge */
-#define AF_AAL5 8 /* Reserved for Werner's ATM */
-#define AF_X25 9 /* Reserved for X.25 project */
-#define AF_INET6 10 /* IP version 6 */
-#define AF_MAX 12 /* For now.. */
-
-/* Protocol families, same as address families. */
-#define PF_UNSPEC AF_UNSPEC
-#define PF_UNIX AF_UNIX
-#define PF_INET AF_INET
-#define PF_AX25 AF_AX25
-#define PF_IPX AF_IPX
-#define PF_APPLETALK AF_APPLETALK
-#define PF_NETROM AF_NETROM
-#define PF_BRIDGE AF_BRIDGE
-#define PF_AAL5 AF_AAL5
-#define PF_X25 AF_X25
-#define PF_INET6 AF_INET6
-
-#define PF_MAX AF_MAX
-
-/* Maximum queue length specificable by listen. */
-#define SOMAXCONN 128
-
-/* Flags we can use with send/ and recv. */
-#define MSG_OOB 1
-#define MSG_PEEK 2
-#define MSG_DONTROUTE 4
-
-/* Setsockoptions(2) level. Thanks to BSD these must match IPPROTO_xxx */
-#define SOL_SOCKET 1
-#define SOL_IP 0
-#define SOL_IPX 256
-#define SOL_AX25 257
-#define SOL_ATALK 258
-#define SOL_NETROM 259
-#define SOL_TCP 6
-#define SOL_UDP 17
-
-/* For setsockoptions(2) */
-#define SO_DEBUG 1
-#define SO_REUSEADDR 2
-#define SO_TYPE 3
-#define SO_ERROR 4
-#define SO_DONTROUTE 5
-#define SO_BROADCAST 6
-#define SO_SNDBUF 7
-#define SO_RCVBUF 8
-#define SO_KEEPALIVE 9
-#define SO_OOBINLINE 10
-#define SO_NO_CHECK 11
-#define SO_PRIORITY 12
-#define SO_LINGER 13
-/* To add :#define SO_REUSEPORT 14 */
-
-
-#define IP_MULTICAST_IF 32
-#define IP_MULTICAST_TTL 33
-#define IP_MULTICAST_LOOP 34
-#define IP_ADD_MEMBERSHIP 35
-#define IP_DROP_MEMBERSHIP 36
-
-
-/* These need to appear somewhere around here */
-#define IP_DEFAULT_MULTICAST_TTL 1
-#define IP_DEFAULT_MULTICAST_LOOP 1
-#define IP_MAX_MEMBERSHIPS 20
-
-/* IPX options */
-#define IPX_TYPE 1
-
-/* TCP options - this way around because someone left a set in the c library includes */
-#define TCP_NODELAY 1
-#define TCP_MAXSEG 2
-
-/* The various priorities. */
-#define SOPRI_INTERACTIVE 0
-#define SOPRI_NORMAL 1
-#define SOPRI_BACKGROUND 2
-
-/*
- * Functions
- */
-
-__BEGIN_DECLS
-
-int accept __P_((int, struct sockaddr *, socklen_t *));
-int bind __P_((int, const struct sockaddr *, socklen_t));
-int connect __P_((int, const struct sockaddr *, socklen_t));
-int listen __P_((int, int));
-int socket __P_((int, int, int));
-
-int getsockopt __P_((int __s, int __level, int __optname,
- void *__optval, socklen_t *__optlen));
-int setsockopt __P_((int __s, int __level, int __optname,
- __const void *__optval, socklen_t optlen));
-int getsockname __P_((int __sockfd, struct sockaddr *__addr,
- socklen_t *__paddrlen));
-int getpeername __P_((int __sockfd, struct sockaddr *__peer,
- socklen_t *__paddrlen));
-ssize_t send __P_((int __sockfd, __const void *__buff, size_t __len, int __flags));
-ssize_t recv __P_((int __sockfd, void *__buff, size_t __len, int __flags));
-ssize_t sendto __P_((int __sockfd, __const void *__buff, size_t __len,
- int __flags, __const struct sockaddr *__to,
- socklen_t __tolen));
-ssize_t recvfrom __P_((int __sockfd, void *__buff, size_t __len,
- int __flags, struct sockaddr *__from,
- socklen_t *__fromlen));
-extern ssize_t sendmsg __P_((int __fd, __const struct msghdr *__message,
- int __flags));
-extern ssize_t recvmsg __P_((int __fd, struct msghdr *__message,
- int __flags));
-int shutdown __P_((int __sockfd, int __how));
-
-__END_DECLS
-
-#endif
-
-
-
diff --git a/mit-pthreads/machdep/sco-3.2v5/__math.h b/mit-pthreads/machdep/sco-3.2v5/__math.h
deleted file mode 100755
index 4852683fcbf..00000000000
--- a/mit-pthreads/machdep/sco-3.2v5/__math.h
+++ /dev/null
@@ -1,219 +0,0 @@
-/* Copyright 1994-1995 The Santa Cruz Operation, Inc. All Rights Reserved. */
-
-
-#if defined(_NO_PROTOTYPE) /* Old, crufty environment */
-#include <oldstyle/__math.h>
-#elif defined(_XOPEN_SOURCE) || defined(_XPG4_VERS) /* Xpg4 environment */
-#include <xpg4/__math.h>
-#elif defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) /* Posix environment */
-#include <posix/__math.h>
-#elif _STRICT_ANSI /* Pure Ansi/ISO environment */
-#include <ansi/__math.h>
-#elif defined(_SCO_ODS_30) /* Old, Tbird compatible environment */
-#include <ods_30_compat/__math.h>
-#else /* Normal, default environment */
-/*
- * Portions Copyright (C) 1983-1995 The Santa Cruz Operation, Inc.
- * All Rights Reserved.
- *
- * The information in this file is provided for the exclusive use of
- * the licensees of The Santa Cruz Operation, Inc. Such users have the
- * right to use, modify, and incorporate this code into other products
- * for purposes authorized by the license agreement provided they include
- * this notice and the associated copyright notice with any such product.
- * The information in this file is provided "AS IS" without warranty.
- */
-
-/* Portions Copyright (c) 1990, 1991, 1992, 1993 UNIX System Laboratories, Inc. */
-/* Portions Copyright (c) 1979 - 1990 AT&T */
-/* All Rights Reserved */
-
-/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF */
-/* UNIX System Laboratories, Inc. */
-/* The copyright notice above does not evidence any */
-/* actual or intended publication of such source code. */
-
-#ifndef ___MATH_H
-#define ___MATH_H
-
-#pragma comment(exestr, "xpg4plus @(#) math.h 20.1 94/12/04 ")
-
-#pragma pack(4)
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-
-extern double acos(double);
-extern double asin(double);
-extern double atan(double);
-extern double atan2(double, double);
-extern double cos(double);
-extern double sin(double);
-extern double tan(double);
-
-extern double cosh(double);
-extern double sinh(double);
-extern double tanh(double);
-
-extern double exp(double);
-extern double frexp(double, int *);
-extern double ldexp(double, int);
-extern double log(double);
-extern double log10(double);
-extern double modf(double, double *);
-
-extern double pow(double, double);
-extern double sqrt(double);
-
-extern double ceil(double);
-extern double fabs(double);
-extern double floor(double);
-extern double fmod(double, double);
-
-#ifndef HUGE_VAL
-extern const double __huge_val;
-#define HUGE_VAL (+__huge_val)
-#endif
-
-
-extern double erf(double);
-extern double erfc(double);
-extern double gamma(double);
-extern double hypot(double, double);
-extern double j0(double);
-extern double j1(double);
-extern double jn(int, double);
-extern double y0(double);
-extern double y1(double);
-extern double yn(int, double);
-extern double lgamma(double);
-extern int isnan(double);
-
-#define MAXFLOAT ((float)3.40282346638528860e+38)
-
-
-
-#define HUGE MAXFLOAT
-
-/*
- * The following are all legal as XPG4 external functions but must only
- * be declared in the non standards environments as they conflict with
- * the user name space
- */
-
-extern long double frexpl(long double, int *);
-extern long double ldexpl(long double, int);
-extern long double modfl(long double, long double *);
-
-extern float acosf(float);
-extern float asinf(float);
-extern float atanf(float);
-extern float atan2f(float, float);
-extern float cosf(float);
-extern float sinf(float);
-extern float tanf(float);
-
-extern float coshf(float);
-extern float sinhf(float);
-extern float tanhf(float);
-
-extern float expf(float);
-extern float logf(float);
-extern float log10f(float);
-
-extern float powf(float, float);
-extern float sqrtf(float);
-
-extern float ceilf(float);
-extern float fabsf(float);
-extern float floorf(float);
-extern float fmodf(float, float);
-extern float modff(float, float *);
-
-/* These are all extensions from XPG4 */
-
-extern double atof(const char *);
-extern double scalb(double, double);
-extern double logb(double);
-extern double log1p(double);
-extern double nextafter(double, double);
-extern double acosh(double);
-extern double asinh(double);
-extern double atanh(double);
-extern double cbrt(double);
-extern double copysign(double, double);
-extern double expm1(double);
-extern int ilogb(double);
-extern double remainder(double, double);
-extern double rint(double);
-extern int unordered(double, double);
-extern int finite(double);
-
-extern long double scalbl(long double, long double);
-extern long double logbl(long double);
-extern long double nextafterl(long double, long double);
-extern int unorderedl(long double, long double);
-extern int finitel(long double);
-
-
-
-
-extern int signgam;
-
-#define M_E 2.7182818284590452354
-#define M_LOG2E 1.4426950408889634074
-#define M_LOG10E 0.43429448190325182765
-#define M_LN2 0.69314718055994530942
-#define M_LN10 2.30258509299404568402
-#define M_PI 3.14159265358979323846
-#define M_PI_2 1.57079632679489661923
-#define M_PI_4 0.78539816339744830962
-#define M_1_PI 0.31830988618379067154
-#define M_2_PI 0.63661977236758134308
-#define M_2_SQRTPI 1.12837916709551257390
-#define M_SQRT2 1.41421356237309504880
-#define M_SQRT1_2 0.70710678118654752440
-
-
-
-#define _ABS(x) ((x) < 0 ? -(x) : (x))
-
-#define _REDUCE(TYPE, X, XN, C1, C2) { \
- double x1 = (double)(TYPE)X, x2 = X - x1; \
- X = x1 - (XN) * (C1); X += x2; X -= (XN) * (C2); }
-
-#define DOMAIN 1
-#define SING 2
-#define OVERFLOW 3
-#define UNDERFLOW 4
-#define TLOSS 5
-#define PLOSS 6
-
-#define _POLY1(x, c) ((c)[0] * (x) + (c)[1])
-#define _POLY2(x, c) (_POLY1((x), (c)) * (x) + (c)[2])
-#define _POLY3(x, c) (_POLY2((x), (c)) * (x) + (c)[3])
-#define _POLY4(x, c) (_POLY3((x), (c)) * (x) + (c)[4])
-#define _POLY5(x, c) (_POLY4((x), (c)) * (x) + (c)[5])
-#define _POLY6(x, c) (_POLY5((x), (c)) * (x) + (c)[6])
-#define _POLY7(x, c) (_POLY6((x), (c)) * (x) + (c)[7])
-#define _POLY8(x, c) (_POLY7((x), (c)) * (x) + (c)[8])
-#define _POLY9(x, c) (_POLY8((x), (c)) * (x) + (c)[9])
-
-
-#ifdef __cplusplus
-}
-inline int sqr(int i) {return(i*i);}
-inline double sqr(double i) {return(i*i);}
-
-#endif /* __cplusplus */
-
-#pragma pack()
-
-#if __cplusplus && !defined(PI)
-#define PI M_PI
-#endif /* __cplusplus */
-
-#endif /* _MATH_H */
-#endif
diff --git a/mit-pthreads/machdep/sco-3.2v5/__signal.h b/mit-pthreads/machdep/sco-3.2v5/__signal.h
deleted file mode 100755
index 6a33d37a261..00000000000
--- a/mit-pthreads/machdep/sco-3.2v5/__signal.h
+++ /dev/null
@@ -1,109 +0,0 @@
-/* Copyright 1994-1995 The Santa Cruz Operation, Inc. All Rights Reserved. */
-
-
-#if defined(_NO_PROTOTYPE) /* Old, crufty environment */
-#include <sys/oldstyle/signal.h>
-#elif defined(_XOPEN_SOURCE) || defined(_XPG4_VERS) /* Xpg4 environment */
-#include <xpg4/signal.h>
-#elif defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) /* Posix environment */
-#include <sys/posix/__signal.h>
-#elif _STRICT_ANSI /* Pure Ansi/ISO environment */
-#include <sys/ansi/signal.h>
-#elif defined(_SCO_ODS_30) /* Old, Tbird compatible environment */
-#include <sys/ods_30_compat/signal.h>
-#else /* Normal, default environment */
-/*
- * Portions Copyright (C) 1983-1995 The Santa Cruz Operation, Inc.
- * All Rights Reserved.
- *
- * The information in this file is provided for the exclusive use of
- * the licensees of The Santa Cruz Operation, Inc. Such users have the
- * right to use, modify, and incorporate this code into other products
- * for purposes authorized by the license agreement provided they include
- * this notice and the associated copyright notice with any such product.
- * The information in this file is provided "AS IS" without warranty.
- */
-
-/* Portions Copyright (c) 1990, 1991, 1992, 1993 UNIX System Laboratories, Inc. */
-/* Portions Copyright (c) 1979 - 1990 AT&T */
-/* All Rights Reserved */
-
-/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF */
-/* UNIX System Laboratories, Inc. */
-/* The copyright notice above does not evidence any */
-/* actual or intended publication of such source code. */
-
-#ifndef ___SIGNAL_H
-#define ___SIGNAL_H
-
-#pragma comment(exestr, "xpg4plus @(#) signal.h 20.3 94/12/19 ")
-
-#ifndef _SIG_ATOMIC_T
-#define _SIG_ATOMIC_T
- /* atomic entity for signal handling */
-typedef int sig_atomic_t;
-#endif
-
-extern const char * const _sys_siglist[];
-extern const int _sys_nsig;
-
-#ifndef _SYS_SIGNAL_H
-#include <sys/signal.h>
-#endif
-
-#define SignalBad ((SignalHandler)-1)
-#define SignalDefault ((SignalHandler)0)
-#define SignalIgnore ((SignalHandler)1)
-
-#define __sigmask(sig) (1 << ((sig) - 1))
-#define __SIGEMPTYSET (~SIGALL)
-#define __SIGFILLSET SIGALL
-#define __SIGADDSET(s,n) ((*s) |= (__sigmask(n)))
-#define __SIGDELSET(s,n) ((*s) &= ~(__sigmask(n)))
-#define __SIGISMEMBER(s,n) ((*s) & (__sigmask(n)))
-
-#if !defined(_SYS_TYPES_H)
-#include <sys/types.h>
-#endif
-
-
-#if __cplusplus
-extern "C" {
-#endif
-
-extern void (*signal(int, void(*)(int)))(int);
-extern int raise(int);
-
-extern void (*bsd_signal(int, void(*)(int)))(int);
-extern int ( *ssignal( int, int(*)(int) ) )(int);
-extern void ( *sigset( int, void(*)(int) ) )(int);
-extern int killpg(pid_t, int);
-#ifdef SS_ONSTACK /* Not defined on old versions of the OS */
-extern int sigaltstack(const stack_t *, stack_t *);
-extern int sigstack(struct sigstack *, struct sigstack *);
-#endif
-extern int sighold(int);
-extern int sigignore(int);
-extern int siginterrupt(int, int);
-extern int sigpause(int);
-extern int sigrelse(int);
-
-extern int (sigfillset)(sigset_t *);
-extern int (sigemptyset)(sigset_t *);
-extern int (sigaddset)(sigset_t *, int);
-extern int (sigdelset)(sigset_t *, int);
-extern int (sigismember)(const sigset_t *, int);
-extern int sigpending(sigset_t *);
-extern int sigsuspend(const sigset_t *);
-extern int sigprocmask(int, const sigset_t *, sigset_t *);
-extern int kill(pid_t, int);
-extern int sigaction(int, const struct sigaction *, struct sigaction *);
-
-#if __cplusplus
-};
-#endif
-
-
-#endif /* ___SIGNAL_H */
-
-#endif
diff --git a/mit-pthreads/machdep/sco-3.2v5/__stdio.h b/mit-pthreads/machdep/sco-3.2v5/__stdio.h
deleted file mode 100755
index f19672980ec..00000000000
--- a/mit-pthreads/machdep/sco-3.2v5/__stdio.h
+++ /dev/null
@@ -1,113 +0,0 @@
-/* Copyright 1994-1995 The Santa Cruz Operation, Inc. All Rights Reserved. */
-
-
-#if defined(_NO_PROTOTYPE) /* Old, crufty environment */
-#include <oldstyle/__stdio.h>
-#elif defined(_XOPEN_SOURCE) || defined(_XPG4_VERS) /* Xpg4 environment */
-#include <xpg4/__stdio.h>
-#elif defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) /* Posix environment */
-#include <posix/__stdio.h>
-#elif _STRICT_ANSI /* Pure Ansi/ISO environment */
-#include <ansi/__stdio.h>
-#elif defined(_SCO_ODS_30) /* Old, Tbird compatible environment */
-#include <ods_30_compat/__stdio.h>
-#else /* Normal, default environment */
-/*
- * Portions Copyright (C) 1984-1995 The Santa Cruz Operation, Inc.
- * All Rights Reserved.
- *
- * The information in this file is provided for the exclusive use of
- * the licensees of The Santa Cruz Operation, Inc. Such users have the
- * right to use, modify, and incorporate this code into other products
- * for purposes authorized by the license agreement provided they include
- * this notice and the associated copyright notice with any such product.
- * The information in this file is provided "AS IS" without warranty.
- */
-
-/* Portions Copyright (c) 1990, 1991, 1992, 1993 UNIX System Laboratories, Inc. */
-/* Portions Copyright (c) 1979 - 1990 AT&T */
-/* All Rights Reserved */
-
-/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF */
-/* UNIX System Laboratories, Inc. */
-/* The copyright notice above does not evidence any */
-/* actual or intended publication of such source code. */
-
-#ifndef ___STDIO_H
-#define ___STDIO_H
-
-#pragma comment(exestr, "xpg4plus @(#) stdio.h 20.1 94/12/04 ")
-
-#pragma pack(4)
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef _SIZE_T
-#define _SIZE_T
-typedef unsigned int size_t;
-#endif
-
-#ifndef _FPOS_T
-#define _FPOS_T
-typedef long fpos_t;
-#endif
-
-#ifndef _WCHAR_T
-#define _WCHAR_T
-typedef long wchar_t;
-#endif
-
-#ifndef _WINT_T
-#define _WINT_T
-typedef long wint_t;
-#endif
-
-#ifndef NULL
-#define NULL 0
-#endif /* NULL */
-
-#ifndef EOF
-#define EOF (-1)
-#endif
-
-#define SEEK_SET 0
-#define SEEK_CUR 1
-#define SEEK_END 2
-
-#ifndef TMP_MAX
-#define TMP_MAX 17576 /* 26 * 26 * 26 */
-#endif
-
-#define BUFSIZ 1024 /* default buffer size */
-
-
-#define _IOEOF 0020 /* EOF reached on read */
-#define _IOERR 0040 /* I/O error from system */
-
-#define _IOREAD 0001 /* currently reading */
-#define _IOWRT 0002 /* currently writing */
-#define _IORW 0200 /* opened for reading and writing */
-#define _IOMYBUF 0010 /* stdio malloc()'d buffer */
-
-#define _SBFSIZ 8
-
-#define L_cuserid 9
-
-/* Non name space polluting version of above */
-#define _P_tmpdir "/usr/tmp/"
-
-#ifndef _VA_LIST
-#define _VA_LIST char *
-#endif
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#pragma pack()
-
-#endif /* ___STDIO_H */
-#endif
diff --git a/mit-pthreads/machdep/sco-3.2v5/__stdlib.h b/mit-pthreads/machdep/sco-3.2v5/__stdlib.h
deleted file mode 100755
index db6a8a56151..00000000000
--- a/mit-pthreads/machdep/sco-3.2v5/__stdlib.h
+++ /dev/null
@@ -1,137 +0,0 @@
-/*
- * Copyright (C) 1984-1995 The Santa Cruz Operation, Inc.
- * All Rights Reserved.
- *
- * The information in this file is provided for the exclusive use of
- * the licensees of The Santa Cruz Operation, Inc. Such users have the
- * right to use, modify, and incorporate this code into other products
- * for purposes authorized by the license agreement provided they include
- * this notice and the associated copyright notice with any such product.
- * The information in this file is provided "AS IS" without warranty.
- */
-
-/* Portions Copyright (c) 1990, 1991, 1992, 1993 UNIX System Laboratories, Inc. */
-/* Portions Copyright (c) 1979 - 1990 AT&T */
-/* All Rights Reserved */
-
-/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF */
-/* UNIX System Laboratories, Inc. */
-/* The copyright notice above does not evidence any */
-/* actual or intended publication of such source code. */
-
-#ifndef ___STDLIB_H
-#define ___STDLIB_H
-
-#pragma comment(exestr, "posix @(#) stdlib.h 20.1 94/12/04 ")
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#pragma pack(4)
-
-#ifndef _DIV_T
-#define _DIV_T
-typedef struct
-{
- int quot;
- int rem;
-} div_t;
-#endif
-
-#ifndef _LDIV_T
-#define _LDIV_T
-typedef struct
-{
- long quot;
- long rem;
-} ldiv_t;
-#endif
-
-#ifndef _SIZE_T
-#define _SIZE_T
-typedef unsigned int size_t;
-#endif
-
-#if !defined(_SSIZE_T)
-#define _SSIZE_T
-typedef int ssize_t;
-#endif
-
-#ifndef _WCHAR_T
-#define _WCHAR_T
-typedef long wchar_t;
-#endif
-
-#ifndef NULL
-#define NULL 0
-#endif /* NULL */
-
-#define EXIT_FAILURE 1
-#define EXIT_SUCCESS 0
-#define RAND_MAX 077777
-
-
-
-extern unsigned char __ctype[];
-
-#define MB_CUR_MAX ((int)__ctype[520])
-
-extern double atof(const char *);
-extern int atoi(const char *);
-extern long atol(const char *);
-extern double strtod(const char *, char **);
-extern float strtof(const char *, char **);
-extern long strtol(const char *, char **, int);
-extern unsigned long strtoul(const char *, char **, int);
-
-extern int rand(void);
-extern void srand(unsigned int);
-
-extern void *calloc(size_t, size_t);
-extern void free(void *);
-extern void *malloc(size_t);
-extern void *realloc(void *, size_t);
-
-extern void abort(void);
-extern void exit(int);
-extern char *getenv(const char *);
-extern int system(const char *);
-
-extern void *bsearch(const void *, const void *, size_t, size_t,
- int (*)(const void *, const void *));
-extern void qsort(void *, size_t, size_t,
- int (*)(const void *, const void *));
-
-#ifdef __cplusplus
-#ifndef _ABS_INL
-#define _ABS_INL
-inline int (abs)(int i) {return (i > 0) ? i : -i;}
-#endif
-#else
-extern int (abs)(int); /* Protect from macro definitions */
-#endif
-
-extern div_t div(int, int);
-extern long labs(long);
-extern ldiv_t ldiv(long, long);
-
-extern int mbtowc(wchar_t *, const char *, size_t);
-extern int mblen(const char *, size_t);
-extern int wctomb(char *, wchar_t);
-
-extern size_t mbstowcs(wchar_t *, const char *, size_t);
-extern size_t wcstombs(char *, const wchar_t *, size_t);
-
-
-
-
-#define mblen(s, n) mbtowc((wchar_t *)0, s, n)
-
-#ifdef __cplusplus
-}
-#endif
-
-#pragma pack()
-
-#endif /* ___STDLIB_H */
diff --git a/mit-pthreads/machdep/sco-3.2v5/__string.h b/mit-pthreads/machdep/sco-3.2v5/__string.h
deleted file mode 100755
index e4bb93afe5a..00000000000
--- a/mit-pthreads/machdep/sco-3.2v5/__string.h
+++ /dev/null
@@ -1,125 +0,0 @@
-/* Copyright 1994-1995 The Santa Cruz Operation, Inc. All Rights Reserved. */
-
-
-#if defined(_NO_PROTOTYPE) /* Old, crufty environment */
-#include <oldstyle/string.h>
-#elif defined(_XOPEN_SOURCE) || defined(_XPG4_VERS) /* Xpg4 environment */
-#include <xpg4/string.h>
-#elif defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) /* Posix environment */
-#include <posix/string.h>
-#elif _STRICT_ANSI /* Pure Ansi/ISO environment */
-#include <ansi/string.h>
-#elif defined(_SCO_ODS_30) /* Old, Tbird compatible environment */
-#include <ods_30_compat/string.h>
-#else /* Normal, default environment */
-/*
- * Portions Copyright (C) 1983-1995 The Santa Cruz Operation, Inc.
- * All Rights Reserved.
- *
- * The information in this file is provided for the exclusive use of
- * the licensees of The Santa Cruz Operation, Inc. Such users have the
- * right to use, modify, and incorporate this code into other products
- * for purposes authorized by the license agreement provided they include
- * this notice and the associated copyright notice with any such product.
- * The information in this file is provided "AS IS" without warranty.
- */
-
-/* Portions Copyright (c) 1990, 1991, 1992, 1993 UNIX System Laboratories, Inc. */
-/* Portions Copyright (c) 1979 - 1990 AT&T */
-/* All Rights Reserved */
-
-/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF */
-/* UNIX System Laboratories, Inc. */
-/* The copyright notice above does not evidence any */
-/* actual or intended publication of such source code. */
-
-#ifndef ___STRING_H
-#define ___STRING_H
-
-#pragma comment(exestr, "xpg4plus @(#) string.h 20.1 94/12/04 ")
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef _SIZE_T
-#define _SIZE_T
-typedef unsigned int size_t;
-#endif
-
-#ifndef NULL
-#define NULL 0
-#endif /* NULL */
-
-
-
-extern void *memchr(const void *, int, size_t);
-extern void *memcpy(void *, const void *, size_t);
-extern void *memccpy(void *, const void *, int, size_t);
-extern void *memmove(void *, const void *, size_t);
-extern void *memset(void *, int, size_t);
-
-extern char *strchr(const char *, int);
-extern char *strcpy(char *, const char *);
-extern char *strncpy(char *, const char *, size_t);
-extern char *strcat(char *, const char *);
-extern char *strncat(char *, const char *, size_t);
-extern char *strpbrk(const char *, const char *);
-extern char *strrchr(const char *, int);
-extern char *strstr(const char *, const char *);
-extern char *strtok(char *, const char *);
-extern char *strtok_r(char *, const char *, char **);
-extern char *strerror(int);
-extern char *strlist(char *, const char *, ...);
-
-extern int memcmp(const void *, const void *, size_t);
-extern int strcmp(const char *, const char *);
-extern int strcoll(const char *, const char *);
-extern int strncmp(const char *, const char *, size_t);
-
-extern void perror(const char *);
-extern char *strdup(const char *);
-extern int strncoll(const char *, const char *, int);
-extern size_t strnxfrm(char *, const char *, size_t , int);
-
-extern size_t strxfrm(char *, const char *, size_t);
-extern size_t strcspn(const char *, const char *);
-extern size_t strspn(const char *, const char *);
-extern size_t strlen(const char *);
-
-#ifdef __USLC__
-#pragma int_to_unsigned strcspn
-#pragma int_to_unsigned strspn
-#pragma int_to_unsigned strlen
-#endif
-
-#if !defined(__cplusplus) && defined(__USLC__)
-/* Use intrinsic ??? */
-#ifndef strlen
-#define strlen __std_hdr_strlen
-#endif
-#ifndef strcpy
-#define strcpy __std_hdr_strcpy
-#endif
-#ifndef strncpy
-#define strncpy __std_hdr_strncpy
-#endif
-#endif
-
-
-extern int ffs(int);
-/*
- * The following two functions were withdrawn in XPG3,
- * but are provided for backwards compatibility.
- */
-extern int nl_strcmp(char *, char *);
-extern int nl_strncmp(char *, char *, int n);
-
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* ___STRING_H */
-#endif
diff --git a/mit-pthreads/machdep/sco-3.2v5/__time.h b/mit-pthreads/machdep/sco-3.2v5/__time.h
deleted file mode 100755
index 4aeee737601..00000000000
--- a/mit-pthreads/machdep/sco-3.2v5/__time.h
+++ /dev/null
@@ -1,141 +0,0 @@
-/* Copyright 1994-1995 The Santa Cruz Operation, Inc. All Rights Reserved. */
-
-
-#if defined(_NO_PROTOTYPE) /* Old, crufty environment */
-#include <oldstyle/time.h>
-#elif defined(_XOPEN_SOURCE) || defined(_XPG4_VERS) /* Xpg4 environment */
-#include <xpg4/time.h>
-#elif defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) /* Posix environment */
-#include <posix/time.h>
-#elif _STRICT_ANSI /* Pure Ansi/ISO environment */
-#include <ansi/time.h>
-#elif defined(_SCO_ODS_30) /* Old, Tbird compatible environment */
-#include <ods_30_compat/time.h>
-#else /* Normal, default environment */
-/*
- * Portions Copyright (C) 1983-1995 The Santa Cruz Operation, Inc.
- * All Rights Reserved.
- *
- * The information in this file is provided for the exclusive use of
- * the licensees of The Santa Cruz Operation, Inc. Such users have the
- * right to use, modify, and incorporate this code into other products
- * for purposes authorized by the license agreement provided they include
- * this notice and the associated copyright notice with any such product.
- * The information in this file is provided "AS IS" without warranty.
- */
-
-/* Portions Copyright (c) 1990, 1991, 1992, 1993 UNIX System Laboratories, Inc. */
-/* Portions Copyright (c) 1979 - 1990 AT&T */
-/* All Rights Reserved */
-
-/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF */
-/* UNIX System Laboratories, Inc. */
-/* The copyright notice above does not evidence any */
-/* actual or intended publication of such source code. */
-
-#ifndef ___TIME_H
-#define ___TIME_H
-
-#pragma comment(exestr, "xpg4plus @(#) time.h 20.2 95/01/04 ")
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef NULL
-#define NULL 0
-#endif /* NULL */
-
-#ifndef _SIZE_T
-#define _SIZE_T
-typedef unsigned int size_t;
-#endif
-#ifndef _CLOCK_T
-#define _CLOCK_T
-typedef long clock_t;
-#endif
-#ifndef _TIME_T
-#define _TIME_T
-typedef long time_t;
-#endif
-
-#ifdef _POSIXTIMERS
-#include <sys/sudstime.h>
-#endif
-
-#define CLOCKS_PER_SEC 1000000 /* As required by XPG4 and friends */
-
-#pragma pack(4)
-
-#ifndef _STRUCT_TM
-#define _STRUCT_TM
-struct tm
-{
- int tm_sec;
- int tm_min;
- int tm_hour;
- int tm_mday;
- int tm_mon;
- int tm_year;
- int tm_wday;
- int tm_yday;
- int tm_isdst;
-#define LTZNMAX 50
- long tm_tzadj;
- char tm_name[LTZNMAX]; /* name of timezone */
-};
-
-#pragma pack()
-#endif /* _STRUCT_TM */
-
-
-extern clock_t clock(void);
-extern double difftime(time_t, time_t);
-extern time_t mktime(struct tm *);
-extern time_t time(time_t *);
-extern char *asctime(const struct tm *);
-extern char *ctime (const time_t *);
-extern struct tm *gmtime(const time_t *);
-extern struct tm *localtime(const time_t *);
-extern size_t strftime(char *, size_t, const char *, const struct tm *);
-
-
-extern void tzset(void);
-extern char *tzname[];
-
-#ifndef CLK_TCK
-#define CLK_TCK _sysconf(2) /* 2 is _SC_CLK_TCK */
-#endif
-
-extern long timezone;
-extern int daylight;
-extern char *strptime(const char *, const char *, struct tm *);
-
-
-
-
-#include <sys/timeb.h>
-extern int ftime ( struct timeb * );
-extern char * nl_cxtime( long *, char * );
-extern char * nl_ascxtime( struct tm *, char * );
-extern int cftime(char *, const char *, const time_t *);
-extern int ascftime(char *, const char *, const struct tm *);
-extern long altzone;
-extern struct tm *getdate(const char *);
-extern int getdate_err;
-extern char *asctime_r(const struct tm *, char *,int);
-extern char *ctime_r(const time_t *, char *,int);
-extern struct tm *localtime_r(const time_t *, struct tm *);
-extern struct tm *gmtime_r(const time_t *, struct tm *);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#ifndef difftime
-#define difftime(t1, t0) ((double)((t1) - (t0)))
-#endif
-
-#endif /* ___TIME_H */
-#endif
diff --git a/mit-pthreads/machdep/sco-3.2v5/__unistd.h b/mit-pthreads/machdep/sco-3.2v5/__unistd.h
deleted file mode 100755
index 408886301f5..00000000000
--- a/mit-pthreads/machdep/sco-3.2v5/__unistd.h
+++ /dev/null
@@ -1,48 +0,0 @@
-/*-
- * Copyright (c) 1990 The Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by the University of
- * California, Berkeley and its contributors.
- * 4. Neither the name of the University nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * from: @(#)stdlib.h 5.13 (Berkeley) 6/4/91
- * __unistd.h,v 1.1 1995/01/03 12:54:54 proven Exp
- */
-
-#ifndef ___UNISTD_H_
-#define ___UNISTD_H_
-
-#include <sys/types.h>
-#include <stddef.h>
-
-#ifndef MAXPATHLEN
-#define MAXPATHLEN 1024
-#endif
-
-#endif
-
diff --git a/mit-pthreads/machdep/sco-3.2v5/compat.h b/mit-pthreads/machdep/sco-3.2v5/compat.h
deleted file mode 100755
index 3befbffa68d..00000000000
--- a/mit-pthreads/machdep/sco-3.2v5/compat.h
+++ /dev/null
@@ -1,46 +0,0 @@
-/* ==== compat.h ============================================================
- * Copyright (c) 1994 by Chris Provenzano, proven@mit.edu
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by Chris Provenzano.
- * 4. The name of Chris Provenzano may not be used to endorse or promote
- * products derived from this software without specific prior written
- * permission.
- *
- * THIS SOFTWARE IS PROVIDED BY CHRIS PROVENZANO ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL CHRIS PROVENZANO BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * compat.h,v 1.52 1995/10/20 09:32:56 proven Exp
- *
- * Description : Basic timers header.
- *
- * 1.00 94/06/13 proven
- * -Started coding this file.
- */
-
-#ifndef _SYS_COMPAT_H_
-#define _SYS_COMPAT_H_
-
-#include <sys/types.h>
-
-#define omsghdr msghdr
-#endif
diff --git a/mit-pthreads/machdep/sco-3.2v5/dirent.h b/mit-pthreads/machdep/sco-3.2v5/dirent.h
deleted file mode 100755
index 6f6804590bb..00000000000
--- a/mit-pthreads/machdep/sco-3.2v5/dirent.h
+++ /dev/null
@@ -1,145 +0,0 @@
-/* Copyright 1994-1995 The Santa Cruz Operation, Inc. All Rights Reserved. */
-
-
-#if defined(_NO_PROTOTYPE) /* Old, crufty environment */
-#include <oldstyle/dirent.h>
-#elif defined(_XOPEN_SOURCE) || defined(_XPG4_VERS) /* Xpg4 environment */
-#include <xpg4/dirent.h>
-#elif defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) /* Posix environment */
-#include <posix/dirent.h>
-#elif defined(_SCO_ODS_30) /* Old, Tbird compatible environment */
-#include <ods_30_compat/dirent.h>
-#else /* Normal, default environment */
-/*
- * Portions Copyright (C) 1983-1995 The Santa Cruz Operation, Inc.
- * All Rights Reserved.
- *
- * The information in this file is provided for the exclusive use of
- * the licensees of The Santa Cruz Operation, Inc. Such users have the
- * right to use, modify, and incorporate this code into other products
- * for purposes authorized by the license agreement provided they include
- * this notice and the associated copyright notice with any such product.
- * The information in this file is provided "AS IS" without warranty.
- */
-
-/* Portions Copyright (c) 1990, 1991, 1992, 1993 UNIX System Laboratories, Inc. */
-/* Portions Copyright (c) 1979 - 1990 AT&T */
-/* All Rights Reserved */
-
-/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF */
-/* UNIX System Laboratories, Inc. */
-/* The copyright notice above does not evidence any */
-/* actual or intended publication of such source code. */
-
-#ifndef _DIRENT_H
-#define _DIRENT_H
-
-#pragma comment(exestr, "xpg4plus @(#) dirent.h 20.1 94/12/04 ")
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#pragma pack(4)
-
-#define MAXNAMLEN 512 /* maximum filename length */
-#ifndef MAXPATHLEN
-#define MAXPATHLEN 1024
-#endif
-#undef DIRBLKSIZ
-#define DIRBLKSIZ 1048 /* buffer size for fs-indep. dirs */
-
-#ifndef _SYS_TYPES_H
-#include <sys/types.h>
-#endif
-
-#ifndef _SYS_DIRENT_H
-#define _SYS_DIRENT_H
-#ifdef __STDC__
-#pragma comment(exestr, "@(#) dirent.h 25.8 94/09/22 ")
-#else
-#ident "@(#) dirent.h 25.8 94/09/22 "
-#endif
-/*
- * Copyright (C) 1988-1994 The Santa Cruz Operation, Inc.
- * All Rights Reserved.
- * The information in this file is provided for the exclusive use of
- * the licensees of The Santa Cruz Operation, Inc. Such users have the
- * right to use, modify, and incorporate this code into other products
- * for purposes authorized by the license agreement provided they include
- * this notice and the associated copyright notice with any such product.
- * The information in this file is provided "AS IS" without warranty.
- */
-/* Copyright (c) 1984, 1986, 1987, 1988 AT&T */
-/* All Rights Reserved */
-
-/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T */
-/* The copyright notice above does not evidence any */
-/* actual or intended publication of such source code. */
-
-/* #ident "@)#(head.sys:dirent.h 1.3" */
-
-/*
- * The following structure defines the file
- * system independent directory entry.
- *
- */
-
-#include <sys/types.h>
-
-#ifdef _M_I386
-#pragma pack(4)
-#else
-#pragma pack(2)
-#endif
-
-#ifdef _INKERNEL
-/*
- * dirent used by the kernel
- */
-struct dirent {
- ino32_t d_ino; /* inode number of entry */
- off_t d_off; /* offset of disk directory entry */
- unsigned short d_reclen; /* length of this record */
- char d_name[MAXNAMLEN+1]; /* name of file */
-};
-
-#else /* !_INKERNEL */
-/*
- * dirent as used by application code
- * For now leave the declaration as is. When the new development system
- * is implemented, ino_t may be ushort or ulong. If ino_t is ulong, there
- * will be no d_pad field.
- */
-struct dirent /* data from readdir() */
- {
-#if defined(_IBCS2)
- long d_ino;
-#else /* !_IBCS2 */
- ino_t d_ino; /* inode number of entry */
-#if defined(_INO_16_T)
- short d_pad; /* because ino_t is ushort */
-#endif /* defined(_INO_16_T) */
-#endif /* defined(_IBCS2) */
- off_t d_off; /* offset of disk directory entry */
- unsigned short d_reclen; /* length of this record */
- char d_name[MAXNAMLEN+1]; /* name of file */
- };
-#endif /* _INKERNEL */
-
-typedef struct dirent dirent_t;
-
-#pragma pack()
-#endif /* _SYS_DIRENT_H */
-
-#define d_fileno d_ino
-#define d_namlen d_reclen
-
-#ifdef __cplusplus
-}
-#endif
-
-#pragma pack()
-
-#endif /* _DIRENT_H */
-#endif
diff --git a/mit-pthreads/machdep/sco-3.2v5/posix/__signal.h b/mit-pthreads/machdep/sco-3.2v5/posix/__signal.h
deleted file mode 100755
index 5680fc1491a..00000000000
--- a/mit-pthreads/machdep/sco-3.2v5/posix/__signal.h
+++ /dev/null
@@ -1,69 +0,0 @@
-/*
- * Portions Copyright (C) 1983-1995 The Santa Cruz Operation, Inc.
- * All Rights Reserved.
- *
- * The information in this file is provided for the exclusive use of
- * the licensees of The Santa Cruz Operation, Inc. Such users have the
- * right to use, modify, and incorporate this code into other products
- * for purposes authorized by the license agreement provided they include
- * this notice and the associated copyright notice with any such product.
- * The information in this file is provided "AS IS" without warranty.
- */
-
-/* Portions Copyright (c) 1990, 1991, 1992, 1993 UNIX System Laboratories, Inc. */
-/* Portions Copyright (c) 1979 - 1990 AT&T */
-/* All Rights Reserved */
-
-/* THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF */
-/* UNIX System Laboratories, Inc. */
-/* The copyright notice above does not evidence any */
-/* actual or intended publication of such source code. */
-
-#ifndef ___SIGNAL_H
-#define ___SIGNAL_H
-
-#pragma comment(exestr, "posix @(#) signal.h 20.3 94/12/19 ")
-
-#ifndef _SIG_ATOMIC_T
-#define _SIG_ATOMIC_T
- /* atomic entity for signal handling */
-typedef int sig_atomic_t;
-#endif
-
-
-#ifndef _SYS_SIGNAL_H
-#include <sys/signal.h>
-#endif
-
-#if !defined(_SYS_TYPES_H)
-#include <sys/types.h>
-#endif
-
-
-#if __cplusplus
-extern "C" {
-#endif
-
-extern void (*signal(int, void(*)(int)))(int);
-extern int raise(int);
-
-
-
-extern int (sigfillset)(sigset_t *);
-extern int (sigemptyset)(sigset_t *);
-extern int (sigaddset)(sigset_t *, int);
-extern int (sigdelset)(sigset_t *, int);
-extern int (sigismember)(const sigset_t *, int);
-extern int sigpending(sigset_t *);
-extern int sigsuspend(const sigset_t *);
-extern int sigprocmask(int, const sigset_t *, sigset_t *);
-extern int kill(pid_t, int);
-extern int sigaction(int, const struct sigaction *, struct sigaction *);
-
-#if __cplusplus
-};
-#endif
-
-
-#endif /* ___SIGNAL_H */
-
diff --git a/mit-pthreads/machdep/sco-3.2v5/socket.h b/mit-pthreads/machdep/sco-3.2v5/socket.h
deleted file mode 100755
index 4a53c7176f9..00000000000
--- a/mit-pthreads/machdep/sco-3.2v5/socket.h
+++ /dev/null
@@ -1,490 +0,0 @@
-/* @(#)socket.h 6.23 7/18/94 - STREAMware TCP/IP source */
-/*
- * Copyrighted as an unpublished work.
- * (c) Copyright 1987-1994 Legent Corporation
- * All rights reserved.
- *
- * RESTRICTED RIGHTS
- *
- * These programs are supplied under a license. They may be used,
- * disclosed, and/or copied only as permitted under such license
- * agreement. Any copy must contain the above copyright notice and
- * this restricted rights notice. Use, copying, and/or disclosure
- * of the programs is strictly prohibited unless otherwise provided
- * in the license agreement.
- *
- */
-/* SCCS IDENTIFICATION */
-/*
- * Copyright (c) 1985 Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms are permitted
- * provided that the above copyright notice and this paragraph are
- * duplicated in all such forms and that any documentation,
- * advertising materials, and other materials related to such
- * distribution and use acknowledge that the software was developed
- * by the University of California, Berkeley. The name of the
- * University may not be used to endorse or promote products derived
- * from this software without specific prior written permission.
- * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
- * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
- * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
- */
-
-#ifndef __sys_socket_h
-#define __sys_socket_h
-
-#if !defined(FD_SETSIZE)
-/* Pick up select stuff from standard system include */
-#include <sys/types.h>
-#endif
-
-/* socket.h 6.1 83/07/29 */
-
-/*
- * Definitions related to sockets: types, address families, options.
- */
-
-/*
- * Types
- */
-#define SOCK_STREAM 1 /* stream socket */
-#define SOCK_DGRAM 2 /* datagram socket */
-#define SOCK_RAW 3 /* raw-protocol interface */
-#define SOCK_RDM 4 /* reliably-delivered message */
-#define SOCK_SEQPACKET 5 /* sequenced packet stream */
-
-/*
- * Option flags per-socket.
- */
-#define SO_DEBUG 0x0001 /* turn on debugging info recording */
-#define SO_ACCEPTCONN 0x0002 /* socket has had listen() */
-#define SO_REUSEADDR 0x0004 /* allow local address reuse */
-#define SO_KEEPALIVE 0x0008 /* keep connections alive */
-#define SO_DONTROUTE 0x0010 /* just use interface addresses */
-#define SO_BROADCAST 0x0020 /* permit sending of broadcast msgs */
-#define SO_USELOOPBACK 0x0040 /* bypass hardware when possible */
-#define SO_LINGER 0x0080 /* linger on close if data present */
-#define SO_OOBINLINE 0x0100 /* leave received OOB data in line */
-#define SO_ORDREL 0x0200 /* give use orderly release */
-#define SO_IMASOCKET 0x0400 /* use socket semantics (affects bind) */
-#define SO_MGMT 0x0800 /* => it is used for mgmt. purposes */
-#define SO_REUSEPORT 0x1000 /* allow local port reuse */
-
-/*
- * Additional options, not kept in so_options.
- */
-#define SO_SNDBUF 0x1001 /* send buffer size */
-#define SO_RCVBUF 0x1002 /* receive buffer size */
-#define SO_SNDLOWAT 0x1003 /* send low-water mark */
-#define SO_RCVLOWAT 0x1004 /* receive low-water mark */
-#define SO_SNDTIMEO 0x1005 /* send timeout */
-#define SO_RCVTIMEO 0x1006 /* receive timeout */
-#define SO_ERROR 0x1007 /* get error status and clear */
-#define SO_TYPE 0x1008 /* get socket type */
-#define SO_PROTOTYPE 0x1009 /* get/set protocol type */
-
-/*
- * Structure used for manipulating linger option.
- */
-struct linger {
- int l_onoff; /* option on/off */
- int l_linger; /* linger time */
-};
-
-/*
- * Level number for (get/set)sockopt() to apply to socket itself.
- */
-#define SOL_SOCKET 0xffff /* options for socket level */
-
-/*
- * An option specification consists of an opthdr, followed by the value of
- * the option. An options buffer contains one or more options. The len
- * field of opthdr specifies the length of the option value in bytes. This
- * length must be a multiple of sizeof(long) (use OPTLEN macro).
- */
-
-struct opthdr {
- long level; /* protocol level affected */
- long name; /* option to modify */
- long len; /* length of option value */
-};
-
-#define OPTLEN(x) ((((x) + sizeof(long) - 1) / sizeof(long)) * sizeof(long))
-#define OPTVAL(opt) ((char *)(opt + 1))
-
-#if defined(INKERNEL) || defined(_KERNEL) || defined(_INKERNEL)
-/*
- * the optdefault structure is used for internal tables of option default
- * values.
- */
-struct optdefault {
- int optname;/* the option */
- char *val; /* ptr to default value */
- int len; /* length of value */
-};
-
-/*
- * the opproc structure is used to build tables of options processing
- * functions for in_dooptions().
- */
-struct opproc {
- int level; /* options level this function handles */
- int (*func) (); /* the function */
-};
-#endif
-
-/*
- * Address families.
- */
-#define AF_UNSPEC 0 /* unspecified */
-#define AF_UNIX 1 /* local to host (pipes, portals) */
-#define AF_INET 2 /* internetwork: UDP, TCP, etc. */
-#define AF_IMPLINK 3 /* arpanet imp addresses */
-#define AF_PUP 4 /* pup protocols: e.g. BSP */
-#define AF_CHAOS 5 /* mit CHAOS protocols */
-#define AF_NS 6 /* XEROX NS protocols */
-#define AF_ISO 7 /* ISO protocols */
-#define AF_OSI AF_ISO
-#define AF_ECMA 8 /* european computer manufacturers */
-#define AF_DATAKIT 9 /* datakit protocols */
-#define AF_CCITT 10 /* CCITT protocols, X.25 etc */
-#define AF_SNA 11 /* IBM SNA */
-#define AF_DECnet 12 /* DECnet */
-#define AF_DLI 13 /* Direct data link interface */
-#define AF_LAT 14 /* LAT */
-#define AF_HYLINK 15 /* NSC Hyperchannel */
-#define AF_APPLETALK 16 /* Apple Talk */
-#define AF_ROUTE 17 /* Internal Routing Protocol */
-#define AF_LINK 18 /* Link layer interface */
-#define pseudo_AF_XTP 19 /* eXpress Transfer Protocol (no AF) */
-
-#define AF_MAX 20
-
-/*
- * Structure used by kernel to store most addresses.
- */
-struct sockaddr {
- u_short sa_family; /* address family */
- char sa_data[14]; /* up to 14 bytes of direct address */
-};
-
-/*
- * Structure used by kernel to pass protocol information in raw sockets.
- */
-struct sockproto {
- unsigned short sp_family; /* address family */
- unsigned short sp_protocol; /* protocol */
-};
-
-/*
- * Protocol families, same as address families for now.
- */
-#define PF_UNSPEC AF_UNSPEC
-#define PF_UNIX AF_UNIX
-#define PF_INET AF_INET
-#define PF_IMPLINK AF_IMPLINK
-#define PF_PUP AF_PUP
-#define PF_CHAOS AF_CHAOS
-#define PF_NS AF_NS
-#define PF_NBS AF_NBS
-#define PF_ECMA AF_ECMA
-#define PF_DATAKIT AF_DATAKIT
-#define PF_CCITT AF_CCITT
-#define PF_SNA AF_SNA
-#define PF_DECnet AF_DECnet
-#define PF_DLI AF_DLI
-#define PF_LAT AF_LAT
-#define PF_HYLINK AF_HYLINK
-#define PF_APPLETALK AF_APPLETALK
-#define PF_ROUTE AF_ROUTE
-#define PF_LINK AF_LINK
-#define PF_XTP pseudo_AF_XTP /* really just proto family, no AF */
-
-#define PF_MAX AF_MAX
-
-/*
- * Maximum queue length specifiable by listen.
- */
-#define SOMAXCONN 5
-
-/*
- * Message header for recvmsg and sendmsg calls.
- * Used value-result for recmvsg, value only for sendmsg.
- */
-struct msghdr {
- caddr_t msg_name; /* optional address */
- u_int msg_namelen; /* size of address */
- struct iovec *msg_iov; /* scatter/gather array */
- u_int msg_iovlen; /* # elements msg_iov */
- caddr_t msg_control; /* ancillary data, see below */
- u_int msg_controllen; /* ancillary data buffer len */
- int msg_flags; /* flags on received message */
-};
-#define msg_accrights msg_control
-#define msg_accrightslen msg_controllen
-
-#define MSG_OOB 0x1 /* process out-of-band data */
-#define MSG_PEEK 0x2 /* peek at incoming message */
-#define MSG_DONTROUTE 0x4 /* send without using routing tables */
-#define MSG_EOR 0x8 /* data completes record */ /*notused*/
-#define MSG_TRUNC 0x10 /* data discarded before delivery */
-#define MSG_CTRUNC 0x20 /* control data lost before delivery */
-#define MSG_WAITALL 0x40 /* wait for full request or error */ /*notused*/
-
-#define MSG_MAXIOVLEN 16
-
-/*
- * Header for ancillary data objects in msg_control buffer.
- * Used for additional information with/about a datagram
- * not expressible by flags. The format is a sequence
- * of message elements headed by cmsghdr structures.
- * In STREAMware, we shuffle the fields around a little from what
- * they were in net-2, so that they line up the same as an opthdr
- * which simplifies our socket implementation amazingly.
- *
- * Unfortunately, the opthdrs don't include their own length, which the
- * cmsghdrs do. What this means is that TLI programmers will not be
- * able to take something returned using these macros and immediately give
- * it back to the stack. The size of the struct cmsghdr will have to be
- * subtracted out.
- * There doesn't seem to be a way to avoid this, since several applications
- * look into the cmsg_len field and won't work if it doesn't include the size
- * of the struct cmsghdr.
- */
-struct cmsghdr {
- int cmsg_level; /* originating protocol */
- int cmsg_type; /* protocol-specific type */
- u_int cmsg_len; /* data byte count, including hdr */
-/* followed by u_char cmsg_data[]; */
-};
-
-/* given pointer to struct adatahdr, return pointer to data */
-#define CMSG_DATA(cmsg) ((u_char *)((cmsg) + 1))
-
-/* given pointer to struct adatahdr, return pointer to next adatahdr */
-#define CMSG_NXTHDR(mhdr, cmsg) \
- (((caddr_t)(cmsg) + (cmsg)->cmsg_len + sizeof(struct cmsghdr) > \
- (mhdr)->msg_control + (mhdr)->msg_controllen) ? \
- (struct cmsghdr *)NULL : \
- (struct cmsghdr *)((caddr_t)(cmsg) + OPTLEN((cmsg)->cmsg_len)))
-
-#define CMSG_FIRSTHDR(mhdr) ((struct cmsghdr *)(mhdr)->msg_control)
-
-/* "Socket"-level control message types: */
-#define SCM_RIGHTS 0x01 /* access rights (array of int) */
-
-/*
- * This ioctl code uses BSD style ioctls to avoid copyin/out problems.
- * Ioctls have the command encoded in the lower word, and the size of any in
- * or out parameters in the upper word. The high 2 bits of the upper word
- * are used to encode the in/out status of the parameter; for now we restrict
- * parameters to at most 128 bytes.
- */
-#define IOCPARM_MASK 0x7f /* parameters must be < 128 bytes */
-#define IOC_VOID 0x20000000 /* no parameters */
-#define IOC_OUT 0x40000000 /* copy out parameters */
-#define IOC_IN 0x80000000 /* copy in parameters */
-#define IOC_INOUT (IOC_IN|IOC_OUT)
-/* the 0x20000000 is so we can distinguish new ioctls from old */
-#define _IOS(x,y) (IOC_VOID|(x<<8)|y)
-#define _IOSR(x,y,t) (IOC_OUT|((sizeof(t)&IOCPARM_MASK)<<16)|(x<<8)|y)
-#define _IOSW(x,y,t) (IOC_IN|((sizeof(t)&IOCPARM_MASK)<<16)|(x<<8)|y)
-/* this should be _IOSRW, but stdio got there first */
-#define _IOSWR(x,y,t) (IOC_INOUT|((sizeof(t)&IOCPARM_MASK)<<16)|(x<<8)|y)
-
-/*
- * Socket ioctl commands
- */
-
-#define SIOCSHIWAT _IOSW('S', 1, int) /* set high watermark */
-#define SIOCGHIWAT _IOSR('S', 2, int) /* get high watermark */
-#define SIOCSLOWAT _IOSW('S', 3, int) /* set low watermark */
-#define SIOCGLOWAT _IOSR('S', 4, int) /* get low watermark */
-#define SIOCATMARK _IOSR('S', 5, int) /* at oob mark? */
-#define SIOCSPGRP _IOSW('S', 6, int) /* set process group */
-#define SIOCGPGRP _IOSR('S', 7, int) /* get process group */
-#define FIONREAD _IOSR('S', 8, int) /* BSD compatibilty */
-#define FIONBIO _IOSW('S', 9, int) /* BSD compatibilty */
-#define FIOASYNC _IOSW('S', 10, int) /* BSD compatibilty */
-#define SIOCPROTO _IOSW('S', 11, struct socknewproto) /* link proto */
-#define SIOCGETNAME _IOSR('S', 12, struct sockaddr) /* getsockname */
-#define SIOCGETPEER _IOSR('S', 13, struct sockaddr) /* getpeername */
-#define IF_UNITSEL _IOSW('S', 14, int) /* set unit number */
-#define SIOCXPROTO _IOS('S', 15) /* empty proto table */
-#define SIOCSHRDTYPE _IOSW('S', 16, int) /* set hardware type */
-
-#define SIOCADDRT _IOSW('R', 9, struct ortentry) /* add route */
-#define SIOCDELRT _IOSW('R', 10, struct ortentry) /* delete route */
-
-#define SIOCSIFADDR _IOSW('I', 11, struct ifreq) /* set ifnet address */
-#define SIOCGIFADDR _IOSWR('I', 12, struct ifreq) /* get ifnet address */
-#define SIOCSIFDSTADDR _IOSW('I', 13, struct ifreq) /* set p-p address */
-#define SIOCGIFDSTADDR _IOSWR('I', 14, struct ifreq) /* get p-p address */
-#define SIOCSIFFLAGS _IOSW('I', 15, struct ifreq) /* set ifnet flags */
-#define SIOCGIFFLAGS _IOSWR('I', 16, struct ifreq) /* get ifnet flags */
-#define SIOCGIFCONF _IOSWR('I', 17, struct ifconf) /* get ifnet list */
-
-#define SIOCSIFMTU _IOSW('I', 21, struct ifreq) /* get if_mtu */
-#define SIOCGIFMTU _IOSWR('I', 22, struct ifreq) /* set if_mtu */
-
-
-#define SIOCGIFBRDADDR _IOSWR('I', 32, struct ifreq) /* get broadcast addr */
-#define SIOCSIFBRDADDR _IOSW('I', 33, struct ifreq) /* set broadcast addr */
-#define SIOCGIFNETMASK _IOSWR('I', 34, struct ifreq) /* get net addr mask */
-#define SIOCSIFNETMASK _IOSW('I', 35, struct ifreq) /* set net addr mask */
-#define SIOCGIFMETRIC _IOSWR('I', 36, struct ifreq) /* get IF metric */
-#define SIOCSIFMETRIC _IOSW('I', 37, struct ifreq) /* set IF metric */
-
-#define SIOCSARP _IOSW('I', 38, struct arpreq) /* set arp entry */
-#define SIOCGARP _IOSWR('I', 39, struct arpreq) /* get arp entry */
-#define SIOCDARP _IOSW('I', 40, struct arpreq) /* delete arp entry */
-
-#define SIOCSIFNAME _IOSW('I', 41, struct ifreq) /* set interface name */
-#define SIOCGIFONEP _IOSWR('I', 42, struct ifreq) /* get one-packet params */
-#define SIOCSIFONEP _IOSW('I', 43, struct ifreq) /* set one-packet params */
-#define SIOCDIFADDR _IOSW('I', 44, struct ifreq) /* delete IF addr */
-#define SIOCAIFADDR _IOSW('I', 45, struct ifaliasreq) /*add/change IF alias*/
-#define SIOCADDMULTI _IOSW('I', 49, struct ifreq) /* add m'cast addr */
-#define SIOCDELMULTI _IOSW('I', 50, struct ifreq) /* del m'cast addr */
-#define SIOCGIFALIAS _IOSWR('I', 51, struct ifaliasreq) /* get IF alias */
-
-
-#define SIOCSOCKSYS _IOSW('I', 66, struct socksysreq) /* Pseudo socket syscall */
-
-/* these use ifr_metric to pass the information */
-#define SIOCSIFDEBUG _IOSW('I', 67, struct ifreq) /* set if debug level */
-#define SIOCGIFDEBUG _IOSWR('I', 68, struct ifreq) /* get if debug level */
-
-#define SIOCSIFTYPE _IOSW('I', 69, struct ifreq) /* set if MIB type */
-#define SIOCGIFTYPE _IOSWR('I', 70, struct ifreq) /* get if MIB type */
-
-#define SIOCGIFNUM _IOSR('I', 71, int) /* get number of ifs */
-/*
- * This returns the number of ifreqs that SIOCGIFCONF would return, including
- * aliases. This is the preferred way of sizing a buffer big enough to hold
- * all interfaces.
- */
-#define SIOCGIFANUM _IOSR('I', 72, int) /* get number of ifreqs */
-/*
- * Interface specific performance tuning
- */
-#define SIOCGIFPERF _IOSR('I', 73, struct ifreq) /* get perf info */
-#define SIOCSIFPERF _IOSR('I', 74, struct ifreq) /* get perf info */
-
-/*
- * This structure is used to encode pseudo system calls
- */
-struct socksysreq {
- /* When porting, make this the widest thing it can be */
- int args[7];
-};
-
-/*
- * This structure is used for adding new protocols to the list supported by
- * sockets.
- */
-struct socknewproto {
- int family; /* address family (AF_INET, etc.) */
- int type; /* protocol type (SOCK_STREAM, etc.) */
- int proto; /* per family proto number */
- dev_t dev; /* major/minor to use (must be a clone) */
- int flags; /* protosw flags */
-};
-
-/*
- * utility definitions.
- */
-
-#ifdef MIN
-#undef MIN
-#endif
-#define MIN(x,y) ((x) < (y) ? (x) : (y))
-#ifndef MAX
-#define MAX(x,y) ((x) > (y) ? (x) : (y))
-#endif
-
-#define MAXHOSTNAMELEN 256
-
-#define NBBY 8 /* number of bits in a byte */
-
-
-/* defines for user/kernel interface */
-
-#define MAX_MINOR (makedev(1,0) - 1) /* could be non-portable */
-
-#define SOCKETSYS 140 /* SCO 3.2v5 */
-
-#define SO_ACCEPT 1
-#define SO_BIND 2
-#define SO_CONNECT 3
-#define SO_GETPEERNAME 4
-#define SO_GETSOCKNAME 5
-#define SO_GETSOCKOPT 6
-#define SO_LISTEN 7
-#define SO_RECV 8
-#define SO_RECVFROM 9
-#define SO_SEND 10
-#define SO_SENDTO 11
-#define SO_SETSOCKOPT 12
-#define SO_SHUTDOWN 13
-#define SO_SOCKET 14
-#define SO_SELECT 15
-#define SO_GETIPDOMAIN 16
-#define SO_SETIPDOMAIN 17
-#define SO_ADJTIME 18
-#define SO_SETREUID 19
-#define SO_SETREGID 20
-#define SO_GETTIME 21
-#define SO_SETTIME 22
-#define SO_GETITIMER 23
-#define SO_SETITIMER 24
-#define SO_RECVMSG 25
-#define SO_SENDMSG 26
-#define SO_SOCKPAIR 27
-
-/*
- * message flags
- */
-#define M_BCAST 0x80000000
-
-/* Definitions and structures used for extracting */
-/* the size and/or the contents of kernel tables */
-
-/* Copyin/out values */
-#define GIARG 0x1
-#define CONTI 0x2
-#define GITAB 0x4
-
-struct gi_arg {
- caddr_t gi_where;
- unsigned gi_size;
-};
-
-#if !defined(_KERNEL) && !defined(INKERNEL) && !defined(_INKERNEL)
-
-#include <sys/cdefs.h>
-
-__BEGIN_DECLS
-int accept __P_((int, struct sockaddr *, int *));
-int bind __P_((int, const struct sockaddr *, int));
-int connect __P_((int, const struct sockaddr *, int));
-int getpeername __P_((int, struct sockaddr *, int *));
-int getsockname __P_((int, struct sockaddr *, int *));
-int getsockopt __P_((int, int, int, void *, int *));
-int setsockopt __P_((int, int, int, const void *, int));
-int listen __P_((int, int));
-ssize_t recv __P_((int, void *, size_t, int));
-ssize_t recvfrom __P_((int, void *, size_t, int, struct sockaddr *, int *));
-int recvmsg __P_((int, struct msghdr *, int));
-ssize_t send __P_((int, const void *, size_t, int));
-int sendmsg __P_((int, const struct msghdr *, int));
-ssize_t sendto __P_((int, const void *, size_t, int, const struct sockaddr *, int));
-int shutdown __P_((int, int));
-int socket __P_((int, int, int));
-int socketpair __P_((int, int, int, int[2]));
-__END_DECLS
-
-#endif /* !INKERNEL */
-#endif /* __sys_socket_h */
diff --git a/mit-pthreads/machdep/sco-3.2v5/syscall.h b/mit-pthreads/machdep/sco-3.2v5/syscall.h
deleted file mode 100755
index f49fba81b6e..00000000000
--- a/mit-pthreads/machdep/sco-3.2v5/syscall.h
+++ /dev/null
@@ -1,175 +0,0 @@
-/* Copyright 1994-1995 The Santa Cruz Operation, Inc. All Rights Reserved. */
-
-
-#if defined(_NO_PROTOTYPE) /* Old, crufty environment */
-#include <oldstyle/syscall.h>
-#elif defined(_SCO_ODS_30) /* Old, Tbird compatible environment */
-#include <ods_30_compat/syscall.h>
-#else /* Normal, default environment */
-/*
-/ Portions Copyright (C) 1983-1995 The Santa Cruz Operation, Inc.
- * All Rights Reserved.
- *
- * The information in this file is provided for the exclusive use of
- * the licensees of The Santa Cruz Operation, Inc. Such users have the
- * right to use, modify, and incorporate this code into other products
- * for purposes authorized by the license agreement provided they include
- * this notice and the associated copyright notice with any such product.
- * The information in this file is provided "AS IS" without warranty.
- */
-
-/* Portions Copyright (c) 1990, 1991, 1992, 1993 UNIX System Laboratories, Inc. */
-/* Portions Copyright (c) 1979 - 1990 AT&T */
-
-#ident "xpg4plus @(#) sys.i386 20.1 94/12/04 "
-/* #ident "xpg4plus @(#)head:sys.i386 1.2" */
-
-/*
-/* Definitions of Kernel Entry Call Gates
-*/
-
-#ifndef _SYSCALL_H_
-#define _SYSCALL_H_
-
-/*#define SYSCALL $0x7,$0*/
-/*#define SIGCALL $0xF,$0*/
-
-/*
-/* Definitions of System Call Entry Point Numbers
-*/
-
-#define SYS_access 33
-#define SYS_acct 51
-#define SYS_advfs 70
-#define SYS_alarm 27
-#define SYS_break 17
-#define SYS_brk 17
-#define SYS_chdir 12
-#define SYS_chmod 15
-#define SYS_chown 16
-#define SYS_chroot 61
-#define SYS_close 6
-#define SYS_creat 8
-#define SYS_dup 41
-#define SYS_exec 11
-#define SYS_execve 59
-#define SYS_exit 1
-#define SYS_fcntl 62
-#define SYS_fork 2
-#define SYS_fstat 28
-#define SYS_fstatfs 38
-#define SYS_fxstat 125
-#define SYS_getdents 81
-#define SYS_getgid 47
-#define SYS_getmsg 85
-#define SYS_getpid 20
-#define SYS_gettimeofday 171
-#define SYS_getuid 24
-#define SYS_gtty 32
-#define SYS_ioctl 54
-#define SYS_kill 37
-#define SYS_link 9
-#define SYS_lock 45
-#define SYS_lseek 19
-#define SYS_lstat 91
-#define SYS_lxstat 124
-#define SYS_mkdir 80
-#define SYS_mknod 14
-#define SYS_mount 21
-#define SYS_msgsys 49
-#define SYS_nice 34
-#define SYS_open 5
-#define SYS_pause 29
-#define SYS_pipe 42
-#define SYS_plock 45
-#define SYS_poll 87
-#define SYS_prof 44
-#define SYS_ptrace 26
-#define SYS_putmsg 86
-#define SYS_rdebug 76
-#define SYS_read 3
-#define SYS_readlink 92
-#define SYS_readv 121
-#define SYS_rfstart 74
-#define SYS_rfstop 77
-#define SYS_rfsys 78
-#define SYS_rmdir 79
-#define SYS_rmount 72
-#define SYS_rumount 73
-#define SYS_seek 19
-#define SYS_semsys 53
-#define SYS_setgid 46
-#define SYS_setpgrp 39
-#define SYS_settimeofday 172
-#define SYS_setuid 23
-#define SYS_shmsys 52
-#define SYS_signal 48
-#define SYS_stat 18
-#define SYS_statfs 35
-#define SYS_stime 25
-#define SYS_stty 31
-#define SYS_symlink 90
-#define SYS_sync 36
-#define SYS_sys3b 50
-#define SYS_sysi86 50
-#define SYS_sysacct 51
-#define SYS_sysfs 84
-#define SYS_time 13
-#define SYS_times 43
-#define SYS_uadmin 55
-#define SYS_ulimit 63
-#define SYS_umask 60
-#define SYS_umount 22
-#define SYS_unadvfs 71
-#define SYS_unlink 10
-#define SYS_utime 30
-#define SYS_utssys 57
-#define SYS_wait 7
-#define SYS_write 4
-#define SYS_writev 122
-#define SYS_xstat 123
-#define SYS_ftruncate 192
-
-/* cxenix numbers are created by the formula
- * (table index << 8) + CXENIX
- */
-
-#define CXENIX 0x28 /* Decimal 40 */
-
-#define XLOCKING 0x0128
-#define CREATSEM 0x0228
-#define OPENSEM 0x0328
-#define SIGSEM 0x0428
-#define WAITSEM 0x0528
-#define NBWAITSEM 0x0628
-#define RDCHK 0x0728
-#define CHSIZE 0x0a28
-#define SYS_ftime 0x0b28
-#define NAP 0x0c28
-#define SDGET 0x0d28
-#define SDFREE 0x0e28
-#define SDENTER 0x0f28
-#define SDLEAVE 0x1028
-#define SDGETV 0x1128
-#define SDWAITV 0x1228
-#define PROCTL 0x2028
-#define EXECSEG 0x2128
-#define UNEXECSEG 0x2228
-#define SYS_select 0x2428
-#define SYS_eaccess 0x2528
-#define SYS_paccess 0x2628
-#define SYS_sigaction 0x2728
-#define SYS_sigprocmask 0x2828
-#define SYS_sigpending 0x2928
-#define SYS_sigsuspend 0x2a28
-#define SYS_getgroups 0x2b28
-#define SYS_setgroups 0x2c28
-#define SYS_sysconf 0x2d28
-#define SYS_pathconf 0x2e28
-#define SYS_fpathconf 0x2f28
-#define SYS_rename 0x3028
-#define SYS_setitimer 0x3828
-
-#define CLOCAL 127
-#endif
-#endif
diff --git a/mit-pthreads/machdep/sco-3.2v5/timers.h b/mit-pthreads/machdep/sco-3.2v5/timers.h
deleted file mode 100755
index cbc48ccc8d8..00000000000
--- a/mit-pthreads/machdep/sco-3.2v5/timers.h
+++ /dev/null
@@ -1,68 +0,0 @@
-/* ==== timers.h ============================================================
- * Copyright (c) 1994 by Chris Provenzano, proven@mit.edu
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. All advertising materials mentioning features or use of this software
- * must display the following acknowledgement:
- * This product includes software developed by Chris Provenzano.
- * 4. The name of Chris Provenzano may not be used to endorse or promote
- * products derived from this software without specific prior written
- * permission.
- *
- * THIS SOFTWARE IS PROVIDED BY CHRIS PROVENZANO ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL CHRIS PROVENZANO BE LIABLE FOR ANY
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- *
- * timers.h,v 1.50.8.1 1996/03/05 08:28:36 proven Exp
- *
- * Description : Basic timers header.
- *
- * 1.00 94/06/13 proven
- * -Started coding this file.
- */
-
-#ifndef _SYS_TIMERS_H_
-#define _SYS_TIMERS_H_
-
-#include <sys/types.h>
-#include <time.h>
-
-struct timespec {
- long tv_sec;
- long tv_nsec;
-};
-
-#define TIMEVAL_TO_TIMESPEC(tv, ts) { \
- (ts)->tv_sec = (tv)->tv_sec; \
- (ts)->tv_nsec = (tv)->tv_usec * 1000; \
-}
-#define TIMESPEC_TO_TIMEVAL(tv, ts) { \
- (tv)->tv_sec = (ts)->tv_sec; \
- (tv)->tv_usec = (ts)->tv_nsec / 1000; \
-}
-
-/*
- * New functions
- */
-
-__BEGIN_DECLS
-
-__END_DECLS
-
-#endif
diff --git a/mit-pthreads/machdep/sco-3.2v5/trash.can b/mit-pthreads/machdep/sco-3.2v5/trash.can
deleted file mode 100755
index 33edf65aab6..00000000000
--- a/mit-pthreads/machdep/sco-3.2v5/trash.can
+++ /dev/null
@@ -1 +0,0 @@
-make: *** No targets specified and no makefile found. Stop.
diff --git a/mit-pthreads/pg++ b/mit-pthreads/pg++
deleted file mode 100755
index 0d5f78929ae..00000000000
--- a/mit-pthreads/pg++
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/sh
-
-pthreads_root=/usr/local/pthreads
-build_root=/dr1/my/masters/mysql/mit-pthreads
-src_root=/dr1/my/masters/mysql/mit-pthreads
-
-include_dir='-I$pthreads_root/include'
-lib_dir='-L$pthreads_root/lib'
-libs='-lpthread -lm -lgcc -lpthread'
-
-# Might be a good idea to also provide a way to override pthreads_root
-# so that we can use this script in the build tree, before installation.
-if arg="$1" ; then
- case $arg in
- -notinstalled)
- include_dir='-I$build_root/include -I$src_root/include'
- lib_dir='-L$build_root/obj'
- shift
- ;;
- esac
-fi
-
-for arg in "$@" ; do
- case $arg in
- -nostdinc) include_dir= ;;
- -nostdlib | -c) libs= ;;
- esac
-done
-
-# Include the -L option in any case, just in case the user provided the
-# names of some libraries we've built threaded versions of.
-eval exec g++ '"$@"' $include_dir $lib_dir $libs
diff --git a/mit-pthreads/pgcc b/mit-pthreads/pgcc
deleted file mode 100755
index 6eed8a2d0f0..00000000000
--- a/mit-pthreads/pgcc
+++ /dev/null
@@ -1,32 +0,0 @@
-#!/bin/sh
-
-pthreads_root=/usr/local/pthreads
-build_root=/dr1/my/masters/mysql/mit-pthreads
-src_root=/dr1/my/masters/mysql/mit-pthreads
-
-include_dir='-I$pthreads_root/include'
-lib_dir='-L$pthreads_root/lib'
-libs='-lpthread -lm -lgcc -lpthread'
-
-# Might be a good idea to also provide a way to override pthreads_root
-# so that we can use this script in the build tree, before installation.
-if arg="$1" ; then
- case $arg in
- -notinstalled)
- include_dir='-I$build_root/include -I$src_root/include'
- lib_dir='-L$build_root/obj'
- shift
- ;;
- esac
-fi
-
-for arg in "$@" ; do
- case $arg in
- -nostdinc) include_dir= ;;
- -nostdlib | -c) libs= ;;
- esac
-done
-
-# Include the -L option in any case, just in case the user provided the
-# names of some libraries we've built threaded versions of.
-eval exec gcc '"$@"' $include_dir $lib_dir $libs
diff --git a/myisam/ft_boolean_search.c b/myisam/ft_boolean_search.c
index 0c5efcb50df..f2f3a806892 100644
--- a/myisam/ft_boolean_search.c
+++ b/myisam/ft_boolean_search.c
@@ -59,6 +59,7 @@ static double *nwghts=_nwghts+5; /* nwghts[i] = -0.5*1.5**i */
typedef struct st_ftb_expr FTB_EXPR;
struct st_ftb_expr {
FTB_EXPR *up;
+ byte *quot, *qend;
float weight;
uint flags;
my_off_t docid[2]; /* for index search and for scan */
@@ -76,7 +77,7 @@ typedef struct st_ftb_word {
my_off_t docid[2]; /* for index search and for scan */
uint ndepth;
int len;
- /* ... there can be docid cache added here. SerG */
+ /* ... docid cache can be added here. SerG */
byte word[1];
} FTB_WORD;
@@ -84,10 +85,12 @@ typedef struct st_ft_info {
struct _ft_vft *please;
MI_INFO *info;
uint keynr;
+ CHARSET_INFO *charset;
enum { UNINITIALIZED, READY, INDEX_SEARCH, INDEX_DONE /*, SCAN*/ } state;
uint with_scan;
FTB_EXPR *root;
QUEUE queue;
+ TREE no_dupes;
FTB_WORD **list;
MEM_ROOT mem_root;
} FTB;
@@ -101,18 +104,18 @@ int FTB_WORD_cmp(void *v __attribute__((unused)), FTB_WORD *a, FTB_WORD *b)
return i;
}
-int FTB_WORD_cmp_list(void *v __attribute__((unused)), FTB_WORD **a, FTB_WORD **b)
+int FTB_WORD_cmp_list(CHARSET_INFO *cs, FTB_WORD **a, FTB_WORD **b)
{
/* ORDER BY word DESC, ndepth DESC */
- int i= mi_compare_text(default_charset_info, (*b)->word+1,(*b)->len-1,
- (*a)->word+1,(*a)->len-1,0);
+ int i= mi_compare_text(cs, (*b)->word+1,(*b)->len-1,
+ (*a)->word+1,(*a)->len-1,0);
if (!i)
i=CMP_NUM((*b)->ndepth,(*a)->ndepth);
return i;
}
void _ftb_parse_query(FTB *ftb, byte **start, byte *end,
- FTB_EXPR *up, uint depth)
+ FTB_EXPR *up, uint depth)
{
byte res;
FTB_PARAM param;
@@ -125,16 +128,17 @@ void _ftb_parse_query(FTB *ftb, byte **start, byte *end,
return;
param.prev=' ';
+ param.quot=up->quot;
while ((res=ft_get_word(start,end,&w,&param)))
{
- int r=param.plusminus;
+ int r=param.plusminus;
float weight= (float) (param.pmsign ? nwghts : wghts)[(r>5)?5:((r<-5)?-5:r)];
switch (res) {
case 1: /* word found */
ftbw=(FTB_WORD *)alloc_root(&ftb->mem_root,
- sizeof(FTB_WORD) +
- (param.trunc ? MI_MAX_KEY_BUFF :
- w.len+extra));
+ sizeof(FTB_WORD) +
+ (param.trunc ? MI_MAX_KEY_BUFF :
+ w.len+extra));
ftbw->len=w.len+1;
ftbw->flags=0;
if (param.yesno>0) ftbw->flags|=FTB_FLAG_YES;
@@ -148,7 +152,7 @@ void _ftb_parse_query(FTB *ftb, byte **start, byte *end,
ftbw->word[0]=w.len;
if (param.yesno > 0) up->ythresh++;
queue_insert(& ftb->queue, (byte *)ftbw);
- ftb->with_scan|=param.trunc;
+ ftb->with_scan|=(param.trunc & FTB_FLAG_TRUNC);
break;
case 2: /* left bracket */
ftbe=(FTB_EXPR *)alloc_root(&ftb->mem_root, sizeof(FTB_EXPR));
@@ -159,17 +163,25 @@ void _ftb_parse_query(FTB *ftb, byte **start, byte *end,
ftbe->up=up;
ftbe->ythresh=ftbe->yweaks=0;
ftbe->docid[0]=ftbe->docid[1]=HA_POS_ERROR;
+ if ((ftbe->quot=param.quot)) ftb->with_scan|=2;
if (param.yesno > 0) up->ythresh++;
_ftb_parse_query(ftb, start, end, ftbe, depth+1);
+ param.quot=0;
break;
case 3: /* right bracket */
+ if (up->quot) up->qend=param.quot;
return;
}
}
return;
}
-void _ftb_init_index_search(FT_INFO *ftb)
+static int _ftb_no_dupes_cmp(void* not_used, const void *a,const void *b)
+{
+ return CMP_NUM((*((my_off_t*)a)), (*((my_off_t*)b)));
+}
+
+void _ftb_init_index_search(FT_INFO *ftb)
{
int i, r;
FTB_WORD *ftbw;
@@ -188,27 +200,48 @@ void _ftb_init_index_search(FT_INFO *ftb)
{
ftbw=(FTB_WORD *)(ftb->queue.root[i]);
- if (ftbw->flags&FTB_FLAG_TRUNC &&
- (ftbw->up->ythresh > test(ftbw->flags&FTB_FLAG_YES)))
- {
- /* no need to search for this prefix in the index -
- * it cannot ADD new matches, and to REMOVE half-matched
- * rows we do scan anyway */
- ftbw->docid[0]=HA_POS_ERROR;
- ftbw->up->yweaks++;
- continue;
- }
+ if (ftbw->flags&FTB_FLAG_TRUNC)
+ /* special treatment for truncation operator :((
+ 1. +trunc* and there're other (not +trunc*) words
+ | no need to search in the index, it can never ADD new rows
+ | to the result, and to remove half-matched rows we do scan anyway
+ 2. -trunc*
+ | same as 1.
+ 3. trunc*
+ | We have to index-search for this prefix.
+ | It may cause duplicates, as in the index (sorted by <word,docid>)
+ | <aaaa,row1>
+ | <aabb,row2>
+ | <aacc,row1>
+ | Searching for "aa*" will find row1 twice...
+ */
+ if ( test(ftbw->flags&FTB_FLAG_NO) || /* 2 */
+ (test(ftbw->flags&FTB_FLAG_YES) && /* 1 */
+ ftbw->up->ythresh - ftbw->up->yweaks >1)) /* 1 */
+ {
+ ftbw->docid[0]=HA_POS_ERROR;
+ ftbw->up->yweaks++;
+ continue;
+ }
+ else /* 3 */
+ {
+ if (!is_tree_inited(& ftb->no_dupes))
+ {
+ init_tree(& ftb->no_dupes,0,0,sizeof(my_off_t),
+ _ftb_no_dupes_cmp,0,0,0);
+ }
+ }
r=_mi_search(info, keyinfo, (uchar*) ftbw->word, ftbw->len,
SEARCH_FIND | SEARCH_BIGGER, keyroot);
if (!r)
{
- r= mi_compare_text(default_charset_info,
+ r= mi_compare_text(ftb->charset,
info->lastkey + (ftbw->flags&FTB_FLAG_TRUNC),
ftbw->len - (ftbw->flags&FTB_FLAG_TRUNC),
ftbw->word + (ftbw->flags&FTB_FLAG_TRUNC),
ftbw->len - (ftbw->flags&FTB_FLAG_TRUNC),
- 0);
+ 0);
}
if (r) /* not found */
{
@@ -241,14 +274,18 @@ FT_INFO * ft_init_boolean_search(MI_INFO *info, uint keynr, byte *query,
ftb->state=UNINITIALIZED;
ftb->info=info;
ftb->keynr=keynr;
+ ftb->charset= ((keynr==NO_SUCH_KEY) ?
+ default_charset_info :
+ info->s->keyinfo[keynr].seg->charset);
ftb->with_scan=0;
+ bzero(& ftb->no_dupes, sizeof(TREE));
init_alloc_root(&ftb->mem_root, 1024, 1024);
/* hack: instead of init_queue, we'll use reinit queue to be able
* to alloc queue with alloc_root()
*/
- res=ftb->queue.max_elements=query_len/(ft_min_word_len+1);
+ res=ftb->queue.max_elements=1+query_len/(ft_min_word_len+1);
ftb->queue.root=(byte **)alloc_root(&ftb->mem_root, (res+1)*sizeof(void*));
reinit_queue(& ftb->queue, res, 0, 0,
(int (*)(void*,byte*,byte*))FTB_WORD_cmp, ftb);
@@ -256,6 +293,7 @@ FT_INFO * ft_init_boolean_search(MI_INFO *info, uint keynr, byte *query,
ftbe->weight=1;
ftbe->flags=FTB_FLAG_YES;
ftbe->nos=1;
+ ftbe->quot=0;
ftbe->up=0;
ftbe->ythresh=ftbe->yweaks=0;
ftbe->docid[0]=ftbe->docid[1]=HA_POS_ERROR;
@@ -263,19 +301,44 @@ FT_INFO * ft_init_boolean_search(MI_INFO *info, uint keynr, byte *query,
_ftb_parse_query(ftb, &query, query+query_len, ftbe, 0);
ftb->list=(FTB_WORD **)alloc_root(&ftb->mem_root,
sizeof(FTB_WORD *)*ftb->queue.elements);
- memcpy(ftb->list, ftb->queue.root, sizeof(FTB_WORD *)*ftb->queue.elements);
+ memcpy(ftb->list, ftb->queue.root+1, sizeof(FTB_WORD *)*ftb->queue.elements);
qsort2(ftb->list, ftb->queue.elements, sizeof(FTB_WORD *),
- (qsort2_cmp)FTB_WORD_cmp_list, 0);
- if (ftb->queue.elements<2) ftb->with_scan=0;
+ (qsort2_cmp)FTB_WORD_cmp_list, ftb->charset);
+ if (ftb->queue.elements<2) ftb->with_scan &= ~FTB_FLAG_TRUNC;
ftb->state=READY;
return ftb;
}
-void _ftb_climb_the_tree(FTB_WORD *ftbw, uint mode)
+/* returns 1 if str0 contain str1 */
+int _ftb_strstr(const byte *s0, const byte *e0,
+ const byte *s1, const byte *e1,
+ CHARSET_INFO *cs)
{
+ const byte *p;
+
+ while (s0 < e0)
+ {
+ while (s0 < e0 && cs->to_upper[(uint) (uchar) *s0++] !=
+ cs->to_upper[(uint) (uchar) *s1])
+ /* no-op */;
+ if (s0 >= e0)
+ return 0;
+ p=s1+1;
+ while (s0 < e0 && p < e1 && cs->to_upper[(uint) (uchar) *s0++] ==
+ cs->to_upper[(uint) (uchar) *p++])
+ /* no-op */;
+ if (p >= e1)
+ return 1;
+ }
+ return 0;
+}
+
+void _ftb_climb_the_tree(FTB *ftb, FTB_WORD *ftbw, FT_SEG_ITERATOR *ftsi_orig)
+{
+ FT_SEG_ITERATOR ftsi;
FTB_EXPR *ftbe;
float weight=ftbw->weight;
- int yn=ftbw->flags, ythresh;
+ int yn=ftbw->flags, ythresh, mode=(ftsi_orig != 0);
my_off_t curdoc=ftbw->docid[mode];
for (ftbe=ftbw->up; ftbe; ftbe=ftbe->up)
@@ -291,11 +354,26 @@ void _ftb_climb_the_tree(FTB_WORD *ftbw, uint mode)
break;
if (yn & FTB_FLAG_YES)
{
- ftbe->cur_weight+=weight;
+ weight /= ftbe->ythresh;
+ ftbe->cur_weight += weight;
if (++ftbe->yesses == ythresh)
{
yn=ftbe->flags;
weight=ftbe->cur_weight*ftbe->weight;
+ if (mode && ftbe->quot)
+ {
+ int not_found=1;
+
+ memcpy(&ftsi, ftsi_orig, sizeof(ftsi));
+ while (_mi_ft_segiterator(&ftsi) && not_found)
+ {
+ if (!ftsi.pos)
+ continue;
+ not_found = ! _ftb_strstr(ftsi.pos, ftsi.pos+ftsi.len,
+ ftbe->quot, ftbe->qend, ftb->charset);
+ }
+ if (not_found) break;
+ } /* ftbe->quot */
}
else
break;
@@ -315,7 +393,8 @@ void _ftb_climb_the_tree(FTB_WORD *ftbw, uint mode)
}
else
{
- ftbe->cur_weight+=weight;
+ if (ftbe->ythresh) weight/=3;
+ ftbe->cur_weight += weight;
if (ftbe->yesses < ythresh)
break;
yn= (ftbe->yesses++ == ythresh) ? ftbe->flags : 0 ;
@@ -352,18 +431,18 @@ int ft_boolean_read_next(FT_INFO *ftb, char *record)
{
while (curdoc==(ftbw=(FTB_WORD *)queue_top(& ftb->queue))->docid[0])
{
- _ftb_climb_the_tree(ftbw,0);
+ _ftb_climb_the_tree(ftb, ftbw, 0);
/* update queue */
r=_mi_search(info, keyinfo, (uchar*) ftbw->word, USE_WHOLE_KEY,
SEARCH_BIGGER , keyroot);
if (!r)
{
- r= mi_compare_text(default_charset_info,
+ r= mi_compare_text(ftb->charset,
info->lastkey + (ftbw->flags&FTB_FLAG_TRUNC),
ftbw->len - (ftbw->flags&FTB_FLAG_TRUNC),
ftbw->word + (ftbw->flags&FTB_FLAG_TRUNC),
- ftbw->len - (ftbw->flags&FTB_FLAG_TRUNC),
+ ftbw->len - (ftbw->flags&FTB_FLAG_TRUNC),
0);
}
if (r) /* not found */
@@ -388,6 +467,11 @@ int ft_boolean_read_next(FT_INFO *ftb, char *record)
ftbe->yesses>=(ftbe->ythresh-ftbe->yweaks) && !ftbe->nos)
{
/* curdoc matched ! */
+ if (is_tree_inited(& ftb->no_dupes) &&
+ tree_insert(& ftb->no_dupes, &curdoc, 0)->count >1)
+ /* but it managed to get past this line once */
+ continue;
+
info->lastpos=curdoc;
info->update&= (HA_STATE_CHANGED | HA_STATE_ROW_CHANGED); /* why is this ? */
@@ -410,7 +494,7 @@ float ft_boolean_find_relevance(FT_INFO *ftb, byte *record, uint length)
FT_WORD word;
FTB_WORD *ftbw;
FTB_EXPR *ftbe;
- FT_SEG_ITERATOR ftsi;
+ FT_SEG_ITERATOR ftsi, ftsi2;
const byte *end;
my_off_t docid=ftb->info->lastpos;
@@ -419,17 +503,11 @@ float ft_boolean_find_relevance(FT_INFO *ftb, byte *record, uint length)
if (!ftb->queue.elements)
return 0;
-#if NOT_USED
- if (ftb->state == READY || ftb->state == INDEX_DONE)
- ftb->state=SCAN;
- else if (ftb->state != SCAN)
- return -3.0;
-#endif
-
if (ftb->keynr==NO_SUCH_KEY)
_mi_ft_segiterator_dummy_init(record, length, &ftsi);
else
_mi_ft_segiterator_init(ftb->info, ftb->keynr, record, &ftsi);
+ memcpy(&ftsi2, &ftsi, sizeof(ftsi));
while (_mi_ft_segiterator(&ftsi))
{
@@ -437,15 +515,15 @@ float ft_boolean_find_relevance(FT_INFO *ftb, byte *record, uint length)
continue;
end=ftsi.pos+ftsi.len;
- while (ft_simple_get_word((byte **)&ftsi.pos,(byte *)end,&word))
+ while (ft_simple_get_word((byte **) &ftsi.pos,(byte *) end, &word))
{
int a, b, c;
for (a=0, b=ftb->queue.elements, c=(a+b)/2; b-a>1; c=(a+b)/2)
{
ftbw=(FTB_WORD *)(ftb->list[c]);
- if (mi_compare_text(default_charset_info, word.pos,word.len,
- (uchar*) ftbw->word+1,ftbw->len-1,
- (ftbw->flags&FTB_FLAG_TRUNC) ) >0)
+ if (mi_compare_text(ftb->charset, word.pos, word.len,
+ (uchar*) ftbw->word+1, ftbw->len-1,
+ (my_bool) (ftbw->flags&FTB_FLAG_TRUNC)) >0)
b=c;
else
a=c;
@@ -453,14 +531,14 @@ float ft_boolean_find_relevance(FT_INFO *ftb, byte *record, uint length)
for (; c>=0; c--)
{
ftbw=(FTB_WORD *)(ftb->list[c]);
- if (mi_compare_text(default_charset_info, word.pos,word.len,
- (uchar*) ftbw->word+1,ftbw->len-1,
- (ftbw->flags&FTB_FLAG_TRUNC) ))
+ if (mi_compare_text(ftb->charset, word.pos,word.len,
+ (uchar*) ftbw->word+1,ftbw->len-1,
+ (my_bool) (ftbw->flags&FTB_FLAG_TRUNC)))
break;
if (ftbw->docid[1] == docid)
continue;
ftbw->docid[1]=docid;
- _ftb_climb_the_tree(ftbw,1);
+ _ftb_climb_the_tree(ftb, ftbw, &ftsi2);
}
}
}
@@ -479,6 +557,10 @@ float ft_boolean_find_relevance(FT_INFO *ftb, byte *record, uint length)
void ft_boolean_close_search(FT_INFO *ftb)
{
+ if (is_tree_inited(& ftb->no_dupes))
+ {
+ delete_tree(& ftb->no_dupes);
+ }
free_root(& ftb->mem_root, MYF(0));
my_free((gptr)ftb,MYF(0));
}
diff --git a/myisam/ft_dump.c b/myisam/ft_dump.c
index c40145b87ed..25de17d5db4 100644
--- a/myisam/ft_dump.c
+++ b/myisam/ft_dump.c
@@ -14,22 +14,46 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-/* Written by Sergei A. Golubchik, who has a shared copyright to this code */
+/* Written by Sergei A. Golubchik, who has a shared copyright to this code
+ added support for long options (my_getopt) 22.5.2002 by Jani Tolonen */
#include "ftdefs.h"
-#include <getopt.h>
+#include <my_getopt.h>
static void get_options(int argc,char *argv[]);
-static void usage(char *argv[]);
+static void usage();
static void complain(int val);
-static int count=0, stats=0, dump=0, verbose=0, lstats=0;
+static int count=0, stats=0, dump=0, lstats=0;
+static my_bool verbose;
static char *query=NULL;
static uint lengths[256];
#define MAX_LEN (HA_FT_MAXLEN+10)
#define HOW_OFTEN_TO_WRITE 10000
+static struct my_option my_long_options[] =
+{
+ {"dump", 'd', "Dump index (incl. data offsets and word weights)",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"stats", 's', "Report global stats",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"verbose", 'v', "Be verbose",
+ (gptr*) &verbose, (gptr*) &verbose, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"count", 'c', "Calculate per-word stats (counts and global weights)",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"length", 'l', "Report length distribution",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"execute", 'e', "Execute given query", (gptr*) &query, (gptr*) &query, 0,
+ GET_STR_ALLOC, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"help", 'h', "Display help and exit",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"help", '?', "Synonym for -h",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ { 0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
+};
+
+
int main(int argc,char *argv[])
{
int error=0;
@@ -52,7 +76,7 @@ int main(int argc,char *argv[])
setbuf(stdout,NULL);
if (argc-optind < 2)
- usage(argv);
+ usage();
if (!(info=mi_open(argv[optind],2,HA_OPEN_ABORT_IF_LOCKED)))
goto err;
@@ -184,45 +208,56 @@ err:
return 0;
}
-const char *options="dslcvh";
+
+static my_bool
+get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
+ char *argument __attribute__((unused)))
+{
+ switch(optid) {
+ case 'd':
+ dump=1;
+ complain(count || query);
+ break;
+ case 's':
+ stats=1;
+ complain(query!=0);
+ break;
+ case 'c':
+ count= 1;
+ complain(dump || query);
+ break;
+ case 'l':
+ lstats=1;
+ complain(query!=0);
+ break;
+ case 'e':
+ complain(dump || count || stats);
+ break;
+ case '?':
+ case 'h':
+ usage();
+ }
+ return 0;
+}
static void get_options(int argc, char *argv[])
{
- int c;
+ int ho_error;
- while ((c=getopt(argc,argv,options)) != -1)
- {
- switch(c) {
- case 'd': dump=1; complain(count || query); break;
- case 's': stats=1; complain(query!=0); break;
- case 'v': verbose=1; break;
- case 'c': count=1; complain(dump || query); break;
- case 'l': lstats=1; complain(query!=0); break;
- case 'e': query=my_strdup(optarg,MYF(MY_FAE)); complain(dump || count || stats); break;
- case '?':
- case 'h':
- default:
- usage(argv);
- }
- }
- return;
+ if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
+ exit(ho_error);
} /* get options */
-static void usage(char *argv[])
+
+static void usage()
{
- printf("\n\
-Use: %s [-%s] <table_name> <index_no>\n\
-\n\
--d Dump index (incl. data offsets and word weights)\n\
--s Report global stats\n\
--c Calculate per-word stats (counts and global weights)\n\
--l Report length distribution\n\
--v Be verbose\n\
--h This text\n\
-", *argv, options);
+ printf("Use: ft_dump <table_name> <index_no>\n");
+ my_print_help(my_long_options);
+ my_print_variables(my_long_options);
exit(1);
}
+
static void complain(int val) /* Kinda assert :-) */
{
if (val)
diff --git a/myisam/ft_eval.c b/myisam/ft_eval.c
index c498725daab..e196121d7af 100644
--- a/myisam/ft_eval.c
+++ b/myisam/ft_eval.c
@@ -11,18 +11,32 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-/* Written by Sergei A. Golubchik, who has a shared copyright to this code */
+/* Written by Sergei A. Golubchik, who has a shared copyright to this code
+ added support for long options (my_getopt) 22.5.2002 by Jani Tolonen */
#include "ftdefs.h"
#include "ft_eval.h"
#include <stdarg.h>
-#include <getopt.h>
+#include <my_getopt.h>
static void print_error(int exit_code, const char *fmt,...);
static void get_options(int argc, char *argv[]);
static int create_record(char *pos, FILE *file);
+static void usage();
-int main(int argc,char *argv[])
+static struct my_option my_long_options[] =
+{
+ {"", 's', "", 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"", 'q', "", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"", 'S', "", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"", '#', "", 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"", 'V', "", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"", '?', "", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"", 'h', "", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ { 0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
+};
+
+int main(int argc, char *argv[])
{
MI_INFO *file;
int i,j;
@@ -81,7 +95,9 @@ int main(int argc,char *argv[])
if (!silent)
printf("- Reading rows with key\n");
for(i=1;create_record(record,qf);i++) {
- FT_DOCLIST *result; double w; int t,err;
+ FT_DOCLIST *result;
+ double w;
+ int t, err;
result=ft_nlq_init_search(file,0,blob_record,(uint) strlen(blob_record),1);
if(!result) {
@@ -94,7 +110,7 @@ int main(int argc,char *argv[])
t=uint2korr(read_record);
w=ft_nlq_get_relevance(result);
printf("%d %.*s %f\n",i,t,read_record+2,w);
- }
+ }
if(err != HA_ERR_END_OF_FILE) {
printf("ft_read_next %d failed with errno %3d\n",j,my_errno);
goto err;
@@ -106,58 +122,65 @@ int main(int argc,char *argv[])
my_end(MY_CHECK_ERROR);
return (0);
-err:
+
+ err:
printf("got error: %3d when using myisam-database\n",my_errno);
- return 1; /* skipp warning */
+ return 1; /* skip warning */
}
-static void get_options(int argc,char *argv[])
-{
- int c;
- char *options=(char*) "Vh#:qSs:";
- while ((c=getopt(argc,argv,options)) != -1)
- {
- switch(c) {
- case 's':
- if(stopwordlist && stopwordlist!=ft_precompiled_stopwords) break;
- {
- FILE *f; char s[HA_FT_MAXLEN]; int i=0,n=SWL_INIT;
-
- if(!(stopwordlist=(const char**) malloc(n*sizeof(char *))))
- print_error(1,"malloc(%d)",n*sizeof(char *));
- if(!(f=fopen(optarg,"r")))
- print_error(1,"fopen(%s)",optarg);
- while(!feof(f)) {
- if(!(fgets(s,HA_FT_MAXLEN,f)))
- print_error(1,"fgets(s,%d,%s)",HA_FT_MAXLEN,optarg);
- if(!(stopwordlist[i++]=strdup(s)))
- print_error(1,"strdup(%s)",s);
- if(i>=n) {
- n+=SWL_PLUS;
- if(!(stopwordlist=(const char**) realloc((char*) stopwordlist,n*sizeof(char *))))
- print_error(1,"realloc(%d)",n*sizeof(char *));
- }
+static my_bool
+get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
+ char *argument)
+{
+ switch(optid) {
+ case 's':
+ if(stopwordlist && stopwordlist!=ft_precompiled_stopwords) break;
+ {
+ FILE *f; char s[HA_FT_MAXLEN]; int i=0,n=SWL_INIT;
+
+ if(!(stopwordlist=(const char**) malloc(n*sizeof(char *))))
+ print_error(1,"malloc(%d)",n*sizeof(char *));
+ if(!(f=fopen(argument,"r")))
+ print_error(1,"fopen(%s)",argument);
+ while(!feof(f)) {
+ if(!(fgets(s,HA_FT_MAXLEN,f)))
+ print_error(1,"fgets(s,%d,%s)",HA_FT_MAXLEN,argument);
+ if(!(stopwordlist[i++]=strdup(s)))
+ print_error(1,"strdup(%s)",s);
+ if(i>=n) {
+ n+=SWL_PLUS;
+ if(!(stopwordlist=(const char**) realloc((char*) stopwordlist,n*sizeof(char *))))
+ print_error(1,"realloc(%d)",n*sizeof(char *));
}
- fclose(f);
- stopwordlist[i]=NULL;
- break;
}
- case 'q': silent=1; break;
- case 'S': if(stopwordlist==ft_precompiled_stopwords) stopwordlist=NULL; break;
- case '#':
- DEBUGGER_ON;
- DBUG_PUSH (optarg);
+ fclose(f);
+ stopwordlist[i]=NULL;
break;
- case 'V':
- case '?':
- case 'h':
- default:
- printf("%s -[%s] <d_file> <q_file>\n", argv[0], options);
- exit(0);
}
+ case 'q': silent=1; break;
+ case 'S': if(stopwordlist==ft_precompiled_stopwords) stopwordlist=NULL; break;
+ case '#':
+ DEBUGGER_ON;
+ DBUG_PUSH (argument);
+ break;
+ case 'V':
+ case '?':
+ case 'h':
+ usage();
+ exit(1);
}
+ return 0;
+}
+
+static void get_options(int argc, char *argv[])
+{
+ int ho_error;
+
+ if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
+ exit(ho_error);
+
if(!(d_file=argv[optind])) print_error(1,"No d_file");
if(!(df=fopen(d_file,"r")))
print_error(1,"fopen(%s)",d_file);
@@ -206,3 +229,11 @@ static void print_error(int exit_code, const char *fmt,...)
va_end(args);
exit(exit_code);
}
+
+
+static void usage()
+{
+ printf("%s [options]\n", my_progname);
+ my_print_help(my_long_options);
+ my_print_variables(my_long_options);
+}
diff --git a/myisam/ft_nlq_search.c b/myisam/ft_nlq_search.c
index 5b12c4d4571..d9730110677 100644
--- a/myisam/ft_nlq_search.c
+++ b/myisam/ft_nlq_search.c
@@ -37,6 +37,7 @@ struct st_ft_info {
typedef struct st_all_in_one {
MI_INFO *info;
uint keynr;
+ CHARSET_INFO *charset;
uchar *keybuff;
MI_KEYDEF *keyinfo;
my_off_t key_root;
@@ -93,9 +94,10 @@ static int walk_and_match(FT_WORD *word, uint32 count, ALL_IN_ONE *aio)
while(!r)
{
- if (mi_compare_text(default_charset_info,
+ if (mi_compare_text(aio->charset,
aio->info->lastkey,keylen,
- aio->keybuff,keylen,0)) break;
+ aio->keybuff,keylen,0))
+ break;
#if HA_FT_WTYPE == HA_KEYTYPE_FLOAT
#ifdef EVAL_RUN
@@ -184,8 +186,9 @@ FT_INFO *ft_init_nlq_search(MI_INFO *info, uint keynr, byte *query,
aio.info=info;
aio.keynr=keynr;
- aio.keybuff=info->lastkey+info->s->base.max_key_length;
aio.keyinfo=info->s->keyinfo+keynr;
+ aio.charset=aio.keyinfo->seg->charset;
+ aio.keybuff=info->lastkey+info->s->base.max_key_length;
aio.key_root=info->s->state.key_root[keynr];
bzero(&allocated_wtree,sizeof(allocated_wtree));
@@ -193,6 +196,7 @@ FT_INFO *ft_init_nlq_search(MI_INFO *info, uint keynr, byte *query,
init_tree(&aio.dtree,0,0,sizeof(FT_SUPERDOC),(qsort_cmp2)&FT_SUPERDOC_cmp,0,
NULL, NULL);
+ ft_parse_init(&allocated_wtree, aio.charset);
if(ft_parse(&allocated_wtree,query,query_len))
goto err;
diff --git a/myisam/ft_parser.c b/myisam/ft_parser.c
index 93c574841f7..15a17ed6f3b 100644
--- a/myisam/ft_parser.c
+++ b/myisam/ft_parser.c
@@ -35,12 +35,10 @@ typedef struct st_ft_docstat {
} FT_DOCSTAT;
-static int FT_WORD_cmp(void* cmp_arg, FT_WORD *w1, FT_WORD *w2)
+static int FT_WORD_cmp(CHARSET_INFO* cs, FT_WORD *w1, FT_WORD *w2)
{
- return mi_compare_text(default_charset_info,
- (uchar*) w1->pos, w1->len,
- (uchar*) w2->pos, w2->len,
- (my_bool) (cmp_arg != 0));
+ return mi_compare_text(cs, (uchar*) w1->pos, w1->len,
+ (uchar*) w2->pos, w2->len, 0);
}
static int walk_and_copy(FT_WORD *word,uint32 count,FT_DOCSTAT *docstat)
@@ -139,13 +137,20 @@ byte ft_get_word(byte **start, byte *end, FT_WORD *word, FTB_PARAM *param)
default_charset_info correctly
*/
if (true_word_char(default_charset_info,*doc)) break;
- if (*doc == FTB_LBR || *doc == FTB_RBR)
+ if (*doc == FTB_RQUOT && param->quot) {
+ param->quot=doc;
+ *start=doc+1;
+ return 3; /* FTB_RBR */
+ }
+ if ((*doc == FTB_LBR || *doc == FTB_RBR || *doc == FTB_LQUOT)
+ && !param->quot)
{
/* param->prev=' '; */
*start=doc+1;
+ if (*doc == FTB_LQUOT) param->quot=*start;
return (*doc == FTB_RBR)+2;
}
- if (param->prev == ' ')
+ if (param->prev == ' ' && !param->quot)
{
if (*doc == FTB_YES ) { param->yesno=+1; continue; } else
if (*doc == FTB_EGAL) { param->yesno= 0; continue; } else
@@ -155,7 +160,8 @@ byte ft_get_word(byte **start, byte *end, FT_WORD *word, FTB_PARAM *param)
if (*doc == FTB_NEG ) { param->pmsign=!param->pmsign; continue; }
}
param->prev=*doc;
- param->yesno=param->plusminus=param->pmsign=0;
+ param->yesno=(param->quot != 0);
+ param->plusminus=param->pmsign=0;
}
mwc=0;
@@ -211,16 +217,17 @@ byte ft_simple_get_word(byte **start, byte *end, FT_WORD *word)
return 0;
}
+void ft_parse_init(TREE *wtree, CHARSET_INFO *cs)
+{
+ if (!is_tree_inited(wtree))
+ init_tree(wtree,0,0,sizeof(FT_WORD),(qsort_cmp2)&FT_WORD_cmp,0,NULL, cs);
+}
+
int ft_parse(TREE *wtree, byte *doc, int doclen)
{
byte *end=doc+doclen;
FT_WORD w;
- if (!is_tree_inited(wtree))
- {
- init_tree(wtree,0,0,sizeof(FT_WORD),(qsort_cmp2)&FT_WORD_cmp,0,NULL, NULL);
- }
-
while (ft_simple_get_word(&doc,end,&w))
{
if (!tree_insert(wtree, &w, 0, wtree->custom_arg))
diff --git a/myisam/ft_test1.c b/myisam/ft_test1.c
index caa41d4a8c5..6b2493918ff 100644
--- a/myisam/ft_test1.c
+++ b/myisam/ft_test1.c
@@ -14,11 +14,12 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-/* Written by Sergei A. Golubchik, who has a shared copyright to this code */
+/* Written by Sergei A. Golubchik, who has a shared copyright to this code
+ added support for long options (my_getopt) 22.5.2002 by Jani Tolonen */
#include "ftdefs.h"
#include "ft_test1.h"
-#include <getopt.h>
+#include <my_getopt.h>
static int key_field=FIELD_VARCHAR,extra_field=FIELD_SKIP_ENDSPACE;
static uint key_length=200,extra_length=50;
@@ -33,8 +34,26 @@ static char record[MAX_REC_LENGTH],read_record[MAX_REC_LENGTH];
static int run_test(const char *filename);
static void get_options(int argc, char *argv[]);
static void create_record(char *, int);
+static void usage();
-int main(int argc,char *argv[])
+static struct my_option my_long_options[] =
+{
+ {"", 'v', "", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"", '?', "", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"", 'h', "", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"", 'V', "", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"", 'v', "", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"", 's', "", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"", 'N', "", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"", 'S', "", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"", 'K', "", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"", 'F', "", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"", 'U', "", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"", '#', "", 0, 0, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
+ { 0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
+};
+
+int main(int argc, char *argv[])
{
MY_INIT(argv[0]);
@@ -173,7 +192,7 @@ static int run_test(const char *filename)
return (0);
err:
printf("got error: %3d when using myisam-database\n",my_errno);
- return 1; /* skipp warning */
+ return 1; /* skip warning */
}
static char blob_key[MAX_REC_LENGTH];
@@ -232,34 +251,47 @@ void create_record(char *pos, int n)
}
}
+
+static my_bool
+get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
+ char *argument)
+{
+ switch(optid) {
+ case 'v': verbose=1; break;
+ case 's': silent=1; break;
+ case 'F': no_fulltext=1; no_search=1;
+ case 'U': skip_update=1; break;
+ case 'K': no_keys=no_search=1; break;
+ case 'N': no_search=1; break;
+ case 'S': no_stopwords=1; break;
+ case '#':
+ DEBUGGER_ON;
+ DBUG_PUSH (argument);
+ break;
+ case 'V':
+ case '?':
+ case 'h':
+ usage();
+ exit(1);
+ }
+ return 0;
+}
+
/* Read options */
static void get_options(int argc,char *argv[])
{
- int c;
- const char *options="hVvsNSKFU#:";
+ int ho_error;
- while ((c=getopt(argc,argv,options)) != -1)
- {
- switch(c) {
- case 'v': verbose=1; break;
- case 's': silent=1; break;
- case 'F': no_fulltext=1; no_search=1;
- case 'U': skip_update=1; break;
- case 'K': no_keys=no_search=1; break;
- case 'N': no_search=1; break;
- case 'S': no_stopwords=1; break;
- case '#':
- DEBUGGER_ON;
- DBUG_PUSH (optarg);
- break;
- case 'V':
- case '?':
- case 'h':
- default:
- printf("%s -[%s]\n", argv[0], options);
- exit(0);
- }
- }
+ if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
+ exit(ho_error);
return;
} /* get options */
+
+
+static void usage()
+{
+ printf("%s [options]\n", my_progname);
+ my_print_help(my_long_options);
+ my_print_variables(my_long_options);
+}
diff --git a/myisam/ft_update.c b/myisam/ft_update.c
index 04b6becde86..3c9b31207c0 100644
--- a/myisam/ft_update.c
+++ b/myisam/ft_update.c
@@ -90,16 +90,13 @@ uint _mi_ft_parse(TREE *parsed, MI_INFO *info, uint keynr, const byte *record)
FT_SEG_ITERATOR ftsi;
_mi_ft_segiterator_init(info, keynr, record, &ftsi);
+ ft_parse_init(parsed, info->s->keyinfo[keynr].seg->charset);
while (_mi_ft_segiterator(&ftsi))
if (ftsi.pos)
if (ft_parse(parsed, (byte *)ftsi.pos, ftsi.len))
return 1;
- /* Handle the case where all columns are NULL */
- if (!is_tree_inited(parsed) && ft_parse(parsed, (byte*) "", 0))
- return 1;
- else
- return 0;
+ return 0;
}
FT_WORD * _mi_ft_parserecord(MI_INFO *info, uint keynr,
@@ -153,6 +150,7 @@ static int _mi_ft_erase(MI_INFO *info, uint keynr, byte *keybuf, FT_WORD *wlist,
int _mi_ft_cmp(MI_INFO *info, uint keynr, const byte *rec1, const byte *rec2)
{
FT_SEG_ITERATOR ftsi1, ftsi2;
+ CHARSET_INFO *cs=info->s->keyinfo[keynr].seg->charset;
_mi_ft_segiterator_init(info, keynr, rec1, &ftsi1);
_mi_ft_segiterator_init(info, keynr, rec2, &ftsi2);
@@ -160,9 +158,8 @@ int _mi_ft_cmp(MI_INFO *info, uint keynr, const byte *rec1, const byte *rec2)
{
if ((ftsi1.pos != ftsi2.pos) &&
(!ftsi1.pos || !ftsi2.pos ||
- mi_compare_text(default_charset_info,
- (uchar*) ftsi1.pos,ftsi1.len,
- (uchar*) ftsi2.pos,ftsi2.len,0)))
+ mi_compare_text(cs, (uchar*) ftsi1.pos,ftsi1.len,
+ (uchar*) ftsi2.pos,ftsi2.len,0)))
return THOSE_TWO_DAMN_KEYS_ARE_REALLY_DIFFERENT;
}
return GEE_THEY_ARE_ABSOLUTELY_IDENTICAL;
@@ -174,6 +171,7 @@ int _mi_ft_update(MI_INFO *info, uint keynr, byte *keybuf,
{
int error= -1;
FT_WORD *oldlist,*newlist, *old_word, *new_word;
+ CHARSET_INFO *cs=info->s->keyinfo[keynr].seg->charset;
uint key_length;
int cmp, cmp2;
@@ -185,9 +183,8 @@ int _mi_ft_update(MI_INFO *info, uint keynr, byte *keybuf,
error=0;
while(old_word->pos && new_word->pos)
{
- cmp= mi_compare_text(default_charset_info,
- (uchar*) old_word->pos,old_word->len,
- (uchar*) new_word->pos,new_word->len,0);
+ cmp= mi_compare_text(cs, (uchar*) old_word->pos,old_word->len,
+ (uchar*) new_word->pos,new_word->len,0);
cmp2= cmp ? 0 : (fabs(old_word->weight - new_word->weight) > 1.e-5);
if (cmp < 0 || cmp2)
diff --git a/myisam/ftdefs.h b/myisam/ftdefs.h
index f829a5f0c3a..22a81ca4f9c 100644
--- a/myisam/ftdefs.h
+++ b/myisam/ftdefs.h
@@ -95,6 +95,8 @@ extern ulong collstat;
#define FTB_RBR (ft_boolean_syntax[6])
#define FTB_NEG (ft_boolean_syntax[7])
#define FTB_TRUNC (ft_boolean_syntax[8])
+#define FTB_LQUOT (ft_boolean_syntax[10])
+#define FTB_RQUOT (ft_boolean_syntax[11])
typedef struct st_ft_word {
byte * pos;
@@ -111,6 +113,7 @@ typedef struct st_ftb_param {
int plusminus;
bool pmsign;
bool trunc;
+ byte *quot;
} FTB_PARAM;
int is_stopword(char *word, uint len);
@@ -130,8 +133,9 @@ void _mi_ft_segiterator_init(MI_INFO *, uint, const byte *, FT_SEG_ITERATOR *);
void _mi_ft_segiterator_dummy_init(const byte *, uint, FT_SEG_ITERATOR *);
uint _mi_ft_segiterator(FT_SEG_ITERATOR *);
+void ft_parse_init(TREE *, CHARSET_INFO *);
int ft_parse(TREE *, byte *, int);
-FT_WORD * ft_linearize(/*MI_INFO *, uint, byte *, */TREE *);
+FT_WORD * ft_linearize(TREE *);
FT_WORD * _mi_ft_parserecord(MI_INFO *, uint, byte *, const byte *);
uint _mi_ft_parse(TREE *parsed, MI_INFO *info, uint keynr, const byte *record);
diff --git a/myisam/mi_check.c b/myisam/mi_check.c
index 9dceccc164f..212659f5828 100644
--- a/myisam/mi_check.c
+++ b/myisam/mi_check.c
@@ -14,14 +14,14 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-/* Descript, check and repair of ISAM tables */
+/* Descript, check and repair of MyISAM tables */
#include "ftdefs.h"
#include <m_ctype.h>
#include <stdarg.h>
-#include <getopt.h>
+#include <my_getopt.h>
#include <assert.h>
-#ifdef HAVE_SYS_VADVICE_H
+#ifdef HAVE_SYS_VADVISE_H
#include <sys/vadvise.h>
#endif
#ifdef HAVE_SYS_MMAN_H
diff --git a/myisam/mi_test1.c b/myisam/mi_test1.c
index b477263dd4a..88cbbb39663 100644
--- a/myisam/mi_test1.c
+++ b/myisam/mi_test1.c
@@ -17,20 +17,23 @@
/* Testing of the basic functions of a MyISAM table */
#include "myisam.h"
-#include <getopt.h>
+#include <my_getopt.h>
#include <m_string.h>
#define MAX_REC_LENGTH 1024
-static int rec_pointer_size=0,verbose=0,flags[50];
+static void usage();
+
+static int rec_pointer_size=0, flags[50];
static int key_field=FIELD_SKIP_PRESPACE,extra_field=FIELD_SKIP_ENDSPACE;
static int key_type=HA_KEYTYPE_NUM;
static int create_flag=0;
-static uint insert_count= 1000,update_count=1000,remove_count=1000;
-static uint pack_keys=0,pack_seg=0,null_fields=0,key_length=6,skip_update=0;
-static uint unique_key=HA_NOSAME,key_cacheing=0,opt_unique=0;
-static uint silent;
+static uint insert_count, update_count, remove_count;
+static uint pack_keys=0, pack_seg=0, key_length;
+static uint unique_key=HA_NOSAME;
+static my_bool key_cacheing, null_fields, silent, skip_update, opt_unique,
+ verbose;
static MI_COLUMNDEF recinfo[4];
static MI_KEYDEF keyinfo[10];
static HA_KEYSEG keyseg[10];
@@ -502,139 +505,155 @@ static void update_record(char *record)
}
-static struct option long_options[] =
+static struct my_option my_long_options[] =
{
- {"checksum", no_argument, 0, 'c'},
+ {"checksum", 'c', "Undocumented",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
#ifndef DBUG_OFF
- {"debug", required_argument, 0, '#'},
+ {"debug", '#', "Undocumented",
+ 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
#endif
- {"delete_rows", required_argument, 0, 'd'},
- {"help", no_argument, 0, '?'},
- {"insert_rows", required_argument, 0, 'i'},
- {"key_alpha", no_argument, 0, 'a'},
- {"key_binary_pack", no_argument, 0, 'B'},
- {"key_blob", required_argument, 0, 'b'},
- {"key_cache", no_argument, 0, 'K'},
- {"key_length", required_argument, 0, 'k'},
- {"key_multiple", no_argument, 0, 'm'},
- {"key_prefix_pack", no_argument, 0, 'P'},
- {"key_space_pack", no_argument, 0, 'p'},
- {"key_varchar", no_argument, 0, 'w'},
- {"null_fields", no_argument, 0, 'N'},
- {"row_fixed_size", no_argument, 0, 'S'},
- {"row_pointer_size", required_argument, 0, 'R'},
- {"silent", no_argument, 0, 's'},
- {"skip_update", no_argument, 0, 'U'},
- {"unique", no_argument, 0, 'C'},
- {"update_rows", required_argument, 0, 'u'},
- {"verbose", no_argument, 0, 'v'},
- {"version", no_argument, 0, 'V'},
- {0, 0, 0, 0}
+ {"delete_rows", 'd', "Undocumented", (gptr*) &remove_count,
+ (gptr*) &remove_count, 0, GET_UINT, REQUIRED_ARG, 1000, 0, 0, 0, 0, 0},
+ {"help", '?', "Display help and exit",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"insert_rows", 'i', "Undocumented", (gptr*) &insert_count,
+ (gptr*) &insert_count, 0, GET_UINT, REQUIRED_ARG, 1000, 0, 0, 0, 0, 0},
+ {"key_alpha", 'a', "Undocumented",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"key_binary_pack", 'B', "Undocumented",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"key_blob", 'b', "Undocumented",
+ 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"key_cache", 'K', "Undocumented", (gptr*) &key_cacheing,
+ (gptr*) &key_cacheing, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"key_length", 'k', "Undocumented", (gptr*) &key_length, (gptr*) &key_length,
+ 0, GET_UINT, REQUIRED_ARG, 6, 0, 0, 0, 0, 0},
+ {"key_multiple", 'm', "Undocumented",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"key_prefix_pack", 'P', "Undocumented",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"key_space_pack", 'p', "Undocumented",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"key_varchar", 'w', "Undocumented",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"null_fields", 'N', "Undocumented",
+ (gptr*) &null_fields, (gptr*) &null_fields, 0, GET_BOOL, NO_ARG,
+ 0, 0, 0, 0, 0, 0},
+ {"row_fixed_size", 'S', "Undocumented",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"row_pointer_size", 'R', "Undocumented", (gptr*) &rec_pointer_size,
+ (gptr*) &rec_pointer_size, 0, GET_INT, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"silent", 's', "Undocumented",
+ (gptr*) &silent, (gptr*) &silent, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"skip_update", 'U', "Undocumented", (gptr*) &skip_update,
+ (gptr*) &skip_update, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"unique", 'C', "Undocumented", (gptr*) &opt_unique, (gptr*) &opt_unique, 0,
+ GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"update_rows", 'u', "Undocumented", (gptr*) &update_count,
+ (gptr*) &update_count, 0, GET_UINT, REQUIRED_ARG, 1000, 0, 0, 0, 0, 0},
+ {"verbose", 'v', "Be more verbose", (gptr*) &verbose, (gptr*) &verbose, 0,
+ GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"version", 'V', "Print version number and exit",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ { 0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
};
+static my_bool
+get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
+ char *argument)
+{
+ switch(optid) {
+ case 'a':
+ key_type= HA_KEYTYPE_TEXT;
+ break;
+ case 'c':
+ create_flag|= HA_CREATE_CHECKSUM;
+ break;
+ case 'R': /* Length of record pointer */
+ if (rec_pointer_size > 3)
+ rec_pointer_size=0;
+ break;
+ case 'P':
+ pack_keys= HA_PACK_KEY; /* Use prefix compression */
+ break;
+ case 'B':
+ pack_keys= HA_BINARY_PACK_KEY; /* Use binary compression */
+ break;
+ case 'S':
+ if (key_field == FIELD_VARCHAR)
+ {
+ create_flag=0; /* Static sized varchar */
+ }
+ else if (key_field != FIELD_BLOB)
+ {
+ key_field=FIELD_NORMAL; /* static-size record */
+ extra_field=FIELD_NORMAL;
+ }
+ break;
+ case 'p':
+ pack_keys=HA_PACK_KEY; /* Use prefix + space packing */
+ pack_seg=HA_SPACE_PACK;
+ key_type=HA_KEYTYPE_TEXT;
+ break;
+ case 'm':
+ unique_key=0;
+ break;
+ case 'b':
+ key_field=FIELD_BLOB; /* blob key */
+ extra_field= FIELD_BLOB;
+ pack_seg|= HA_BLOB_PART;
+ key_type= HA_KEYTYPE_VARTEXT;
+ break;
+ case 'k':
+ if (key_length < 4 || key_length > MI_MAX_KEY_LENGTH)
+ {
+ fprintf(stderr,"Wrong key length\n");
+ exit(1);
+ }
+ break;
+ case 'w':
+ key_field=FIELD_VARCHAR; /* varchar keys */
+ extra_field= FIELD_VARCHAR;
+ key_type= HA_KEYTYPE_VARTEXT;
+ pack_seg|= HA_VAR_LENGTH;
+ create_flag|= HA_PACK_RECORD;
+ break;
+ case 'K': /* Use key cacheing */
+ key_cacheing=1;
+ break;
+ case 'V':
+ printf("test1 Ver 1.2 \n");
+ exit(0);
+ case '#':
+ DEBUGGER_ON;
+ DBUG_PUSH (argument);
+ break;
+ case '?':
+ usage();
+ exit(1);
+ }
+ return 0;
+}
+
+
/* Read options */
-static void get_options(int argc,char *argv[])
+static void get_options(int argc, char *argv[])
{
- int c,option_index=0;
+ int ho_error;
+
+ if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
+ exit(ho_error);
- while ((c=getopt_long(argc,argv,"abBcCd:i:k:KmPR:SspNu:UvVw#:",
- long_options, &option_index)) != EOF)
- {
- switch(c) {
- case 'a':
- key_type= HA_KEYTYPE_TEXT;
- break;
- case 'c':
- create_flag|= HA_CREATE_CHECKSUM;
- break;
- case 'C':
- opt_unique=1;
- break;
- case 'R': /* Length of record pointer */
- rec_pointer_size=atoi(optarg);
- if (rec_pointer_size > 3)
- rec_pointer_size=0;
- break;
- case 'P':
- pack_keys= HA_PACK_KEY; /* Use prefix compression */
- break;
- case 'B':
- pack_keys= HA_BINARY_PACK_KEY; /* Use binary compression */
- break;
- case 'S':
- if (key_field == FIELD_VARCHAR)
- {
- create_flag=0; /* Static sized varchar */
- }
- else if (key_field != FIELD_BLOB)
- {
- key_field=FIELD_NORMAL; /* static-size record */
- extra_field=FIELD_NORMAL;
- }
- break;
- case 'p':
- pack_keys=HA_PACK_KEY; /* Use prefix + space packing */
- pack_seg=HA_SPACE_PACK;
- key_type=HA_KEYTYPE_TEXT;
- break;
- case 'N':
- null_fields=1; /* First key part may be null */
- break;
- case 'v': /* verbose */
- verbose=1;
- break;
- case 'd':
- remove_count=atoi(optarg);
- break;
- case 'i':
- insert_count=atoi(optarg);
- break;
- case 'u':
- update_count=atoi(optarg);
- break;
- case 'U':
- skip_update=1;
- break;
- case 'm':
- unique_key=0;
- break;
- case 'b':
- key_field=FIELD_BLOB; /* blob key */
- extra_field= FIELD_BLOB;
- pack_seg|= HA_BLOB_PART;
- key_type= HA_KEYTYPE_VARTEXT;
- break;
- case 'k':
- key_length=atoi(optarg);
- if (key_length < 4 || key_length > MI_MAX_KEY_LENGTH)
- {
- fprintf(stderr,"Wrong key length\n");
- exit(1);
- }
- break;
- case 's':
- silent=1;
- break;
- case 'w':
- key_field=FIELD_VARCHAR; /* varchar keys */
- extra_field= FIELD_VARCHAR;
- key_type= HA_KEYTYPE_VARTEXT;
- pack_seg|= HA_VAR_LENGTH;
- create_flag|= HA_PACK_RECORD;
- break;
- case 'K': /* Use key cacheing */
- key_cacheing=1;
- break;
- case 'V':
- printf("test1 Ver 1.0 \n");
- exit(0);
- case '#':
- DEBUGGER_ON;
- DBUG_PUSH (optarg);
- break;
- }
- }
return;
} /* get options */
+
+
+static void usage()
+{
+ printf("Usage: %s [options]\n\n", my_progname);
+ my_print_help(my_long_options);
+ my_print_variables(my_long_options);
+}
diff --git a/myisam/mi_write.c b/myisam/mi_write.c
index 85bcb8427df..d78a5a1425a 100644
--- a/myisam/mi_write.c
+++ b/myisam/mi_write.c
@@ -399,7 +399,7 @@ int _mi_insert(register MI_INFO *info, register MI_KEYDEF *keyinfo,
{
DBUG_PRINT("test",("t_length: %d ref_len: %d",
t_length,s_temp.ref_length));
- DBUG_PRINT("test",("n_ref_len: %d n_length: %d key: %lx",
+ DBUG_PRINT("test",("n_ref_len: %d n_length: %d key_pos: %lx",
s_temp.n_ref_length,s_temp.n_length,s_temp.key));
}
#endif
@@ -761,6 +761,7 @@ int _mi_ck_write_tree(register MI_INFO *info, uint keynr, uchar *key,
/* typeof(_mi_keys_compare)=qsort_cmp2 */
+
static int keys_compare(bulk_insert_param *param, uchar *key1, uchar *key2)
{
uint not_used;
@@ -810,9 +811,10 @@ int _mi_init_bulk_insert(MI_INFO *info)
bulk_insert_param *params;
uint i, num_keys;
ulonglong key_map=0;
+ DBUG_ENTER("_mi_init_bulk_insert");
if (info->bulk_insert)
- return 0;
+ DBUG_RETURN(0);
for (i=num_keys=0 ; i < share->base.keys ; i++)
{
@@ -824,15 +826,15 @@ int _mi_init_bulk_insert(MI_INFO *info)
}
}
- if (num_keys==0 || num_keys>myisam_bulk_insert_tree_size)
- return 0;
+ if (num_keys==0 || num_keys > myisam_bulk_insert_tree_size)
+ DBUG_RETURN(0);
info->bulk_insert=(TREE *)
my_malloc((sizeof(TREE)*share->base.keys+
sizeof(bulk_insert_param)*num_keys),MYF(0));
if (!info->bulk_insert)
- return HA_ERR_OUT_OF_MEM;
+ DBUG_RETURN(HA_ERR_OUT_OF_MEM);
params=(bulk_insert_param *)(info->bulk_insert+share->base.keys);
for (i=0 ; i < share->base.keys ; i++,key++)
@@ -841,7 +843,7 @@ int _mi_init_bulk_insert(MI_INFO *info)
{
params->info=info;
params->keynr=i;
- init_tree(& info->bulk_insert[i],
+ init_tree(&info->bulk_insert[i],
myisam_bulk_insert_tree_size / num_keys / 4 + 10,
myisam_bulk_insert_tree_size / num_keys, 0,
(qsort_cmp2)keys_compare, 0,
@@ -851,5 +853,5 @@ int _mi_init_bulk_insert(MI_INFO *info)
info->bulk_insert[i].root=0;
}
- return 0;
+ DBUG_RETURN(0);
}
diff --git a/myisam/myisamchk.c b/myisam/myisamchk.c
index 0f290712841..ca0ec824cda 100644
--- a/myisam/myisamchk.c
+++ b/myisam/myisamchk.c
@@ -155,7 +155,7 @@ static struct my_option my_long_options[] =
{"analyze", 'a',
"Analyze distribution of keys. Will make some joins in MySQL faster. You can check the calculated distribution.", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0,
0, 0, 0, 0},
- {"block-search", 'b', "No help available.", 0, 0, 0, GET_LONG, REQUIRED_ARG,
+ {"block-search", 'b', "No help available.", 0, 0, 0, GET_ULONG, REQUIRED_ARG,
0, 0, 0, 0, 0, 0},
{"backup", 'B', "Make a backup of the .MYD file as 'filename-time.BAK'", 0,
0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
@@ -165,7 +165,7 @@ static struct my_option my_long_options[] =
{"check", 'c', "Check table for errors.", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0,
0, 0, 0, 0},
{"check-only-changed", 'C',
- "Check only tables that has changed since last check.", 0, 0, 0, GET_NO_ARG,
+ "Check only tables that have changed since last check.", 0, 0, 0, GET_NO_ARG,
NO_ARG, 0, 0, 0, 0, 0, 0},
{"correct-checksum", OPT_CORRECT_CHECKSUM,
"Correct checksum information for table.", 0, 0, 0, GET_NO_ARG, NO_ARG, 0,
@@ -179,11 +179,11 @@ static struct my_option my_long_options[] =
{"data-file-length", 'D',
"Max length of data file (when recreating data-file when it's full).",
(gptr*) &check_param.max_data_file_length,
- (gptr*) &check_param.max_data_file_length, 0, GET_LONG, REQUIRED_ARG,
+ (gptr*) &check_param.max_data_file_length, 0, GET_LL, REQUIRED_ARG,
0, 0, 0, 0, 0, 0},
{"extend-check", 'e',
"Try to recover every possible row from the data file. Normally this will also find a lot of garbage rows; Don't use this option if you are not totally desperate.", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
- {"fast", 'F', "Check only tables that hasn't been closed properly.", 0, 0, 0,
+ {"fast", 'F', "Check only tables that haven't been closed properly.", 0, 0, 0,
GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
{"force", 'f',
"Restart with -r if there are any errors in the table. States will be updated as with --update-state.", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0,
@@ -196,7 +196,7 @@ static struct my_option my_long_options[] =
{"keys-used", 'k',
"Tell MyISAM to update only some specific keys. # is a bit mask of which keys to use. This can be used to get faster inserts!",
(gptr*) &check_param.keys_in_use, (gptr*) &check_param.keys_in_use, 0,
- GET_LL, REQUIRED_ARG, -1, 0, 0, 0, 0, 0},
+ GET_ULL, REQUIRED_ARG, -1, 0, 0, 0, 0, 0},
{"medium-check", 'm',
"Faster than extended-check, but only finds 99.99% of all errors. Should be good enough for most cases.",
0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
@@ -211,16 +211,16 @@ static struct my_option my_long_options[] =
"Uses old recovery method; Slower than '-r' but can handle a couple of cases where '-r' reports that it can't fix the data file.", 0, 0, 0, GET_NO_ARG,
NO_ARG, 0, 0, 0, 0, 0, 0},
{"start-check-pos", OPT_START_CHECK_POS, "No help available.", 0, 0, 0,
- GET_LONG, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ GET_ULL, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"set-auto-increment", 'A',
"Force auto_increment to start at this or higher value. If no value is given, then sets the next auto_increment value to the highest used value for the auto key + 1.", (gptr*) &check_param.auto_increment_value,
- (gptr*) &check_param.auto_increment_value, 0, GET_LONG, OPT_ARG, 0, 0, 0,
+ (gptr*) &check_param.auto_increment_value, 0, GET_ULL, OPT_ARG, 0, 0, 0,
0, 0, 0},
{"set-character-set", OPT_SET_CHARSET,
"Change the character set used by the index", 0, 0, 0, GET_STR,
REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"set-variable", 'O',
- "Change the value of a variable. Please note that this option is depricated; you can set variables directly with --variable-name=value.",
+ "Change the value of a variable. Please note that this option is deprecated; you can set variables directly with --variable-name=value.",
0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"silent", 's',
"Only print errors. One can use two -s to make myisamchk very silent.", 0,
@@ -231,7 +231,7 @@ static struct my_option my_long_options[] =
{"sort-records", 'R',
"Sort records according to an index. This makes your data much more localized and may speed up things. (It may be VERY slow to do a sort the first time!)",
(gptr*) &check_param.opt_sort_key, (gptr*) &check_param.opt_sort_key, 0,
- GET_LONG, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ GET_UINT, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"sort-recover", 'n',
"Force recovering with sorting even if the temporary file was very big.",
0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
@@ -250,7 +250,7 @@ static struct my_option my_long_options[] =
0, 0, 0, 0},
{ "key_buffer_size", OPT_KEY_BUFFER_SIZE, "",
(gptr*) &check_param.use_buffers, (gptr*) &check_param.use_buffers, 0,
- GET_LONG, REQUIRED_ARG, (long) USE_BUFFER_INIT, (long) MALLOC_OVERHEAD,
+ GET_ULONG, REQUIRED_ARG, (long) USE_BUFFER_INIT, (long) MALLOC_OVERHEAD,
(long) ~0L, (long) MALLOC_OVERHEAD, (long) IO_SIZE, 0},
{ "myisam_block_size", OPT_MYISAM_BLOCK_SIZE, "",
(gptr*) &opt_myisam_block_size, (gptr*) &opt_myisam_block_size, 0,
@@ -258,41 +258,41 @@ static struct my_option my_long_options[] =
MI_MAX_KEY_BLOCK_LENGTH, 0, MI_MIN_KEY_BLOCK_LENGTH, 0},
{ "read_buffer_size", OPT_READ_BUFFER_SIZE, "",
(gptr*) &check_param.read_buffer_length,
- (gptr*) &check_param.read_buffer_length, 0, GET_LONG, REQUIRED_ARG,
+ (gptr*) &check_param.read_buffer_length, 0, GET_ULONG, REQUIRED_ARG,
(long) READ_BUFFER_INIT, (long) MALLOC_OVERHEAD,
(long) ~0L, (long) MALLOC_OVERHEAD, (long) 1L, 0},
{ "write_buffer_size", OPT_WRITE_BUFFER_SIZE, "",
(gptr*) &check_param.write_buffer_length,
- (gptr*) &check_param.write_buffer_length, 0, GET_LONG, REQUIRED_ARG,
+ (gptr*) &check_param.write_buffer_length, 0, GET_ULONG, REQUIRED_ARG,
(long) READ_BUFFER_INIT, (long) MALLOC_OVERHEAD,
(long) ~0L, (long) MALLOC_OVERHEAD, (long) 1L, 0},
{ "sort_buffer_size", OPT_SORT_BUFFER_SIZE, "",
(gptr*) &check_param.sort_buffer_length,
- (gptr*) &check_param.sort_buffer_length, 0, GET_LONG, REQUIRED_ARG,
+ (gptr*) &check_param.sort_buffer_length, 0, GET_ULONG, REQUIRED_ARG,
(long) SORT_BUFFER_INIT, (long) (MIN_SORT_BUFFER + MALLOC_OVERHEAD),
(long) ~0L, (long) MALLOC_OVERHEAD, (long) 1L, 0},
{ "sort_key_blocks", OPT_SORT_KEY_BLOCKS, "",
(gptr*) &check_param.sort_key_blocks,
- (gptr*) &check_param.sort_key_blocks, 0, GET_LONG, REQUIRED_ARG,
+ (gptr*) &check_param.sort_key_blocks, 0, GET_ULONG, REQUIRED_ARG,
BUFFERS_WHEN_SORTING, 4L, 100L, 0L, 1L, 0},
{ "decode_bits", OPT_DECODE_BITS, "", (gptr*) &decode_bits,
- (gptr*) &decode_bits, 0, GET_LONG, REQUIRED_ARG, 9L, 4L, 17L, 0L, 1L, 0},
+ (gptr*) &decode_bits, 0, GET_UINT, REQUIRED_ARG, 9L, 4L, 17L, 0L, 1L, 0},
{ "ft_min_word_len", OPT_FT_MIN_WORD_LEN, "", (gptr*) &ft_min_word_len,
- (gptr*) &ft_min_word_len, 0, GET_LONG, REQUIRED_ARG, 4, 1, HA_FT_MAXLEN,
+ (gptr*) &ft_min_word_len, 0, GET_ULONG, REQUIRED_ARG, 4, 1, HA_FT_MAXLEN,
0, 1, 0},
{ "ft_max_word_len", OPT_FT_MAX_WORD_LEN, "", (gptr*) &ft_max_word_len,
- (gptr*) &ft_max_word_len, 0, GET_LONG, REQUIRED_ARG, HA_FT_MAXLEN, 10,
+ (gptr*) &ft_max_word_len, 0, GET_ULONG, REQUIRED_ARG, HA_FT_MAXLEN, 10,
HA_FT_MAXLEN, 0, 1, 0},
{ "ft_max_word_len_for_sort", OPT_FT_MAX_WORD_LEN_FOR_SORT, "",
(gptr*) &ft_max_word_len_for_sort, (gptr*) &ft_max_word_len_for_sort, 0,
- GET_LONG, REQUIRED_ARG, 20, 4, HA_FT_MAXLEN, 0, 1, 0},
+ GET_ULONG, REQUIRED_ARG, 20, 4, HA_FT_MAXLEN, 0, 1, 0},
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
};
static void print_version(void)
{
- printf("%s Ver 2.3 for %s at %s\n", my_progname, SYSTEM_TYPE,
+ printf("%s Ver 2.6 for %s at %s\n", my_progname, SYSTEM_TYPE,
MACHINE_TYPE);
}
@@ -322,9 +322,9 @@ static void usage(void)
-e, --extend-check Check the table VERY throughly. Only use this in\n\
extreme cases as myisamchk should normally be able to\n\
find out if the table is ok even without this switch\n\
- -F, --fast Check only tables that hasn't been closed properly\n\
+ -F, --fast Check only tables that haven't been closed properly\n\
-C, --check-only-changed\n\
- Check only tables that has changed since last check\n\
+ Check only tables that have changed since last check\n\
-f, --force Restart with -r if there are any errors in the table.\n\
States will be updated as with --update-state\n\
-i, --information Print statistics information about table that is checked\n\
@@ -380,7 +380,6 @@ static void usage(void)
(It may be VERY slow to do a sort the first time!)");
print_defaults("my", load_default_groups);
- putchar('\n');
my_print_variables(my_long_options);
}
@@ -616,13 +615,15 @@ get_one_option(int optid,
static void get_options(register int *argc,register char ***argv)
{
+ int ho_error;
+
load_defaults("my", load_default_groups, argc, argv);
default_argv= *argv;
if (isatty(fileno(stdout)))
check_param.testflag|=T_WRITE_LOOP;
- if (handle_options(argc, argv, my_long_options, get_one_option))
- exit(1);
+ if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option)))
+ exit(ho_error);
/* If using repair, then update checksum if one uses --update-state */
if ((check_param.testflag & T_UPDATE_STATE) &&
@@ -733,7 +734,7 @@ static int myisamchk(MI_CHECK *param, my_string filename)
raid_chunks=share->base.raid_chunks;
/*
- Skipp the checking of the file if:
+ Skip the checking of the file if:
We are using --fast and the table is closed properly
We are using --check-only-changed-tables and the table hasn't changed
*/
diff --git a/myisam/myisampack.c b/myisam/myisampack.c
index bdd217a3643..e463978bc10 100644
--- a/myisam/myisampack.c
+++ b/myisam/myisampack.c
@@ -30,7 +30,7 @@
#ifndef __GNU_LIBRARY__
#define __GNU_LIBRARY__ /* Skip warnings in getopt.h */
#endif
-#include <getopt.h>
+#include <my_getopt.h>
#if INT_MAX > 32767
#define BITS_SAVED 32
@@ -169,9 +169,10 @@ static int mrg_rrnd(PACK_MRG_INFO *info,byte *buf);
static void mrg_reset(PACK_MRG_INFO *mrg);
-static int backup=0,error_on_write=0,test_only=0,verbose=0,silent=0,
- write_loop=0,force_pack=0,opt_wait=0,isamchk_neaded=0;
+static int error_on_write=0,test_only=0,verbose=0,silent=0,
+ write_loop=0,force_pack=0, isamchk_neaded=0;
static int tmpfile_createflag=O_RDWR | O_TRUNC | O_EXCL;
+static my_bool backup, opt_wait;
static uint tree_buff_length=8196-MALLOC_OVERHEAD;
static char tmp_dir[FN_REFLEN]={0},*join_table;
static my_off_t intervall_length;
@@ -232,27 +233,43 @@ int main(int argc, char **argv)
enum options_mp {OPT_CHARSETS_DIR_MP=256};
-static struct option long_options[] =
+static struct my_option my_long_options[] =
{
- {"backup", no_argument, 0, 'b'},
- {"character-sets-dir",required_argument,0, OPT_CHARSETS_DIR_MP},
- {"debug", optional_argument, 0, '#'},
- {"force", no_argument, 0, 'f'},
- {"join", required_argument, 0, 'j'},
- {"help", no_argument, 0, '?'},
- {"packlength",required_argument, 0, 'p'},
- {"silent", no_argument, 0, 's'},
- {"tmpdir", required_argument, 0, 'T'},
- {"test", no_argument, 0, 't'},
- {"verbose", no_argument, 0, 'v'},
- {"version", no_argument, 0, 'V'},
- {"wait", no_argument, 0, 'w'},
- {0, 0, 0, 0}
+ {"backup", 'b', "Make a backup of the table as table_name.OLD",
+ (gptr*) &backup, (gptr*) &backup, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"character-sets-dir", OPT_CHARSETS_DIR_MP,
+ "Directory where character sets are.", (gptr*) &charsets_dir,
+ (gptr*) &charsets_dir, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"debug", '#', "Output debug log. Often this is 'd:t:o,filename'",
+ 0, 0, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
+ {"force", 'f',
+ "Force packing of table even if it gets bigger or if tempfile exists.",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"join", 'j',
+ "Join all given tables into 'new_table_name'. All tables MUST have identical layouts.",
+ (gptr*) &join_table, (gptr*) &join_table, 0, GET_STR, REQUIRED_ARG, 0, 0, 0,
+ 0, 0, 0},
+ {"help", '?', "Display this help and exit.",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"silent", 's', "Be more silent.",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"tmpdir", 'T', "Use temporary directory to store temporary table.",
+ 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"test", 't', "Don't pack table, only test packing it.",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"verbose", 'v', "Write info about progress and packing result.",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"version", 'V', "Output version information and exit.",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"wait", 'w', "Wait and retry if table is in use.", (gptr*) &opt_wait,
+ (gptr*) &opt_wait, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
+ { 0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
};
+
static void print_version(void)
{
- printf("%s Ver 1.12 for %s on %s\n",my_progname,SYSTEM_TYPE,MACHINE_TYPE);
+ printf("%s Ver 1.21 for %s on %s\n", my_progname, SYSTEM_TYPE, MACHINE_TYPE);
}
static void usage(void)
@@ -268,22 +285,54 @@ static void usage(void)
puts("You should give the .MSI file as the filename argument.");
printf("\nUsage: %s [OPTIONS] filename...\n", my_progname);
- puts("\n\
- -b, --backup Make a backup of the table as table_name.OLD\n\
- -f, --force Force packing of table even if it gets bigger or if\n\
- tempfile exists.\n\
- -j, --join='new_table_name'\n\
- Join all given tables into 'new_table_name'.\n\
- All tables MUST have identical layouts.\n\
- -s, --silent Be more silent.\n\
- -t, --test Don't pack table, only test packing it.\n\
- -v, --verbose Write info about progress and packing result.\n\
- -w, --wait Wait and retry if table is in use.\n\
- -T, --tmpdir=... Use temporary directory to store temporary table.\n\
- -#, --debug=... Output debug log. Often this is 'd:t:o,filename`\n\
- -?, --help Display this help and exit.\n\
- -V, --version Output version information and exit.");
- print_defaults("my",load_default_groups);
+ my_print_help(my_long_options);
+ print_defaults("my", load_default_groups);
+ my_print_variables(my_long_options);
+}
+
+
+static my_bool
+get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
+ char *argument)
+{
+ uint length;
+
+ switch(optid) {
+ case 'f':
+ force_pack= 1;
+ tmpfile_createflag= O_RDWR | O_TRUNC;
+ break;
+ case 's':
+ write_loop= verbose= 0;
+ silent= 1;
+ break;
+ case 't':
+ test_only= verbose= 1;
+ break;
+ case 'T':
+ length= (uint) (strmov(tmp_dir, argument) - tmp_dir);
+ if (length != dirname_length(tmp_dir))
+ {
+ tmp_dir[length]=FN_LIBCHAR;
+ tmp_dir[length+1]=0;
+ }
+ break;
+ case 'v':
+ verbose= 1;
+ silent= 0;
+ break;
+ case '#':
+ DBUG_PUSH(argument ? argument : "d:t:o");
+ break;
+ case 'V':
+ print_version();
+ exit(0);
+ case 'I':
+ case '?':
+ usage();
+ exit(0);
+ }
+ return 0;
}
/* reads options */
@@ -291,66 +340,15 @@ static void usage(void)
static void get_options(int *argc,char ***argv)
{
- int c,option_index=0;
- uint length;
+ int ho_error;
my_progname= argv[0][0];
if (isatty(fileno(stdout)))
write_loop=1;
- while ((c=getopt_long(*argc,*argv,"bfj:stvwT:#::?V",long_options,
- &option_index)) != EOF)
- {
- switch(c) {
- case 'b':
- backup=1;
- break;
- case 'f':
- force_pack=1;
- tmpfile_createflag=O_RDWR | O_TRUNC;
- break;
- case 'j':
- join_table=optarg;
- break;
- case 's':
- write_loop=verbose=0; silent=1;
- break;
- case 't':
- test_only=verbose=1;
- break;
- case 'T':
- length=(uint) (strmov(tmp_dir,optarg)-tmp_dir);
- if (length != dirname_length(tmp_dir))
- {
- tmp_dir[length]=FN_LIBCHAR;
- tmp_dir[length+1]=0;
- }
- break;
- case 'v':
- verbose=1; silent=0;
- break;
- case 'w':
- opt_wait=1;
- break;
- case '#':
- DBUG_PUSH(optarg ? optarg : "d:t:o");
- break;
- case OPT_CHARSETS_DIR_MP:
- charsets_dir = optarg;
- break;
- case 'V': print_version(); exit(0);
- case 'I':
- case '?':
- usage();
- exit(0);
- default:
- fprintf(stderr,"%s: Illegal option: -%c\n",my_progname,opterr);
- usage();
- exit(1);
- }
- }
- (*argc)-=optind;
- (*argv)+=optind;
+ if ((ho_error=handle_options(argc, argv, my_long_options, get_one_option)))
+ exit(ho_error);
+
if (!*argc)
{
usage();
diff --git a/myisam/sort.c b/myisam/sort.c
index 66a8254732a..bec77b231b8 100644
--- a/myisam/sort.c
+++ b/myisam/sort.c
@@ -122,7 +122,7 @@ int _create_index_by_sort(MI_SORT_PARAM *info,my_bool no_messages,
if ((sort_keys=(uchar **)my_malloc(keys*(sort_length+sizeof(char*))+
HA_FT_MAXLEN, MYF(0))))
{
- if (init_dynamic_array(&buffpek, sizeof(BUFFPEK), maxbuffer,
+ if (my_init_dynamic_array(&buffpek, sizeof(BUFFPEK), maxbuffer,
maxbuffer/2))
my_free((gptr) sort_keys,MYF(0));
else
diff --git a/mysql-test/install_test_db.sh b/mysql-test/install_test_db.sh
index acf8cebc723..b105609693c 100644
--- a/mysql-test/install_test_db.sh
+++ b/mysql-test/install_test_db.sh
@@ -218,6 +218,6 @@ END_OF_DATA
then
exit 0
else
- echo "Error executing mysqld --boostrap"
+ echo "Error executing mysqld --bootstrap"
exit 1
fi
diff --git a/mysql-test/mysql-test-run.sh b/mysql-test/mysql-test-run.sh
index efebc5b5c86..7ae89c96169 100644
--- a/mysql-test/mysql-test-run.sh
+++ b/mysql-test/mysql-test-run.sh
@@ -874,6 +874,7 @@ start_slave()
--report-host=127.0.0.1 --report-user=root \
--report-port=$slave_port \
--master-retry-count=5 \
+ -O slave_net_timeout=10 \
$SMALL_SERVER \
$EXTRA_SLAVE_OPT $EXTRA_SLAVE_MYSQLD_OPT"
CUR_MYERR=$slave_err
diff --git a/mysql-test/r/fulltext.result b/mysql-test/r/fulltext.result
index dd5e59e4081..5ecab7278db 100644
--- a/mysql-test/r/fulltext.result
+++ b/mysql-test/r/fulltext.result
@@ -67,6 +67,22 @@ Full-text indexes are called collections 1
Only MyISAM tables support collections 2
Function MATCH ... AGAINST() is used to do a search 0
Full-text search in MySQL implements vector space model 0
+select * from t1 where MATCH a,b AGAINST ("+call* +coll*" IN BOOLEAN MODE);
+a b
+Full-text indexes are called collections
+select * from t1 where MATCH a,b AGAINST ('"Now sUPPort"' IN BOOLEAN MODE);
+a b
+MySQL has now support for full-text search
+select * from t1 where MATCH a,b AGAINST ('"text search" "now support"' IN BOOLEAN MODE);
+a b
+MySQL has now support for full-text search
+Full-text search in MySQL implements vector space model
+select * from t1 where MATCH a,b AGAINST ('"text search" -"now support"' IN BOOLEAN MODE);
+a b
+Full-text search in MySQL implements vector space model
+select * from t1 where MATCH a,b AGAINST ('"text search" +"now support"' IN BOOLEAN MODE);
+a b
+MySQL has now support for full-text search
select * from t1 where MATCH a AGAINST ("search" IN BOOLEAN MODE);
a b
Full-text search in MySQL implements vector space model
@@ -153,6 +169,9 @@ KEY ind5 (title),
FULLTEXT KEY FT1 (title)
) TYPE=MyISAM;
insert into t1 (title) values ('this is a test');
+select * from t1 where match title against ('test' in boolean mode);
+id title
+1 this is a test
update t1 set title='this is A test' where id=1;
check table t1;
Table Op Msg_type Msg_text
@@ -167,4 +186,9 @@ CREATE TABLE t1 (a int(11), b text, FULLTEXT KEY (b)) TYPE=MyISAM;
insert into t1 values (1,"I wonder why the fulltext index doesnt work?");
SELECT * from t1 where MATCH (b) AGAINST ('apples');
a b
+insert into t1 values (2,"fullaaa fullzzz");
+select * from t1 where match b against ('full*' in boolean mode);
+a b
+2 fullaaa fullzzz
+1 I wonder why the fulltext index doesnt work?
drop table t1;
diff --git a/mysql-test/r/func_concat.result b/mysql-test/r/func_concat.result
new file mode 100644
index 00000000000..17afd49b54c
--- /dev/null
+++ b/mysql-test/r/func_concat.result
@@ -0,0 +1,28 @@
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1 ( number INT NOT NULL, alpha CHAR(6) NOT NULL );
+INSERT INTO t1 VALUES (1413006,'idlfmv'),
+(1413065,'smpsfz'),(1413127,'sljrhx'),(1413304,'qerfnd');
+SELECT number, alpha, CONCAT_WS('<---->',number,alpha) AS new
+FROM t1 GROUP BY number;
+number alpha new
+1413006 idlfmv 1413006<---->idlfmv
+1413065 smpsfz 1413065<---->smpsfz
+1413127 sljrhx 1413127<---->sljrhx
+1413304 qerfnd 1413304<---->qerfnd
+SELECT CONCAT_WS('<---->',number,alpha) AS new
+FROM t1 GROUP BY new LIMIT 1;
+new
+1413006<---->idlfmv
+SELECT number, alpha, CONCAT_WS('<->',number,alpha) AS new
+FROM t1 GROUP BY new LIMIT 1;
+number alpha new
+1413006 idlfmv 1413006<->idlfmv
+SELECT number, alpha, CONCAT_WS('-',number,alpha,alpha,alpha,alpha,alpha,alpha,alpha) AS new
+FROM t1 GROUP BY new LIMIT 1;
+number alpha new
+1413006 idlfmv 1413006-idlfmv-idlfmv-idlfmv-idlfmv-idlfmv-idlfmv-idlfmv
+SELECT number, alpha, CONCAT_WS('<------------------>',number,alpha) AS new
+FROM t1 GROUP BY new LIMIT 1;
+number alpha new
+1413006 idlfmv 1413006<------------------>idlfmv
+drop table t1;
diff --git a/mysql-test/r/func_if.result b/mysql-test/r/func_if.result
new file mode 100644
index 00000000000..16fb0358d51
--- /dev/null
+++ b/mysql-test/r/func_if.result
@@ -0,0 +1,48 @@
+drop table if exists t1;
+select IF(0,"ERROR","this"),IF(1,"is","ERROR"),IF(NULL,"ERROR","a"),IF(1,2,3)|0,IF(1,2.0,3.0)+0 ;
+IF(0,"ERROR","this") IF(1,"is","ERROR") IF(NULL,"ERROR","a") IF(1,2,3)|0 IF(1,2.0,3.0)+0
+this is a 2 2.0
+CREATE TABLE t1 (st varchar(255) NOT NULL, u int(11) NOT NULL) TYPE=MyISAM;
+INSERT INTO t1 VALUES ('a',1),('A',1),('aa',1),('AA',1),('a',1),('aaa',0),('BBB',0);
+select if(1,st,st) s from t1 order by s;
+s
+a
+A
+a
+aa
+AA
+aaa
+BBB
+select if(u=1,st,st) s from t1 order by s;
+s
+a
+A
+a
+aa
+AA
+aaa
+BBB
+select if(u=1,binary st,st) s from t1 order by s;
+s
+A
+AA
+BBB
+a
+a
+aa
+aaa
+select if(u=1,st,binary st) s from t1 where st like "%a%" order by s;
+s
+A
+AA
+a
+a
+aa
+aaa
+drop table t1;
+create table t1 (num double(12,2));
+insert into t1 values (144.54);
+select sum(if(num is null,0.00,num)) from t1;
+sum(if(num is null,0.00,num))
+144.54
+drop table t1;
diff --git a/mysql-test/r/func_isnull.result b/mysql-test/r/func_isnull.result
new file mode 100644
index 00000000000..20ddc87ee78
--- /dev/null
+++ b/mysql-test/r/func_isnull.result
@@ -0,0 +1,7 @@
+drop table if exists t1;
+create table t1 (id int auto_increment primary key not null, mydate date not null);
+insert into t1 values (0,"2002-05-01"),(0,"2002-05-01"),(0,"2002-05-01");
+flush tables;
+select * from t1 where isnull(to_days(mydate));
+id mydate
+drop table t1;
diff --git a/mysql-test/r/func_like.result b/mysql-test/r/func_like.result
index 796674b5fa4..c2085ba12da 100644
--- a/mysql-test/r/func_like.result
+++ b/mysql-test/r/func_like.result
@@ -15,4 +15,15 @@ test
select * from t1 where a like "te_t";
a
test
+select * from t1 where a like "%a%";
+a
+a
+abc
+abcd
+select * from t1 where a like "%abcd%";
+a
+abcd
+select * from t1 where a like "%abc\d%";
+a
+abcd
drop table t1;
diff --git a/mysql-test/r/func_math.result b/mysql-test/r/func_math.result
index fce98a58682..b961c839510 100644
--- a/mysql-test/r/func_math.result
+++ b/mysql-test/r/func_math.result
@@ -4,10 +4,8 @@ floor(5.5) floor(-5.5)
select ceiling(5.5),ceiling(-5.5);
ceiling(5.5) ceiling(-5.5)
6 -5
-select truncate(52.64,1),truncate(52.64,2),truncate(52.64,-1),truncate(52.64,-2);
-truncate(52.64,1) truncate(52.64,2) truncate(52.64,-1) truncate(52.64,-2)
-52.6 52.64 50 0
-select round(5.5),round(-5.5);
+truncate(52.64,1) truncate(52.64,2) truncate(52.64,-1) truncate(52.64,-2) truncate(-52.64,1) truncate(-52.64,-1)
+52.6 52.64 50 0 -52.6 -50
round(5.5) round(-5.5)
6 -6
select round(5.64,1),round(5.64,2),round(5.64,-1),round(5.64,-2);
diff --git a/mysql-test/r/func_test.result b/mysql-test/r/func_test.result
index 0a45f9e8b5c..deea5b8bb8b 100644
--- a/mysql-test/r/func_test.result
+++ b/mysql-test/r/func_test.result
@@ -28,9 +28,6 @@ select "aba" regexp concat("^","a");
select !0,NOT 0=1,!(0=0),1 AND 1,1 && 0,0 OR 1,1 || NULL, 1=1 or 1=1 and 1=0;
!0 NOT 0=1 !(0=0) 1 AND 1 1 && 0 0 OR 1 1 || NULL 1=1 or 1=1 and 1=0
1 1 0 1 0 1 1 1
-select IF(0,"ERROR","this"),IF(1,"is","ERROR"),IF(NULL,"ERROR","a"),IF(1,2,3)|0,IF(1,2.0,3.0)+0 ;
-IF(0,"ERROR","this") IF(1,"is","ERROR") IF(NULL,"ERROR","a") IF(1,2,3)|0 IF(1,2.0,3.0)+0
-this is a 2 2.0
select 2 between 1 and 3, "monty" between "max" and "my",2=2 and "monty" between "max" and "my" and 3=3;
2 between 1 and 3 "monty" between "max" and "my" 2=2 and "monty" between "max" and "my" and 3=3
1 1 1
@@ -52,10 +49,3 @@ select 1 and 2 between 2 and 10, 2 between 2 and 10 and 1;
select 1 and 0 or 2, 2 or 1 and 0;
1 and 0 or 2 2 or 1 and 0
1 1
-drop table if exists t1;
-create table t1 (num double(12,2));
-insert into t1 values (144.54);
-select sum(if(num is null,0.00,num)) from t1;
-sum(if(num is null,0.00,num))
-144.54
-drop table t1;
diff --git a/mysql-test/r/group_by.result b/mysql-test/r/group_by.result
index 2affdc1b653..aaa03f2668a 100644
--- a/mysql-test/r/group_by.result
+++ b/mysql-test/r/group_by.result
@@ -373,3 +373,23 @@ CONCAT(a, b) count(*)
abcdef 1
hijklm 2
DROP TABLE t1;
+drop table if exists t1;
+create table t1 (One int unsigned, Two int unsigned, Three int unsigned, Four int unsigned);
+insert into t1 values (1,2,1,4);
+insert into t1 values (1,2,2,4);
+insert into t1 values (1,2,3,4);
+insert into t1 values (1,2,4,4);
+insert into t1 values (1,1,1,4);
+insert into t1 values (1,1,2,4);
+insert into t1 values (1,1,3,4);
+insert into t1 values (1,1,4,4);
+insert into t1 values (1,3,1,4);
+insert into t1 values (1,3,2,4);
+insert into t1 values (1,3,3,4);
+insert into t1 values (1,3,4,4);
+select One, Two, sum(Four) from t1 group by One,Two;
+One Two sum(Four)
+1 1 16
+1 2 16
+1 3 16
+drop table if exists t1;
diff --git a/mysql-test/r/identity.result b/mysql-test/r/identity.result
deleted file mode 100644
index 39123e9c127..00000000000
--- a/mysql-test/r/identity.result
+++ /dev/null
@@ -1,6 +0,0 @@
-select last_insert_id(345);
-last_insert_id(345)
-345
-select @@IDENTITY,last_insert_id();
-@@IDENTITY last_insert_id()
-345 345
diff --git a/mysql-test/r/innodb.result b/mysql-test/r/innodb.result
index 1c5e4165885..89a857ef098 100644
--- a/mysql-test/r/innodb.result
+++ b/mysql-test/r/innodb.result
@@ -170,7 +170,7 @@ show keys from t1;
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
t1 0 PRIMARY 1 id A 87 NULL NULL BTREE
t1 1 parent_id 1 parent_id A 43 NULL NULL BTREE
-t1 1 level 1 level A 8 NULL NULL BTREE
+t1 1 level 1 level A 6 NULL NULL BTREE
drop table t1;
CREATE TABLE t1 (
gesuchnr int(11) DEFAULT '0' NOT NULL,
diff --git a/mysql-test/r/join.result b/mysql-test/r/join.result
index b8ec13e9f50..96113dcdc8b 100644
--- a/mysql-test/r/join.result
+++ b/mysql-test/r/join.result
@@ -115,6 +115,10 @@ d d
SELECT * from t1 WHERE t1.d IS NULL;
d
0000-00-00
+SELECT * FROM t1 WHERE 1/0 IS NULL;
+d
+2001-08-01
+0000-00-00
DROP TABLE t1,t2;
CREATE TABLE t1 (
Document_ID varchar(50) NOT NULL default '',
diff --git a/mysql-test/r/rpl000014.result b/mysql-test/r/rpl000014.result
index ded11a9bb95..c9926c92a4f 100644
--- a/mysql-test/r/rpl000014.result
+++ b/mysql-test/r/rpl000014.result
@@ -8,7 +8,7 @@ File Position Binlog_do_db Binlog_ignore_db
master-bin.001 79
show slave status;
Master_Host Master_User Master_Port Connect_retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_do_db Replicate_ignore_db Last_errno Last_error Skip_counter Exec_master_log_pos Relay_log_space
-127.0.0.1 root MASTER_PORT 1 master-bin.001 79 slave-relay-bin.002 120 master-bin.001 Yes Yes 0 0 79 124
+127.0.0.1 root MASTER_PORT 1 master-bin.001 79 slave-relay-bin.002 120 master-bin.001 Yes Yes 0 0 79 128
change master to master_log_pos=73;
slave stop;
change master to master_log_pos=73;
diff --git a/mysql-test/r/rpl_empty_master_crash.result b/mysql-test/r/rpl_empty_master_crash.result
new file mode 100644
index 00000000000..6ae5d15031b
--- /dev/null
+++ b/mysql-test/r/rpl_empty_master_crash.result
@@ -0,0 +1,12 @@
+slave stop;
+reset master;
+reset slave;
+drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
+slave start;
+use test;
+drop table if exists t1;
+show slave status;
+Master_Host Master_User Master_Port Connect_retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_do_db Replicate_ignore_db Last_errno Last_error Skip_counter Exec_master_log_pos Relay_log_space
+ 0 0 0 0 No No 0 0 0 0
+load table t1 from master;
+Error in fetch_master_table
diff --git a/mysql-test/r/rpl_log.result b/mysql-test/r/rpl_log.result
index 70fbe32845d..f5885085dee 100644
--- a/mysql-test/r/rpl_log.result
+++ b/mysql-test/r/rpl_log.result
@@ -75,7 +75,7 @@ slave-bin.002 115 Query 1 62 use test; insert into t1 values (1)
slave-bin.002 175 Query 1 122 use test; drop table t1
show slave status;
Master_Host Master_User Master_Port Connect_retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_do_db Replicate_ignore_db Last_errno Last_error Skip_counter Exec_master_log_pos Relay_log_space
-127.0.0.1 root MASTER_PORT 1 master-bin.002 170 slave-relay-bin.002 916 master-bin.002 Yes Yes 0 0 170 920
+127.0.0.1 root MASTER_PORT 1 master-bin.002 170 slave-relay-bin.002 916 master-bin.002 Yes Yes 0 0 170 924
show new master for slave with master_log_file='master-bin.001' and
master_log_pos=4 and master_server_id=1;
Log_name Log_pos
diff --git a/mysql-test/r/select_found.result b/mysql-test/r/select_found.result
index 0e2cc108bb4..3d2f2154b37 100644
--- a/mysql-test/r/select_found.result
+++ b/mysql-test/r/select_found.result
@@ -1,4 +1,4 @@
-drop table if exists t1;
+drop table if exists t1,t2;
create table t1 (a int not null auto_increment, b int not null, primary key(a));
insert into t1 (b) values (2),(3),(5),(5),(5),(6),(7),(9);
select SQL_CALC_FOUND_ROWS * from t1;
@@ -66,5 +66,90 @@ a
2
select FOUND_ROWS();
FOUND_ROWS()
-3
+5
drop table t1;
+CREATE TABLE t1 (
+`id` smallint(5) unsigned NOT NULL auto_increment,
+`kid` smallint(5) unsigned NOT NULL default '0',
+PRIMARY KEY (`id`),
+KEY `kid` (`kid`)
+);
+CREATE TABLE t2 (
+id smallint(5) unsigned NOT NULL auto_increment,
+name varchar(50) NOT NULL default '',
+email varchar(50) NOT NULL default '',
+PRIMARY KEY (id),
+UNIQUE KEY e_n (email,name)
+);
+INSERT INTO t2 VALUES (1,'name1','email1'),(2,'name2','email2'),(3,'name3','email3'),(4,'name4','email4'),(5,'name5','email5'),(6,'name6','email6'),(7,'name7','email7'),(8,'name8','email8'),(9,'name9','email9'),(10,'name10','email10'),(11,'name11','email11'),(12,'name12','email12'),(13,'name13','email13'),(14,'name14','email14'),(15,'name15','email15'),(16,'name16','email16'),(17,'name17','email17'),(18,'name18','email18'),(19,'name19','email19'),(20,'name20','email20'),(21,'name21','email21'),(22,'name22','email22'),(23,'name23','email23'),(24,'name24','email24'),(25,'name25','email25'),(26,'name26','email26'),(27,'name27','email27'),(28,'name28','email28'),(29,'name29','email29'),(30,'name30','email30'),(31,'name31','email31'),(32,'name32','email32'),(33,'name33','email33'),(34,'name34','email34'),(35,'name35','email35'),(36,'name36','email36'),(37,'name37','email37'),(38,'name38','email38'),(39,'name39','email39'),(40,'name40','email40'),(41,'name41','email41'),(42,'name42','email42'),(43,'name43','email43'),(44,'name44','email44'),(45,'name45','email45'),(46,'name46','email46'),(47,'name47','email47'),(48,'name48','email48'),(49,'name49','email49'),(50,'name50','email50'),(51,'name51','email51'),(52,'name52','email52'),(53,'name53','email53'),(54,'name54','email54'),(55,'name55','email55'),(56,'name56','email56'),(57,'name57','email57'),(58,'name58','email58'),(59,'name59','email59'),(60,'name60','email60'),(61,'name61','email61'),(62,'name62','email62'),(63,'name63','email63'),(64,'name64','email64'),(65,'name65','email65'),(66,'name66','email66'),(67,'name67','email67'),(68,'name68','email68'),(69,'name69','email69'),(70,'name70','email70'),(71,'name71','email71'),(72,'name72','email72'),(73,'name73','email73'),(74,'name74','email74'),(75,'name75','email75'),(76,'name76','email76'),(77,'name77','email77'),(78,'name78','email78'),(79,'name79','email79'),(80,'name80','email80'),(81,'name81','email81'),(82,'name82','email82'),(83,'name83','email83'),(84,'name84','email84'),(85,'name85','email85'),(86,'name86','email86'),(87,'name87','email87'),(88,'name88','email88'),(89,'name89','email89'),(90,'name90','email90'),(91,'name91','email91'),(92,'name92','email92'),(93,'name93','email93'),(94,'name94','email94'),(95,'name95','email95'),(96,'name96','email96'),(97,'name97','email97'),(98,'name98','email98'),(99,'name99','email99'),(100,'name100','email100'),(101,'name101','email101'),(102,'name102','email102'),(103,'name103','email103'),(104,'name104','email104'),(105,'name105','email105'),(106,'name106','email106'),(107,'name107','email107'),(108,'name108','email108'),(109,'name109','email109'),(110,'name110','email110'),(111,'name111','email111'),(112,'name112','email112'),(113,'name113','email113'),(114,'name114','email114'),(115,'name115','email115'),(116,'name116','email116'),(117,'name117','email117'),(118,'name118','email118'),(119,'name119','email119'),(120,'name120','email120'),(121,'name121','email121'),(122,'name122','email122'),(123,'name123','email123'),(124,'name124','email124'),(125,'name125','email125'),(126,'name126','email126'),(127,'name127','email127'),(128,'name128','email128'),(129,'name129','email129'),(130,'name130','email130'),(131,'name131','email131'),(132,'name132','email132'),(133,'name133','email133'),(134,'name134','email134'),(135,'name135','email135'),(136,'name136','email136'),(137,'name137','email137'),(138,'name138','email138'),(139,'name139','email139'),(140,'name140','email140'),(141,'name141','email141'),(142,'name142','email142'),(143,'name143','email143'),(144,'name144','email144'),(145,'name145','email145'),(146,'name146','email146'),(147,'name147','email147'),(148,'name148','email148'),(149,'name149','email149'),(150,'name150','email150'),(151,'name151','email151'),(152,'name152','email152'),(153,'name153','email153'),(154,'name154','email154'),(155,'name155','email155'),(156,'name156','email156'),(157,'name157','email157'),(158,'name158','email158'),(159,'name159','email159'),(160,'name160','email160'),(161,'name161','email161'),(162,'name162','email162'),(163,'name163','email163'),(164,'name164','email164'),(165,'name165','email165'),(166,'name166','email166'),(167,'name167','email167'),(168,'name168','email168'),(169,'name169','email169'),(170,'name170','email170'),(171,'name171','email171'),(172,'name172','email172'),(173,'name173','email173'),(174,'name174','email174'),(175,'name175','email175'),(176,'name176','email176'),(177,'name177','email177'),(178,'name178','email178'),(179,'name179','email179'),(180,'name180','email180'),(181,'name181','email181'),(182,'name182','email182'),(183,'name183','email183'),(184,'name184','email184'),(185,'name185','email185'),(186,'name186','email186'),(187,'name187','email187'),(188,'name188','email188'),(189,'name189','email189'),(190,'name190','email190'),(191,'name191','email191'),(192,'name192','email192'),(193,'name193','email193'),(194,'name194','email194'),(195,'name195','email195'),(196,'name196','email196'),(197,'name197','email197'),(198,'name198','email198'),(199,'name199','email199'),(200,'name200','email200');
+SELECT SQL_CALC_FOUND_ROWS DISTINCT email FROM t2 LEFT JOIN t1 ON kid = t2.id WHERE t1.id IS NULL LIMIT 10;
+email
+email1
+email10
+email100
+email101
+email102
+email103
+email104
+email105
+email106
+email107
+SELECT FOUND_ROWS();
+FOUND_ROWS()
+200
+SELECT SQL_CALC_FOUND_ROWS DISTINCT email FROM t2 LEFT JOIN t1 ON kid = t2.id WHERE t1.id IS NULL order by email LIMIT 10;
+email
+email1
+email10
+email100
+email101
+email102
+email103
+email104
+email105
+email106
+email107
+SELECT FOUND_ROWS();
+FOUND_ROWS()
+200
+SELECT DISTINCT email FROM t2 LEFT JOIN t1 ON kid = t2.id WHERE t1.id IS NULL LIMIT 10;
+email
+email1
+email2
+email3
+email4
+email5
+email6
+email7
+email8
+email9
+email10
+SELECT DISTINCT email FROM t2 LEFT JOIN t1 ON kid = t2.id WHERE t1.id IS NULL ORDER BY email LIMIT 10;
+email
+email1
+email10
+email100
+email101
+email102
+email103
+email104
+email105
+email106
+email107
+INSERT INTO `t1` (`id`, `kid`) VALUES ('', '150');
+SELECT SQL_CALC_FOUND_ROWS DISTINCT email FROM t2 LEFT JOIN t1 ON kid = t2.id WHERE t1.id IS NULL LIMIT 10;
+email
+email1
+email2
+email3
+email4
+email5
+email6
+email7
+email8
+email9
+email10
+SELECT FOUND_ROWS();
+FOUND_ROWS()
+199
+drop table t1,t2;
diff --git a/mysql-test/r/show_check.result b/mysql-test/r/show_check.result
index d78f8b16170..2c32d766a38 100644
--- a/mysql-test/r/show_check.result
+++ b/mysql-test/r/show_check.result
@@ -37,6 +37,9 @@ drop table t1;
show variables like "wait_timeout%";
Variable_name Value
wait_timeout 28800
+show variables like "WAIT_timeout%";
+Variable_name Value
+wait_timeout 28800
show variables like "this_doesn't_exists%";
Variable_name Value
show table status from test like "this_doesn't_exists%";
@@ -143,3 +146,28 @@ t1 CREATE TABLE `t1` (
KEY `b` (`b`)
) TYPE=MyISAM
drop table t1;
+create table t1 (a decimal(9,2), b decimal (9,0), e double(9,2), f double(5,0), h float(3,2), i float(3,0));
+show columns from t1;
+Field Type Null Key Default Extra
+a decimal(9,2) YES NULL
+b decimal(9,0) YES NULL
+e double(9,2) YES NULL
+f double(5,0) YES NULL
+h float(3,2) YES NULL
+i float(3,0) YES NULL
+drop table t1;
+create table t1 (c decimal, d double, f float, r real);
+show columns from t1;
+Field Type Null Key Default Extra
+c decimal(10,0) YES NULL
+d double YES NULL
+f float YES NULL
+r double YES NULL
+drop table t1;
+create table t1 (c decimal(3,3), d double(3,3), f float(3,3));
+show columns from t1;
+Field Type Null Key Default Extra
+c decimal(4,3) YES NULL
+d double(4,3) YES NULL
+f float(4,3) YES NULL
+drop table t1;
diff --git a/mysql-test/r/type_datetime.result b/mysql-test/r/type_datetime.result
index 3e13485c872..cae15d4f665 100644
--- a/mysql-test/r/type_datetime.result
+++ b/mysql-test/r/type_datetime.result
@@ -57,3 +57,24 @@ select * from t1 where dt='2001-08-14 00:00:00' and dt = if(id=1,'2001-08-14 00
id dt
1 2001-08-14 00:00:00
drop table t1;
+CREATE TABLE `t1` (
+`date` datetime NOT NULL default '0000-00-00 00:00:00',
+`numfacture` int(6) unsigned NOT NULL default '0',
+`expedition` datetime NOT NULL default '0000-00-00 00:00:00',
+PRIMARY KEY (`numfacture`),
+KEY `date` (`date`),
+KEY `expedition` (`expedition`)
+) TYPE=MyISAM;
+INSERT INTO t1 (expedition) VALUES ('0001-00-00 00:00:00');
+SELECT * FROM t1 WHERE expedition='0001-00-00 00:00:00';
+date numfacture expedition
+0000-00-00 00:00:00 0 0001-00-00 00:00:00
+INSERT INTO t1 (numfacture,expedition) VALUES ('1212','0001-00-00 00:00:00');
+SELECT * FROM t1 WHERE expedition='0001-00-00 00:00:00';
+date numfacture expedition
+0000-00-00 00:00:00 0 0001-00-00 00:00:00
+0000-00-00 00:00:00 1212 0001-00-00 00:00:00
+EXPLAIN SELECT * FROM t1 WHERE expedition='0001-00-00 00:00:00';
+table type possible_keys key key_len ref rows Extra
+t1 ref expedition expedition 8 const 1 where used
+drop table t1;
diff --git a/mysql-test/r/type_decimal.result b/mysql-test/r/type_decimal.result
index 9fee88f4bf8..f4dfc3c2891 100644
--- a/mysql-test/r/type_decimal.result
+++ b/mysql-test/r/type_decimal.result
@@ -150,3 +150,159 @@ select * from t1 where minvalue<=-1 and maxvalue>=-1 and datatype_id=16;
id datatype_id minvalue maxvalue valuename forecolor backcolor
143 16 -4.9000000000 -0.1000000000 NULL 15774720
drop table t1;
+create table t1 (a decimal(10,2));
+insert into t1 values ("0.0"),("-0.0"),("+0.0"),("01.0"),("+01.0"),("-01.0");
+insert into t1 values ("-.1"),("+.1"),(".1");
+insert into t1 values ("00000000000001"),("+0000000000001"),("-0000000000001");
+insert into t1 values ("+111111111.11"),("111111111.11"),("-11111111.11");
+insert into t1 values ("-111111111.11"),("+1111111111.11"),("1111111111.11");
+select * from t1;
+a
+0.00
+-0.00
++0.00
+01.00
++01.00
+-01.00
+-0.10
++0.10
+0.10
+000000001.00
++00000001.00
+-00000001.00
+111111111.11
+111111111.11
+-11111111.11
+-99999999.99
+999999999.99
+999999999.99
+drop table t1;
+create table t1 (a decimal(10,2) unsigned);
+insert into t1 values ("0.0"),("-0.0"),("+0.0"),("01.0"),("+01.0"),("-01.0");
+insert into t1 values ("-.1"),("+.1"),(".1");
+insert into t1 values ("00000000000001"),("+0000000000001"),("-0000000000001");
+insert into t1 values ("+111111111.11"),("111111111.11"),("-11111111.11");
+insert into t1 values ("-111111111.11"),("+1111111111.11"),("1111111111.11");
+select * from t1;
+a
+0.00
+0.00
+0.00
+01.00
+01.00
+0.00
+0.00
+0.10
+0.10
+00000001.00
+00000001.00
+0.00
+99999999.99
+99999999.99
+0.00
+0.00
+99999999.99
+99999999.99
+drop table t1;
+create table t1 (a decimal(10,2) zerofill);
+insert into t1 values ("0.0"),("-0.0"),("+0.0"),("01.0"),("+01.0"),("-01.0");
+insert into t1 values ("-.1"),("+.1"),(".1");
+insert into t1 values ("00000000000001"),("+0000000000001"),("-0000000000001");
+insert into t1 values ("+111111111.11"),("111111111.11"),("-11111111.11");
+insert into t1 values ("-111111111.11"),("+1111111111.11"),("1111111111.11");
+select * from t1;
+a
+00000000.00
+00000000.00
+00000000.00
+00000001.00
+00000001.00
+00000000.00
+00000000.00
+00000000.10
+00000000.10
+00000001.00
+00000001.00
+00000000.00
+99999999.99
+99999999.99
+00000000.00
+00000000.00
+99999999.99
+99999999.99
+drop table t1;
+create table t1 (a decimal(10,2));
+insert into t1 values (0.0),("-0.0"),(+0.0),(01.0),(+01.0),(-01.0);
+insert into t1 values (-.1),(+.1),(.1);
+insert into t1 values (00000000000001),(+0000000000001),(-0000000000001);
+insert into t1 values (+111111111.11),(111111111.11),(-11111111.11);
+insert into t1 values (-111111111.11),(+1111111111.11),(1111111111.11);
+select * from t1;
+a
+0.00
+-0.00
+0.00
+1.00
+1.00
+-1.00
+-0.10
+0.10
+0.10
+1.00
+1.00
+-1.00
+111111111.11
+111111111.11
+-11111111.11
+-99999999.99
+999999999.99
+999999999.99
+drop table t1;
+create table t1 (a decimal);
+insert into t1 values (-99999999999999),(-1),('+1'),('01'),('+00000000000001'),('+12345678901'),(99999999999999);
+select * from t1;
+a
+-9999999999
+-1
++1
+01
++0000000001
+12345678901
+99999999999
+drop table t1;
+create table t1 (a decimal unsigned);
+insert into t1 values (-99999999999999),(-1),('+1'),('01'),('+00000000000001'),('+1234567890'),(99999999999999);
+select * from t1;
+a
+0
+0
+1
+01
+0000000001
+1234567890
+9999999999
+drop table t1;
+create table t1 (a decimal zerofill);
+insert into t1 values (-99999999999999),(-1),('+1'),('01'),('+00000000000001'),('+1234567890'),(99999999999999);
+select * from t1;
+a
+0000000000
+0000000000
+0000000001
+0000000001
+0000000001
+1234567890
+9999999999
+drop table t1;
+create table t1 (a decimal unsigned zerofill);
+insert into t1 values (-99999999999999),(-1),('+1'),('01'),('+00000000000001'),('+1234567890'),(99999999999999);
+select * from t1;
+a
+0000000000
+0000000000
+0000000001
+0000000001
+0000000001
+1234567890
+9999999999
+drop table t1;
diff --git a/mysql-test/r/type_enum.result b/mysql-test/r/type_enum.result
index 355133532bf..ee3bd077798 100644
--- a/mysql-test/r/type_enum.result
+++ b/mysql-test/r/type_enum.result
@@ -1622,3 +1622,17 @@ field
429002
429003
drop table t1;
+create table t1 (a enum (' ','a','b') not null);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` enum('','a','b') NOT NULL default ''
+) TYPE=MyISAM
+drop table t1;
+create table t1 (a enum (' ','a','b ') not null default 'b ');
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` enum('','a','b') NOT NULL default 'b'
+) TYPE=MyISAM
+drop table t1;
diff --git a/mysql-test/r/type_float.result b/mysql-test/r/type_float.result
index 4dbfa1b9f66..e85bced353a 100644
--- a/mysql-test/r/type_float.result
+++ b/mysql-test/r/type_float.result
@@ -81,7 +81,7 @@ de2 decimal(6,0) YES NULL select,insert,update,references
de3 decimal(5,2) YES NULL select,insert,update,references
n decimal(10,0) YES NULL select,insert,update,references
n2 decimal(8,0) YES NULL select,insert,update,references
-n3 decimal(8,6) YES NULL select,insert,update,references
+n3 decimal(7,6) YES NULL select,insert,update,references
drop table t1;
create table t1 (a decimal(7,3) not null, key (a));
insert into t1 values ("0"),("-0.00"),("-0.01"),("-0.002"),("1");
diff --git a/mysql-test/r/type_set.result b/mysql-test/r/type_set.result
new file mode 100644
index 00000000000..858bf5f3ba2
--- /dev/null
+++ b/mysql-test/r/type_set.result
@@ -0,0 +1,14 @@
+create table t1 (a set (' ','a','b') not null);
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` set('','a','b') NOT NULL default ''
+) TYPE=MyISAM
+drop table t1;
+create table t1 (a set (' ','a','b ') not null default 'b ');
+show create table t1;
+Table Create Table
+t1 CREATE TABLE `t1` (
+ `a` set('','a','b') NOT NULL default 'b'
+) TYPE=MyISAM
+drop table t1;
diff --git a/mysql-test/r/variables.result b/mysql-test/r/variables.result
index e1f21f324ce..52c2c026bd3 100644
--- a/mysql-test/r/variables.result
+++ b/mysql-test/r/variables.result
@@ -44,3 +44,17 @@ c_id c_name c_country
1 Bozo USA
4 Mr. Floppy GB
drop table t1;
+select @@VERSION=version();
+@@VERSION=version()
+1
+select last_insert_id(345);
+last_insert_id(345)
+345
+select @@IDENTITY,last_insert_id();
+@@IDENTITY last_insert_id()
+345 345
+select @@identity;
+@@IDENTITY
+345
+select @@unknown_variable;
+Unknown system variable 'unknown_variable'
diff --git a/mysql-test/t/fulltext.test b/mysql-test/t/fulltext.test
index ea7a572951a..238705c8e3e 100644
--- a/mysql-test/t/fulltext.test
+++ b/mysql-test/t/fulltext.test
@@ -20,7 +20,6 @@ select * from t1 where MATCH(a,b) AGAINST ("indexes collections");
# UNION of fulltext's
select * from t1 where MATCH(a,b) AGAINST ("collections") UNION ALL select * from t1 where MATCH(a,b) AGAINST ("indexes");
-
# boolean search
select * from t1 where MATCH(a,b) AGAINST("support -collections" IN BOOLEAN MODE);
@@ -34,6 +33,13 @@ select * from t1 where MATCH(a,b) AGAINST("+search -(support vector)" IN BOOLEAN
select *, MATCH(a,b) AGAINST("support collections" IN BOOLEAN MODE) as x from t1;
select *, MATCH(a,b) AGAINST("collections support" IN BOOLEAN MODE) as x from t1;
+select * from t1 where MATCH a,b AGAINST ("+call* +coll*" IN BOOLEAN MODE);
+
+select * from t1 where MATCH a,b AGAINST ('"Now sUPPort"' IN BOOLEAN MODE);
+select * from t1 where MATCH a,b AGAINST ('"text search" "now support"' IN BOOLEAN MODE);
+select * from t1 where MATCH a,b AGAINST ('"text search" -"now support"' IN BOOLEAN MODE);
+select * from t1 where MATCH a,b AGAINST ('"text search" +"now support"' IN BOOLEAN MODE);
+
# boolean w/o index:
select * from t1 where MATCH a AGAINST ("search" IN BOOLEAN MODE);
@@ -117,7 +123,7 @@ select * from t2,t3 where MATCH (t2.inhalt,t3.inhalt) AGAINST ('foobar');
drop table t1,t2,t3;
#
-# two more bugtests
+# three more bugtests
#
CREATE TABLE t1 (
@@ -129,6 +135,7 @@ CREATE TABLE t1 (
) TYPE=MyISAM;
insert into t1 (title) values ('this is a test');
+select * from t1 where match title against ('test' in boolean mode);
update t1 set title='this is A test' where id=1;
check table t1;
update t1 set title='this test once revealed a bug' where id=1;
@@ -143,4 +150,8 @@ CREATE TABLE t1 (a int(11), b text, FULLTEXT KEY (b)) TYPE=MyISAM;
insert into t1 values (1,"I wonder why the fulltext index doesnt work?");
SELECT * from t1 where MATCH (b) AGAINST ('apples');
+insert into t1 values (2,"fullaaa fullzzz");
+select * from t1 where match b against ('full*' in boolean mode);
+
drop table t1;
+
diff --git a/mysql-test/t/func_concat.test b/mysql-test/t/func_concat.test
new file mode 100644
index 00000000000..d6da1d6a603
--- /dev/null
+++ b/mysql-test/t/func_concat.test
@@ -0,0 +1,24 @@
+#
+# Test of problem with CONCAT_WS() and long separators.
+#
+
+DROP TABLE IF EXISTS t1;
+CREATE TABLE t1 ( number INT NOT NULL, alpha CHAR(6) NOT NULL );
+INSERT INTO t1 VALUES (1413006,'idlfmv'),
+(1413065,'smpsfz'),(1413127,'sljrhx'),(1413304,'qerfnd');
+
+SELECT number, alpha, CONCAT_WS('<---->',number,alpha) AS new
+FROM t1 GROUP BY number;
+
+SELECT CONCAT_WS('<---->',number,alpha) AS new
+FROM t1 GROUP BY new LIMIT 1;
+
+SELECT number, alpha, CONCAT_WS('<->',number,alpha) AS new
+FROM t1 GROUP BY new LIMIT 1;
+
+SELECT number, alpha, CONCAT_WS('-',number,alpha,alpha,alpha,alpha,alpha,alpha,alpha) AS new
+FROM t1 GROUP BY new LIMIT 1;
+
+SELECT number, alpha, CONCAT_WS('<------------------>',number,alpha) AS new
+FROM t1 GROUP BY new LIMIT 1;
+drop table t1;
diff --git a/mysql-test/t/func_encrypt-master.opt b/mysql-test/t/func_encrypt-master.opt
index 0b042f52e9a..ab687810d5f 100644
--- a/mysql-test/t/func_encrypt-master.opt
+++ b/mysql-test/t/func_encrypt-master.opt
@@ -1 +1 @@
---des-key-file=$MYSQL_TEST_DIR/std_data/des_key_file
+--loose-des-key-file=$MYSQL_TEST_DIR/std_data/des_key_file
diff --git a/mysql-test/t/func_if.test b/mysql-test/t/func_if.test
new file mode 100644
index 00000000000..c5cc73ecd1f
--- /dev/null
+++ b/mysql-test/t/func_if.test
@@ -0,0 +1,30 @@
+#
+# Init section
+#
+drop table if exists t1;
+
+#
+# Simple IF tests
+#
+
+select IF(0,"ERROR","this"),IF(1,"is","ERROR"),IF(NULL,"ERROR","a"),IF(1,2,3)|0,IF(1,2.0,3.0)+0 ;
+
+#
+# Test of IF and case-sensitiveness
+#
+CREATE TABLE t1 (st varchar(255) NOT NULL, u int(11) NOT NULL) TYPE=MyISAM;
+INSERT INTO t1 VALUES ('a',1),('A',1),('aa',1),('AA',1),('a',1),('aaa',0),('BBB',0);
+select if(1,st,st) s from t1 order by s;
+select if(u=1,st,st) s from t1 order by s;
+select if(u=1,binary st,st) s from t1 order by s;
+select if(u=1,st,binary st) s from t1 where st like "%a%" order by s;
+drop table t1;
+
+#
+# Problem with IF()
+#
+
+create table t1 (num double(12,2));
+insert into t1 values (144.54);
+select sum(if(num is null,0.00,num)) from t1;
+drop table t1;
diff --git a/mysql-test/t/func_isnull.test b/mysql-test/t/func_isnull.test
new file mode 100644
index 00000000000..bd3bcd8d04c
--- /dev/null
+++ b/mysql-test/t/func_isnull.test
@@ -0,0 +1,10 @@
+#
+# test of ISNULL()
+#
+
+drop table if exists t1;
+create table t1 (id int auto_increment primary key not null, mydate date not null);
+insert into t1 values (0,"2002-05-01"),(0,"2002-05-01"),(0,"2002-05-01");
+flush tables;
+select * from t1 where isnull(to_days(mydate));
+drop table t1;
diff --git a/mysql-test/t/func_like.test b/mysql-test/t/func_like.test
index e0f1f0db9ce..09746fcc817 100644
--- a/mysql-test/t/func_like.test
+++ b/mysql-test/t/func_like.test
@@ -9,4 +9,12 @@ select * from t1 where a like "abc%";
select * from t1 where a like "ABC%";
select * from t1 where a like "test%";
select * from t1 where a like "te_t";
+
+#
+# The following will test the Turbo Boyer-Moore code
+#
+select * from t1 where a like "%a%";
+select * from t1 where a like "%abcd%";
+select * from t1 where a like "%abc\d%";
+
drop table t1;
diff --git a/mysql-test/t/func_math.test b/mysql-test/t/func_math.test
index ab7990eea79..5299897d0f0 100644
--- a/mysql-test/t/func_math.test
+++ b/mysql-test/t/func_math.test
@@ -4,7 +4,7 @@
select floor(5.5),floor(-5.5);
select ceiling(5.5),ceiling(-5.5);
-select truncate(52.64,1),truncate(52.64,2),truncate(52.64,-1),truncate(52.64,-2);
+select truncate(52.64,1),truncate(52.64,2),truncate(52.64,-1),truncate(52.64,-2), truncate(-52.64,1),truncate(-52.64,-1);
select round(5.5),round(-5.5);
select round(5.64,1),round(5.64,2),round(5.64,-1),round(5.64,-2);
select abs(-10), sign(-5), sign(5), sign(0);
diff --git a/mysql-test/t/func_test.test b/mysql-test/t/func_test.test
index 0439a96f077..ec44009b1a6 100644
--- a/mysql-test/t/func_test.test
+++ b/mysql-test/t/func_test.test
@@ -11,7 +11,6 @@ select 'abc' like '%c','abcabc' like '%c', "ab" like "", "ab" like "a", "ab" li
select "Det här är svenska" regexp "h[[:alpha:]]+r", "aba" regexp "^(a|b)*$";
select "aba" regexp concat("^","a");
select !0,NOT 0=1,!(0=0),1 AND 1,1 && 0,0 OR 1,1 || NULL, 1=1 or 1=1 and 1=0;
-select IF(0,"ERROR","this"),IF(1,"is","ERROR"),IF(NULL,"ERROR","a"),IF(1,2,3)|0,IF(1,2.0,3.0)+0 ;
select 2 between 1 and 3, "monty" between "max" and "my",2=2 and "monty" between "max" and "my" and 3=3;
select 'b' between 'a' and 'c', 'B' between 'a' and 'c';
select 2 in (3,2,5,9,5,1),"monty" in ("david","monty","allan"), 1.2 in (1.4,1.2,1.0);
@@ -24,13 +23,3 @@ select -1.49 or -1.49,0.6 or 0.6;
select 5 between 0 and 10 between 0 and 1,(5 between 0 and 10) between 0 and 1;
select 1 and 2 between 2 and 10, 2 between 2 and 10 and 1;
select 1 and 0 or 2, 2 or 1 and 0;
-
-#
-# Problem with IF()
-#
-
-drop table if exists t1;
-create table t1 (num double(12,2));
-insert into t1 values (144.54);
-select sum(if(num is null,0.00,num)) from t1;
-drop table t1;
diff --git a/mysql-test/t/group_by.test b/mysql-test/t/group_by.test
index 17ad9588f1b..171b5510227 100644
--- a/mysql-test/t/group_by.test
+++ b/mysql-test/t/group_by.test
@@ -283,3 +283,19 @@ SELECT 1 FROM t1 GROUP BY CONCAT(a, b);
INSERT INTO t1 values ('hij','klm');
SELECT CONCAT(a, b),count(*) FROM t1 GROUP BY 1;
DROP TABLE t1;
+drop table if exists t1;
+create table t1 (One int unsigned, Two int unsigned, Three int unsigned, Four int unsigned);
+insert into t1 values (1,2,1,4);
+insert into t1 values (1,2,2,4);
+insert into t1 values (1,2,3,4);
+insert into t1 values (1,2,4,4);
+insert into t1 values (1,1,1,4);
+insert into t1 values (1,1,2,4);
+insert into t1 values (1,1,3,4);
+insert into t1 values (1,1,4,4);
+insert into t1 values (1,3,1,4);
+insert into t1 values (1,3,2,4);
+insert into t1 values (1,3,3,4);
+insert into t1 values (1,3,4,4);
+select One, Two, sum(Four) from t1 group by One,Two;
+drop table if exists t1;
diff --git a/mysql-test/t/identity.test b/mysql-test/t/identity.test
deleted file mode 100644
index 37183fd3b35..00000000000
--- a/mysql-test/t/identity.test
+++ /dev/null
@@ -1,2 +0,0 @@
-select last_insert_id(345);
-select @@IDENTITY,last_insert_id();
diff --git a/mysql-test/t/innodb_cache.test b/mysql-test/t/innodb_cache.test
index 065671476a0..21d30420eaf 100644
--- a/mysql-test/t/innodb_cache.test
+++ b/mysql-test/t/innodb_cache.test
@@ -1,4 +1,5 @@
-- source include/have_innodb.inc
+-- source include/have_query_cache.inc
#
# Without auto_commit.
diff --git a/mysql-test/t/join.test b/mysql-test/t/join.test
index 3bd78350267..18006e8fd22 100644
--- a/mysql-test/t/join.test
+++ b/mysql-test/t/join.test
@@ -120,6 +120,7 @@ CREATE TABLE t2 (d DATE NOT NULL);
INSERT INTO t1 (d) VALUES ('2001-08-01'),('0000-00-00');
SELECT * FROM t1 LEFT JOIN t2 USING (d) WHERE t2.d IS NULL;
SELECT * from t1 WHERE t1.d IS NULL;
+SELECT * FROM t1 WHERE 1/0 IS NULL;
DROP TABLE t1,t2;
#
diff --git a/mysql-test/t/rpl_empty_master_crash.test b/mysql-test/t/rpl_empty_master_crash.test
new file mode 100644
index 00000000000..158b59169ee
--- /dev/null
+++ b/mysql-test/t/rpl_empty_master_crash.test
@@ -0,0 +1,7 @@
+source include/master-slave.inc;
+connection master;
+use test;
+drop table if exists t1;
+show slave status;
+--error 1218
+load table t1 from master;
diff --git a/mysql-test/t/select_found.test b/mysql-test/t/select_found.test
index d6b6284a88b..c95d46b166c 100644
--- a/mysql-test/t/select_found.test
+++ b/mysql-test/t/select_found.test
@@ -2,7 +2,7 @@
# Testing of found_rows()
#
-drop table if exists t1;
+drop table if exists t1,t2;
create table t1 (a int not null auto_increment, b int not null, primary key(a));
insert into t1 (b) values (2),(3),(5),(5),(5),(6),(7),(9);
select SQL_CALC_FOUND_ROWS * from t1;
@@ -32,3 +32,39 @@ select FOUND_ROWS();
select sql_calc_found_rows a from t1 where a in (1,2,3) order by a+2 desc limit 0,2;
select FOUND_ROWS();
drop table t1;
+
+#
+# Test of SQL_CALC_FOUND_ROWS with DISTINCT
+#
+
+CREATE TABLE t1 (
+`id` smallint(5) unsigned NOT NULL auto_increment,
+`kid` smallint(5) unsigned NOT NULL default '0',
+PRIMARY KEY (`id`),
+KEY `kid` (`kid`)
+);
+
+CREATE TABLE t2 (
+ id smallint(5) unsigned NOT NULL auto_increment,
+ name varchar(50) NOT NULL default '',
+ email varchar(50) NOT NULL default '',
+ PRIMARY KEY (id),
+ UNIQUE KEY e_n (email,name)
+);
+
+INSERT INTO t2 VALUES (1,'name1','email1'),(2,'name2','email2'),(3,'name3','email3'),(4,'name4','email4'),(5,'name5','email5'),(6,'name6','email6'),(7,'name7','email7'),(8,'name8','email8'),(9,'name9','email9'),(10,'name10','email10'),(11,'name11','email11'),(12,'name12','email12'),(13,'name13','email13'),(14,'name14','email14'),(15,'name15','email15'),(16,'name16','email16'),(17,'name17','email17'),(18,'name18','email18'),(19,'name19','email19'),(20,'name20','email20'),(21,'name21','email21'),(22,'name22','email22'),(23,'name23','email23'),(24,'name24','email24'),(25,'name25','email25'),(26,'name26','email26'),(27,'name27','email27'),(28,'name28','email28'),(29,'name29','email29'),(30,'name30','email30'),(31,'name31','email31'),(32,'name32','email32'),(33,'name33','email33'),(34,'name34','email34'),(35,'name35','email35'),(36,'name36','email36'),(37,'name37','email37'),(38,'name38','email38'),(39,'name39','email39'),(40,'name40','email40'),(41,'name41','email41'),(42,'name42','email42'),(43,'name43','email43'),(44,'name44','email44'),(45,'name45','email45'),(46,'name46','email46'),(47,'name47','email47'),(48,'name48','email48'),(49,'name49','email49'),(50,'name50','email50'),(51,'name51','email51'),(52,'name52','email52'),(53,'name53','email53'),(54,'name54','email54'),(55,'name55','email55'),(56,'name56','email56'),(57,'name57','email57'),(58,'name58','email58'),(59,'name59','email59'),(60,'name60','email60'),(61,'name61','email61'),(62,'name62','email62'),(63,'name63','email63'),(64,'name64','email64'),(65,'name65','email65'),(66,'name66','email66'),(67,'name67','email67'),(68,'name68','email68'),(69,'name69','email69'),(70,'name70','email70'),(71,'name71','email71'),(72,'name72','email72'),(73,'name73','email73'),(74,'name74','email74'),(75,'name75','email75'),(76,'name76','email76'),(77,'name77','email77'),(78,'name78','email78'),(79,'name79','email79'),(80,'name80','email80'),(81,'name81','email81'),(82,'name82','email82'),(83,'name83','email83'),(84,'name84','email84'),(85,'name85','email85'),(86,'name86','email86'),(87,'name87','email87'),(88,'name88','email88'),(89,'name89','email89'),(90,'name90','email90'),(91,'name91','email91'),(92,'name92','email92'),(93,'name93','email93'),(94,'name94','email94'),(95,'name95','email95'),(96,'name96','email96'),(97,'name97','email97'),(98,'name98','email98'),(99,'name99','email99'),(100,'name100','email100'),(101,'name101','email101'),(102,'name102','email102'),(103,'name103','email103'),(104,'name104','email104'),(105,'name105','email105'),(106,'name106','email106'),(107,'name107','email107'),(108,'name108','email108'),(109,'name109','email109'),(110,'name110','email110'),(111,'name111','email111'),(112,'name112','email112'),(113,'name113','email113'),(114,'name114','email114'),(115,'name115','email115'),(116,'name116','email116'),(117,'name117','email117'),(118,'name118','email118'),(119,'name119','email119'),(120,'name120','email120'),(121,'name121','email121'),(122,'name122','email122'),(123,'name123','email123'),(124,'name124','email124'),(125,'name125','email125'),(126,'name126','email126'),(127,'name127','email127'),(128,'name128','email128'),(129,'name129','email129'),(130,'name130','email130'),(131,'name131','email131'),(132,'name132','email132'),(133,'name133','email133'),(134,'name134','email134'),(135,'name135','email135'),(136,'name136','email136'),(137,'name137','email137'),(138,'name138','email138'),(139,'name139','email139'),(140,'name140','email140'),(141,'name141','email141'),(142,'name142','email142'),(143,'name143','email143'),(144,'name144','email144'),(145,'name145','email145'),(146,'name146','email146'),(147,'name147','email147'),(148,'name148','email148'),(149,'name149','email149'),(150,'name150','email150'),(151,'name151','email151'),(152,'name152','email152'),(153,'name153','email153'),(154,'name154','email154'),(155,'name155','email155'),(156,'name156','email156'),(157,'name157','email157'),(158,'name158','email158'),(159,'name159','email159'),(160,'name160','email160'),(161,'name161','email161'),(162,'name162','email162'),(163,'name163','email163'),(164,'name164','email164'),(165,'name165','email165'),(166,'name166','email166'),(167,'name167','email167'),(168,'name168','email168'),(169,'name169','email169'),(170,'name170','email170'),(171,'name171','email171'),(172,'name172','email172'),(173,'name173','email173'),(174,'name174','email174'),(175,'name175','email175'),(176,'name176','email176'),(177,'name177','email177'),(178,'name178','email178'),(179,'name179','email179'),(180,'name180','email180'),(181,'name181','email181'),(182,'name182','email182'),(183,'name183','email183'),(184,'name184','email184'),(185,'name185','email185'),(186,'name186','email186'),(187,'name187','email187'),(188,'name188','email188'),(189,'name189','email189'),(190,'name190','email190'),(191,'name191','email191'),(192,'name192','email192'),(193,'name193','email193'),(194,'name194','email194'),(195,'name195','email195'),(196,'name196','email196'),(197,'name197','email197'),(198,'name198','email198'),(199,'name199','email199'),(200,'name200','email200');
+
+SELECT SQL_CALC_FOUND_ROWS DISTINCT email FROM t2 LEFT JOIN t1 ON kid = t2.id WHERE t1.id IS NULL LIMIT 10;
+SELECT FOUND_ROWS();
+
+SELECT SQL_CALC_FOUND_ROWS DISTINCT email FROM t2 LEFT JOIN t1 ON kid = t2.id WHERE t1.id IS NULL order by email LIMIT 10;
+SELECT FOUND_ROWS();
+
+SELECT DISTINCT email FROM t2 LEFT JOIN t1 ON kid = t2.id WHERE t1.id IS NULL LIMIT 10;
+SELECT DISTINCT email FROM t2 LEFT JOIN t1 ON kid = t2.id WHERE t1.id IS NULL ORDER BY email LIMIT 10;
+INSERT INTO `t1` (`id`, `kid`) VALUES ('', '150');
+
+SELECT SQL_CALC_FOUND_ROWS DISTINCT email FROM t2 LEFT JOIN t1 ON kid = t2.id WHERE t1.id IS NULL LIMIT 10;
+SELECT FOUND_ROWS();
+
+drop table t1,t2;
diff --git a/mysql-test/t/show_check.test b/mysql-test/t/show_check.test
index a2b7fa381ee..5e10ebf23a3 100644
--- a/mysql-test/t/show_check.test
+++ b/mysql-test/t/show_check.test
@@ -20,6 +20,7 @@ drop table t1;
#show variables;
show variables like "wait_timeout%";
+show variables like "WAIT_timeout%";
show variables like "this_doesn't_exists%";
show table status from test like "this_doesn't_exists%";
show databases;
@@ -74,3 +75,17 @@ show create table t1;
ALTER TABLE t1 AVG_ROW_LENGTH=0 CHECKSUM=0 COMMENT="" MIN_ROWS=0 MAX_ROWS=0 PACK_KEYS=DEFAULT DELAY_KEY_WRITE=0 ROW_FORMAT=default;
show create table t1;
drop table t1;
+
+create table t1 (a decimal(9,2), b decimal (9,0), e double(9,2), f double(5,0), h float(3,2), i float(3,0));
+show columns from t1;
+drop table t1;
+
+# Check auto conversions of types
+
+create table t1 (c decimal, d double, f float, r real);
+show columns from t1;
+drop table t1;
+
+create table t1 (c decimal(3,3), d double(3,3), f float(3,3));
+show columns from t1;
+drop table t1;
diff --git a/mysql-test/t/type_datetime.test b/mysql-test/t/type_datetime.test
index 857937fd90e..a516bc89f99 100644
--- a/mysql-test/t/type_datetime.test
+++ b/mysql-test/t/type_datetime.test
@@ -39,3 +39,23 @@ create table t1 (id int, dt datetime);
insert into t1 values (1,"2001-08-14 00:00:00"),(2,"2001-08-15 00:00:00"),(3,"2001-08-16 00:00:00");
select * from t1 where dt='2001-08-14 00:00:00' and dt = if(id=1,'2001-08-14 00:00:00','1999-08-15');
drop table t1;
+
+#
+# Test of datetime optimization
+#
+
+CREATE TABLE `t1` (
+ `date` datetime NOT NULL default '0000-00-00 00:00:00',
+ `numfacture` int(6) unsigned NOT NULL default '0',
+ `expedition` datetime NOT NULL default '0000-00-00 00:00:00',
+ PRIMARY KEY (`numfacture`),
+ KEY `date` (`date`),
+ KEY `expedition` (`expedition`)
+) TYPE=MyISAM;
+
+INSERT INTO t1 (expedition) VALUES ('0001-00-00 00:00:00');
+SELECT * FROM t1 WHERE expedition='0001-00-00 00:00:00';
+INSERT INTO t1 (numfacture,expedition) VALUES ('1212','0001-00-00 00:00:00');
+SELECT * FROM t1 WHERE expedition='0001-00-00 00:00:00';
+EXPLAIN SELECT * FROM t1 WHERE expedition='0001-00-00 00:00:00';
+drop table t1;
diff --git a/mysql-test/t/type_decimal.test b/mysql-test/t/type_decimal.test
index 8d4b50eec4d..21e06c0dbe9 100644
--- a/mysql-test/t/type_decimal.test
+++ b/mysql-test/t/type_decimal.test
@@ -147,3 +147,68 @@ INSERT INTO t1 VALUES ( '146', '16', '0.0000000000', '1.9000000000', '', '0', '1
select * from t1 where minvalue<=1 and maxvalue>=-1 and datatype_id=16;
select * from t1 where minvalue<=-1 and maxvalue>=-1 and datatype_id=16;
drop table t1;
+
+#
+# Test of correct handling leading zero and +/- signs
+# then values are passed as strings
+# Also test overflow handling in this case
+#
+
+create table t1 (a decimal(10,2));
+insert into t1 values ("0.0"),("-0.0"),("+0.0"),("01.0"),("+01.0"),("-01.0");
+insert into t1 values ("-.1"),("+.1"),(".1");
+insert into t1 values ("00000000000001"),("+0000000000001"),("-0000000000001");
+insert into t1 values ("+111111111.11"),("111111111.11"),("-11111111.11");
+insert into t1 values ("-111111111.11"),("+1111111111.11"),("1111111111.11");
+select * from t1;
+drop table t1;
+
+create table t1 (a decimal(10,2) unsigned);
+insert into t1 values ("0.0"),("-0.0"),("+0.0"),("01.0"),("+01.0"),("-01.0");
+insert into t1 values ("-.1"),("+.1"),(".1");
+insert into t1 values ("00000000000001"),("+0000000000001"),("-0000000000001");
+insert into t1 values ("+111111111.11"),("111111111.11"),("-11111111.11");
+insert into t1 values ("-111111111.11"),("+1111111111.11"),("1111111111.11");
+select * from t1;
+drop table t1;
+
+create table t1 (a decimal(10,2) zerofill);
+insert into t1 values ("0.0"),("-0.0"),("+0.0"),("01.0"),("+01.0"),("-01.0");
+insert into t1 values ("-.1"),("+.1"),(".1");
+insert into t1 values ("00000000000001"),("+0000000000001"),("-0000000000001");
+insert into t1 values ("+111111111.11"),("111111111.11"),("-11111111.11");
+insert into t1 values ("-111111111.11"),("+1111111111.11"),("1111111111.11");
+select * from t1;
+drop table t1;
+
+
+create table t1 (a decimal(10,2));
+# The -0.0 needs to be quoted as not all platforms supports this
+insert into t1 values (0.0),("-0.0"),(+0.0),(01.0),(+01.0),(-01.0);
+insert into t1 values (-.1),(+.1),(.1);
+insert into t1 values (00000000000001),(+0000000000001),(-0000000000001);
+insert into t1 values (+111111111.11),(111111111.11),(-11111111.11);
+insert into t1 values (-111111111.11),(+1111111111.11),(1111111111.11);
+select * from t1;
+drop table t1;
+
+#
+# Test correct handling of overflowed decimal values
+#
+
+create table t1 (a decimal);
+insert into t1 values (-99999999999999),(-1),('+1'),('01'),('+00000000000001'),('+12345678901'),(99999999999999);
+select * from t1;
+drop table t1;
+create table t1 (a decimal unsigned);
+insert into t1 values (-99999999999999),(-1),('+1'),('01'),('+00000000000001'),('+1234567890'),(99999999999999);
+select * from t1;
+drop table t1;
+create table t1 (a decimal zerofill);
+insert into t1 values (-99999999999999),(-1),('+1'),('01'),('+00000000000001'),('+1234567890'),(99999999999999);
+select * from t1;
+drop table t1;
+create table t1 (a decimal unsigned zerofill);
+insert into t1 values (-99999999999999),(-1),('+1'),('01'),('+00000000000001'),('+1234567890'),(99999999999999);
+select * from t1;
+drop table t1;
diff --git a/mysql-test/t/type_enum.test b/mysql-test/t/type_enum.test
index 62d83388a67..8f399e4364e 100644
--- a/mysql-test/t/type_enum.test
+++ b/mysql-test/t/type_enum.test
@@ -10,3 +10,14 @@ CREATE TABLE t1 (
INSERT INTO t1 VALUES ('001001'),('001001'),('001001'),('001001'),('001001'),('001001'),('001001'),('001001'),('001001'),('001010'),('001010'),('001010'),('001010'),('001010'),('001018'),('001018'),('001018'),('001018'),('001018'),('001018'),('001020'),('001020'),('001020'),('001020'),('001020'),('001020'),('001020'),('001020'),('001021'),('001021'),('001021'),('001021'),('001021'),('001021'),('001027'),('001027'),('001028'),('001030'),('001030'),('001030'),('001030'),('001031'),('001031'),('001031'),('001031'),('001031'),('001100'),('001100'),('002003'),('002003'),('002003'),('002003'),('002003'),('002003'),('002003'),('002003'),('002003'),('002004'),('002004'),('002004'),('002004'),('002004'),('002004'),('002004'),('002004'),('002004'),('002005'),('002005'),('002005'),('002005'),('002005'),('002005'),('002005'),('002005'),('002007'),('002007'),('002007'),('002007'),('002007'),('002007'),('002007'),('002008'),('002008'),('002008'),('002008'),('002008'),('002008'),('002008'),('002008'),('002009'),('002009'),('002009'),('002009'),('002009'),('002009'),('002009'),('002009'),('002012'),('002012'),('002012'),('002012'),('002012'),('002012'),('002012'),('002013'),('002013'),('002013'),('002013'),('002013'),('002013'),('002013'),('002013'),('002013'),('002014'),('002014'),('002014'),('002014'),('002014'),('002014'),('002014'),('002014'),('003002'),('003002'),('003002'),('003002'),('003002'),('003002'),('003003'),('003003'),('003003'),('003003'),('003003'),('003003'),('003004'),('003004'),('003004'),('003004'),('003004'),('003004'),('003005'),('003005'),('003005'),('003005'),('003005'),('003005'),('003005'),('003005'),('003005'),('003006'),('003006'),('003006'),('003006'),('003006'),('003006'),('003006'),('003006'),('003007'),('003007'),('003007'),('003007'),('003007'),('003008'),('003008'),('003008'),('003008'),('003008'),('003008'),('003009'),('003009'),('003009'),('003009'),('003009'),('003009'),('003009'),('003009'),('003009'),('003010'),('003010'),('003010'),('003010'),('003010'),('003010'),('003010'),('003010'),('003010'),('003011'),('003011'),('003011'),('003011'),('003011'),('003011'),('003011'),('003011'),('003012'),('003012'),('003012'),('003012'),('003012'),('003012'),('003012'),('003012'),('003013'),('003013'),('003013'),('003013'),('003013'),('003013'),('003013'),('003013'),('003014'),('003014'),('003014'),('003014'),('003014'),('003014'),('003014'),('003014'),('003015'),('003015'),('003015'),('003015'),('003015'),('003015'),('003016'),('003016'),('003016'),('003016'),('003016'),('003016'),('003017'),('003017'),('003017'),('003017'),('003017'),('003018'),('003018'),('003018'),('003018'),('003018'),('003019'),('003019'),('004003'),('004005'),('004005'),('004005'),('004005'),('004005'),('004005'),('004006'),('004008'),('004010'),('004012'),('004012'),('004014'),('004014'),('004014'),('004014'),('004014'),('004016'),('004017'),('004017'),('004017'),('004017'),('004017'),('004017'),('004017'),('004017'),('004020'),('004020'),('004020'),('004020'),('004020'),('004020'),('004021'),('004021'),('004021'),('004021'),('004021'),('004021'),('004021'),('004022'),('004023'),('004023'),('004023'),('004023'),('004023'),('004023'),('004023'),('004025'),('004026'),('004026'),('004026'),('004026'),('004026'),('006004'),('006006'),('006010'),('006010'),('006010'),('006010'),('006010'),('006010'),('006010'),('006011'),('006011'),('006011'),('006011'),('006011'),('006011'),('006012'),('006012'),('006012'),('006012'),('006012'),('006012'),('006014'),('006014'),('006014'),('007001'),('007001'),('007002'),('007003'),('007005'),('007007'),('007008'),('007009'),('007011'),('007012'),('007013'),('007015'),('007016'),('007017'),('007018'),('007019'),('007019'),('007020'),('007021'),('007021'),('007022'),('007023'),('007023'),('007025'),('007025'),('007025'),('007027'),('007029'),('007031'),('007031'),('007032'),('007034'),('007034'),('007036'),('007036'),('007036'),('007037'),('007037'),('007038'),('007040'),('007040'),('007040'),('007043'),('009001'),('009001'),('009001'),('009001'),('009001'),('009001'),('009001'),('009002'),('009002'),('009002'),('009002'),('009002'),('009004'),('009004'),('009004'),('009004'),('009005'),('009005'),('009005'),('009005'),('009005'),('009005'),('009005'),('009005'),('009006'),('009006'),('009006'),('009006'),('009007'),('009007'),('009007'),('009007'),('009007'),('009007'),('009008'),('009010'),('009010'),('009010'),('009010'),('009010'),('009010'),('009011'),('009011'),('009011'),('009011'),('009011'),('009012'),('009013'),('009013'),('009013'),('010002'),('010002'),('010002'),('010002'),('010002'),('010002'),('010002'),('010002'),('010003'),('010003'),('010003'),('010003'),('010003'),('010003'),('010003'),('010003'),('010003'),('010004'),('010004'),('010004'),('010004'),('010004'),('010004'),('010004'),('010004'),('010004'),('010005'),('010005'),('010005'),('010005'),('010006'),('010006'),('010006'),('010006'),('010006'),('010006'),('010006'),('010006'),('010006'),('010007'),('010007'),('010007'),('010007'),('010007'),('010007'),('010008'),('010008'),('010008'),('010008'),('010008'),('010008'),('010008'),('010009'),('010009'),('010009'),('010009'),('010009'),('010009'),('010010'),('010010'),('010010'),('010010'),('010010'),('010010'),('010010'),('010011'),('010011'),('010011'),('010011'),('010011'),('010011'),('010011'),('010011'),('010012'),('010012'),('010012'),('010012'),('010012'),('010012'),('010012'),('010013'),('010013'),('010013'),('010013'),('010013'),('010013'),('010015'),('010016'),('010016'),('010016'),('010016'),('010016'),('010016'),('010016'),('010016'),('010017'),('010017'),('010017'),('010017'),('010017'),('010017'),('010018'),('010018'),('010018'),('010018'),('010018'),('010018'),('010018'),('010018'),('010018'),('010019'),('010019'),('010019'),('010019'),('010019'),('010019'),('010020'),('010020'),('010020'),('010021'),('010021'),('010021'),('010021'),('010021'),('010021'),('010022'),('010022'),('010022'),('010022'),('010022'),('010022'),('010022'),('010022'),('010023'),('010023'),('010023'),('010023'),('010023'),('010023'),('010023'),('010023'),('010026'),('010027'),('010028'),('010028'),('011001'),('011001'),('011001'),('011001'),('011001'),('011001'),('011001'),('011002'),('011002'),('011002'),('011002'),('011002'),('011002'),('011002'),('011003'),('011003'),('011003'),('011003'),('011003'),('011003'),('011003'),('011003'),('011004'),('011004'),('011004'),('011004'),('011004'),('011004'),('011004'),('011006'),('011006'),('011006'),('011006'),('011006'),('011006'),('011006'),('011012'),('011012'),('011012'),('011013'),('011013'),('011013'),('011013'),('011013'),('011013'),('011014'),('011014'),('011014'),('011014'),('011015'),('011015'),('011015'),('011015'),('011015'),('011016'),('011016'),('011016'),('011016'),('011016'),('012017'),('012017'),('012027'),('012027'),('012032'),('012034'),('012036'),('012036'),('012037'),('012037'),('012038'),('012039'),('014001'),('014001'),('016016'),('016016'),('016016'),('016019'),('016020'),('016020'),('016020'),('016020'),('016020'),('016020'),('016020'),('016020'),('016021'),('016021'),('016021'),('016021'),('016021'),('016021'),('016021'),('016022'),('016022'),('016022'),('016023'),('016023'),('016023'),('016024'),('016024'),('016024'),('016024'),('016024'),('016024'),('016024'),('016026'),('016026'),('016026'),('016026'),('016026'),('016026'),('016028'),('016028'),('016028'),('016028'),('016028'),('016028'),('016028'),('016029'),('016029'),('016030'),('016031'),('016032'),('016032'),('016032'),('016032'),('016032'),('016032'),('016032'),('016033'),('016033'),('016033'),('016033'),('016033'),('016034'),('016034'),('016034'),('016034'),('016034'),('017002'),('017002'),('017002'),('017002'),('017002'),('018001'),('018001'),('018001'),('018001'),('018001'),('018001'),('018001'),('018001'),('019002'),('019002'),('019002'),('019002'),('019002'),('019002'),('019004'),('019004'),('019004'),('019004'),('019004'),('019004'),('020001'),('020001'),('020001'),('020001'),('020004'),('020006'),('020006'),('020006'),('020006'),('020006'),('020006'),('020008'),('020009'),('020009'),('020009'),('020009'),('020009'),('022001'),('022001'),('022001'),('022001'),('022002'),('022002'),('022002'),('022002'),('022003'),('022003'),('022003'),('022003'),('023001'),('023002'),('023002'),('023002'),('023002'),('023002'),('023002'),('023003'),('023003'),('023003'),('023003'),('023004'),('023004'),('023005'),('023005'),('023006'),('023006'),('023006'),('023006'),('023006'),('023006'),('023007'),('023007'),('023010'),('023010'),('023011'),('023011'),('023017'),('023019'),('023019'),('023019'),('023020'),('023020'),('023025'),('023025'),('023025'),('023026'),('023026'),('023026'),('023027'),('023027'),('023027'),('023028'),('023028'),('023029'),('023029'),('023030'),('023030'),('023032'),('023033'),('023033'),('023033'),('023033'),('023033'),('023033'),('023034'),('023035'),('023035'),('025001'),('025001'),('025001'),('025001'),('025001'),('025001'),('025001'),('025003'),('025003'),('025004'),('025004'),('025005'),('025005'),('025007'),('025007'),('025008'),('025008'),('025009'),('025010'),('025010'),('025010'),('025011'),('025011'),('025012'),('025012'),('025013'),('025013'),('025013'),('025014'),('025015'),('025016'),('025018'),('025018'),('025019'),('025019'),('025020'),('025020'),('025021'),('025022'),('025022'),('025023'),('025023'),('025024'),('025025'),('025025'),('025026'),('025026'),('025027'),('025027'),('025027'),('025028'),('025030'),('025031'),('025033'),('025034'),('025035'),('025037'),('025041'),('025042'),('025043'),('025046'),('025048'),('025048'),('025048'),('025049'),('025049'),('025049'),('025050'),('025050'),('025050'),('025051'),('025051'),('025052'),('025052'),('025052'),('025053'),('025053'),('025054'),('025054'),('025054'),('025054'),('025055'),('025056'),('025056'),('025056'),('025056'),('025056'),('025056'),('025056'),('025056'),('025056'),('025057'),('025057'),('025058'),('025058'),('025060'),('025060'),('025061'),('025062'),('025063'),('027001'),('027002'),('027011'),('036001'),('036001'),('036001'),('036001'),('036001'),('037003'),('037006'),('037007'),('037008'),('037008'),('038009'),('039001'),('039001'),('039001'),('039001'),('039001'),('039001'),('039002'),('039002'),('039002'),('039002'),('039002'),('039003'),('039003'),('039003'),('039003'),('039003'),('039003'),('039004'),('039004'),('039004'),('039004'),('039004'),('039005'),('039005'),('039005'),('039005'),('039005'),('039006'),('039006'),('039006'),('039006'),('046001'),('046001'),('046001'),('046001'),('046001'),('046001'),('046001'),('046001'),('046002'),('046002'),('046002'),('046002'),('046002'),('046002'),('046002'),('046002'),('046003'),('046003'),('046003'),('046003'),('046003'),('046003'),('046003'),('046005'),('046005'),('046005'),('046005'),('046005'),('046005'),('046005'),('046007'),('046007'),('046007'),('046007'),('046007'),('046007'),('046008'),('046008'),('046008'),('046008'),('046008'),('046009'),('046009'),('046009'),('046010'),('046012'),('046012'),('046012'),('046013'),('046014'),('046014'),('046014'),('047001'),('047001'),('047001'),('047001'),('047001'),('047001'),('047001'),('047001'),('047002'),('047002'),('047002'),('047002'),('047002'),('047002'),('047002'),('047002'),('048001'),('048001'),('048001'),('048001'),('048001'),('048001'),('048001'),('048001'),('051003'),('051003'),('051003'),('051003'),('051003'),('051004'),('051004'),('051004'),('051004'),('052001'),('052001'),('052001'),('052001'),('052001'),('052001'),('052001'),('052001'),('052002'),('052002'),('052005'),('052005'),('052005'),('052005'),('052005'),('052005'),('053016'),('053019'),('053019'),('053023'),('053023'),('053023'),('053023'),('053024'),('053024'),('053024'),('053026'),('053026'),('053026'),('053026'),('053028'),('053028'),('053029'),('053029'),('053029'),('053029'),('053033'),('053033'),('053033'),('053045'),('053046'),('053051'),('053051'),('053051'),('053054'),('053054'),('053054'),('053054'),('053057'),('053069'),('053069'),('053097'),('053107'),('053125'),('053125'),('053127'),('054001'),('054001'),('054001'),('054001'),('054001'),('054001'),('054001'),('054002'),('054002'),('054002'),('054002'),('054002'),('054002'),('054003'),('054003'),('054003'),('054003'),('054003'),('054003'),('054003'),('054004'),('054004'),('054004'),('054004'),('054004'),('054004'),('054004'),('054006'),('054006'),('054006'),('054007'),('054007'),('054007'),('054007'),('054007'),('054009'),('054009'),('054009'),('054009'),('054010'),('054010'),('054010'),('054010'),('054010'),('054010'),('054010'),('056001'),('056001'),('056001'),('056001'),('056001'),('056001'),('056001'),('056001'),('056001'),('056002'),('056002'),('056002'),('056002'),('056002'),('056002'),('056002'),('056002'),('056003'),('056003'),('056003'),('056003'),('056003'),('056003'),('056004'),('056004'),('056004'),('056004'),('056004'),('056004'),('056004'),('056005'),('056005'),('056005'),('056005'),('056005'),('056005'),('056005'),('056005'),('056005'),('056006'),('056006'),('056006'),('056006'),('056006'),('056006'),('056006'),('056006'),('056006'),('056009'),('056009'),('056009'),('056011'),('056016'),('056016'),('056016'),('056016'),('056016'),('056016'),('056016'),('056017'),('056017'),('056017'),('056017'),('056017'),('056017'),('056017'),('056017'),('056017'),('056018'),('056018'),('056018'),('056018'),('056018'),('056018'),('056019'),('056019'),('056019'),('056019'),('056019'),('056019'),('056019'),('056019'),('056020'),('056020'),('056020'),('056020'),('056022'),('056022'),('056022'),('056022'),('056022'),('057003'),('057003'),('057004'),('058002'),('058002'),('058002'),('058002'),('058003'),('058003'),('058003'),('058003'),('058004'),('058004'),('058004'),('058005'),('058005'),('058005'),('060001'),('060001'),('060001'),('060001'),('060001'),('060004'),('060004'),('060004'),('060004'),('060004'),('060004'),('060005'),('060005'),('060005'),('060005'),('060005'),('060005'),('060007'),('060007'),('060007'),('060007'),('060007'),('060007'),('060007'),('061004'),('061004'),('061004'),('061004'),('061004'),('061004'),('061006'),('061006'),('061006'),('061006'),('061006'),('061006'),('069006'),('069006'),('069006'),('069006'),('069006'),('069006'),('069006'),('069006'),('069006'),('069007'),('069007'),('069007'),('069007'),('069007'),('069007'),('069007'),('069007'),('069010'),('069010'),('069010'),('069010'),('069010'),('069010'),('069011'),('069012'),('069012'),('069012'),('069012'),('069012'),('069012'),('069012'),('069012'),('069012'),('069012'),('069013'),('069013'),('069013'),('069013'),('069013'),('069013'),('069013'),('069013'),('069013'),('069014'),('069014'),('069014'),('069014'),('069014'),('069014'),('069014'),('069014'),('069014'),('069015'),('069015'),('069015'),('069015'),('069015'),('069015'),('069015'),('069015'),('069015'),('069015'),('069016'),('069016'),('069016'),('069016'),('069016'),('069018'),('069018'),('069018'),('069018'),('069018'),('069018'),('069018'),('069018'),('069018'),('069020'),('069020'),('069020'),('069020'),('069021'),('069023'),('071002'),('071002'),('071002'),('071002'),('071002'),('071003'),('071003'),('071003'),('071003'),('071003'),('071004'),('071004'),('071004'),('071004'),('071004'),('071005'),('071005'),('071005'),('071005'),('071005'),('071005'),('071006'),('071006'),('071006'),('071006'),('071008'),('071008'),('071008'),('071008'),('071008'),('071008'),('071011'),('071011'),('071011'),('071011'),('071011'),('071020'),('071020'),('071020'),('071020'),('071020'),('071021'),('071022'),('071022'),('071022'),('072001'),('072001'),('074001'),('074002'),('074002'),('074002'),('074002'),('074002'),('074002'),('074002'),('074002'),('074003'),('074003'),('074003'),('074003'),('074003'),('074003'),('074003'),('074003'),('074004'),('074004'),('074004'),('074004'),('074004'),('074004'),('074004'),('074004'),('074005'),('074005'),('074005'),('074005'),('074005'),('074005'),('074005'),('074005'),('074006'),('074006'),('074006'),('074006'),('074006'),('074006'),('074006'),('074006'),('074007'),('074007'),('074007'),('074007'),('074007'),('074007'),('074007'),('074007'),('074008'),('074008'),('074008'),('074008'),('074008'),('074008'),('074008'),('074008'),('074009'),('074009'),('074009'),('074009'),('074009'),('074009'),('074009'),('074009'),('074010'),('074010'),('074010'),('074010'),('074010'),('074010'),('074010'),('074010'),('074011'),('074011'),('074011'),('074011'),('074011'),('074011'),('074011'),('074011'),('074012'),('074012'),('074012'),('074012'),('074012'),('074012'),('074012'),('075001'),('075001'),('075001'),('075007'),('075007'),('075007'),('075007'),('076101'),('076101'),('076101'),('076101'),('076102'),('076102'),('076102'),('076103'),('076103'),('076103'),('076103'),('076103'),('077001'),('077001'),('077001'),('077002'),('077002'),('077002'),('077002'),('077002'),('077002'),('077002'),('077003'),('077003'),('077003'),('077003'),('077003'),('077003'),('077003'),('077004'),('077004'),('077004'),('077004'),('077004'),('077004'),('077006'),('077006'),('077008'),('077008'),('077008'),('077008'),('077008'),('077008'),('077008'),('077009'),('077009'),('077009'),('077009'),('077009'),('077009'),('077009'),('078005'),('078005'),('078005'),('079002'),('079002'),('079002'),('079002'),('079002'),('079002'),('079002'),('079003'),('079003'),('079004'),('079004'),('079005'),('079005'),('079005'),('079005'),('079005'),('079005'),('079006'),('079006'),('079006'),('079006'),('079007'),('079007'),('079007'),('079007'),('079007'),('081001'),('081001'),('081001'),('081001'),('081001'),('082011'),('082011'),('082011'),('082011'),('082011'),('082013'),('082013'),('082013'),('082013'),('082013'),('082013'),('082014'),('082014'),('082014'),('082014'),('082014'),('082014'),('082014'),('082015'),('082015'),('082015'),('082015'),('082015'),('082016'),('082016'),('082016'),('082016'),('082016'),('082016'),('082017'),('082017'),('082017'),('082017'),('082017'),('082017'),('082017'),('082021'),('082021'),('082022'),('082022'),('082022'),('082022'),('082022'),('082023'),('082023'),('082023'),('082023'),('082023'),('082024'),('082024'),('082024'),('082024'),('082024'),('082025'),('082025'),('082025'),('082025'),('082025'),('082026'),('082026'),('082026'),('082026'),('082026'),('082027'),('082027'),('082027'),('082027'),('082027'),('082028'),('082028'),('082028'),('082028'),('082029'),('082029'),('082029'),('082029'),('082029'),('082030'),('082030'),('082030'),('082030'),('082031'),('082031'),('082031'),('082031'),('082031'),('082032'),('082032'),('082032'),('082033'),('082033'),('082034'),('082034'),('082034'),('082034'),('082034'),('082034'),('082034'),('082035'),('082035'),('082035'),('082036'),('082036'),('082036'),('082036'),('082037'),('082037'),('082037'),('082038'),('082038'),('082038'),('082038'),('082039'),('082039'),('082039'),('082039'),('082040'),('082040'),('082040'),('082040'),('082040'),('082041'),('082041'),('082041'),('082041'),('082042'),('082042'),('082043'),('082043'),('082043'),('082043'),('082043'),('082044'),('082044'),('082044'),('082044'),('084001'),('084002'),('084002'),('084002'),('084002'),('084003'),('084003'),('084003'),('084003'),('084003'),('084003'),('084003'),('084003'),('084004'),('084004'),('084004'),('084004'),('084004'),('084005'),('084005'),('084005'),('084005'),('084005'),('084007'),('084007'),('084007'),('084007'),('084007'),('084007'),('084008'),('084008'),('084008'),('084008'),('084008'),('084008'),('084009'),('084009'),('084009'),('084009'),('084009'),('084009'),('084011'),('084013'),('084013'),('084013'),('084013'),('084013'),('084014'),('084014'),('084014'),('084016'),('084016'),('084016'),('084016'),('084016'),('084016'),('084016'),('084016'),('084017'),('084017'),('084017'),('084017'),('084017'),('084017'),('084017'),('084017'),('084017'),('084027'),('084027'),('084027'),('084027'),('084027'),('084027'),('084032'),('084032'),('084033'),('084033'),('084033'),('084035'),('084035'),('084035'),('084036'),('084036'),('084036'),('084036'),('084036'),('084036'),('084037'),('084037'),('084038'),('084038'),('084038'),('084038'),('084038'),('084038'),('084039'),('084039'),('084039'),('084039'),('084040'),('084040'),('084040'),('084040'),('084040'),('084041'),('084041'),('084041'),('084041'),('084042'),('084042'),('084043'),('084043'),('084043'),('084043'),('084044'),('084044'),('084044'),('084044'),('084044'),('084045'),('084046'),('084046'),('084046'),('084047'),('084048'),('084048'),('084049'),('084049'),('084050'),('084051'),('084051'),('085001'),('085001'),('085001'),('085001'),('085001'),('085001'),('085002'),('085002'),('085002'),('085002'),('085003'),('085003'),('085003'),('085003'),('085003'),('085003'),('085003'),('085004'),('085004'),('085004'),('085004'),('085004'),('085004'),('085004'),('085005'),('085005'),('085005'),('085005'),('085005'),('085005'),('085006'),('085006'),('085006'),('085006'),('085006'),('085006'),('085006'),('085006'),('085007'),('085007'),('085007'),('085007'),('085007'),('085007'),('085007'),('085009'),('085009'),('085009'),('085009'),('085009'),('085009'),('085011'),('085011'),('085011'),('085011'),('085011'),('085011'),('085011'),('085011'),('085012'),('085012'),('085012'),('085012'),('085012'),('085012'),('085012'),('085014'),('085014'),('085014'),('085014'),('085014'),('085014'),('085014'),('085014'),('085014'),('085015'),('085015'),('085015'),('085015'),('085015'),('085015'),('085015'),('085015'),('085016'),('085016'),('085016'),('085016'),('085016'),('085016'),('085016'),('085016'),('085017'),('085017'),('085017'),('085017'),('085017'),('085018'),('085018'),('085018'),('085018'),('085018'),('085019'),('085019'),('085019'),('085019'),('085019'),('085019'),('085019'),('085019'),('085019'),('085020'),('085020'),('085020'),('085020'),('085020'),('085020'),('085022'),('085022'),('085022'),('085022'),('085022'),('085022'),('085023'),('085023'),('085023'),('085023'),('085023'),('085028'),('085028'),('085028'),('085028'),('085028'),('085028'),('085028'),('085029'),('085029'),('085029'),('085029'),('085029'),('085029'),('085029'),('085030'),('085030'),('085030'),('085030'),('085030'),('085030'),('085030'),('085031'),('085031'),('085031'),('085031'),('085031'),('085031'),('085031'),('085033'),('085034'),('085034'),('085034'),('085034'),('085034'),('085034'),('085034'),('085035'),('085035'),('085035'),('085035'),('085035'),('085035'),('085036'),('085036'),('085036'),('085036'),('085036'),('085036'),('085037'),('085037'),('085037'),('085037'),('085037'),('085037'),('085038'),('085038'),('085038'),('085038'),('085038'),('085038'),('085038'),('085040'),('085040'),('085040'),('085040'),('085040'),('085040'),('085040'),('085040'),('085041'),('085041'),('085041'),('085041'),('085041'),('085041'),('085041'),('085041'),('085042'),('085042'),('085042'),('085042'),('085042'),('085042'),('085042'),('085043'),('085043'),('085043'),('085043'),('085043'),('085043'),('085044'),('085044'),('085044'),('085044'),('085044'),('085044'),('085044'),('085045'),('085045'),('085045'),('085045'),('085045'),('085046'),('085046'),('085046'),('085046'),('085046'),('085046'),('085046'),('085046'),('085047'),('085047'),('085047'),('085047'),('085047'),('085047'),('085047'),('085047'),('085048'),('085048'),('085048'),('085048'),('085048'),('085048'),('085048'),('085063'),('085063'),('085063'),('085063'),('085063'),('085064'),('085064'),('085064'),('085064'),('085064'),('085065'),('085065'),('085068'),('085068'),('085068'),('085068'),('085068'),('085068'),('085071'),('085071'),('085071'),('085071'),('085071'),('085071'),('085073'),('085073'),('085082'),('085082'),('085082'),('085082'),('085082'),('085086'),('085086'),('085086'),('085088'),('085088'),('085088'),('085088'),('085088'),('085088'),('085088'),('085089'),('085089'),('085090'),('085090'),('085090'),('085090'),('085090'),('085090'),('085090'),('085090'),('085091'),('085091'),('085091'),('085091'),('085091'),('085092'),('085092'),('085092'),('085093'),('085093'),('085095'),('085095'),('085095'),('085095'),('085095'),('085096'),('085096'),('085096'),('085096'),('085096'),('085096'),('085097'),('085097'),('085097'),('085097'),('085097'),('085098'),('085098'),('085098'),('085098'),('085098'),('085098'),('085098'),('085099'),('085099'),('085099'),('085099'),('085099'),('085099'),('085099'),('085100'),('085100'),('085100'),('085100'),('085100'),('085100'),('085100'),('085100'),('085100'),('085100'),('085101'),('085101'),('085101'),('085101'),('085101'),('085101'),('085101'),('085101'),('085102'),('085102'),('085103'),('085103'),('085103'),('085104'),('085104'),('085104'),('085104'),('085104'),('085105'),('085105'),('085106'),('085106'),('085106'),('085106'),('085106'),('085106'),('085108'),('085108'),('085109'),('085109'),('085109'),('085109'),('085109'),('085109'),('085109'),('085109'),('085110'),('085110'),('085110'),('085110'),('085110'),('085111'),('085111'),('085111'),('085112'),('085112'),('085112'),('085112'),('085113'),('085113'),('085113'),('085113'),('085113'),('085115'),('085120'),('085121'),('085121'),('085121'),('085121'),('085122'),('085122'),('085122'),('085122'),('085122'),('085122'),('085122'),('085122'),('085123'),('085123'),('085123'),('085123'),('085123'),('085123'),('085123'),('085123'),('085125'),('085125'),('085125'),('085125'),('085125'),('085126'),('085126'),('085126'),('085126'),('085126'),('085127'),('085127'),('085127'),('085127'),('085127'),('085127'),('085127'),('085127'),('085128'),('085128'),('085128'),('085128'),('085128'),('085129'),('085129'),('085129'),('085129'),('085129'),('085130'),('085130'),('085130'),('085130'),('085130'),('085132'),('085132'),('085132'),('085132'),('085132'),('085132'),('085133'),('085133'),('085133'),('085133'),('085133'),('085134'),('085134'),('085134'),('085135'),('085135'),('085135'),('085136'),('085136'),('085136'),('085136'),('085137'),('085137'),('085137'),('085137'),('085137'),('085137'),('085137'),('086002'),('086002'),('086002'),('086002'),('086003'),('086003'),('086003'),('086003'),('086005'),('088001'),('088001'),('088001'),('088001'),('088001'),('088003'),('088003'),('088003'),('088003'),('088003'),('088003'),('088005'),('088005'),('088005'),('088005'),('088005'),('088006'),('088006'),('088006'),('088006'),('088006'),('088007'),('088007'),('088007'),('088008'),('088008'),('088008'),('088008'),('088009'),('088009'),('088009'),('088009'),('088009'),('089001'),('089001'),('089001'),('089001'),('089001'),('089001'),('089001'),('090001'),('090001'),('090001'),('090001'),('090001'),('090001'),('090001'),('090002'),('090002'),('090002'),('090002'),('090002'),('090002'),('090003'),('090003'),('090003'),('090003'),('090003'),('090003'),('090003'),('090004'),('090004'),('090004'),('090004'),('090004'),('090004'),('090004'),('090006'),('090006'),('090006'),('090006'),('090006'),('090006'),('090006'),('090008'),('090008'),('090008'),('090008'),('090008'),('090009'),('090009'),('090009'),('090009'),('090009'),('090010'),('090010'),('090013'),('090013'),('090013'),('090016'),('090016'),('090017'),('090018'),('090022'),('090027'),('091001'),('091001'),('091001'),('091001'),('091001'),('091001'),('091002'),('091002'),('091002'),('091002'),('091002'),('091002'),('091009'),('091009'),('091009'),('091009'),('091009'),('091011'),('091011'),('091011'),('091011'),('091011'),('091011'),('091011'),('091012'),('091012'),('091013'),('091013'),('091013'),('091013'),('091013'),('091013'),('091015'),('091015'),('091015'),('091015'),('091015'),('091015'),('091016'),('091016'),('091016'),('091016'),('091016'),('091017'),('091017'),('091018'),('091018'),('091018'),('091018'),('093003'),('093003'),('093003'),('093003'),('093003'),('093003'),('099001'),('099001'),('099001'),('099001'),('099001'),('099001'),('099001'),('100001'),('100001'),('100001'),('100001'),('106001'),('113005'),('113005'),('113005'),('113006'),('113006'),('113018'),('113019'),('113020'),('115001'),('115001'),('115001'),('115002'),('115002'),('115003'),('115004'),('115004'),('115004'),('115004'),('115005'),('115005'),('115005'),('115006'),('115006'),('115006'),('115007'),('115007'),('115007'),('115007'),('115007'),('115008'),('115008'),('115008'),('115009'),('115010'),('115010'),('115010'),('115010'),('115010'),('115011'),('115011'),('115011'),('115011'),('115012'),('115012'),('115013'),('115013'),('115013'),('115014'),('115014'),('115014'),('115014'),('115015'),('115015'),('115015'),('115016'),('115016'),('115016'),('115016'),('115017'),('115017'),('115017'),('115017'),('115017'),('115018'),('115018'),('115020'),('115020'),('115021'),('115021'),('115022'),('115022'),('115022'),('115023'),('115023'),('115023'),('115023'),('115023'),('115025'),('115025'),('115025'),('115026'),('115026'),('115027'),('115027'),('115027'),('115028'),('115028'),('115028'),('115028'),('115029'),('115029'),('115029'),('115030'),('115030'),('115030'),('115031'),('115031'),('115032'),('115032'),('115032'),('115033'),('115033'),('115033'),('115033'),('115034'),('115034'),('115034'),('115035'),('115035'),('115036'),('115036'),('115036'),('115036'),('115036'),('115039'),('115040'),('115040'),('115040'),('115041'),('115041'),('115041'),('115041'),('115041'),('115042'),('115042'),('115042'),('115042'),('115042'),('115043'),('115043'),('115043'),('115044'),('115044'),('115044'),('115044'),('115046'),('115046'),('115046'),('115047'),('115048'),('115050'),('115050'),('115050'),('115050'),('115050'),('115051'),('115051'),('115051'),('115052'),('115053'),('115053'),('115054'),('115054'),('115054'),('115055'),('115055'),('115055'),('115057'),('115059'),('115059'),('115059'),('115059'),('115060'),('115060'),('115060'),('115060'),('115060'),('115060'),('115061'),('115061'),('115061'),('115062'),('115062'),('115062'),('115062'),('115064'),('115064'),('115064'),('115065'),('115065'),('115065'),('115065'),('115066'),('115066'),('115066'),('115067'),('115067'),('115067'),('115068'),('115068'),('115068'),('115069'),('115069'),('115069'),('115069'),('115069'),('115070'),('115070'),('115070'),('115071'),('115071'),('115071'),('115072'),('115072'),('115072'),('115073'),('115073'),('115075'),('115075'),('115075'),('115076'),('115076'),('115076'),('115076'),('115076'),('115076'),('115081'),('115081'),('115081'),('115082'),('115082'),('115082'),('115085'),('115085'),('115085'),('115085'),('115085'),('115086'),('115086'),('115086'),('115087'),('115087'),('115088'),('115088'),('115088'),('115088'),('115088'),('115095'),('115095'),('115095'),('115096'),('115096'),('115097'),('115097'),('115098'),('115098'),('115099'),('115101'),('115102'),('115102'),('115102'),('115103'),('115103'),('115104'),('115104'),('115104'),('115104'),('115105'),('115105'),('115106'),('115106'),('115106'),('115106'),('115106'),('115108'),('115109'),('115111'),('115111'),('115111'),('115111'),('115112'),('115112'),('115112'),('115112'),('115112'),('115113'),('115113'),('115113'),('115114'),('115114'),('115114'),('115114'),('115114'),('115115'),('115115'),('115115'),('115115'),('115116'),('115117'),('115117'),('115117'),('115118'),('115118'),('115119'),('115119'),('115119'),('115119'),('115120'),('115121'),('115121'),('115122'),('115122'),('116001'),('116003'),('116003'),('116003'),('116003'),('116004'),('116004'),('116005'),('116005'),('116006'),('116006'),('116006'),('116007'),('116007'),('116008'),('116008'),('116009'),('116009'),('116009'),('116010'),('116010'),('116010'),('116010'),('116011'),('116011'),('116011'),('116011'),('116012'),('116012'),('123001'),('123001'),('123001'),('123001'),('123001'),('124065'),('126001'),('126001'),('126001'),('126001'),('126001'),('126001'),('126001'),('126001'),('126002'),('126002'),('126002'),('126002'),('126002'),('126002'),('126002'),('126002'),('126003'),('126003'),('126003'),('126003'),('126003'),('126003'),('126003'),('126003'),('126003'),('126004'),('126004'),('126004'),('126004'),('126004'),('126004'),('126004'),('126004'),('126004'),('126004'),('126005'),('126005'),('126005'),('126005'),('126005'),('126005'),('126005'),('126005'),('126005'),('126006'),('126006'),('126006'),('126006'),('126006'),('126006'),('126006'),('126006'),('126006'),('126007'),('126007'),('126007'),('126007'),('126007'),('126007'),('126007'),('126008'),('126008'),('126008'),('126008'),('126008'),('126008'),('126008'),('126008'),('126009'),('126009'),('126009'),('126009'),('126009'),('126009'),('126009'),('126009'),('126010'),('126010'),('126010'),('126010'),('126010'),('126010'),('126010'),('126010'),('126010'),('126011'),('126011'),('126011'),('126011'),('126011'),('126011'),('126011'),('126012'),('126012'),('126012'),('126012'),('130001'),('130001'),('130001'),('130001'),('132001'),('132001'),('132001'),('132001'),('132001'),('132002'),('132002'),('132002'),('132002'),('132002'),('132002'),('132002'),('133001'),('133001'),('133008'),('133009'),('133010'),('133011'),('133011'),('133011'),('133011'),('133011'),('133011'),('133012'),('133015'),('133015'),('133015'),('133015'),('133016'),('133018'),('133018'),('133018'),('133018'),('133018'),('133019'),('133021'),('133021'),('133022'),('133022'),('133023'),('133023'),('133024'),('133024'),('133024'),('133024'),('133024'),('133024'),('133025'),('133027'),('133027'),('133027'),('133027'),('133027'),('133028'),('133028'),('133028'),('133029'),('133029'),('133029'),('133029'),('133029'),('133029'),('133030'),('133030'),('133031'),('133031'),('133031'),('134001'),('134001'),('134001'),('135001'),('135001'),('135001'),('135001'),('135001'),('135002'),('135002'),('135002'),('135004'),('135010'),('135010'),('135010'),('135010'),('135010'),('135010'),('137010'),('137011'),('137012'),('137014'),('137015'),('137015'),('137016'),('137019'),('139001'),('140001'),('140001'),('140001'),('140001'),('140001'),('140001'),('141001'),('141001'),('141001'),('141001'),('141001'),('141002'),('141002'),('141002'),('141002'),('141002'),('141003'),('141003'),('141003'),('141003'),('141003'),('141003'),('141003'),('141003'),('141006'),('141006'),('141006'),('141006'),('141006'),('141006'),('141006'),('141006'),('141007'),('141007'),('141007'),('141007'),('141007'),('141009'),('141009'),('141009'),('141009'),('141009'),('141011'),('141011'),('141011'),('141011'),('141011'),('141011'),('141012'),('141014'),('141014'),('141014'),('141014'),('141014'),('141014'),('141014'),('141014'),('141015'),('141015'),('141015'),('141015'),('141015'),('141016'),('141016'),('141016'),('141016'),('141016'),('141016'),('141017'),('141017'),('141017'),('141017'),('141017'),('141017'),('141018'),('141018'),('141018'),('141018'),('141019'),('141019'),('141019'),('141019'),('141020'),('141020'),('141020'),('141020'),('141020'),('141020'),('141020'),('141021'),('141021'),('141021'),('141021'),('141021'),('141021'),('141022'),('141022'),('141022'),('141022'),('141022'),('141022'),('141023'),('141023'),('141023'),('141023'),('141023'),('141023'),('141023'),('141024'),('141025'),('141025'),('141025'),('141026'),('141026'),('141026'),('141026'),('141026'),('141026'),('141027'),('141027'),('141027'),('141027'),('141027'),('141028'),('141028'),('145001'),('145001'),('145001'),('145001'),('145001'),('145001'),('145001'),('145001'),('145001'),('145002'),('145002'),('145002'),('145002'),('145002'),('145002'),('145002'),('145002'),('145002'),('145003'),('145003'),('145003'),('145003'),('145003'),('145003'),('145003'),('145003'),('145003'),('145003'),('145004'),('145004'),('145004'),('145004'),('145004'),('145004'),('145004'),('145004'),('145004'),('145005'),('145005'),('145005'),('145005'),('145005'),('145005'),('145005'),('145005'),('145005'),('145006'),('145006'),('145006'),('145006'),('145006'),('145006'),('145006'),('145006'),('145006'),('145008'),('145008'),('145008'),('145008'),('145008'),('145008'),('145008'),('145008'),('145009'),('145009'),('145009'),('145009'),('145009'),('145009'),('145009'),('145011'),('145011'),('145011'),('145011'),('145011'),('145011'),('145011'),('145011'),('145012'),('145012'),('145012'),('145012'),('145012'),('145012'),('145012'),('145012'),('145013'),('145013'),('145013'),('145013'),('145013'),('145013'),('145013'),('150009'),('150013'),('150014'),('150015'),('150015'),('150015'),('150016'),('150016'),('150017'),('150017'),('150017'),('150017'),('150020'),('152001'),('152001'),('152001'),('152002'),('152003'),('152003'),('152003'),('152003'),('152004'),('152005'),('152006'),('152006'),('152006'),('152006'),('152007'),('154001'),('154002'),('154002'),('155001'),('155001'),('155002'),('155003'),('155004'),('155004'),('155006'),('159001'),('159003'),('160001'),('160001'),('160001'),('160001'),('160002'),('160002'),('161001'),('162002'),('162002'),('162003'),('162003'),('162003'),('162003'),('162003'),('162007'),('162012'),('162012'),('162012'),('163001'),('163001'),('163001'),('163011'),('163015'),('163016'),('163016'),('165001'),('165001'),('165001'),('165001'),('165002'),('165002'),('165002'),('165002'),('165003'),('165003'),('165003'),('165004'),('165004'),('165004'),('165005'),('165005'),('165005'),('165006'),('165006'),('165006'),('165006'),('165007'),('165007'),('165007'),('165007'),('165008'),('165008'),('165008'),('165008'),('165009'),('165009'),('165009'),('165009'),('165010'),('165010'),('165010'),('165011'),('165011'),('165012'),('165012'),('165012'),('165013'),('165013'),('165013'),('165014'),('165014'),('165014'),('165015'),('165015'),('165015'),('165015'),('165016'),('165016'),('165016'),('165017'),('165017'),('165017'),('165017'),('165018'),('165018'),('165018'),('165018'),('165019'),('165019'),('165019'),('165019'),('165020'),('165020'),('165020'),('165020'),('165021'),('165021'),('165021'),('165021'),('165022'),('165022'),('165022'),('165023'),('165024'),('165024'),('165024'),('165025'),('165025'),('165025'),('165026'),('165026'),('165026'),('165028'),('165029'),('165030'),('165030'),('165030'),('165031'),('165031'),('165033'),('165033'),('165034'),('165034'),('165034'),('165035'),('165035'),('165035'),('165036'),('165036'),('165036'),('168003'),('168003'),('168004'),('168005'),('168014'),('169001'),('169001'),('169001'),('169001'),('169001'),('169001'),('169001'),('169001'),('169001'),('169001'),('169002'),('169002'),('169002'),('169002'),('169002'),('169002'),('169002'),('169002'),('169002'),('169002'),('169003'),('169003'),('169003'),('169003'),('169007'),('169007'),('169007'),('169007'),('169007'),('169007'),('169007'),('169007'),('169007'),('169007'),('169008'),('169008'),('169008'),('169008'),('169008'),('169008'),('169008'),('169009'),('169009'),('169009'),('169009'),('169010'),('171006'),('171006'),('171007'),('171007'),('171008'),('171008'),('171008'),('171009'),('171009'),('171009'),('172001'),('176001'),('176001'),('176001'),('176001'),('176001'),('176001'),('176001'),('176002'),('176002'),('176002'),('176002'),('176002'),('176003'),('176003'),('176003'),('176003'),('176003'),('176003'),('177001'),('177001'),('177001'),('177001'),('177001'),('177001'),('179007'),('179007'),('179012'),('179012'),('179012'),('179012'),('179012'),('179012'),('179013'),('179013'),('179013'),('179013'),('179013'),('179013'),('179042'),('179044'),('179045'),('180001'),('180013'),('180014'),('180014'),('180015'),('180017'),('180018'),('180020'),('180020'),('180021'),('180021'),('180027'),('180030'),('180033'),('180035'),('180036'),('180037'),('180038'),('180041'),('180042'),('180045'),('180045'),('180047'),('180048'),('180049'),('180050'),('180054'),('180060'),('180066'),('180067'),('180068'),('180070'),('182001'),('184001'),('184002'),('184005'),('184005'),('184005'),('184005'),('184006'),('184006'),('184006'),('184006'),('184008'),('184008'),('184008'),('184008'),('184009'),('184009'),('184009'),('184009'),('184010'),('184010'),('184010'),('184010'),('184011'),('184011'),('184011'),('184011'),('185001'),('185001'),('185001'),('185001'),('185001'),('185001'),('185001'),('185003'),('185003'),('185003'),('185003'),('185003'),('185003'),('185003'),('187001'),('191002'),('191002'),('192002'),('194003'),('197001'),('197001'),('197001'),('197001'),('197001'),('197001'),('197001'),('197002'),('197002'),('197002'),('197002'),('197002'),('197002'),('197002'),('197003'),('197003'),('197003'),('197003'),('197003'),('197003'),('197003'),('197004'),('197004'),('197004'),('197004'),('197004'),('197004'),('197004'),('197005'),('197005'),('197005'),('197005'),('197005'),('197005'),('197006'),('197006'),('197006'),('197006'),('197006'),('198001'),('198001'),('198001'),('198001'),('198001'),('198001'),('198003'),('198003'),('198003'),('198004'),('198004'),('198004'),('198004'),('198004'),('198004'),('198005'),('198005'),('198005'),('198005'),('198005'),('198005'),('198005'),('198006'),('198006'),('198006'),('198006'),('198006'),('198006'),('198007'),('198007'),('198007'),('198007'),('198007'),('198007'),('198007'),('198008'),('198008'),('198008'),('198008'),('198008'),('198008'),('198009'),('198009'),('198009'),('198009'),('198009'),('198009'),('198009'),('198010'),('198010'),('198010'),('198010'),('198010'),('198010'),('198011'),('198012'),('198012'),('198012'),('198012'),('198015'),('198015'),('198016'),('198016'),('198016'),('198016'),('198016'),('198016'),('198017'),('198017'),('198017'),('198017'),('198017'),('198017'),('201001'),('201001'),('201001'),('201001'),('201001'),('201002'),('202001'),('202001'),('203001'),('203001'),('203001'),('203001'),('203001'),('203001'),('203001'),('203002'),('203002'),('203002'),('203002'),('203003'),('203003'),('203003'),('203003'),('203003'),('203017'),('203017'),('203017'),('203017'),('203017'),('203017'),('203017'),('203017'),('203017'),('203018'),('203018'),('203018'),('203018'),('203018'),('203019'),('203019'),('203019'),('203019'),('203019'),('204001'),('204002'),('205001'),('205001'),('205001'),('205001'),('205001'),('205001'),('205001'),('208001'),('208001'),('208002'),('208002'),('208002'),('208003'),('208003'),('208003'),('208004'),('208004'),('208004'),('208004'),('208004'),('208004'),('208004'),('208005'),('208005'),('208005'),('208005'),('208005'),('209001'),('209001'),('209001'),('209001'),('209001'),('209002'),('209002'),('209002'),('209002'),('209002'),('209003'),('209003'),('209003'),('209003'),('209003'),('210001'),('210001'),('210001'),('210001'),('210001'),('210004'),('210004'),('210004'),('210004'),('210004'),('210004'),('210009'),('210010'),('212001'),('212001'),('212002'),('212002'),('212002'),('212002'),('212003'),('212003'),('212003'),('212004'),('212004'),('212004'),('212005'),('212005'),('212005'),('212005'),('212005'),('212006'),('212006'),('212006'),('212007'),('212007'),('212008'),('212008'),('212008'),('212008'),('212009'),('212009'),('212009'),('212009'),('212010'),('212010'),('212010'),('212010'),('212011'),('212011'),('212012'),('212012'),('212013'),('212013'),('212013'),('218001'),('218004'),('218009'),('218011'),('218011'),('218015'),('218020'),('218021'),('218021'),('218022'),('218022'),('218022'),('218023'),('218024'),('218025'),('218026'),('218026'),('218027'),('218028'),('218029'),('218029'),('218029'),('218030'),('218031'),('221001'),('221001'),('221001'),('221001'),('221001'),('221001'),('221002'),('221002'),('221002'),('221002'),('221002'),('221002'),('221003'),('221003'),('221003'),('221003'),('221003'),('221003'),('221004'),('221004'),('221004'),('221004'),('221004'),('221004'),('221005'),('221005'),('221005'),('221005'),('221005'),('221006'),('221006'),('221006'),('221006'),('221006'),('221007'),('221007'),('221007'),('221007'),('221007'),('221007'),('221008'),('221008'),('221008'),('221008'),('221008'),('221008'),('221009'),('221009'),('221009'),('221009'),('221009'),('221009'),('221010'),('221010'),('221010'),('221010'),('221011'),('221011'),('221011'),('221011'),('221012'),('221012'),('221012'),('221012'),('221012'),('221012'),('221013'),('221013'),('221013'),('221013'),('221013'),('221013'),('223003'),('223003'),('224001'),('224001'),('224002'),('224002'),('224003'),('224007'),('224008'),('225001'),('225002'),('225002'),('225002'),('225003'),('225003'),('225003'),('225003'),('225004'),('225004'),('225004'),('225005'),('225005'),('225005'),('225005'),('225005'),('225005'),('225006'),('225006'),('225006'),('225007'),('225007'),('225007'),('225008'),('225008'),('225008'),('225008'),('225008'),('225009'),('225009'),('225009'),('225010'),('225010'),('225010'),('225011'),('225011'),('225011'),('225011'),('225011'),('225012'),('225012'),('225012'),('225012'),('225012'),('225012'),('225013'),('225013'),('226001'),('226002'),('226003'),('226003'),('226005'),('226005'),('226006'),('226007'),('226007'),('226007'),('226007'),('227011'),('227015'),('227015'),('227041'),('227045'),('227052'),('227056'),('227063'),('227064'),('227066'),('227067'),('227069'),('227071'),('227073'),('227085'),('227116'),('227119'),('227131'),('227133'),('227147'),('229005'),('229005'),('229005'),('233003'),('233004'),('235001'),('235001'),('235002'),('235003'),('235003'),('235003'),('235004'),('235005'),('235005'),('235005'),('235005'),('235005'),('235005'),('235005'),('236001'),('236001'),('236001'),('236001'),('236002'),('236003'),('236003'),('236003'),('236003'),('236003'),('236003'),('238002'),('238002'),('238002'),('238002'),('238002'),('238002'),('238003'),('238003'),('238003'),('238003'),('238003'),('238003'),('238004'),('238004'),('238004'),('238004'),('238004'),('238005'),('238005'),('238005'),('238007'),('238007'),('238007'),('238007'),('238007'),('238007'),('238007'),('238008'),('238008'),('238008'),('238008'),('238008'),('238008'),('238008'),('334005'),('334006'),('337001'),('337001'),('337001'),('337002'),('337002'),('337003'),('337003'),('337003'),('337004'),('343001'),('343001'),('344001'),('344002'),('344003'),('344004'),('344005'),('344005'),('345001'),('345001'),('348001'),('348004'),('348005'),('348005'),('349001'),('349001'),('349002'),('349002'),('349002'),('350001'),('353002'),('353002'),('353002'),('353003'),('355001'),('355002'),('355005'),('355006'),('355006'),('356001'),('358001'),('358001'),('358001'),('359001'),('359001'),('359002'),('359002'),('359002'),('359002'),('360001'),('360001'),('360002'),('360002'),('360003'),('360003'),('360004'),('360004'),('360005'),('360005'),('360005'),('366001'),('366002'),('366002'),('366003'),('366004'),('369001'),('369001'),('373001'),('373002'),('373002'),('373003'),('373003'),('373005'),('373007'),('373008'),('373009'),('373009'),('373010'),('373010'),('373010'),('373011'),('373011'),('373011'),('373011'),('373012'),('373012'),('373012'),('373013'),('373013'),('373014'),('373014'),('373015'),('373015'),('373015'),('373015'),('373017'),('373017'),('373017'),('373017'),('373018'),('373021'),('374002'),('374004'),('374006'),('374007'),('374008'),('374009'),('374010'),('374011'),('374012'),('374015'),('374016'),('382001'),('382002'),('382002'),('384001'),('386001'),('386001'),('386001'),('386001'),('386001'),('386001'),('386001'),('386002'),('386002'),('386002'),('386002'),('386002'),('386002'),('386002'),('386003'),('386003'),('386003'),('386003'),('386003'),('386003'),('386003'),('386003'),('386003'),('386004'),('386004'),('386004'),('386004'),('386004'),('386004'),('386004'),('386004'),('386005'),('386005'),('386005'),('386005'),('386005'),('386005'),('386005'),('386006'),('386006'),('386006'),('386006'),('386006'),('386006'),('386007'),('386007'),('386007'),('386007'),('386007'),('386007'),('386007'),('386007'),('386007'),('386008'),('386008'),('386008'),('386008'),('386008'),('386008'),('386008'),('386008'),('386009'),('386009'),('386009'),('386010'),('386010'),('386010'),('386010'),('386010'),('386010'),('386010'),('386010'),('386011'),('386011'),('386011'),('386011'),('386011'),('386011'),('386011'),('386011'),('386011'),('386012'),('386012'),('386012'),('386012'),('386012'),('386012'),('386012'),('386012'),('386012'),('386013'),('386013'),('386013'),('386013'),('386013'),('386013'),('386013'),('386014'),('386014'),('386014'),('386014'),('389001'),('389002'),('389002'),('389003'),('389003'),('389003'),('389003'),('389004'),('389004'),('389004'),('389004'),('392001'),('393001'),('393002'),('393002'),('393003'),('393004'),('395001'),('395001'),('397001'),('397001'),('397001'),('397002'),('399001'),('399001'),('399001'),('399001'),('399001'),('399001'),('399001'),('399002'),('399002'),('399002'),('399002'),('399002'),('399002'),('399002'),('399003'),('400001'),('400001'),('400001'),('400001'),('400002'),('403002'),('504001'),('504001'),('504002'),('504002'),('504002'),('504004'),('504004'),('504005'),('504006'),('504007'),('504007'),('504007'),('504008'),('504008'),('504009'),('504009'),('504009'),('504009'),('504009'),('504010'),('504011'),('504011'),('504012'),('504012'),('504014'),('504014'),('504014'),('504014'),('504014'),('504014'),('504014'),('504014'),('504017'),('504017'),('504021'),('504021'),('504021'),('504021'),('504021'),('504021'),('504021'),('504022'),('504023'),('504023'),('504024'),('504024'),('504025'),('504025'),('506001'),('506001'),('506001'),('506001'),('506001'),('506001'),('506002'),('506002'),('506002'),('506002'),('506002'),('511001'),('511001'),('511001'),('511001'),('511001'),('511001'),('511001'),('511002'),('511002'),('511002'),('511002'),('511002'),('511002'),('511002'),('511003'),('511003'),('511003'),('511003'),('511003'),('511003'),('511004'),('511004'),('511004'),('511004'),('511004'),('511004'),('511004'),('511005'),('511005'),('511005'),('511005'),('511005'),('511005'),('511005'),('511006'),('511006'),('511006'),('511006'),('511006'),('511006'),('511006'),('511007'),('511007'),('511007'),('511007'),('511007'),('511008'),('511008'),('511008'),('511008'),('511008'),('511008'),('511009'),('511009'),('511009'),('511009'),('511009'),('511009'),('511010'),('511010'),('511010'),('511010'),('511010'),('511010'),('511011'),('511011'),('511011'),('511011'),('511011'),('511011'),('511012'),('511012'),('511012'),('511012'),('511012'),('511012'),('511012'),('511013'),('511013'),('511013'),('511013'),('511013'),('511013'),('511013'),('511014'),('511014'),('511014'),('511014'),('511014'),('511017'),('511018'),('511020'),('511021'),('511022'),('511024'),('511028'),('511029'),('511029'),('511029'),('511029'),('511029'),('511029'),('513001'),('513001'),('513001'),('513001'),('513001'),('513001'),('513001'),('513001'),('513002'),('513002'),('513002'),('513002'),('513002'),('513002'),('513003'),('513003'),('513003'),('513003'),('513003'),('513003'),('513003'),('513003'),('513004'),('513004'),('513004'),('515001'),('515001'),('515001'),('515001'),('515001'),('515002'),('515002'),('515003'),('515003'),('515007'),('515007'),('515008'),('515011'),('515011'),('515011'),('515011'),('515011'),('515011'),('515012'),('515012'),('515012'),('515012'),('515013'),('515013'),('515013'),('515013'),('515013'),('515014'),('515014'),('515014'),('515014'),('515014'),('515015'),('515015'),('515015'),('515015'),('515015'),('518001'),('518002'),('521001'),('521002'),('521002'),('521002'),('521003'),('521003'),('521003'),('521003'),('521004'),('521004'),('521004'),('521004'),('521005'),('521005'),('521005'),('521005'),('521006'),('521006'),('521006'),('521009'),('521010'),('521010'),('521010'),('521010'),('521011'),('521011'),('521011'),('521011'),('521012'),('521013'),('521013'),('521015'),('521016'),('521016'),('523001'),('523001'),('523001'),('523001'),('523001'),('523001'),('523001'),('523002'),('523002'),('523002'),('523002'),('523002'),('523002'),('523003'),('523003'),('523003'),('523003'),('523003'),('523003'),('523003'),('523004'),('523004'),('523004'),('523004'),('523004'),('523004'),('523005'),('523005'),('523005'),('523005'),('523005'),('523005'),('523005'),('523005'),('523006'),('523006'),('523006'),('523006'),('523006'),('523006'),('523006'),('523007'),('523007'),('523007'),('523007'),('523007'),('523007'),('523007'),('524001'),('700001'),('701001'),('701002'),('701003'),('702001'),('702002'),('702004'),('702005'),('704001'),('704004'),('705001'),('706001'),('706002'),('707001'),('707002'),('707003'),('708001'),('710001'),('710002'),('711001'),('711002'),('712001'),('714001'),('714002'),('715001'),('719001'),('719002'),('991002'),('991002'),('991002'),('991003'),('991003'),('991003'),('991003'),('991003'),('991003'),('991003'),('991004'),('991004'),('991004'),('991005'),('991005'),('991005'),('991006'),('991007'),('995001'),('995001'),('995001'),('995001'),('995001'),('995001'),('995001'),('995001'),('995001'),('995001'),('995001'),('996001'),('996001'),('996001'),('996001'),('996001'),('996001'),('996001'),('996001'),('996002'),('996002'),('996003'),('996003'),('996003'),('996003'),('996003'),('998001'),('998001'),('998001'),('998001'),('998001'),('998001'),('998001'),('998001'),('998001'),('998001'),('998002'),('998002'),('998002'),('998002'),('998002'),('998002'),('998002'),('998002'),('998002'),('998002'),('998003'),('998003'),('998003'),('998003'),('998003'),('998003'),('998003'),('998003'),('998004'),('998004'),('998005'),('998005'),('998006'),('998007'),('999001'),('999001'),('999001'),('999001'),('999001'),('999001'),('999001'),('999001'),('999001'),('999001'),('999001'),('999002'),('999002'),('011017'),('011017'),('011017'),('011017'),('011017'),('011017'),('011017'),('011018'),('011018'),('011018'),('011018'),('034001'),('034001'),('034002'),('034002'),('071010'),('071010'),('071010'),('519001'),('126013'),('126013'),('126013'),('126013'),('126013'),('184012'),('184012'),('184012'),('404001'),('405002'),('405002'),('405001'),('405003'),('405006'),('240011'),('240011'),('240011'),('240011'),('240011'),('240011'),('240010'),('240010'),('240010'),('240009'),('240009'),('240009'),('240009'),('240008'),('240008'),('240008'),('240007'),('240007'),('240007'),('240007'),('240007'),('240007'),('240005'),('240005'),('240005'),('240005'),('240005'),('240004'),('240004'),('240004'),('240004'),('240004'),('240003'),('240003'),('240003'),('240003'),('240002'),('240002'),('240002'),('240002'),('240002'),('240002'),('240002'),('240001'),('240001'),('240001'),('240001'),('240001'),('240012'),('240012'),('240012'),('240012'),('240012'),('240013'),('240014'),('240015'),('240015'),('240015'),('240015'),('240015'),('240015'),('240015'),('240015'),('240016'),('240016'),('240016'),('240016'),('240016'),('240016'),('240017'),('240017'),('240017'),('357001'),('357001'),('235006'),('235006'),('235007'),('235007'),('235007'),('235007'),('235007'),('056023'),('056023'),('056023'),('056023'),('056023'),('046015'),('019005'),('019005'),('126014'),('126014'),('126014'),('126014'),('126014'),('126014'),('241003'),('241003'),('241003'),('241003'),('241003'),('241003'),('241002'),('241002'),('241002'),('241002'),('241002'),('241002'),('241001'),('241001'),('241001'),('241001'),('241001'),('240020'),('240020'),('240020'),('240020'),('240020'),('240020'),('240019'),('240019'),('240019'),('242001'),('242002'),('242004'),('242005'),('242006'),('089002'),('089002'),('089002'),('089002'),('089002'),('089002'),('406001'),('406002'),('406003'),('406004'),('406004'),('243001'),('243005'),('243006'),('243007'),('243008'),('408001'),('408001'),('408001'),('408001'),('408001'),('366005'),('366005'),('016035'),('016035'),('016035'),('016035'),('077010'),('996004'),('996004'),('996004'),('996004'),('996004'),('996004'),('996004'),('996004'),('025064'),('025064'),('025064'),('025064'),('011019'),('011019'),('011019'),('011019'),('011019'),('115123'),('115123'),('504026'),('039007'),('039009'),('039008'),('039008'),('039010'),('039010'),('039011'),('039012'),('180072'),('240021'),('240021'),('240021'),('240021'),('240021'),('240021'),('240021'),('240023'),('240023'),('240023'),('240023'),('405008'),('405008'),('525002'),('410002'),('410002'),('410004'),('410005'),('410005'),('410006'),('410007'),('410007'),('410008'),('410009'),('410010'),('410011'),('410011'),('410012'),('410012'),('410013'),('410013'),('410014'),('410014'),('410016'),('410016'),('344006'),('240031'),('240031'),('240031'),('240031'),('240030'),('240030'),('240030'),('240030'),('240029'),('240029'),('240029'),('240029'),('240028'),('240028'),('240028'),('240028'),('240027'),('240027'),('240026'),('240026'),('240026'),('240025'),('240025'),('240025'),('240025'),('240024'),('240024'),('240034'),('240034'),('240034'),('240033'),('240033'),('240033'),('240032'),('240032'),('240032'),('240032'),('411001'),('411002'),('203020'),('069025'),('069025'),('069025'),('069025'),('069025'),('069025'),('244001'),('244001'),('244001'),('244001'),('244001'),('244001'),('244001'),('244001'),('244001'),('244001'),('244001'),('244002'),('244002'),('244002'),('244002'),('244002'),('244002'),('244002'),('244002'),('244002'),('244002'),('244002'),('244009'),('244009'),('244009'),('244009'),('244009'),('244009'),('244009'),('244009'),('244009'),('244009'),('244009'),('244008'),('244008'),('244008'),('244008'),('244008'),('244008'),('244008'),('244008'),('244008'),('244008'),('244008'),('244007'),('244007'),('244007'),('244007'),('244007'),('244007'),('244007'),('244007'),('244007'),('244007'),('244007'),('244006'),('244006'),('244006'),('244006'),('244006'),('244006'),('244006'),('244006'),('244006'),('244006'),('244006'),('244004'),('244004'),('244004'),('244004'),('244004'),('244004'),('244004'),('244004'),('244004'),('244004'),('244004'),('244003'),('244003'),('244003'),('244003'),('244003'),('244003'),('244003'),('244003'),('244003'),('244003'),('244003'),('244014'),('244014'),('244014'),('244014'),('244014'),('244014'),('244014'),('244014'),('244013'),('244013'),('244013'),('244013'),('244013'),('244013'),('244013'),('244013'),('244012'),('244012'),('244012'),('244012'),('244012'),('244012'),('244012'),('244012'),('244011'),('244011'),('244011'),('244011'),('244011'),('244011'),('244011'),('244011'),('244016'),('244016'),('244016'),('244016'),('244016'),('244016'),('244016'),('244016'),('244016'),('244016'),('244016'),('244017'),('244017'),('244017'),('244017'),('244017'),('244017'),('244017'),('244017'),('244017'),('240040'),('240037'),('405009'),('405009'),('405009'),('405010'),('405010'),('240043'),('240043'),('504028'),('504040'),('800001'),('410019'),('410019'),('410020'),('410020'),('410020'),('410021'),('410021'),('244018'),('244018'),('244018'),('244018'),('244018'),('244018'),('244018'),('244018'),('244018'),('244018'),('244018'),('244019'),('244019'),('244019'),('244019'),('244019'),('244019'),('244019'),('244019'),('244019'),('244019'),('244019'),('244020'),('244020'),('244020'),('244020'),('244020'),('244020'),('244020'),('244020'),('413001'),('344007'),('082045'),('082045'),('082045'),('082045'),('082045'),('010031'),('010031'),('010031'),('010031'),('010032'),('010032'),('010032'),('010032'),('010033'),('010033'),('010033'),('010033'),('010033'),('010034'),('010034'),('010034'),('010034'),('010035'),('010035'),('010035'),('010035'),('504044'),('515016'),('515016'),('515016'),('515016'),('801002'),('801003'),('801004'),('801005'),('802001'),('801001'),('414001'),('141029'),('803001'),('803002'),('803004'),('803005'),('803006'),('803007'),('803008'),('803009'),('803013'),('803014'),('803015'),('803016'),('803017'),('410022'),('410023'),('410023'),('803019'),('415002'),('415001'),('244021'),('244021'),('244021'),('244021'),('244021'),('244021'),('244021'),('011020'),('011020'),('011020'),('011020'),('011023'),('011023'),('011023'),('011023'),('011022'),('011022'),('011022'),('011022'),('011022'),('011022'),('011021'),('011021'),('011021'),('011021'),('025065'),('025065'),('025065'),('025065'),('165037'),('165037'),('165038'),('165038'),('165038'),('165039'),('416001'),('416001'),('416001'),('416001'),('416001'),('416002'),('416003'),('417001'),('418001'),('504045'),('504045'),('504045'),('803022'),('240022'),('240022'),('240022'),('240022'),('420001'),('420001'),('420001'),('420001'),('804010'),('804005'),('804002'),('804018'),('804013'),('511019'),('511016'),('511015'),('511032'),('511031'),('511030'),('511027'),('511026'),('511025'),('511033'),('511023'),('133034'),('133034'),('133034'),('133033'),('169011'),('169011'),('169011'),('169011'),('169011'),('344008'),('244022'),('244022'),('244022'),('244022'),('244022'),('244022'),('244022'),('244026'),('244026'),('244026'),('244026'),('244026'),('244026'),('244025'),('244025'),('244025'),('244025'),('244025'),('244025'),('244025'),('244025'),('244030'),('244030'),('244030'),('244030'),('244030'),('244030'),('244030'),('244030'),('244023'),('244023'),('244023'),('244023'),('244023'),('244023'),('244024'),('244024'),('244024'),('244024'),('244024'),('244024'),('244024'),('244024'),('244027'),('244027'),('244027'),('244027'),('244027'),('244027'),('244027'),('244027'),('244028'),('244028'),('244028'),('244028'),('244028'),('244028'),('244028'),('244028'),('244029'),('244029'),('244029'),('244029'),('244029'),('244029'),('244029'),('244029'),('244031'),('244031'),('244031'),('244031'),('244031'),('244031'),('244031'),('244031'),('082046'),('082046'),('082046'),('082046'),('082047'),('082047'),('082048'),('082048'),('126015'),('126015'),('126016'),('126016'),('126016'),('126016'),('126016'),('416005'),('421001'),('421001'),('421002'),('016037'),('016037'),('016037'),('016037'),('016036'),('016036'),('016036'),('016036'),('115124'),('115124'),('115126'),('240049'),('240049'),('240048'),('240048'),('240047'),('240047'),('240046'),('240046'),('240045'),('240044'),('244032'),('244033'),('422002'),('422004'),('422004'),('422004'),('422005'),('422005'),('184013'),('184013'),('184013'),('805001'),('805002'),('805003'),('805004'),('805005'),('056024'),('056024'),('056024'),('423001'),('344010'),('235009'),('235009'),('235009'),('235009'),('212014'),('212014'),('056025'),('056025'),('056025'),('056026'),('056026'),('056026'),('056026'),('056026'),('056026'),('244034'),('244034'),('244034'),('244034'),('244034'),('244034'),('244035'),('244035'),('244035'),('244035'),('244035'),('244035'),('244035'),('244036'),('244036'),('244036'),('244036'),('244036'),('244036'),('244036'),('244037'),('244037'),('244037'),('244037'),('244037'),('244037'),('244037'),('244038'),('244038'),('244038'),('244038'),('244038'),('244038'),('244038'),('244039'),('244039'),('244039'),('244039'),('244039'),('244039'),('244039'),('203015'),('245002'),('245002'),('245001'),('245001'),('056029'),('056030'),('056032'),('424001'),('056034'),('056034'),('056034'),('056034'),('056033'),('056033'),('056033'),('805006'),('805007'),('805008'),('805009'),('805010'),('422008'),('422008'),('422007'),('422007'),('422006'),('422006'),('422010'),('422009'),('422009'),('422011'),('422011'),('209004'),('209004'),('150022'),('100002'),('056035'),('056035'),('056035'),('023036'),('023036'),('185005'),('246001'),('246001'),('247001'),('247001'),('247001'),('247001'),('247001'),('247001'),('247001'),('247002'),('247002'),('425001'),('416006'),('416006'),('165042'),('165041'),('165040'),('165043'),('010040'),('010039'),('010038'),('010036'),('248001'),('248002'),('248003'),('248004'),('248005'),('249001'),('249003'),('249004'),('249005'),('250007'),('250001'),('250002'),('250003'),('250004'),('250005'),('250006'),('250008'),('250009'),('250010'),('250011'),('250012'),('250013'),('251001'),('251002'),('806001'),('806002'),('235010'),('243009'),('249007'),('249008'),('249009'),('011024'),('011025'),('429001'),('429001'),('429002'),('429002'),('429003'),('429003');
select field from t1 group by field;
drop table t1;
+
+#
+# Test of enum with space
+#
+
+create table t1 (a enum (' ','a','b') not null);
+show create table t1;
+drop table t1;
+create table t1 (a enum (' ','a','b ') not null default 'b ');
+show create table t1;
+drop table t1;
diff --git a/mysql-test/t/type_set.test b/mysql-test/t/type_set.test
new file mode 100644
index 00000000000..39bcbcbf75d
--- /dev/null
+++ b/mysql-test/t/type_set.test
@@ -0,0 +1,10 @@
+#
+# Test of SET with space
+#
+
+create table t1 (a set (' ','a','b') not null);
+show create table t1;
+drop table t1;
+create table t1 (a set (' ','a','b ') not null default 'b ');
+show create table t1;
+drop table t1;
diff --git a/mysql-test/t/variables.test b/mysql-test/t/variables.test
index 0499263467c..b3127402238 100644
--- a/mysql-test/t/variables.test
+++ b/mysql-test/t/variables.test
@@ -27,3 +27,14 @@ SELECT * FROM t1 WHERE c_id=@min_cid OR c_id=@max_cid OR c_id=666;
ALTER TABLE t1 DROP PRIMARY KEY;
select * from t1 where c_id=@min_cid OR c_id=@max_cid;
drop table t1;
+
+#
+# Test system variables
+#
+
+select @@VERSION=version();
+select last_insert_id(345);
+select @@IDENTITY,last_insert_id();
+select @@identity;
+--error 1193
+select @@unknown_variable;
diff --git a/mysys/Makefile.am b/mysys/Makefile.am
index a32740e2168..ec8a6b33224 100644
--- a/mysys/Makefile.am
+++ b/mysys/Makefile.am
@@ -35,7 +35,7 @@ libmysys_a_SOURCES = my_init.c my_getwd.c mf_getdate.c\
my_error.c errors.c my_div.c my_messnc.c \
mf_format.c mf_same.c mf_dirname.c mf_fn_ext.c \
my_symlink.c my_symlink2.c \
- mf_pack.c mf_unixpath.c mf_stripp.c \
+ mf_pack.c mf_unixpath.c mf_strip.c \
mf_casecnv.c mf_soundex.c mf_wcomp.c mf_wfile.c \
mf_qsort.c mf_qsort2.c mf_sort.c \
ptr_cmp.c mf_radix.c queues.c \
@@ -44,10 +44,11 @@ libmysys_a_SOURCES = my_init.c my_getwd.c mf_getdate.c\
my_delete.c my_rename.c my_redel.c my_tempnam.c \
my_chsize.c my_lread.c my_lwrite.c my_clock.c \
my_quick.c my_lockmem.c my_static.c \
- getopt.c getopt1.c my_getopt.c getvar.c my_mkdir.c \
- default.c my_compress.c checksum.c raid.cc my_net.c \
+ my_getopt.c getvar.c my_mkdir.c \
+ default.c my_compress.c checksum.c raid.cc \
+ my_net.c \
my_vsnprintf.c charset.c my_bitmap.c my_bit.c md5.c \
- my_handler.c
+ my_gethostbyname.c my_handler.c
EXTRA_DIST = thr_alarm.c thr_lock.c my_pthread.c my_thr_init.c \
thr_mutex.c thr_rwlock.c
libmysys_a_LIBADD = @THREAD_LOBJECTS@
diff --git a/mysys/array.c b/mysys/array.c
index 2420213d454..2a0723fbd69 100644
--- a/mysys/array.c
+++ b/mysys/array.c
@@ -28,7 +28,7 @@
even if space allocation failed
*/
-my_bool _init_dynamic_array(DYNAMIC_ARRAY *array, uint element_size,
+my_bool init_dynamic_array(DYNAMIC_ARRAY *array, uint element_size,
uint init_alloc,
uint alloc_increment CALLER_INFO_PROTO)
{
diff --git a/mysys/charset.c b/mysys/charset.c
index de6ccbf7ea9..b021945a5dc 100644
--- a/mysys/charset.c
+++ b/mysys/charset.c
@@ -122,7 +122,7 @@ static my_bool read_charset_index(CS_ID ***charsets, myf myflags)
fb.buf[0] = '\0';
fb.p = fb.buf;
- if (init_dynamic_array(&cs, sizeof(CS_ID *), 32, 32))
+ if (my_init_dynamic_array(&cs, sizeof(CS_ID *), 32, 32))
return TRUE;
while (!get_word(&fb, buf) && !get_word(&fb, num_buf))
@@ -180,7 +180,7 @@ static my_bool init_available_charsets(myf myflags)
pthread_mutex_lock(&THR_LOCK_charset);
if (!cs_info_table.buffer) /* If not initialized */
{
- init_dynamic_array(&cs_info_table, sizeof(CHARSET_INFO*), 16, 8);
+ my_init_dynamic_array(&cs_info_table, sizeof(CHARSET_INFO*), 16, 8);
error = read_charset_index(&available_charsets, myflags);
}
charset_initialized=1;
diff --git a/mysys/default.c b/mysys/default.c
index ad34d4b949d..d270aa8673a 100644
--- a/mysys/default.c
+++ b/mysys/default.c
@@ -123,7 +123,7 @@ void load_defaults(const char *conf_file, const char **groups,
for (; *groups ; groups++)
group.count++;
- if (init_dynamic_array(&args, sizeof(char*),*argc, 32))
+ if (my_init_dynamic_array(&args, sizeof(char*),*argc, 32))
goto err;
if (forced_default_file)
{
diff --git a/mysys/getopt.c b/mysys/getopt.c
deleted file mode 100644
index 7b96e10c85c..00000000000
--- a/mysys/getopt.c
+++ /dev/null
@@ -1,750 +0,0 @@
-/* Getopt for GNU.
- NOTE: getopt is now part of the C library, so if you don't know what
- "Keep this file name-space clean" means, talk to roland@gnu.ai.mit.edu
- before changing it!
-
- Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94
- Free Software Foundation, Inc.
-
-Changes by monty:
-- Added include of string.h when nessessary.
-- Removed two warnings from gcc.
-
-This file is part of the GNU C Library. Its master source is NOT part of
-the C library, however. The master source lives in /gd/gnu/lib.
-
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
-
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB. If
-not, write to the Free Software Foundation, Inc., 675 Mass Ave,
-Cambridge, MA 02139, USA. */
-
-/* This tells Alpha OSF/1 not to define a getopt prototype in <stdio.h>.
- Ditto for AIX 3.2 and <stdlib.h>. */
-#ifndef _NO_PROTO
-#define _NO_PROTO
-#endif
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#if (!defined (__STDC__) || !__STDC__) && !defined(MSDOS) && !defined(OS2)
-/* This is a separate conditional since some stdc systems
- reject `defined (const)'. */
-#ifndef const
-#define const
-#endif
-#endif
-
-#include <my_global.h> /* Changes for mysys */
-#include <m_string.h>
-
-/* Comment out all this code if we are using the GNU C Library, and are not
- actually compiling the library itself. This code is part of the GNU C
- Library, but also included in many other GNU distributions. Compiling
- and linking in this code is a waste when using the GNU C library
- (especially if it is a shared library). Rather than having every GNU
- program understand `configure --with-gnu-libc' and omit the object files,
- it is simpler to just do this in the source for each such file. */
-
-#if defined (_LIBC) || !defined (__GNU_LIBRARY__)
-
-
-/* This needs to come after some library #include
- to get __GNU_LIBRARY__ defined. */
-#ifdef __GNU_LIBRARY__
-/* Don't include stdlib.h for non-GNU C libraries because some of them
- contain conflicting prototypes for getopt. */
-#include <stdlib.h>
-#endif /* GNU C library. */
-
-/* This version of `getopt' appears to the caller like standard Unix `getopt'
- but it behaves differently for the user, since it allows the user
- to intersperse the options with the other arguments.
-
- As `getopt' works, it permutes the elements of ARGV so that,
- when it is done, all the options precede everything else. Thus
- all application programs are extended to handle flexible argument order.
-
- Setting the environment variable POSIXLY_CORRECT disables permutation.
- Then the behavior is completely standard.
-
- GNU application programs can use a third alternative mode in which
- they can distinguish the relative order of options and other arguments. */
-
-#include "getopt.h"
-
-/* For communication from `getopt' to the caller.
- When `getopt' finds an option that takes an argument,
- the argument value is returned here.
- Also, when `ordering' is RETURN_IN_ORDER,
- each non-option ARGV-element is returned here. */
-
-char *optarg = NULL;
-
-/* Index in ARGV of the next element to be scanned.
- This is used for communication to and from the caller
- and for communication between successive calls to `getopt'.
-
- On entry to `getopt', zero means this is the first call; initialize.
-
- When `getopt' returns EOF, this is the index of the first of the
- non-option elements that the caller should itself scan.
-
- Otherwise, `optind' communicates from one call to the next
- how much of ARGV has been scanned so far. */
-
-/* XXX 1003.2 says this must be 1 before any call. */
-int optind = 1;
-
-/* The next char to be scanned in the option-element
- in which the last option character we returned was found.
- This allows us to pick up the scan where we left off.
-
- If this is zero, or a null string, it means resume the scan
- by advancing to the next ARGV-element. */
-
-static char *nextchar;
-
-/* Callers store zero here to inhibit the error message
- for unrecognized options. */
-
-int opterr = 1;
-
-/* Set to an option character which was unrecognized.
- This must be initialized on some systems to avoid linking in the
- system's own getopt implementation. */
-
-int optopt = '?';
-
-/* Describe how to deal with options that follow non-option ARGV-elements.
-
- If the caller did not specify anything,
- the default is REQUIRE_ORDER if the environment variable
- POSIXLY_CORRECT is defined, PERMUTE otherwise.
-
- REQUIRE_ORDER means don't recognize them as options;
- stop option processing when the first non-option is seen.
- This is what Unix does.
- This mode of operation is selected by either setting the environment
- variable POSIXLY_CORRECT, or using `+' as the first character
- of the list of option characters.
-
- PERMUTE is the default. We permute the contents of ARGV as we scan,
- so that eventually all the non-options are at the end. This allows options
- to be given in any order, even with programs that were not written to
- expect this.
-
- RETURN_IN_ORDER is an option available to programs that were written
- to expect options and other ARGV-elements in any order and that care about
- the ordering of the two. We describe each non-option ARGV-element
- as if it were the argument of an option with character code 1.
- Using `-' as the first character of the list of option characters
- selects this mode of operation.
-
- The special argument `--' forces an end of option-scanning regardless
- of the value of `ordering'. In the case of RETURN_IN_ORDER, only
- `--' can cause `getopt' to return EOF with `optind' != ARGC. */
-
-static enum
-{
- REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER
-} ordering;
-
-/* Value of POSIXLY_CORRECT environment variable. */
-static char *posixly_correct;
-
-#ifdef __GNU_LIBRARY__
-/* We want to avoid inclusion of string.h with non-GNU libraries
- because there are many ways it can cause trouble.
- On some systems, it contains special magic macros that don't work
- in GCC. */
-#include <string.h>
-#define my_index strchr
-#else
-
-/* Avoid depending on library functions or files
- whose names are inconsistent. */
-
-#ifndef OS2
-char *getenv (const char *);
-#endif
-
-static char *
-my_index (const char *str, int chr)
-{
- while (*str)
- {
- if (*str == chr)
- return (char *) str;
- str++;
- }
- return 0;
-}
-
-/* If using GCC, we can safely declare strlen this way.
- If not using GCC, it is ok not to declare it. */
-#ifdef __GNUC__
-/* Note that Motorola Delta 68k R3V7 comes with GCC but not stddef.h.
- That was relevant to code that was here before. */
-#if !defined (__STDC__) || !__STDC__
-/* gcc with -traditional declares the built-in strlen to return int,
- and has done so at least since version 2.4.5. -- rms. */
-extern int strlen (const char *);
-#endif /* not __STDC__ */
-#endif /* __GNUC__ */
-
-#endif /* not __GNU_LIBRARY__ */
-
-/* Handle permutation of arguments. */
-
-/* Describe the part of ARGV that contains non-options that have
- been skipped. `first_nonopt' is the index in ARGV of the first of them;
- `last_nonopt' is the index after the last of them. */
-
-static int first_nonopt;
-static int last_nonopt;
-
-/* Exchange two adjacent subsequences of ARGV.
- One subsequence is elements [first_nonopt,last_nonopt)
- which contains all the non-options that have been skipped so far.
- The other is elements [last_nonopt,optind), which contains all
- the options processed since those non-options were skipped.
-
- `first_nonopt' and `last_nonopt' are relocated so that they describe
- the new indices of the non-options in ARGV after they are moved. */
-
-static void
-exchange (char **argv)
-{
- int bottom = first_nonopt;
- int middle = last_nonopt;
- int top = optind;
- char *tem;
-
- /* Exchange the shorter segment with the far end of the longer segment.
- That puts the shorter segment into the right place.
- It leaves the longer segment in the right place overall,
- but it consists of two parts that need to be swapped next. */
-
- while (top > middle && middle > bottom)
- {
- if (top - middle > middle - bottom)
- {
- /* Bottom segment is the short one. */
- int len = middle - bottom;
- register int i;
-
- /* Swap it with the top part of the top segment. */
- for (i = 0; i < len; i++)
- {
- tem = argv[bottom + i];
- argv[bottom + i] = argv[top - (middle - bottom) + i];
- argv[top - (middle - bottom) + i] = tem;
- }
- /* Exclude the moved bottom segment from further swapping. */
- top -= len;
- }
- else
- {
- /* Top segment is the short one. */
- int len = top - middle;
- register int i;
-
- /* Swap it with the bottom part of the bottom segment. */
- for (i = 0; i < len; i++)
- {
- tem = argv[bottom + i];
- argv[bottom + i] = argv[middle + i];
- argv[middle + i] = tem;
- }
- /* Exclude the moved top segment from further swapping. */
- bottom += len;
- }
- }
-
- /* Update records for the slots the non-options now occupy. */
-
- first_nonopt += (optind - last_nonopt);
- last_nonopt = optind;
-}
-
-/* Initialize the internal data when the first call is made. */
-
-static const char *
-_getopt_initialize (const char *optstring)
-{
- /* Start processing options with ARGV-element 1 (since ARGV-element 0
- is the program name); the sequence of previously skipped
- non-option ARGV-elements is empty. */
-
- first_nonopt = last_nonopt = optind = 1;
-
- nextchar = NULL;
-
- posixly_correct = getenv ("POSIXLY_CORRECT");
-
- /* Determine how to handle the ordering of options and nonoptions. */
-
- if (optstring[0] == '-')
- {
- ordering = RETURN_IN_ORDER;
- ++optstring;
- }
- else if (optstring[0] == '+')
- {
- ordering = REQUIRE_ORDER;
- ++optstring;
- }
- else if (posixly_correct != NULL)
- ordering = REQUIRE_ORDER;
- else
- ordering = PERMUTE;
-
- return optstring;
-}
-
-/* Scan elements of ARGV (whose length is ARGC) for option characters
- given in OPTSTRING.
-
- If an element of ARGV starts with '-', and is not exactly "-" or "--",
- then it is an option element. The characters of this element
- (aside from the initial '-') are option characters. If `getopt'
- is called repeatedly, it returns successively each of the option characters
- from each of the option elements.
-
- If `getopt' finds another option character, it returns that character,
- updating `optind' and `nextchar' so that the next call to `getopt' can
- resume the scan with the following option character or ARGV-element.
-
- If there are no more option characters, `getopt' returns `EOF'.
- Then `optind' is the index in ARGV of the first ARGV-element
- that is not an option. (The ARGV-elements have been permuted
- so that those that are not options now come last.)
-
- OPTSTRING is a string containing the legitimate option characters.
- If an option character is seen that is not listed in OPTSTRING,
- return '?' after printing an error message. If you set `opterr' to
- zero, the error message is suppressed but we still return '?'.
-
- If a char in OPTSTRING is followed by a colon, that means it wants an arg,
- so the following text in the same ARGV-element, or the text of the following
- ARGV-element, is returned in `optarg'. Two colons mean an option that
- wants an optional arg; if there is text in the current ARGV-element,
- it is returned in `optarg', otherwise `optarg' is set to zero.
-
- If OPTSTRING starts with `-' or `+', it requests different methods of
- handling the non-option ARGV-elements.
- See the comments about RETURN_IN_ORDER and REQUIRE_ORDER, above.
-
- Long-named options begin with `--' instead of `-'.
- Their names may be abbreviated as long as the abbreviation is unique
- or is an exact match for some defined option. If they have an
- argument, it follows the option name in the same ARGV-element, separated
- from the option name by a `=', or else the in next ARGV-element.
- When `getopt' finds a long-named option, it returns 0 if that option's
- `flag' field is nonzero, the value of the option's `val' field
- if the `flag' field is zero.
-
- The elements of ARGV aren't really const, because we permute them.
- But we pretend they're const in the prototype to be compatible
- with other systems.
-
- LONGOPTS is a vector of `struct option' terminated by an
- element containing a name which is zero.
-
- LONGIND returns the index in LONGOPT of the long-named option found.
- It is only valid when a long-named option has been found by the most
- recent call.
-
- If LONG_ONLY is nonzero, '-' as well as '--' can introduce
- long-named options. */
-
-int
-_getopt_internal (int argc, char *const *argv, const char *optstring, const struct option *longopts, int *longind, int long_only)
-{
- optarg = NULL;
-
- if (optind == 0)
- optstring = _getopt_initialize (optstring);
-
- if (nextchar == NULL || *nextchar == '\0')
- {
- /* Advance to the next ARGV-element. */
-
- if (ordering == PERMUTE)
- {
- /* If we have just processed some options following some non-options,
- exchange them so that the options come first. */
-
- if (first_nonopt != last_nonopt && last_nonopt != optind)
- exchange ((char **) argv);
- else if (last_nonopt != optind)
- first_nonopt = optind;
-
- /* Skip any additional non-options
- and extend the range of non-options previously skipped. */
-
- while (optind < argc
- && (argv[optind][0] != '-' || argv[optind][1] == '\0'))
- optind++;
- last_nonopt = optind;
- }
-
- /* The special ARGV-element `--' means premature end of options.
- Skip it like a null option,
- then exchange with previous non-options as if it were an option,
- then skip everything else like a non-option. */
-
- if (optind != argc && !strcmp (argv[optind], "--"))
- {
- optind++;
-
- if (first_nonopt != last_nonopt && last_nonopt != optind)
- exchange ((char **) argv);
- else if (first_nonopt == last_nonopt)
- first_nonopt = optind;
- last_nonopt = argc;
-
- optind = argc;
- }
-
- /* If we have done all the ARGV-elements, stop the scan
- and back over any non-options that we skipped and permuted. */
-
- if (optind == argc)
- {
- /* Set the next-arg-index to point at the non-options
- that we previously skipped, so the caller will digest them. */
- if (first_nonopt != last_nonopt)
- optind = first_nonopt;
- return EOF;
- }
-
- /* If we have come to a non-option and did not permute it,
- either stop the scan or describe it to the caller and pass it by. */
-
- if ((argv[optind][0] != '-' || argv[optind][1] == '\0'))
- {
- if (ordering == REQUIRE_ORDER)
- return EOF;
- optarg = argv[optind++];
- return 1;
- }
-
- /* We have found another option-ARGV-element.
- Skip the initial punctuation. */
-
- nextchar = (argv[optind] + 1
- + (longopts != NULL && argv[optind][1] == '-'));
- }
-
- /* Decode the current option-ARGV-element. */
-
- /* Check whether the ARGV-element is a long option.
-
- If long_only and the ARGV-element has the form "-f", where f is
- a valid short option, don't consider it an abbreviated form of
- a long option that starts with f. Otherwise there would be no
- way to give the -f short option.
-
- On the other hand, if there's a long option "fubar" and
- the ARGV-element is "-fu", do consider that an abbreviation of
- the long option, just like "--fu", and not "-f" with arg "u".
-
- This distinction seems to be the most useful approach. */
-
- if (longopts != NULL
- && (argv[optind][1] == '-'
- || (long_only && (argv[optind][2] || !my_index (optstring, argv[optind][1])))))
- {
- char *nameend;
- const struct option *p;
- const struct option *pfound = NULL;
- int exact = 0;
- int ambig = 0;
- int indfound=0; /* Keep gcc happy */
- int option_index;
-
- for (nameend = nextchar; *nameend && *nameend != '='; nameend++)
- /* Do nothing. */ ;
-
- /* Test all long options for either exact match
- or abbreviated matches. */
- for (p = longopts, option_index = 0; p->name; p++, option_index++)
- if (!strncmp (p->name, nextchar, nameend - nextchar))
- {
- if ((size_t) (nameend - nextchar) == (size_t) strlen (p->name))
- {
- /* Exact match found. */
- pfound = p;
- indfound = option_index;
- exact = 1;
- break;
- }
- else if (pfound == NULL)
- {
- /* First nonexact match found. */
- pfound = p;
- indfound = option_index;
- }
- else
- /* Second or later nonexact match found. */
- ambig = 1;
- }
-
- if (ambig && !exact)
- {
- if (opterr)
- fprintf (stderr, "%s: option `%s' is ambiguous\n",
- argv[0], argv[optind]);
- nextchar += strlen (nextchar);
- optind++;
- return '?';
- }
-
- if (pfound != NULL)
- {
- option_index = indfound;
- optind++;
- if (*nameend)
- {
- /* Don't test has_arg with >, because some C compilers don't
- allow it to be used on enums. */
- if (pfound->has_arg)
- optarg = nameend + 1;
- else
- {
- if (opterr)
- {
- if (argv[optind - 1][1] == '-')
- /* --option */
- fprintf (stderr,
- "%s: option `--%s' doesn't allow an argument\n",
- argv[0], pfound->name);
- else
- /* +option or -option */
- fprintf (stderr,
- "%s: option `%c%s' doesn't allow an argument\n",
- argv[0], argv[optind - 1][0], pfound->name);
- }
- nextchar += strlen (nextchar);
- return '?';
- }
- }
- else if (pfound->has_arg == 1)
- {
- if (optind < argc)
- optarg = argv[optind++];
- else
- {
- if (opterr)
- fprintf (stderr, "%s: option `%s' requires an argument\n",
- argv[0], argv[optind - 1]);
- nextchar += strlen (nextchar);
- return optstring[0] == ':' ? ':' : '?';
- }
- }
- nextchar += strlen (nextchar);
- if (longind != NULL)
- *longind = option_index;
- if (pfound->flag)
- {
- *(pfound->flag) = pfound->val;
- return 0;
- }
- return pfound->val;
- }
-
- /* Can't find it as a long option. If this is not getopt_long_only,
- or the option starts with '--' or is not a valid short
- option, then it's an error.
- Otherwise interpret it as a short option. */
- if (!long_only || argv[optind][1] == '-'
- || my_index (optstring, *nextchar) == NULL)
- {
- if (opterr)
- {
- if (argv[optind][1] == '-')
- /* --option */
- fprintf (stderr, "%s: unrecognized option `--%s'\n",
- argv[0], nextchar);
- else
- /* +option or -option */
- fprintf (stderr, "%s: unrecognized option `%c%s'\n",
- argv[0], argv[optind][0], nextchar);
- }
- nextchar = (char *) "";
- optind++;
- return '?';
- }
- }
-
- /* Look at and handle the next short option-character. */
-
- {
- char c = *nextchar++;
- char *temp = my_index (optstring, c);
-
- /* Increment `optind' when we start to process its last character. */
- if (*nextchar == '\0')
- ++optind;
-
- if (temp == NULL || c == ':')
- {
- if (opterr)
- {
- if (posixly_correct)
- /* 1003.2 specifies the format of this message. */
- fprintf (stderr, "%s: illegal option -- %c\n", argv[0], c);
- else
- fprintf (stderr, "%s: invalid option -- %c\n", argv[0], c);
- }
- optopt = c;
- return '?';
- }
- if (temp[1] == ':')
- {
- if (temp[2] == ':')
- {
- /* This is an option that accepts an argument optionally. */
- if (*nextchar != '\0')
- {
- optarg = nextchar;
- optind++;
- }
- else
- optarg = NULL;
- nextchar = NULL;
- }
- else
- {
- /* This is an option that requires an argument. */
- if (*nextchar != '\0')
- {
- optarg = nextchar;
- /* If we end this ARGV-element by taking the rest as an arg,
- we must advance to the next element now. */
- optind++;
- }
- else if (optind == argc)
- {
- if (opterr)
- {
- /* 1003.2 specifies the format of this message. */
- fprintf (stderr, "%s: option requires an argument -- %c\n",
- argv[0], c);
- }
- optopt = c;
- if (optstring[0] == ':')
- c = ':';
- else
- c = '?';
- }
- else
- /* We already incremented `optind' once;
- increment it again when taking next ARGV-elt as argument. */
- optarg = argv[optind++];
- nextchar = NULL;
- }
- }
- return c;
- }
-}
-
-#ifdef __EMX__
-int getopt (int argc, char **argv, __const__ char *optstring)
-#else
-int
-getopt (int argc, char *const *argv, const char *optstring)
-#endif
-{
- return _getopt_internal (argc, argv, optstring,
- (const struct option *) 0,
- (int *) 0,
- 0);
-}
-
-#endif /* _LIBC or not __GNU_LIBRARY__. */
-
-#ifdef TEST
-
-/* Compile with -DTEST to make an executable for use in testing
- the above definition of `getopt'. */
-
-int
-main (argc, argv)
- int argc;
- char **argv;
-{
- int c;
- int digit_optind = 0;
-
- while (1)
- {
- int this_option_optind = optind ? optind : 1;
-
- c = getopt (argc, argv, "abc:d:0123456789");
- if (c == EOF)
- break;
-
- switch (c)
- {
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- if (digit_optind != 0 && digit_optind != this_option_optind)
- printf ("digits occur in two different argv-elements.\n");
- digit_optind = this_option_optind;
- printf ("option %c\n", c);
- break;
-
- case 'a':
- printf ("option a\n");
- break;
-
- case 'b':
- printf ("option b\n");
- break;
-
- case 'c':
- printf ("option c with value `%s'\n", optarg);
- break;
-
- case '?':
- break;
-
- default:
- printf ("?? getopt returned character code 0%o ??\n", c);
- }
- }
-
- if (optind < argc)
- {
- printf ("non-option ARGV-elements: ");
- while (optind < argc)
- printf ("%s ", argv[optind++]);
- printf ("\n");
- }
-
- exit (0);
-}
-
-#endif /* TEST */
diff --git a/mysys/getopt1.c b/mysys/getopt1.c
deleted file mode 100644
index 15f3c8f544b..00000000000
--- a/mysys/getopt1.c
+++ /dev/null
@@ -1,170 +0,0 @@
-/* getopt_long and getopt_long_only entry points for GNU getopt.
- Copyright (C) 1987, 88, 89, 90, 91, 92, 1993, 1994
- Free Software Foundation, Inc.
-
-This file is part of the GNU C Library. Its master source is NOT part of
-the C library, however. The master source lives in /gd/gnu/lib.
-
-The GNU C Library is free software; you can redistribute it and/or
-modify it under the terms of the GNU Library General Public License as
-published by the Free Software Foundation; either version 2 of the
-License, or (at your option) any later version.
-
-The GNU C Library is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-Library General Public License for more details.
-
-You should have received a copy of the GNU Library General Public
-License along with the GNU C Library; see the file COPYING.LIB. If
-not, write to the Free Software Foundation, Inc., 675 Mass Ave,
-Cambridge, MA 02139, USA. */
-
-#ifdef HAVE_CONFIG_H
-#include <config.h>
-#endif
-
-#include <my_global.h>
-#include "getopt.h"
-
-#if (!defined (__STDC__) || !__STDC__) && !defined(MSDOS) && !defined(OS2)
-/* This is a separate conditional since some stdc systems
- reject `defined (const)'. */
-#ifndef const
-#define const
-#endif
-#endif
-
-#include <stdio.h>
-
-/* Comment out all this code if we are using the GNU C Library, and are not
- actually compiling the library itself. This code is part of the GNU C
- Library, but also included in many other GNU distributions. Compiling
- and linking in this code is a waste when using the GNU C library
- (especially if it is a shared library). Rather than having every GNU
- program understand `configure --with-gnu-libc' and omit the object files,
- it is simpler to just do this in the source for each such file. */
-
-#if defined (_LIBC) || !defined (__GNU_LIBRARY__)
-
-#ifndef __WIN__
-#include <stdlib.h>
-#endif /* __WIN__ */
-
-#ifndef NULL
-#define NULL 0
-#endif
-
-int
-getopt_long (int argc, char *const *argv, const char *options, const struct option *long_options, int *opt_index)
-{
- return _getopt_internal (argc, argv, options, long_options, opt_index, 0);
-}
-
-/* Like getopt_long, but '-' as well as '--' can indicate a long option.
- If an option that starts with '-' (not '--') doesn't match a long option,
- but does match a short option, it is parsed as a short option
- instead. */
-
-int
-getopt_long_only (int argc, char *const *argv, const char *options, const struct option *long_options, int *opt_index)
-{
- return _getopt_internal (argc, argv, options, long_options, opt_index, 1);
-}
-
-
-#endif /* _LIBC or not __GNU_LIBRARY__. */
-
-#ifdef TEST
-
-#include <stdio.h>
-
-int
-main (argc, argv)
- int argc;
- char **argv;
-{
- int c;
- int digit_optind = 0;
-
- while (1)
- {
- int this_option_optind = optind ? optind : 1;
- int option_index = 0;
- static struct option long_options[] =
- {
- {"add", 1, 0, 0},
- {"append", 0, 0, 0},
- {"delete", 1, 0, 0},
- {"verbose", 0, 0, 0},
- {"create", 0, 0, 0},
- {"file", 1, 0, 0},
- {0, 0, 0, 0}
- };
-
- c = getopt_long (argc, argv, "abc:d:0123456789",
- long_options, &option_index);
- if (c == EOF)
- break;
-
- switch (c)
- {
- case 0:
- printf ("option %s", long_options[option_index].name);
- if (optarg)
- printf (" with arg %s", optarg);
- printf ("\n");
- break;
-
- case '0':
- case '1':
- case '2':
- case '3':
- case '4':
- case '5':
- case '6':
- case '7':
- case '8':
- case '9':
- if (digit_optind != 0 && digit_optind != this_option_optind)
- printf ("digits occur in two different argv-elements.\n");
- digit_optind = this_option_optind;
- printf ("option %c\n", c);
- break;
-
- case 'a':
- printf ("option a\n");
- break;
-
- case 'b':
- printf ("option b\n");
- break;
-
- case 'c':
- printf ("option c with value `%s'\n", optarg);
- break;
-
- case 'd':
- printf ("option d with value `%s'\n", optarg);
- break;
-
- case '?':
- break;
-
- default:
- printf ("?? getopt returned character code 0%o ??\n", c);
- }
- }
-
- if (optind < argc)
- {
- printf ("non-option ARGV-elements: ");
- while (optind < argc)
- printf ("%s ", argv[optind++]);
- printf ("\n");
- }
-
- exit (0);
-}
-
-#endif /* TEST */
diff --git a/mysys/hash.c b/mysys/hash.c
index 770bd396d06..0cbd14607f6 100644
--- a/mysys/hash.c
+++ b/mysys/hash.c
@@ -45,7 +45,7 @@ _hash_init(HASH *hash,CHARSET_INFO *charset,
DBUG_PRINT("enter",("hash: %lx size: %d",hash,size));
hash->records=0;
- if (init_dynamic_array_ci(&hash->array,sizeof(HASH_LINK),size,0))
+ if (my_init_dynamic_array_ci(&hash->array,sizeof(HASH_LINK),size,0))
{
hash->free=0; /* Allow call to hash_free */
DBUG_RETURN(TRUE);
diff --git a/mysys/mf_stripp.c b/mysys/mf_strip.c
index d2fd171ec8c..ef2aab2c0a3 100644
--- a/mysys/mf_stripp.c
+++ b/mysys/mf_strip.c
@@ -19,11 +19,11 @@
#include "mysys_priv.h"
/*
- stripp_sp(my_string str)
+ strip_sp(my_string str)
Strips end-space from string and returns new length.
*/
-size_s stripp_sp(register my_string str)
+size_s strip_sp(register my_string str)
{
reg2 my_string found;
reg3 my_string start;
@@ -43,4 +43,4 @@ size_s stripp_sp(register my_string str)
}
*found= '\0'; /* Stripp at first space */
return (size_s) (found-start);
-} /* stripp_sp */
+} /* strip_sp */
diff --git a/mysys/my_alloc.c b/mysys/my_alloc.c
index 789e64526a3..5a6afe2fac9 100644
--- a/mysys/my_alloc.c
+++ b/mysys/my_alloc.c
@@ -29,6 +29,7 @@ void init_alloc_root(MEM_ROOT *mem_root, uint block_size,
mem_root->min_malloc=32;
mem_root->block_size=block_size-MALLOC_OVERHEAD-sizeof(USED_MEM)-8;
mem_root->error_handler=0;
+ mem_root->block_num= 0;
#if !(defined(HAVE_purify) && defined(EXTRA_DEBUG))
if (pre_alloc_size)
{
@@ -61,25 +62,20 @@ gptr alloc_root(MEM_ROOT *mem_root,unsigned int Size)
mem_root->used=next;
return (gptr) (((char*) next)+ALIGN_SIZE(sizeof(USED_MEM)));
#else
- uint get_size,max_left;
+ uint get_size, block_size;
gptr point;
reg1 USED_MEM *next;
reg2 USED_MEM **prev;
Size= ALIGN_SIZE(Size);
prev= &mem_root->free;
- max_left=0;
for (next= *prev ; next && next->left < Size ; next= next->next)
- {
- if (next->left > max_left)
- max_left=next->left;
prev= &next->next;
- }
if (! next)
{ /* Time to alloc new block */
+ block_size= mem_root->block_size*((mem_root->block_num>>2)+1);
get_size= Size+ALIGN_SIZE(sizeof(USED_MEM));
- if (max_left*4 < mem_root->block_size && get_size < mem_root->block_size)
- get_size=mem_root->block_size; /* Normal alloc */
+ get_size= max(get_size, block_size);
if (!(next = (USED_MEM*) my_malloc(get_size,MYF(MY_WME))))
{
@@ -87,6 +83,7 @@ gptr alloc_root(MEM_ROOT *mem_root,unsigned int Size)
(*mem_root->error_handler)();
return((gptr) 0); /* purecov: inspected */
}
+ mem_root->block_num++;
next->next= *prev;
next->size= get_size;
next->left= get_size-ALIGN_SIZE(sizeof(USED_MEM));
@@ -165,7 +162,10 @@ void free_root(MEM_ROOT *root, myf MyFlags)
root->free=root->pre_alloc;
root->free->left=root->pre_alloc->size-ALIGN_SIZE(sizeof(USED_MEM));
root->free->next=0;
+ root->block_num= 1;
}
+ else
+ root->block_num= 0;
DBUG_VOID_RETURN;
}
diff --git a/mysys/my_gethostbyname.c b/mysys/my_gethostbyname.c
new file mode 100644
index 00000000000..898ca694121
--- /dev/null
+++ b/mysys/my_gethostbyname.c
@@ -0,0 +1,119 @@
+/* Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ MA 02111-1307, USA */
+
+/* Thread safe version of gethostbyname_r() */
+
+#include "mysys_priv.h"
+#include "my_pthread.h"
+#include <assert.h>
+#if !defined(MSDOS) && !defined(__WIN__)
+#include <netdb.h>
+#endif
+#include <my_net.h>
+
+/* This file is not needed if my_gethostbyname_r is a macro */
+#if !defined(my_gethostbyname_r)
+
+#ifndef THREAD
+#define pthread_mutex_lock(A)
+#define pthread_mutex_unlock(A)
+#endif
+
+/*
+ Emulate SOLARIS style calls, not because it's better, but just to make the
+ usage of getbostbyname_r simpler.
+*/
+
+#if defined(HAVE_GETHOSTBYNAME_R)
+
+#if defined(HAVE_GETHOSTBYNAME_R_GLIBC2_STYLE)
+
+struct hostent *my_gethostbyname_r(const char *name,
+ struct hostent *result, char *buffer,
+ int buflen, int *h_errnop)
+{
+ struct hostent *hp;
+ DBUG_ASSERT((size_t) buflen >= sizeof(*result));
+ if (gethostbyname_r(name,result, buffer, (size_t) buflen, &hp, h_errnop))
+ return 0;
+ return hp;
+}
+
+#elif defined(HAVE_GETHOSTBYNAME_R_RETURN_INT)
+
+struct hostent *my_gethostbyname_r(const char *name,
+ struct hostent *result, char *buffer,
+ int buflen, int *h_errnop)
+{
+ DBUG_ASSERT(buflen >= sizeof(struct hostent_data));
+ if (gethostbyname_r(name,result,(struct hostent_data *) buffer) == -1)
+ {
+ *h_errnop= errno;
+ return 0;
+ }
+ return result;
+}
+
+#else
+
+/* gethostbyname_r with similar interface as gethostbyname() */
+
+struct hostent *my_gethostbyname_r(const char *name,
+ struct hostent *result, char *buffer,
+ int buflen, int *h_errnop)
+{
+ struct hostent *hp;
+ DBUG_ASSERT(buflen >= sizeof(struct hostent_data));
+ hp= gethostbyname_r(name,result,(struct hostent_data *) buffer);
+ *h_errnop= errno;
+ return hp;
+}
+#endif /* GLIBC2_STYLE_GETHOSTBYNAME_R */
+
+#else /* !HAVE_GETHOSTBYNAME_R */
+
+#ifdef THREAD
+extern pthread_mutex_t LOCK_gethostbyname_r;
+#endif
+
+/*
+ No gethostbyname_r() function exists.
+ In this case we have to keep a mutex over the call to ensure that no
+ other thread is going to reuse the internal memory.
+
+ The user is responsible to call my_gethostbyname_r_free() when he
+ is finished with the structure.
+*/
+
+struct hostent *my_gethostbyname_r(const char *name,
+ struct hostent *result, char *buffer,
+ int buflen, int *h_errnop)
+{
+ struct hostent *hp;
+ pthread_mutex_lock(&LOCK_gethostbyname_r);
+ hp= gethostbyname(name);
+ *h_errnop= h_errno;
+ return hp;
+}
+
+void my_gethostbyname_r_free()
+{
+ pthread_mutex_unlock(&LOCK_gethostbyname_r);
+}
+
+#endif /* !HAVE_GETHOSTBYNAME_R */
+#endif /* !my_gethostbyname_r */
diff --git a/mysys/my_getopt.c b/mysys/my_getopt.c
index b17d1463121..76cdbede78d 100644
--- a/mysys/my_getopt.c
+++ b/mysys/my_getopt.c
@@ -19,6 +19,8 @@
#include <stdlib.h>
#include <my_getopt.h>
#include <assert.h>
+#include <my_sys.h>
+#include <mysys_err.h>
static int findopt (char *optpat, uint length,
const struct my_option **opt_res,
@@ -26,27 +28,26 @@ static int findopt (char *optpat, uint length,
static my_bool compare_strings (register const char *s, register const char *t,
uint length);
static longlong getopt_ll (char *arg, const struct my_option *optp, int *err);
+static ulonglong getopt_ull (char *arg, const struct my_option *optp,
+ int *err);
static void init_variables(const struct my_option *options);
+static int setval (const struct my_option *opts, char *argument,
+ my_bool set_maximum_value);
+#define DISABLE_OPTION_COUNT 2 /* currently 'skip' and 'disable' below */
-#define DISABLE_OPTION_COUNT 2
-
+/* 'disable'-option prefixes must be in the beginning, DISABLE_OPTION_COUNT
+ is the number of disabling prefixes */
static const char *special_opt_prefix[]=
-{"skip", "disable", "enable", "maximum", 0};
+{"skip", "disable", "enable", "maximum", "loose", 0};
char *disabled_my_option= (char*) "0";
-/* Return error values from handle_options */
+/* This is a flag that can be set in client programs. 0 means that
+ my_getopt will not print error messages, but the client should do
+ it by itself */
-#define ERR_UNKNOWN_OPTION 1
-#define ERR_AMBIGUOUS_OPTION 2
-#define ERR_NO_ARGUMENT_ALLOWED 3
-#define ERR_ARGUMENT_REQUIRED 4
-#define ERR_VAR_PREFIX_NOT_UNIQUE 5
-#define ERR_UNKNOWN_VARIABLE 6
-#define ERR_MUST_BE_VARIABLE 7
-#define ERR_UNKNOWN_SUFFIX 8
-#define ERR_NO_PTR_TO_VARIABLE 9
+my_bool my_getopt_print_errors= 1;
/*
@@ -66,15 +67,17 @@ int handle_options(int *argc, char ***argv,
char *))
{
uint opt_found, argvpos= 0, length, spec_len, i;
- int err= 0;
- my_bool end_of_options= 0, must_be_var, set_maximum_value, special_used;
+ my_bool end_of_options= 0, must_be_var, set_maximum_value, special_used,
+ option_is_loose;
char *progname= *(*argv), **pos, *optend, *prev_found;
const struct my_option *optp;
+ int error;
LINT_INIT(opt_found);
(*argc)--; /* Skip the program name */
(*argv)++; /* --- || ---- */
init_variables(longopts);
+
for (pos= *argv; *pos; pos++)
{
char *cur_arg= *pos;
@@ -84,45 +87,48 @@ int handle_options(int *argc, char ***argv,
must_be_var= 0;
set_maximum_value= 0;
special_used= 0;
+ option_is_loose= 0;
cur_arg++; /* skip '-' */
- if (*cur_arg == 'O')
- {
- must_be_var= 1;
-
- if (!(*++cur_arg)) /* If not -Ovar=# */
+ if (*cur_arg == '-' || *cur_arg == 'O') /* check for long option, */
+ { /* --set-variable, or -O */
+ if (*cur_arg == 'O')
{
- /* the argument must be in next argv */
- if (!*++pos)
+ must_be_var= 1;
+
+ if (!(*++cur_arg)) /* If not -Ovar=# */
{
- fprintf(stderr, "%s: Option '-O' requires an argument\n",
- progname);
- return ERR_ARGUMENT_REQUIRED;
+ /* the argument must be in next argv */
+ if (!*++pos)
+ {
+ if (my_getopt_print_errors)
+ fprintf(stderr, "%s: Option '-O' requires an argument\n",
+ progname);
+ return EXIT_ARGUMENT_REQUIRED;
+ }
+ cur_arg= *pos;
+ (*argc)--;
}
- cur_arg= *pos;
- (*argc)--;
}
- /* Sasha: quick dirty fix of a bug that coredumps mysqladmin while
- running the test suite. The bug is actually pretty serious -
- even in cases when we do not coredump, -O var=val will not set
- the variable, and the previous option would be treated upredictably.
- */
- goto found_var;
- }
- else if (*cur_arg == '-') /* check for long option, or --set-variable */
- {
- if (!compare_strings(cur_arg, "-set-variable", 13))
+ else if (!compare_strings(cur_arg, "-set-variable", 13) ||
+ !compare_strings(cur_arg, "-loose-set-variable", 19))
{
must_be_var= 1;
+ if (cur_arg[1] == 'l')
+ {
+ option_is_loose= 1;
+ cur_arg+= 6;
+ }
if (cur_arg[13] == '=')
{
cur_arg+= 14;
if (!*cur_arg)
{
- fprintf(stderr,
- "%s: Option '--set-variable' requires an argument\n",
- progname);
- return ERR_ARGUMENT_REQUIRED;
+ if (my_getopt_print_errors)
+ fprintf(stderr,
+ "%s: Option '--set-variable' requires an argument\n",
+ progname);
+ return EXIT_ARGUMENT_REQUIRED;
}
}
else if (cur_arg[14]) /* garbage, or another option. break out */
@@ -132,10 +138,11 @@ int handle_options(int *argc, char ***argv,
/* the argument must be in next argv */
if (!*++pos)
{
- fprintf(stderr,
- "%s: Option '--set-variable' requires an argument\n",
- progname);
- return ERR_ARGUMENT_REQUIRED;
+ if (my_getopt_print_errors)
+ fprintf(stderr,
+ "%s: Option '--set-variable' requires an argument\n",
+ progname);
+ return EXIT_ARGUMENT_REQUIRED;
}
cur_arg= *pos;
(*argc)--;
@@ -151,7 +158,6 @@ int handle_options(int *argc, char ***argv,
continue;
}
}
- found_var:
optend= strcend(cur_arg, '=');
length= optend - cur_arg;
if (*optend == '=')
@@ -173,7 +179,7 @@ int handle_options(int *argc, char ***argv,
if (!must_be_var)
{
if (optend)
- must_be_var= 1;
+ must_be_var= 1; /* option is followed by an argument */
for (i= 0; special_opt_prefix[i]; i++)
{
spec_len= strlen(special_opt_prefix[i]);
@@ -185,16 +191,19 @@ int handle_options(int *argc, char ***argv,
*/
special_used= 1;
cur_arg+= (spec_len + 1);
+ if (!compare_strings(special_opt_prefix[i], "loose", 5))
+ option_is_loose= 1;
if ((opt_found= findopt(cur_arg, length - (spec_len + 1),
&optp, &prev_found)))
{
if (opt_found > 1)
{
- fprintf(stderr,
- "%s: ambiguous option '--%s-%s' (--%s-%s)\n",
- progname, special_opt_prefix[i], cur_arg,
- special_opt_prefix[i], prev_found);
- return ERR_AMBIGUOUS_OPTION;
+ if (my_getopt_print_errors)
+ fprintf(stderr,
+ "%s: ambiguous option '--%s-%s' (--%s-%s)\n",
+ progname, special_opt_prefix[i], cur_arg,
+ special_opt_prefix[i], prev_found);
+ return EXIT_AMBIGUOUS_OPTION;
}
if (i < DISABLE_OPTION_COUNT)
optend= disabled_my_option;
@@ -214,15 +223,26 @@ int handle_options(int *argc, char ***argv,
{
if (must_be_var)
{
- fprintf(stderr,
- "%s: unknown variable '%s'\n", progname, cur_arg);
- return ERR_UNKNOWN_VARIABLE;
+ if (my_getopt_print_errors)
+ fprintf(stderr,
+ "%s: %s: unknown variable '%s'\n", progname,
+ option_is_loose ? "WARNING" : "ERROR", cur_arg);
+ if (!option_is_loose)
+ return EXIT_UNKNOWN_VARIABLE;
}
else
{
- fprintf(stderr,
- "%s: unknown option '--%s'\n", progname, cur_arg);
- return ERR_UNKNOWN_OPTION;
+ if (my_getopt_print_errors)
+ fprintf(stderr,
+ "%s: %s: unknown option '--%s'\n", progname,
+ option_is_loose ? "WARNING" : "ERROR", cur_arg);
+ if (!option_is_loose)
+ return EXIT_UNKNOWN_OPTION;
+ }
+ if (option_is_loose)
+ {
+ (*argc)--;
+ continue;
}
}
}
@@ -230,30 +250,34 @@ int handle_options(int *argc, char ***argv,
{
if (must_be_var)
{
- fprintf(stderr, "%s: variable prefix '%s' is not unique\n",
- progname, cur_arg);
- return ERR_VAR_PREFIX_NOT_UNIQUE;
+ if (my_getopt_print_errors)
+ fprintf(stderr, "%s: variable prefix '%s' is not unique\n",
+ progname, cur_arg);
+ return EXIT_VAR_PREFIX_NOT_UNIQUE;
}
else
{
- fprintf(stderr, "%s: ambiguous option '--%s' (%s, %s)\n",
- progname, cur_arg, prev_found, optp->name);
- return ERR_AMBIGUOUS_OPTION;
+ if (my_getopt_print_errors)
+ fprintf(stderr, "%s: ambiguous option '--%s' (%s, %s)\n",
+ progname, cur_arg, prev_found, optp->name);
+ return EXIT_AMBIGUOUS_OPTION;
}
}
- if (must_be_var && !optp->value)
+ if (must_be_var && (!optp->value || optp->var_type == GET_BOOL))
{
- fprintf(stderr, "%s: argument '%s' is not a variable\n",
- progname, *pos);
- return ERR_MUST_BE_VARIABLE;
+ if (my_getopt_print_errors)
+ fprintf(stderr, "%s: option '%s' cannot take an argument\n",
+ progname, optp->name);
+ return EXIT_NO_ARGUMENT_ALLOWED;
}
if (optp->arg_type == NO_ARG)
{
if (optend && !special_used)
{
- fprintf(stderr, "%s: option '--%s' cannot take an argument\n",
- progname, optp->name);
- return ERR_NO_ARGUMENT_ALLOWED;
+ if (my_getopt_print_errors)
+ fprintf(stderr, "%s: option '--%s' cannot take an argument\n",
+ progname, optp->name);
+ return EXIT_NO_ARGUMENT_ALLOWED;
}
if (optp->var_type == GET_BOOL)
{
@@ -261,10 +285,10 @@ int handle_options(int *argc, char ***argv,
Set bool to 1 if no argument or if the user has used
--enable-'option-name'.
*optend was set to '0' if one used --disable-option
- */
+ */
*((my_bool*) optp->value)= (my_bool) (!optend || *optend == '1');
(*argc)--;
- continue;
+ continue; // For GET_BOOL get_one_option() shouldn't be called
}
argument= optend;
}
@@ -287,9 +311,10 @@ int handle_options(int *argc, char ***argv,
/* Check if there are more arguments after this one */
if (!*++pos)
{
- fprintf(stderr, "%s: option '--%s' requires an argument\n",
- progname, optp->name);
- return ERR_ARGUMENT_REQUIRED;
+ if (my_getopt_print_errors)
+ fprintf(stderr, "%s: option '--%s' requires an argument\n",
+ progname, optp->name);
+ return EXIT_ARGUMENT_REQUIRED;
}
argument= *pos;
(*argc)--;
@@ -299,8 +324,9 @@ int handle_options(int *argc, char ***argv,
}
else /* must be short option */
{
- for (optend= cur_arg; *optend; optend++, opt_found= 0)
+ for (optend= cur_arg; *optend; optend++)
{
+ opt_found= 0;
for (optp= longopts; optp->id; optp++)
{
if (optp->id == (int) (uchar) *optend)
@@ -311,7 +337,7 @@ int handle_options(int *argc, char ***argv,
{
*((my_bool*) optp->value)= (my_bool) 1;
(*argc)--;
- continue;
+ continue; // For GET_BOOL get_one_option() shouldn't be called
}
else if (optp->arg_type == REQUIRED_ARG ||
optp->arg_type == OPT_ARG)
@@ -328,48 +354,45 @@ int handle_options(int *argc, char ***argv,
/* Check if there are more arguments after this one */
if (!*++pos)
{
- fprintf(stderr, "%s: option '-%c' requires an argument\n",
- progname, optp->id);
- return ERR_ARGUMENT_REQUIRED;
+ if (my_getopt_print_errors)
+ fprintf(stderr,
+ "%s: option '-%c' requires an argument\n",
+ progname, optp->id);
+ return EXIT_ARGUMENT_REQUIRED;
}
argument= *pos;
(*argc)--;
/* the other loop will break, because *optend + 1 == 0 */
}
}
+ if ((error= setval(optp, argument, set_maximum_value)))
+ {
+ fprintf(stderr,
+ "%s: Error while setting value '%s' to '%s'\n",
+ progname, argument, optp->name);
+ return error;
+ }
get_one_option(optp->id, optp, argument);
break;
}
}
if (!opt_found)
{
- fprintf(stderr,
- "%s: unknown option '-%c'\n", progname, *cur_arg);
- return ERR_UNKNOWN_OPTION;
+ if (my_getopt_print_errors)
+ fprintf(stderr,
+ "%s: unknown option '-%c'\n", progname, *optend);
+ return EXIT_UNKNOWN_OPTION;
}
}
(*argc)--; /* option handled (short), decrease argument count */
continue;
}
- if (optp->value)
+ if ((error= setval(optp, argument, set_maximum_value)))
{
- gptr *result_pos= (set_maximum_value) ?
- optp->u_max_value : optp->value;
-
- if (!result_pos)
- {
- fprintf(stderr,
- "%s: Can't set a value for %s\n", progname, optp->name);
- return ERR_NO_PTR_TO_VARIABLE;
- }
- if (optp->var_type == GET_LONG)
- *((long*) result_pos)= (long) getopt_ll(argument, optp, &err);
- else if (optp->var_type == GET_LL)
- *((longlong*) result_pos)= getopt_ll(argument, optp, &err);
- else if (optp->var_type == GET_STR)
- *((char**) result_pos)= argument;
- if (err)
- return ERR_UNKNOWN_SUFFIX;
+ fprintf(stderr,
+ "%s: Error while setting value '%s' to '%s'\n",
+ progname, argument, optp->name);
+ return error;
}
get_one_option(optp->id, optp, argument);
@@ -381,6 +404,59 @@ int handle_options(int *argc, char ***argv,
return 0;
}
+/*
+ function: setval
+
+ Arguments: opts, argument
+ Will set the option value to given value
+*/
+
+static int setval (const struct my_option *opts, char *argument,
+ my_bool set_maximum_value)
+{
+ int err= 0;
+
+ if (opts->value && argument)
+ {
+ gptr *result_pos= (set_maximum_value) ?
+ opts->u_max_value : opts->value;
+
+ if (!result_pos)
+ return EXIT_NO_PTR_TO_VARIABLE;
+
+ switch (opts->var_type) {
+ case GET_INT:
+ case GET_UINT: /* fall through */
+ *((int*) result_pos)= (int) getopt_ll(argument, opts, &err);
+ break;
+ case GET_LONG:
+ case GET_ULONG: /* fall through */
+ *((long*) result_pos)= (long) getopt_ll(argument, opts, &err);
+ break;
+ case GET_LL:
+ *((longlong*) result_pos)= getopt_ll(argument, opts, &err);
+ break;
+ case GET_ULL:
+ *((ulonglong*) result_pos)= getopt_ull(argument, opts, &err);
+ break;
+ case GET_STR:
+ *((char**) result_pos)= argument;
+ break;
+ case GET_STR_ALLOC:
+ if ((*((char**) result_pos)))
+ my_free((*(char**) result_pos),
+ MYF(MY_WME | MY_FAE));
+ if (!(*((char**) result_pos)= my_strdup(argument, MYF(MY_WME))))
+ return EXIT_OUT_OF_MEMORY;
+ break;
+ default: /* dummy default to avoid compiler warnings */
+ break;
+ }
+ if (err)
+ return EXIT_UNKNOWN_SUFFIX;
+ }
+ return 0;
+}
/*
function: findopt
@@ -436,25 +512,20 @@ static my_bool compare_strings(register const char *s, register const char *t,
return 0;
}
+/*
+ function: eval_num_suffix
-/*
- function: getopt_ll
-
- Evaluates and returns the value that user gave as an argument
- to a variable. Recognizes (case insensitive) K as KILO, M as MEGA
- and G as GIGA bytes. Some values must be in certain blocks, as
- defined in the given my_option struct, this function will check
- that those values are honored.
- In case of an error, set error value in *err.
+ Transforms a number with a suffix to real number. Suffix can
+ be k|K for kilo, m|M for mega or g|G for giga.
*/
-static longlong getopt_ll (char *arg, const struct my_option *optp, int *err)
+static longlong eval_num_suffix (char *argument, int *error, char *option_name)
{
char *endchar;
longlong num;
- *err= 0;
- num= strtoll(arg, &endchar, 10);
+ *error= 0;
+ num= strtoll(argument, &endchar, 10);
if (*endchar == 'k' || *endchar == 'K')
num*= 1024L;
else if (*endchar == 'm' || *endchar == 'M')
@@ -465,9 +536,29 @@ static longlong getopt_ll (char *arg, const struct my_option *optp, int *err)
{
fprintf(stderr,
"Unknown suffix '%c' used for variable '%s' (value '%s')\n",
- *endchar, optp->name, arg);
- *err= 1;
+ *endchar, option_name, argument);
+ *error= 1;
+ return 0;
}
+ return num;
+}
+
+/*
+ function: getopt_ll
+
+ Evaluates and returns the value that user gave as an argument
+ to a variable. Recognizes (case insensitive) K as KILO, M as MEGA
+ and G as GIGA bytes. Some values must be in certain blocks, as
+ defined in the given my_option struct, this function will check
+ that those values are honored.
+ In case of an error, set error value in *err.
+*/
+
+static longlong getopt_ll (char *arg, const struct my_option *optp, int *err)
+{
+ longlong num;
+
+ num= eval_num_suffix(arg, err, (char*) optp->name);
if (num < (longlong) optp->min_value)
num= (longlong) optp->min_value;
else if (num > 0 && (ulonglong) num > (ulonglong) (ulong) optp->max_value
@@ -480,6 +571,29 @@ static longlong getopt_ll (char *arg, const struct my_option *optp, int *err)
1L));
}
+/*
+ function: getopt_ull
+
+ This is the same as getopt_ll, but is meant for unsigned long long
+ values.
+*/
+
+static ulonglong getopt_ull (char *arg, const struct my_option *optp, int *err)
+{
+ ulonglong num;
+
+ num= eval_num_suffix(arg, err, (char*) optp->name);
+ if (num < (ulonglong) optp->min_value)
+ num= (ulonglong) optp->min_value;
+ else if (num > 0 && (ulonglong) num > (ulonglong) (ulong) optp->max_value
+ && optp->max_value) // if max value is not set -> no upper limit
+ num= (ulonglong) (ulong) optp->max_value;
+ num= ((num - (ulonglong) optp->sub_size) / (optp->block_size ?
+ (ulonglong) optp->block_size :
+ 1L));
+ return (ulonglong) (num * (optp->block_size ? (ulonglong) optp->block_size :
+ 1L));
+}
/*
function: init_variables
@@ -493,12 +607,38 @@ static void init_variables(const struct my_option *options)
{
if (options->value)
{
- if (options->var_type == GET_LONG)
+ switch (options->var_type) {
+ case GET_BOOL:
+ *((my_bool*) options->u_max_value)= *((my_bool*) options->value)=
+ (my_bool) options->def_value;
+ break;
+ case GET_INT:
+ *((int*) options->u_max_value)= *((int*) options->value)=
+ (int) options->def_value;
+ break;
+ case GET_UINT:
+ *((uint*) options->u_max_value)= *((uint*) options->value)=
+ (uint) options->def_value;
+ break;
+ case GET_LONG:
*((long*) options->u_max_value)= *((long*) options->value)=
(long) options->def_value;
- else if (options->var_type == GET_LL)
+ break;
+ case GET_ULONG:
+ *((ulong*) options->u_max_value)= *((ulong*) options->value)=
+ (ulong) options->def_value;
+ break;
+ case GET_LL:
*((longlong*) options->u_max_value)= *((longlong*) options->value)=
- options->def_value;
+ (longlong) options->def_value;
+ break;
+ case GET_ULL:
+ *((ulonglong*) options->u_max_value)= *((ulonglong*) options->value)=
+ (ulonglong) options->def_value;
+ break;
+ default: /* dummy default to avoid compiler warnings */
+ break;
+ }
}
}
}
@@ -520,7 +660,7 @@ void my_print_help(const struct my_option *options)
{
if (optp->id < 256)
{
- printf(" -%c, ", optp->id);
+ printf(" -%c%s", optp->id, strlen(optp->name) ? ", " : " ");
col= 6;
}
else
@@ -528,29 +668,32 @@ void my_print_help(const struct my_option *options)
printf(" ");
col= 2;
}
- printf("--%s", optp->name);
- col+= 2 + strlen(optp->name);
- if (optp->var_type == GET_STR)
- {
- printf("%s=name%s ", optp->arg_type == OPT_ARG ? "[" : "",
- optp->arg_type == OPT_ARG ? "]" : "");
- col+= (optp->arg_type == OPT_ARG) ? 8 : 6;
- }
- else if (optp->var_type == GET_NO_ARG || optp->var_type == GET_BOOL)
- {
- putchar(' ');
- col++;
- }
- else
- {
- printf("%s=#%s ", optp->arg_type == OPT_ARG ? "[" : "",
- optp->arg_type == OPT_ARG ? "]" : "");
- col+= (optp->arg_type == OPT_ARG) ? 5 : 3;
- }
- if (col > name_space)
+ if (strlen(optp->name))
{
- putchar('\n');
- col= 0;
+ printf("--%s", optp->name);
+ col+= 2 + strlen(optp->name);
+ if (optp->var_type == GET_STR || optp->var_type == GET_STR_ALLOC)
+ {
+ printf("%s=name%s ", optp->arg_type == OPT_ARG ? "[" : "",
+ optp->arg_type == OPT_ARG ? "]" : "");
+ col+= (optp->arg_type == OPT_ARG) ? 8 : 6;
+ }
+ else if (optp->var_type == GET_NO_ARG || optp->var_type == GET_BOOL)
+ {
+ putchar(' ');
+ col++;
+ }
+ else
+ {
+ printf("%s=#%s ", optp->arg_type == OPT_ARG ? "[" : "",
+ optp->arg_type == OPT_ARG ? "]" : "");
+ col+= (optp->arg_type == OPT_ARG) ? 5 : 3;
+ }
+ if (col > name_space && optp->comment && *optp->comment)
+ {
+ putchar('\n');
+ col= 0;
+ }
}
for (; col < name_space; col++)
putchar(' ');
@@ -587,36 +730,47 @@ void my_print_variables(const struct my_option *options)
char buff[255];
const struct my_option *optp;
- printf("Variables (--variable-name=value) Default value\n");
- printf("--------------------------------- -------------\n");
+ printf("\nVariables (--variable-name=value)\n");
+ printf("and boolean options {FALSE|TRUE} Value (after reading options)\n");
+ printf("--------------------------------- -----------------------------\n");
for (optp= options; optp->id; optp++)
{
- if (optp->value && optp->var_type != GET_BOOL)
+ if (optp->value)
{
printf("%s", optp->name);
length= strlen(optp->name);
for (; length < name_space; length++)
putchar(' ');
- if (optp->var_type == GET_STR)
- {
- if (*((char**) optp->value))
- printf("%s\n", *((char**) optp->value));
- else
- printf("(No default value)\n");
- }
- else if (optp->var_type == GET_LONG)
- {
- if (!optp->def_value && !*((long*) optp->value))
- printf("(No default value)\n");
- else
- printf("%lu\n", *((long*) optp->value));
- }
- else
- {
- if (!optp->def_value && !*((longlong*) optp->value))
- printf("(No default value)\n");
- else
- printf("%s\n", llstr(*((longlong*) optp->value), buff));
+ switch (optp->var_type) {
+ case GET_STR:
+ case GET_STR_ALLOC: /* fall through */
+ printf("%s\n", *((char**) optp->value) ? *((char**) optp->value) :
+ "(No default value)");
+ break;
+ case GET_BOOL:
+ printf("%s\n", *((my_bool*) optp->value) ? "TRUE" : "FALSE");
+ break;
+ case GET_INT:
+ printf("%d\n", *((int*) optp->value));
+ break;
+ case GET_UINT:
+ printf("%d\n", *((uint*) optp->value));
+ break;
+ case GET_LONG:
+ printf("%lu\n", *((long*) optp->value));
+ break;
+ case GET_ULONG:
+ printf("%lu\n", *((ulong*) optp->value));
+ break;
+ case GET_LL:
+ printf("%s\n", llstr(*((longlong*) optp->value), buff));
+ break;
+ case GET_ULL:
+ longlong2str(*((ulonglong*) optp->value), buff, 10);
+ printf("%s\n", buff);
+ break;
+ default: /* dummy default to avoid compiler warnings */
+ break;
}
}
}
diff --git a/mysys/my_pthread.c b/mysys/my_pthread.c
index 37c18a32451..e1345b96627 100644
--- a/mysys/my_pthread.c
+++ b/mysys/my_pthread.c
@@ -23,9 +23,6 @@
#include <m_string.h>
#include <thr_alarm.h>
#include <assert.h>
-#if !defined(MSDOS) && !defined(__WIN__)
-#include <netdb.h>
-#endif
#if (defined(__BSD__) || defined(_BSDI_VERSION)) && !defined(HAVE_mit_thread)
#define SCHED_POLICY SCHED_RR
@@ -410,56 +407,6 @@ int my_pthread_cond_init(pthread_cond_t *mp, const pthread_condattr_t *attr)
#endif
-/*
-** Emulate SOLARIS style calls, not because it's better, but just to make the
-** usage of getbostbyname_r simpler.
-*/
-
-#if !defined(my_gethostbyname_r) && defined(HAVE_GETHOSTBYNAME_R)
-
-#if defined(HAVE_GETHOSTBYNAME_R_GLIBC2_STYLE)
-
-struct hostent *my_gethostbyname_r(const char *name,
- struct hostent *result, char *buffer,
- int buflen, int *h_errnop)
-{
- struct hostent *hp;
- DBUG_ASSERT((size_t) buflen >= sizeof(*result));
- if (gethostbyname_r(name,result, buffer, (size_t) buflen, &hp, h_errnop))
- return 0;
- return hp;
-}
-
-#elif defined(HAVE_GETHOSTBYNAME_R_RETURN_INT)
-
-struct hostent *my_gethostbyname_r(const char *name,
- struct hostent *result, char *buffer,
- int buflen, int *h_errnop)
-{
- DBUG_ASSERT(buflen >= sizeof(struct hostent_data));
- if (gethostbyname_r(name,result,(struct hostent_data *) buffer) == -1)
- {
- *h_errnop= errno;
- return 0;
- }
- return result;
-}
-
-#else
-
-struct hostent *my_gethostbyname_r(const char *name,
- struct hostent *result, char *buffer,
- int buflen, int *h_errnop)
-{
- struct hostent *hp;
- DBUG_ASSERT(buflen >= sizeof(struct hostent_data));
- hp= gethostbyname_r(name,result,(struct hostent_data *) buffer);
- *h_errnop= errno;
- return hp;
-}
-
-#endif /* GLIBC2_STYLE_GETHOSTBYNAME_R */
-#endif
/*****************************************************************************
Patches for HPUX
@@ -469,9 +416,10 @@ struct hostent *my_gethostbyname_r(const char *name,
Note that currently we only remap pthread_ functions used by MySQL.
If we are depending on the value for some other pthread_xxx functions,
this has to be added here.
-*****************************************************************************/
+****************************************************************************/
-#ifdef HPUX
+#if defined(HPUX) || defined(HAVE_BROKEN_PTHREAD_COND_TIMEDWAIT)
+#undef pthread_cond_timedwait
int my_pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t *mutex,
struct timespec *abstime)
@@ -483,8 +431,10 @@ int my_pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t *mutex,
error=ETIMEDOUT;
return error;
}
+#endif
+#ifdef HPUX
int my_pthread_mutex_trylock(pthread_mutex_t *mutex)
{
int error=pthread_mutex_trylock(mutex);
diff --git a/mysys/my_thr_init.c b/mysys/my_thr_init.c
index 5b137df20f8..f62b8d5cb1a 100644
--- a/mysys/my_thr_init.c
+++ b/mysys/my_thr_init.c
@@ -34,6 +34,9 @@ pthread_mutex_t THR_LOCK_malloc,THR_LOCK_open,THR_LOCK_keycache,
#ifndef HAVE_LOCALTIME_R
pthread_mutex_t LOCK_localtime_r;
#endif
+#ifndef HAVE_GETHOSTBYNAME_R
+pthread_mutex_t LOCK_gethostbyname_r;
+#endif
#ifdef PTHREAD_ADAPTIVE_MUTEX_INITIALIZER_NP
pthread_mutexattr_t my_fast_mutexattr;
#endif
@@ -77,6 +80,9 @@ my_bool my_thread_global_init(void)
#ifndef HAVE_LOCALTIME_R
pthread_mutex_init(&LOCK_localtime_r,MY_MUTEX_INIT_SLOW);
#endif
+#ifndef HAVE_GETHOSTBYNAME_R
+ pthread_mutex_init(&LOCK_gethostbyname_r,MY_MUTEX_INIT_SLOW);
+#endif
return my_thread_init();
}
@@ -91,6 +97,9 @@ void my_thread_global_end(void)
#ifdef PPTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP
pthread_mutexattr_destroy(&my_errchk_mutexattr);
#endif
+#ifndef HAVE_GETHOSTBYNAME_R
+ pthread_mutex_destroy(&LOCK_gethostbyname_r);
+#endif
}
static long thread_id=0;
@@ -105,7 +114,9 @@ static long thread_id=0;
my_bool my_thread_init(void)
{
struct st_my_thread_var *tmp;
-#ifdef EXTRA_DEBUG
+ my_bool error=0;
+
+#ifdef EXTRA_DEBUG_THREADS
fprintf(stderr,"my_thread_init(): thread_id=%ld\n",pthread_self());
#endif
#if !defined(__WIN__) || defined(USE_TLS) || ! defined(SAFE_MUTEX)
@@ -117,16 +128,14 @@ my_bool my_thread_init(void)
{
#ifdef EXTRA_DEBUG
fprintf(stderr,"my_thread_init() called more than once in thread %ld\n",
- pthread_self());
+ pthread_self());
#endif
- pthread_mutex_unlock(&THR_LOCK_lock);
- return 0; /* Safequard */
+ goto end;
}
- if (!(tmp=(struct st_my_thread_var *)
- calloc(1, sizeof(struct st_my_thread_var))))
+ if (!(tmp= (struct st_my_thread_var *) calloc(1, sizeof(*tmp))))
{
- pthread_mutex_unlock(&THR_LOCK_lock);
- return 1;
+ error= 1;
+ goto end;
}
pthread_setspecific(THR_KEY_mysys,tmp);
@@ -146,13 +155,13 @@ end:
#if !defined(__WIN__) || defined(USE_TLS) || ! defined(SAFE_MUTEX)
pthread_mutex_unlock(&THR_LOCK_lock);
#endif
- return 0;
+ return error;
}
void my_thread_end(void)
{
struct st_my_thread_var *tmp=my_thread_var;
-#ifdef EXTRA_DEBUG
+#ifdef EXTRA_DEBUG_THREADS
fprintf(stderr,"my_thread_end(): tmp=%p,thread_id=%ld\n",
tmp,pthread_self());
#endif
diff --git a/mysys/raid.cc b/mysys/raid.cc
index 72d3b2074be..6196e1f1aa6 100644
--- a/mysys/raid.cc
+++ b/mysys/raid.cc
@@ -94,7 +94,7 @@ extern "C" {
void init_raid(void)
{
/* Allocate memory for global file to raid map */
- init_dynamic_array(&RaidFd::_raid_map, sizeof(RaidFd*), 4096, 1024);
+ my_init_dynamic_array(&RaidFd::_raid_map, sizeof(RaidFd*), 4096, 1024);
}
void end_raid(void)
{
diff --git a/mysys/raid2.c b/mysys/raid2.c
new file mode 100644
index 00000000000..94b085b0074
--- /dev/null
+++ b/mysys/raid2.c
@@ -0,0 +1,31 @@
+/* Copyright (C) 2002 MySQL AB
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ MA 02111-1307, USA */
+
+/*
+ RAID support for MySQL. For full comments, check raid.cc
+ This is in a separate file to not cause problems on OS that can't
+ put C++ files in archives.
+*/
+
+#include "mysys_priv.h"
+
+const char *raid_type_string[]={"none","striped"};
+
+const char *my_raid_type(int raid_type)
+{
+ return raid_type_string[raid_type];
+}
diff --git a/mysys/testhash.c b/mysys/testhash.c
index 461f1d8be5e..a1d14dc225d 100644
--- a/mysys/testhash.c
+++ b/mysys/testhash.c
@@ -14,7 +14,7 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
-/* Test av hash libarary: stor test */
+/* Test of hash library: big test */
#include <my_global.h>
#include <my_sys.h>
@@ -36,6 +36,7 @@ static uint16 key1[1000];
#else
my_bool hash_check(HASH *hash);
#endif
+
void free_record(void *record);
static byte *hash2_key(const byte *rec,uint *length,
@@ -45,7 +46,7 @@ static byte *hash2_key(const byte *rec,uint *length,
return (byte*) rec;
}
- /* Huvudprogrammet */
+/* main program */
int main(int argc,char *argv[])
{
@@ -75,7 +76,7 @@ static int do_test()
printf("- Creating hash\n");
if (hash_init(&hash,recant/2,0,6,0,free_record,0))
goto err;
- printf("- Writing records:s\n");
+ printf("- Writing records:\n");
for (i=0 ; i < recant ; i++)
{
@@ -242,8 +243,8 @@ err:
} /* main */
- /* l{ser optioner */
- /* OBS! intierar endast DEBUG - ingen debuggning h{r ! */
+/* read options */
+/* NOTE! DBUG not initialised - no debugging here! */
static int get_options(int argc, char **argv)
{
@@ -264,7 +265,7 @@ static int get_options(int argc, char **argv)
case 'I':
case '?':
printf("%s Ver 1.0 for %s at %s\n",progname,SYSTEM_TYPE,MACHINE_TYPE);
- puts("TCX Datakonsult AB, by Monty, for your professional use\n");
+ printf("MySQL AB, by Monty\n\n");
printf("Usage: %s [-?ABIKLWv] [-m#] [-t#]\n",progname);
exit(0);
case '#':
@@ -274,9 +275,10 @@ static int get_options(int argc, char **argv)
}
}
return 0;
-} /* get options */
+} /* get_options */
+
- /* Ge ett randomv{rde inom ett intervall 0 <=x <= n */
+/* Get a random number in the interval 0 <= x <= n */
static int rnd(int max_value)
{
diff --git a/os2/Makefile.am b/os2/Makefile.am
new file mode 100644
index 00000000000..7e626e45cf8
--- /dev/null
+++ b/os2/Makefile.am
@@ -0,0 +1,29 @@
+# Copyright (C) 2002 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+## Process this file with automake to create Makefile.in
+
+EXTRA_DIST = BldLevel.cmd BldLevel.rc BldLevelInf.cmd ChangeLog.os2 \
+ MySQL-All.icc MySQL-Client.icc MySQL-Client.irs \
+ MySQL-Lib.icc MySQL-Opt.icc MySQL-ReadLine.icc \
+ MySQL-Source.icc MySQL-Sql.icc MySQL-Util.icc MySQL-Util.irs \
+ MySQL-binlog.icc MySQL-binlog.irs MySQL-sql.irs ReadMe.txt \
+ build-all.cmd build-all.log mysql-inf.wis mysql.base \
+ mysql.ih mysql.wis mysqlalt.wis readme.os2 rint.cmd rint.obj \
+ rint.s
+
+# Don't update the files from bitkeeper
+%::SCCS/s.%
diff --git a/sql-bench/Results/ATIS-mysql-Linux_2.4.16_64GB_SMP_i686 b/sql-bench/Results/ATIS-mysql-Linux_2.4.16_64GB_SMP_i686
new file mode 100644
index 00000000000..2b0610da26f
--- /dev/null
+++ b/sql-bench/Results/ATIS-mysql-Linux_2.4.16_64GB_SMP_i686
@@ -0,0 +1,20 @@
+Testing server 'MySQL 4.0.2 alpha' at 2002-05-20 15:34:53
+
+ATIS table test
+
+Creating tables
+Time for create_table (28): 0 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+
+Inserting data
+Time to insert (9768): 2 wallclock secs ( 0.44 usr 0.21 sys + 0.00 cusr 0.00 csys = 0.65 CPU)
+
+Retrieving data
+Time for select_simple_join (500): 2 wallclock secs ( 0.60 usr 0.19 sys + 0.00 cusr 0.00 csys = 0.79 CPU)
+Time for select_join (100): 1 wallclock secs ( 0.46 usr 0.14 sys + 0.00 cusr 0.00 csys = 0.60 CPU)
+Time for select_key_prefix_join (100): 10 wallclock secs ( 3.98 usr 1.52 sys + 0.00 cusr 0.00 csys = 5.50 CPU)
+Time for select_distinct (800): 9 wallclock secs ( 1.59 usr 0.55 sys + 0.00 cusr 0.00 csys = 2.14 CPU)
+Time for select_group (2800): 9 wallclock secs ( 1.34 usr 0.28 sys + 0.00 cusr 0.00 csys = 1.62 CPU)
+
+Removing tables
+Time to drop_table (28): 0 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+Total time: 33 wallclock secs ( 8.41 usr 2.89 sys + 0.00 cusr 0.00 csys = 11.30 CPU)
diff --git a/sql-bench/Results/RUN-mysql-Linux_2.4.16_64GB_SMP_i686 b/sql-bench/Results/RUN-mysql-Linux_2.4.16_64GB_SMP_i686
new file mode 100644
index 00000000000..6885ceddcf1
--- /dev/null
+++ b/sql-bench/Results/RUN-mysql-Linux_2.4.16_64GB_SMP_i686
@@ -0,0 +1,109 @@
+Benchmark DBD suite: 2.14
+Date of test: 2002-05-20 17:48:45
+Running tests on: Linux 2.4.16-64GB-SMP i686
+Arguments:
+Comments: Intel Xeon 2M cache, 4x700 Mhz, 2G, key_buffer=16M, gcc 3.1
+Limits from:
+Server version: MySQL 4.0.2 alpha
+Optimization: None
+Hardware:
+
+alter-table: Total time: 241 wallclock secs ( 0.17 usr 0.07 sys + 0.00 cusr 0.00 csys = 0.24 CPU)
+ATIS: Total time: 33 wallclock secs ( 8.41 usr 2.89 sys + 0.00 cusr 0.00 csys = 11.30 CPU)
+big-tables: Total time: 27 wallclock secs ( 9.38 usr 5.17 sys + 0.00 cusr 0.00 csys = 14.55 CPU)
+connect: Total time: 156 wallclock secs (71.06 usr 31.02 sys + 0.00 cusr 0.00 csys = 102.08 CPU)
+create: Total time: 90 wallclock secs ( 5.77 usr 1.91 sys + 0.00 cusr 0.00 csys = 7.68 CPU)
+insert: Total time: 1730 wallclock secs (523.67 usr 128.19 sys + 0.00 cusr 0.00 csys = 651.86 CPU)
+select: Total time: 1106 wallclock secs (52.54 usr 11.75 sys + 0.00 cusr 0.00 csys = 64.29 CPU)
+transactions: Test skipped because the database doesn't support transactions
+wisconsin: Total time: 12 wallclock secs ( 3.07 usr 1.20 sys + 0.00 cusr 0.00 csys = 4.27 CPU)
+
+All 9 test executed successfully
+
+Totals per operation:
+Operation seconds usr sys cpu tests
+alter_table_add 134.00 0.12 0.03 0.15 992
+alter_table_drop 102.00 0.04 0.02 0.06 496
+connect 7.00 4.50 1.62 6.12 10000
+connect+select_1_row 10.00 5.09 2.31 7.40 10000
+connect+select_simple 9.00 5.19 2.02 7.21 10000
+count 33.00 0.04 0.00 0.04 100
+count_distinct 34.00 0.24 0.05 0.29 1000
+count_distinct_2 38.00 0.25 0.07 0.32 1000
+count_distinct_big 50.00 7.15 2.75 9.90 120
+count_distinct_group 47.00 1.00 0.27 1.27 1000
+count_distinct_group_on_key 43.00 0.26 0.05 0.31 1000
+count_distinct_group_on_key_parts 47.00 0.98 0.29 1.27 1000
+count_distinct_key_prefix 28.00 0.29 0.03 0.32 1000
+count_group_on_key_parts 43.00 0.96 0.31 1.27 1000
+count_on_key 416.00 11.73 1.70 13.43 50100
+create+drop 17.00 1.49 0.50 1.99 10000
+create_MANY_tables 25.00 1.12 0.28 1.40 10000
+create_index 3.00 0.00 0.00 0.00 8
+create_key+drop 23.00 1.84 0.62 2.46 10000
+create_table 0.00 0.00 0.00 0.00 31
+delete_all_many_keys 51.00 0.02 0.00 0.02 1
+delete_big 0.00 0.00 0.00 0.00 1
+delete_big_many_keys 51.00 0.02 0.00 0.02 128
+delete_key 2.00 0.39 0.26 0.65 10000
+delete_range 11.00 0.01 0.00 0.01 12
+drop_index 2.00 0.00 0.00 0.00 8
+drop_table 0.00 0.00 0.00 0.00 28
+drop_table_when_MANY_tables 11.00 0.34 0.17 0.51 10000
+insert 78.00 14.11 7.05 21.16 350768
+insert_duplicates 16.00 2.42 2.15 4.57 100000
+insert_key 86.00 7.22 2.27 9.49 100000
+insert_many_fields 7.00 0.19 0.07 0.26 2000
+insert_select_1_key 5.00 0.00 0.00 0.00 1
+insert_select_2_keys 6.00 0.00 0.00 0.00 1
+min_max 23.00 0.02 0.00 0.02 60
+min_max_on_key 159.00 19.21 2.78 21.99 85000
+multiple_value_insert 5.00 1.29 0.00 1.29 100000
+order_by_big 40.00 21.73 8.15 29.88 10
+order_by_big_key 33.00 23.12 7.93 31.05 10
+order_by_big_key2 31.00 21.98 7.84 29.82 10
+order_by_big_key_desc 32.00 23.13 8.16 31.29 10
+order_by_big_key_diff 39.00 22.07 7.71 29.78 10
+order_by_big_key_prefix 31.00 21.76 8.21 29.97 10
+order_by_key2_diff 4.00 2.00 0.58 2.58 500
+order_by_key_prefix 3.00 0.98 0.34 1.32 500
+order_by_range 3.00 0.81 0.41 1.22 500
+outer_join 48.00 0.01 0.00 0.01 10
+outer_join_found 46.00 0.01 0.00 0.01 10
+outer_join_not_found 31.00 0.00 0.00 0.00 500
+outer_join_on_key 40.00 0.00 0.00 0.00 10
+select_1_row 22.00 9.63 4.42 14.05 100000
+select_1_row_cache 19.00 6.75 3.55 10.30 100000
+select_2_rows 24.00 9.99 4.11 14.10 100000
+select_big 31.00 21.97 8.10 30.07 80
+select_big_str 13.00 5.10 3.32 8.42 10000
+select_cache 88.00 2.21 0.38 2.59 10000
+select_cache2 89.00 2.49 0.39 2.88 10000
+select_column+column 23.00 8.62 3.65 12.27 100000
+select_diff_key 138.00 0.12 0.02 0.14 500
+select_distinct 9.00 1.59 0.55 2.14 800
+select_group 51.00 1.40 0.29 1.69 2911
+select_group_when_MANY_tables 14.00 0.98 0.34 1.32 10000
+select_join 1.00 0.46 0.14 0.60 100
+select_key 82.00 51.17 8.13 59.30 200000
+select_key2 86.00 50.00 7.89 57.89 200000
+select_key2_return_key 81.00 48.57 6.51 55.08 200000
+select_key2_return_prim 83.00 49.27 7.43 56.70 200000
+select_key_prefix 87.00 51.79 8.42 60.21 200000
+select_key_prefix_join 10.00 3.98 1.52 5.50 100
+select_key_return_key 79.00 48.93 7.01 55.94 200000
+select_many_fields 19.00 9.18 5.10 14.28 2000
+select_range 103.00 8.73 2.95 11.68 410
+select_range_key2 12.00 4.65 0.92 5.57 25010
+select_range_prefix 13.00 5.01 0.99 6.00 25010
+select_simple 15.00 8.15 2.84 10.99 100000
+select_simple_cache 14.00 8.03 3.18 11.21 100000
+select_simple_join 2.00 0.60 0.19 0.79 500
+update_big 44.00 0.00 0.00 0.00 10
+update_of_key 14.00 1.80 0.94 2.74 50000
+update_of_key_big 20.00 0.01 0.01 0.02 501
+update_of_primary_key_many_keys 25.00 0.01 0.00 0.01 256
+update_with_key 60.00 9.66 6.21 15.87 300000
+update_with_key_prefix 21.00 6.04 1.98 8.02 100000
+wisc_benchmark 4.00 2.17 0.52 2.69 114
+TOTALS 3399.00 664.19 179.00 843.19 3227247
diff --git a/sql-bench/Results/alter-table-mysql-Linux_2.4.16_64GB_SMP_i686 b/sql-bench/Results/alter-table-mysql-Linux_2.4.16_64GB_SMP_i686
new file mode 100644
index 00000000000..f0deae1c1c4
--- /dev/null
+++ b/sql-bench/Results/alter-table-mysql-Linux_2.4.16_64GB_SMP_i686
@@ -0,0 +1,16 @@
+Testing server 'MySQL 4.0.2 alpha' at 2002-05-20 15:30:52
+
+Testing of ALTER TABLE
+Testing with 1000 columns and 1000 rows in 20 steps
+Insert data into the table
+Time for insert (1000) 0 wallclock secs ( 0.01 usr 0.02 sys + 0.00 cusr 0.00 csys = 0.03 CPU)
+
+Time for alter_table_add (992): 134 wallclock secs ( 0.12 usr 0.03 sys + 0.00 cusr 0.00 csys = 0.15 CPU)
+
+Time for create_index (8): 3 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+
+Time for drop_index (8): 2 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+
+Time for alter_table_drop (496): 102 wallclock secs ( 0.04 usr 0.02 sys + 0.00 cusr 0.00 csys = 0.06 CPU)
+
+Total time: 241 wallclock secs ( 0.17 usr 0.07 sys + 0.00 cusr 0.00 csys = 0.24 CPU)
diff --git a/sql-bench/Results/big-tables-mysql-Linux_2.4.16_64GB_SMP_i686 b/sql-bench/Results/big-tables-mysql-Linux_2.4.16_64GB_SMP_i686
new file mode 100644
index 00000000000..afc03860f18
--- /dev/null
+++ b/sql-bench/Results/big-tables-mysql-Linux_2.4.16_64GB_SMP_i686
@@ -0,0 +1,19 @@
+Testing server 'MySQL 4.0.2 alpha' at 2002-05-20 15:35:26
+
+Testing of some unusual tables
+All tests are done 1000 times with 1000 fields
+
+Testing table with 1000 fields
+Testing select * from table with 1 record
+Time to select_many_fields(1000): 8 wallclock secs ( 4.72 usr 2.37 sys + 0.00 cusr 0.00 csys = 7.09 CPU)
+
+Testing select all_fields from table with 1 record
+Time to select_many_fields(1000): 11 wallclock secs ( 4.46 usr 2.73 sys + 0.00 cusr 0.00 csys = 7.19 CPU)
+
+Testing insert VALUES()
+Time to insert_many_fields(1000): 2 wallclock secs ( 0.15 usr 0.05 sys + 0.00 cusr 0.00 csys = 0.20 CPU)
+
+Testing insert (all_fields) VALUES()
+Time to insert_many_fields(1000): 5 wallclock secs ( 0.04 usr 0.02 sys + 0.00 cusr 0.00 csys = 0.06 CPU)
+
+Total time: 27 wallclock secs ( 9.38 usr 5.17 sys + 0.00 cusr 0.00 csys = 14.55 CPU)
diff --git a/sql-bench/Results/connect-mysql-Linux_2.4.16_64GB_SMP_i686 b/sql-bench/Results/connect-mysql-Linux_2.4.16_64GB_SMP_i686
new file mode 100644
index 00000000000..d2a4f2eb3b6
--- /dev/null
+++ b/sql-bench/Results/connect-mysql-Linux_2.4.16_64GB_SMP_i686
@@ -0,0 +1,35 @@
+Testing server 'MySQL 4.0.2 alpha' at 2002-05-20 15:35:53
+
+Testing the speed of connecting to the server and sending of data
+Connect tests are done 10000 times and other tests 100000 times
+
+Testing connection/disconnect
+Time to connect (10000): 7 wallclock secs ( 4.50 usr 1.62 sys + 0.00 cusr 0.00 csys = 6.12 CPU)
+
+Test connect/simple select/disconnect
+Time for connect+select_simple (10000): 9 wallclock secs ( 5.19 usr 2.02 sys + 0.00 cusr 0.00 csys = 7.21 CPU)
+
+Test simple select
+Time for select_simple (100000): 15 wallclock secs ( 8.15 usr 2.84 sys + 0.00 cusr 0.00 csys = 10.99 CPU)
+
+Test simple select
+Time for select_simple_cache (100000): 14 wallclock secs ( 8.03 usr 3.18 sys + 0.00 cusr 0.00 csys = 11.21 CPU)
+
+Testing connect/select 1 row from table/disconnect
+Time to connect+select_1_row (10000): 10 wallclock secs ( 5.09 usr 2.31 sys + 0.00 cusr 0.00 csys = 7.40 CPU)
+
+Testing select 1 row from table
+Time to select_1_row (100000): 22 wallclock secs ( 9.63 usr 4.42 sys + 0.00 cusr 0.00 csys = 14.05 CPU)
+
+Time to select_1_row_cache (100000): 19 wallclock secs ( 6.75 usr 3.55 sys + 0.00 cusr 0.00 csys = 10.30 CPU)
+
+Testing select 2 rows from table
+Time to select_2_rows (100000): 24 wallclock secs ( 9.99 usr 4.11 sys + 0.00 cusr 0.00 csys = 14.10 CPU)
+
+Test select with aritmetic (+)
+Time for select_column+column (100000): 23 wallclock secs ( 8.62 usr 3.65 sys + 0.00 cusr 0.00 csys = 12.27 CPU)
+
+Testing retrieval of big records (65000 bytes)
+Time to select_big_str (10000): 13 wallclock secs ( 5.10 usr 3.32 sys + 0.00 cusr 0.00 csys = 8.42 CPU)
+
+Total time: 156 wallclock secs (71.06 usr 31.02 sys + 0.00 cusr 0.00 csys = 102.08 CPU)
diff --git a/sql-bench/Results/create-mysql-Linux_2.4.16_64GB_SMP_i686 b/sql-bench/Results/create-mysql-Linux_2.4.16_64GB_SMP_i686
new file mode 100644
index 00000000000..864a4adb7e6
--- /dev/null
+++ b/sql-bench/Results/create-mysql-Linux_2.4.16_64GB_SMP_i686
@@ -0,0 +1,18 @@
+Testing server 'MySQL 4.0.2 alpha' at 2002-05-20 15:38:29
+
+Testing the speed of creating and droping tables
+Testing with 10000 tables and 10000 loop count
+
+Testing create of tables
+Time for create_MANY_tables (10000): 25 wallclock secs ( 1.12 usr 0.28 sys + 0.00 cusr 0.00 csys = 1.40 CPU)
+
+Accessing tables
+Time to select_group_when_MANY_tables (10000): 14 wallclock secs ( 0.98 usr 0.34 sys + 0.00 cusr 0.00 csys = 1.32 CPU)
+
+Testing drop
+Time for drop_table_when_MANY_tables (10000): 11 wallclock secs ( 0.34 usr 0.17 sys + 0.00 cusr 0.00 csys = 0.51 CPU)
+
+Testing create+drop
+Time for create+drop (10000): 17 wallclock secs ( 1.49 usr 0.50 sys + 0.00 cusr 0.00 csys = 1.99 CPU)
+Time for create_key+drop (10000): 23 wallclock secs ( 1.84 usr 0.62 sys + 0.00 cusr 0.00 csys = 2.46 CPU)
+Total time: 90 wallclock secs ( 5.77 usr 1.91 sys + 0.00 cusr 0.00 csys = 7.68 CPU)
diff --git a/sql-bench/Results/insert-mysql-Linux_2.4.16_64GB_SMP_i686 b/sql-bench/Results/insert-mysql-Linux_2.4.16_64GB_SMP_i686
new file mode 100644
index 00000000000..719ed9f11b9
--- /dev/null
+++ b/sql-bench/Results/insert-mysql-Linux_2.4.16_64GB_SMP_i686
@@ -0,0 +1,106 @@
+Testing server 'MySQL 4.0.2 alpha' at 2002-05-20 15:39:59
+
+Testing the speed of inserting data into 1 table and do some selects on it.
+The tests are done with a table that has 100000 rows.
+
+Generating random keys
+Creating tables
+Inserting 100000 rows in order
+Inserting 100000 rows in reverse order
+Inserting 100000 rows in random order
+Time for insert (300000): 65 wallclock secs (12.32 usr 5.91 sys + 0.00 cusr 0.00 csys = 18.23 CPU)
+
+Testing insert of duplicates
+Time for insert_duplicates (100000): 16 wallclock secs ( 2.42 usr 2.15 sys + 0.00 cusr 0.00 csys = 4.57 CPU)
+
+Retrieving data from the table
+Time for select_big (10:3000000): 31 wallclock secs (21.84 usr 8.07 sys + 0.00 cusr 0.00 csys = 29.91 CPU)
+Time for order_by_big_key (10:3000000): 33 wallclock secs (23.12 usr 7.93 sys + 0.00 cusr 0.00 csys = 31.05 CPU)
+Time for order_by_big_key_desc (10:3000000): 32 wallclock secs (23.13 usr 8.16 sys + 0.00 cusr 0.00 csys = 31.29 CPU)
+Time for order_by_big_key_prefix (10:3000000): 31 wallclock secs (21.76 usr 8.21 sys + 0.00 cusr 0.00 csys = 29.97 CPU)
+Time for order_by_big_key2 (10:3000000): 31 wallclock secs (21.98 usr 7.84 sys + 0.00 cusr 0.00 csys = 29.82 CPU)
+Time for order_by_big_key_diff (10:3000000): 39 wallclock secs (22.07 usr 7.71 sys + 0.00 cusr 0.00 csys = 29.78 CPU)
+Time for order_by_big (10:3000000): 40 wallclock secs (21.73 usr 8.15 sys + 0.00 cusr 0.00 csys = 29.88 CPU)
+Time for order_by_range (500:125750): 3 wallclock secs ( 0.81 usr 0.41 sys + 0.00 cusr 0.00 csys = 1.22 CPU)
+Time for order_by_key_prefix (500:125750): 3 wallclock secs ( 0.98 usr 0.34 sys + 0.00 cusr 0.00 csys = 1.32 CPU)
+Time for order_by_key2_diff (500:250500): 4 wallclock secs ( 2.00 usr 0.58 sys + 0.00 cusr 0.00 csys = 2.58 CPU)
+Time for select_diff_key (500:1000): 138 wallclock secs ( 0.12 usr 0.02 sys + 0.00 cusr 0.00 csys = 0.14 CPU)
+Time for select_range_prefix (5010:42084): 7 wallclock secs ( 2.28 usr 0.46 sys + 0.00 cusr 0.00 csys = 2.74 CPU)
+Time for select_range_key2 (5010:42084): 7 wallclock secs ( 2.16 usr 0.40 sys + 0.00 cusr 0.00 csys = 2.56 CPU)
+Time for select_key_prefix (200000): 87 wallclock secs (51.79 usr 8.42 sys + 0.00 cusr 0.00 csys = 60.21 CPU)
+Time for select_key (200000): 82 wallclock secs (51.17 usr 8.13 sys + 0.00 cusr 0.00 csys = 59.30 CPU)
+Time for select_key_return_key (200000): 79 wallclock secs (48.93 usr 7.01 sys + 0.00 cusr 0.00 csys = 55.94 CPU)
+Time for select_key2 (200000): 86 wallclock secs (50.00 usr 7.89 sys + 0.00 cusr 0.00 csys = 57.89 CPU)
+Time for select_key2_return_key (200000): 81 wallclock secs (48.57 usr 6.51 sys + 0.00 cusr 0.00 csys = 55.08 CPU)
+Time for select_key2_return_prim (200000): 83 wallclock secs (49.27 usr 7.43 sys + 0.00 cusr 0.00 csys = 56.70 CPU)
+
+Test of compares with simple ranges
+Time for select_range_prefix (20000:43500): 6 wallclock secs ( 2.73 usr 0.53 sys + 0.00 cusr 0.00 csys = 3.26 CPU)
+Time for select_range_key2 (20000:43500): 5 wallclock secs ( 2.49 usr 0.52 sys + 0.00 cusr 0.00 csys = 3.01 CPU)
+Time for select_group (111): 42 wallclock secs ( 0.06 usr 0.01 sys + 0.00 cusr 0.00 csys = 0.07 CPU)
+Time for min_max_on_key (15000): 6 wallclock secs ( 3.53 usr 0.54 sys + 0.00 cusr 0.00 csys = 4.07 CPU)
+Time for min_max (60): 23 wallclock secs ( 0.02 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.02 CPU)
+Time for count_on_key (100): 38 wallclock secs ( 0.03 usr 0.01 sys + 0.00 cusr 0.00 csys = 0.04 CPU)
+Time for count (100): 33 wallclock secs ( 0.04 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.04 CPU)
+Time for count_distinct_big (20): 38 wallclock secs ( 0.01 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.01 CPU)
+
+Testing update of keys with functions
+Time for update_of_key (50000): 14 wallclock secs ( 1.80 usr 0.94 sys + 0.00 cusr 0.00 csys = 2.74 CPU)
+Time for update_of_key_big (501): 20 wallclock secs ( 0.01 usr 0.01 sys + 0.00 cusr 0.00 csys = 0.02 CPU)
+
+Testing update with key
+Time for update_with_key (300000): 60 wallclock secs ( 9.66 usr 6.21 sys + 0.00 cusr 0.00 csys = 15.87 CPU)
+Time for update_with_key_prefix (100000): 21 wallclock secs ( 6.04 usr 1.98 sys + 0.00 cusr 0.00 csys = 8.02 CPU)
+
+Testing update of all rows
+Time for update_big (10): 44 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+
+Testing left outer join
+Time for outer_join_on_key (10:10): 40 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+Time for outer_join (10:10): 48 wallclock secs ( 0.01 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.01 CPU)
+Time for outer_join_found (10:10): 46 wallclock secs ( 0.01 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.01 CPU)
+Time for outer_join_not_found (500:10): 31 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+
+Testing SELECT ... WHERE id in (10 values)
+Time for select_in (500:5000) 0 wallclock secs ( 0.19 usr 0.03 sys + 0.00 cusr 0.00 csys = 0.22 CPU)
+
+Time for select_join_in (500:5000) 1 wallclock secs ( 0.18 usr 0.02 sys + 0.00 cusr 0.00 csys = 0.20 CPU)
+
+Testing SELECT ... WHERE id in (100 values)
+Time for select_in (500:50000) 3 wallclock secs ( 0.57 usr 0.11 sys + 0.00 cusr 0.00 csys = 0.68 CPU)
+
+Time for select_join_in (500:50000) 1 wallclock secs ( 0.51 usr 0.19 sys + 0.00 cusr 0.00 csys = 0.70 CPU)
+
+Testing SELECT ... WHERE id in (1000 values)
+Time for select_in (500:500000) 26 wallclock secs ( 4.25 usr 1.40 sys + 0.00 cusr 0.00 csys = 5.65 CPU)
+
+Time for select_join_in (500:500000) 14 wallclock secs ( 4.09 usr 1.42 sys + 0.00 cusr 0.00 csys = 5.51 CPU)
+
+
+Testing INSERT INTO ... SELECT
+Time for insert_select_1_key (1): 5 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+Time for insert_select_2_keys (1): 6 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+Time for drop table(2): 0 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+
+Testing delete
+Time for delete_key (10000): 2 wallclock secs ( 0.39 usr 0.26 sys + 0.00 cusr 0.00 csys = 0.65 CPU)
+Time for delete_range (12): 11 wallclock secs ( 0.01 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.01 CPU)
+
+Insert into table with 16 keys and with a primary key with 16 parts
+Time for insert_key (100000): 86 wallclock secs ( 7.22 usr 2.27 sys + 0.00 cusr 0.00 csys = 9.49 CPU)
+
+Testing update of keys
+Time for update_of_primary_key_many_keys (256): 25 wallclock secs ( 0.01 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.01 CPU)
+
+Deleting rows from the table
+Time for delete_big_many_keys (128): 51 wallclock secs ( 0.02 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.02 CPU)
+
+Deleting everything from table
+Time for delete_all_many_keys (1): 51 wallclock secs ( 0.02 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.02 CPU)
+
+Inserting 100000 rows with multiple values
+Time for multiple_value_insert (100000): 5 wallclock secs ( 1.29 usr 0.00 sys + 0.00 cusr 0.00 csys = 1.29 CPU)
+
+Time for drop table(1): 0 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+
+Total time: 1730 wallclock secs (523.67 usr 128.19 sys + 0.00 cusr 0.00 csys = 651.86 CPU)
diff --git a/sql-bench/Results/select-mysql-Linux_2.4.16_64GB_SMP_i686 b/sql-bench/Results/select-mysql-Linux_2.4.16_64GB_SMP_i686
new file mode 100644
index 00000000000..d6943e5711a
--- /dev/null
+++ b/sql-bench/Results/select-mysql-Linux_2.4.16_64GB_SMP_i686
@@ -0,0 +1,30 @@
+Testing server 'MySQL 4.0.2 alpha' at 2002-05-20 16:08:50
+
+Testing the speed of selecting on keys that consist of many parts
+The test-table has 10000 rows and the test is done with 500 ranges.
+
+Creating table
+Inserting 10000 rows
+Time to insert (10000): 3 wallclock secs ( 0.46 usr 0.25 sys + 0.00 cusr 0.00 csys = 0.71 CPU)
+
+Test if the database has a query cache
+Time for select_cache (10000): 88 wallclock secs ( 2.21 usr 0.38 sys + 0.00 cusr 0.00 csys = 2.59 CPU)
+
+Time for select_cache2 (10000): 89 wallclock secs ( 2.49 usr 0.39 sys + 0.00 cusr 0.00 csys = 2.88 CPU)
+
+Testing big selects on the table
+Time for select_big (70:17207): 0 wallclock secs ( 0.13 usr 0.03 sys + 0.00 cusr 0.00 csys = 0.16 CPU)
+Time for select_range (410:1057904): 103 wallclock secs ( 8.73 usr 2.95 sys + 0.00 cusr 0.00 csys = 11.68 CPU)
+Time for min_max_on_key (70000): 153 wallclock secs (15.68 usr 2.24 sys + 0.00 cusr 0.00 csys = 17.92 CPU)
+Time for count_on_key (50000): 378 wallclock secs (11.70 usr 1.69 sys + 0.00 cusr 0.00 csys = 13.39 CPU)
+
+Time for count_group_on_key_parts (1000:100000): 43 wallclock secs ( 0.96 usr 0.31 sys + 0.00 cusr 0.00 csys = 1.27 CPU)
+Testing count(distinct) on the table
+Time for count_distinct_key_prefix (1000:1000): 28 wallclock secs ( 0.29 usr 0.03 sys + 0.00 cusr 0.00 csys = 0.32 CPU)
+Time for count_distinct (1000:1000): 34 wallclock secs ( 0.24 usr 0.05 sys + 0.00 cusr 0.00 csys = 0.29 CPU)
+Time for count_distinct_2 (1000:1000): 38 wallclock secs ( 0.25 usr 0.07 sys + 0.00 cusr 0.00 csys = 0.32 CPU)
+Time for count_distinct_group_on_key (1000:6000): 43 wallclock secs ( 0.26 usr 0.05 sys + 0.00 cusr 0.00 csys = 0.31 CPU)
+Time for count_distinct_group_on_key_parts (1000:100000): 47 wallclock secs ( 0.98 usr 0.29 sys + 0.00 cusr 0.00 csys = 1.27 CPU)
+Time for count_distinct_group (1000:100000): 47 wallclock secs ( 1.00 usr 0.27 sys + 0.00 cusr 0.00 csys = 1.27 CPU)
+Time for count_distinct_big (100:1000000): 12 wallclock secs ( 7.14 usr 2.75 sys + 0.00 cusr 0.00 csys = 9.89 CPU)
+Total time: 1106 wallclock secs (52.54 usr 11.75 sys + 0.00 cusr 0.00 csys = 64.29 CPU)
diff --git a/sql-bench/Results/transactions-mysql-Linux_2.4.16_64GB_SMP_i686 b/sql-bench/Results/transactions-mysql-Linux_2.4.16_64GB_SMP_i686
new file mode 100644
index 00000000000..821d74a7c01
--- /dev/null
+++ b/sql-bench/Results/transactions-mysql-Linux_2.4.16_64GB_SMP_i686
@@ -0,0 +1,3 @@
+Testing server 'MySQL 4.0.2 alpha' at 2002-05-20 16:27:17
+
+Test skipped because the database doesn't support transactions
diff --git a/sql-bench/Results/wisconsin-mysql-Linux_2.4.16_64GB_SMP_i686 b/sql-bench/Results/wisconsin-mysql-Linux_2.4.16_64GB_SMP_i686
new file mode 100644
index 00000000000..8b054de0a3d
--- /dev/null
+++ b/sql-bench/Results/wisconsin-mysql-Linux_2.4.16_64GB_SMP_i686
@@ -0,0 +1,14 @@
+Testing server 'MySQL 4.0.2 alpha' at 2002-05-20 16:27:17
+
+Wisconsin benchmark test
+
+Time for create_table (3): 0 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+
+Inserting data
+Time to insert (31000): 8 wallclock secs ( 0.89 usr 0.68 sys + 0.00 cusr 0.00 csys = 1.57 CPU)
+Time to delete_big (1): 0 wallclock secs ( 0.00 usr 0.00 sys + 0.00 cusr 0.00 csys = 0.00 CPU)
+
+Running the actual benchmark
+Time for wisc_benchmark (114): 4 wallclock secs ( 2.17 usr 0.52 sys + 0.00 cusr 0.00 csys = 2.69 CPU)
+
+Total time: 12 wallclock secs ( 3.07 usr 1.20 sys + 0.00 cusr 0.00 csys = 4.27 CPU)
diff --git a/sql-bench/limits/mysql.cfg b/sql-bench/limits/mysql.cfg
index a496bd7bf4c..cd4aea7dcf5 100644
--- a/sql-bench/limits/mysql.cfg
+++ b/sql-bench/limits/mysql.cfg
@@ -29,7 +29,7 @@ columns_in_order_by=+64 # number of columns in order by
comment_#=yes # # as comment
comment_--=yes # -- as comment (ANSI)
comment_/**/=yes # /* */ as comment
-comment_//=no # // as comment (ANSI)
+comment_//=no # // as comment
compute=no # Compute
connections=101 # Simultaneous connections (installation default)
constraint_check=no # Column constraints
@@ -62,6 +62,7 @@ except=no # except
except_all=no # except all
except_all_incompat=no # except all (incompatible lists)
except_incompat=no # except (incompatible lists)
+field_name_case=yes # case independent field names
float_int_expr=yes # mixing of integer and float in expression
foreign_key=no # foreign keys
foreign_key_syntax=yes # foreign key syntax
@@ -228,10 +229,10 @@ func_odbc_timestampdiff=no # Function TIMESTAMPDIFF
func_odbc_truncate=yes # Function TRUNCATE
func_odbc_ucase=yes # Function UCASE
func_odbc_user()=yes # Function USER()
-func_odbc_week=yes # Function WEEK
+func_odbc_week=error # Function WEEK
func_odbc_year=yes # Function YEAR
func_sql_+=yes # Function +, -, * and /
-func_sql_bit_length=no # Function BIT_LENGTH
+func_sql_bit_length=yes # Function BIT_LENGTH
func_sql_cast=no # Function CAST
func_sql_char_length=error # Function CHAR_LENGTH
func_sql_char_length(constant)=yes # Function CHAR_LENGTH(constant)
@@ -299,13 +300,14 @@ group_func_sql_min_str=yes # Group function MIN on strings
group_func_sql_some=no # Group function SOME
group_func_sql_sum=yes # Group function SUM
group_functions=yes # Group functions
+group_many_distinct_functions=yes # Group functions with several distinct
group_on_unused=yes # Group on unused column
has_true_false=no # TRUE and FALSE
having=yes # Having
having_with_alias=yes # Having on alias
having_with_group=yes # Having with group function
hex_numbers=yes # hex numbers (0x41)
-hex_strings=no # hex strings (x'1ace')
+hex_strings=yes # hex strings (x'1ace')
ignore_end_space=yes # Ignore end space in compare
index_in_create=yes # index in create table
index_namespace=yes # different namespace for index
@@ -319,7 +321,7 @@ intersect=no # intersect
intersect_all=no # intersect all
intersect_all_incompat=no # intersect all (incompatible lists)
intersect_incompat=no # intersect (incompatible lists)
-join_tables=63 # tables in join
+join_tables=31 # tables in join
left_outer_join=yes # left outer join
left_outer_join_using=yes # left outer join using
like_with_column=yes # column LIKE column
@@ -331,7 +333,7 @@ max_char_size=255 # max char() size
max_column_name=64 # column name length
max_columns=3398 # Columns in table
max_conditions=85660 # OR and AND in WHERE
-max_expressions=1837 # simple expressions
+max_expressions=856 # simple expressions
max_index=32 # max index
max_index_length=500 # index length
max_index_name=64 # index name length
@@ -341,7 +343,7 @@ max_index_varchar_part_length=255 # index varchar part length
max_row_length=65534 # max table row length (without blobs)
max_row_length_with_null=65502 # table row length with nulls (without blobs)
max_select_alias_name=+512 # select alias name length
-max_stack_expression=1837 # stacked expressions
+max_stack_expression=856 # stacked expressions
max_table_alias_name=+512 # table alias name length
max_table_name=64 # table name length
max_text_size=1048543 # max text or blob size
@@ -353,8 +355,8 @@ minus_neg=yes # Calculate 1--1
multi_drop=yes # many tables to drop table
multi_null_in_unique=yes # null in unique index
multi_strings=yes # Multiple line strings
-multi_table_delete=no # DELETE FROM table1,table2...
-multi_table_update=no # Update with many tables
+multi_table_delete=yes # DELETE FROM table1,table2...
+multi_table_update=yes # Update with many tables
natural_join=yes # natural join
natural_join_incompat=yes # natural join (incompatible lists)
natural_left_outer_join=yes # natural left outer join
@@ -365,7 +367,7 @@ null_in_unique=yes # null in unique index
null_num_expr=yes # Is 1+NULL = NULL
nulls_in_unique=yes # null combination in unique index
odbc_left_outer_join=yes # left outer join odbc style
-operating_system=Linux 2.2.13-SMP alpha # crash-me tested on
+operating_system=Linux 2.4.16-64GB-SMP i686 # crash-me tested on
order_by=yes # Order by
order_by_alias=yes # Order by alias
order_by_function=yes # Order by function
@@ -385,7 +387,7 @@ quote_with_"=yes # Allows ' and " as string markers
remember_end_space=no # Remembers end space in char()
remember_end_space_varchar=no # Remembers end space in varchar()
rename_table=yes # rename table
-repeat_string_size=1047552 # return string size from function
+repeat_string_size=1048576 # return string size from function
right_outer_join=yes # right outer join
rowid=auto_increment # Type for row id
select_constants=yes # Select constants
@@ -394,7 +396,7 @@ select_limit2=yes # SELECT with LIMIT #,#
select_string_size=1048565 # constant string size in SELECT
select_table_update=no # Update with sub select
select_without_from=yes # SELECT without FROM
-server_version=MySQL 3.23.39 debug # server version
+server_version=MySQL 4.0.2 alpha debug # server version
simple_joins=yes # ANSI SQL simple joins
storage_of_float=round # Storage of float values
subqueries=no # subqueries
@@ -402,7 +404,7 @@ table_alias=yes # Table alias
table_name_case=no # case independent table names
table_wildcard=yes # Select table_name.*
temporary_table=yes # temporary tables
-transactions=yes # constant string size in where
+transactions=yes # transactions
truncate_table=yes # truncate
type_extra_abstime=no # Type abstime
type_extra_bfile=no # Type bfile
@@ -512,12 +514,11 @@ type_sql_time=yes # Type time
type_sql_timestamp=yes # Type timestamp
type_sql_timestamp_with_time_zone=no # Type timestamp with time zone
type_sql_varchar(1_arg)=yes # Type varchar(1 arg)
-union=no # union
-union_all=no # union all
-union_all_incompat=no # union all (incompatible lists)
-union_incompat=no # union (incompatible lists)
+union=yes # union
+union_all=yes # union all
+union_all_incompat=yes # union all (incompatible lists)
+union_incompat=yes # union (incompatible lists)
unique_in_create=yes # unique in create table
unique_null_in_create=yes # unique null in create
-user_comment=Alpha DS20 2x500 MHz, 2G memory, key_buffer=16M; ccc + cxx # comment
views=no # views
where_string_size=1048539 # constant string size in where
diff --git a/sql/field.cc b/sql/field.cc
index 819583ba9fb..43a46bb67a0 100644
--- a/sql/field.cc
+++ b/sql/field.cc
@@ -63,8 +63,8 @@ const char field_separator=',';
*****************************************************************************/
/*
- ** Calculate length of number and its parts
- ** Increment cuted_fields if wrong number
+ Calculate length of number and its parts
+ Increment cuted_fields if wrong number
*/
static bool
@@ -384,13 +384,34 @@ Field_decimal::reset(void)
void Field_decimal::overflow(bool negative)
{
uint len=field_length;
- char *to=ptr;
- if (negative && !unsigned_flag)
+ char *to=ptr, filler= '9';
+ if (negative)
{
- *to++ = '-';
- len--;
+ if (!unsigned_flag)
+ {
+ /* Put - sign as a first digit so we'll have -999..999 or 999..999 */
+ *to++ = '-';
+ len--;
+ }
+ else
+ {
+ filler= '0'; // Fill up with 0
+ if (!zerofill)
+ {
+ /*
+ Handle unsigned integer without zerofill, in which case
+ the number should be of format ' 0' or ' 0.000'
+ */
+ uint whole_part=field_length- (dec ? dec+2 : 1);
+ // Fill with spaces up to the first digit
+ bfill(to, whole_part, ' ');
+ to+= whole_part;
+ len-= whole_part;
+ // The main code will also handle the 0 before the decimal point
+ }
+ }
}
- bfill(to,len,negative && unsigned_flag ? '0' : '9');
+ bfill(to, len, filler);
if (dec)
ptr[field_length-dec-1]='.';
return;
@@ -425,10 +446,15 @@ void Field_decimal::store(const char *from,uint len,CHARSET_INFO *cs)
from++;
if (unsigned_flag) // No sign with zerofill
{
- if (!error)
- current_thd->cuted_fields++;
- Field_decimal::overflow(1);
- return;
+ if (decstr.sign_char == '+') // just remove "+"
+ decstr.sign= 0;
+ else
+ {
+ if (!error)
+ current_thd->cuted_fields++;
+ Field_decimal::overflow(1);
+ return;
+ }
}
}
/*
diff --git a/sql/gen_lex_hash.cc b/sql/gen_lex_hash.cc
index 918ec753f68..6cec0b160b7 100644
--- a/sql/gen_lex_hash.cc
+++ b/sql/gen_lex_hash.cc
@@ -22,13 +22,13 @@
#ifndef __GNU_LIBRARY__
#define __GNU_LIBRARY__ // Skip warnings in getopt.h
#endif
-#include <getopt.h>
+#include <my_getopt.h>
#include "mysql_version.h"
#include "lex.h"
-bool opt_search=0;
-int opt_verbose=0;
-ulong opt_count=100000;
+my_bool opt_search;
+int opt_verbose;
+ulong opt_count;
#define max_allowed_array 16000 // Don't generate bigger arrays than this
#define max_symbol 32767 // Use this for 'not found'
@@ -55,6 +55,35 @@ static uchar bits[how_much_and/8+1];
static uint primes[max_allowed_array+1];
static ulong hash_results[type_count][how_much_for_plus+1][total_symbols];
static ulong start_value=0;
+static uint best_type;
+static ulong best_t1,best_t2, best_start_value;
+
+static struct my_option my_long_options[] =
+{
+ {"help", '?', "Display help and exit",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"count", 'c', "Try count times to find a optimal hash table",
+ (gptr*) &opt_count, (gptr*) &opt_count, 0, GET_ULONG, REQUIRED_ARG,
+ 100000, 0, 0, 0, 0, 0},
+ {"search", 'S', "Search after good rnd1 and rnd2 values",
+ (gptr*) &opt_search, (gptr*) &opt_search, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0,
+ 0, 0},
+ {"verbose", 'v', "Write some information while the program executes",
+ (gptr*) &opt_verbose, (gptr*) &opt_verbose, 0, GET_INT, NO_ARG, 0, 0, 0,
+ 0, 0, 0},
+ {"version", 'V', "Output version information and exit",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"rnd1", 'r', "Set 1 part of rnd value for hash generator",
+ (gptr*) &best_t1, (gptr*) &best_t1, 0, GET_ULONG, REQUIRED_ARG, 6657025L,
+ 0, 0, 0, 0, 0},
+ {"rnd2", 'R', "Set 2 part of rnd value for hash generator",
+ (gptr*) &best_t2, (gptr*) &best_t2, 0, GET_ULONG, REQUIRED_ARG, 6114496L,
+ 0, 0, 0, 0, 0},
+ {"type", 't', "Set type of char table to generate",
+ (gptr*) &best_type, (gptr*) &best_type, 0, GET_UINT, REQUIRED_ARG, 1, 0, 0,
+ 0, 0, 0},
+ { 0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
+};
struct rand_struct {
unsigned long seed1,seed2,max_value;
@@ -325,82 +354,48 @@ void print_arrays()
}
-static struct option long_options[] =
-{
- {"count", required_argument, 0, 'c'},
- {"search", no_argument, 0, 'S'},
- {"verbose", no_argument, 0, 'v'},
- {"version", no_argument, 0, 'V'},
- {"rnd1", required_argument, 0, 'r'},
- {"rnd2", required_argument, 0, 'R'},
- {"type", required_argument, 0, 't'},
- {0, 0, 0, 0}
-};
-
-
static void usage(int version)
{
- printf("%s Ver 3.3 Distrib %s, for %s (%s)\n",
+ printf("%s Ver 3.5 Distrib %s, for %s (%s)\n",
my_progname, MYSQL_SERVER_VERSION, SYSTEM_TYPE, MACHINE_TYPE);
if (version)
return;
puts("Copyright (C) 2001 MySQL AB, by Sinisa and Monty");
puts("This software comes with ABSOLUTELY NO WARRANTY. This is free software,\nand you are welcome to modify and redistribute it under the GPL license\n");
puts("This program generates a perfect hashing function for the sql_lex.cc");
- printf("Usage: %s [OPTIONS]\n", my_progname);
- printf("\n\
--c, --count=# Try count times to find a optimal hash table\n\
--r, --rnd1=# Set 1 part of rnd value for hash generator\n\
--R, --rnd2=# Set 2 part of rnd value for hash generator\n\
--t, --type=# Set type of char table to generate\n\
--S, --search Search after good rnd1 and rnd2 values\n\
--v, --verbose Write some information while the program executes\n\
--V, --version Output version information and exit\n");
+ printf("Usage: %s [OPTIONS]\n\n", my_progname);
+ my_print_help(my_long_options);
+ my_print_variables(my_long_options);
+}
+
+static my_bool
+get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
+ char *argument __attribute__((unused)))
+{
+ switch(optid) {
+ case 'v':
+ opt_verbose++;
+ break;
+ case 'V':
+ usage(1);
+ exit(0);
+ case 'I':
+ case '?':
+ usage(0);
+ exit(0);
+ }
+ return 0;
}
-static uint best_type;
-static ulong best_t1,best_t2, best_start_value;
static int get_options(int argc, char **argv)
{
- int c,option_index=0;
+ int ho_error;
+
+ if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
+ exit(ho_error);
- while ((c=getopt_long(argc,argv,"?SvVc:r:R:t:",
- long_options, &option_index)) != EOF)
- {
- switch(c) {
- case 'c':
- opt_count=atol(optarg);
- break;
- case 'r':
- best_t1=atol(optarg);
- break;
- case 'R':
- best_t2=atol(optarg);
- break;
- case 't':
- best_type=atoi(optarg);
- break;
- case 'S':
- opt_search=1;
- break;
- case 'v':
- opt_verbose++;
- break;
- case 'V': usage(1); exit(0);
- case 'I':
- case '?':
- usage(0);
- exit(0);
- default:
- fprintf(stderr,"illegal option: -%c\n",opterr);
- usage(0);
- exit(1);
- }
- }
- argc-=optind;
- argv+=optind;
if (argc >= 1)
{
usage(0);
@@ -483,7 +478,7 @@ int main(int argc,char **argv)
MY_INIT(argv[0]);
- start_value=1109118L; best_t1=6657025L; best_t2=6114496L; best_type=1; /* mode=4903 add=3 type: 0 */
+ start_value=1109118L; /* mode=4903 add=3 type: 0 */
if (get_options(argc,(char **) argv))
exit(1);
diff --git a/sql/ha_hash.h b/sql/ha_hash.h
deleted file mode 100644
index 80416611406..00000000000
--- a/sql/ha_hash.h
+++ /dev/null
@@ -1,31 +0,0 @@
-
-int ha_hash::create(my_string name, register TABLE *form,
- ulonglong auto_increment_value)
-{
- register uint i,j;
- char buff[FN_REFLEN];
- KEY *pos;
- H_KEYDEF keydef[MAX_KEY];
- DBUG_ENTER("cre_hash");
-
- pos=form->key_info;
- for (i=0; i < form->keys ; i++, pos++)
- {
- keydef[i].hk_flag= pos->flags & HA_NOSAME;
- for (j=0 ; (int7) j < pos->key_parts ; j++)
- {
- uint flag=pos->key_part[j].key_type;
- if (!f_is_packed(flag) && f_packtype(flag) == (int) FIELD_TYPE_DECIMAL &&
- !(flag & FIELDFLAG_BINARY))
- keydef[i].hk_keyseg[j].key_type= (int) HA_KEYTYPE_TEXT;
- else
- keydef[i].hk_keyseg[j].key_type= (int) HA_KEYTYPE_BINARY;
- keydef[i].hk_keyseg[j].start= pos->key_part[j].offset;
- keydef[i].hk_keyseg[j].length= pos->key_part[j].length;
- }
- keydef[i].hk_keyseg[j].key_type= 0;
- }
- DBUG_RETURN(h_create(fn_format(buff,name,"","",2+4+16),i,
- keydef,form->reclength,form->max_rows,form->min_rows,
- 0));
-} /* cre_hash */
diff --git a/sql/ha_innodb.cc b/sql/ha_innodb.cc
index b93d9fa0108..455d890758f 100644
--- a/sql/ha_innodb.cc
+++ b/sql/ha_innodb.cc
@@ -102,13 +102,14 @@ my_bool innobase_use_native_aio = FALSE;
my_bool innobase_fast_shutdown = TRUE;
/*
- Set default InnoDB size to 64M and let it be auto-extending. Thus users
- can use InnoDB without having to specify any startup options.
+ Set default InnoDB data file size to 10 MB and let it be
+ auto-extending. Thus users can use InnoDB without having to
+ specify any startup options.
*/
/* innobase_data_file_path=ibdata:15,idata2:1,... */
-char *innobase_data_file_path= (char*) "ibdata1:64M:autoextend";
+char *innobase_data_file_path= (char*) "ibdata1:10M:autoextend";
static char *internal_innobase_data_file_path=0;
/* The following counter is used to convey information to InnoDB
@@ -653,6 +654,7 @@ innobase_close_connection(
(thd->transaction.all.innobase_tid));
trx_free_for_mysql((trx_t*)
(thd->transaction.all.innobase_tid));
+ thd->transaction.all.innobase_tid = NULL;
}
return(0);
diff --git a/sql/hostname.cc b/sql/hostname.cc
index 0b35f970c42..0a9be8a3213 100644
--- a/sql/hostname.cc
+++ b/sql/hostname.cc
@@ -57,8 +57,11 @@ void hostname_cache_refresh()
bool hostname_cache_init()
{
+ host_entry *tmp;
+ uint offset= (uint) ((char*) (&tmp->ip) - (char*) &tmp);
(void) pthread_mutex_init(&LOCK_hostname,MY_MUTEX_INIT_SLOW);
- if (!(hostname_cache=new hash_filo(HOST_CACHE_SIZE,offsetof(host_entry,ip),
+
+ if (!(hostname_cache=new hash_filo(HOST_CACHE_SIZE, offset,
sizeof(struct in_addr),NULL,
(void (*)(void*)) free)))
return 1;
@@ -171,17 +174,22 @@ my_string ip_to_hostname(struct in_addr *in, uint *errors)
{
DBUG_PRINT("error",("gethostbyname_r returned %d",tmp_errno));
add_wrong_ip(in);
+ my_gethostbyname_r_free();
DBUG_RETURN(0);
}
if (!hp->h_name[0])
{
DBUG_PRINT("error",("Got an empty hostname"));
add_wrong_ip(in);
+ my_gethostbyname_r_free();
DBUG_RETURN(0); // Don't allow empty hostnames
}
if (!(name=my_strdup(hp->h_name,MYF(0))))
+ {
+ my_gethostbyname_r_free();
DBUG_RETURN(0); // out of memory
-
+ }
+ my_gethostbyname_r_free();
#else
VOID(pthread_mutex_lock(&LOCK_hostname));
if (!(hp=gethostbyaddr((char*) in,sizeof(*in), AF_INET)))
diff --git a/sql/item.h b/sql/item.h
index 927e86398c2..b878da5661e 100644
--- a/sql/item.h
+++ b/sql/item.h
@@ -364,6 +364,25 @@ public:
};
+/*
+ The following class is used to optimize comparing of date columns
+ We need to save the original item, to be able to set the field to the
+ original value in 'opt_range'.
+*/
+
+class Item_int_with_ref :public Item_int
+{
+ Item *ref;
+public:
+ Item_int_with_ref(longlong i, Item *ref_arg) :Item_int(i), ref(ref_arg)
+ {}
+ bool save_in_field(Field *field)
+ {
+ return ref->save_in_field(field);
+ }
+};
+
+
#include "spatial.h"
#include "item_sum.h"
#include "item_func.h"
diff --git a/sql/item_cmpfunc.cc b/sql/item_cmpfunc.cc
index 072eaf51567..5fe232b6b80 100644
--- a/sql/item_cmpfunc.cc
+++ b/sql/item_cmpfunc.cc
@@ -26,9 +26,9 @@
/*
-** Test functions
-** These returns 0LL if false and 1LL if true and null if some arg is null
-** 'AND' and 'OR' never return null
+ Test functions
+ These returns 0LL if false and 1LL if true and null if some arg is null
+ 'AND' and 'OR' never return null
*/
longlong Item_func_not::val_int()
@@ -46,8 +46,8 @@ static bool convert_constant_item(Field *field, Item **item)
(*item)->save_in_field(field);
if (!((*item)->null_value))
{
- Item *tmp=new Item_int(field->val_int());
- if ((tmp))
+ Item *tmp=new Item_int_with_ref(field->val_int(), *item);
+ if (tmp)
*item=tmp;
return 1;
}
@@ -60,8 +60,10 @@ void Item_bool_func2::fix_length_and_dec()
{
max_length=1;
- /* As some compare functions are generated after sql_yacc,
- we have to check for out of memory conditons here */
+ /*
+ As some compare functions are generated after sql_yacc,
+ we have to check for out of memory conditons here
+ */
if (!args[0] || !args[1])
return;
// Make a special case of compare with fields to get nicer DATE comparisons
@@ -337,8 +339,10 @@ void Item_func_between::fix_length_and_dec()
{
max_length=1;
- /* As some compare functions are generated after sql_yacc,
- we have to check for out of memory conditons here */
+ /*
+ As some compare functions are generated after sql_yacc,
+ we have to check for out of memory conditons here
+ */
if (!args[0] || !args[1] || !args[2])
return;
cmp_type=args[0]->result_type();
@@ -390,7 +394,7 @@ longlong Item_func_between::val_int()
{
longlong value=args[0]->val_int(),a,b;
if ((null_value=args[0]->null_value))
- return 0; /* purecov: inspected */
+ return 0; /* purecov: inspected */
a=args[1]->val_int();
b=args[2]->val_int();
if (!args[1]->null_value && !args[2]->null_value)
@@ -410,7 +414,7 @@ longlong Item_func_between::val_int()
{
double value=args[0]->val(),a,b;
if ((null_value=args[0]->null_value))
- return 0; /* purecov: inspected */
+ return 0; /* purecov: inspected */
a=args[1]->val();
b=args[2]->val();
if (!args[1]->null_value && !args[2]->null_value)
@@ -491,8 +495,12 @@ Item_func_if::fix_length_and_dec()
decimals=max(args[1]->decimals,args[2]->decimals);
enum Item_result arg1_type=args[1]->result_type();
enum Item_result arg2_type=args[2]->result_type();
+ binary=1;
if (arg1_type == STRING_RESULT || arg2_type == STRING_RESULT)
+ {
cached_result_type = STRING_RESULT;
+ binary=args[1]->binary | args[2]->binary;
+ }
else if (arg1_type == REAL_RESULT || arg2_type == REAL_RESULT)
cached_result_type = REAL_RESULT;
else
@@ -591,11 +599,10 @@ Item_func_nullif::val_str(String *str)
}
/*
-** CASE expression
+ CASE expression
+ Return the matching ITEM or NULL if all compares (including else) failed
*/
-/* Return the matching ITEM or NULL if all compares (including else) failed */
-
Item *Item_func_case::find_item(String *str)
{
String *first_expr_str,*tmp;
@@ -783,7 +790,7 @@ void Item_func_case::print(String *str)
}
/*
-** Coalesce - return first not NULL argument.
+ Coalesce - return first not NULL argument.
*/
String *Item_func_coalesce::val_str(String *str)
@@ -839,7 +846,7 @@ void Item_func_coalesce::fix_length_and_dec()
}
/****************************************************************************
-** classes and function for the IN operator
+ Classes and function for the IN operator
****************************************************************************/
static int cmp_longlong(longlong *a,longlong *b)
@@ -915,7 +922,7 @@ byte *in_longlong::get_value(Item *item)
{
tmp=item->val_int();
if (item->null_value)
- return 0; /* purecov: inspected */
+ return 0; /* purecov: inspected */
return (byte*) &tmp;
}
@@ -933,7 +940,7 @@ byte *in_double::get_value(Item *item)
{
tmp=item->val();
if (item->null_value)
- return 0; /* purecov: inspected */
+ return 0; /* purecov: inspected */
return (byte*) &tmp;
}
@@ -1171,9 +1178,11 @@ longlong Item_cond_and::val_int()
{
if (item->val_int() == 0)
{
- /* TODO: In case of NULL, ANSI would require us to continue evaluation
- until we get a FALSE value or run out of values; This would
- require a lot of unnecessary evaluation, which we skip for now */
+ /*
+ TODO: In case of NULL, ANSI would require us to continue evaluation
+ until we get a FALSE value or run out of values; This would
+ require a lot of unnecessary evaluation, which we skip for now
+ */
null_value=item->null_value;
return 0;
}
@@ -1202,6 +1211,12 @@ longlong Item_cond_or::val_int()
longlong Item_func_isnull::val_int()
{
+ /*
+ Handle optimization if the argument can't be null
+ This has to be here because of the test in update_used_tables().
+ */
+ if (!used_tables_cache)
+ return cached_value;
return args[0]->is_null() ? 1: 0;
}
@@ -1217,23 +1232,23 @@ void Item_func_like::fix_length_and_dec()
// cmp_type=STRING_RESULT; // For quick select
}
-
longlong Item_func_like::val_int()
{
- String *res,*res2;
- res=args[0]->val_str(&tmp_value1);
+ String* res = args[0]->val_str(&tmp_value1);
if (args[0]->null_value)
{
null_value=1;
return 0;
}
- res2=args[1]->val_str(&tmp_value2);
+ String* res2 = args[1]->val_str(&tmp_value2);
if (args[1]->null_value)
{
null_value=1;
return 0;
}
null_value=0;
+ if (canDoTurboBM)
+ return turboBM_matches(res->ptr(), res->length()) ? 1 : 0;
if (binary)
return wild_compare(*res,*res2,escape) ? 0 : 1;
else
@@ -1257,6 +1272,54 @@ Item_func::optimize_type Item_func_like::select_optimize() const
return OPTIMIZE_NONE;
}
+bool Item_func_like::fix_fields(THD *thd,struct st_table_list *tlist)
+{
+ if (Item_bool_func2::fix_fields(thd, tlist))
+ return 1;
+
+ /*
+ TODO--we could do it for non-const, but we'd have to
+ recompute the tables for each row--probably not worth it.
+ */
+ if (args[1]->const_item() && !(specialflag & SPECIAL_NO_NEW_FUNC))
+ {
+ String* res2 = args[1]->val_str(&tmp_value2);
+ if (!res2)
+ return 0; // Null argument
+
+ const size_t len = res2->length();
+ const char* first = res2->ptr();
+ const char* last = first + len - 1;
+ /*
+ len must be > 2 ('%pattern%')
+ heuristic: only do TurboBM for pattern_len > 2
+ */
+
+ if (len > MIN_TURBOBM_PATTERN_LEN + 2 &&
+ *first == wild_many &&
+ *last == wild_many)
+ {
+ const char* tmp = first + 1;
+ for ( ; *tmp != wild_many && *tmp != wild_one && *tmp != escape; tmp++) ;
+ canDoTurboBM = tmp == last;
+ }
+
+ if (canDoTurboBM)
+ {
+ pattern = first + 1;
+ pattern_len = len - 2;
+ DBUG_PRINT("TurboBM", ("Initializing pattern: '%s'...", first));
+ int* suff = (int*)thd->alloc(sizeof(int[pattern_len + 1]));
+ bmGs = (int*)thd->alloc(sizeof(int[pattern_len + 1]));
+ bmBc = (int*)thd->alloc(sizeof(int[alphabet_size]));
+ turboBM_compute_good_suffix_shifts(suff);
+ turboBM_compute_bad_character_shifts();
+ DBUG_PRINT("turboBM",("done"));
+ }
+ }
+ return 0;
+}
+
#ifdef USE_REGEX
bool
@@ -1297,7 +1360,6 @@ Item_func_regex::fix_fields(THD *thd,TABLE_LIST *tables)
return 0;
}
-
longlong Item_func_regex::val_int()
{
char buff[MAX_FIELD_WIDTH];
@@ -1357,6 +1419,217 @@ Item_func_regex::~Item_func_regex()
#endif /* USE_REGEX */
+#ifdef LIKE_CMP_TOUPPER
+#define likeconv(A) (uchar) toupper(A)
+#else
+#define likeconv(A) (uchar) my_sort_order[(uchar) (A)]
+#endif
+
+
+/**********************************************************************
+ turboBM_compute_suffixes()
+ Precomputation dependent only on pattern_len.
+**********************************************************************/
+
+void Item_func_like::turboBM_compute_suffixes(int* suff)
+{
+ const int plm1 = pattern_len - 1;
+ int f = 0;
+ int g = plm1;
+ int* const splm1 = suff + plm1;
+
+ *splm1 = pattern_len;
+
+ if (binary)
+ {
+ int i;
+ for (i = pattern_len - 2; i >= 0; i--)
+ {
+ int tmp = *(splm1 + i - f);
+ if (g < i && tmp < i - g)
+ suff[i] = tmp;
+ else
+ {
+ if (i < g)
+ g = i; // g = min(i, g)
+ f = i;
+ while (g >= 0 && pattern[g] == pattern[g + plm1 - f])
+ g--;
+ suff[i] = f - g;
+ }
+ }
+ }
+ else
+ {
+ int i;
+ for (i = pattern_len - 2; 0 <= i; --i)
+ {
+ int tmp = *(splm1 + i - f);
+ if (g < i && tmp < i - g)
+ suff[i] = tmp;
+ else
+ {
+ if (i < g)
+ g = i; // g = min(i, g)
+ f = i;
+ while (g >= 0 && likeconv(pattern[g]) == likeconv(pattern[g + plm1 - f]))
+ g--;
+ suff[i] = f - g;
+ }
+ }
+ }
+}
+
+
+/**********************************************************************
+ turboBM_compute_good_suffix_shifts()
+ Precomputation dependent only on pattern_len.
+**********************************************************************/
+
+void Item_func_like::turboBM_compute_good_suffix_shifts(int* suff)
+{
+ turboBM_compute_suffixes(suff);
+
+ int* end = bmGs + pattern_len;
+ int* k;
+ for (k = bmGs; k < end; k++)
+ *k = pattern_len;
+
+ int tmp;
+ int i;
+ int j = 0;
+ const int plm1 = pattern_len - 1;
+ for (i = plm1; i > -1; i--)
+ {
+ if (suff[i] == i + 1)
+ {
+ for (tmp = plm1 - i; j < tmp; j++)
+ {
+ int* tmp2 = bmGs + j;
+ if (*tmp2 == pattern_len)
+ *tmp2 = tmp;
+ }
+ }
+ }
+
+ int* tmp2;
+ for (tmp = plm1 - i; j < tmp; j++)
+ {
+ tmp2 = bmGs + j;
+ if (*tmp2 == pattern_len)
+ *tmp2 = tmp;
+ }
+
+ tmp2 = bmGs + plm1;
+ for (i = 0; i <= pattern_len - 2; i++)
+ *(tmp2 - suff[i]) = plm1 - i;
+}
+
+
+/**********************************************************************
+ turboBM_compute_bad_character_shifts()
+ Precomputation dependent on pattern_len.
+**********************************************************************/
+
+void Item_func_like::turboBM_compute_bad_character_shifts()
+{
+ int* i;
+ int* end = bmBc + alphabet_size;
+ for (i = bmBc; i < end; i++)
+ *i = pattern_len;
+
+ int j;
+ const int plm1 = pattern_len - 1;
+ if (binary)
+ for (j = 0; j < plm1; j++)
+ bmBc[pattern[j]] = plm1 - j;
+ else
+ for (j = 0; j < plm1; j++)
+ bmBc[likeconv(pattern[j])] = plm1 - j;
+}
+
+
+/**********************************************************************
+ turboBM_matches()
+ Search for pattern in text, returns true/false for match/no match
+**********************************************************************/
+
+bool Item_func_like::turboBM_matches(const char* text, int text_len) const
+{
+ register int bcShift;
+ register int turboShift;
+ int shift = pattern_len;
+ int j = 0;
+ int u = 0;
+
+ const int plm1 = pattern_len - 1;
+ const int tlmpl = text_len - pattern_len;
+
+ /* Searching */
+ if (binary)
+ {
+ while (j <= tlmpl)
+ {
+ register int i = plm1;
+ while (i >= 0 && pattern[i] == text[i + j])
+ {
+ i--;
+ if (i == plm1 - shift)
+ i -= u;
+ }
+ if (i < 0)
+ return true;
+
+ register const int v = plm1 - i;
+ turboShift = u - v;
+ bcShift = bmBc[text[i + j]] - plm1 + i;
+ shift = max(turboShift, bcShift);
+ shift = max(shift, bmGs[i]);
+ if (shift == bmGs[i])
+ u = min(pattern_len - shift, v);
+ else
+ {
+ if (turboShift < bcShift)
+ shift = max(shift, u + 1);
+ u = 0;
+ }
+ j += shift;
+ }
+ return false;
+ }
+ else
+ {
+ while (j <= tlmpl)
+ {
+ register int i = plm1;
+ while (i >= 0 && likeconv(pattern[i]) == likeconv(text[i + j]))
+ {
+ i--;
+ if (i == plm1 - shift)
+ i -= u;
+ }
+ if (i < 0)
+ return true;
+
+ register const int v = plm1 - i;
+ turboShift = u - v;
+ bcShift = bmBc[likeconv(text[i + j])] - plm1 + i;
+ shift = max(turboShift, bcShift);
+ shift = max(shift, bmGs[i]);
+ if (shift == bmGs[i])
+ u = min(pattern_len - shift, v);
+ else
+ {
+ if (turboShift < bcShift)
+ shift = max(shift, u + 1);
+ u = 0;
+ }
+ j += shift;
+ }
+ return false;
+ }
+}
+
/****************************************************************
Classes and functions for spatial relations
*****************************************************************/
diff --git a/sql/item_cmpfunc.h b/sql/item_cmpfunc.h
index 350e369eaac..ea5f4a6b0bf 100644
--- a/sql/item_cmpfunc.h
+++ b/sql/item_cmpfunc.h
@@ -430,6 +430,7 @@ class Item_func_in :public Item_int_func
class Item_func_isnull :public Item_bool_func
{
+ longlong cached_value;
public:
Item_func_isnull(Item *a) :Item_bool_func(a) {}
longlong val_int();
@@ -450,6 +451,12 @@ public:
args[0]->update_used_tables();
used_tables_cache=args[0]->used_tables();
}
+ if (!used_tables_cache)
+ {
+ /* Remember if the value is always NULL or never NULL */
+ args[0]->val();
+ cached_value= args[0]->null_value ? (longlong) 1 : (longlong) 0;
+ }
}
optimize_type select_optimize() const { return OPTIMIZE_NULL; }
};
@@ -471,15 +478,40 @@ public:
class Item_func_like :public Item_bool_func2
{
char escape;
-public:
- Item_func_like(Item *a,Item *b, char* escape_arg) :Item_bool_func2(a,b),escape(*escape_arg)
+
+ // Turbo Boyer-Moore data
+ bool canDoTurboBM; // pattern is '%abcd%' case
+ const char* pattern;
+ int pattern_len;
+
+ // TurboBM buffers, *this is owner
+ int* bmGs; // good suffix shift table, size is pattern_len + 1
+ int* bmBc; // bad character shift table, size is alphabet_size
+
+ void turboBM_compute_suffixes(int* suff);
+ void turboBM_compute_good_suffix_shifts(int* suff);
+ void turboBM_compute_bad_character_shifts();
+ bool turboBM_matches(const char* text, int text_len) const;
+ enum { alphabet_size = 256 };
+
+public:
+ Item_func_like::Item_func_like(Item *a,Item *b, char* escape_arg) :
+ Item_bool_func2(a,b),
+ escape(*escape_arg),
+ canDoTurboBM(false),
+ pattern(0),
+ pattern_len(0),
+ bmGs(0),
+ bmBc(0)
{}
+
longlong val_int();
enum Functype functype() const { return LIKE_FUNC; }
optimize_type select_optimize() const;
cond_result eq_cmp_result() const { return COND_TRUE; }
const char *func_name() const { return "like"; }
void fix_length_and_dec();
+ bool fix_fields(THD *thd,struct st_table_list *tlist);
};
#ifdef USE_REGEX
diff --git a/sql/item_func.cc b/sql/item_func.cc
index 057518fb5f2..a9264b78b64 100644
--- a/sql/item_func.cc
+++ b/sql/item_func.cc
@@ -61,7 +61,7 @@ bool
Item_func::fix_fields(THD *thd,TABLE_LIST *tables)
{
Item **arg,**arg_end;
- char buff[sizeof(double)]; // Max argument in function
+ char buff[STACK_BUFF_ALLOC]; // Max argument in function
binary=0;
used_tables_cache=0;
const_item_cache=1;
@@ -629,7 +629,12 @@ double Item_func_round::val()
log_10[abs_dec] : pow(10.0,(double) abs_dec));
if (truncate)
- return dec < 0 ? floor(value/tmp)*tmp : floor(value*tmp)/tmp;
+ {
+ if (value >= 0)
+ return dec < 0 ? floor(value/tmp)*tmp : floor(value*tmp)/tmp;
+ else
+ return dec < 0 ? ceil(value/tmp)*tmp : ceil(value*tmp)/tmp;
+ }
return dec < 0 ? rint(value/tmp)*tmp : rint(value*tmp)/tmp;
}
@@ -1089,7 +1094,7 @@ bool
udf_handler::fix_fields(THD *thd,TABLE_LIST *tables,Item_result_field *func,
uint arg_count, Item **arguments)
{
- char buff[sizeof(double)]; // Max argument in function
+ char buff[STACK_BUFF_ALLOC]; // Max argument in function
DBUG_ENTER("Item_udf_func::fix_fields");
if (thd)
@@ -1610,7 +1615,7 @@ longlong Item_func_get_lock::val_int()
set_timespec(abstime,timeout);
while (!thd->killed &&
(error=pthread_cond_timedwait(&ull->cond,&LOCK_user_locks,&abstime))
- != ETIME && error != ETIMEDOUT && ull->locked) ;
+ != ETIME && error != ETIMEDOUT && error != EINVAL && ull->locked) ;
if (thd->killed)
error=EINTR; // Return NULL
if (ull->locked)
@@ -2042,6 +2047,9 @@ void Item_func_match::init_search(bool no_order)
if (ft_handler)
return;
+ if (key == NO_SUCH_KEY)
+ concat=new Item_func_concat_ws(new Item_string(" ",1), default_charset_info, fields);
+
if (master)
{
join_key=master->join_key=join_key|master->join_key;
@@ -2051,9 +2059,6 @@ void Item_func_match::init_search(bool no_order)
return;
}
- if (key == NO_SUCH_KEY)
- concat=new Item_func_concat_ws (new Item_string(" ",1,default_charset_info), fields);
-
String *ft_tmp=0;
char tmp1[FT_QUERY_MAXLEN];
String tmp2(tmp1,sizeof(tmp1),default_charset_info);
@@ -2251,10 +2256,13 @@ double Item_func_match::val()
Item *get_system_var(LEX_STRING name)
{
- if (!strcmp(name.str,"IDENTITY"))
+ if (!my_strcasecmp(name.str,"IDENTITY"))
return new Item_int((char*) "@@IDENTITY",
current_thd->insert_id(),21);
- my_error(ER_UNKNOWN_SYSTEM_VARIABLE,MYF(0),name);
+ if (!my_strcasecmp(name.str,"VERSION"))
+ return new Item_string("@@VERSION",server_version,
+ (uint) strlen(server_version));
+ net_printf(&current_thd->net, ER_UNKNOWN_SYSTEM_VARIABLE, name.str);
return 0;
}
diff --git a/sql/item_strfunc.cc b/sql/item_strfunc.cc
index b0ab03363d3..4ab89aa5439 100644
--- a/sql/item_strfunc.cc
+++ b/sql/item_strfunc.cc
@@ -475,7 +475,7 @@ null:
void Item_func_concat_ws::fix_length_and_dec()
{
- max_length=0;
+ max_length=separator->max_length*(arg_count-1);
for (uint i=0 ; i < arg_count ; i++)
max_length+=args[i]->max_length;
if (max_length > MAX_BLOB_WIDTH)
diff --git a/sql/item_timefunc.h b/sql/item_timefunc.h
index 9ff2734f460..53beb78e1d4 100644
--- a/sql/item_timefunc.h
+++ b/sql/item_timefunc.h
@@ -47,7 +47,7 @@ public:
Item_func_to_days(Item *a) :Item_int_func(a) {}
longlong val_int();
const char *func_name() const { return "to_days"; }
- void fix_length_and_dec() { decimals=0; max_length=6; }
+ void fix_length_and_dec() { decimals=0; max_length=6; maybe_null=1; }
};
diff --git a/sql/lex.h b/sql/lex.h
index 482a73cf11b..dd1a69f9c83 100644
--- a/sql/lex.h
+++ b/sql/lex.h
@@ -232,6 +232,8 @@ static SYMBOL symbols[] = {
{ "MASTER_USER", SYM(MASTER_USER_SYM),0,0},
{ "MAX_ROWS", SYM(MAX_ROWS),0,0},
{ "MAX_QUERIES_PER_HOUR", SYM(MAX_QUERIES_PER_HOUR), 0,0},
+ { "MAX_UPDATES_PER_HOUR", SYM(MAX_UPDATES_PER_HOUR), 0,0},
+ { "MAX_CONNECTIONS_PER_HOUR", SYM(MAX_CONNECTIONS_PER_HOUR), 0,0},
{ "MATCH", SYM(MATCH),0,0},
{ "MEDIUMBLOB", SYM(MEDIUMBLOB),0,0},
{ "MEDIUMTEXT", SYM(MEDIUMTEXT),0,0},
@@ -293,6 +295,7 @@ static SYMBOL symbols[] = {
{ "REPEATABLE", SYM(REPEATABLE_SYM),0,0},
{ "REQUIRE", SYM(REQUIRE_SYM),0,0},
{ "RESET", SYM(RESET_SYM),0,0},
+ { "USER_RESOURCES", SYM(RESOURCES),0,0},
{ "RESTORE", SYM(RESTORE_SYM),0,0},
{ "RESTRICT", SYM(RESTRICT),0,0},
{ "RETURNS", SYM(UDF_RETURNS_SYM),0,0},
diff --git a/sql/log.cc b/sql/log.cc
index 39a8ff3f81f..02ebb4348ac 100644
--- a/sql/log.cc
+++ b/sql/log.cc
@@ -531,14 +531,14 @@ int MYSQL_LOG::purge_logs(THD* thd, const char* to_log)
error = LOG_INFO_MEM;
goto err;
}
- if (init_dynamic_array(&logs_to_purge, sizeof(char*), 1024, 1024))
+ if (my_init_dynamic_array(&logs_to_purge, sizeof(char*), 1024, 1024))
{
error = LOG_INFO_MEM;
goto err;
}
logs_to_purge_inited = 1;
- if (init_dynamic_array(&logs_to_keep, sizeof(char*), 1024, 1024))
+ if (my_init_dynamic_array(&logs_to_keep, sizeof(char*), 1024, 1024))
{
error = LOG_INFO_MEM;
goto err;
diff --git a/sql/mini_client.cc b/sql/mini_client.cc
index c31fa573fea..ffb5d659238 100644
--- a/sql/mini_client.cc
+++ b/sql/mini_client.cc
@@ -620,7 +620,6 @@ mc_mysql_connect(MYSQL *mysql,const char *host, const char *user,
memcpy_fixed(&sock_addr.sin_addr,&ip_addr,sizeof(ip_addr));
}
else
-#if defined(HAVE_GETHOSTBYNAME_R) && defined(_REENTRANT) && defined(THREAD)
{
int tmp_errno;
struct hostent tmp_hostent,*hp;
@@ -631,22 +630,12 @@ mc_mysql_connect(MYSQL *mysql,const char *host, const char *user,
{
net->last_errno=CR_UNKNOWN_HOST;
sprintf(net->last_error, ER(CR_UNKNOWN_HOST), host, tmp_errno);
+ my_gethostbyname_r_free();
goto error;
}
memcpy(&sock_addr.sin_addr,hp->h_addr, (size_t) hp->h_length);
+ my_gethostbyname_r_free();
}
-#else
- {
- struct hostent *hp;
- if (!(hp=gethostbyname(host)))
- {
- net->last_errno=CR_UNKNOWN_HOST;
- sprintf(net->last_error, ER(CR_UNKNOWN_HOST), host, socket_errno);
- goto error;
- }
- memcpy(&sock_addr.sin_addr,hp->h_addr, (size_t) hp->h_length);
- }
-#endif
sock_addr.sin_port = (ushort) htons((ushort) port);
if (mc_sock_connect(sock,(struct sockaddr *) &sock_addr, sizeof(sock_addr),
mysql->options.connect_timeout) <0)
diff --git a/sql/mysql_priv.h b/sql/mysql_priv.h
index 7d43ed1b38f..d98d44efb1f 100644
--- a/sql/mysql_priv.h
+++ b/sql/mysql_priv.h
@@ -75,22 +75,30 @@ char* query_table_status(THD *thd,const char *db,const char *table_name);
#define MAX_FIELDS_BEFORE_HASH 32
#define USER_VARS_HASH_SIZE 16
#define STACK_MIN_SIZE 8192 // Abort if less stack during eval.
+#define STACK_BUFF_ALLOC 32 // For stack overrun checks
#ifndef MYSQLD_NET_RETRY_COUNT
#define MYSQLD_NET_RETRY_COUNT 10 // Abort read after this many int.
#endif
#define TEMP_POOL_SIZE 128
-/* The following parameters is to decide when to use an extra cache to
- optimise seeks when reading a big table in sorted order */
+/*
+ The following parameters is to decide when to use an extra cache to
+ optimise seeks when reading a big table in sorted order
+*/
#define MIN_FILE_LENGTH_TO_USE_ROW_CACHE (16L*1024*1024)
#define MIN_ROWS_TO_USE_TABLE_CACHE 100
-// The following is used to decide if MySQL should use table scanning
-// instead of reading with keys. The number says how many evaluation of the
-// WHERE clause is comparable to reading one extra row from a table.
+/*
+ The following is used to decide if MySQL should use table scanning
+ instead of reading with keys. The number says how many evaluation of the
+ WHERE clause is comparable to reading one extra row from a table.
+*/
#define TIME_FOR_COMPARE 5 // 5 compares == one read
-// Number of rows in a reference table when refereed through a not unique key.
-// This value is only used when we don't know anything about the key
-// distribution.
+
+/*
+ Number of rows in a reference table when refereed through a not unique key.
+ This value is only used when we don't know anything about the key
+ distribution.
+*/
#define MATCHING_ROWS_IN_OTHER_TABLE 10
/* Don't pack string keys shorter than this (if PACK_KEYS=1 isn't used) */
@@ -611,7 +619,7 @@ extern pthread_cond_t COND_refresh,COND_thread_count;
extern pthread_attr_t connection_attrib;
extern bool opt_endinfo, using_udf_functions, locked_in_memory,
opt_using_transactions, use_temp_pool, mysql_embedded;
-extern bool opt_local_infile;
+extern my_bool opt_local_infile;
extern char f_fyllchar;
extern ulong ha_read_count, ha_write_count, ha_delete_count, ha_update_count,
ha_read_key_count, ha_read_next_count, ha_read_prev_count,
diff --git a/sql/mysqld.cc b/sql/mysqld.cc
index 19ff66b24fc..b67a088c88d 100644
--- a/sql/mysqld.cc
+++ b/sql/mysqld.cc
@@ -65,7 +65,7 @@ extern "C" { // Because of SCO 3.2V4.2
#ifndef __GNU_LIBRARY__
#define __GNU_LIBRARY__ // Skip warnings in getopt.h
#endif
-#include <getopt.h>
+#include <my_getopt.h>
#ifdef HAVE_SYSENT_H
#include <sysent.h>
#endif
@@ -101,6 +101,16 @@ extern "C" { // Because of SCO 3.2V4.2
#endif /* NEED_SYS_SYSLOG_H */
int allow_severity = LOG_INFO;
int deny_severity = LOG_WARNING;
+
+#ifdef __linux__
+#define my_fromhost(A) fromhost()
+#define my_hosts_access(A) hosts_access()
+#define my_eval_client(A) eval_client()
+#else
+#define my_fromhost(A) fromhost(A)
+#define my_hosts_access(A) hosts_access(A)
+#define my_eval_client(A) eval_client(A)
+#endif
#endif /* HAVE_LIBWRAP */
#ifdef HAVE_SYS_MMAN_H
@@ -227,6 +237,11 @@ SHOW_COMP_OPTION have_query_cache=SHOW_OPTION_NO;
#endif
bool opt_skip_slave_start = 0; // If set, slave is not autostarted
+
+/* if set, some standard measures to enforce
+ slave data intergity will not be performed
+ */
+bool opt_reckless_slave = 0;
static bool opt_do_pstack = 0;
static ulong opt_specialflag=SPECIAL_ENGLISH;
static ulong back_log,connect_timeout,concurrency;
@@ -235,6 +250,8 @@ static my_socket unix_sock= INVALID_SOCKET,ip_sock= INVALID_SOCKET;
static my_string opt_logname=0,opt_update_logname=0,
opt_binlog_index_name = 0,opt_slow_logname=0;
static char mysql_home[FN_REFLEN],pidfile_name[FN_REFLEN];
+static char* mysql_home_ptr= mysql_home;
+static char* pidfile_name_ptr= pidfile_name;
static pthread_t select_thread;
static bool opt_log,opt_update_log,opt_bin_log,opt_slow_log,opt_noacl,
opt_disable_networking=0, opt_bootstrap=0,opt_skip_show_db=0,
@@ -291,8 +308,9 @@ ulong keybuff_size,sortbuff_size,max_item_sort_length,table_cache_size,
ulong com_stat[(uint) SQLCOM_END], com_other;
ulong slave_net_timeout;
ulong thread_cache_size=0, binlog_cache_size=0, max_binlog_cache_size=0;
+ulong query_cache_size=0;
#ifdef HAVE_QUERY_CACHE
-ulong query_cache_size=0, query_cache_limit=0, query_cache_startup_type=1;
+ulong query_cache_limit=0, query_cache_startup_type=1;
Query_cache query_cache;
#endif
@@ -316,7 +334,7 @@ ulong bytes_sent = 0L, bytes_received = 0L;
bool opt_endinfo,using_udf_functions,low_priority_updates, locked_in_memory;
bool opt_using_transactions, using_update_log, opt_warnings=0;
-bool opt_local_infile=1;
+my_bool opt_local_infile=1;
bool volatile abort_loop,select_thread_in_use,grant_option;
bool volatile ready_to_exit,shutdown_in_progress;
ulong refresh_version=1L,flush_version=1L; /* Increments on each reload */
@@ -341,6 +359,8 @@ char mysql_real_data_home[FN_REFLEN],
default_charset[LIBLEN],mysql_charsets_dir[FN_REFLEN], *charsets_list,
blob_newline,f_fyllchar,max_sort_char,*mysqld_user,*mysqld_chroot,
*opt_init_file;
+char *language_ptr= language;
+char *default_charset_ptr= default_charset;
#ifndef EMBEDDED_LIBRARY
char mysql_data_home_buff[2], *mysql_data_home=mysql_data_home_buff;
bool mysql_embedded=0;
@@ -401,6 +421,7 @@ enum db_type default_table_type=DB_TYPE_MYISAM;
#include <process.h>
#if !defined(EMBEDDED_LIBRARY)
HANDLE hEventShutdown;
+static char *event_name;
#include "nt_servc.h"
static NTService Service; // Service object for WinNT
#endif
@@ -978,24 +999,22 @@ static void server_init(void)
IPaddr.sin_addr.s_addr = my_bind_addr;
IPaddr.sin_port = (unsigned short) htons((unsigned short) mysql_port);
(void) setsockopt(ip_sock,SOL_SOCKET,SO_REUSEADDR,(char*)&arg,sizeof(arg));
- for(;;)
+ if (bind(ip_sock, my_reinterpret_cast(struct sockaddr *) (&IPaddr),
+ sizeof(IPaddr)) < 0)
{
- if (bind(ip_sock, my_reinterpret_cast(struct sockaddr *) (&IPaddr),
- sizeof(IPaddr)) >= 0)
- break;
DBUG_PRINT("error",("Got error: %d from bind",socket_errno));
- sql_perror("Can't start server: Bind on TCP/IP port");/* Had a loop here */
+ sql_perror("Can't start server: Bind on TCP/IP port");
sql_print_error("Do you already have another mysqld server running on port: %d ?",mysql_port);
unireg_abort(1);
}
if (listen(ip_sock,(int) back_log) < 0)
{
+ sql_perror("Can't start server: listen() on TCP/IP port");
sql_print_error("Error: listen() on TCP/IP failed with error %d",
socket_errno);
unireg_abort(1);
}
}
-
if (mysqld_chroot)
set_root(mysqld_chroot);
set_user(mysqld_user); // Works also with mysqld_user==NULL
@@ -2045,7 +2064,7 @@ The server will not act as a slave.");
(void) thr_setconcurrency(concurrency); // 10 by default
#if defined(__WIN__) && !defined(EMBEDDED_LIBRARY) //IRENA
{
- hEventShutdown=CreateEvent(0, FALSE, FALSE, "MySqlShutdown");
+ hEventShutdown=CreateEvent(0, FALSE, FALSE, event_name);
pthread_t hThread;
if (pthread_create(&hThread,&connection_attrib,handle_shutdown,0))
sql_print_error("Warning: Can't create thread to handle shutdown requests");
@@ -2180,46 +2199,70 @@ int mysql_service(void *p)
int main(int argc, char **argv)
{
- // check environment variable OS
- if (Service.GetOS()) // "OS" defined; Should be NT
+ if (Service.GetOS()) /* true NT family */
{
+ char file_path[FN_REFLEN];
+ my_path(file_path, argv[0], ""); /* Find name in path */
+ fn_format(file_path,argv[0],file_path,"",1+4+16); /* Force use of full path */
+
if (argc == 2)
+ {
+ if (Service.got_service_option(argv, "install"))
+ {
+ Service.Install(1, MYSQL_SERVICENAME, MYSQL_SERVICENAME, file_path);
+ return 0;
+ }
+ else if (Service.got_service_option(argv, "install-manual"))
+ {
+ Service.Install(0, MYSQL_SERVICENAME, MYSQL_SERVICENAME, file_path);
+ return 0;
+ }
+ else if (Service.got_service_option(argv, "remove"))
+ {
+ Service.Remove(MYSQL_SERVICENAME);
+ return 0;
+ }
+ else if (Service.IsService(argv[1]))
+ {
+ /* start an optional service */
+ load_default_groups[0]= argv[1];
+ event_name= argv[1];
+ start_mode= 1;
+ Service.Init(event_name, mysql_service );
+ return 0;
+ }
+ }
+ else if (argc == 3) /* install or remove any optional service */
{
- char path[FN_REFLEN];
- my_path(path, argv[0], ""); // Find name in path
- fn_format(path,argv[0],path,"",1+4+16); // Force use of full path
-
- if (!strcmp(argv[1],"-install") || !strcmp(argv[1],"--install"))
+ uint length=strlen(file_path);
+ file_path[sizeof(file_path)-1]=0;
+ strxnmov(file_path + length, sizeof(file_path)-2, " ", argv[2], NullS);
+ if (Service.got_service_option(argv, "install"))
{
- Service.Install(1,MYSQL_SERVICENAME,MYSQL_SERVICENAME,path);
- return 0;
+ Service.Install(1, argv[2], argv[2], file_path);
+ return 0;
}
- else if (!strcmp(argv[1],"-install-manual") || !strcmp(argv[1],"--install-manual"))
+ else if (Service.got_service_option(argv, "install-manual"))
{
- Service.Install(0,MYSQL_SERVICENAME,MYSQL_SERVICENAME,path);
- return 0;
+ Service.Install(0, argv[2], argv[2], file_path);
+ return 0;
}
- else if (!strcmp(argv[1],"-remove") || !strcmp(argv[1],"--remove"))
+ else if (Service.got_service_option(argv, "remove"))
{
- Service.Remove(MYSQL_SERVICENAME);
- return 0;
+ Service.Remove(argv[2]);
+ return 0;
}
}
- else if (argc == 1) // No arguments; start as a service
+ else if (argc == 1 && Service.IsService(MYSQL_SERVICENAME))
{
- // init service
- start_mode = 1;
- long tmp=Service.Init(MYSQL_SERVICENAME,mysql_service);
+ /* start the default service */
+ start_mode= 1;
+ event_name= "MySqlShutdown";
+ Service.Init(MYSQL_SERVICENAME, mysql_service);
return 0;
}
}
-
- /*
- This is a WIN95 machine or a start of mysqld as a standalone program
- we have to pass the arguments, in case of NT-service this will be done
- by ServiceMain()
- */
-
+ /* Start as standalone server */
Service.my_argc=argc;
Service.my_argv=argv;
mysql_service(NULL);
@@ -2326,7 +2369,6 @@ static void create_new_thread(THD *thd)
if (cached_thread_count > wake_thread)
{
start_cached_thread(thd);
- (void) pthread_mutex_unlock(&LOCK_thread_count);
}
else
{
@@ -2353,9 +2395,9 @@ static void create_new_thread(THD *thd)
(void) pthread_mutex_unlock(&LOCK_thread_count);
DBUG_VOID_RETURN;
}
-
- (void) pthread_mutex_unlock(&LOCK_thread_count);
}
+ (void) pthread_mutex_unlock(&LOCK_thread_count);
+
}
DBUG_PRINT("info",("Thread created"));
DBUG_VOID_RETURN;
@@ -2365,7 +2407,7 @@ static void create_new_thread(THD *thd)
inline void kill_broken_server()
{
/* hack to get around signals ignored in syscalls for problem OS's */
- if (unix_sock == INVALID_SOCKET || ip_sock ==INVALID_SOCKET)
+ if (unix_sock == INVALID_SOCKET || (!opt_disable_networking && ip_sock ==INVALID_SOCKET))
{
select_thread_in_use = 0;
kill_server((void*)MYSQL_KILL_SIGNAL); /* never returns */
@@ -2499,24 +2541,16 @@ pthread_handler_decl(handle_connections_sockets,arg __attribute__((unused)))
struct request_info req;
signal(SIGCHLD, SIG_DFL);
request_init(&req, RQ_DAEMON, libwrapName, RQ_FILE, new_sock, NULL);
-#ifndef __linux__
- fromhost(&req);
- if (!hosts_access(&req))
+ my_fromhost(&req);
+ if (!my_hosts_access(&req))
{
/*
This may be stupid but refuse() includes an exit(0)
which we surely don't want...
clean_exit() - same stupid thing ...
*/
- syslog(deny_severity, "refused connect from %s", eval_client(&req));
-#else
- fromhost();
- if (!hosts_access())
- {
- syslog(deny_severity, "refused connect from %s", eval_client());
-#endif
- if (req.sink)
- ((void (*)(int))req.sink)(req.fd);
+ syslog(deny_severity, "refused connect from %s",
+ my_eval_client(&req));
/*
C++ sucks (the gibberish in front just translates the supplied
@@ -2524,7 +2558,10 @@ pthread_handler_decl(handle_connections_sockets,arg __attribute__((unused)))
to a void(*sink)(int) if you omit the cast, the C++ compiler
will cry...
*/
- (void) shutdown(new_sock,2); // This looks fine to me...
+ if (req.sink)
+ ((void (*)(int))req.sink)(req.fd);
+
+ (void) shutdown(new_sock,2);
(void) closesocket(new_sock);
continue;
}
@@ -2695,7 +2732,7 @@ enum options {
OPT_BOOTSTRAP, OPT_SKIP_SHOW_DB,
OPT_TABLE_TYPE, OPT_INIT_FILE,
OPT_DELAY_KEY_WRITE, OPT_SLOW_QUERY_LOG,
- OPT_SKIP_DELAY_KEY_WRITE, OPT_CHARSETS_DIR,
+ OPT_USE_DELAY_KEY_WRITE, OPT_CHARSETS_DIR,
OPT_BDB_HOME, OPT_BDB_LOG,
OPT_BDB_TMP, OPT_BDB_NOSYNC,
OPT_BDB_LOCK, OPT_BDB_SKIP,
@@ -2709,7 +2746,7 @@ enum options {
OPT_SQL_BIN_UPDATE_SAME, OPT_REPLICATE_DO_DB,
OPT_REPLICATE_IGNORE_DB, OPT_LOG_SLAVE_UPDATES,
OPT_BINLOG_DO_DB, OPT_BINLOG_IGNORE_DB,
- OPT_WANT_CORE, OPT_SKIP_CONCURRENT_INSERT,
+ OPT_WANT_CORE, OPT_CONCURRENT_INSERT,
OPT_MEMLOCK, OPT_MYISAM_RECOVER,
OPT_REPLICATE_REWRITE_DB, OPT_SERVER_ID,
OPT_SKIP_SLAVE_START, OPT_SKIP_INNOBASE,
@@ -2740,347 +2777,767 @@ enum options {
OPT_RPL_RECOVERY_RANK,OPT_INIT_RPL_ROLE,
OPT_RELAY_LOG, OPT_RELAY_LOG_INDEX, OPT_RELAY_LOG_INFO_FILE,
OPT_SLAVE_SKIP_ERRORS, OPT_DES_KEY_FILE, OPT_LOCAL_INFILE,
+ OPT_RECKLESS_SLAVE,
OPT_SSL_SSL, OPT_SSL_KEY, OPT_SSL_CERT, OPT_SSL_CA,
- OPT_SSL_CAPATH, OPT_SSL_CIPHER
+ OPT_SSL_CAPATH, OPT_SSL_CIPHER,
+ OPT_BACK_LOG, OPT_BINLOG_CACHE_SIZE,
+ OPT_CONNECT_TIMEOUT, OPT_DELAYED_INSERT_TIMEOUT,
+ OPT_DELAYED_INSERT_LIMIT, OPT_DELAYED_QUEUE_SIZE,
+ OPT_FLUSH_TIME, OPT_FT_MIN_WORD_LEN,
+ OPT_FT_MAX_WORD_LEN, OPT_FT_MAX_WORD_LEN_FOR_SORT,
+ OPT_INTERACTIVE_TIMEOUT, OPT_JOIN_BUFF_SIZE,
+ OPT_KEY_BUFFER_SIZE, OPT_LONG_QUERY_TIME,
+ OPT_LOWER_CASE_TABLE_NAMES, OPT_MAX_ALLOWED_PACKET,
+ OPT_MAX_BINLOG_CACHE_SIZE, OPT_MAX_BINLOG_SIZE,
+ OPT_MAX_CONNECTIONS, OPT_MAX_CONNECT_ERRORS,
+ OPT_MAX_DELAYED_THREADS, OPT_MAX_HEP_TABLE_SIZE,
+ OPT_MAX_JOIN_SIZE, OPT_MAX_SORT_LENGTH,
+ OPT_MAX_TMP_TABLES, OPT_MAX_USER_CONNECTIONS,
+ OPT_MAX_WRITE_LOCK_COUNT, OPT_MYISAM_BULK_INSERT_TREE_SIZE,
+ OPT_MYISAM_BLOCK_SIZE, OPT_MYISAM_MAX_EXTRA_SORT_FILE_SIZE,
+ OPT_MYISAM_MAX_SORT_FILE_SIZE, OPT_MYISAM_SORT_BUFFER_SIZE,
+ OPT_NET_BUFFER_LENGTH, OPT_NET_RETRY_COUNT,
+ OPT_NET_READ_TIMEOUT, OPT_NET_WRITE_TIMEOUT,
+ OPT_OPEN_FILES_LIMIT, OPT_QUERY_BUFFER_SIZE,
+ OPT_QUERY_CACHE_LIMIT, OPT_QUERY_CACHE_SIZE,
+ OPT_QUERY_CACHE_STARTUP_TYPE, OPT_RECORD_BUFFER,
+ OPT_RECORD_RND_BUFFER, OPT_RELAY_LOG_SPACE_LIMIT,
+ OPT_SLAVE_NET_TIMEOUT, OPT_SLOW_LAUNCH_TIME,
+ OPT_SORT_BUFFER, OPT_TABLE_CACHE,
+ OPT_THREAD_CONCURRENCY, OPT_THREAD_CACHE_SIZE,
+ OPT_TMP_TABLE_SIZE, OPT_THREAD_STACK,
+ OPT_WAIT_TIMEOUT,
+ OPT_INNODB_MIRRORED_LOG_GROUPS,
+ OPT_INNODB_LOG_FILES_IN_GROUP,
+ OPT_INNODB_LOG_FILE_SIZE,
+ OPT_INNODB_LOG_BUFFER_SIZE,
+ OPT_INNODB_BUFFER_POOL_SIZE,
+ OPT_INNODB_ADDITIONAL_MEM_POOL_SIZE,
+ OPT_INNODB_FILE_IO_THREADS,
+ OPT_INNODB_LOCK_WAIT_TIMEOUT,
+ OPT_INNODB_THREAD_CONCURRENCY,
+ OPT_INNODB_FORCE_RECOVERY,
+ OPT_BDB_CACHE_SIZE,
+ OPT_BDB_LOG_BUFFER_SIZE,
+ OPT_BDB_MAX_LOCK
};
-static struct option long_options[] = {
- {"ansi", no_argument, 0, 'a'},
- {"basedir", required_argument, 0, 'b'},
+
+#define LONG_TIMEOUT ((ulong) 3600L*24L*365L)
+
+static struct my_option my_long_options[] =
+{
+ {"ansi", 'a', "Use ANSI SQL syntax instead of MySQL syntax", 0, 0, 0,
+ GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"basedir", 'b',
+ "Path to installation directory. All paths are usually resolved relative to this.",
+ (gptr*) &mysql_home_ptr, (gptr*) &mysql_home_ptr, 0, GET_STR, REQUIRED_ARG,
+ 0, 0, 0, 0, 0, 0},
#ifdef HAVE_BERKELEY_DB
- {"bdb-home", required_argument, 0, (int) OPT_BDB_HOME},
- {"bdb-lock-detect", required_argument, 0, (int) OPT_BDB_LOCK},
- {"bdb-logdir", required_argument, 0, (int) OPT_BDB_LOG},
- {"bdb-no-recover", no_argument, 0, (int) OPT_BDB_NO_RECOVER},
- {"bdb-no-sync", no_argument, 0, (int) OPT_BDB_NOSYNC},
- {"bdb-shared-data", no_argument, 0, (int) OPT_BDB_SHARED},
- {"bdb-tmpdir", required_argument, 0, (int) OPT_BDB_TMP},
-#endif
- {"big-tables", no_argument, 0, (int) OPT_BIG_TABLES},
- {"binlog-do-db", required_argument, 0, (int) OPT_BINLOG_DO_DB},
- {"binlog-ignore-db", required_argument, 0, (int) OPT_BINLOG_IGNORE_DB},
- {"bind-address", required_argument, 0, (int) OPT_BIND_ADDRESS},
- {"bootstrap", no_argument, 0, (int) OPT_BOOTSTRAP},
+ {"bdb-home", OPT_BDB_HOME, "Berkeley home directory", (gptr*) &berkeley_home,
+ (gptr*) &berkeley_home, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"bdb-lock-detect", OPT_BDB_LOCK,
+ "Berkeley lock detect (DEFAULT, OLDEST, RANDOM or YOUNGEST, # sec)",
+ 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"bdb-logdir", OPT_BDB_LOG, "Berkeley DB log file directory",
+ (gptr*) &berkeley_logdir, (gptr*) &berkeley_logdir, 0, GET_STR,
+ REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"bdb-no-recover", OPT_BDB_NO_RECOVER,
+ "Don't try to recover Berkeley DB tables on start", 0, 0, 0, GET_NO_ARG,
+ NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"bdb-no-sync", OPT_BDB_NOSYNC, "Don't synchronously flush logs", 0, 0, 0,
+ GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"bdb-shared-data", OPT_BDB_SHARED,
+ "Start Berkeley DB in multi-process mode", 0, 0, 0, GET_NO_ARG, NO_ARG, 0,
+ 0, 0, 0, 0, 0},
+ {"bdb-tmpdir", OPT_BDB_TMP, "Berkeley DB tempfile name",
+ (gptr*) &berkeley_tmpdir, (gptr*) &berkeley_tmpdir, 0, GET_STR,
+ REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+#endif /* HAVE_BERKELEY_DB */
+ {"skip-bdb", OPT_BDB_SKIP, "Don't use berkeley db (will save memory)",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"big-tables", OPT_BIG_TABLES,
+ "Allow big result sets by saving all temporary sets on file (Solves most 'table full' errors)",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"binlog-do-db", OPT_BINLOG_DO_DB,
+ "Tells the master it should log updates for the specified database, and exclude all others not explicitly mentioned.",
+ 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"binlog-ignore-db", OPT_BINLOG_IGNORE_DB,
+ "Tells the master that updates to the given database should not be logged tothe binary log",
+ 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"bind-address", OPT_BIND_ADDRESS, "Ip address to bind to",
+ (gptr*) &my_bind_addr, (gptr*) &my_bind_addr, 0, GET_ULONG, REQUIRED_ARG, 0,
+ 0, 0, 0, 0, 0},
+ {"bootstrap", OPT_BOOTSTRAP, "Used by mysql installation scripts", 0, 0, 0,
+ GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
#ifdef __WIN__
- {"console", no_argument, 0, (int) OPT_CONSOLE},
-#endif
- {"core-file", no_argument, 0, (int) OPT_WANT_CORE},
- {"chroot", required_argument, 0, 'r'},
- {"character-sets-dir", required_argument, 0, (int) OPT_CHARSETS_DIR},
- {"datadir", required_argument, 0, 'h'},
- {"debug", optional_argument, 0, '#'},
- {"des-key-file", required_argument, 0, (int) OPT_DES_KEY_FILE},
- {"default-character-set", required_argument, 0, 'C'},
- {"default-table-type", required_argument, 0, (int) OPT_TABLE_TYPE},
- {"delay-key-write-for-all-tables",
- no_argument, 0, (int) OPT_DELAY_KEY_WRITE},
- {"enable-locking", no_argument, 0, (int) OPT_ENABLE_LOCK},
- {"enable-named-pipe", no_argument, 0, (int) OPT_HAVE_NAMED_PIPE},
- {"enable-pstack", no_argument, 0, (int) OPT_DO_PSTACK},
- {"exit-info", optional_argument, 0, 'T'},
- {"flush", no_argument, 0, (int) OPT_FLUSH},
- {"init-rpl-role", required_argument, 0, (int) OPT_INIT_RPL_ROLE},
- /* We must always support this option to make scripts like mysqltest easier
- to do */
- {"innodb_data_file_path", required_argument, 0,
- OPT_INNODB_DATA_FILE_PATH},
+ {"console", OPT_CONSOLE, "Don't remove the console window",
+ (gptr*) &opt_console, (gptr*) &opt_console, 0, GET_BOOL, NO_ARG, 0, 0, 0,
+ 0, 0, 0},
+ {"standalone", OPT_STANDALONE,
+ "Dummy option to start as a standalone program (NT)", 0, 0, 0, GET_NO_ARG,
+ NO_ARG, 0, 0, 0, 0, 0, 0},
+#endif
+ {"core-file", OPT_WANT_CORE, "Write core on errors", 0, 0, 0, GET_NO_ARG,
+ NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"chroot", 'r', "Chroot mysqld daemon during startup.",
+ (gptr*) &mysqld_chroot, (gptr*) &mysqld_chroot, 0, GET_STR, REQUIRED_ARG,
+ 0, 0, 0, 0, 0, 0},
+ {"character-sets-dir", OPT_CHARSETS_DIR,
+ "Directory where character sets are", (gptr*) &charsets_dir,
+ (gptr*) &charsets_dir, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"datadir", 'h', "Path to the database root", (gptr*) &mysql_data_home,
+ (gptr*) &mysql_data_home, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+#ifndef DBUG_OFF
+ {"debug", '#', "Debug log.", (gptr*) &default_dbug_option,
+ (gptr*) &default_dbug_option, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
+#ifdef SAFEMALLOC
+ {"skip-safemalloc", OPT_SKIP_SAFEMALLOC,
+ "Don't use the memory allocation checking", 0, 0, 0, GET_NO_ARG, NO_ARG,
+ 0, 0, 0, 0, 0, 0},
+#endif
+#endif
+#ifdef HAVE_OPENSSL
+ {"des-key-file", OPT_DES_KEY_FILE,
+ "Load keys for des_encrypt() and des_encrypt from given file",
+ (gptr*) &des_key_file, (gptr*) &des_key_file, 0, GET_STR, REQUIRED_ARG,
+ 0, 0, 0, 0, 0, 0},
+#endif /* HAVE_OPENSSL */
+ {"default-character-set", 'C', "Set the default character set",
+ (gptr*) &default_charset_ptr, (gptr*) &default_charset_ptr, 0, GET_STR,
+ REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"default-table-type", OPT_TABLE_TYPE,
+ "Set the default table type for tables", (gptr*) &default_table_type_name,
+ (gptr*) &default_table_type_name, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0,
+ 0},
+ {"delay-key-write-for-all-tables", OPT_DELAY_KEY_WRITE,
+ "Don't flush key buffers between writes for any MyISAM table", 0, 0, 0,
+ GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"enable-locking", OPT_ENABLE_LOCK, "Enable system locking", 0, 0, 0,
+ GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+#ifdef __NT__
+ {"enable-named-pipe", OPT_HAVE_NAMED_PIPE, "Enable the named pipe (NT)",
+ (gptr*) &opt_enable_named_pipe, (gptr*) &opt_enable_named_pipe, 0, GET_BOOL,
+ NO_ARG, 0, 0, 0, 0, 0, 0},
+#endif
+ {"enable-pstack", OPT_DO_PSTACK, "Print a symbolic stack trace on failure",
+ (gptr*) &opt_do_pstack, (gptr*) &opt_do_pstack, 0, GET_BOOL, NO_ARG, 0, 0,
+ 0, 0, 0, 0},
+ {"exit-info", 'T', "Used for debugging; Use at your own risk!", 0, 0, 0,
+ GET_LONG, OPT_ARG, 0, 0, 0, 0, 0, 0},
+ {"flush", OPT_FLUSH, "Flush tables to disk between SQL commands", 0, 0, 0,
+ GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ /* We must always support the next option to make scripts like mysqltest
+ easier to do */
+ {"init-rpl-role", OPT_INIT_RPL_ROLE, "Set the replication role", 0, 0, 0,
+ GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"innodb_data_file_path", OPT_INNODB_DATA_FILE_PATH,
+ "Path to individual files and their sizes",
+ 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
#ifdef HAVE_INNOBASE_DB
- {"innodb_data_home_dir", required_argument, 0,
- OPT_INNODB_DATA_HOME_DIR},
- {"innodb_log_group_home_dir", required_argument, 0,
- OPT_INNODB_LOG_GROUP_HOME_DIR},
- {"innodb_log_arch_dir", required_argument, 0,
- OPT_INNODB_LOG_ARCH_DIR},
- {"innodb_log_archive", optional_argument, 0,
- OPT_INNODB_LOG_ARCHIVE},
- {"innodb_flush_log_at_trx_commit", optional_argument, 0,
- OPT_INNODB_FLUSH_LOG_AT_TRX_COMMIT},
- {"innodb_fast_shutdown", optional_argument, 0,
- OPT_INNODB_FAST_SHUTDOWN},
- {"innodb_flush_method", required_argument, 0,
- OPT_INNODB_FLUSH_METHOD},
-#endif
- {"help", no_argument, 0, '?'},
- {"init-file", required_argument, 0, (int) OPT_INIT_FILE},
- {"log", optional_argument, 0, 'l'},
- {"language", required_argument, 0, 'L'},
- {"local-infile", optional_argument, 0, (int) OPT_LOCAL_INFILE},
- {"log-bin", optional_argument, 0, (int) OPT_BIN_LOG},
- {"log-bin-index", required_argument, 0, (int) OPT_BIN_LOG_INDEX},
- {"log-isam", optional_argument, 0, (int) OPT_ISAM_LOG},
- {"log-update", optional_argument, 0, (int) OPT_UPDATE_LOG},
- {"log-slow-queries", optional_argument, 0, (int) OPT_SLOW_QUERY_LOG},
- {"log-long-format", no_argument, 0, (int) OPT_LONG_FORMAT},
- {"log-slave-updates", no_argument, 0, (int) OPT_LOG_SLAVE_UPDATES},
- {"low-priority-updates", no_argument, 0, (int) OPT_LOW_PRIORITY_UPDATES},
- {"master-host", required_argument, 0, (int) OPT_MASTER_HOST},
- {"master-user", required_argument, 0, (int) OPT_MASTER_USER},
- {"master-password", required_argument, 0, (int) OPT_MASTER_PASSWORD},
- {"master-port", required_argument, 0, (int) OPT_MASTER_PORT},
- {"master-connect-retry", required_argument, 0, (int) OPT_MASTER_CONNECT_RETRY},
- {"master-retry-count", required_argument, 0, (int) OPT_MASTER_RETRY_COUNT},
- {"master-info-file", required_argument, 0, (int) OPT_MASTER_INFO_FILE},
- {"master-ssl", optional_argument, 0, (int) OPT_MASTER_SSL},
- {"master-ssl-key", optional_argument, 0, (int) OPT_MASTER_SSL_KEY},
- {"master-ssl-cert", optional_argument, 0, (int) OPT_MASTER_SSL_CERT},
- {"myisam-recover", optional_argument, 0, (int) OPT_MYISAM_RECOVER},
- {"memlock", no_argument, 0, (int) OPT_MEMLOCK},
+ {"innodb_data_home_dir", OPT_INNODB_DATA_HOME_DIR,
+ "The common part for Innodb table spaces", (gptr*) &innobase_data_home_dir,
+ (gptr*) &innobase_data_home_dir, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0,
+ 0},
+ {"innodb_log_group_home_dir", OPT_INNODB_LOG_GROUP_HOME_DIR,
+ "Path to innodb log files.", (gptr*) &innobase_log_group_home_dir,
+ (gptr*) &innobase_log_group_home_dir, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0,
+ 0, 0},
+ {"innodb_log_arch_dir", OPT_INNODB_LOG_ARCH_DIR,
+ "Where full logs should be archived", (gptr*) &innobase_log_arch_dir,
+ (gptr*) &innobase_log_arch_dir, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"innodb_log_archive", OPT_INNODB_LOG_ARCHIVE,
+ "Set to 1 if you want to have logs archived", 0, 0, 0, GET_LONG, OPT_ARG,
+ 0, 0, 0, 0, 0, 0},
+ {"innodb_flush_log_at_trx_commit", OPT_INNODB_FLUSH_LOG_AT_TRX_COMMIT,
+ "Set to 0 if you don't want to flush logs", 0, 0, 0, GET_LONG, OPT_ARG,
+ 0, 0, 0, 0, 0, 0},
+ {"innodb_flush_method", OPT_INNODB_FLUSH_METHOD,
+ "With which method to flush data", (gptr*) &innobase_unix_file_flush_method,
+ (gptr*) &innobase_unix_file_flush_method, 0, GET_STR, REQUIRED_ARG, 0, 0, 0,
+ 0, 0, 0},
+ {"innodb_fast_shutdown", OPT_INNODB_FAST_SHUTDOWN,
+ "Speeds up server shutdown process", (gptr*) &innobase_fast_shutdown,
+ (gptr*) &innobase_fast_shutdown, 0, GET_BOOL, NO_ARG, 1, 0, 0, 0, 0, 0},
+#endif /* End HAVE_INNOBASE_DB */
+ {"help", '?', "Display this help and exit", 0, 0, 0, GET_NO_ARG, NO_ARG, 0,
+ 0, 0, 0, 0, 0},
+ {"init-file", OPT_INIT_FILE, "Read SQL commands from this file at startup",
+ (gptr*) &opt_init_file, (gptr*) &opt_init_file, 0, GET_STR, REQUIRED_ARG,
+ 0, 0, 0, 0, 0, 0},
+ {"log", 'l', "Log connections and queries to file", (gptr*) &opt_logname,
+ (gptr*) &opt_logname, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
+ {"language", 'L',
+ "Client error messages in given language. May be given as a full path",
+ (gptr*) &language_ptr, (gptr*) &language_ptr, 0, GET_STR, REQUIRED_ARG,
+ 0, 0, 0, 0, 0, 0},
+ {"local-infile", OPT_LOCAL_INFILE,
+ "Enable/disable LOAD DATA LOCAL INFILE (takes values 1|0)",
+ (gptr*) &opt_local_infile, (gptr*) &opt_local_infile, 0, GET_BOOL, OPT_ARG,
+ 1, 0, 0, 0, 0, 0},
+ {"log-bin", OPT_BIN_LOG,
+ "Log queries in new binary format (for replication)",
+ (gptr*) &opt_bin_logname, (gptr*) &opt_bin_logname, 0, GET_STR_ALLOC,
+ OPT_ARG, 0, 0, 0, 0, 0, 0},
+ {"log-bin-index", OPT_BIN_LOG_INDEX,
+ "File that holds the names for last binary log files",
+ (gptr*) &opt_binlog_index_name, (gptr*) &opt_binlog_index_name, 0, GET_STR,
+ REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"log-isam", OPT_ISAM_LOG, "Log all MyISAM changes to file",
+ (gptr*) &myisam_log_filename, (gptr*) &myisam_log_filename, 0, GET_STR,
+ OPT_ARG, 0, 0, 0, 0, 0, 0},
+ {"log-update", OPT_UPDATE_LOG,
+ "Log updates to file.# where # is a unique number if not given.",
+ (gptr*) &opt_update_logname, (gptr*) &opt_update_logname, 0, GET_STR,
+ OPT_ARG, 0, 0, 0, 0, 0, 0},
+ {"log-slow-queries", OPT_SLOW_QUERY_LOG,
+ "Log slow queries to this log file. Defaults logging to hostname-slow.log",
+ (gptr*) &opt_slow_logname, (gptr*) &opt_slow_logname, 0, GET_STR, OPT_ARG,
+ 0, 0, 0, 0, 0, 0},
+ {"log-long-format", OPT_LONG_FORMAT,
+ "Log some extra information to update log", 0, 0, 0, GET_NO_ARG, NO_ARG,
+ 0, 0, 0, 0, 0, 0},
+ {"log-slave-updates", OPT_LOG_SLAVE_UPDATES,
+ "Tells the slave to log the updates from the slave thread to the binary log. Off by default. You will need to turn it on if you plan to daisy-chain the slaves.",
+ (gptr*) &opt_log_slave_updates, (gptr*) &opt_log_slave_updates, 0, GET_BOOL,
+ NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"low-priority-updates", OPT_LOW_PRIORITY_UPDATES,
+ "INSERT/DELETE/UPDATE has lower priority than selects", 0, 0, 0, GET_NO_ARG,
+ NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"master-host", OPT_MASTER_HOST,
+ "Master hostname or IP address for replication. If not set, the slave thread will not be started. Note that the setting of master-host will be ignored if there exists a valid master.info file.",
+ (gptr*) &master_host, (gptr*) &master_host, 0, GET_STR, REQUIRED_ARG, 0, 0,
+ 0, 0, 0, 0},
+ {"master-user", OPT_MASTER_USER,
+ "The username the slave thread will use for authentication when connecting to the master. The user must have FILE privilege. If the master user is not set, user test is assumed. The value in master.info will take precedence if it can be read.",
+ (gptr*) &master_user, (gptr*) &master_user, 0, GET_STR, REQUIRED_ARG, 0, 0,
+ 0, 0, 0, 0},
+ {"master-password", OPT_MASTER_PASSWORD,
+ "The password the slave thread will authenticate with when connecting to the master. If not set, an empty password is assumed.The value in master.info will take precedence if it can be read.",
+ 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"master-port", OPT_MASTER_PORT,
+ "The port the master is listening on. If not set, the compiled setting of MYSQL_PORT is assumed. If you have not tinkered with configure options, this should be 3306. The value in master.info will take precedence if it can be read",
+ (gptr*) &master_port, (gptr*) &master_port, 0, GET_UINT, REQUIRED_ARG,
+ MYSQL_PORT, 0, 0, 0, 0, 0},
+ {"master-connect-retry", OPT_MASTER_CONNECT_RETRY,
+ "The number of seconds the slave thread will sleep before retrying to connect to the master in case the master goes down or the connection is lost.",
+ (gptr*) &master_connect_retry, (gptr*) &master_connect_retry, 0, GET_UINT,
+ REQUIRED_ARG, 60, 0, 0, 0, 0, 0},
+ {"master-retry-count", OPT_MASTER_RETRY_COUNT,
+ "The number of tries the slave will make to connect to the master before giving up.",
+ (gptr*) &master_retry_count, (gptr*) &master_retry_count, 0, GET_ULONG,
+ REQUIRED_ARG, 60, 0, 0, 0, 0, 0},
+ {"master-info-file", OPT_MASTER_INFO_FILE,
+ "The location of the file that remembers where we left off on the master during the replication process. The default is `master.info' in the data directory. You should not need to change this.",
+ (gptr*) &master_info_file, (gptr*) &master_info_file, 0, GET_STR,
+ REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"master-ssl", OPT_MASTER_SSL,
+ "Turn SSL on for replication. Be warned that is this is a relatively new feature.",
+ (gptr*) &master_ssl, (gptr*) &master_ssl, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0,
+ 0, 0},
+ {"master-ssl-key", OPT_MASTER_SSL_KEY,
+ "Master SSL keyfile name. Only applies if you have enabled master-ssl.",
+ (gptr*) &master_ssl_key, (gptr*) &master_ssl_key, 0, GET_STR, OPT_ARG,
+ 0, 0, 0, 0, 0, 0},
+ {"master-ssl-cert", OPT_MASTER_SSL_CERT,
+ "Master SSL certificate file name. Only applies if you have enabled master-ssl.",
+ (gptr*) &master_ssl_cert, (gptr*) &master_ssl_cert, 0, GET_STR, OPT_ARG,
+ 0, 0, 0, 0, 0, 0},
+ {"myisam-recover", OPT_MYISAM_RECOVER,
+ "Syntax: myisam-recover[=option[,option...]], where option can be DEFAULT, BACKUP or FORCE.",
+ (gptr*) &myisam_recover_options_str, (gptr*) &myisam_recover_options_str, 0,
+ GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
/*
Option needs to be available for the test case to pass in non-debugging
mode. is a no-op.
*/
- {"disconnect-slave-event-count", required_argument, 0,
- (int) OPT_DISCONNECT_SLAVE_EVENT_COUNT},
- {"abort-slave-event-count", required_argument, 0,
- (int) OPT_ABORT_SLAVE_EVENT_COUNT},
- {"max-binlog-dump-events", required_argument, 0,
- (int) OPT_MAX_BINLOG_DUMP_EVENTS},
- {"sporadic-binlog-dump-fail", no_argument, 0,
- (int) OPT_SPORADIC_BINLOG_DUMP_FAIL},
- {"safemalloc-mem-limit", required_argument, 0, (int)
- OPT_SAFEMALLOC_MEM_LIMIT},
- {"new", no_argument, 0, 'n'},
+ {"memlock", OPT_MEMLOCK, "Lock mysqld in memory", (gptr*) &locked_in_memory,
+ (gptr*) &locked_in_memory, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"disconnect-slave-event-count", OPT_DISCONNECT_SLAVE_EVENT_COUNT,
+ "Undocumented: Meant for debugging and testing of replication",
+ (gptr*) &disconnect_slave_event_count,
+ (gptr*) &disconnect_slave_event_count, 0, GET_INT, REQUIRED_ARG, 0, 0, 0,
+ 0, 0, 0},
+ {"abort-slave-event-count", OPT_ABORT_SLAVE_EVENT_COUNT,
+ "Undocumented: Meant for debugging and testing of replication",
+ (gptr*) &abort_slave_event_count, (gptr*) &abort_slave_event_count,
+ 0, GET_INT, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"max-binlog-dump-events", OPT_MAX_BINLOG_DUMP_EVENTS, "Undocumented",
+ (gptr*) &max_binlog_dump_events, (gptr*) &max_binlog_dump_events, 0,
+ GET_INT, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"sporadic-binlog-dump-fail", OPT_SPORADIC_BINLOG_DUMP_FAIL, "Undocumented",
+ (gptr*) &opt_sporadic_binlog_dump_fail,
+ (gptr*) &opt_sporadic_binlog_dump_fail, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0,
+ 0},
+ {"safemalloc-mem-limit", OPT_SAFEMALLOC_MEM_LIMIT,
+ "Simulate memory shortage when compiled with the --with-debug=full option",
+ 0, 0, 0, GET_ULL, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"new", 'n', "Use very new possible 'unsafe' functions", 0, 0, 0, GET_NO_ARG,
+ NO_ARG, 0, 0, 0, 0, 0, 0},
#ifdef NOT_YET
- {"no-mix-table-types", no_argument, 0, (int) OPT_NO_MIX_TYPE},
-#endif
- {"old-protocol", no_argument, 0, 'o'},
- {"old-rpl-compat", no_argument, 0, (int) OPT_OLD_RPL_COMPAT},
+ {"no-mix-table-types", OPT_NO_MIX_TYPE, "Undocumented",
+ (gptr*) &opt_no_mix_types, (gptr*) &opt_no_mix_types, 0, GET_BOOL, NO_ARG,
+ 0, 0, 0, 0, 0, 0},
+#endif
+ {"old-protocol", 'o', "Use the old (3.20) protocol",
+ (gptr*) &protocol_version, (gptr*) &protocol_version, 0, GET_UINT, NO_ARG,
+ PROTOCOL_VERSION, 0, 0, 0, 0, 0},
+ {"old-rpl-compat", OPT_OLD_RPL_COMPAT, "Undocumented",
+ (gptr*) &opt_old_rpl_compat, (gptr*) &opt_old_rpl_compat, 0, GET_BOOL,
+ NO_ARG, 0, 0, 0, 0, 0, 0},
#ifdef ONE_THREAD
- {"one-thread", no_argument, 0, (int) OPT_ONE_THREAD},
-#endif
- {"pid-file", required_argument, 0, (int) OPT_PID_FILE},
- {"port", required_argument, 0, 'P'},
- {"replicate-do-db", required_argument, 0, (int) OPT_REPLICATE_DO_DB},
- {"replicate-do-table", required_argument, 0,
- (int) OPT_REPLICATE_DO_TABLE},
- {"replicate-wild-do-table", required_argument, 0,
- (int) OPT_REPLICATE_WILD_DO_TABLE},
- {"replicate-ignore-db", required_argument, 0,
- (int) OPT_REPLICATE_IGNORE_DB},
- {"replicate-ignore-table", required_argument, 0,
- (int) OPT_REPLICATE_IGNORE_TABLE},
- {"replicate-wild-ignore-table", required_argument, 0,
- (int) OPT_REPLICATE_WILD_IGNORE_TABLE},
- {"replicate-rewrite-db", required_argument, 0,
- (int) OPT_REPLICATE_REWRITE_DB},
+ {"one-thread", OPT_ONE_THREAD,
+ "Only use one thread (for debugging under Linux)", 0, 0, 0, GET_NO_ARG,
+ NO_ARG, 0, 0, 0, 0, 0, 0},
+#endif
+ {"pid-file", OPT_PID_FILE, "Pid file used by safe_mysqld",
+ (gptr*) &pidfile_name_ptr, (gptr*) &pidfile_name_ptr, 0, GET_STR,
+ REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"port", 'P', "Port number to use for connection.", (gptr*) &mysql_port,
+ (gptr*) &mysql_port, 0, GET_UINT, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"reckless-slave", OPT_RECKLESS_SLAVE, "Undocumented", 0, 0, 0, GET_NO_ARG,
+ NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"replicate-do-db", OPT_REPLICATE_DO_DB,
+ "Tells the slave thread to restrict replication to the specified database. To specify more than one database, use the directive multiple times, once for each database. Note that this will only work if you do not use cross-database queries such as UPDATE some_db.some_table SET foo='bar' while having selected a different or no database. If you need cross database updates to work, make sure you have 3.23.28 or later, and use replicate-wild-do-table=db_name.%.",
+ 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"replicate-do-table", OPT_REPLICATE_DO_TABLE,
+ "Tells the slave thread to restrict replication to the specified table. To specify more than one table, use the directive multiple times, once for each table. This will work for cross-database updates, in contrast to replicate-do-db.",
+ 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"replicate-wild-do-table", OPT_REPLICATE_WILD_DO_TABLE,
+ "Tells the slave thread to restrict replication to the tables that match the specified wildcard pattern. To specify more than one table, use the directive multiple times, once for each table. This will work for cross-database updates. Example: replicate-wild-do-table=foo%.bar% will replicate only updates to tables in all databases that start with foo and whose table names start with bar",
+ 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"replicate-ignore-db", OPT_REPLICATE_IGNORE_DB,
+ "Tells the slave thread to not replicate to the specified database. To specify more than one database to ignore, use the directive multiple times, once for each database. This option will not work if you use cross database updates. If you need cross database updates to work, make sure you have 3.23.28 or later, and use replicate-wild-ignore-table=db_name.%. ",
+ 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"replicate-ignore-table", OPT_REPLICATE_IGNORE_TABLE,
+ "Tells the slave thread to not replicate to the specified table. To specify more than one table to ignore, use the directive multiple times, once for each table. This will work for cross-datbase updates, in contrast to replicate-ignore-db.",
+ 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"replicate-wild-ignore-table", OPT_REPLICATE_WILD_IGNORE_TABLE,
+ "Tells the slave thread to not replicate to the tables that match the given wildcard pattern. To specify more than one table to ignore, use the directive multiple times, once for each table. This will work for cross-database updates. Example: replicate-wild-ignore-table=foo%.bar% will not do updates to tables in databases that start with foo and whose table names start with bar.",
+ 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"replicate-rewrite-db", OPT_REPLICATE_REWRITE_DB,
+ "Updates to a database with a different name than the original. Example: replicate-rewrite-db=master_db_name->slave_db_name",
+ 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
// In replication, we may need to tell the other servers how to connect
- {"report-host", required_argument, 0, (int) OPT_REPORT_HOST},
- {"report-user", required_argument, 0, (int) OPT_REPORT_USER},
- {"report-password", required_argument, 0, (int) OPT_REPORT_PASSWORD},
- {"report-port", required_argument, 0, (int) OPT_REPORT_PORT},
- {"rpl-recovery-rank", required_argument, 0, (int) OPT_RPL_RECOVERY_RANK},
- {"relay-log", required_argument, 0, (int) OPT_RELAY_LOG},
- {"relay-log-index", required_argument, 0, (int) OPT_RELAY_LOG_INDEX},
- {"safe-mode", no_argument, 0, (int) OPT_SAFE},
- {"safe-show-database", no_argument, 0, (int) OPT_SAFE_SHOW_DB},
- {"safe-user-create", no_argument, 0, (int) OPT_SAFE_USER_CREATE},
- {"server-id", required_argument, 0, (int) OPT_SERVER_ID},
- {"set-variable", required_argument, 0, 'O'},
- {"show-slave-auth-info", no_argument, 0,
- (int) OPT_SHOW_SLAVE_AUTH_INFO},
- {"skip-bdb", no_argument, 0, (int) OPT_BDB_SKIP},
- {"skip-innodb", no_argument, 0, (int) OPT_INNODB_SKIP},
- {"skip-concurrent-insert", no_argument, 0, (int) OPT_SKIP_CONCURRENT_INSERT},
- {"skip-delay-key-write", no_argument, 0, (int) OPT_SKIP_DELAY_KEY_WRITE},
- {"skip-grant-tables", no_argument, 0, (int) OPT_SKIP_GRANT},
- {"skip-locking", no_argument, 0, (int) OPT_SKIP_LOCK},
- {"skip-host-cache", no_argument, 0, (int) OPT_SKIP_HOST_CACHE},
- {"skip-name-resolve", no_argument, 0, (int) OPT_SKIP_RESOLVE},
- {"skip-networking", no_argument, 0, (int) OPT_SKIP_NETWORKING},
- {"skip-new", no_argument, 0, (int) OPT_SKIP_NEW},
- {"skip-safemalloc", no_argument, 0, (int) OPT_SKIP_SAFEMALLOC},
- {"skip-show-database", no_argument, 0, (int) OPT_SKIP_SHOW_DB},
- {"skip-slave-start", no_argument, 0, (int) OPT_SKIP_SLAVE_START},
- {"skip-stack-trace", no_argument, 0, (int) OPT_SKIP_STACK_TRACE},
- {"skip-symlink", no_argument, 0, (int) OPT_SKIP_SYMLINKS},
- {"skip-thread-priority", no_argument, 0, (int) OPT_SKIP_PRIOR},
- {"relay-log-info-file", required_argument, 0,
- (int) OPT_RELAY_LOG_INFO_FILE},
- {"slave-load-tmpdir", required_argument, 0, (int) OPT_SLAVE_LOAD_TMPDIR},
- {"slave-skip-errors", required_argument, 0,
- (int) OPT_SLAVE_SKIP_ERRORS},
- {"socket", required_argument, 0, (int) OPT_SOCKET},
- {"sql-bin-update-same", no_argument, 0, (int) OPT_SQL_BIN_UPDATE_SAME},
- {"sql-mode", required_argument, 0, (int) OPT_SQL_MODE},
+ {"report-host", OPT_REPORT_HOST,
+ "Hostname or IP of the slave to be reported to to the master during slave registration. Will appear in the output of SHOW SLAVE HOSTS. Leave unset if you do not want the slave to register itself with the master. Note that it is not sufficient for the master to simply read the IP of the slave off the socket once the slave connects. Due to NAT and other routing issues, that IP may not be valid for connecting to the slave from the master or other hosts.",
+ (gptr*) &report_host, (gptr*) &report_host, 0, GET_STR, REQUIRED_ARG, 0, 0,
+ 0, 0, 0, 0},
+ {"report-user", OPT_REPORT_USER, "Undocumented", (gptr*) &report_user,
+ (gptr*) &report_user, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"report-password", OPT_REPORT_PASSWORD, "Undocumented",
+ (gptr*) &report_password, (gptr*) &report_password, 0, GET_STR,
+ REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"report-port", OPT_REPORT_PORT,
+ "Port for connecting to slave reported to the master during slave registration. Set it only if the slave is listening on a non-default port or if you have a special tunnel from the master or other clients to the slave. If not sure, leave this option unset.",
+ (gptr*) &report_port, (gptr*) &report_port, 0, GET_UINT, REQUIRED_ARG,
+ MYSQL_PORT, 0, 0, 0, 0, 0},
+ {"rpl-recovery-rank", OPT_RPL_RECOVERY_RANK, "Undocumented",
+ (gptr*) &rpl_recovery_rank, (gptr*) &rpl_recovery_rank, 0, GET_UINT,
+ REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"relay-log", OPT_RELAY_LOG, "Undocumented",
+ (gptr*) &opt_relay_logname, (gptr*) &opt_relay_logname, 0,
+ GET_STR_ALLOC, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"relay-log-index", OPT_RELAY_LOG_INDEX, "Undocumented",
+ (gptr*) &opt_relaylog_index_name, (gptr*) &opt_relaylog_index_name, 0,
+ GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"safe-mode", OPT_SAFE, "Skip some optimize stages (for testing).",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"safe-show-database", OPT_SAFE_SHOW_DB,
+ "Don't show databases for which the user has no privileges",
+ (gptr*) &opt_safe_show_db, (gptr*) &opt_safe_show_db, 0, GET_BOOL, NO_ARG,
+ 0, 0, 0, 0, 0, 0},
+ {"safe-user-create", OPT_SAFE_USER_CREATE,
+ "Don't allow new user creation by the user who has no write privileges to the mysql.user table",
+ (gptr*) &opt_safe_user_create, (gptr*) &opt_safe_user_create, 0, GET_BOOL,
+ NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"server-id", OPT_SERVER_ID,
+ "Uniquely identifies the server instance in the community of replication partners",
+ (gptr*) &server_id, (gptr*) &server_id, 0, GET_UINT, REQUIRED_ARG, 0, 0, 0,
+ 0, 0, 0},
+ {"set-variable", 'O',
+ "Change the value of a variable. Please note that this option is deprecated;you can set variables directly with --variable-name=value.",
+ 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"show-slave-auth-info", OPT_SHOW_SLAVE_AUTH_INFO, "Undocumented",
+ (gptr*) &opt_show_slave_auth_info, (gptr*) &opt_show_slave_auth_info, 0,
+ GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"concurrent-insert", OPT_CONCURRENT_INSERT,
+ "Use concurrent insert with MyISAM. Disable with prefix --skip-",
+ (gptr*) &myisam_concurrent_insert, (gptr*) &myisam_concurrent_insert,
+ 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"delay-key-write", OPT_USE_DELAY_KEY_WRITE,
+ "Use delay_key_write option for all tables. Disable with prefix --skip-",
+ (gptr*) &myisam_delay_key_write, (gptr*) &myisam_delay_key_write, 0,
+ GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"skip-grant-tables", OPT_SKIP_GRANT,
+ "Start without grant tables. This gives all users FULL ACCESS to all tables!",
+ (gptr*) &opt_noacl, (gptr*) &opt_noacl, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0,
+ 0},
+ {"skip-innodb", OPT_INNODB_SKIP, "Don't use Innodb (will save memory)",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"skip-locking", OPT_SKIP_LOCK,
+ "Don't use system locking. To use isamchk one has to shut down the server.",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"skip-host-cache", OPT_SKIP_HOST_CACHE, "Don't cache host names", 0, 0, 0,
+ GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"skip-name-resolve", OPT_SKIP_RESOLVE,
+ "Don't resolve hostnames. All hostnames are IP's or 'localhost'",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"skip-networking", OPT_SKIP_NETWORKING,
+ "Don't allow connection with TCP/IP.", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0,
+ 0, 0, 0},
+ {"skip-new", OPT_SKIP_NEW, "Don't use new, possible wrong routines.",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"skip-show-database", OPT_SKIP_SHOW_DB,
+ "Don't allow 'SHOW DATABASE' commands", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0,
+ 0, 0, 0, 0},
+ {"skip-slave-start", OPT_SKIP_SLAVE_START,
+ "If set, slave is not autostarted.", (gptr*) &opt_skip_slave_start,
+ (gptr*) &opt_skip_slave_start, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"skip-stack-trace", OPT_SKIP_STACK_TRACE,
+ "Don't print a stack trace on failure", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0,
+ 0, 0, 0, 0},
+ {"skip-symlink", OPT_SKIP_SYMLINKS, "Don't allow symlinking of tables",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"skip-thread-priority", OPT_SKIP_PRIOR,
+ "Don't give threads different priorities.", 0, 0, 0, GET_NO_ARG, NO_ARG, 0,
+ 0, 0, 0, 0, 0},
+ {"relay-log-info-file", OPT_RELAY_LOG_INFO_FILE, "Undocumented",
+ (gptr*) &relay_log_info_file, (gptr*) &relay_log_info_file, 0, GET_STR,
+ REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"slave-load-tmpdir", OPT_SLAVE_LOAD_TMPDIR, "Undocumented",
+ (gptr*) &slave_load_tmpdir, (gptr*) &slave_load_tmpdir, 0, GET_STR_ALLOC,
+ REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"slave-skip-errors", OPT_SLAVE_SKIP_ERRORS,
+ "Tells the slave thread to continue replication when a query returns an error from the provided list",
+ 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"socket", OPT_SOCKET, "Socket file to use for connection",
+ (gptr*) &mysql_unix_port, (gptr*) &mysql_unix_port, 0, GET_STR,
+ REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"sql-bin-update-same", OPT_SQL_BIN_UPDATE_SAME,
+ "If set, setting SQL_LOG_BIN to a value will automatically set SQL_LOG_UPDATE to the same value and vice versa.",
+ (gptr*) &opt_sql_bin_update, (gptr*) &opt_sql_bin_update, 0, GET_BOOL,
+ NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"sql-mode", OPT_SQL_MODE,
+ "Syntax: sql-mode=option[,option[,option...]] where option can be one of: REAL_AS_FLOAT, PIPES_AS_CONCAT, ANSI_QUOTES, IGNORE_SPACE, SERIALIZE, ONLY_FULL_GROUP_BY, NO_UNSIGNED_SUBTRACTION.",
+ (gptr*) &sql_mode_str, (gptr*) &sql_mode_str, 0, GET_STR, REQUIRED_ARG, 0,
+ 0, 0, 0, 0, 0},
#ifdef HAVE_OPENSSL
- {"ssl", no_argument, 0, OPT_SSL_SSL},
- {"ssl-key", required_argument, 0, OPT_SSL_KEY},
- {"ssl-cert", required_argument, 0, OPT_SSL_CERT},
- {"ssl-ca", required_argument, 0, OPT_SSL_CA},
- {"ssl-capath", required_argument, 0, OPT_SSL_CAPATH},
- {"ssl-cipher", required_argument, 0, OPT_SSL_CIPHER},
-#endif
-#ifdef __WIN__
- {"standalone", no_argument, 0, (int) OPT_STANDALONE},
-#endif
- {"transaction-isolation", required_argument, 0, (int) OPT_TX_ISOLATION},
- {"temp-pool", no_argument, 0, (int) OPT_TEMP_POOL},
- {"tmpdir", required_argument, 0, 't'},
- {"use-locking", no_argument, 0, (int) OPT_USE_LOCKING},
+#include "sslopt-longopts.h"
+#endif
+ {"temp-pool", OPT_TEMP_POOL,
+ "Using this option will cause most temporary files created to use a small set of names, rather than a unique name for each new file.",
+ (gptr*) &use_temp_pool, (gptr*) &use_temp_pool, 0, GET_BOOL, NO_ARG, 0, 0,
+ 0, 0, 0, 0},
+ {"tmpdir", 't', "Path for temporary files", (gptr*) &mysql_tmpdir,
+ (gptr*) &mysql_tmpdir, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"transaction-isolation", OPT_TX_ISOLATION,
+ "Default transaction isolation level", (gptr*) &default_tx_isolation_name,
+ (gptr*) &default_tx_isolation_name, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0,
+ 0, 0},
+ {"use-locking", OPT_USE_LOCKING, "Use system (external) locking",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
#ifdef USE_SYMDIR
- {"use-symbolic-links", no_argument, 0, 's'},
-#endif
- {"user", required_argument, 0, 'u'},
- {"version", no_argument, 0, 'V'},
- {"warnings", no_argument, 0, 'W'},
- {0, 0, 0, 0}
-};
-
-#define LONG_TIMEOUT ((ulong) 3600L*24L*365L)
-
-CHANGEABLE_VAR changeable_vars[] = {
- { "back_log", (long*) &back_log,
- 50, 1, 65535, 0, 1 },
+ {"use-symbolic-links", 's', "Enable symbolic link support",
+ (gptr*) &my_use_symdir, (gptr*) &my_use_symdir, 0, GET_BOOL, NO_ARG, 0, 0,
+ 0, 0, 0, 0},
+#endif
+ {"user", 'u', "Run mysqld daemon as user", (gptr*) &mysqld_user,
+ (gptr*) &mysqld_user, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"version", 'V', "Output version information and exit", 0, 0, 0, GET_NO_ARG,
+ NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"version", 'v', "Synonym for option -v", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0,
+ 0, 0, 0, 0},
+ {"warnings", 'W', "Log some not critical warnings to the log file",
+ (gptr*) &opt_warnings, (gptr*) &opt_warnings, 0, GET_BOOL, NO_ARG, 0, 0, 0,
+ 0, 0, 0},
+ { "back_log", OPT_BACK_LOG,
+ "The number of outstanding connection requests MySQL can have. This comes into play when the main MySQL thread gets very many connection requests in a very short time.", (gptr*) &back_log, (gptr*) &back_log, 0, GET_ULONG,
+ REQUIRED_ARG, 50, 1, 65535, 0, 1, 0 },
#ifdef HAVE_BERKELEY_DB
- { "bdb_cache_size", (long*) &berkeley_cache_size,
- KEY_CACHE_SIZE, 20*1024, (long) ~0, 0, IO_SIZE },
- {"bdb_log_buffer_size", (long*) &berkeley_log_buffer_size, 0, 256*1024L,
- ~0L, 0, 1024},
- { "bdb_max_lock", (long*) &berkeley_max_lock,
- 10000, 0, (long) ~0, 0, 1 },
- /* QQ: The following should be removed soon! */
- { "bdb_lock_max", (long*) &berkeley_max_lock,
- 10000, 0, (long) ~0, 0, 1 },
-#endif
- { "binlog_cache_size", (long*) &binlog_cache_size,
- 32*1024L, IO_SIZE, ~0L, 0, IO_SIZE },
- { "connect_timeout", (long*) &connect_timeout,
- CONNECT_TIMEOUT, 2, LONG_TIMEOUT, 0, 1 },
- { "delayed_insert_timeout", (long*) &delayed_insert_timeout,
- DELAYED_WAIT_TIMEOUT, 1, LONG_TIMEOUT, 0, 1 },
- { "delayed_insert_limit", (long*) &delayed_insert_limit,
- DELAYED_LIMIT, 1, ~0L, 0, 1 },
- { "delayed_queue_size", (long*) &delayed_queue_size,
- DELAYED_QUEUE_SIZE, 1, ~0L, 0, 1 },
- { "flush_time", (long*) &flush_time,
- FLUSH_TIME, 0, LONG_TIMEOUT, 0, 1 },
- { "ft_min_word_len", (long*) &ft_min_word_len,
- 4, 1, HA_FT_MAXLEN, 0, 1 },
- { "ft_max_word_len", (long*) &ft_max_word_len,
- HA_FT_MAXLEN, 10, HA_FT_MAXLEN, 0, 1 },
- { "ft_max_word_len_for_sort",(long*) &ft_max_word_len_for_sort,
- 20, 4, HA_FT_MAXLEN, 0, 1 },
+ { "bdb_cache_size", OPT_BDB_CACHE_SIZE,
+ "The buffer that is allocated to cache index and rows for BDB tables.",
+ (gptr*) &berkeley_cache_size, (gptr*) &berkeley_cache_size, 0, GET_ULONG,
+ REQUIRED_ARG, KEY_CACHE_SIZE, 20*1024, (long) ~0, 0, IO_SIZE, 0},
+ {"bdb_log_buffer_size", OPT_BDB_LOG_BUFFER_SIZE,
+ "The buffer that is allocated to cache index and rows for BDB tables.",
+ (gptr*) &berkeley_log_buffer_size, (gptr*) &berkeley_log_buffer_size, 0,
+ GET_ULONG, REQUIRED_ARG, 0, 256*1024L, ~0L, 0, 1024, 0},
+ {"bdb_max_lock", OPT_BDB_MAX_LOCK,
+ "The maximum number of locks you can have active on a BDB table.",
+ (gptr*) &berkeley_max_lock, (gptr*) &berkeley_max_lock, 0, GET_ULONG,
+ REQUIRED_ARG, 10000, 0, (long) ~0, 0, 1, 0},
+ /* QQ: The following should be removed soon! */
+ {"bdb_lock_max", OPT_BDB_MAX_LOCK, "Synonym for bdb_max_lock",
+ (gptr*) &berkeley_max_lock, (gptr*) &berkeley_max_lock, 0, GET_ULONG,
+ REQUIRED_ARG, 10000, 0, (long) ~0, 0, 1, 0},
+#endif /* HAVE_BERKELEY_DB */
+ {"binlog_cache_size", OPT_BINLOG_CACHE_SIZE,
+ "The size of the cache to hold the SQL statements for the binary log during a transaction. If you often use big, multi-statement transactions you can increase this to get more performance.",
+ (gptr*) &binlog_cache_size, (gptr*) &binlog_cache_size, 0, GET_ULONG,
+ REQUIRED_ARG, 32*1024L, IO_SIZE, ~0L, 0, IO_SIZE, 0},
+ {"connect_timeout", OPT_CONNECT_TIMEOUT,
+ "The number of seconds the mysqld server is waiting for a connect packet before responding with Bad handshake",
+ (gptr*) &connect_timeout, (gptr*) &connect_timeout, 0, GET_ULONG,
+ REQUIRED_ARG, CONNECT_TIMEOUT, 2, LONG_TIMEOUT, 0, 1, 0 },
+ {"delayed_insert_timeout", OPT_DELAYED_INSERT_TIMEOUT,
+ "How long a INSERT DELAYED thread should wait for INSERT statements before terminating.",
+ (gptr*) &delayed_insert_timeout, (gptr*) &delayed_insert_timeout, 0,
+ GET_ULONG, REQUIRED_ARG, DELAYED_WAIT_TIMEOUT, 1, LONG_TIMEOUT, 0, 1, 0},
+ {"delayed_insert_limit", OPT_DELAYED_INSERT_LIMIT,
+ "After inserting delayed_insert_limit rows, the INSERT DELAYED handler will check if there are any SELECT statements pending. If so, it allows these to execute before continuing.",
+ (gptr*) &delayed_insert_limit, (gptr*) &delayed_insert_limit, 0, GET_ULONG,
+ REQUIRED_ARG, DELAYED_LIMIT, 1, ~0L, 0, 1, 0},
+ { "delayed_queue_size", OPT_DELAYED_QUEUE_SIZE,
+ "What size queue (in rows) should be allocated for handling INSERT DELAYED. If the queue becomes full, any client that does INSERT DELAYED will wait until there is room in the queue again.",
+ (gptr*) &delayed_queue_size, (gptr*) &delayed_queue_size, 0, GET_ULONG,
+ REQUIRED_ARG, DELAYED_QUEUE_SIZE, 1, ~0L, 0, 1, 0},
+ { "flush_time", OPT_FLUSH_TIME,
+ "A dedicated thread is created to flush all tables at the given interval.",
+ (gptr*) &flush_time, (gptr*) &flush_time, 0, GET_ULONG, REQUIRED_ARG,
+ FLUSH_TIME, 0, LONG_TIMEOUT, 0, 1, 0},
+ { "ft_min_word_len", OPT_FT_MIN_WORD_LEN,
+ "The minimum length of the word to be included in a FULLTEXT index. Note: FULLTEXT indexes must be rebuilt after changing this variable.",
+ (gptr*) &ft_min_word_len, (gptr*) &ft_min_word_len, 0, GET_ULONG,
+ REQUIRED_ARG, 4, 1, HA_FT_MAXLEN, 0, 1, 0},
+ { "ft_max_word_len", OPT_FT_MAX_WORD_LEN,
+ "The maximum length of the word to be included in a FULLTEXT index. Note: FULLTEXT indexes must be rebuilt after changing this variable.",
+ (gptr*) &ft_max_word_len, (gptr*) &ft_max_word_len, 0, GET_ULONG,
+ REQUIRED_ARG, HA_FT_MAXLEN, 10, HA_FT_MAXLEN, 0, 1, 0},
+ { "ft_max_word_len_for_sort", OPT_FT_MAX_WORD_LEN_FOR_SORT,
+ "Undocumented", (gptr*) &ft_max_word_len_for_sort,
+ (gptr*) &ft_max_word_len_for_sort, 0, GET_ULONG, REQUIRED_ARG, 20, 4,
+ HA_FT_MAXLEN, 0, 1, 0},
#ifdef HAVE_INNOBASE_DB
- {"innodb_mirrored_log_groups",
- (long*) &innobase_mirrored_log_groups, 1, 1, 10, 0, 1},
- {"innodb_log_files_in_group",
- (long*) &innobase_log_files_in_group, 2, 2, 100, 0, 1},
- {"innodb_log_file_size",
- (long*) &innobase_log_file_size, 5*1024*1024L, 1*1024*1024L,
- ~0L, 0, 1024*1024L},
- {"innodb_log_buffer_size",
- (long*) &innobase_log_buffer_size, 1024*1024L, 256*1024L,
- ~0L, 0, 1024},
- {"innodb_buffer_pool_size",
- (long*) &innobase_buffer_pool_size, 8*1024*1024L, 1024*1024L,
- ~0L, 0, 1024*1024L},
- {"innodb_additional_mem_pool_size",
- (long*) &innobase_additional_mem_pool_size, 1*1024*1024L, 512*1024L,
- ~0L, 0, 1024},
- {"innodb_file_io_threads",
- (long*) &innobase_file_io_threads, 4, 4, 64, 0, 1},
- {"innodb_lock_wait_timeout",
- (long*) &innobase_lock_wait_timeout, 50, 1,
- 1024 * 1024 * 1024, 0, 1},
- {"innodb_thread_concurrency",
- (long*) &innobase_thread_concurrency, 8, 1, 1000, 0, 1},
- {"innodb_force_recovery",
- (long*) &innobase_force_recovery, 0, 0, 6, 0, 1},
-#endif
- { "interactive_timeout", (long*) &net_interactive_timeout,
- NET_WAIT_TIMEOUT, 1, LONG_TIMEOUT, 0, 1 },
- { "join_buffer_size", (long*) &join_buff_size,
- 128*1024L, IO_SIZE*2+MALLOC_OVERHEAD, ~0L, MALLOC_OVERHEAD, IO_SIZE },
- { "key_buffer_size", (long*) &keybuff_size,
- KEY_CACHE_SIZE, MALLOC_OVERHEAD, (long) ~0, MALLOC_OVERHEAD, IO_SIZE },
- { "long_query_time", (long*) &long_query_time,
- 10, 1, LONG_TIMEOUT, 0, 1 },
- { "lower_case_table_names", (long*) &lower_case_table_names,
- IF_WIN(1,0), 0, 1, 0, 1 },
- { "max_allowed_packet", (long*) &max_allowed_packet,
- 1024*1024L, 80, 64*1024*1024L, MALLOC_OVERHEAD, 1024 },
- { "max_binlog_cache_size", (long*) &max_binlog_cache_size,
- ~0L, IO_SIZE, ~0L, 0, IO_SIZE },
- { "max_binlog_size", (long*) &max_binlog_size,
- 1024*1024L*1024L, 1024, 1024*1024L*1024L, 0, 1 },
- { "max_connections", (long*) &max_connections,
- 100, 1, 16384, 0, 1 },
- { "max_connect_errors", (long*) &max_connect_errors,
- MAX_CONNECT_ERRORS, 1, ~0L, 0, 1 },
- { "max_delayed_threads", (long*) &max_insert_delayed_threads,
- 20, 1, 16384, 0, 1 },
- { "max_heap_table_size", (long*) &max_heap_table_size,
- 16*1024*1024L, 16384, ~0L, MALLOC_OVERHEAD, 1024 },
- { "max_join_size", (long*) &max_join_size,
- ~0L, 1, ~0L, 0, 1 },
- { "max_sort_length", (long*) &max_item_sort_length,
- 1024, 4, 8192*1024L, 0, 1 },
- { "max_tmp_tables", (long*) &max_tmp_tables,
- 32, 1, ~0L, 0, 1 },
- { "max_user_connections", (long*) &max_user_connections,
- 0, 1, ~0L, 0, 1 },
- { "max_write_lock_count", (long*) &max_write_lock_count,
- ~0L, 1, ~0L, 0, 1 },
- { "myisam_bulk_insert_tree_size", (long*) &myisam_bulk_insert_tree_size,
- 8192*1024, 0, ~0L, 0, 1 },
- { "myisam_block_size", (long*) &opt_myisam_block_size,
- MI_KEY_BLOCK_LENGTH, MI_MIN_KEY_BLOCK_LENGTH, MI_MAX_KEY_BLOCK_LENGTH,
- 0, MI_MIN_KEY_BLOCK_LENGTH },
- { "myisam_max_extra_sort_file_size",
- (long*) &myisam_max_extra_sort_file_size,
- (long) (MI_MAX_TEMP_LENGTH/(1024L*1024L)), 0, ~0L, 0, 1 },
- { "myisam_max_sort_file_size", (long*) &myisam_max_sort_file_size,
- (long) (LONG_MAX/(1024L*1024L)), 0, ~0L, 0, 1 },
- { "myisam_sort_buffer_size", (long*) &myisam_sort_buffer_size,
- 8192*1024, 4, ~0L, 0, 1 },
- { "net_buffer_length", (long*) &net_buffer_length,
- 16384, 1024, 1024*1024L, MALLOC_OVERHEAD, 1024 },
- { "net_retry_count", (long*) &mysqld_net_retry_count,
- MYSQLD_NET_RETRY_COUNT, 1, ~0L, 0, 1 },
- { "net_read_timeout", (long*) &net_read_timeout,
- NET_READ_TIMEOUT, 1, LONG_TIMEOUT, 0, 1 },
- { "net_write_timeout", (long*) &net_write_timeout,
- NET_WRITE_TIMEOUT, 1, LONG_TIMEOUT, 0, 1 },
- { "open_files_limit", (long*) &open_files_limit,
- 0, 0, 65535, 0, 1},
- { "query_buffer_size", (long*) &query_buff_size,
- 0, MALLOC_OVERHEAD, (long) ~0, MALLOC_OVERHEAD, IO_SIZE },
+ {"innodb_mirrored_log_groups", OPT_INNODB_MIRRORED_LOG_GROUPS,
+ "Number of identical copies of log groups we keep for the database. Currently this should be set to 1.",
+ (gptr*) &innobase_mirrored_log_groups,
+ (gptr*) &innobase_mirrored_log_groups, 0, GET_LONG, REQUIRED_ARG, 1, 1, 10,
+ 0, 1, 0},
+ {"innodb_log_files_in_group", OPT_INNODB_LOG_FILES_IN_GROUP,
+ "Number of log files in the log group. InnoDB writes to the files in a circular fashion. Value 3 is recommended here.",
+ (gptr*) &innobase_log_files_in_group, (gptr*) &innobase_log_files_in_group,
+ 0, GET_LONG, REQUIRED_ARG, 2, 2, 100, 0, 1, 0},
+ {"innodb_log_file_size", OPT_INNODB_LOG_FILE_SIZE,
+ "Size of each log file in a log group in megabytes.",
+ (gptr*) &innobase_log_file_size, (gptr*) &innobase_log_file_size, 0,
+ GET_LONG, REQUIRED_ARG, 5*1024*1024L, 1*1024*1024L, ~0L, 0, 1024*1024L, 0},
+ {"innodb_log_buffer_size", OPT_INNODB_LOG_BUFFER_SIZE,
+ "The size of the buffer which InnoDB uses to write log to the log files on disk.",
+ (gptr*) &innobase_log_buffer_size, (gptr*) &innobase_log_buffer_size, 0,
+ GET_LONG, REQUIRED_ARG, 1024*1024L, 256*1024L, ~0L, 0, 1024, 0},
+ {"innodb_buffer_pool_size", OPT_INNODB_BUFFER_POOL_SIZE,
+ "The size of the memory buffer InnoDB uses to cache data and indexes of its tables.",
+ (gptr*) &innobase_buffer_pool_size, (gptr*) &innobase_buffer_pool_size, 0,
+ GET_LONG, REQUIRED_ARG, 8*1024*1024L, 1024*1024L, ~0L, 0, 1024*1024L, 0},
+ {"innodb_additional_mem_pool_size", OPT_INNODB_ADDITIONAL_MEM_POOL_SIZE,
+ "Size of a memory pool InnoDB uses to store data dictionary information and other internal data structures.",
+ (gptr*) &innobase_additional_mem_pool_size,
+ (gptr*) &innobase_additional_mem_pool_size, 0, GET_LONG, REQUIRED_ARG,
+ 1*1024*1024L, 512*1024L, ~0L, 0, 1024, 0},
+ {"innodb_file_io_threads", OPT_INNODB_FILE_IO_THREADS,
+ "Number of file I/O threads in InnoDB.", (gptr*) &innobase_file_io_threads,
+ (gptr*) &innobase_file_io_threads, 0, GET_LONG, REQUIRED_ARG, 4, 4, 64, 0,
+ 1, 0},
+ {"innodb_lock_wait_timeout", OPT_INNODB_LOCK_WAIT_TIMEOUT,
+ "Timeout in seconds an InnoDB transaction may wait for a lock before being rolled back.",
+ (gptr*) &innobase_lock_wait_timeout, (gptr*) &innobase_lock_wait_timeout,
+ 0, GET_LONG, REQUIRED_ARG, 50, 1, 1024 * 1024 * 1024, 0, 1, 0},
+ {"innodb_thread_concurrency", OPT_INNODB_THREAD_CONCURRENCY,
+ "Helps in performance tuning in heavily concurrent environments.",
+ (gptr*) &innobase_thread_concurrency, (gptr*) &innobase_thread_concurrency,
+ 0, GET_LONG, REQUIRED_ARG, 8, 1, 1000, 0, 1, 0},
+ {"innodb_force_recovery", OPT_INNODB_FORCE_RECOVERY,
+ "Helps to save your data in case the disk image of the database becomes corrupt.",
+ (gptr*) &innobase_force_recovery, (gptr*) &innobase_force_recovery, 0,
+ GET_LONG, REQUIRED_ARG, 0, 0, 6, 0, 1, 0},
+#endif /* HAVE_INNOBASE_DB */
+ {"interactive_timeout", OPT_INTERACTIVE_TIMEOUT,
+ "The number of seconds the server waits for activity on an interactive connection before closing it.",
+ (gptr*) &net_interactive_timeout, (gptr*) &net_interactive_timeout, 0,
+ GET_ULONG, REQUIRED_ARG, NET_WAIT_TIMEOUT, 1, LONG_TIMEOUT, 0, 1, 0},
+ {"join_buffer_size", OPT_JOIN_BUFF_SIZE,
+ "The size of the buffer that is used for full joins.",
+ (gptr*) &join_buff_size, (gptr*) &join_buff_size, 0, GET_ULONG,
+ REQUIRED_ARG, 128*1024L, IO_SIZE*2+MALLOC_OVERHEAD, ~0L, MALLOC_OVERHEAD,
+ IO_SIZE, 0},
+ {"key_buffer_size", OPT_KEY_BUFFER_SIZE,
+ "The size of the buffer used for index blocks. Increase this to get better index handling (for all reads and multiple writes) to as much as you can afford; 64M on a 256M machine that mainly runs MySQL is quite common.",
+ (gptr*) &keybuff_size, (gptr*) &keybuff_size, 0, GET_ULONG, REQUIRED_ARG,
+ KEY_CACHE_SIZE, MALLOC_OVERHEAD, (long) ~0, MALLOC_OVERHEAD, IO_SIZE, 0},
+ {"long_query_time", OPT_LONG_QUERY_TIME,
+ "Log all queries that have taken more than long_query_time seconds to execute to file.",
+ (gptr*) &long_query_time, (gptr*) &long_query_time, 0, GET_ULONG,
+ REQUIRED_ARG, 10, 1, LONG_TIMEOUT, 0, 1, 0},
+ {"lower_case_table_names", OPT_LOWER_CASE_TABLE_NAMES,
+ "If set to 1 table names are stored in lowercase on disk and table names will be case-insensitive.",
+ (gptr*) &lower_case_table_names, (gptr*) &lower_case_table_names, 0,
+ GET_ULONG, REQUIRED_ARG, IF_WIN(1,0), 0, 1, 0, 1, 0},
+ {"max_allowed_packet", OPT_MAX_ALLOWED_PACKET,
+ "Max packetlength to send/receive from to server.",
+ (gptr*) &max_allowed_packet, (gptr*) &max_allowed_packet, 0, GET_ULONG,
+ REQUIRED_ARG, 1024*1024L, 80, 64*1024*1024L, MALLOC_OVERHEAD, 1024, 0},
+ {"max_binlog_cache_size", OPT_MAX_BINLOG_CACHE_SIZE,
+ "Can be used to restrict the total size used to cache a multi-transaction query.",
+ (gptr*) &max_binlog_cache_size, (gptr*) &max_binlog_cache_size, 0,
+ GET_ULONG, REQUIRED_ARG, ~0L, IO_SIZE, ~0L, 0, IO_SIZE, 0},
+ {"max_binlog_size", OPT_MAX_BINLOG_SIZE,
+ "Binary log will be rotated automatically when the size crosses the limit.",
+ (gptr*) &max_binlog_size, (gptr*) &max_binlog_size, 0, GET_ULONG,
+ REQUIRED_ARG, 1024*1024L*1024L, 1024, 1024*1024L*1024L, 0, 1, 0},
+ {"max_connections", OPT_MAX_CONNECTIONS,
+ "The number of simultaneous clients allowed.", (gptr*) &max_connections,
+ (gptr*) &max_connections, 0, GET_ULONG, REQUIRED_ARG, 100, 1, 16384, 0, 1,
+ 0},
+ {"max_connect_errors", OPT_MAX_CONNECT_ERRORS,
+ "If there is more than this number of interrupted connections from a host this host will be blocked from further connections.",
+ (gptr*) &max_connect_errors, (gptr*) &max_connect_errors, 0, GET_ULONG,
+ REQUIRED_ARG, MAX_CONNECT_ERRORS, 1, ~0L, 0, 1, 0},
+ {"max_delayed_threads", OPT_MAX_DELAYED_THREADS,
+ "Don't start more than this number of threads to handle INSERT DELAYED statements.",
+ (gptr*) &max_insert_delayed_threads, (gptr*) &max_insert_delayed_threads,
+ 0, GET_ULONG, REQUIRED_ARG, 20, 1, 16384, 0, 1, 0},
+ {"max_heap_table_size", OPT_MAX_HEP_TABLE_SIZE,
+ "Don't allow creation of heap tables bigger than this.",
+ (gptr*) &max_heap_table_size, (gptr*) &max_heap_table_size, 0, GET_ULONG,
+ REQUIRED_ARG, 16*1024*1024L, 16384, ~0L, MALLOC_OVERHEAD, 1024, 0},
+ {"max_join_size", OPT_MAX_JOIN_SIZE,
+ "Joins that are probably going to read more than max_join_size records return an error.",
+ (gptr*) &max_join_size, (gptr*) &max_join_size, 0, GET_ULONG, REQUIRED_ARG,
+ ~0L, 1, ~0L, 0, 1, 0},
+ {"max_sort_length", OPT_MAX_SORT_LENGTH,
+ "The number of bytes to use when sorting BLOB or TEXT values (only the first max_sort_length bytes of each value are used; the rest are ignored).",
+ (gptr*) &max_item_sort_length, (gptr*) &max_item_sort_length, 0, GET_ULONG,
+ REQUIRED_ARG, 1024, 4, 8192*1024L, 0, 1, 0},
+ {"max_tmp_tables", OPT_MAX_TMP_TABLES,
+ "Maximum number of temporary tables a client can keep open at a time.",
+ (gptr*) &max_tmp_tables, (gptr*) &max_tmp_tables, 0, GET_ULONG,
+ REQUIRED_ARG, 32, 1, ~0L, 0, 1, 0},
+ {"max_user_connections", OPT_MAX_USER_CONNECTIONS,
+ "The maximum number of active connections for a single user (0 = no limit).",
+ (gptr*) &max_user_connections, (gptr*) &max_user_connections, 0, GET_ULONG,
+ REQUIRED_ARG, 0, 1, ~0L, 0, 1, 0},
+ {"max_write_lock_count", OPT_MAX_WRITE_LOCK_COUNT,
+ "After this many write locks, allow some read locks to run in between.",
+ (gptr*) &max_write_lock_count, (gptr*) &max_write_lock_count, 0, GET_ULONG,
+ REQUIRED_ARG, ~0L, 1, ~0L, 0, 1, 0},
+ {"myisam_bulk_insert_tree_size", OPT_MYISAM_BULK_INSERT_TREE_SIZE,
+ "Size of tree cache used in bulk insert optimisation. Note that this is a limit per thread!",
+ (gptr*) &myisam_bulk_insert_tree_size,
+ (gptr*) &myisam_bulk_insert_tree_size, 0, GET_ULONG, REQUIRED_ARG,
+ 8192*1024, 0, ~0L, 0, 1, 0},
+ {"myisam_block_size", OPT_MYISAM_BLOCK_SIZE,
+ "Undocumented", (gptr*) &opt_myisam_block_size,
+ (gptr*) &opt_myisam_block_size, 0, GET_ULONG, REQUIRED_ARG,
+ MI_KEY_BLOCK_LENGTH, MI_MIN_KEY_BLOCK_LENGTH, MI_MAX_KEY_BLOCK_LENGTH,
+ 0, MI_MIN_KEY_BLOCK_LENGTH, 0},
+ {"myisam_max_extra_sort_file_size", OPT_MYISAM_MAX_EXTRA_SORT_FILE_SIZE,
+ "Used to help MySQL to decide when to use the slow but safe key cache index create method. Note that this parameter is given in megabytes!",
+ (gptr*) &myisam_max_extra_sort_file_size,
+ (gptr*) &myisam_max_extra_sort_file_size, 0, GET_ULONG, REQUIRED_ARG,
+ (long) (MI_MAX_TEMP_LENGTH/(1024L*1024L)), 0, ~0L, 0, 1, 0},
+ {"myisam_max_sort_file_size", OPT_MYISAM_MAX_SORT_FILE_SIZE,
+ "Don't use the fast sort index method to created index if the temporary file would get bigger than this. Note that this paramter is given in megabytes!",
+ (gptr*) &myisam_max_sort_file_size, (gptr*) &myisam_max_sort_file_size, 0,
+ GET_ULONG, REQUIRED_ARG, (long) (LONG_MAX/(1024L*1024L)), 0, ~0L, 0, 1, 0},
+ {"myisam_sort_buffer_size", OPT_MYISAM_SORT_BUFFER_SIZE,
+ "The buffer that is allocated when sorting the index when doing a REPAIR or when creating indexes with CREATE INDEX or ALTER TABLE.",
+ (gptr*) &myisam_sort_buffer_size, (gptr*) &myisam_sort_buffer_size, 0,
+ GET_ULONG, REQUIRED_ARG, 8192*1024, 4, ~0L, 0, 1, 0},
+ {"net_buffer_length", OPT_NET_BUFFER_LENGTH,
+ "Buffer for TCP/IP and socket communication.", (gptr*) &net_buffer_length,
+ (gptr*) &net_buffer_length, 0, GET_ULONG, REQUIRED_ARG, 16384, 1024,
+ 1024*1024L, MALLOC_OVERHEAD, 1024, 0},
+ {"net_retry_count", OPT_NET_RETRY_COUNT,
+ "If a read on a communication port is interrupted, retry this many times before giving up.",
+ (gptr*) &mysqld_net_retry_count, (gptr*) &mysqld_net_retry_count, 0,
+ GET_ULONG, REQUIRED_ARG, MYSQLD_NET_RETRY_COUNT, 1, ~0L, 0, 1, 0},
+ {"net_read_timeout", OPT_NET_READ_TIMEOUT,
+ "Number of seconds to wait for more data from a connection before aborting the read.",
+ (gptr*) &net_read_timeout, (gptr*) &net_read_timeout, 0, GET_ULONG,
+ REQUIRED_ARG, NET_READ_TIMEOUT, 1, LONG_TIMEOUT, 0, 1, 0},
+ {"net_write_timeout", OPT_NET_WRITE_TIMEOUT,
+ "Number of seconds to wait for a block to be written to a connection before aborting the write.",
+ (gptr*) &net_write_timeout, (gptr*) &net_write_timeout, 0, GET_ULONG,
+ REQUIRED_ARG, NET_WRITE_TIMEOUT, 1, LONG_TIMEOUT, 0, 1, 0},
+ {"open_files_limit", OPT_OPEN_FILES_LIMIT,
+ "If this is not 0, then mysqld will use this value to reserve file descriptors to use with setrlimit(). If this value is 0 then mysqld will reserve max_connections*5 or max_connections + table_cache*2 (whichever is larger) number of files.",
+ (gptr*) &open_files_limit, (gptr*) &open_files_limit, 0, GET_ULONG,
+ REQUIRED_ARG, 0, 0, 65535, 0, 1, 0},
+ {"query_buffer_size", OPT_QUERY_BUFFER_SIZE,
+ "The initial allocation of the query buffer.", (gptr*) &query_buff_size,
+ (gptr*) &query_buff_size, 0, GET_ULONG, REQUIRED_ARG, 0, MALLOC_OVERHEAD,
+ (long) ~0, MALLOC_OVERHEAD, IO_SIZE, 0},
#ifdef HAVE_QUERY_CACHE
- { "query_cache_limit", (long*) &query_cache_limit,
- 1024*1024L, 0, ULONG_MAX, 0, 1},
- { "query_cache_size", (long*) &query_cache_size,
- 0, 0, ULONG_MAX, 0, 1},
- { "query_cache_startup_type",(long*) &query_cache_startup_type,
- 1, 0, 2, 0, 1},
+ {"query_cache_limit", OPT_QUERY_CACHE_LIMIT,
+ "Don't cache results that are bigger than this.",
+ (gptr*) &query_cache_limit, (gptr*) &query_cache_limit, 0, GET_ULONG,
+ REQUIRED_ARG, 1024*1024L, 0, ULONG_MAX, 0, 1, 0},
#endif /*HAVE_QUERY_CACHE*/
- { "record_buffer", (long*) &my_default_record_cache_size,
- 128*1024L, IO_SIZE*2+MALLOC_OVERHEAD, ~0L, MALLOC_OVERHEAD, IO_SIZE },
- { "record_rnd_buffer", (long*) &record_rnd_cache_size,
- 0, IO_SIZE*2+MALLOC_OVERHEAD, ~0L, MALLOC_OVERHEAD, IO_SIZE },
- { "relay_log_space_limit", (long*) &relay_log_space_limit, 0L, 0L,ULONG_MAX,
- 0, 1},
- { "slave_net_timeout", (long*) &slave_net_timeout,
- SLAVE_NET_TIMEOUT, 1, LONG_TIMEOUT, 0, 1 },
- { "slow_launch_time", (long*) &slow_launch_time,
- 2L, 0L, LONG_TIMEOUT, 0, 1 },
- { "sort_buffer", (long*) &sortbuff_size,
- MAX_SORT_MEMORY, MIN_SORT_MEMORY+MALLOC_OVERHEAD*2, ~0L, MALLOC_OVERHEAD, 1 },
- { "table_cache", (long*) &table_cache_size,
- 64, 1, 16384, 0, 1 },
- { "thread_concurrency", (long*) &concurrency,
- DEFAULT_CONCURRENCY, 1, 512, 0, 1 },
- { "thread_cache_size", (long*) &thread_cache_size,
- 0, 0, 16384, 0, 1 },
- { "tmp_table_size", (long*) &tmp_table_size,
- 32*1024*1024L, 1024, ~0L, 0, 1 },
- { "thread_stack", (long*) &thread_stack,
- DEFAULT_THREAD_STACK, 1024*32, ~0L, 0, 1024 },
- { "wait_timeout", (long*) &net_wait_timeout,
- NET_WAIT_TIMEOUT, 1, LONG_TIMEOUT, 0, 1 },
- { NullS, (long*) 0, 0, 0, 0, 0, 0}
+ {"query_cache_size", OPT_QUERY_CACHE_SIZE,
+ "The memory allocated to store results from old queries.",
+ (gptr*) &query_cache_size, (gptr*) &query_cache_size, 0, GET_ULONG,
+ REQUIRED_ARG, 0, 0, ULONG_MAX, 0, 1, 0},
+#ifdef HAVE_QUERY_CACHE
+ {"query_cache_startup_type", OPT_QUERY_CACHE_STARTUP_TYPE,
+ "0 = OFF = Don't cache or retrieve results. 1 = ON = Cache all results except SELECT SQL_NO_CACHE ... queries. 2 = DEMAND = Cache only SELECT SQL_CACHE ... queries.",
+ (gptr*) &query_cache_startup_type, (gptr*) &query_cache_startup_type, 0,
+ GET_ULONG, REQUIRED_ARG, 1, 0, 2, 0, 1, 0},
+#endif /*HAVE_QUERY_CACHE*/
+ {"record_buffer", OPT_RECORD_BUFFER,
+ "Each thread that does a sequential scan allocates a buffer of this size for each table it scans. If you do many sequential scans, you may want to increase this value.",
+ (gptr*) &my_default_record_cache_size,
+ (gptr*) &my_default_record_cache_size, 0, GET_ULONG, REQUIRED_ARG,
+ 128*1024L, IO_SIZE*2+MALLOC_OVERHEAD, ~0L, MALLOC_OVERHEAD, IO_SIZE, 0},
+ {"record_rnd_buffer", OPT_RECORD_RND_BUFFER,
+ "When reading rows in sorted order after a sort, the rows are read through this buffer to avoid a disk seeks. If not set, then it's set to the value of record_buffer.",
+ (gptr*) &record_rnd_cache_size, (gptr*) &record_rnd_cache_size, 0,
+ GET_ULONG, REQUIRED_ARG, 0, IO_SIZE*2+MALLOC_OVERHEAD,
+ ~0L, MALLOC_OVERHEAD, IO_SIZE, 0},
+ {"relay_log_space_limit", OPT_RELAY_LOG_SPACE_LIMIT,
+ "Undocumented", (gptr*) &relay_log_space_limit,
+ (gptr*) &relay_log_space_limit, 0, GET_ULONG, REQUIRED_ARG, 0L, 0L,
+ ULONG_MAX, 0, 1, 0},
+ {"slave_net_timeout", OPT_SLAVE_NET_TIMEOUT,
+ "Number of seconds to wait for more data from a master/slave connection before aborting the read.",
+ (gptr*) &slave_net_timeout, (gptr*) &slave_net_timeout, 0,
+ GET_ULONG, REQUIRED_ARG, SLAVE_NET_TIMEOUT, 1, LONG_TIMEOUT, 0, 1, 0},
+ {"slow_launch_time", OPT_SLOW_LAUNCH_TIME,
+ "If creating the thread takes longer than this value (in seconds), the Slow_launch_threads counter will be incremented.",
+ (gptr*) &slow_launch_time, (gptr*) &slow_launch_time, 0, GET_ULONG,
+ REQUIRED_ARG, 2L, 0L, LONG_TIMEOUT, 0, 1, 0},
+ {"sort_buffer", OPT_SORT_BUFFER,
+ "Each thread that needs to do a sort allocates a buffer of this size.",
+ (gptr*) &sortbuff_size, (gptr*) &sortbuff_size, 0, GET_ULONG, REQUIRED_ARG,
+ MAX_SORT_MEMORY, MIN_SORT_MEMORY+MALLOC_OVERHEAD*2, ~0L, MALLOC_OVERHEAD,
+ 1, 0},
+ {"table_cache", OPT_TABLE_CACHE,
+ "The number of open tables for all threads.", (gptr*) &table_cache_size,
+ (gptr*) &table_cache_size, 0, GET_ULONG, REQUIRED_ARG, 64, 1, 16384, 0, 1,
+ 0},
+ {"thread_concurrency", OPT_THREAD_CONCURRENCY,
+ "Permits the application to give the threads system a hint for the desired number of threads that should be run at the same time.",
+ (gptr*) &concurrency, (gptr*) &concurrency, 0, GET_ULONG, REQUIRED_ARG,
+ DEFAULT_CONCURRENCY, 1, 512, 0, 1, 0},
+ {"thread_cache_size", OPT_THREAD_CACHE_SIZE,
+ "How many threads we should keep in a cache for reuse.",
+ (gptr*) &thread_cache_size, (gptr*) &thread_cache_size, 0, GET_ULONG,
+ REQUIRED_ARG, 0, 0, 16384, 0, 1, 0},
+ {"tmp_table_size", OPT_TMP_TABLE_SIZE,
+ "If an in-memory temporary table exceeds this size, MySQL will automatically convert it to an on-disk MyISAM table.",
+ (gptr*) &tmp_table_size, (gptr*) &tmp_table_size, 0, GET_ULONG,
+ REQUIRED_ARG, 32*1024*1024L, 1024, ~0L, 0, 1, 0},
+ {"thread_stack", OPT_THREAD_STACK,
+ "The stack size for each thread.", (gptr*) &thread_stack,
+ (gptr*) &thread_stack, 0, GET_ULONG, REQUIRED_ARG,DEFAULT_THREAD_STACK,
+ 1024*32, ~0L, 0, 1024, 0},
+ {"wait_timeout", OPT_WAIT_TIMEOUT,
+ "The number of seconds the server waits for activity on a connection before closing it",
+ (gptr*) &net_wait_timeout, (gptr*) &net_wait_timeout, 0, GET_ULONG,
+ REQUIRED_ARG, NET_WAIT_TIMEOUT, 1, LONG_TIMEOUT, 0, 1, 0},
+ {0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
};
-
struct show_var_st init_vars[]= {
{"back_log", (char*) &back_log, SHOW_LONG},
{"basedir", mysql_home, SHOW_CHAR},
@@ -3276,12 +3733,12 @@ struct show_var_st status_vars[]= {
{"Com_show_grants", (char*) (com_stat+(uint) SQLCOM_SHOW_GRANTS),SHOW_LONG},
{"Com_show_keys", (char*) (com_stat+(uint) SQLCOM_SHOW_KEYS),SHOW_LONG},
{"Com_show_logs", (char*) (com_stat+(uint) SQLCOM_SHOW_LOGS),SHOW_LONG},
- {"Com_show_master_stat", (char*) (com_stat+(uint) SQLCOM_SHOW_MASTER_STAT),SHOW_LONG},
+ {"Com_show_master_status", (char*) (com_stat+(uint) SQLCOM_SHOW_MASTER_STAT),SHOW_LONG},
{"Com_show_new_master", (char*) (com_stat+(uint) SQLCOM_SHOW_NEW_MASTER),SHOW_LONG},
{"Com_show_open_tables", (char*) (com_stat+(uint) SQLCOM_SHOW_OPEN_TABLES),SHOW_LONG},
{"Com_show_processlist", (char*) (com_stat+(uint) SQLCOM_SHOW_PROCESSLIST),SHOW_LONG},
{"Com_show_slave_hosts", (char*) (com_stat+(uint) SQLCOM_SHOW_SLAVE_HOSTS),SHOW_LONG},
- {"Com_show_slave_stat", (char*) (com_stat+(uint) SQLCOM_SHOW_SLAVE_STAT),SHOW_LONG},
+ {"Com_show_slave_status", (char*) (com_stat+(uint) SQLCOM_SHOW_SLAVE_STAT),SHOW_LONG},
{"Com_show_status", (char*) (com_stat+(uint) SQLCOM_SHOW_STATUS),SHOW_LONG},
{"Com_show_tables", (char*) (com_stat+(uint) SQLCOM_SHOW_TABLES),SHOW_LONG},
{"Com_show_variables", (char*) (com_stat+(uint) SQLCOM_SHOW_VARIABLES),SHOW_LONG},
@@ -3349,29 +3806,29 @@ struct show_var_st status_vars[]= {
{"Sort_rows", (char*) &filesort_rows, SHOW_LONG},
{"Sort_scan", (char*) &filesort_scan_count, SHOW_LONG},
#ifdef HAVE_OPENSSL
- {"ssl_accepts", (char*) 0, SHOW_SSL_CTX_SESS_ACCEPT},
- {"ssl_finished_accepts", (char*) 0, SHOW_SSL_CTX_SESS_ACCEPT_GOOD},
- {"ssl_finished_connects", (char*) 0, SHOW_SSL_CTX_SESS_CONNECT_GOOD},
- {"ssl_accept_renegotiates", (char*) 0, SHOW_SSL_CTX_SESS_ACCEPT_RENEGOTIATE},
- {"ssl_connect_renegotiates", (char*) 0, SHOW_SSL_CTX_SESS_CONNECT_RENEGOTIATE},
- {"ssl_callback_cache_hits", (char*) 0, SHOW_SSL_CTX_SESS_CB_HITS},
- {"ssl_session_cache_hits", (char*) 0, SHOW_SSL_CTX_SESS_HITS},
- {"ssl_session_cache_misses", (char*) 0, SHOW_SSL_CTX_SESS_MISSES},
- {"ssl_session_cache_timeouts", (char*) 0, SHOW_SSL_CTX_SESS_TIMEOUTS},
- {"ssl_used_session_cache_entries",(char*) 0, SHOW_SSL_CTX_SESS_NUMBER},
- {"ssl_client_connects", (char*) 0, SHOW_SSL_CTX_SESS_CONNECT},
- {"ssl_session_cache_overflows", (char*) 0, SHOW_SSL_CTX_SESS_CACHE_FULL},
- {"ssl_session_cache_size", (char*) 0, SHOW_SSL_CTX_SESS_GET_CACHE_SIZE},
- {"ssl_session_cache_mode", (char*) 0, SHOW_SSL_CTX_GET_SESSION_CACHE_MODE},
- {"ssl_sessions_reused", (char*) 0, SHOW_SSL_SESSION_REUSED},
- {"ssl_ctx_verify_mode", (char*) 0, SHOW_SSL_CTX_GET_VERIFY_MODE},
- {"ssl_ctx_verify_depth", (char*) 0, SHOW_SSL_CTX_GET_VERIFY_DEPTH},
- {"ssl_verify_mode", (char*) 0, SHOW_SSL_GET_VERIFY_MODE},
- {"ssl_verify_depth", (char*) 0, SHOW_SSL_GET_VERIFY_DEPTH},
- {"ssl_version", (char*) 0, SHOW_SSL_GET_VERSION},
- {"ssl_cipher", (char*) 0, SHOW_SSL_GET_CIPHER},
- {"ssl_cipher_list", (char*) 0, SHOW_SSL_GET_CIPHER_LIST},
- {"ssl_default_timeout", (char*) 0, SHOW_SSL_GET_DEFAULT_TIMEOUT},
+ {"Ssl_accepts", (char*) 0, SHOW_SSL_CTX_SESS_ACCEPT},
+ {"Ssl_finished_accepts", (char*) 0, SHOW_SSL_CTX_SESS_ACCEPT_GOOD},
+ {"Ssl_finished_connects", (char*) 0, SHOW_SSL_CTX_SESS_CONNECT_GOOD},
+ {"Ssl_accept_renegotiates", (char*) 0, SHOW_SSL_CTX_SESS_ACCEPT_RENEGOTIATE},
+ {"Ssl_connect_renegotiates", (char*) 0, SHOW_SSL_CTX_SESS_CONNECT_RENEGOTIATE},
+ {"Ssl_callback_cache_hits", (char*) 0, SHOW_SSL_CTX_SESS_CB_HITS},
+ {"Ssl_session_cache_hits", (char*) 0, SHOW_SSL_CTX_SESS_HITS},
+ {"Ssl_session_cache_misses", (char*) 0, SHOW_SSL_CTX_SESS_MISSES},
+ {"Ssl_session_cache_timeouts", (char*) 0, SHOW_SSL_CTX_SESS_TIMEOUTS},
+ {"Ssl_used_session_cache_entries",(char*) 0, SHOW_SSL_CTX_SESS_NUMBER},
+ {"Ssl_client_connects", (char*) 0, SHOW_SSL_CTX_SESS_CONNECT},
+ {"Ssl_session_cache_overflows", (char*) 0, SHOW_SSL_CTX_SESS_CACHE_FULL},
+ {"Ssl_session_cache_size", (char*) 0, SHOW_SSL_CTX_SESS_GET_CACHE_SIZE},
+ {"Ssl_session_cache_mode", (char*) 0, SHOW_SSL_CTX_GET_SESSION_CACHE_MODE},
+ {"Ssl_sessions_reused", (char*) 0, SHOW_SSL_SESSION_REUSED},
+ {"Ssl_ctx_verify_mode", (char*) 0, SHOW_SSL_CTX_GET_VERIFY_MODE},
+ {"Ssl_ctx_verify_depth", (char*) 0, SHOW_SSL_CTX_GET_VERIFY_DEPTH},
+ {"Ssl_verify_mode", (char*) 0, SHOW_SSL_GET_VERIFY_MODE},
+ {"Ssl_verify_depth", (char*) 0, SHOW_SSL_GET_VERIFY_DEPTH},
+ {"Ssl_version", (char*) 0, SHOW_SSL_GET_VERSION},
+ {"Ssl_cipher", (char*) 0, SHOW_SSL_GET_CIPHER},
+ {"Ssl_cipher_list", (char*) 0, SHOW_SSL_GET_CIPHER_LIST},
+ {"Ssl_default_timeout", (char*) 0, SHOW_SSL_GET_DEFAULT_TIMEOUT},
#endif /* HAVE_OPENSSL */
{"Table_locks_immediate", (char*) &locks_immediate, SHOW_LONG},
{"Table_locks_waited", (char*) &locks_waited, SHOW_LONG},
@@ -3405,167 +3862,28 @@ and you are welcome to modify and redistribute it under the GPL license\n\
Starts the MySQL server\n");
printf("Usage: %s [OPTIONS]\n", my_progname);
- puts("\n\
- --ansi Use ANSI SQL syntax instead of MySQL syntax\n\
- -b, --basedir=path Path to installation directory. All paths are\n\
- usually resolved relative to this\n\
- --big-tables Allow big result sets by saving all temporary sets\n\
- on file (Solves most 'table full' errors)\n\
- --bind-address=IP Ip address to bind to\n\
- --bootstrap Used by mysql installation scripts\n\
- --character-sets-dir=...\n\
- Directory where character sets are\n\
- --chroot=path Chroot mysqld daemon during startup\n\
- --core-file Write core on errors\n\
- -h, --datadir=path Path to the database root");
-#ifndef DBUG_OFF
- printf("\
- -#, --debug[=...] Debug log. Default is '%s'\n",default_dbug_option);
-#ifdef SAFEMALLOC
- puts("\
- --skip-safemalloc Don't use the memory allocation checking");
-#endif
-#endif
- puts("\
- --default-character-set=charset\n\
- Set the default character set\n\
- --default-table-type=type\n\
- Set the default table type for tables\n\
- --delay-key-write-for-all-tables\n\
- Don't flush key buffers between writes for any MyISAM\n\
- table\n");
-#ifdef HAVE_OPENSSL
- puts("\
- --des-key-file Load keys for des_encrypt() and des_encrypt\n\
- from given file");
-#endif /* HAVE_OPENSSL */
- puts("\
- --enable-locking Enable system locking\n\
- --enable-pstack Print a symbolic stack trace on failure\n\
- -T, --exit-info Used for debugging; Use at your own risk!\n\
- --flush Flush tables to disk between SQL commands\n\
- -?, --help Display this help and exit\n\
- --init-file=file Read SQL commands from this file at startup\n\
- -L, --language=... Client error messages in given language. May be\n\
- given as a full path\n\
- --local-infile=[1|0] Enable/disable LOAD DATA LOCAL INFILE\n\
- -l, --log[=file] Log connections and queries to file\n\
- --log-bin[=file] Log queries in new binary format (for replication)\n\
- --log-bin-index=file File that holds the names for last binary log files\n\
- --log-update[=file] Log updates to file.# where # is a unique number\n\
- if not given.\n\
- --log-isam[=file] Log all MyISAM changes to file\n\
- --log-long-format Log some extra information to update log\n\
- --low-priority-updates INSERT/DELETE/UPDATE has lower priority than selects\n\
- --log-slow-queries=[file]\n\
- Log slow queries to this log file. Defaults logging\n\
- to hostname-slow.log\n\
- --pid-file=path Pid file used by safe_mysqld\n\
- --myisam-recover[=option[,option...]] where options is one of DEAULT,\n\
- BACKUP or FORCE.\n\
- --memlock Lock mysqld in memory\n\
- -n, --new Use very new possible 'unsafe' functions\n\
- -o, --old-protocol Use the old (3.20) protocol\n\
- -P, --port=... Port number to use for connection\n");
-#ifdef ONE_THREAD
- puts("\
- --one-thread Only use one thread (for debugging under Linux)\n");
-#endif
- puts("\
- -O, --set-variable var=option\n\
- Give a variable an value. --help lists variables\n\
- --safe-mode Skip some optimize stages (for testing)\n\
- --safe-show-database Don't show databases for which the user has no\n\
- privileges\n\
- --safe-user-create Don't allow new user creation by the user who has\n\
- no write privileges to the mysql.user table\n\
- --skip-concurrent-insert\n\
- Don't use concurrent insert with MyISAM\n\
- --skip-delay-key-write\n\
- Ignore the delay_key_write option for all tables\n\
- --skip-grant-tables Start without grant tables. This gives all users\n\
- FULL ACCESS to all tables!\n\
- --skip-host-cache Don't cache host names\n\
- --skip-locking Don't use system locking. To use isamchk one has\n\
- to shut down the server.\n\
- --skip-name-resolve Don't resolve hostnames.\n\
- All hostnames are IP's or 'localhost'\n\
- --skip-networking Don't allow connection with TCP/IP.\n\
- --skip-new Don't use new, possible wrong routines.\n");
- /* We have to break the string here because of VC++ limits */
- puts("\
- --skip-stack-trace Don't print a stack trace on failure\n\
- --skip-symlink Don't allow symlinking of tables\n\
- --skip-show-database Don't allow 'SHOW DATABASE' commands\n\
- --skip-thread-priority\n\
- Don't give threads different priorities.\n\
- --socket=... Socket file to use for connection\n\
- -t, --tmpdir=path Path for temporary files\n\
- --sql-mode=option[,option[,option...]] where option can be one of:\n\
- REAL_AS_FLOAT, PIPES_AS_CONCAT, ANSI_QUOTES,\n\
- IGNORE_SPACE, SERIALIZE, ONLY_FULL_GROUP_BY,\n\
- NO_UNSIGNED_SUBTRACTION.\n\
- --transaction-isolation\n\
- Default transaction isolation level\n\
- --temp-pool Use a pool of temporary files\n\
- -u, --user=user_name Run mysqld daemon as user\n\
- -V, --version output version information and exit\n\
- -W, --warnings Log some not critical warnings to the log file\n");
#ifdef __WIN__
puts("NT and Win32 specific options:\n\
--console Don't remove the console window\n\
--install Install the default service (NT)\n\
--install-manual Install the default service started manually (NT)\n\
+ --install service_name Install an optional service (NT)\n\
+ --install-manual service_name Install an optional service started manually (NT)\n\
--remove Remove the default service from the service list (NT)\n\
- --enable-named-pipe Enable the named pipe (NT)\n\
- --standalone Dummy option to start as a standalone program (NT)\
+ --remove service_name Remove the service_name from the service list (NT)\n\
+ --enable-named-pipe Only to be used for the default server (NT)\n\
+ --standalone Dummy option to start as a standalone server (NT)\
");
-#ifdef USE_SYMDIR
- puts("--use-symbolic-links Enable symbolic link support");
-#endif
puts("");
#endif
-#ifdef HAVE_BERKELEY_DB
- puts("\
- --bdb-home= directory Berkeley home direcory\n\
- --bdb-lock-detect=# Berkeley lock detect\n\
- (DEFAULT, OLDEST, RANDOM or YOUNGEST, # sec)\n\
- --bdb-logdir=directory Berkeley DB log file directory\n\
- --bdb-no-sync Don't synchronously flush logs\n\
- --bdb-no-recover Don't try to recover Berkeley DB tables on start\n\
- --bdb-shared-data Start Berkeley DB in multi-process mode\n\
- --bdb-tmpdir=directory Berkeley DB tempfile name\n\
- --skip-bdb Don't use berkeley db (will save memory)\n\
-");
-#endif /* HAVE_BERKELEY_DB */
-#ifdef HAVE_INNOBASE_DB
- puts("\
- --innodb_data_home_dir=dir The common part for Innodb table spaces\n\
- --innodb_data_file_path=dir Path to individual files and their sizes\n\
- --innodb_flush_method=# With which method to flush data\n\
- --innodb_flush_log_at_trx_commit[=#]\n\
- Set to 0 if you don't want to flush logs\n\
- --innodb_log_arch_dir=dir Where full logs should be archived\n\
- --innodb_log_archive[=#] Set to 1 if you want to have logs archived\n\
- --innodb_log_group_home_dir=dir Path to innodb log files.\n\
- --skip-innodb Don't use Innodb (will save memory)\n\
-");
-#endif /* HAVE_INNOBASE_DB */
print_defaults("my",load_default_groups);
puts("");
-
-#ifdef HAVE_OPENSSL
- puts("\
- --ssl Use SSL for connection (automatically set with other flags\n\
- --ssl-key X509 key in PEM format (implies --ssl)\n\
- --ssl-cert X509 cert in PEM format (implies --ssl)\n\
- --ssl-ca CA file in PEM format (check OpenSSL docs, implies --ssl)\n\
- --ssl-capath CA directory (check OpenSSL docs, implies --ssl)\n\
- --ssl-cipher SSL cipher to use (implies --ssl)");
-#endif
-
fix_paths();
set_ports();
+
+ my_print_help(my_long_options);
+ my_print_variables(my_long_options);
+
printf("\
To see what values a running MySQL server is using, type\n\
'mysqladmin variables' instead of 'mysqld --help'.\n\
@@ -3598,17 +3916,11 @@ The default values (after parsing the command line arguments) are:\n\n");
puts("\nsystem locking is not in use");
if (opt_noacl)
puts("\nGrant tables are not used. All users have full access rights");
- printf("\nPossible variables for option --set-variable (-O) are:\n");
- for (uint i=0 ; changeable_vars[i].name ; i++)
- printf("%-20s current value: %lu\n",
- changeable_vars[i].name,
- (ulong) *changeable_vars[i].varptr);
}
static void set_options(void)
{
- set_all_changeable_vars( changeable_vars );
#if !defined( my_pthread_setprio ) && !defined( HAVE_PTHREAD_SETSCHEDPARAM )
opt_specialflag |= SPECIAL_NO_PRIOR;
#endif
@@ -3638,628 +3950,441 @@ static void set_options(void)
my_bind_addr = htonl( INADDR_ANY );
}
- /* Initiates DEBUG - but no debugging here ! */
-static void get_options(int argc,char **argv)
+static my_bool
+get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
+ char *argument)
{
- int c,option_index=0;
-
- myisam_delay_key_write=1; // Allow use of this
-#ifndef HAVE_purify
- my_use_symdir=1; // Use internal symbolic links
-#else
- /* Symlinks gives too many warnings with purify */
- my_disable_symlinks=1;
- my_use_symdir=0;
- have_symlink=SHOW_OPTION_DISABLED;
-#endif
-
- optind = 0; // setup in case getopt() was called previously
- while ((c=getopt_long(argc,argv,"ab:C:h:#::T::?l::L:O:P:sS::t:u:noVvWI?",
- long_options, &option_index)) != EOF)
- {
- switch(c) {
- case '#':
+ switch(optid) {
+ case '#':
#ifndef DBUG_OFF
- DBUG_PUSH(optarg ? optarg : default_dbug_option);
-#endif
- opt_endinfo=1; /* unireg: memory allocation */
- break;
- case 'W':
- opt_warnings=1;
- break;
- case 'a':
- opt_sql_mode = (MODE_REAL_AS_FLOAT | MODE_PIPES_AS_CONCAT |
- MODE_ANSI_QUOTES | MODE_IGNORE_SPACE | MODE_SERIALIZABLE
- | MODE_ONLY_FULL_GROUP_BY);
- default_tx_isolation= ISO_SERIALIZABLE;
- break;
- case 'b':
- strmake(mysql_home,optarg,sizeof(mysql_home)-1);
- break;
- case 'l':
- opt_log=1;
- opt_logname=optarg; // Use hostname.log if null
- break;
- case 'h':
- strmake(mysql_real_data_home,optarg, sizeof(mysql_real_data_home)-1);
- break;
- case 'L':
- strmake(language, optarg, sizeof(language)-1);
- break;
- case 'n':
- opt_specialflag|= SPECIAL_NEW_FUNC;
- break;
- case 'o':
- protocol_version=PROTOCOL_VERSION-1;
- break;
- case 'O':
- if (set_changeable_var(optarg, changeable_vars))
- {
- use_help();
- exit(1);
- }
- break;
- case 'P':
- mysql_port= (unsigned int) atoi(optarg);
- break;
- case OPT_LOCAL_INFILE:
- opt_local_infile= test(!optarg || atoi(optarg) != 0);
- break;
- case OPT_SLAVE_SKIP_ERRORS:
- init_slave_skip_errors(optarg);
- break;
- case OPT_SAFEMALLOC_MEM_LIMIT:
+ DBUG_PUSH(argument ? argument : default_dbug_option);
+#endif
+ opt_endinfo=1; /* unireg: memory allocation */
+ break;
+ case 'a':
+ opt_sql_mode = (MODE_REAL_AS_FLOAT | MODE_PIPES_AS_CONCAT |
+ MODE_ANSI_QUOTES | MODE_IGNORE_SPACE | MODE_SERIALIZABLE
+ | MODE_ONLY_FULL_GROUP_BY);
+ default_tx_isolation= ISO_SERIALIZABLE;
+ break;
+ case 'b':
+ strmake(mysql_home,argument,sizeof(mysql_home)-1);
+ break;
+ case 'l':
+ opt_log=1;
+ break;
+ case 'h':
+ strmake(mysql_real_data_home,argument, sizeof(mysql_real_data_home)-1);
+ break;
+ case 'L':
+ strmake(language, argument, sizeof(language)-1);
+ break;
+ case 'n':
+ opt_specialflag|= SPECIAL_NEW_FUNC;
+ break;
+ case 'o':
+ protocol_version=PROTOCOL_VERSION-1;
+ break;
+ case OPT_SLAVE_SKIP_ERRORS:
+ init_slave_skip_errors(argument);
+ break;
+ case OPT_SAFEMALLOC_MEM_LIMIT:
#if !defined(DBUG_OFF) && defined(SAFEMALLOC)
- safemalloc_mem_limit = atoi(optarg);
+ safemalloc_mem_limit = atoi(argument);
#endif
- break;
- case OPT_RPL_RECOVERY_RANK:
- rpl_recovery_rank=atoi(optarg);
- break;
- case OPT_SLAVE_LOAD_TMPDIR:
- slave_load_tmpdir = my_strdup(optarg, MYF(MY_FAE));
- break;
- case OPT_OLD_RPL_COMPAT:
- opt_old_rpl_compat = 1;
- break;
- case OPT_SHOW_SLAVE_AUTH_INFO:
- opt_show_slave_auth_info = 1;
- break;
- case OPT_SOCKET:
- mysql_unix_port= optarg;
- break;
- case 'r':
- mysqld_chroot=optarg;
- break;
-#ifdef USE_SYMDIR
- case 's':
- my_use_symdir=1; /* Use internal symbolic links */
- break;
-#endif
- case 't':
- mysql_tmpdir=optarg;
- break;
- case OPT_TEMP_POOL:
- use_temp_pool=1;
- break;
- case 'u':
- mysqld_user=optarg;
- break;
- case 'v':
- case 'V':
- print_version();
- exit(0);
- case 'I':
- case '?':
- usage();
- exit(0);
- case 'T':
- test_flags= optarg ? (uint) atoi(optarg) : 0;
- opt_endinfo=1;
- break;
- case (int) OPT_BIG_TABLES:
- thd_startup_options|=OPTION_BIG_TABLES;
- break;
- case (int) OPT_ISAM_LOG:
- opt_myisam_log=1;
- if (optarg)
- myisam_log_filename=optarg;
- break;
- case (int) OPT_UPDATE_LOG:
- opt_update_log=1;
- opt_update_logname=optarg; // Use hostname.# if null
- break;
- case (int) OPT_RELAY_LOG_INDEX:
- opt_relaylog_index_name = optarg;
- break;
- case (int) OPT_RELAY_LOG:
- x_free(opt_relay_logname);
- if (optarg && optarg[0])
- opt_relay_logname=my_strdup(optarg,MYF(0));
- break;
- case (int) OPT_BIN_LOG_INDEX:
- opt_binlog_index_name = optarg;
- break;
- case (int) OPT_BIN_LOG:
- opt_bin_log=1;
- x_free(opt_bin_logname);
- if (optarg && optarg[0])
- opt_bin_logname=my_strdup(optarg,MYF(0));
- break;
- // needs to be handled (as no-op) in non-debugging mode for test suite
- case (int)OPT_DISCONNECT_SLAVE_EVENT_COUNT:
-#ifndef DBUG_OFF
- disconnect_slave_event_count = atoi(optarg);
-#endif
- break;
- case (int)OPT_ABORT_SLAVE_EVENT_COUNT:
-#ifndef DBUG_OFF
- abort_slave_event_count = atoi(optarg);
-#endif
- break;
- case (int)OPT_SPORADIC_BINLOG_DUMP_FAIL:
-#ifndef DBUG_OFF
- opt_sporadic_binlog_dump_fail = 1;
-#endif
- break;
- case (int)OPT_MAX_BINLOG_DUMP_EVENTS:
-#ifndef DBUG_OFF
- max_binlog_dump_events = atoi(optarg);
-#endif
- break;
-
- case (int) OPT_LOG_SLAVE_UPDATES:
- opt_log_slave_updates = 1;
- break;
-
- case (int) OPT_INIT_RPL_ROLE:
+ break;
+ case 'v':
+ case 'V':
+ print_version();
+ exit(0);
+ case 'I':
+ case '?':
+ usage();
+ exit(0);
+ case 'T':
+ test_flags= argument ? (uint) atoi(argument) : 0;
+ opt_endinfo=1;
+ break;
+ case (int) OPT_BIG_TABLES:
+ thd_startup_options|=OPTION_BIG_TABLES;
+ break;
+ case (int) OPT_ISAM_LOG:
+ opt_myisam_log=1;
+ break;
+ case (int) OPT_UPDATE_LOG:
+ opt_update_log=1;
+ break;
+ case (int) OPT_BIN_LOG:
+ opt_bin_log=1;
+ break;
+ case (int) OPT_INIT_RPL_ROLE:
{
int role;
- if ((role=find_type(optarg, &rpl_role_typelib, 2)) <= 0)
+ if ((role=find_type(argument, &rpl_role_typelib, 2)) <= 0)
{
- fprintf(stderr, "Unknown replication role: %s\n", optarg);
+ fprintf(stderr, "Unknown replication role: %s\n", argument);
exit(1);
}
rpl_status = (role == 1) ? RPL_AUTH_MASTER : RPL_IDLE_SLAVE;
break;
}
- case (int)OPT_REPLICATE_IGNORE_DB:
+ case (int)OPT_REPLICATE_IGNORE_DB:
+ {
+ i_string *db = new i_string(argument);
+ replicate_ignore_db.push_back(db);
+ break;
+ }
+ case (int)OPT_REPLICATE_DO_DB:
+ {
+ i_string *db = new i_string(argument);
+ replicate_do_db.push_back(db);
+ break;
+ }
+ case (int)OPT_REPLICATE_REWRITE_DB:
+ {
+ char* key = argument,*p, *val;
+ p = strstr(argument, "->");
+ if (!p)
{
- i_string *db = new i_string(optarg);
- replicate_ignore_db.push_back(db);
- break;
+ fprintf(stderr,
+ "Bad syntax in replicate-rewrite-db - missing '->'!\n");
+ exit(1);
}
- case (int)OPT_REPLICATE_DO_DB:
+ val = p--;
+ while (my_isspace(system_charset_info, *p) && p > argument) *p-- = 0;
+ if (p == argument)
{
- i_string *db = new i_string(optarg);
- replicate_do_db.push_back(db);
- break;
+ fprintf(stderr,
+ "Bad syntax in replicate-rewrite-db - empty FROM db!\n");
+ exit(1);
}
- case (int)OPT_REPLICATE_REWRITE_DB:
+ *val = 0;
+ val += 2;
+ while (*val && my_isspace(system_charset_info, *val))
+ *val++;
+ if (!*val)
{
- char* key = optarg,*p, *val;
- p = strstr(optarg, "->");
- if (!p)
- {
- fprintf(stderr,
- "Bad syntax in replicate-rewrite-db - missing '->'!\n");
- exit(1);
- }
- val = p--;
- while(my_isspace(system_charset_info,*p) && p > optarg) *p-- = 0;
- if(p == optarg)
- {
- fprintf(stderr,
- "Bad syntax in replicate-rewrite-db - empty FROM db!\n");
- exit(1);
- }
- *val = 0;
- val += 2;
- while(*val && my_isspace(system_charset_info,*val)) *val++;
- if (!*val)
- {
- fprintf(stderr,
- "Bad syntax in replicate-rewrite-db - empty TO db!\n");
- exit(1);
- }
-
- i_string_pair* db_pair = new i_string_pair(key, val);
- replicate_rewrite_db.push_back(db_pair);
- break;
+ fprintf(stderr,
+ "Bad syntax in replicate-rewrite-db - empty TO db!\n");
+ exit(1);
}
- case (int)OPT_BINLOG_IGNORE_DB:
- {
- i_string *db = new i_string(optarg);
- binlog_ignore_db.push_back(db);
- break;
- }
- case (int)OPT_BINLOG_DO_DB:
- {
- i_string *db = new i_string(optarg);
- binlog_do_db.push_back(db);
- break;
- }
- case (int)OPT_REPLICATE_DO_TABLE:
+ i_string_pair* db_pair = new i_string_pair(key, val);
+ replicate_rewrite_db.push_back(db_pair);
+ break;
+ }
+
+ case (int)OPT_BINLOG_IGNORE_DB:
+ {
+ i_string *db = new i_string(argument);
+ binlog_ignore_db.push_back(db);
+ break;
+ }
+ case (int)OPT_BINLOG_DO_DB:
+ {
+ i_string *db = new i_string(argument);
+ binlog_do_db.push_back(db);
+ break;
+ }
+ case (int)OPT_REPLICATE_DO_TABLE:
+ {
+ if (!do_table_inited)
+ init_table_rule_hash(&replicate_do_table, &do_table_inited);
+ if(add_table_rule(&replicate_do_table, argument))
{
- if (!do_table_inited)
- init_table_rule_hash(&replicate_do_table, &do_table_inited);
- if(add_table_rule(&replicate_do_table, optarg))
- {
- fprintf(stderr, "Could not add do table rule '%s'!\n", optarg);
- exit(1);
- }
- table_rules_on = 1;
- break;
+ fprintf(stderr, "Could not add do table rule '%s'!\n", argument);
+ exit(1);
}
- case (int)OPT_REPLICATE_WILD_DO_TABLE:
+ table_rules_on = 1;
+ break;
+ }
+ case (int)OPT_REPLICATE_WILD_DO_TABLE:
+ {
+ if (!wild_do_table_inited)
+ init_table_rule_array(&replicate_wild_do_table,
+ &wild_do_table_inited);
+ if(add_wild_table_rule(&replicate_wild_do_table, argument))
{
- if (!wild_do_table_inited)
- init_table_rule_array(&replicate_wild_do_table,
- &wild_do_table_inited);
- if(add_wild_table_rule(&replicate_wild_do_table, optarg))
- {
- fprintf(stderr, "Could not add do table rule '%s'!\n", optarg);
- exit(1);
- }
- table_rules_on = 1;
- break;
+ fprintf(stderr, "Could not add do table rule '%s'!\n", argument);
+ exit(1);
}
- case (int)OPT_REPLICATE_WILD_IGNORE_TABLE:
+ table_rules_on = 1;
+ break;
+ }
+ case (int)OPT_REPLICATE_WILD_IGNORE_TABLE:
+ {
+ if (!wild_ignore_table_inited)
+ init_table_rule_array(&replicate_wild_ignore_table,
+ &wild_ignore_table_inited);
+ if(add_wild_table_rule(&replicate_wild_ignore_table, argument))
{
- if (!wild_ignore_table_inited)
- init_table_rule_array(&replicate_wild_ignore_table,
- &wild_ignore_table_inited);
- if(add_wild_table_rule(&replicate_wild_ignore_table, optarg))
- {
- fprintf(stderr, "Could not add ignore table rule '%s'!\n", optarg);
- exit(1);
- }
- table_rules_on = 1;
- break;
+ fprintf(stderr, "Could not add ignore table rule '%s'!\n", argument);
+ exit(1);
}
- case (int)OPT_REPLICATE_IGNORE_TABLE:
+ table_rules_on = 1;
+ break;
+ }
+ case (int)OPT_REPLICATE_IGNORE_TABLE:
+ {
+ if (!ignore_table_inited)
+ init_table_rule_hash(&replicate_ignore_table, &ignore_table_inited);
+ if(add_table_rule(&replicate_ignore_table, argument))
{
- if (!ignore_table_inited)
- init_table_rule_hash(&replicate_ignore_table, &ignore_table_inited);
- if(add_table_rule(&replicate_ignore_table, optarg))
- {
- fprintf(stderr, "Could not add ignore table rule '%s'!\n", optarg);
- exit(1);
- }
- table_rules_on = 1;
- break;
+ fprintf(stderr, "Could not add ignore table rule '%s'!\n", argument);
+ exit(1);
}
- case (int) OPT_SQL_BIN_UPDATE_SAME:
- opt_sql_bin_update = 1;
- break;
- case (int) OPT_SLOW_QUERY_LOG:
- opt_slow_log=1;
- opt_slow_logname=optarg;
+ table_rules_on = 1;
break;
- case (int)OPT_SKIP_SLAVE_START:
- opt_skip_slave_start = 1;
- break;
- case (int) OPT_SKIP_NEW:
- opt_specialflag|= SPECIAL_NO_NEW_FUNC;
- myisam_delay_key_write=0;
- myisam_concurrent_insert=0;
- myisam_recover_options= HA_RECOVER_NONE;
- my_disable_symlinks=1;
- my_use_symdir=0;
- have_symlink=SHOW_OPTION_DISABLED;
- ha_open_options&= ~HA_OPEN_ABORT_IF_CRASHED;
+ }
+ case (int) OPT_SLOW_QUERY_LOG:
+ opt_slow_log=1;
+ break;
+ case (int)OPT_RECKLESS_SLAVE:
+ opt_reckless_slave = 1;
+ init_slave_skip_errors("all");
+ break;
+ case (int) OPT_SKIP_NEW:
+ opt_specialflag|= SPECIAL_NO_NEW_FUNC;
+ myisam_delay_key_write=0;
+ myisam_concurrent_insert=0;
+ myisam_recover_options= HA_RECOVER_NONE;
+ my_disable_symlinks=1;
+ my_use_symdir=0;
+ have_symlink=SHOW_OPTION_DISABLED;
+ ha_open_options&= ~HA_OPEN_ABORT_IF_CRASHED;
#ifdef HAVE_QUERY_CACHE
- query_cache_size=0;
-#endif
- break;
- case (int) OPT_SAFE:
- opt_specialflag|= SPECIAL_SAFE_MODE;
- myisam_delay_key_write=0;
- myisam_recover_options= HA_RECOVER_NONE; // To be changed
- ha_open_options&= ~HA_OPEN_ABORT_IF_CRASHED;
- break;
- case (int) OPT_SKIP_CONCURRENT_INSERT:
- myisam_concurrent_insert=0;
- break;
- case (int) OPT_SKIP_PRIOR:
- opt_specialflag|= SPECIAL_NO_PRIOR;
- break;
- case (int) OPT_SKIP_GRANT:
- opt_noacl=1;
- break;
- case (int) OPT_SKIP_LOCK:
- my_disable_locking=myisam_single_user= 1;
- break;
- case (int) OPT_SKIP_HOST_CACHE:
- opt_specialflag|= SPECIAL_NO_HOST_CACHE;
- break;
- case (int) OPT_ENABLE_LOCK:
- my_disable_locking=myisam_single_user=0;
- break;
- case (int) OPT_USE_LOCKING:
- my_disable_locking=0;
- break;
- case (int) OPT_SKIP_RESOLVE:
- opt_specialflag|=SPECIAL_NO_RESOLVE;
- break;
- case (int) OPT_LONG_FORMAT:
- opt_specialflag|=SPECIAL_LONG_LOG_FORMAT;
- break;
- case (int) OPT_NO_MIX_TYPE:
- opt_no_mix_types = 1;
- break;
- case (int) OPT_SKIP_NETWORKING:
- opt_disable_networking=1;
- mysql_port=0;
- break;
- case (int) OPT_SKIP_SHOW_DB:
- opt_skip_show_db=1;
- opt_specialflag|=SPECIAL_SKIP_SHOW_DB;
- mysql_port=0;
- break;
- case (int) OPT_MEMLOCK:
- locked_in_memory=1;
- break;
- case (int) OPT_ONE_THREAD:
- test_flags |= TEST_NO_THREADS;
- break;
- case (int) OPT_WANT_CORE:
- test_flags |= TEST_CORE_ON_SIGNAL;
- break;
- case (int) OPT_SKIP_STACK_TRACE:
- test_flags|=TEST_NO_STACKTRACE;
- break;
- case (int) OPT_SKIP_SYMLINKS:
- my_disable_symlinks=1;
- my_use_symdir=0;
- have_symlink=SHOW_OPTION_DISABLED;
- break;
- case (int) OPT_BIND_ADDRESS:
- if (optarg && my_isdigit(system_charset_info,optarg[0]))
- {
- my_bind_addr = (ulong) inet_addr(optarg);
- }
+ query_cache_size=0;
+#endif
+ break;
+ case (int) OPT_SAFE:
+ opt_specialflag|= SPECIAL_SAFE_MODE;
+ myisam_delay_key_write=0;
+ myisam_recover_options= HA_RECOVER_NONE; // To be changed
+ ha_open_options&= ~HA_OPEN_ABORT_IF_CRASHED;
+ break;
+ case (int) OPT_SKIP_PRIOR:
+ opt_specialflag|= SPECIAL_NO_PRIOR;
+ break;
+ case (int) OPT_SKIP_LOCK:
+ my_disable_locking=myisam_single_user= 1;
+ break;
+ case (int) OPT_SKIP_HOST_CACHE:
+ opt_specialflag|= SPECIAL_NO_HOST_CACHE;
+ break;
+ case (int) OPT_ENABLE_LOCK:
+ my_disable_locking=myisam_single_user=0;
+ break;
+ case (int) OPT_USE_LOCKING:
+ my_disable_locking=0;
+ break;
+ case (int) OPT_SKIP_RESOLVE:
+ opt_specialflag|=SPECIAL_NO_RESOLVE;
+ break;
+ case (int) OPT_LONG_FORMAT:
+ opt_specialflag|=SPECIAL_LONG_LOG_FORMAT;
+ break;
+ case (int) OPT_SKIP_NETWORKING:
+ opt_disable_networking=1;
+ mysql_port=0;
+ break;
+ case (int) OPT_SKIP_SHOW_DB:
+ opt_skip_show_db=1;
+ opt_specialflag|=SPECIAL_SKIP_SHOW_DB;
+ mysql_port=0;
+ break;
+ case (int) OPT_ONE_THREAD:
+ test_flags |= TEST_NO_THREADS;
+ break;
+ case (int) OPT_WANT_CORE:
+ test_flags |= TEST_CORE_ON_SIGNAL;
+ break;
+ case (int) OPT_SKIP_STACK_TRACE:
+ test_flags|=TEST_NO_STACKTRACE;
+ break;
+ case (int) OPT_SKIP_SYMLINKS:
+ my_disable_symlinks=1;
+ my_use_symdir=0;
+ have_symlink=SHOW_OPTION_DISABLED;
+ break;
+ case (int) OPT_BIND_ADDRESS:
+ if (argument && my_isdigit(system_charset_info, argument[0]))
+ {
+ my_bind_addr = (ulong) inet_addr(argument);
+ }
+ else
+ {
+ struct hostent *ent;
+ if (!argument || !argument[0])
+ ent=gethostbyname(argument);
else
{
- struct hostent *ent;
- if (!optarg || !optarg[0])
- ent=gethostbyname(optarg);
- else
+ char myhostname[255];
+ if (gethostname(myhostname,sizeof(myhostname)) < 0)
{
- char myhostname[255];
- if (gethostname(myhostname,sizeof(myhostname)) < 0)
- {
- sql_perror("Can't start server: cannot get my own hostname!");
- exit(1);
- }
- ent=gethostbyname(myhostname);
- }
- if (!ent)
- {
- sql_perror("Can't start server: cannot resolve hostname!");
+ sql_perror("Can't start server: cannot get my own hostname!");
exit(1);
}
- my_bind_addr = (ulong) ((in_addr*)ent->h_addr_list[0])->s_addr;
+ ent=gethostbyname(myhostname);
}
- break;
- case (int) OPT_PID_FILE:
- strmake(pidfile_name, optarg, sizeof(pidfile_name)-1);
- break;
- case (int) OPT_INIT_FILE:
- opt_init_file=optarg;
- break;
- case (int) OPT_HAVE_NAMED_PIPE:
-#if __NT__
- opt_enable_named_pipe=1;
-#endif
- break;
+ if (!ent)
+ {
+ sql_perror("Can't start server: cannot resolve hostname!");
+ exit(1);
+ }
+ my_bind_addr = (ulong) ((in_addr*)ent->h_addr_list[0])->s_addr;
+ }
+ break;
+ case (int) OPT_PID_FILE:
+ strmake(pidfile_name, argument, sizeof(pidfile_name)-1);
+ break;
#ifdef __WIN__
- case (int) OPT_STANDALONE: /* Dummy option for NT */
- break;
- case (int) OPT_CONSOLE:
- opt_console=1;
- break;
+ case (int) OPT_STANDALONE: /* Dummy option for NT */
+ break;
#endif
- case (int) OPT_FLUSH:
+ case (int) OPT_FLUSH:
#ifdef HAVE_ISAM
- nisam_flush=1;
-#endif
- myisam_flush=1;
- flush_time=0; // No auto flush
- break;
- case OPT_LOW_PRIORITY_UPDATES:
- thd_startup_options|=OPTION_LOW_PRIORITY_UPDATES;
- thr_upgraded_concurrent_insert_lock= TL_WRITE_LOW_PRIORITY;
- low_priority_updates=1;
- break;
- case OPT_BOOTSTRAP:
- opt_noacl=opt_bootstrap=1;
- break;
- case OPT_TABLE_TYPE:
+ nisam_flush=1;
+#endif
+ myisam_flush=1;
+ flush_time=0; // No auto flush
+ break;
+ case OPT_LOW_PRIORITY_UPDATES:
+ thd_startup_options|=OPTION_LOW_PRIORITY_UPDATES;
+ thr_upgraded_concurrent_insert_lock= TL_WRITE_LOW_PRIORITY;
+ low_priority_updates=1;
+ break;
+ case OPT_BOOTSTRAP:
+ opt_noacl=opt_bootstrap=1;
+ break;
+ case OPT_TABLE_TYPE:
{
int type;
- if ((type=find_type(optarg, &ha_table_typelib, 2)) <= 0)
+ if ((type=find_type(argument, &ha_table_typelib, 2)) <= 0)
{
- fprintf(stderr,"Unknown table type: %s\n",optarg);
+ fprintf(stderr,"Unknown table type: %s\n",argument);
exit(1);
}
default_table_type= (enum db_type) type;
break;
}
- case OPT_SERVER_ID:
- server_id = atoi(optarg);
- server_id_supplied = 1;
- break;
- case OPT_DELAY_KEY_WRITE:
- ha_open_options|=HA_OPEN_DELAY_KEY_WRITE;
- myisam_delay_key_write=1;
- break;
- case OPT_SKIP_DELAY_KEY_WRITE:
- myisam_delay_key_write=0;
- break;
- case 'C':
- strmake(default_charset, optarg, sizeof(default_charset)-1);
- break;
- case OPT_CHARSETS_DIR:
- strmake(mysql_charsets_dir, optarg, sizeof(mysql_charsets_dir)-1);
- charsets_dir = mysql_charsets_dir;
- break;
+ case OPT_SERVER_ID:
+ server_id_supplied = 1;
+ break;
+ case OPT_DELAY_KEY_WRITE:
+ ha_open_options|=HA_OPEN_DELAY_KEY_WRITE;
+ myisam_delay_key_write=1;
+ break;
+ case 'C':
+ strmake(default_charset, argument, sizeof(default_charset)-1);
+ break;
+ case OPT_CHARSETS_DIR:
+ strmake(mysql_charsets_dir, argument, sizeof(mysql_charsets_dir)-1);
+ charsets_dir = mysql_charsets_dir;
+ break;
#ifdef HAVE_OPENSSL
- case OPT_SSL_SSL:
- opt_use_ssl = 1; /* true */
- break;
- case OPT_SSL_KEY:
- opt_use_ssl = 1; /* true */
- my_free(opt_ssl_key, MYF(MY_ALLOW_ZERO_PTR));
- opt_ssl_key = my_strdup(optarg, MYF(0));
- break;
- case OPT_SSL_CERT:
- opt_use_ssl = 1; /* true */
- my_free(opt_ssl_cert, MYF(MY_ALLOW_ZERO_PTR));
- opt_ssl_cert = my_strdup(optarg, MYF(0));
- break;
- case OPT_SSL_CA:
- opt_use_ssl = 1; /* true */
- my_free(opt_ssl_ca, MYF(MY_ALLOW_ZERO_PTR));
- opt_ssl_ca = my_strdup(optarg, MYF(0));
- break;
- case OPT_SSL_CAPATH:
- opt_use_ssl = 1; /* true */
- my_free(opt_ssl_capath, MYF(MY_ALLOW_ZERO_PTR));
- opt_ssl_capath = my_strdup(optarg, MYF(0));
- break;
- case OPT_SSL_CIPHER:
- opt_use_ssl = 1; /* true */
- my_free(opt_ssl_cipher, MYF(MY_ALLOW_ZERO_PTR));
- opt_ssl_cipher = my_strdup(optarg, MYF(0));
- break;
+#include "sslopt-case.h"
#endif
- case OPT_DES_KEY_FILE:
+ case OPT_DES_KEY_FILE:
#ifdef HAVE_OPENSSL
- des_key_file=optarg;
+ des_key_file=argument;
#endif
- break;
- case OPT_TX_ISOLATION:
+ break;
+ case OPT_TX_ISOLATION:
{
int type;
- if ((type=find_type(optarg, &tx_isolation_typelib, 2)) <= 0)
+ if ((type=find_type(argument, &tx_isolation_typelib, 2)) <= 0)
{
- fprintf(stderr,"Unknown transaction isolation type: %s\n",optarg);
+ fprintf(stderr,"Unknown transaction isolation type: %s\n",argument);
exit(1);
}
default_tx_isolation= (enum_tx_isolation) (type-1);
break;
}
#ifdef HAVE_BERKELEY_DB
- case OPT_BDB_LOG:
- berkeley_logdir=optarg;
- break;
- case OPT_BDB_HOME:
- berkeley_home=optarg;
- break;
- case OPT_BDB_NOSYNC:
- berkeley_env_flags|=DB_TXN_NOSYNC;
- break;
- case OPT_BDB_NO_RECOVER:
- berkeley_init_flags&= ~(DB_RECOVER);
- break;
- case OPT_BDB_TMP:
- berkeley_tmpdir=optarg;
- break;
- case OPT_BDB_LOCK:
+ case OPT_BDB_NOSYNC:
+ berkeley_env_flags|=DB_TXN_NOSYNC;
+ break;
+ case OPT_BDB_NO_RECOVER:
+ berkeley_init_flags&= ~(DB_RECOVER);
+ break;
+ case OPT_BDB_LOCK:
{
int type;
- if ((type=find_type(optarg, &berkeley_lock_typelib, 2)) > 0)
+ if ((type=find_type(argument, &berkeley_lock_typelib, 2)) > 0)
berkeley_lock_type=berkeley_lock_types[type-1];
else
{
- if (test_if_int(optarg,(uint) strlen(optarg)))
- berkeley_lock_scan_time=atoi(optarg);
+ if (test_if_int(argument,(uint) strlen(argument)))
+ berkeley_lock_scan_time=atoi(argument);
else
{
- fprintf(stderr,"Unknown lock type: %s\n",optarg);
+ fprintf(stderr,"Unknown lock type: %s\n",argument);
exit(1);
}
}
break;
}
- case OPT_BDB_SHARED:
- berkeley_init_flags&= ~(DB_PRIVATE);
- berkeley_shared_data=1;
- break;
+ case OPT_BDB_SHARED:
+ berkeley_init_flags&= ~(DB_PRIVATE);
+ berkeley_shared_data=1;
+ break;
#endif /* HAVE_BERKELEY_DB */
- case OPT_BDB_SKIP:
+ case OPT_BDB_SKIP:
#ifdef HAVE_BERKELEY_DB
- berkeley_skip=1;
- have_berkeley_db=SHOW_OPTION_DISABLED;
+ berkeley_skip=1;
+ have_berkeley_db=SHOW_OPTION_DISABLED;
#endif
- break;
- case OPT_INNODB_SKIP:
+ break;
+ case OPT_INNODB_SKIP:
#ifdef HAVE_INNOBASE_DB
- innodb_skip=1;
- have_innodb=SHOW_OPTION_DISABLED;
+ innodb_skip=1;
+ have_innodb=SHOW_OPTION_DISABLED;
#endif
- break;
- case OPT_INNODB_DATA_FILE_PATH:
+ break;
+ case OPT_INNODB_DATA_FILE_PATH:
#ifdef HAVE_INNOBASE_DB
- innobase_data_file_path=optarg;
+ innobase_data_file_path=argument;
#endif
- break;
+ break;
#ifdef HAVE_INNOBASE_DB
- case OPT_INNODB_DATA_HOME_DIR:
- innobase_data_home_dir=optarg;
- break;
- case OPT_INNODB_LOG_GROUP_HOME_DIR:
- innobase_log_group_home_dir=optarg;
- break;
- case OPT_INNODB_LOG_ARCH_DIR:
- innobase_log_arch_dir=optarg;
- break;
- case OPT_INNODB_LOG_ARCHIVE:
- innobase_log_archive= optarg ? test(atoi(optarg)) : 1;
- break;
- case OPT_INNODB_FLUSH_LOG_AT_TRX_COMMIT:
- innobase_flush_log_at_trx_commit= optarg ? test(atoi(optarg)) : 1;
- break;
- case OPT_INNODB_FAST_SHUTDOWN:
- innobase_fast_shutdown= optarg ? test(atoi(optarg)) : 1;
- break;
- case OPT_INNODB_FLUSH_METHOD:
- innobase_unix_file_flush_method=optarg;
- break;
+ case OPT_INNODB_LOG_ARCHIVE:
+ innobase_log_archive= argument ? test(atoi(argument)) : 1;
+ break;
+ case OPT_INNODB_FLUSH_LOG_AT_TRX_COMMIT:
+ innobase_flush_log_at_trx_commit= argument ? test(atoi(argument)) : 1;
+ break;
+ case OPT_INNODB_FAST_SHUTDOWN:
+ innobase_fast_shutdown= argument ? test(atoi(argument)) : 1;
+ break;
#endif /* HAVE_INNOBASE_DB */
- case OPT_DO_PSTACK:
- opt_do_pstack = 1;
- break;
- case OPT_MYISAM_RECOVER:
+ case OPT_MYISAM_RECOVER:
{
- if (!optarg || !optarg[0])
+ if (!argument || !argument[0])
{
myisam_recover_options= HA_RECOVER_DEFAULT;
myisam_recover_options_str= myisam_recover_typelib.type_names[0];
}
else
{
- myisam_recover_options_str=optarg;
+ myisam_recover_options_str=argument;
if ((myisam_recover_options=
- find_bit_type(optarg, &myisam_recover_typelib)) == ~(ulong) 0)
+ find_bit_type(argument, &myisam_recover_typelib)) == ~(ulong) 0)
{
- fprintf(stderr, "Unknown option to myisam-recover: %s\n",optarg);
+ fprintf(stderr, "Unknown option to myisam-recover: %s\n",argument);
exit(1);
}
}
ha_open_options|=HA_OPEN_ABORT_IF_CRASHED;
break;
}
- case OPT_SQL_MODE:
+ case OPT_SQL_MODE:
{
- sql_mode_str = optarg;
+ sql_mode_str = argument;
if ((opt_sql_mode =
- find_bit_type(optarg, &sql_mode_typelib)) == ~(ulong) 0)
+ find_bit_type(argument, &sql_mode_typelib)) == ~(ulong) 0)
{
- fprintf(stderr, "Unknown option to sql-mode: %s\n", optarg);
+ fprintf(stderr, "Unknown option to sql-mode: %s\n", argument);
exit(1);
}
default_tx_isolation= ((opt_sql_mode & MODE_SERIALIZABLE) ?
@@ -4267,78 +4392,37 @@ static void get_options(int argc,char **argv)
ISO_READ_COMMITTED);
break;
}
- case OPT_MASTER_HOST:
- master_host=optarg;
- break;
- case OPT_MASTER_USER:
- master_user=optarg;
- break;
- case OPT_MASTER_PASSWORD:
- master_password=optarg;
- break;
- case OPT_MASTER_INFO_FILE:
- master_info_file=optarg;
- break;
- case OPT_RELAY_LOG_INFO_FILE:
- relay_log_info_file=optarg;
- break;
- case OPT_MASTER_PORT:
- master_port= atoi(optarg);
- break;
- case OPT_MASTER_SSL:
- master_ssl=atoi(optarg);
- break;
- case OPT_MASTER_SSL_KEY:
- master_ssl_key=optarg;
- break;
- case OPT_MASTER_SSL_CERT:
- master_ssl_cert=optarg;
- break;
- case OPT_REPORT_HOST:
- report_host=optarg;
- break;
- case OPT_REPORT_USER:
- report_user=optarg;
- break;
- case OPT_REPORT_PASSWORD:
- report_password=optarg;
- break;
- case OPT_REPORT_PORT:
- report_port= atoi(optarg);
- break;
- case OPT_MASTER_CONNECT_RETRY:
- master_connect_retry= atoi(optarg);
- break;
- case OPT_MASTER_RETRY_COUNT:
- master_retry_count= atoi(optarg);
- break;
- case OPT_SAFE_SHOW_DB:
- opt_safe_show_db=1;
- break;
- case OPT_SAFE_USER_CREATE:
- opt_safe_user_create=1;
- break;
- case OPT_SKIP_SAFEMALLOC:
+ case OPT_MASTER_PASSWORD:
+ master_password=argument;
+ break;
+ case OPT_SKIP_SAFEMALLOC:
#ifdef SAFEMALLOC
- sf_malloc_quick=1;
+ sf_malloc_quick=1;
#endif
- break;
- default:
- fprintf(stderr,"%s: Unrecognized option: %c\n",my_progname,c);
- use_help();
- exit(1);
- }
- }
- // Skip empty arguments (from shell)
- while (argc != optind && !argv[optind][0])
- optind++;
- if (argc != optind)
- {
- fprintf(stderr,"%s: Too many parameters\n",my_progname);
- use_help();
- exit(1);
+ break;
}
- optind = 0; // setup so that getopt_long() can be called again
+ return 0;
+}
+
+ /* Initiates DEBUG - but no debugging here ! */
+
+static void get_options(int argc,char **argv)
+{
+ int ho_error;
+
+ myisam_delay_key_write=1; // Allow use of this
+#ifndef HAVE_purify
+ my_use_symdir=1; // Use internal symbolic links
+#else
+ /* Symlinks gives too many warnings with purify */
+ my_disable_symlinks=1;
+ my_use_symdir=0;
+ have_symlink=SHOW_OPTION_DISABLED;
+#endif
+
+ if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
+ exit(ho_error);
+
fix_paths();
default_table_type_name=ha_table_typelib.type_names[default_table_type-1];
default_tx_isolation_name=tx_isolation_typelib.type_names[default_tx_isolation];
diff --git a/sql/nt_servc.cc b/sql/nt_servc.cc
index 8c705a94f55..be2ceb9cb7a 100644
--- a/sql/nt_servc.cc
+++ b/sql/nt_servc.cc
@@ -479,3 +479,33 @@ If this condition persist, reboot the machine and try again\n");
return ret_value;
}
+/* ------------------------------------------------------------------------
+ -------------------------------------------------------------------------- */
+BOOL NTService::IsService(LPCSTR ServiceName)
+{
+ BOOL ret_value=FALSE;
+ SC_HANDLE service, scm;
+
+ if (scm = OpenSCManager(0, 0,SC_MANAGER_ENUMERATE_SERVICE))
+ {
+ if ((service = OpenService(scm,ServiceName, SERVICE_ALL_ACCESS )))
+ {
+ ret_value=TRUE;
+ CloseServiceHandle(service);
+ }
+ CloseServiceHandle(scm);
+ }
+ return ret_value;
+}
+/* ------------------------------------------------------------------------
+ -------------------------------------------------------------------------- */
+BOOL NTService::got_service_option(char **argv, char *service_option)
+{
+ char *option = argv[1];
+
+ while (*option)
+ if (!strcmp(option++, service_option))
+ return TRUE;
+
+ return FALSE;
+}
diff --git a/sql/nt_servc.h b/sql/nt_servc.h
index 40d1a8c03fa..ab3238e0f41 100644
--- a/sql/nt_servc.h
+++ b/sql/nt_servc.h
@@ -52,6 +52,8 @@ class NTService
LPCSTR szAccountName=NULL,LPCSTR szPassword=NULL);
BOOL SeekStatus(LPCSTR szInternName, int OperationType);
BOOL Remove(LPCSTR szInternName);
+ BOOL IsService(LPCSTR ServiceName);
+ BOOL got_service_option(char **argv, char *service_option);
void Stop(void); //to be called from app. to stop service
diff --git a/sql/repl_failsafe.cc b/sql/repl_failsafe.cc
index 3f16880c18e..112642d0a5f 100644
--- a/sql/repl_failsafe.cc
+++ b/sql/repl_failsafe.cc
@@ -608,6 +608,9 @@ int show_slave_hosts(THD* thd)
int connect_to_master(THD *thd, MYSQL* mysql, MASTER_INFO* mi)
{
+ if (!mi->host || !*mi->host) /* empty host */
+ return 1;
+
if (!mc_mysql_connect(mysql, mi->host, mi->user, mi->password, 0,
mi->port, 0, 0))
{
diff --git a/sql/share/czech/errmsg.txt b/sql/share/czech/errmsg.txt
index 48c42b98261..28e1042d02c 100644
--- a/sql/share/czech/errmsg.txt
+++ b/sql/share/czech/errmsg.txt
@@ -203,7 +203,7 @@
"S-Bí»ová chyba pøi zápisu na master",
"-B®ádný sloupec nemá vytvoøen fulltextový index",
"Nemohu prov-Bést zadaný pøíkaz, proto¾e existují aktivní zamèené tabulky nebo aktivní transakce",
-"Nezn-Bámá systémová promìnná '%-.64'",
+"Nezn-Bámá systémová promìnná '%-.64s'",
"Tabulka '%-.64s' je ozna-Bèena jako poru¹ená a mìla by být opravena",
"Tabulka '%-.64s' je ozna-Bèena jako poru¹ená a poslední (automatická?) oprava se nezdaøila",
"Warning: Some non-transactional changed tables couldn't be rolled back",
diff --git a/sql/share/danish/errmsg.txt b/sql/share/danish/errmsg.txt
index 5fde80fd631..b89a6f1f11c 100644
--- a/sql/share/danish/errmsg.txt
+++ b/sql/share/danish/errmsg.txt
@@ -197,7 +197,7 @@
"Netværksfejl ved skrivning til master",
"Kan ikke finde en FULLTEXT nøgle som svarer til kolonne listen",
"Kan ikke udføre den givne kommando fordi der findes aktive, låste tabeller eller fordi der udføres en transaktion",
-"Ukendt systemvariabel '%-.64'",
+"Ukendt systemvariabel '%-.64s'",
"Tabellen '%-.64s' er markeret med fejl og bør repareres",
"Tabellen '%-.64s' er markeret med fejl og sidste (automatiske?) REPAIR fejlede",
"Advarsel: Visse data i tabeller der ikke understøtter transaktioner kunne ikke tilbagestilles",
diff --git a/sql/share/dutch/errmsg.txt b/sql/share/dutch/errmsg.txt
index 6d48be9e724..dc3947a30f8 100644
--- a/sql/share/dutch/errmsg.txt
+++ b/sql/share/dutch/errmsg.txt
@@ -202,7 +202,7 @@
"Net fout tijdens schrijven naar master",
"Kan geen FULLTEXT index vinden passend bij de kolom lijst",
"Kan het gegeven commando niet uitvoeren, want u heeft actieve gelockte tabellen of een actieve transactie",
-"Onbekende systeem variabele '%-.64'",
+"Onbekende systeem variabele '%-.64s'",
"Tabel '%-.64s' staat als gecrashed gemarkeerd en dient te worden gerepareerd",
"Tabel '%-.64s' staat als gecrashed gemarkeerd en de laatste (automatische?) reparatie poging mislukte",
"Waarschuwing: Roll back mislukt voor sommige buiten transacties gewijzigde tabellen",
diff --git a/sql/share/english/errmsg.txt b/sql/share/english/errmsg.txt
index 60710a07728..b3d04954634 100644
--- a/sql/share/english/errmsg.txt
+++ b/sql/share/english/errmsg.txt
@@ -194,7 +194,7 @@
"Net error writing to master",
"Can't find FULLTEXT index matching the column list",
"Can't execute the given command because you have active locked tables or an active transaction",
-"Unknown system variable '%-.64'",
+"Unknown system variable '%-.64s'",
"Table '%-.64s' is marked as crashed and should be repaired",
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
"Warning: Some non-transactional changed tables couldn't be rolled back",
diff --git a/sql/share/estonian/errmsg.txt b/sql/share/estonian/errmsg.txt
index f902b93aa1f..fe121a27d5d 100644
--- a/sql/share/estonian/errmsg.txt
+++ b/sql/share/estonian/errmsg.txt
@@ -199,7 +199,7 @@
"Net error writing to master",
"Ei suutnud leida FULLTEXT indeksit, mis kattuks kasutatud tulpadega",
"Ei suuda täita antud käsku kuna on aktiivseid lukke või käimasolev transaktsioon",
-"Tundmatu süsteemne muutuja '%-.64'",
+"Tundmatu süsteemne muutuja '%-.64s'",
"Tabel '%-.64s' on märgitud vigaseks ja tuleb parandada",
"Tabel '%-.64s' on märgitud vigaseks ja viimane (automaatne?) parandus ebaõnnestus",
"Hoiatus: mõnesid transaktsioone mittetoetavaid tabeleid ei suudetud tagasi kerida",
diff --git a/sql/share/french/errmsg.txt b/sql/share/french/errmsg.txt
index 6473b2a71f3..3c458f037fb 100644
--- a/sql/share/french/errmsg.txt
+++ b/sql/share/french/errmsg.txt
@@ -122,103 +122,103 @@
"Ligne trop grande. Le taille maximale d'une ligne, sauf les BLOBs, est %d. Changez le type de quelques colonnes en BLOB",
"Débordement de la pile des tâches (Thread stack). Utilisées: %ld pour une pile de %ld. Essayez 'mysqld -O thread_stack=#' pour indiquer une plus grande valeur",
"Dépendance croisée dans une clause OUTER JOIN. Vérifiez la condition ON",
-"Column '%-.32s' is used with UNIQUE or INDEX but is not defined as NOT NULL",
-"Can't load function '%-.64s'",
-"Can't initialize function '%-.64s'; %-.80s",
-"No paths allowed for shared library",
-"Function '%-.64s' already exist",
-"Can't open shared library '%-.64s' (errno: %d %s)",
-"Can't find function '%-.64s' in library'",
-"Function '%-.64s' is not defined",
-"Host '%-.64s' is blocked because of many connection errors. Unblock with 'mysqladmin flush-hosts'",
-"Host '%-.64s' is not allowed to connect to this MySQL server",
-"You are using MySQL as an anonymous users and anonymous users are not allowed to change passwords",
-"You must have privileges to update tables in the mysql database to be able to change passwords for others",
-"Can't find any matching row in the user table",
-"Rows matched: %ld Changed: %ld Warnings: %ld",
-"Can't create a new thread (errno %d). If you are not out of available memory you can consult the manual for any possible OS dependent bug",
+"La colonne '%-.32s' fait partie d'un index UNIQUE ou INDEX mais n'est pas définie comme NOT NULL"
+"Imposible de charger la fonction '%-.64s'",
+"Impossible d'initialiser la fonction '%-.64s'; %-.80s",
+"Chemin interdit pour les bibliothèques partagées",
+"La fonction '%-.64s' existe déjà",
+"Impossible d'ouvrir la bibliothèque partagée '%-.64s' (errno: %d %s)",
+"Impossible de trouver la fonction '%-.64s' dans la bibliothèque'",
+"La fonction '%-.64s' n'est pas définie",
+"L'hôte '%-.64s' est bloqué à cause d'un trop grand nombre d'erreur de connection. Débloquer le par 'mysqladmin flush-hosts'",
+"Le hôte '%-.64s' n'est pas authorisé à se connecter à ce serveur MySQL",
+"Vous utilisez un utilisateur anonyme et les utilisateurs anonymes ne sont pas autorisés à changer les mots de passe",
+"Vous devez avoir le privilège update sur les tables de la base de donnée mysql pour pouvoir changer les mots de passe des autres",
+"Impossible de trouver un enregistrement correspondant dans la table user",
+"Enregistrements correspondants: %ld Modifiés: %ld Warnings: %ld",
+"Impossible de créer une nouvelle tâche (errno %d). S'il reste de la mémoire libre, consultez le manual pour trouver un éventuel bug dépendant de l'OS",
"Column count doesn't match value count at row %ld",
-"Can't reopen table: '%-.64s',
-"Invalid use of NULL value",
-"Got error '%-.64s' from regexp",
-"Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP columns is illegal if there is no GROUP BY clause",
-"There is no such grant defined for user '%-.32s' on host '%-.64s'",
-"%-.16s command denied to user: '%-.32s@%-.64s' for table '%-.64s'",
-"%-.16s command denied to user: '%-.32s@%-.64s' for column '%-.64s' in table '%-.64s'",
-"Illegal GRANT/REVOKE command. Please consult the manual which privleges can be used.",
-"The host or user argument to GRANT is too long",
-"Table '%-.64s.%s' doesn't exist",
-"There is no such grant defined for user '%-.32s' on host '%-.64s' on table '%-.64s'",
-"The used command is not allowed with this MySQL version",
-"Something is wrong in your syntax",
-"Delayed insert thread couldn't get requested lock for table %-.64s",
-"Too many delayed threads in use",
-"Aborted connection %ld to db: '%-.64s' user: '%-.64s' (%s)",
-"Got a packet bigger than 'max_allowed_packet'",
-"Got a read error from the connection pipe",
-"Got an error from fcntl()",
-"Got packets out of order",
-"Couldn't uncompress communication packet",
-"Got an error reading communication packets"
-"Got timeout reading communication packets",
-"Got an error writing communication packets",
-"Got timeout writing communication packets",
-"Result string is longer than max_allowed_packet",
-"The used table type doesn't support BLOB/TEXT columns",
-"The used table type doesn't support AUTO_INCREMENT columns",
-"INSERT DELAYED can't be used with table '%-.64s', because it is locked with LOCK TABLES",
-"Incorrect column name '%-.100s'",
-"The used table handler can't index column '%-.64s'",
-"All tables in the MERGE table are not defined identically",
-"Can't write, because of unique constraint, to table '%-.64s'",
-"BLOB column '%-.64s' used in key specification without a key length",
-"All parts of a PRIMARY KEY must be NOT NULL; If you need NULL in a key, use UNIQUE instead",
-"Result consisted of more than one row",
-"This table type requires a primary key",
-"This version of MySQL is not compiled with RAID support",
-"You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column",
-"Key '%-.64s' doesn't exist in table '%-.64s'",
-"Can't open table",
-"The handler for the table doesn't support check/repair",
-"You are not allowed to execute this command in a transaction",
-"Got error %d during COMMIT",
-"Got error %d during ROLLBACK",
-"Got error %d during FLUSH_LOGS",
-"Got error %d during CHECKPOINT",
-"Aborted connection %ld to db: '%-.64s' user: '%-.32s' host: `%-.64s' (%-.64s)",
-"The handler for the table does not support binary table dump",
-"Binlog closed while trying to FLUSH MASTER",
-"Failed rebuilding the index of dumped table '%-.64s'",
-"Error from master: '%-.64s'",
-"Net error reading from master",
-"Net error writing to master",
-"Can't find FULLTEXT index matching the column list",
-"Can't execute the given command because you have active locked tables or an active transaction",
-"Unknown system variable '%-.64'",
-"Table '%-.64s' is marked as crashed and should be repaired",
-"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
-"Warning: Some non-transactional changed tables couldn't be rolled back",
-"Multi-statement transaction required more than 'max_binlog_cache_size' bytes of storage. Increase this mysqld variable and try again',
-"This operation cannot be performed with a running slave, run SLAVE STOP first",
-"This operation requires a running slave, configure slave and do SLAVE START",
-"The server is not configured as slave, fix in config file or with CHANGE MASTER TO",
-"Could not initialize master info structure, check permisions on master.info",
-"Could not create slave thread, check system resources",
-"User %-.64s has already more than 'max_user_connections' active connections",
-"You may only use constant expressions with SET",
-"Lock wait timeout exceeded",
-"The total number of locks exceeds the lock table size",
-"Update locks cannot be acquired during a READ UNCOMMITTED transaction",
-"DROP DATABASE not allowed while thread is holding global read lock",
-"CREATE DATABASE not allowed while thread is holding global read lock",
-"Wrong arguments to %s",
-"%-.32s@%-.64s is not allowed to create new users",
-"Incorrect table definition; All MERGE tables must be in the same database",
-"Deadlock found when trying to get lock; Try restarting transaction",
-"The used table type doesn't support FULLTEXT indexes",
-"Cannot add foreign key constraint",
-"Cannot add a child row: a foreign key constraint fails",
-"Cannot delete a parent row: a foreign key constraint fails",
+"Impossible de réouvrir la table: '%-.64s',
+"Utilisation incorrecte de la valeur NULL",
+"Erreur '%-.64s' provenant de regexp",
+"Mélanger les colonnes GROUP (MIN(),MAX(),COUNT()...) avec des colonnes normales est interdit s'il n'y a pas de clause GROUP BY",
+"Un tel droit n'est pas défini pour l'utilisateur '%-.32s' sur l'hôte '%-.64s'",
+"La commande '%-.16s' est interdite à l'utilisateur: '%-.32s@%-.64s' sur la table '%-.64s'",
+"La commande '%-.16s' est interdite à l'utilisateur: '%-.32s@%-.64s' sur la colonne '%-.64s' de la table '%-.64s'",
+"Commande GRANT/REVOKE incorrecte. Consultez le manuel.",
+"L'hôte ou l'utilisateur donné en argument à GRANT est trop long",
+"La table '%-64s.%s' n'existe pas",
+"Un tel droit n'est pas défini pour l'utilisateur '%-.32s' sur l'hôte '%-.64s' sur la table '%-.64s'",
+"Cette commande n'existe pas dans cette version de MySQL",
+"Erreur de syntaxe",
+"La tâche 'delayed insert' n'a pas pu obtenir le verrou démandé sur la table %-.64s",
+"Trop de tâche 'delayed' en cours",
+"Connection %ld avortée vers la bd: '%-.64s' utilisateur: '%-.64s' (%s)",
+"Paquet plus grand que 'max_allowed_packet' reçu",
+"Erreur de lecture reçue du pipe de connection",
+"Erreur reçue de fcntl() ",
+"Paquets reçus dans le désordre",
+"Impossible de décompresser le paquet reçu",
+"Erreur de lecture des paquets reçus"
+"Timeout en lecture des paquets reçus",
+"Erreur d'écriture des paquets envoyés",
+"Timeout d'écriture des paquets envoyés",
+"La chaîne résultat est plus grande que max_allowed_packet",
+"Ce type de table ne supporte pas les colonnes BLOB/TEXT",
+"Ce type de table ne supporte pas les colonnes AUTO_INCREMENT",
+"INSERT DELAYED ne peut être utilisé avec la table '%-.64s', car elle est verrouée avec LOCK TABLES",
+"Nom de colonne '%-.100s' incorrect",
+"Le handler de la table ne peut indexé la colonne '%-.64s'",
+"Toutes les tables de la table de type MERGE n'ont pas la même définition",
+"Écriture impossible à cause d'un index UNIQUE sur la table '%-.64s'",
+"La colonne '%-.64s' de type BLOB est utilisée dans une définition d'index sans longueur d'index",
+"Toutes les parties d'un index PRIMARY KEY doivent être NOT NULL; Si vous avez besoin d'un NULL dans l'index, utilisez un index UNIQUE",
+"Le résultat contient plus d'un enregistrement",
+"Ce type de table nécessite une clé primaire (PRIMARY KEY)",
+"Cette version de MySQL n'est pas compilée avec le support RAID",
+"Vous êtes en mode 'safe update' et vous essayez de faire un UPDATE sans clause WHERE utilisant un index",
+"L'index '%-.64s' n'existe pas sur la table '%-.64s'",
+"Impossible d'ouvrir la table",
+"Ce type de table ne supporte pas les check/repair",
+"Vous n'êtes pas autorisé à exécute cette commande dans une transaction",
+"Erreur %d lors du COMMIT",
+"Erreur %d lors du ROLLBACK",
+"Erreur %d lors du FLUSH_LOGS",
+"Erreur %d lors du CHECKPOINT",
+"Connection %ld avortée vers la bd: '%-.64s' utilisateur: '%-.32s' hôte: `%-.64s' (%-.64s)",
+"Ce type de table ne supporte pas les copies binaires",
+"Le 'binlog' a été fermé pendant l'exécution du FLUSH MASTER",
+"La reconstruction de l'index de la table copiée '%-.64s' a échoué",
+"Erreur reçue du maître: '%-.64s'",
+"Erreur de lecture réseau reçue du maître",
+"Erreur d'écriture réseau reçue du maître",
+"Impossible de trouver un index FULLTEXT correspondant à cette liste de colonnes",
+"Impossible d'exécuter la commande car vous avez des tables verrouillées ou une transaction active",
+"Variable système '%-.64' inconnue",
+"La table '%-.64s' est marquée 'crashed' et devrait être réparée",
+"La table '%-.64s' est marquée 'crashed' et le dernier 'repair' a échoué",
+"Attention: certaines tables ne supportant pas les transactions ont été changées et elles ne pourront pas être restituées",
+"Cette transaction à commandes multiples nécessite plus de 'max_binlog_cache_size' octets de stockage, augmentez cette variable de mysqld et réessayez',
+"Cette opération ne peut être réalisée avec un esclave actif, faites SLAVE STOP d'abord",
+"Cette opération nécessite un esclave actif, configurez les esclaves et faites SLAVE START",
+"Le server n'est pas configuré comme un esclave, changez le fichier de configuration ou utilisez CHANGE MASTER TO",
+"Impossible d'initialiser les structures d'information de maître, vérifiez les permissions sur master.info",
+"Impossible de créer une tâche esclave, vérifiez les ressources système",
+"L'utilisateur %-.64s possède déjà plus de 'max_user_connections' connections actives",
+"Seules les expressions constantes sont autorisées avec SET",
+"Timeout sur l'obtention du verrou",
+"Le nombre total de verrou dépasse la taille de la table des verrous",
+"Un verrou en update ne peut être acquit pendant une transaction READ UNCOMMITTED",
+"DROP DATABASE n'est pas autorisée pendant qu'une tâche possède un verrou global en lecture",
+"CREATE DATABASE n'est pas autorisée pendant qu'une tâche possède un verrou global en lecture",
+"Mauvais arguments à %s",
+"%-.32s@%-.64s n'est pas autorisé à créer de nouveaux utilisateurs",
+"Définition de table incorrecte : toutes les tables MERGE doivent être dans la même base de donnée",
+"Deadlock découvert en essayant d'obtenir les verrous : essayez de redémarrer la transaction",
+"Le type de table utilisé ne supporte pas les index FULLTEXT",
+"Impossible d'ajouter des contraintes d'index externe",
+"Impossible d'ajouter un enregistrement fils : une constrainte externe l'empèche",
+"Impossible de supprimer un enregistrement père : une constrainte externe l'empèche",
"Error connecting to master: %-.128s",
"Error running query on master: %-.128s",
"Error when executing command %s: %-.128s",
diff --git a/sql/share/german/errmsg.txt b/sql/share/german/errmsg.txt
index 271fe8cbb66..753911d8736 100644
--- a/sql/share/german/errmsg.txt
+++ b/sql/share/german/errmsg.txt
@@ -197,7 +197,7 @@
"Netzfehler beim Schreiben zum Master",
"Kann keinen FULLTEXT-Index finden der der Spaltenliste entspricht",
"Kann das aktuelle Kommando wegen aktiver Tabellensperre oder aktiver Transaktion nicht ausführen",
-"Unbekannte System-Variabel '%-.64'",
+"Unbekannte System-Variabel '%-.64s'",
"Tabelle '%-.64s' ist als defekt makiert und sollte repariert werden",
"Tabelle '%-.64s' ist als defekt makiert und der letzte (automatische) Reparaturversuch schlug fehl.",
"Warnung: Das Rollback konnte bei einigen Tabellen, die nicht mittels Transaktionen geändert wurden, nicht ausgeführt werden.",
diff --git a/sql/share/greek/errmsg.txt b/sql/share/greek/errmsg.txt
index d003c5c8ce6..9d092d32021 100644
--- a/sql/share/greek/errmsg.txt
+++ b/sql/share/greek/errmsg.txt
@@ -194,7 +194,7 @@
"Net error writing to master",
"Can't find FULLTEXT index matching the column list",
"Can't execute the given command because you have active locked tables or an active transaction",
-"Unknown system variable '%-.64'",
+"Unknown system variable '%-.64s'",
"Table '%-.64s' is marked as crashed and should be repaired",
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
"Warning: Some non-transactional changed tables couldn't be rolled back",
diff --git a/sql/share/hungarian/errmsg.txt b/sql/share/hungarian/errmsg.txt
index 84ba644ce45..4a3305d0cb7 100644
--- a/sql/share/hungarian/errmsg.txt
+++ b/sql/share/hungarian/errmsg.txt
@@ -196,7 +196,7 @@
"Net error writing to master",
"Can't find FULLTEXT index matching the column list",
"Can't execute the given command because you have active locked tables or an active transaction",
-"Unknown system variable '%-.64'",
+"Unknown system variable '%-.64s'",
"Table '%-.64s' is marked as crashed and should be repaired",
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
"Warning: Some non-transactional changed tables couldn't be rolled back",
diff --git a/sql/share/italian/errmsg.txt b/sql/share/italian/errmsg.txt
index 37f574966b6..8384fc63de4 100644
--- a/sql/share/italian/errmsg.txt
+++ b/sql/share/italian/errmsg.txt
@@ -194,7 +194,7 @@
"Errore di rete durante l'invio al master",
"Impossibile trovare un indice FULLTEXT che corrisponda all'elenco delle colonne",
"Impossibile eseguire il comando richiesto: tabelle sotto lock o transazione in atto",
-"Variabile di sistema '%-.64' sconosciuta",
+"Variabile di sistema '%-.64s' sconosciuta",
"La tabella '%-.64s' e` segnalata come corrotta e deve essere riparata",
"La tabella '%-.64s' e` segnalata come corrotta e l'ultima ricostruzione (automatica?) e` fallita",
"Attenzione: Alcune delle modifiche alle tabelle non transazionali non possono essere ripristinate (roll back impossibile)",
@@ -209,16 +209,16 @@
"E' scaduto il timeout per l'attesa del lock",
"Il numero totale di lock e' maggiore della grandezza della tabella di lock",
"I lock di aggiornamento non possono essere acquisiti durante una transazione 'READ UNCOMMITTED'",
-"DROP DATABASE not allowed while thread is holding global read lock",
-"CREATE DATABASE not allowed while thread is holding global read lock",
-"Wrong arguments to %s",
-"%-.32s@%-.64s is not allowed to create new users",
-"Incorrect table definition; All MERGE tables must be in the same database",
-"Deadlock found when trying to get lock; Try restarting transaction",
-"The used table type doesn't support FULLTEXT indexes",
-"Cannot add foreign key constraint",
-"Cannot add a child row: a foreign key constraint fails",
-"Cannot delete a parent row: a foreign key constraint fails",
+"DROP DATABASE non e' permesso mentre il thread ha un lock globale di lettura",
+"CREATE DATABASE non e' permesso mentre il thread ha un lock globale di lettura",
+"Argomenti errati a %s",
+"A %-.32s@%-.64s non e' permesso creare nuovi utenti",
+"Definizione della tabella errata; tutte le tabelle di tipo MERGE devono essere nello stesso database",
+"Trovato deadlock durante il lock; Provare a far ripartire la transazione",
+"La tabella usata non supporta gli indici FULLTEXT",
+"Impossibile aggiungere il vincolo di integrita' referenziale (foreign key constraint)",
+"Impossibile aggiungere la riga: un vincolo d'integrita' referenziale non e' soddisfatto",
+"Impossibile cancellare la riga: un vincolo d'integrita' referenziale non e' soddisfatto",
"Error connecting to master: %-.128s",
"Error running query on master: %-.128s",
"Error when executing command %s: %-.128s",
diff --git a/sql/share/japanese/errmsg.txt b/sql/share/japanese/errmsg.txt
index 157f891b310..94428fcff4d 100644
--- a/sql/share/japanese/errmsg.txt
+++ b/sql/share/japanese/errmsg.txt
@@ -196,7 +196,7 @@
"Net error writing to master",
"Can't find FULLTEXT index matching the column list",
"Can't execute the given command because you have active locked tables or an active transaction",
-"Unknown system variable '%-.64'",
+"Unknown system variable '%-.64s'",
"Table '%-.64s' is marked as crashed and should be repaired",
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
"Warning: Some non-transactional changed tables couldn't be rolled back",
diff --git a/sql/share/korean/errmsg.txt b/sql/share/korean/errmsg.txt
index 12389919463..e3c71032649 100644
--- a/sql/share/korean/errmsg.txt
+++ b/sql/share/korean/errmsg.txt
@@ -194,7 +194,7 @@
"Net error writing to master",
"Can't find FULLTEXT index matching the column list",
"Can't execute the given command because you have active locked tables or an active transaction",
-"Unknown system variable '%-.64'",
+"Unknown system variable '%-.64s'",
"Table '%-.64s' is marked as crashed and should be repaired",
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
"Warning: Some non-transactional changed tables couldn't be rolled back",
diff --git a/sql/share/norwegian-ny/errmsg.txt b/sql/share/norwegian-ny/errmsg.txt
index 40a25ac35b4..167d39b4494 100644
--- a/sql/share/norwegian-ny/errmsg.txt
+++ b/sql/share/norwegian-ny/errmsg.txt
@@ -196,7 +196,7 @@
"Net error writing to master",
"Can't find FULLTEXT index matching the column list",
"Can't execute the given command because you have active locked tables or an active transaction",
-"Unknown system variable '%-.64'",
+"Unknown system variable '%-.64s'",
"Table '%-.64s' is marked as crashed and should be repaired",
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
"Warning: Some non-transactional changed tables couldn't be rolled back",
diff --git a/sql/share/norwegian/errmsg.txt b/sql/share/norwegian/errmsg.txt
index afe15ba3e44..bc3f3005912 100644
--- a/sql/share/norwegian/errmsg.txt
+++ b/sql/share/norwegian/errmsg.txt
@@ -196,7 +196,7 @@
"Net error writing to master",
"Can't find FULLTEXT index matching the column list",
"Can't execute the given command because you have active locked tables or an active transaction",
-"Unknown system variable '%-.64'",
+"Unknown system variable '%-.64s'",
"Table '%-.64s' is marked as crashed and should be repaired",
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
"Warning: Some non-transactional changed tables couldn't be rolled back",
diff --git a/sql/share/polish/errmsg.txt b/sql/share/polish/errmsg.txt
index ff8dcc70d49..bd9d974cc82 100644
--- a/sql/share/polish/errmsg.txt
+++ b/sql/share/polish/errmsg.txt
@@ -198,7 +198,7 @@
"Net error writing to master",
"Can't find FULLTEXT index matching the column list",
"Can't execute the given command because you have active locked tables or an active transaction",
-"Unknown system variable '%-.64'",
+"Unknown system variable '%-.64s'",
"Table '%-.64s' is marked as crashed and should be repaired",
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
"Warning: Some non-transactional changed tables couldn't be rolled back",
diff --git a/sql/share/portuguese/errmsg.txt b/sql/share/portuguese/errmsg.txt
index 55f986d14a3..36c425863cc 100644
--- a/sql/share/portuguese/errmsg.txt
+++ b/sql/share/portuguese/errmsg.txt
@@ -194,7 +194,7 @@
"Erro de rede na gravação do 'master'",
"Não pode encontrar índice FULLTEXT que combine com a lista de colunas",
"Não pode executar o comando dado porque você tem tabelas ativas travadas ou uma 'transaction' ativa",
-"Variável de sistema '%-.64' desconhecida",
+"Variável de sistema '%-.64s' desconhecida",
"Tabela '%-.64s' está marcada como danificada e deve ser reparada",
"Tabela '%-.64s' está marcada como danificada e a última reparação (automática?) falhou",
"Aviso: Algumas tabelas não-transacionais alteradas não puderam ser reconstituídas ('rolled back')",
diff --git a/sql/share/romanian/errmsg.txt b/sql/share/romanian/errmsg.txt
index 7a56df6e74e..262c2e3e955 100644
--- a/sql/share/romanian/errmsg.txt
+++ b/sql/share/romanian/errmsg.txt
@@ -198,7 +198,7 @@
"Net error writing to master",
"Can't find FULLTEXT index matching the column list",
"Can't execute the given command because you have active locked tables or an active transaction",
-"Unknown system variable '%-.64'",
+"Unknown system variable '%-.64s'",
"Table '%-.64s' is marked as crashed and should be repaired",
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
"Warning: Some non-transactional changed tables couldn't be rolled back",
diff --git a/sql/share/russian/errmsg.txt b/sql/share/russian/errmsg.txt
index f3e778d6e28..140434757c2 100644
--- a/sql/share/russian/errmsg.txt
+++ b/sql/share/russian/errmsg.txt
@@ -197,7 +197,7 @@
"óÅÔÅ×ÁÑ ÏÛÉÂËÁ ÐÒÉ ÐÉÓÁÎÉÉ ÍÁÓÔÅÒÕ",
"FULLTEXT ÉÎÄÅËÓ, ÓÏÏÔ×ÅÔÓÔ×ÕÀÝÉÊ ÚÁÄÁÎÎÏÍÕ ÓÐÉÓËÕ ÓÔÏÌÂÃÏ×, ÎÅ ÎÁÊÄÅÎ",
"îÅ ÍÏÇÕ ×ÙÐÏÌÎÉÔØ ËÏÍÍÁÎÄÕ ÉÚ-ÚÁ ÁËÔÉ×ÎÙÈ locked ÔÁÂÌÉà ÉÌÉ ÁËÔÉ×ÎÏÊ ÔÒÁÎÚÁËÃÉÉ",
-"îÅÉÚ×ÅÓÔÎÁÑ ÓÉÓÔÅÍÎÁÑ ÐÅÒÅÍÅÎÎÁÑ '%-.64'",
+"îÅÉÚ×ÅÓÔÎÁÑ ÓÉÓÔÅÍÎÁÑ ÐÅÒÅÍÅÎÎÁÑ '%-.64s'",
"ôÁÂÌÉÃÁ '%-.64s' ÐÏÍÅÞÅÎÁ ËÁË ÉÓÐÏÒÞÅÎÎÁÑ É ÄÏÌÖÎÁ ÂÙÔØ ÉÓÐÒÁ×ÌÅÎÁ",
"ôÁÂÌÉÃÁ '%-.64s' ÐÏÍÅÞÅÎÁ ËÁË ÉÓÐÏÒÞÅÎÎÁÑ É ÐÏÓÌÅÄÎÑÑ ÐÏÐÙÔËÁ ÉÓÐÒÁ×ÌÅÎÉÑ (Á×ÔÏÍÁÔÉÞÅÓËÁÑ?) ÎÅ ÕÄÁÌÁÓØ",
"ðÒÅÄÕÐÒÅÖÄÅÎÉÅ: ÎÅËÏÔÏÒÙÅ ÎÅÔÒÁÎÚÁËÃÉÏÎÎÙÅ ÔÁÂÌÉÃÙ ÎÅ ÐÏÄÞÉÎÑÀÔÓÑ ROLLBACK",
diff --git a/sql/share/slovak/errmsg.txt b/sql/share/slovak/errmsg.txt
index aa2701022cc..70fd615e5f2 100644
--- a/sql/share/slovak/errmsg.txt
+++ b/sql/share/slovak/errmsg.txt
@@ -202,7 +202,7 @@
"Net error writing to master",
"Can't find FULLTEXT index matching the column list",
"Can't execute the given command because you have active locked tables or an active transaction",
-"Unknown system variable '%-.64'",
+"Unknown system variable '%-.64s'",
"Table '%-.64s' is marked as crashed and should be repaired",
"Table '%-.64s' is marked as crashed and last (automatic?) repair failed",
"Warning: Some non-transactional changed tables couldn't be rolled back",
diff --git a/sql/share/spanish/errmsg.txt b/sql/share/spanish/errmsg.txt
index 26306dfa3d9..fa02414902e 100644
--- a/sql/share/spanish/errmsg.txt
+++ b/sql/share/spanish/errmsg.txt
@@ -195,7 +195,7 @@
"Error de red escribiendo para el master",
"No puedo encontrar índice FULLTEXT correspondiendo a la lista de columnas",
"No puedo ejecutar el comando dado porque tienes tablas bloqueadas o una transición activa",
-"Desconocida variable de sistema '%-.64'",
+"Desconocida variable de sistema '%-.64s'",
"Tabla '%-.64s' está marcada como crashed y debe ser reparada",
"Tabla '%-.64s' está marcada como crashed y la última reparación (automactica?) falló",
"Aviso: Algunas tablas no transancionales no pueden tener rolled back",
diff --git a/sql/share/swedish/errmsg.txt b/sql/share/swedish/errmsg.txt
index 3040d434354..0198a722662 100644
--- a/sql/share/swedish/errmsg.txt
+++ b/sql/share/swedish/errmsg.txt
@@ -194,7 +194,7 @@
"Fick nätverksfel vid skrivning till master",
"Hittar inte ett FULLTEXT index i kolumnlistan",
"Kan inte exekvera kommandot emedan du har en låst tabell eller an aktiv transaktion",
-"Okänd system variabel '%-.64'",
+"Okänd system variabel '%-.64s'",
"Tabell '%-.64s' är crashad och bör repareras med REPAIR TABLE",
"Tabell '%-.64s' är crashad och senast (automatiska?) reparation misslyckades",
"Warning: Några icke transaktionella tabeller kunde inte återställas vid ROLLBACK",
diff --git a/sql/share/ukrainian/errmsg.txt b/sql/share/ukrainian/errmsg.txt
index d32ec16952e..2354f0a9687 100644
--- a/sql/share/ukrainian/errmsg.txt
+++ b/sql/share/ukrainian/errmsg.txt
@@ -199,7 +199,7 @@
"íÅÒÅÖÅ×Á ÐÏÍÉÌËÁ ÚÁÐÉÓÕ ÄÏ ÇÏÌÏ×ÎÏÇÏ",
"îÅ ÍÏÖÕ ÚÎÁÊÔÉ FULLTEXT ¦ÎÄÅËÓ, ÝÏ ×¦ÄÐÏצÄÁ¤ ÐÅÒÅ̦ËÕ ÓÔÏ×Âæ×",
"îÅ ÍÏÖÕ ×ÉËÏÎÁÔÉ ÐÏÄÁÎÕ ËÏÍÁÎÄÕ ÔÏÍÕ, ÝÏ ÔÁÂÌÉÃÑ ÚÁÂÌÏËÏ×ÁÎÁ ÁÂÏ ×ÉËÏÎÕ¤ÔØÓÑ ÔÒÁÎÚÁËæÑ",
-"îÅצÄÏÍÁ ÓÉÓÔÅÍÎÁ ÚͦÎÎÁ '%-.64'",
+"îÅצÄÏÍÁ ÓÉÓÔÅÍÎÁ ÚͦÎÎÁ '%-.64s'",
"ôÁÂÌÉÃÀ '%-.64s' ÍÁÒËÏ×ÁÎÏ ÑË Ú¦ÐÓÏ×ÁÎÕ ÔÁ §§ ÐÏÔÒ¦ÂÎÏ ×¦ÄÎÏ×ÉÔÉ",
"ôÁÂÌÉÃÀ '%-.64s' ÍÁÒËÏ×ÁÎÏ ÑË Ú¦ÐÓÏ×ÁÎÕ ÔÁ ÏÓÔÁÎΤ (Á×ÔÏÍÁÔÉÞÎÅ?) צÄÎÏ×ÌÅÎÎÑ ÎÅ ×ÄÁÌÏÓÑ",
"úÁÓÔÅÒÅÖÅÎÎÑ: äÅÑ˦ ÎÅÔÒÁÎÚÁËæÊΦ ÚͦÎÉ ÔÁÂÌÉÃØ ÎÅ ÍÏÖÎÁ ÂÕÄÅ ÐÏ×ÅÒÎÕÔÉ",
diff --git a/sql/slave.cc b/sql/slave.cc
index 7de3022f551..2673644b65a 100644
--- a/sql/slave.cc
+++ b/sql/slave.cc
@@ -48,12 +48,10 @@ ulong relay_log_space_limit = 0; /* TODO: fix variables to access ulonglong
// can re-use them on slave start
// TODO: move the vars below under MASTER_INFO
-#ifndef DBUG_OFF
int disconnect_slave_event_count = 0, abort_slave_event_count = 0;
static int events_till_disconnect = -1;
int events_till_abort = -1;
static int stuck_count = 0;
-#endif
typedef enum { SLAVE_THD_IO, SLAVE_THD_SQL} SLAVE_THD_TYPE;
@@ -191,11 +189,22 @@ int init_relay_log_pos(RELAY_LOG_INFO* rli,const char* log,
pos = rli->relay_log_pos; // already inited
else
rli->relay_log_pos = pos;
- if (rli->relay_log.find_first_log(&rli->linfo,log))
+
+ // test to see if the previous run was with the skip of purging
+ // if yes, we do not purge when we restart
+ if (rli->relay_log.find_first_log(&rli->linfo,""))
{
*errmsg="Could not find first log during relay log initialization";
goto err;
}
+ if (strcmp(log,rli->linfo.log_file_name))
+ rli->skip_log_purge=1;
+
+ if (rli->relay_log.find_first_log(&rli->linfo,log))
+ {
+ *errmsg="Could not find target log during relay log initialization";
+ goto err;
+ }
strnmov(rli->relay_log_name,rli->linfo.log_file_name,
sizeof(rli->relay_log_name));
// to make end_io_cache(&rli->cache_buf) safe in all cases
@@ -235,9 +244,10 @@ err:
}
/* called from get_options() in mysqld.cc on start-up */
-void init_slave_skip_errors(char* arg)
+
+void init_slave_skip_errors(const char* arg)
{
- char* p;
+ const char *p;
my_bool last_was_digit = 0;
if (bitmap_init(&slave_error_mask,MAX_SLAVE_ERROR,0))
{
@@ -264,8 +274,11 @@ void init_slave_skip_errors(char* arg)
}
}
-// we assume we have a run lock on rli and that the both slave thread
-// are not running
+/*
+ We assume we have a run lock on rli and that the both slave thread
+ are not running
+*/
+
int purge_relay_logs(RELAY_LOG_INFO* rli, bool just_reset, const char** errmsg)
{
DBUG_ENTER("purge_relay_logs");
@@ -503,7 +516,7 @@ void init_table_rule_hash(HASH* h, bool* h_inited)
void init_table_rule_array(DYNAMIC_ARRAY* a, bool* a_inited)
{
- init_dynamic_array(a, sizeof(TABLE_RULE_ENT*), TABLE_RULE_ARR_SIZE,
+ my_init_dynamic_array(a, sizeof(TABLE_RULE_ENT*), TABLE_RULE_ARR_SIZE,
TABLE_RULE_ARR_SIZE);
*a_inited = 1;
}
@@ -1108,6 +1121,7 @@ static bool wait_for_relay_log_space(RELAY_LOG_INFO* rli)
MASTER_INFO* mi = rli->mi;
const char* save_proc_info;
THD* thd = mi->io_thd;
+
DBUG_ENTER("wait_for_relay_log_space");
pthread_mutex_lock(&rli->log_space_lock);
@@ -1559,9 +1573,6 @@ command");
static ulong read_event(MYSQL* mysql, MASTER_INFO *mi)
{
ulong len = packet_error;
- // for convinience lets think we start by
- // being in the interrupted state :-)
- int read_errno = EINTR;
// my_real_read() will time us out
// we check if we were told to die, and if not, try reading again
@@ -1570,27 +1581,21 @@ static ulong read_event(MYSQL* mysql, MASTER_INFO *mi)
return packet_error;
#endif
- while (!abort_loop && !mi->abort_slave && len == packet_error &&
- read_errno == EINTR )
- {
- len = mc_net_safe_read(mysql);
- read_errno = errno;
- }
- if (abort_loop || mi->abort_slave)
- return packet_error;
+ len = mc_net_safe_read(mysql);
+
if (len == packet_error || (long) len < 1)
{
- sql_print_error("Error reading packet from server: %s (read_errno %d,\
+ sql_print_error("Error reading packet from server: %s (\
server_errno=%d)",
- mc_mysql_error(mysql), read_errno, mc_mysql_errno(mysql));
+ mc_mysql_error(mysql), mc_mysql_errno(mysql));
return packet_error;
}
if (len == 1)
{
sql_print_error("Slave: received 0 length packet from server, apparent\
- master shutdown: %s (%d)",
- mc_mysql_error(mysql), read_errno);
+ master shutdown: %s",
+ mc_mysql_error(mysql));
return packet_error;
}
@@ -2500,6 +2505,15 @@ Log_event* next_event(RELAY_LOG_INFO* rli)
return ev;
}
DBUG_ASSERT(thd==rli->sql_thd);
+ if (opt_reckless_slave)
+ cur_log->error = 0;
+ if ( cur_log->error < 0)
+ {
+ errmsg = "slave SQL thread aborted because of I/O error";
+ goto err;
+ }
+
+
if (!cur_log->error) /* EOF */
{
/*
@@ -2562,6 +2576,7 @@ Log_event* next_event(RELAY_LOG_INFO* rli)
goto err;
}
rli->relay_log_pos = 4;
+ rli->pending=0;
strnmov(rli->relay_log_name,rli->linfo.log_file_name,
sizeof(rli->relay_log_name));
flush_relay_log_info(rli);
@@ -2608,12 +2623,12 @@ event(errno=%d,cur_log->error=%d)",
my_errno,cur_log->error);
// set read position to the beginning of the event
my_b_seek(cur_log,rli->relay_log_pos+rli->pending);
- // no need to hog the mutex while we sleep
- pthread_mutex_unlock(&rli->data_lock);
- safe_sleep(rli->sql_thd,1,(CHECK_KILLED_FUNC)sql_slave_killed,
- (void*)rli);
- pthread_mutex_lock(&rli->data_lock);
+ /* otherwise, we have had a partial read */
+ /* TODO; see if there is a way to do this without this goto */
+ errmsg = "Aborting slave SQL thread because of partial event read";
+ goto err;
}
+
}
if (!errmsg && was_killed)
errmsg = "slave SQL thread was killed";
diff --git a/sql/slave.h b/sql/slave.h
index 354fc46e99d..16735891815 100644
--- a/sql/slave.h
+++ b/sql/slave.h
@@ -30,7 +30,7 @@ extern bool use_slave_mask;
extern char* slave_load_tmpdir;
extern my_string master_info_file,relay_log_info_file;
extern my_string opt_relay_logname, opt_relaylog_index_name;
-extern bool opt_skip_slave_start;
+extern bool opt_skip_slave_start, opt_reckless_slave;
extern ulong relay_log_space_limit;
struct st_master_info;
@@ -160,6 +160,7 @@ typedef struct st_relay_log_info
st_relay_log_info():info_fd(-1),cur_log_fd(-1),inited(0),
cur_log_init_count(0),
+ abort_slave(0),slave_running(0),
log_pos_current(0),abort_pos_wait(0),
skip_log_purge(0)
{
@@ -280,7 +281,8 @@ typedef struct st_master_info
bool ignore_stop_event;
- st_master_info():fd(-1), io_thd(0), inited(0), old_format(0)
+ st_master_info():fd(-1), io_thd(0), inited(0), old_format(0),abort_slave(0),
+ slave_running(0)
{
host[0] = 0; user[0] = 0; password[0] = 0;
bzero(&file,sizeof(file));
@@ -331,7 +333,7 @@ typedef struct st_table_rule_ent
#define SLAVE_FORCE_ALL 4
int init_slave();
-void init_slave_skip_errors(char* arg);
+void init_slave_skip_errors(const char* arg);
int flush_master_info(MASTER_INFO* mi);
int flush_relay_log_info(RELAY_LOG_INFO* rli);
int register_slave_on_master(MYSQL* mysql);
@@ -413,9 +415,7 @@ extern bool do_table_inited, ignore_table_inited,
wild_do_table_inited, wild_ignore_table_inited;
extern bool table_rules_on;
-#ifndef DBUG_OFF
extern int disconnect_slave_event_count, abort_slave_event_count ;
-#endif
// the master variables are defaults read from my.cnf or command line
extern uint master_port, master_connect_retry, report_port;
diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc
index f8f13c35e35..724af69bdca 100644
--- a/sql/sql_acl.cc
+++ b/sql/sql_acl.cc
@@ -58,7 +58,8 @@ class ACL_USER :public ACL_ACCESS
{
public:
acl_host_and_ip host;
- uint hostname_length, questions, updates;
+ uint hostname_length;
+ USER_RESOURCES user_resource;
char *user,*password;
ulong salt[2];
#ifdef HAVE_OPENSSL
@@ -110,6 +111,32 @@ static void update_hostname(acl_host_and_ip *host, const char *hostname);
static bool compare_hostname(const acl_host_and_ip *host, const char *hostname,
const char *ip);
+extern char uc_update_queries[SQLCOM_END];
+
+static void init_update_queries(void)
+{
+ uc_update_queries[SQLCOM_CREATE_TABLE]=1;
+ uc_update_queries[SQLCOM_CREATE_INDEX]=1;
+ uc_update_queries[SQLCOM_ALTER_TABLE]=1;
+ uc_update_queries[SQLCOM_UPDATE]=1;
+ uc_update_queries[SQLCOM_INSERT]=1;
+ uc_update_queries[SQLCOM_INSERT_SELECT]=1;
+ uc_update_queries[SQLCOM_DELETE]=1;
+ uc_update_queries[SQLCOM_TRUNCATE]=1;
+ uc_update_queries[SQLCOM_DROP_TABLE]=1;
+ uc_update_queries[SQLCOM_LOAD]=1;
+ uc_update_queries[SQLCOM_CREATE_DB]=1;
+ uc_update_queries[SQLCOM_DROP_DB]=1;
+ uc_update_queries[SQLCOM_REPLACE]=1;
+ uc_update_queries[SQLCOM_REPLACE_SELECT]=1;
+ uc_update_queries[SQLCOM_RENAME_TABLE]=1;
+ uc_update_queries[SQLCOM_BACKUP_TABLE]=1;
+ uc_update_queries[SQLCOM_RESTORE_TABLE]=1;
+ uc_update_queries[SQLCOM_DELETE_MULTI]=1;
+ uc_update_queries[SQLCOM_DROP_INDEX]=1;
+ uc_update_queries[SQLCOM_MULTI_UPDATE]=1;
+}
+
int acl_init(bool dont_read_acl_tables)
{
THD *thd;
@@ -163,7 +190,7 @@ int acl_init(bool dont_read_acl_tables)
init_sql_alloc(&mem,1024,0);
init_read_record(&read_record_info,thd,table= tables[0].table,NULL,1,0);
- VOID(init_dynamic_array(&acl_hosts,sizeof(ACL_HOST),20,50));
+ VOID(my_init_dynamic_array(&acl_hosts,sizeof(ACL_HOST),20,50));
while (!(read_record_info.read_record(&read_record_info)))
{
ACL_HOST host;
@@ -187,7 +214,7 @@ int acl_init(bool dont_read_acl_tables)
freeze_size(&acl_hosts);
init_read_record(&read_record_info,thd,table=tables[1].table,NULL,1,0);
- VOID(init_dynamic_array(&acl_users,sizeof(ACL_USER),50,100));
+ VOID(my_init_dynamic_array(&acl_users,sizeof(ACL_USER),50,100));
if (table->field[2]->field_length == 8 &&
protocol_version == PROTOCOL_VERSION)
{
@@ -247,14 +274,16 @@ int acl_init(bool dont_read_acl_tables)
{
/* Table has new MySQL usage limits */
char *ptr = get_field(&mem, table, 21);
- user.questions=atoi(ptr);
+ user.user_resource.questions=atoi(ptr);
ptr = get_field(&mem, table, 22);
- user.updates=atoi(ptr);
- if (user.questions)
+ user.user_resource.updates=atoi(ptr);
+ ptr = get_field(&mem, table, 23);
+ user.user_resource.connections=atoi(ptr);
+ if (user.user_resource.questions || user.user_resource.updates || user.user_resource.connections)
mqh_used=1;
}
else
- user.questions=user.updates=0;
+ bzero(&(user.user_resource),sizeof(user.user_resource));
#ifndef TO_BE_REMOVED
if (table->fields <= 13)
{ // Without grant
@@ -273,7 +302,7 @@ int acl_init(bool dont_read_acl_tables)
freeze_size(&acl_users);
init_read_record(&read_record_info,thd,table=tables[2].table,NULL,1,0);
- VOID(init_dynamic_array(&acl_dbs,sizeof(ACL_DB),50,100));
+ VOID(my_init_dynamic_array(&acl_dbs,sizeof(ACL_DB),50,100));
while (!(read_record_info.read_record(&read_record_info)))
{
ACL_DB db;
@@ -299,6 +328,7 @@ int acl_init(bool dont_read_acl_tables)
init_check_host();
mysql_unlock_tables(thd, lock);
+ init_update_queries();
thd->version--; // Force close to free memory
close_thread_tables(thd);
delete thd;
@@ -442,13 +472,13 @@ static int acl_compare(ACL_ACCESS *a,ACL_ACCESS *b)
uint acl_getroot(THD *thd, const char *host, const char *ip, const char *user,
const char *password,const char *message,char **priv_user,
- bool old_ver, uint *max_questions)
+ bool old_ver, USER_RESOURCES *mqh)
{
uint user_access=NO_ACCESS;
*priv_user=(char*) user;
char *ptr=0;
- *max_questions=0;
+ bzero(mqh,sizeof(USER_RESOURCES));
if (!initialized)
return (uint) ~NO_ACCESS; // If no data allow anything /* purecov: tested */
VOID(pthread_mutex_lock(&acl_cache->lock));
@@ -556,7 +586,7 @@ uint acl_getroot(THD *thd, const char *host, const char *ip, const char *user,
#else /* HAVE_OPENSSL */
user_access=acl_user->access;
#endif /* HAVE_OPENSSL */
- *max_questions=acl_user->questions;
+ *mqh=acl_user->user_resource;
if (!acl_user->user)
*priv_user=(char*) ""; // Change to anonymous user /* purecov: inspected */
break;
@@ -590,7 +620,7 @@ static void acl_update_user(const char *user, const char *host,
const char *ssl_cipher,
const char *x509_issuer,
const char *x509_subject,
- unsigned int mqh,
+ USER_RESOURCES *mqh,
uint privileges)
{
for (uint i=0 ; i < acl_users.elements ; i++)
@@ -604,8 +634,8 @@ static void acl_update_user(const char *user, const char *host,
acl_user->host.hostname && !strcmp(host,acl_user->host.hostname))
{
acl_user->access=privileges;
- acl_user->questions=mqh;
-#ifdef HAVE_OPENSSL
+ acl_user->user_resource=*mqh;
+#ifdef HAVE_OPENSSL
acl_user->ssl_type=ssl_type;
acl_user->ssl_cipher=ssl_cipher;
acl_user->x509_issuer=x509_issuer;
@@ -634,7 +664,7 @@ static void acl_insert_user(const char *user, const char *host,
const char *ssl_cipher,
const char *x509_issuer,
const char *x509_subject,
- unsigned int mqh,
+ USER_RESOURCES *mqh,
uint privileges)
{
ACL_USER acl_user;
@@ -642,7 +672,7 @@ static void acl_insert_user(const char *user, const char *host,
update_hostname(&acl_user.host,strdup_root(&mem,host));
acl_user.password=0;
acl_user.access=privileges;
- acl_user.questions=mqh;
+ acl_user.user_resource = *mqh;
acl_user.sort=get_sort(2,acl_user.host.hostname,acl_user.user);
acl_user.hostname_length=(uint) strlen(acl_user.host.hostname);
#ifdef HAVE_OPENSSL
@@ -847,7 +877,7 @@ int wild_case_compare(CHARSET_INFO *cs, const char *str,const char *wildstr)
static void init_check_host(void)
{
DBUG_ENTER("init_check_host");
- VOID(init_dynamic_array(&acl_wild_hosts,sizeof(struct acl_host_and_ip),
+ VOID(my_init_dynamic_array(&acl_wild_hosts,sizeof(struct acl_host_and_ip),
acl_users.elements,1));
VOID(hash_init(&acl_check_hosts,system_charset_info,acl_users.elements,0,0,
(hash_get_key) check_get_key,0,HASH_CASE_INSENSITIVE));
@@ -1153,12 +1183,17 @@ static int replace_user_table(THD *thd, TABLE *table, const LEX_USER &combo,
char *password,empty_string[1];
DBUG_ENTER("replace_user_table");
+ password=empty_string;
+ empty_string[0]=0;
+
if (combo.password.str && combo.password.str[0])
- password=combo.password.str;
- else
{
- password=empty_string;
- empty_string[0]=0;
+ if (combo.password.length != HASH_PASSWORD_LENGTH)
+ {
+ my_error(ER_PASSWORD_NO_MATCH,MYF(0));
+ DBUG_RETURN(-1);
+ }
+ password=combo.password.str;
}
table->field[0]->store(combo.host.str,combo.host.length, system_charset_info);
@@ -1236,10 +1271,16 @@ static int replace_user_table(THD *thd, TABLE *table, const LEX_USER &combo,
}
}
#endif /* HAVE_OPENSSL */
- if (table->fields >= 23 && thd->lex.mqh)
+ if (table->fields >= 23)
{
- table->field[21]->store((longlong) thd->lex.mqh);
- mqh_used=1;
+ USER_RESOURCES mqh = thd->lex.mqh;
+ if (mqh.questions)
+ table->field[21]->store((longlong) mqh.questions);
+ if (mqh.updates)
+ table->field[22]->store((longlong) mqh.updates);
+ if (mqh.connections)
+ table->field[23]->store((longlong) mqh.connections);
+ mqh_used = mqh_used || mqh.questions || mqh.updates || mqh.connections;
}
if (old_row_exists)
{
@@ -1279,7 +1320,7 @@ end:
thd->lex.ssl_cipher,
thd->lex.x509_issuer,
thd->lex.x509_subject,
- thd->lex.mqh,
+ &thd->lex.mqh,
rights);
else
acl_insert_user(combo.user.str,combo.host.str,password,
@@ -1287,7 +1328,7 @@ end:
thd->lex.ssl_cipher,
thd->lex.x509_issuer,
thd->lex.x509_subject,
- thd->lex.mqh,
+ &thd->lex.mqh,
rights);
}
table->file->index_end();
@@ -2701,11 +2742,25 @@ int mysql_show_grants(THD *thd,LEX_USER *lex_user)
#endif /* HAVE_OPENSSL */
if (want_access & GRANT_ACL)
global.append(" WITH GRANT OPTION",18);
- else if (acl_user->questions)
+ if (acl_user->user_resource.questions)
{
char buff[65], *p; // just as in int2str
global.append(" WITH MAX_QUERIES_PER_HOUR = ",29);
- p=int2str(acl_user->questions,buff,10);
+ p=int2str(acl_user->user_resource.questions,buff,10);
+ global.append(buff,p-buff);
+ }
+ if (acl_user->user_resource.updates)
+ {
+ char buff[65], *p; // just as in int2str
+ global.append(" WITH MAX_UPDATES_PER_HOUR = ",29);
+ p=int2str(acl_user->user_resource.updates,buff,10);
+ global.append(buff,p-buff);
+ }
+ if (acl_user->user_resource.connections)
+ {
+ char buff[65], *p; // just as in int2str
+ global.append(" WITH MAX_CONNECTIONS_PER_HOUR = ",33);
+ p=int2str(acl_user->user_resource.connections,buff,10);
global.append(buff,p-buff);
}
thd->packet.length(0);
@@ -2870,16 +2925,17 @@ int mysql_show_grants(THD *thd,LEX_USER *lex_user)
}
-uint get_mqh(const char *user, const char *host)
+void get_mqh(const char *user, const char *host, USER_CONN *uc)
{
- if (!initialized) return 0;
-
ACL_USER *acl_user;
- acl_user= find_acl_user(host,user);
- return (acl_user) ? acl_user->questions : 0;
+ if (initialized && (acl_user= find_acl_user(host,user)))
+ uc->user_resources= acl_user->user_resource;
+ else
+ bzero((char*) &uc->user_resources, sizeof(uc->user_resources));
}
+
/*****************************************************************************
** Instantiate used templates
*****************************************************************************/
diff --git a/sql/sql_acl.h b/sql/sql_acl.h
index f118ac17789..9ac3bc6ed74 100644
--- a/sql/sql_acl.h
+++ b/sql/sql_acl.h
@@ -61,7 +61,7 @@ uint acl_get(const char *host, const char *ip, const char *bin_ip,
const char *user, const char *db);
uint acl_getroot(THD *thd, const char *host, const char *ip, const char *user,
const char *password,const char *scramble,char **priv_user,
- bool old_ver, uint *max);
+ bool old_ver, USER_RESOURCES *max);
bool acl_check_host(const char *host, const char *ip);
bool change_password(THD *thd, const char *host, const char *user,
char *password);
@@ -82,4 +82,4 @@ bool check_grant_db(THD *thd,const char *db);
uint get_table_grant(THD *thd, TABLE_LIST *table);
uint get_column_grant(THD *thd, TABLE_LIST *table, Field *field);
int mysql_show_grants(THD *thd, LEX_USER *user);
-uint get_mqh(const char *user, const char *host);
+void get_mqh(const char *user, const char *host, USER_CONN *uc);
diff --git a/sql/sql_base.cc b/sql/sql_base.cc
index 5e3bf90c4a5..98b8ab83e9d 100644
--- a/sql/sql_base.cc
+++ b/sql/sql_base.cc
@@ -196,6 +196,7 @@ send_fields(THD *thd,List<Item> &list,uint flag)
Item *item;
char buff[80];
CONVERT *convert= (flag & 4) ? (CONVERT*) 0 : thd->convert_set;
+ DBUG_ENTER("send_fields");
String tmp((char*) buff,sizeof(buff),default_charset_info);
String *res,*packet= &thd->packet;
@@ -257,11 +258,11 @@ send_fields(THD *thd,List<Item> &list,uint flag)
if (my_net_write(&thd->net, (char*) packet->ptr(),packet->length()))
break; /* purecov: inspected */
}
- send_eof(&thd->net);
- return 0;
+ send_eof(&thd->net,1);
+ DBUG_RETURN(0);
err:
send_error(&thd->net,ER_OUT_OF_RESOURCES); /* purecov: inspected */
- return 1; /* purecov: inspected */
+ DBUG_RETURN(1); /* purecov: inspected */
}
diff --git a/sql/sql_cache.cc b/sql/sql_cache.cc
index d7549732798..c739b43debb 100644
--- a/sql/sql_cache.cc
+++ b/sql/sql_cache.cc
@@ -1072,7 +1072,7 @@ void Query_cache::invalidate(CHANGED_TABLE_LIST *tables_used)
DUMP(this);
for ( ; tables_used; tables_used=tables_used->next)
{
- invalidate_table(tables_used->key, tables_used->key_length);
+ invalidate_table((byte*) tables_used->key, tables_used->key_length);
DBUG_PRINT("qcache", (" db %s, table %s", tables_used->key,
tables_used->table_name));
}
diff --git a/sql/sql_class.cc b/sql/sql_class.cc
index d5d5c8fa6f9..bcea9d23d14 100644
--- a/sql/sql_class.cc
+++ b/sql/sql_class.cc
@@ -147,7 +147,7 @@ THD::THD():user_time(0),fatal_error(0),last_insert_id_used(0),
/* Initialize sub structures */
bzero((char*) &mem_root,sizeof(mem_root));
bzero((char*) &transaction.mem_root,sizeof(transaction.mem_root));
- user_connect=(UC *)0;
+ user_connect=(USER_CONN *)0;
hash_init(&user_vars, system_charset_info, USER_VARS_HASH_SIZE, 0, 0,
(hash_get_key) get_var_key,
(void (*)(void*)) free_var,0);
diff --git a/sql/sql_class.h b/sql/sql_class.h
index cc1caa91a73..814e0e6fa9a 100644
--- a/sql/sql_class.h
+++ b/sql/sql_class.h
@@ -184,7 +184,7 @@ typedef struct st_copy_info {
ha_rows copied;
ha_rows error;
enum enum_duplicates handle_duplicates;
- int escape_char;
+ int escape_char, errorno;
} COPY_INFO;
@@ -409,7 +409,7 @@ public:
ha_rows select_limit,offset_limit,default_select_limit,cuted_fields,
max_join_size, sent_row_count, examined_row_count;
table_map used_tables;
- UC *user_connect;
+ USER_CONN *user_connect;
ulong query_id,version, inactive_timeout,options,thread_id;
long dbug_thread_id;
pthread_t real_id;
@@ -693,6 +693,7 @@ class select_union :public select_result {
TABLE *table;
COPY_INFO info;
uint save_time_stamp;
+ TMP_TABLE_PARAM *tmp_table_param;
select_union(TABLE *table_par);
~select_union();
diff --git a/sql/sql_db.cc b/sql/sql_db.cc
index 032cbf3d6a3..3f619b70244 100644
--- a/sql/sql_db.cc
+++ b/sql/sql_db.cc
@@ -285,13 +285,20 @@ static long mysql_rm_known_files(THD *thd, MY_DIR *dirp, const char *db,
*/
if (!found_other_files)
{
- char tmp_path[FN_REFLEN];
+ char tmp_path[FN_REFLEN], *pos;
char *path=unpack_filename(tmp_path,org_path);
#ifdef HAVE_READLINK
- int linkcount = readlink(path,filePath,sizeof(filePath)-1);
- if (linkcount > 0) // If the path was a symbolic link
+ int error;
+
+ /* Remove end FN_LIBCHAR as this causes problem on Linux in readlink */
+ pos=strend(path);
+ if (pos > path && pos[-1] == FN_LIBCHAR)
+ *--pos=0;
+
+ if ((error=my_readlink(filePath, path, MYF(MY_WME))) < 0)
+ DBUG_RETURN(-1);
+ if (!error)
{
- *(filePath + linkcount) = '\0';
if (my_delete(path,MYF(!level ? MY_WME : 0)))
{
/* Don't give errors if we can't delete 'RAID' directory */
@@ -299,11 +306,13 @@ static long mysql_rm_known_files(THD *thd, MY_DIR *dirp, const char *db,
DBUG_RETURN(deleted);
DBUG_RETURN(-1);
}
- path=filePath;
+ /* Delete directory symbolic link pointed at */
+ path= filePath;
}
#endif
/* Remove last FN_LIBCHAR to not cause a problem on OS/2 */
- char *pos=strend(path);
+ pos=strend(path);
+
if (pos > path && pos[-1] == FN_LIBCHAR)
*--pos=0;
/* Don't give errors if we can't delete 'RAID' directory */
@@ -325,7 +334,7 @@ bool mysql_change_db(THD *thd,const char *name)
uint db_access;
DBUG_ENTER("mysql_change_db");
- if (!dbname || !(db_length=stripp_sp(dbname)))
+ if (!dbname || !(db_length=strip_sp(dbname)))
{
x_free(dbname); /* purecov: inspected */
send_error(&thd->net,ER_NO_DB_ERROR); /* purecov: inspected */
diff --git a/sql/sql_delete.cc b/sql/sql_delete.cc
index f5a5a684fc0..c8ed74c9bca 100644
--- a/sql/sql_delete.cc
+++ b/sql/sql_delete.cc
@@ -176,13 +176,15 @@ cleanup:
}
if (using_transactions && ha_autocommit_or_rollback(thd,error >= 0))
error=1;
+ if (deleted)
+ {
+ query_cache_invalidate3(thd, table_list, 1);
+ }
if (thd->lock)
{
mysql_unlock_tables(thd, thd->lock);
thd->lock=0;
}
- if (deleted)
- query_cache_invalidate3(thd, table_list, 1);
delete select;
if (error >= 0) // Fatal error
send_error(&thd->net,thd->killed ? ER_SERVER_SHUTDOWN: 0);
@@ -355,6 +357,9 @@ void multi_delete::send_error(uint errcode,const char *err)
if (!deleted)
DBUG_VOID_RETURN;
+ /* Somthing alredy deleted consequently we have to invalidate cache */
+ query_cache_invalidate3(thd, delete_tables, 1);
+
/* Below can happen when thread is killed early ... */
if (!table_being_deleted)
table_being_deleted=delete_tables;
@@ -470,7 +475,9 @@ bool multi_delete::send_eof()
VOID(ha_autocommit_or_rollback(thd,error > 0));
}
if (deleted)
+ {
query_cache_invalidate3(thd, delete_tables, 1);
+ }
::send_ok(&thd->net,deleted);
return 0;
}
diff --git a/sql/sql_insert.cc b/sql/sql_insert.cc
index 69fc7c00955..1e00bb3f8c2 100644
--- a/sql/sql_insert.cc
+++ b/sql/sql_insert.cc
@@ -262,6 +262,8 @@ int mysql_insert(THD *thd,TABLE_LIST *table_list, List<Item> &fields,
info.copied=values_list.elements;
end_delayed_insert(thd);
}
+ if (info.copied || info.deleted)
+ query_cache_invalidate3(thd, table_list, 1);
}
else
{
@@ -303,6 +305,10 @@ int mysql_insert(THD *thd,TABLE_LIST *table_list, List<Item> &fields,
}
if (using_transactions)
error=ha_autocommit_or_rollback(thd,error);
+ if (info.copied || info.deleted)
+ {
+ query_cache_invalidate3(thd, table_list, 1);
+ }
if (thd->lock)
{
mysql_unlock_tables(thd, thd->lock);
@@ -310,8 +316,6 @@ int mysql_insert(THD *thd,TABLE_LIST *table_list, List<Item> &fields,
}
}
thd->proc_info="end";
- if (info.copied || info.deleted)
- query_cache_invalidate3(thd, table_list, 1);
table->time_stamp=save_time_stamp; // Restore auto timestamp ptr
table->next_number_field=0;
thd->count_cuted_fields=0;
@@ -443,6 +447,7 @@ int write_record(TABLE *table,COPY_INFO *info)
err:
if (key)
my_afree(key);
+ info->errorno= error;
table->file->print_error(error,MYF(0));
return 1;
}
@@ -1330,7 +1335,9 @@ void select_insert::send_error(uint errcode,const char *err)
table->file->activate_all_index(thd);
ha_rollback_stmt(thd);
if (info.copied || info.deleted)
+ {
query_cache_invalidate3(thd, table, 1);
+ }
}
@@ -1343,8 +1350,9 @@ bool select_insert::send_eof()
if ((error2=ha_autocommit_or_rollback(thd,error)) && ! error)
error=error2;
if (info.copied || info.deleted)
+ {
query_cache_invalidate3(thd, table, 1);
-
+ }
if (error)
{
table->file->print_error(error,MYF(0));
diff --git a/sql/sql_lex.h b/sql/sql_lex.h
index 27ca601ed87..b7f0185709b 100644
--- a/sql/sql_lex.h
+++ b/sql/sql_lex.h
@@ -177,6 +177,7 @@ typedef struct st_lex {
HA_CHECK_OPT check_opt; // check/repair options
HA_CREATE_INFO create_info;
LEX_MASTER_INFO mi; // used by CHANGE MASTER
+ USER_RESOURCES mqh;
ulong thread_id,type;
enum_sql_command sql_command;
thr_lock_type lock_option;
@@ -186,7 +187,7 @@ typedef struct st_lex {
enum enum_ha_read_modes ha_read_mode;
enum ha_rkey_function ha_rkey_mode;
enum enum_enable_or_disable alter_keys_onoff;
- uint grant, grant_tot_col, which_columns, union_option, mqh;
+ uint grant, grant_tot_col, which_columns, union_option;
uint fk_delete_opt, fk_update_opt, fk_match_option;
bool drop_primary,drop_if_exists,local_file;
bool in_comment,ignore_space,verbose,simple_alter, option_type, derived_tables;
diff --git a/sql/sql_parse.cc b/sql/sql_parse.cc
index f0842c0896e..4dc6aef6154 100644
--- a/sql/sql_parse.cc
+++ b/sql/sql_parse.cc
@@ -59,9 +59,9 @@ extern "C" pthread_mutex_t THR_LOCK_keycache;
extern "C" int gethostname(char *name, int namelen);
#endif
-static int check_for_max_user_connections(UC *uc);
+static int check_for_max_user_connections(USER_CONN *uc);
static bool check_mqh(THD *thd);
-static void decrease_user_connections(UC *uc);
+static void decrease_user_connections(USER_CONN *uc);
static bool check_db_used(THD *thd,TABLE_LIST *tables);
static bool check_merge_table_access(THD *thd, char *db, TABLE_LIST *tables);
static bool check_dup(const char *db, const char *name, TABLE_LIST *tables);
@@ -126,18 +126,19 @@ extern pthread_mutex_t LOCK_user_conn;
static int get_or_create_user_conn(THD *thd, const char *user,
const char *host,
- uint max_questions)
+ USER_RESOURCES *mqh)
{
int return_val=0;
- uint temp_len;
+ uint temp_len, user_len, host_len;
char temp_user[USERNAME_LENGTH+HOSTNAME_LENGTH+2];
struct user_conn *uc;
DBUG_ASSERT(user != 0);
DBUG_ASSERT(host != 0);
- temp_len= (uint) (strxnmov(temp_user, sizeof(temp_user)-1, user, "@", host,
- NullS) - temp_user);
+ user_len=strlen(user);
+ host_len=strlen(host);
+ temp_len= (strmov(strmov(temp_user, user)+1, host) - temp_user)+1;
(void) pthread_mutex_lock(&LOCK_user_conn);
if (!(uc = (struct user_conn *) hash_search(&hash_user_connections,
(byte*) temp_user, temp_len)))
@@ -153,10 +154,14 @@ static int get_or_create_user_conn(THD *thd, const char *user,
}
uc->user=(char*) (uc+1);
memcpy(uc->user,temp_user,temp_len+1);
+ uc->user_len= user_len;
+ uc->host=uc->user + uc->user_len + 1;
uc->len = temp_len;
- uc->connections = 1;
- uc->questions=0;
- uc->max_questions=max_questions;
+ uc->connections = 1;
+ uc->questions=uc->updates=uc->conn_per_hour=0;
+ uc->user_resources=*mqh;
+ if (max_user_connections && mqh->connections > max_user_connections)
+ uc->user_resources.connections = max_user_connections;
uc->intime=thd->thr_create_time;
if (hash_insert(&hash_user_connections, (byte*) uc))
{
@@ -184,9 +189,9 @@ static bool check_user(THD *thd,enum_server_command command, const char *user,
const char *passwd, const char *db, bool check_count)
{
NET *net= &thd->net;
- uint max_questions=0;
thd->db=0;
thd->db_length=0;
+ USER_RESOURCES ur;
if (!(thd->user = my_strdup(user, MYF(0))))
{
@@ -197,7 +202,7 @@ static bool check_user(THD *thd,enum_server_command command, const char *user,
passwd, thd->scramble, &thd->priv_user,
protocol_version == 9 ||
!(thd->client_capabilities &
- CLIENT_LONG_PASSWORD),&max_questions);
+ CLIENT_LONG_PASSWORD),&ur);
DBUG_PRINT("info",
("Capabilities: %d packet_length: %d Host: '%s' User: '%s' Using password: %s Access: %u db: '%s'",
thd->client_capabilities, thd->max_packet_length,
@@ -237,9 +242,10 @@ static bool check_user(THD *thd,enum_server_command command, const char *user,
db ? db : (char*) "");
thd->db_access=0;
/* Don't allow user to connect if he has done too many queries */
- if ((max_questions || max_user_connections) && get_or_create_user_conn(thd,user,thd->host_or_ip,max_questions))
+ if ((ur.questions || ur.updates || ur.connections) &&
+ get_or_create_user_conn(thd,user,thd->host_or_ip,&ur))
return -1;
- if (max_user_connections && thd->user_connect &&
+ if (thd->user_connect && thd->user_connect->user_resources.connections &&
check_for_max_user_connections(thd->user_connect))
return -1;
if (db && db[0])
@@ -254,6 +260,7 @@ static bool check_user(THD *thd,enum_server_command command, const char *user,
return 0; // ok
}
+
/*
Check for maximum allowable user connections, if the mysqld server is
started with corresponding variable that is greater then 0.
@@ -280,32 +287,38 @@ void init_max_user_conn(void)
}
-static int check_for_max_user_connections(UC *uc)
+static int check_for_max_user_connections(USER_CONN *uc)
{
int error=0;
DBUG_ENTER("check_for_max_user_connections");
- if (max_user_connections <= (uint) uc->connections)
+ if (max_user_connections && ( max_user_connections <= (uint) uc->connections))
{
net_printf(&(current_thd->net),ER_TOO_MANY_USER_CONNECTIONS, uc->user);
error=1;
goto end;
}
uc->connections++;
-
+ if (uc->user_resources.connections && uc->conn_per_hour++ >= uc->user_resources.connections)
+ {
+ net_printf(&current_thd->net, ER_USER_LIMIT_REACHED, uc->user, "max_connections",
+ (long) uc->user_resources.connections);
+ error=1;
+ goto end;
+ }
end:
DBUG_RETURN(error);
}
-static void decrease_user_connections(UC *uc)
+static void decrease_user_connections(USER_CONN *uc)
{
- if (!max_user_connections)
+/* if (!max_user_connections)
return;
+*/
DBUG_ENTER("decrease_user_connections");
-
- if (!--uc->connections && !mqh_used)
+ if (!mqh_used && uc->connections && !--uc->connections)
{
/* Last connection for user; Delete it */
(void) pthread_mutex_lock(&LOCK_user_conn);
@@ -326,70 +339,92 @@ void free_max_user_conn(void)
Check if maximum queries per hour limit has been reached
returns 0 if OK.
- In theory we would need a mutex in the UC structure for this to be 100 %
+ In theory we would need a mutex in the USER_CONN structure for this to be 100 %
safe, but as the worst scenario is that we would miss counting a couple of
queries, this isn't critical.
*/
+char uc_update_queries[SQLCOM_END];
+
static bool check_mqh(THD *thd)
{
bool error=0;
DBUG_ENTER("check_mqh");
- UC *uc=thd->user_connect;
+ USER_CONN *uc=thd->user_connect;
DBUG_ASSERT(uc != 0);
+ uint check_command = thd->lex.sql_command;
+
- bool my_start = thd->start_time != 0;
- time_t check_time = (my_start) ? thd->start_time : time(NULL);
- if (check_time - uc->intime >= 3600)
+ if (check_command < (uint) SQLCOM_END)
{
- (void) pthread_mutex_lock(&LOCK_user_conn);
- uc->questions=1;
- uc->intime=check_time;
- (void) pthread_mutex_unlock(&LOCK_user_conn);
+ if (uc->user_resources.updates && uc_update_queries[check_command] &&
+ ++(uc->updates) > uc->user_resources.updates)
+ {
+ net_printf(&thd->net, ER_USER_LIMIT_REACHED, uc->user, "max_updates",
+ (long) uc->user_resources.updates);
+ error=1;
+ goto end;
+ }
}
- else if (uc->max_questions && ++(uc->questions) > uc->max_questions)
+ else
{
- net_printf(&thd->net, ER_USER_LIMIT_REACHED, uc->user, "max_questions",
- (long) uc->max_questions);
- error=1;
- goto end;
+ bool my_start = thd->start_time != 0;
+ time_t check_time = (my_start) ? thd->start_time : time(NULL);
+
+ if (check_time - uc->intime >= 3600)
+ {
+ (void) pthread_mutex_lock(&LOCK_user_conn);
+ uc->questions=1;
+ uc->updates=0;
+ uc->conn_per_hour=0;
+ uc->intime=check_time;
+ (void) pthread_mutex_unlock(&LOCK_user_conn);
+ }
+ else if (uc->user_resources.questions && ++(uc->questions) > uc->user_resources.questions)
+ {
+ net_printf(&thd->net, ER_USER_LIMIT_REACHED, uc->user, "max_questions",
+ (long) uc->user_resources.questions);
+ error=1;
+ goto end;
+ }
}
-
end:
DBUG_RETURN(error);
}
-static void reset_mqh(THD *thd, LEX_USER *lu, uint mq)
+static void reset_mqh(THD *thd, LEX_USER *lu, USER_RESOURCES *mqh, bool get_them=false)
{
(void) pthread_mutex_lock(&LOCK_user_conn);
if (lu) // for GRANT
{
- UC *uc;
+ USER_CONN *uc;
uint temp_len=lu->user.length+lu->host.length+2;
char temp_user[USERNAME_LENGTH+HOSTNAME_LENGTH+2];
memcpy(temp_user,lu->user.str,lu->user.length);
memcpy(temp_user+lu->user.length+1,lu->host.str,lu->host.length);
- temp_user[lu->user.length]=temp_user[temp_len-1]=0;
+ temp_user[lu->user.length]='\0'; temp_user[temp_len-1]=0;
if ((uc = (struct user_conn *) hash_search(&hash_user_connections,
- (byte*) temp_user, temp_len)))
+ (byte*) temp_user, temp_len-1)))
{
uc->questions=0;
- uc->max_questions=mq;
+ uc->user_resources=*mqh;
+ uc->updates=0;
+ uc->conn_per_hour=0;
}
}
- else // for FLUSH PRIVILEGES
+ else // for FLUSH PRIVILEGES and FLUSH USER_RESOURCES
{
for (uint idx=0;idx < hash_user_connections.records; idx++)
{
- char user[USERNAME_LENGTH+1];
- char *where;
- UC *uc=(struct user_conn *) hash_element(&hash_user_connections, idx);
- where=strchr(uc->user,'@');
- strmake(user,uc->user,where - uc->user);
- uc->max_questions=get_mqh(user,where+1);
+ USER_CONN *uc=(struct user_conn *) hash_element(&hash_user_connections, idx);
+ if (get_them)
+ get_mqh(uc->user,uc->host,uc);
+ uc->questions=0;
+ uc->updates=0;
+ uc->conn_per_hour=0;
}
}
(void) pthread_mutex_unlock(&LOCK_user_conn);
@@ -710,7 +745,7 @@ pthread_handler_decl(handle_bootstrap,arg)
thd->query= thd->memdup_w_gap(buff, length+1, thd->db_length+1);
thd->query[length] = '\0';
thd->query_id=query_id++;
- if (thd->user_connect && check_mqh(thd))
+ if (mqh_used && thd->user_connect && check_mqh(thd))
{
thd->net.error = 0;
close_thread_tables(thd); // Free tables
@@ -897,7 +932,7 @@ bool dispatch_command(enum enum_server_command command, THD *thd,
char *save_user= thd->user;
char *save_priv_user= thd->priv_user;
char *save_db= thd->db;
- UC *save_uc= thd->user_connect;
+ USER_CONN *save_uc= thd->user_connect;
if ((uint) ((uchar*) db - net->read_pos) > packet_length)
{ // Check if protocol is ok
@@ -951,7 +986,7 @@ bool dispatch_command(enum enum_server_command command, THD *thd,
my_pthread_setprio(pthread_self(),QUERY_PRIOR);
mysql_log.write(thd,command,"%s",thd->query);
DBUG_PRINT("query",("%s",thd->query));
- if (thd->user_connect && check_mqh(thd))
+ if (mqh_used && thd->user_connect && check_mqh(thd))
{
error = TRUE; // Abort client
net->error = 0; // Don't give abort message
@@ -1010,7 +1045,7 @@ bool dispatch_command(enum enum_server_command command, THD *thd,
thread_safe_increment(com_stat[SQLCOM_CREATE_DB],&LOCK_thread_count);
char *db=thd->strdup(packet);
// null test to handle EOM
- if (!db || !stripp_sp(db) || check_db_name(db))
+ if (!db || !strip_sp(db) || check_db_name(db))
{
net_printf(&thd->net,ER_WRONG_DB_NAME, db ? db : "NULL");
break;
@@ -1026,7 +1061,7 @@ bool dispatch_command(enum enum_server_command command, THD *thd,
thread_safe_increment(com_stat[SQLCOM_DROP_DB],&LOCK_thread_count);
char *db=thd->strdup(packet);
// null test to handle EOM
- if (!db || !stripp_sp(db) || check_db_name(db))
+ if (!db || !strip_sp(db) || check_db_name(db))
{
net_printf(&thd->net,ER_WRONG_DB_NAME, db ? db : "NULL");
break;
@@ -1076,8 +1111,6 @@ bool dispatch_command(enum enum_server_command command, THD *thd,
send_error(net,0);
else
send_eof(net);
- if (mqh_used)
- reset_mqh(thd,(LEX_USER *) NULL, 0);
break;
}
case COM_SHUTDOWN:
@@ -1680,7 +1713,6 @@ mysql_execute_command(void)
check_table_access(thd,SELECT_ACL | INSERT_ACL, tables))
goto error; /* purecov: inspected */
res = mysql_repair_table(thd, tables, &lex->check_opt);
- query_cache_invalidate3(thd, tables, 0);
break;
}
case SQLCOM_CHECK:
@@ -1689,7 +1721,6 @@ mysql_execute_command(void)
check_table_access(thd, SELECT_ACL | EXTRA_ACL , tables))
goto error; /* purecov: inspected */
res = mysql_check_table(thd, tables, &lex->check_opt);
- query_cache_invalidate3(thd, tables, 0);
break;
}
case SQLCOM_ANALYZE:
@@ -1772,6 +1803,7 @@ mysql_execute_command(void)
tables->grant.want_privilege=(SELECT_ACL & ~tables->grant.privilege);
if ((res=open_and_lock_tables(thd,tables)))
break;
+ thd->select_limit=HA_POS_ERROR;
if (!setup_fields(thd,tables,select_lex->item_list,1,0,0) &&
!setup_fields(thd,tables,lex->value_list,0,0,0) && ! thd->fatal_error &&
(result=new multi_update(thd,tables,select_lex->item_list,lex->duplicates,
@@ -1952,8 +1984,9 @@ mysql_execute_command(void)
/* Fix tables-to-be-deleted-from list to point at opened tables */
for (auxi=(TABLE_LIST*) aux_tables ; auxi ; auxi=auxi->next)
auxi->table= ((TABLE_LIST*) auxi->table)->table;
- if (!thd->fatal_error && (result=new multi_delete(thd,aux_tables,
- lex->lock_option,table_count)))
+ if (!thd->fatal_error && (result= new multi_delete(thd,aux_tables,
+ lex->lock_option,
+ table_count)))
{
res=mysql_select(thd,tables,select_lex->item_list,
select_lex->where,
@@ -2198,7 +2231,8 @@ mysql_execute_command(void)
}
if (check_db_used(thd,tables) || end_active_trans(thd))
goto error;
- if (grant_option && check_grant(thd,SELECT_ACL | INSERT_ACL | UPDATE_ACL | DELETE_ACL,tables))
+ if (check_table_access(thd, SELECT_ACL | INSERT_ACL | UPDATE_ACL | DELETE_ACL , tables)
+ || (grant_option && check_grant(thd,SELECT_ACL | INSERT_ACL | UPDATE_ACL | DELETE_ACL,tables)))
goto error;
thd->in_lock_tables=1;
thd->options|= OPTION_TABLE_LOCK;
@@ -2214,7 +2248,7 @@ mysql_execute_command(void)
break;
case SQLCOM_CREATE_DB:
{
- if (!stripp_sp(lex->name) || check_db_name(lex->name))
+ if (!strip_sp(lex->name) || check_db_name(lex->name))
{
net_printf(&thd->net,ER_WRONG_DB_NAME, lex->name);
break;
@@ -2226,7 +2260,7 @@ mysql_execute_command(void)
}
case SQLCOM_DROP_DB:
{
- if (!stripp_sp(lex->name) || check_db_name(lex->name))
+ if (!strip_sp(lex->name) || check_db_name(lex->name))
{
net_printf(&thd->net,ER_WRONG_DB_NAME, lex->name);
break;
@@ -2328,12 +2362,12 @@ mysql_execute_command(void)
Query_log_event qinfo(thd, thd->query);
mysql_bin_log.write(&qinfo);
}
- if (mqh_used && lex->mqh)
+ if (mqh_used && (lex->mqh.questions || lex->mqh.updates || lex->mqh.connections) && lex->sql_command == SQLCOM_GRANT)
{
List_iterator <LEX_USER> str_list(lex->users_list);
LEX_USER *user;
while ((user=str_list++))
- reset_mqh(thd,user,lex->mqh);
+ reset_mqh(thd,user,&(lex->mqh));
}
}
}
@@ -2721,7 +2755,7 @@ void mysql_init_multi_delete(LEX *lex)
{
lex->sql_command = SQLCOM_DELETE_MULTI;
mysql_init_select(lex);
- lex->select->select_limit=HA_POS_ERROR;
+ lex->select->select_limit=lex->thd->select_limit=HA_POS_ERROR;
lex->auxilliary_table_list=lex->select_lex.table_list;
lex->select->table_list.elements=0;
lex->select->table_list.first=0;
@@ -2740,8 +2774,15 @@ mysql_parse(THD *thd,char *inBuf,uint length)
LEX *lex=lex_start(thd, (uchar*) inBuf, length);
if (!yyparse() && ! thd->fatal_error)
{
- mysql_execute_command();
- query_cache_end_of_result(&thd->net);
+ if (mqh_used && thd->user_connect && check_mqh(thd))
+ {
+ thd->net.error = 0;
+ }
+ else
+ {
+ mysql_execute_command();
+ query_cache_end_of_result(&thd->net);
+ }
}
else
query_cache_abort(&thd->net);
@@ -2842,9 +2883,9 @@ bool add_field_to_list(char *field_name, enum_field_types type,
uint sign_len=type_modifier & UNSIGNED_FLAG ? 0 : 1;
if (new_field->length && new_field->decimals &&
- new_field->length < new_field->decimals+2 &&
+ new_field->length < new_field->decimals+1 &&
new_field->decimals != NOT_FIXED_DEC)
- new_field->length=new_field->decimals+2; /* purecov: inspected */
+ new_field->length=new_field->decimals+1; /* purecov: inspected */
switch (type) {
case FIELD_TYPE_TINY:
@@ -2972,7 +3013,9 @@ bool add_field_to_list(char *field_name, enum_field_types type,
new_field->interval=interval;
new_field->length=0;
for (const char **pos=interval->type_names; *pos ; pos++)
- new_field->length+=(uint) strlen(*pos)+1;
+ {
+ new_field->length+=(uint) strip_sp((char*) *pos)+1;
+ }
new_field->length--;
set_if_smaller(new_field->length,MAX_FIELD_WIDTH-1);
if (default_value)
@@ -2993,10 +3036,10 @@ bool add_field_to_list(char *field_name, enum_field_types type,
{
new_field->interval=interval;
new_field->pack_length=interval->count < 256 ? 1 : 2; // Should be safe
- new_field->length=(uint) strlen(interval->type_names[0]);
+ new_field->length=(uint) strip_sp((char*) interval->type_names[0]);
for (const char **pos=interval->type_names+1; *pos ; pos++)
{
- uint length=(uint) strlen(*pos);
+ uint length=(uint) strip_sp((char*) *pos);
set_if_bigger(new_field->length,length);
}
set_if_smaller(new_field->length,MAX_FIELD_WIDTH-1);
@@ -3299,6 +3342,8 @@ bool reload_acl_and_cache(THD *thd, ulong options, TABLE_LIST *tables)
{
acl_reload();
grant_reload();
+ if (mqh_used)
+ reset_mqh(thd,(LEX_USER *) NULL, 0, true);
}
if (options & REFRESH_LOG)
{
@@ -3345,14 +3390,16 @@ bool reload_acl_and_cache(THD *thd, ulong options, TABLE_LIST *tables)
result=load_des_key_file(des_key_file);
}
#endif
- if (options & REFRESH_SLAVE)
- {
- LOCK_ACTIVE_MI;
- if (reset_slave(active_mi))
- result=1;
- UNLOCK_ACTIVE_MI;
- }
- return result;
+ if (options & REFRESH_SLAVE)
+ {
+ LOCK_ACTIVE_MI;
+ if (reset_slave(active_mi))
+ result=1;
+ UNLOCK_ACTIVE_MI;
+ }
+ if (options & REFRESH_USER_RESOURCES)
+ reset_mqh(thd,(LEX_USER *) NULL, 0);
+ return result;
}
diff --git a/sql/sql_repl.cc b/sql/sql_repl.cc
index 398ff443ad4..b6c7c98a4cf 100644
--- a/sql/sql_repl.cc
+++ b/sql/sql_repl.cc
@@ -27,11 +27,9 @@
extern const char* any_db;
-#ifndef DBUG_OFF
int max_binlog_dump_events = 0; // unlimited
bool opt_sporadic_binlog_dump_fail = 0;
static int binlog_dump_count = 0;
-#endif
int check_binlog_magic(IO_CACHE* log, const char** errmsg)
{
diff --git a/sql/sql_repl.h b/sql/sql_repl.h
index 360fd50a1e3..b15c72a0bde 100644
--- a/sql/sql_repl.h
+++ b/sql/sql_repl.h
@@ -21,10 +21,8 @@ extern uint32 server_id;
extern bool server_id_supplied;
extern I_List<i_string> binlog_do_db, binlog_ignore_db;
-#ifndef DBUG_OFF
extern int max_binlog_dump_events;
extern bool opt_sporadic_binlog_dump_fail;
-#endif
#define KICK_SLAVE(thd) thd->awake(0 /* do not prepare to die*/);
diff --git a/sql/sql_select.cc b/sql/sql_select.cc
index c539afb00c1..a4a0a73dfb6 100644
--- a/sql/sql_select.cc
+++ b/sql/sql_select.cc
@@ -1610,7 +1610,7 @@ update_ref_and_keys(THD *thd, DYNAMIC_ARRAY *keyuse,JOIN_TAB *join_tab,
join_tab[i].table->map);
}
}
- if (init_dynamic_array(keyuse,sizeof(KEYUSE),20,64))
+ if (my_init_dynamic_array(keyuse,sizeof(KEYUSE),20,64))
return TRUE;
/* fill keyuse with found key parts */
for (KEY_FIELD *field=key_fields ; field != end ; field++)
@@ -2363,7 +2363,7 @@ make_simple_join(JOIN *join,TABLE *tmp_table)
join->send_records=(ha_rows) 0;
join->group=0;
join->do_send_rows = 1;
- join->row_limit=HA_POS_ERROR;
+ join->row_limit=join->thd->select_limit;
join_tab->cache.buff=0; /* No cacheing */
join_tab->table=tmp_table;
@@ -3824,6 +3824,7 @@ create_tmp_table(THD *thd,TMP_TABLE_PARAM *param,List<Item> &fields,
key_part_info->null_offset= (uint) (field->null_ptr -
(uchar*) table->record[0]);
group->field->move_field((char*) ++group->buff);
+ ++group_buff;
}
else
group->field->move_field((char*) group_buff);
@@ -4903,7 +4904,8 @@ end_send(JOIN *join, JOIN_TAB *join_tab __attribute__((unused)),
{
/* Join over all rows in table; Return number of found rows */
join->select_options ^= OPTION_FOUND_ROWS;
- join->send_records = jt->records;
+ jt->table->file->info(HA_STATUS_VARIABLE);
+ join->send_records = jt->table->file->records;
}
else
{
@@ -4941,10 +4943,9 @@ end_send_group(JOIN *join, JOIN_TAB *join_tab __attribute__((unused)),
join->procedure->end_group();
if (idx < (int) join->send_group_parts)
{
- int error;
+ int error=0;
if (join->procedure)
{
- error=0;
if (join->having && join->having->val_int() == 0)
error= -1; // Didn't satisfy having
else if (join->do_send_rows)
@@ -4962,13 +4963,16 @@ end_send_group(JOIN *join, JOIN_TAB *join_tab __attribute__((unused)),
}
if (join->having && join->having->val_int() == 0)
error= -1; // Didn't satisfy having
- else
+ else if (join->do_send_rows)
error=join->result->send_data(*join->fields) ? 1 : 0;
}
if (error > 0)
DBUG_RETURN(-1); /* purecov: inspected */
if (end_of_records)
+ {
+ join->send_records++;
DBUG_RETURN(0);
+ }
if (!error && ++join->send_records >= join->thd->select_limit &&
join->do_send_rows)
{
@@ -6992,6 +6996,7 @@ static void select_describe(JOIN *join, bool need_tmp_table, bool need_order,
/* Don't log this into the slow query log */
select_lex->options&= ~(QUERY_NO_INDEX_USED | QUERY_NO_GOOD_INDEX_USED);
+ thd->offset_limit=0;
if (thd->lex.select == select_lex)
{
field_list.push_back(new Item_empty_string("table",NAME_LEN));
diff --git a/sql/sql_show.cc b/sql/sql_show.cc
index 359ed48ed48..86247397e0a 100644
--- a/sql/sql_show.cc
+++ b/sql/sql_show.cc
@@ -432,6 +432,7 @@ mysqld_show_fields(THD *thd, TABLE_LIST *table_list,const char *wild,
TABLE *table;
handler *file;
char tmp[MAX_FIELD_WIDTH];
+ Item *item;
CONVERT *convert=thd->convert_set;
DBUG_ENTER("mysqld_show_fields");
DBUG_PRINT("enter",("db: %s table: %s",table_list->db,
@@ -451,7 +452,8 @@ mysqld_show_fields(THD *thd, TABLE_LIST *table_list,const char *wild,
field_list.push_back(new Item_empty_string("Type",40));
field_list.push_back(new Item_empty_string("Null",1));
field_list.push_back(new Item_empty_string("Key",3));
- field_list.push_back(new Item_empty_string("Default",NAME_LEN));
+ field_list.push_back(item=new Item_empty_string("Default",NAME_LEN));
+ item->maybe_null=1;
field_list.push_back(new Item_empty_string("Extra",20));
if (verbose)
{
@@ -589,11 +591,17 @@ mysqld_show_create(THD *thd, TABLE_LIST *table_list)
with *that* much stuff in the definition
*/
if (create_len > 0x00ffffff) // better readable in HEX ...
- DBUG_RETURN(1);
+ {
+ /*
+ Just in case somebody manages to create a table
+ with *that* much stuff in the definition
+ */
+ DBUG_RETURN(1);
+ }
/*
Now we have to store the length in three bytes, even if it would fit
- into fewer, so we cannot use net_store_data() anymore,
+ into fewer bytes, so we cannot use net_store_data() anymore,
and do it ourselves
*/
char* p = (char*)packet->ptr() + store_len_offset;
@@ -1172,7 +1180,7 @@ int mysqld_show(THD *thd, const char *wild, show_var_st *variables)
pthread_mutex_lock(&LOCK_status);
for (i=0; variables[i].name; i++)
{
- if (!(wild && wild[0] && wild_compare(variables[i].name,wild)))
+ if (!(wild && wild[0] && wild_case_compare(variables[i].name,wild)))
{
packet2.length(0);
net_store_data(&packet2,convert,variables[i].name);
diff --git a/sql/sql_string.cc b/sql/sql_string.cc
index b8e2ba7b536..9014ca430d9 100644
--- a/sql/sql_string.cc
+++ b/sql/sql_string.cc
@@ -40,19 +40,16 @@ extern void sql_element_free(void *ptr);
bool String::real_alloc(uint32 arg_length)
{
arg_length=ALIGN_SIZE(arg_length+1);
+ str_length=0;
if (Alloced_length < arg_length)
{
free();
if (!(Ptr=(char*) my_malloc(arg_length,MYF(MY_WME))))
- {
- str_length=0;
return TRUE;
- }
Alloced_length=arg_length;
alloced=1;
}
Ptr[0]=0;
- str_length=0;
return FALSE;
}
diff --git a/sql/sql_table.cc b/sql/sql_table.cc
index 5c7d9e538e4..a032adb1520 100644
--- a/sql/sql_table.cc
+++ b/sql/sql_table.cc
@@ -1002,20 +1002,19 @@ static int prepare_for_repair(THD* thd, TABLE_LIST* table,
else
{
- char from[FN_REFLEN],to[FN_REFLEN];
+ char from[FN_REFLEN],tmp[FN_REFLEN];
char* db = thd->db ? thd->db : table->db;
sprintf(from, "%s/%s/%s", mysql_real_data_home, db, table->name);
fn_format(from, from, "", MI_NAME_DEXT, 4);
- sprintf(to,"%s-%lx_%lx", from, current_pid, thd->thread_id);
+ sprintf(tmp,"%s-%lx_%lx", from, current_pid, thd->thread_id);
-
- my_rename(to, from, MYF(MY_WME));
+ close_cached_table(thd,table->table);
if (lock_and_wait_for_table_name(thd,table))
DBUG_RETURN(-1);
- if (my_rename(from, to, MYF(MY_WME)))
+ if (my_rename(from, tmp, MYF(MY_WME)))
{
unlock_table_name(thd, table);
DBUG_RETURN(send_check_errmsg(thd, table, "repair",
@@ -1027,7 +1026,7 @@ static int prepare_for_repair(THD* thd, TABLE_LIST* table,
DBUG_RETURN(send_check_errmsg(thd, table, "repair",
"Failed generating table from .frm file"));
}
- if (my_rename(to, from, MYF(MY_WME)))
+ if (my_rename(tmp, from, MYF(MY_WME)))
{
unlock_table_name(thd, table);
DBUG_RETURN(send_check_errmsg(thd, table, "repair",
@@ -1188,8 +1187,12 @@ static int mysql_admin_table(THD* thd, TABLE_LIST* tables,
if (fatal_error)
table->table->version=0; // Force close of table
else if (open_for_modify)
+ {
remove_table_from_cache(thd, table->table->table_cache_key,
table->table->real_name);
+ /* May be something modified consequently we have to invalidate cache */
+ query_cache_invalidate3(thd, table->table, 0);
+ }
close_thread_tables(thd);
table->table=0; // For query cache
if (my_net_write(&thd->net, (char*) packet->ptr(),
diff --git a/sql/sql_union.cc b/sql/sql_union.cc
index c8237f3ae9b..7f00ddad99f 100644
--- a/sql/sql_union.cc
+++ b/sql/sql_union.cc
@@ -132,7 +132,7 @@ int mysql_union(THD *thd, LEX *lex,select_result *result)
goto exit;
}
union_result->save_time_stamp=!describe;
-
+ union_result->tmp_table_param=&tmp_table_param;
for (sl= &lex->select_lex; sl; sl=sl->next)
{
lex->select=sl;
@@ -253,7 +253,12 @@ bool select_union::send_data(List<Item> &values)
return 0;
}
fill_record(table->field,values);
- return write_record(table,&info) ? 1 : 0;
+ if ((write_record(table,&info)))
+ {
+ if (create_myisam_from_heap(table, tmp_table_param, info.errorno, 0))
+ return 1;
+ }
+ return 0;
}
bool select_union::send_eof()
diff --git a/sql/sql_update.cc b/sql/sql_update.cc
index 2a45798ddf8..8b65cba06a5 100644
--- a/sql/sql_update.cc
+++ b/sql/sql_update.cc
@@ -318,13 +318,15 @@ int mysql_update(THD *thd,
}
if (using_transactions && ha_autocommit_or_rollback(thd, error >= 0))
error=1;
+ if (updated)
+ {
+ query_cache_invalidate3(thd, table_list, 1);
+ }
if (thd->lock)
{
mysql_unlock_tables(thd, thd->lock);
thd->lock=0;
}
- if (updated)
- query_cache_invalidate3(thd, table_list, 1);
delete select;
if (error >= 0)
@@ -643,6 +645,10 @@ void multi_update::send_error(uint errcode,const char *err)
/* If nothing updated return */
if (!updated)
return;
+
+ /* Somthing alredy updated consequently we have to invalidate cache */
+ query_cache_invalidate3(thd, update_tables, 1);
+
/* Below can happen when thread is killed early ... */
if (!table_being_updated)
table_being_updated=update_tables;
@@ -789,8 +795,9 @@ bool multi_update::send_eof()
sprintf(buff,ER(ER_UPDATE_INFO), (long) found, (long) updated,
(long) thd->cuted_fields);
if (updated)
+ {
query_cache_invalidate3(thd, update_tables, 1);
-
+ }
::send_ok(&thd->net,
(thd->client_capabilities & CLIENT_FOUND_ROWS) ? found : updated,
thd->insert_id_used ? thd->insert_id() : 0L,buff);
diff --git a/sql/sql_yacc.yy b/sql/sql_yacc.yy
index a9961090197..32af9a0197f 100644
--- a/sql/sql_yacc.yy
+++ b/sql/sql_yacc.yy
@@ -248,7 +248,9 @@ bool my_yyoverflow(short **a, YYSTYPE **b,int *yystacksize);
%token RELAY_LOG_POS_SYM
%token MATCH
%token MAX_ROWS
+%token MAX_CONNECTIONS_PER_HOUR
%token MAX_QUERIES_PER_HOUR
+%token MAX_UPDATES_PER_HOUR
%token MEDIUM_SYM
%token MERGE_SYM
%token MIN_ROWS
@@ -292,6 +294,7 @@ bool my_yyoverflow(short **a, YYSTYPE **b,int *yystacksize);
%token RENAME
%token REPEATABLE_SYM
%token REQUIRE_SYM
+%token RESOURCES
%token RESTORE_SYM
%token RESTRICT
%token REVOKE
@@ -637,7 +640,7 @@ query:
thd->lex.sql_command = SQLCOM_EMPTY_QUERY;
}
}
- | verb_clause END_OF_INPUT {}
+ | verb_clause END_OF_INPUT {};
verb_clause:
alter
@@ -675,7 +678,7 @@ verb_clause:
| handler
| unlock
| update
- | use
+ | use;
/* change master */
@@ -685,12 +688,12 @@ change:
LEX *lex = Lex;
lex->sql_command = SQLCOM_CHANGE_MASTER;
memset(&lex->mi, 0, sizeof(lex->mi));
- } master_defs
+ } master_defs;
master_defs:
master_def
|
- master_defs ',' master_def
+ master_defs ',' master_def;
master_def:
MASTER_HOST_SYM EQ TEXT_STRING
@@ -736,7 +739,7 @@ master_def:
RELAY_LOG_POS_SYM EQ ULONG_NUM
{
Lex->mi.relay_log_pos = $3;
- }
+ };
/* create a table */
@@ -799,11 +802,11 @@ create:
LEX *lex=Lex;
lex->udf.returns=(Item_result) $7;
lex->udf.dl=$9.str;
- }
+ };
create2:
'(' field_list ')' opt_create_table_options create3 {}
- | opt_create_table_options create3 {}
+ | opt_create_table_options create3 {};
create3:
/* empty */ {}
@@ -813,34 +816,34 @@ create3:
lex->lock_option= (using_update_log) ? TL_READ_NO_INSERT : TL_READ;
mysql_init_select(lex);
}
- select_options select_item_list opt_select_from union {}
+ select_options select_item_list opt_select_from union {};
opt_as:
/* empty */ {}
- | AS {}
+ | AS {};
opt_table_options:
/* empty */ { $$= 0; }
- | table_options { $$= $1;}
+ | table_options { $$= $1;};
table_options:
table_option { $$=$1; }
- | table_option table_options { $$= $1 | $2; }
+ | table_option table_options { $$= $1 | $2; };
table_option:
- TEMPORARY { $$=HA_LEX_CREATE_TMP_TABLE; }
+ TEMPORARY { $$=HA_LEX_CREATE_TMP_TABLE; };
opt_if_not_exists:
/* empty */ { $$= 0; }
- | IF NOT EXISTS { $$=HA_LEX_CREATE_IF_NOT_EXISTS; }
+ | IF NOT EXISTS { $$=HA_LEX_CREATE_IF_NOT_EXISTS; };
opt_create_table_options:
/* empty */
- | create_table_options
+ | create_table_options;
create_table_options:
create_table_option
- | create_table_option create_table_options
+ | create_table_option create_table_options;
create_table_option:
TYPE_SYM EQ table_types { Lex->create_info.db_type= $3; }
@@ -873,7 +876,7 @@ create_table_option:
}
| INSERT_METHOD EQ merge_insert_types { Lex->create_info.merge_insert_method= $3; Lex->create_info.used_fields|= HA_CREATE_USED_INSERT_METHOD;}
| DATA_SYM DIRECTORY_SYM EQ TEXT_STRING { Lex->create_info.data_file_name= $4.str; }
- | INDEX DIRECTORY_SYM EQ TEXT_STRING { Lex->create_info.index_file_name= $4.str; }
+ | INDEX DIRECTORY_SYM EQ TEXT_STRING { Lex->create_info.index_file_name= $4.str; };
table_types:
ISAM_SYM { $$= DB_TYPE_ISAM; }
@@ -881,40 +884,40 @@ table_types:
| MERGE_SYM { $$= DB_TYPE_MRG_MYISAM; }
| HEAP_SYM { $$= DB_TYPE_HEAP; }
| BERKELEY_DB_SYM { $$= DB_TYPE_BERKELEY_DB; }
- | INNOBASE_SYM { $$= DB_TYPE_INNODB; }
+ | INNOBASE_SYM { $$= DB_TYPE_INNODB; };
row_types:
DEFAULT { $$= ROW_TYPE_DEFAULT; }
| FIXED_SYM { $$= ROW_TYPE_FIXED; }
| DYNAMIC_SYM { $$= ROW_TYPE_DYNAMIC; }
- | COMPRESSED_SYM { $$= ROW_TYPE_COMPRESSED; }
+ | COMPRESSED_SYM { $$= ROW_TYPE_COMPRESSED; };
raid_types:
RAID_STRIPED_SYM { $$= RAID_TYPE_0; }
| RAID_0_SYM { $$= RAID_TYPE_0; }
- | ULONG_NUM { $$=$1;}
+ | ULONG_NUM { $$=$1;};
merge_insert_types:
NO_SYM { $$= MERGE_INSERT_DISABLED; }
| FIRST_SYM { $$= MERGE_INSERT_TO_FIRST; }
- | LAST_SYM { $$= MERGE_INSERT_TO_LAST; }
+ | LAST_SYM { $$= MERGE_INSERT_TO_LAST; };
opt_select_from:
/* empty */
- | select_from select_lock_type
+ | select_from select_lock_type;
udf_func_type:
/* empty */ { $$ = UDFTYPE_FUNCTION; }
- | AGGREGATE_SYM { $$ = UDFTYPE_AGGREGATE; }
+ | AGGREGATE_SYM { $$ = UDFTYPE_AGGREGATE; };
udf_type:
STRING_SYM {$$ = (int) STRING_RESULT; }
| REAL {$$ = (int) REAL_RESULT; }
- | INT_SYM {$$ = (int) INT_RESULT; }
+ | INT_SYM {$$ = (int) INT_RESULT; };
field_list:
field_list_item
- | field_list ',' field_list_item
+ | field_list ',' field_list_item;
field_list_item:
@@ -943,11 +946,11 @@ field_list_item:
| opt_constraint CHECK_SYM '(' expr ')'
{
Lex->col_list.empty(); /* Alloced by sql_alloc */
- }
+ };
opt_constraint:
/* empty */
- | CONSTRAINT opt_ident
+ | CONSTRAINT opt_ident;
field_spec:
field_ident
@@ -965,7 +968,7 @@ field_spec:
lex->default_value, lex->comment,
lex->change,lex->interval))
YYABORT;
- }
+ };
type:
int_type opt_len field_options { Lex->length=$2; $$=$1; }
@@ -1026,73 +1029,73 @@ type:
LEX *lex=Lex;
lex->interval=typelib(lex->interval_list);
$$=FIELD_TYPE_SET;
- }
+ };
char:
CHAR_SYM {}
| NCHAR_SYM {}
- | NATIONAL_SYM CHAR_SYM {}
+ | NATIONAL_SYM CHAR_SYM {};
varchar:
char VARYING {}
| VARCHAR {}
| NATIONAL_SYM VARCHAR {}
- | NCHAR_SYM VARCHAR {}
+ | NCHAR_SYM VARCHAR {};
int_type:
INT_SYM { $$=FIELD_TYPE_LONG; }
| TINYINT { $$=FIELD_TYPE_TINY; }
| SMALLINT { $$=FIELD_TYPE_SHORT; }
| MEDIUMINT { $$=FIELD_TYPE_INT24; }
- | BIGINT { $$=FIELD_TYPE_LONGLONG; }
+ | BIGINT { $$=FIELD_TYPE_LONGLONG; };
real_type:
REAL { $$= current_thd->sql_mode & MODE_REAL_AS_FLOAT ?
FIELD_TYPE_FLOAT : FIELD_TYPE_DOUBLE; }
| DOUBLE_SYM { $$=FIELD_TYPE_DOUBLE; }
- | DOUBLE_SYM PRECISION { $$=FIELD_TYPE_DOUBLE; }
+ | DOUBLE_SYM PRECISION { $$=FIELD_TYPE_DOUBLE; };
float_options:
/* empty */ {}
| '(' NUM ')' { Lex->length=$2.str; }
- | precision {}
+ | precision {};
precision:
'(' NUM ',' NUM ')'
{
LEX *lex=Lex;
lex->length=$2.str; lex->dec=$4.str;
- }
+ };
field_options:
/* empty */ {}
- | field_opt_list {}
+ | field_opt_list {};
field_opt_list:
field_opt_list field_option {}
- | field_option {}
+ | field_option {};
field_option:
SIGNED_SYM {}
| UNSIGNED { Lex->type|= UNSIGNED_FLAG;}
- | ZEROFILL { Lex->type|= UNSIGNED_FLAG | ZEROFILL_FLAG; }
+ | ZEROFILL { Lex->type|= UNSIGNED_FLAG | ZEROFILL_FLAG; };
opt_len:
/* empty */ { $$=(char*) 0; } /* use default length */
- | '(' NUM ')' { $$=$2.str; }
+ | '(' NUM ')' { $$=$2.str; };
opt_precision:
/* empty */ {}
- | precision {}
+ | precision {};
opt_attribute:
/* empty */ {}
- | opt_attribute_list {}
+ | opt_attribute_list {};
opt_attribute_list:
opt_attribute_list attribute {}
- | attribute
+ | attribute;
attribute:
NULL_SYM { Lex->type&= ~ NOT_NULL_FLAG; }
@@ -1102,7 +1105,7 @@ attribute:
| PRIMARY_SYM KEY_SYM { Lex->type|= PRI_KEY_FLAG | NOT_NULL_FLAG; }
| UNIQUE_SYM { Lex->type|= UNIQUE_FLAG; }
| UNIQUE_SYM KEY_SYM { Lex->type|= UNIQUE_KEY_FLAG; }
- | COMMENT_SYM text_literal { Lex->comment= $2; }
+ | COMMENT_SYM text_literal { Lex->comment= $2; };
opt_binary:
/* empty */ { Lex->charset=default_charset_info; }
@@ -1116,7 +1119,7 @@ opt_binary:
YYABORT;
}
Lex->charset=cs;
- }
+ };
default_charset:
/* empty */ { Lex->charset-default_charset_info; }
@@ -1129,7 +1132,7 @@ default_charset:
YYABORT;
}
Lex->charset=cs;
- }
+ };
references:
REFERENCES table_ident
@@ -1141,38 +1144,38 @@ references:
opt_ref_list
{
$$=$2;
- }
+ };
opt_ref_list:
/* empty */ {}
- | '(' ref_list ')' opt_on_delete {}
+ | '(' ref_list ')' opt_on_delete {};
ref_list:
ref_list ',' ident { Lex->ref_list.push_back(new key_part_spec($3.str)); }
- | ident { Lex->ref_list.push_back(new key_part_spec($1.str)); }
+ | ident { Lex->ref_list.push_back(new key_part_spec($1.str)); };
opt_on_delete:
/* empty */ {}
- | opt_on_delete_list {}
+ | opt_on_delete_list {};
opt_on_delete_list:
opt_on_delete_list opt_on_delete_item {}
- | opt_on_delete_item {}
+ | opt_on_delete_item {};
opt_on_delete_item:
ON DELETE_SYM delete_option { Lex->fk_delete_opt= $3; }
| ON UPDATE_SYM delete_option { Lex->fk_update_opt= $3; }
| MATCH FULL { Lex->fk_match_option= foreign_key::FK_MATCH_FULL; }
| MATCH PARTIAL { Lex->fk_match_option= foreign_key::FK_MATCH_PARTIAL; }
- | MATCH SIMPLE_SYM { Lex->fk_match_option= foreign_key::FK_MATCH_SIMPLE; }
+ | MATCH SIMPLE_SYM { Lex->fk_match_option= foreign_key::FK_MATCH_SIMPLE; };
delete_option:
RESTRICT { $$= (int) foreign_key::FK_OPTION_RESTRICT; }
| CASCADE { $$= (int) foreign_key::FK_OPTION_CASCADE; }
| SET NULL_SYM { $$= (int) foreign_key::FK_OPTION_SET_NULL; }
| NO_SYM ACTION { $$= (int) foreign_key::FK_OPTION_NO_ACTION; }
- | SET DEFAULT { $$= (int) foreign_key::FK_OPTION_DEFAULT; }
+ | SET DEFAULT { $$= (int) foreign_key::FK_OPTION_DEFAULT; };
key_type:
opt_constraint PRIMARY_SYM KEY_SYM { $$= Key::PRIMARY; }
@@ -1182,47 +1185,46 @@ key_type:
| SPATIAL_SYM { $$= Key::SPATIAL; }
| SPATIAL_SYM key_or_index { $$= Key::SPATIAL; }
| opt_constraint UNIQUE_SYM { $$= Key::UNIQUE; }
- | opt_constraint UNIQUE_SYM key_or_index { $$= Key::UNIQUE; }
+ | opt_constraint UNIQUE_SYM key_or_index { $$= Key::UNIQUE; };
key_or_index:
KEY_SYM {}
- | INDEX {}
+ | INDEX {};
keys_or_index:
KEYS {}
| INDEX {}
- | INDEXES {}
+ | INDEXES {};
opt_unique_or_fulltext:
/* empty */ { $$= Key::MULTIPLE; }
| UNIQUE_SYM { $$= Key::UNIQUE; }
- | FULLTEXT_SYM { $$= Key::FULLTEXT; }
- | SPATIAL_SYM { $$= Key::SPATIAL; }
+ | SPATIAL_SYM { $$= Key::SPATIAL; };
key_alg:
/* empty */ { $$= HA_KEY_ALG_UNDEF; }
- | USING opt_btree_or_rtree { $$= $2; }
+ | USING opt_btree_or_rtree { $$= $2; };
opt_btree_or_rtree:
BTREE_SYM { $$= HA_KEY_ALG_BTREE; }
| RTREE_SYM { $$= HA_KEY_ALG_RTREE; }
- | HASH_SYM { $$= HA_KEY_ALG_HASH; }
+ | HASH_SYM { $$= HA_KEY_ALG_HASH; };
key_list:
key_list ',' key_part order_dir { Lex->col_list.push_back($3); }
- | key_part order_dir { Lex->col_list.push_back($1); }
+ | key_part order_dir { Lex->col_list.push_back($1); };
key_part:
ident { $$=new key_part_spec($1.str); }
- | ident '(' NUM ')' { $$=new key_part_spec($1.str,(uint) atoi($3.str)); }
+ | ident '(' NUM ')' { $$=new key_part_spec($1.str,(uint) atoi($3.str)); };
opt_ident:
/* empty */ { $$=(char*) 0; } /* Defaultlength */
- | field_ident { $$=$1.str; }
+ | field_ident { $$=$1.str; };
string_list:
text_string { Lex->interval_list.push_back($1); }
- | string_list ',' text_string { Lex->interval_list.push_back($3); }
+ | string_list ',' text_string { Lex->interval_list.push_back($3); };
/*
** Alter table
@@ -1253,14 +1255,14 @@ alter:
lex->alter_keys_onoff=LEAVE_AS_IS;
lex->simple_alter=1;
}
- alter_list
+ alter_list;
alter_list:
| alter_list_item
- | alter_list ',' alter_list_item
+ | alter_list ',' alter_list_item;
add_column:
- ADD opt_column { Lex->change=0; }
+ ADD opt_column { Lex->change=0; };
alter_list_item:
add_column field_list_item opt_place { Lex->simple_alter=0; }
@@ -1309,38 +1311,39 @@ alter_list_item:
lex->alter_list.push_back(new Alter_column($3.str,(Item*) 0));
lex->simple_alter=0;
}
- | RENAME opt_to table_alias table_ident
+ | RENAME opt_to table_ident
{
LEX *lex=Lex;
- lex->select->db=$4->db.str;
- lex->name= $4->table.str;
+ lex->select->db=$3->db.str;
+ lex->name= $3->table.str;
lex->simple_alter=0;
}
| create_table_options { Lex->simple_alter=0; }
- | order_clause { Lex->simple_alter=0; }
+ | order_clause { Lex->simple_alter=0; };
opt_column:
/* empty */ {}
- | COLUMN_SYM {}
+ | COLUMN_SYM {};
opt_ignore:
/* empty */ { Lex->duplicates=DUP_ERROR; }
- | IGNORE_SYM { Lex->duplicates=DUP_IGNORE; }
+ | IGNORE_SYM { Lex->duplicates=DUP_IGNORE; };
opt_restrict:
/* empty */ {}
| RESTRICT {}
- | CASCADE {}
+ | CASCADE {};
opt_place:
/* empty */ {}
| AFTER_SYM ident { store_position_for_column($2.str); }
- | FIRST_SYM { store_position_for_column(first_keyword); }
+ | FIRST_SYM { store_position_for_column(first_keyword); };
opt_to:
/* empty */ {}
| TO_SYM {}
- | AS {}
+ | EQ {}
+ | AS {};
slave:
SLAVE START_SYM slave_thread_opts
@@ -1358,7 +1361,7 @@ slave:
};
slave_thread_opts: slave_thread_opt
- | slave_thread_opts ',' slave_thread_opt
+ | slave_thread_opts ',' slave_thread_opt;
slave_thread_opt:
/*empty*/ {}
@@ -1369,7 +1372,7 @@ slave_thread_opt:
| IO_THREAD
{
Lex->slave_thd_opt|=SLAVE_IO;
- }
+ };
restore:
RESTORE_SYM table_or_tables
@@ -1379,7 +1382,7 @@ restore:
table_list FROM TEXT_STRING
{
Lex->backup_dir = $6.str;
- }
+ };
backup:
BACKUP_SYM table_or_tables
{
@@ -1388,7 +1391,7 @@ backup:
table_list TO_SYM TEXT_STRING
{
Lex->backup_dir = $6.str;
- }
+ };
repair:
REPAIR table_or_tables
@@ -1397,20 +1400,20 @@ repair:
lex->sql_command = SQLCOM_REPAIR;
lex->check_opt.init();
}
- table_list opt_mi_repair_type
+ table_list opt_mi_repair_type;
opt_mi_repair_type:
/* empty */ { Lex->check_opt.flags = T_MEDIUM; }
- | mi_repair_types {}
+ | mi_repair_types {};
mi_repair_types:
mi_repair_type {}
- | mi_repair_type mi_repair_types {}
+ | mi_repair_type mi_repair_types {};
mi_repair_type:
QUICK { Lex->check_opt.flags|= T_QUICK; }
| EXTENDED_SYM { Lex->check_opt.flags|= T_EXTEND; }
- | USE_FRM { Lex->check_opt.sql_flags|= TT_USEFRM; }
+ | USE_FRM { Lex->check_opt.sql_flags|= TT_USEFRM; };
analyze:
ANALYZE_SYM table_or_tables
@@ -1419,7 +1422,7 @@ analyze:
lex->sql_command = SQLCOM_ANALYZE;
lex->check_opt.init();
}
- table_list opt_mi_check_type
+ table_list opt_mi_check_type;
check:
CHECK_SYM table_or_tables
@@ -1428,22 +1431,22 @@ check:
lex->sql_command = SQLCOM_CHECK;
lex->check_opt.init();
}
- table_list opt_mi_check_type
+ table_list opt_mi_check_type;
opt_mi_check_type:
/* empty */ { Lex->check_opt.flags = T_MEDIUM; }
- | mi_check_types {}
+ | mi_check_types {};
mi_check_types:
mi_check_type {}
- | mi_check_type mi_check_types {}
+ | mi_check_type mi_check_types {};
mi_check_type:
QUICK { Lex->check_opt.flags|= T_QUICK; }
| FAST_SYM { Lex->check_opt.flags|= T_FAST; }
| MEDIUM_SYM { Lex->check_opt.flags|= T_MEDIUM; }
| EXTENDED_SYM { Lex->check_opt.flags|= T_EXTEND; }
- | CHANGED { Lex->check_opt.flags|= T_CHECK_ONLY_CHANGED; }
+ | CHANGED { Lex->check_opt.flags|= T_CHECK_ONLY_CHANGED; };
optimize:
OPTIMIZE table_or_tables
@@ -1452,25 +1455,25 @@ optimize:
lex->sql_command = SQLCOM_OPTIMIZE;
lex->check_opt.init();
}
- table_list opt_mi_check_type
+ table_list opt_mi_check_type;
rename:
RENAME table_or_tables
{
Lex->sql_command=SQLCOM_RENAME_TABLE;
}
- table_to_table_list
+ table_to_table_list;
table_to_table_list:
table_to_table
- | table_to_table_list ',' table_to_table
+ | table_to_table_list ',' table_to_table;
table_to_table:
table_ident TO_SYM table_ident
{ if (!add_table_to_list($1,NULL,1,TL_IGNORE) ||
!add_table_to_list($3,NULL,1,TL_IGNORE))
YYABORT;
- }
+ };
/*
Select : retrieve data from table
@@ -1478,12 +1481,12 @@ table_to_table:
select:
- select_init { Lex->sql_command=SQLCOM_SELECT; }
+ select_init { Lex->sql_command=SQLCOM_SELECT; };
select_init:
SELECT_SYM select_part2 { Select->braces=false; } union
|
- '(' SELECT_SYM select_part2 ')' { Select->braces=true;} union_opt
+ '(' SELECT_SYM select_part2 ')' { Select->braces=true;} union_opt;
select_part2:
@@ -1492,25 +1495,25 @@ select_part2:
lex->lock_option=TL_READ;
mysql_init_select(lex);
}
- select_options select_item_list select_into select_lock_type
+ select_options select_item_list select_into select_lock_type;
select_into:
limit_clause {}
| select_from
| opt_into select_from
- | select_from opt_into
+ | select_from opt_into;
select_from:
- FROM join_table_list where_clause group_clause having_clause opt_order_clause limit_clause procedure_clause
+ FROM join_table_list where_clause group_clause having_clause opt_order_clause limit_clause procedure_clause;
select_options:
/* empty*/
- | select_option_list
+ | select_option_list;
select_option_list:
select_option_list select_option
- | select_option
+ | select_option;
select_option:
STRAIGHT_JOIN { Select->options|= SELECT_STRAIGHT_JOIN; }
@@ -1522,14 +1525,14 @@ select_option:
| SQL_CALC_FOUND_ROWS { if (Select != &Lex->select_lex) YYABORT; Select->options|= OPTION_FOUND_ROWS; }
| SQL_NO_CACHE_SYM { if (Select != &Lex->select_lex) YYABORT; current_thd->safe_to_cache_query=0; }
| SQL_CACHE_SYM { if (Select != &Lex->select_lex) YYABORT; Select->options |= OPTION_TO_QUERY_CACHE; }
- | ALL {}
+ | ALL {};
select_lock_type:
/* empty */
| FOR_SYM UPDATE_SYM
{ if (Select != &Lex->select_lex) YYABORT; Lex->lock_option= TL_WRITE; current_thd->safe_to_cache_query=0; }
| LOCK_SYM IN_SYM SHARE_SYM MODE_SYM
- { if (Select != &Lex->select_lex) YYABORT; Lex->lock_option= TL_READ_WITH_SHARED_LOCKS; current_thd->safe_to_cache_query=0; }
+ { if (Select != &Lex->select_lex) YYABORT; Lex->lock_option= TL_READ_WITH_SHARED_LOCKS; current_thd->safe_to_cache_query=0; };
select_item_list:
select_item_list ',' select_item
@@ -1538,7 +1541,7 @@ select_item_list:
{
if (add_item_to_list(new Item_field(NULL,NULL,"*")))
YYABORT;
- }
+ };
select_item:
@@ -1550,32 +1553,32 @@ select_item:
$2->set_name($4.str);
else if (!$2->name)
$2->set_name($1,(uint) ($3 - $1));
- }
+ };
remember_name:
- { $$=(char*) Lex->tok_start; }
+ { $$=(char*) Lex->tok_start; };
remember_end:
- { $$=(char*) Lex->tok_end; }
+ { $$=(char*) Lex->tok_end; };
select_item2:
table_wild { $$=$1; } /* table.* */
- | expr { $$=$1; }
+ | expr { $$=$1; };
select_alias:
{ $$.str=0;}
| AS ident { $$=$2; }
| AS TEXT_STRING { $$=$2; }
| ident { $$=$1; }
- | TEXT_STRING { $$=$1; }
+ | TEXT_STRING { $$=$1; };
optional_braces:
/* empty */ {}
- | '(' ')' {}
+ | '(' ')' {};
/* all possible expressions */
expr: expr_expr {$$ = $1; }
- | simple_expr {$$ = $1; }
+ | simple_expr {$$ = $1; };
/* expressions that begin with 'expr' */
expr_expr:
@@ -1615,7 +1618,7 @@ expr_expr:
| expr '+' INTERVAL_SYM expr interval
{ $$= new Item_date_add_interval($1,$4,$5,0); }
| expr '-' INTERVAL_SYM expr interval
- { $$= new Item_date_add_interval($1,$4,$5,1); }
+ { $$= new Item_date_add_interval($1,$4,$5,1); };
/* expressions that begin with 'expr' that do NOT follow IN_SYM */
no_in_expr:
@@ -1652,7 +1655,7 @@ no_in_expr:
{ $$= new Item_date_add_interval($1,$4,$5,0); }
| no_in_expr '-' INTERVAL_SYM expr interval
{ $$= new Item_date_add_interval($1,$4,$5,1); }
- | simple_expr
+ | simple_expr;
/* expressions that begin with 'expr' that does NOT follow AND */
no_and_expr:
@@ -1692,7 +1695,7 @@ no_and_expr:
{ $$= new Item_date_add_interval($1,$4,$5,0); }
| no_and_expr '-' INTERVAL_SYM expr interval
{ $$= new Item_date_add_interval($1,$4,$5,1); }
- | simple_expr
+ | simple_expr;
simple_expr:
simple_ident
@@ -2025,11 +2028,11 @@ simple_expr:
current_thd->safe_to_cache_query=0;
}
| EXTRACT_SYM '(' interval FROM expr ')'
- { $$=new Item_extract( $3, $5); }
+ { $$=new Item_extract( $3, $5); };
udf_expr_list:
/* empty */ { $$= NULL; }
- | expr_list { $$= $1;}
+ | expr_list { $$= $1;};
sum_expr:
AVG_SYM '(' in_sum_expr ')'
@@ -2053,7 +2056,7 @@ sum_expr:
| STD_SYM '(' in_sum_expr ')'
{ $$=new Item_sum_std($3); }
| SUM_SYM '(' in_sum_expr ')'
- { $$=new Item_sum_sum($3); }
+ { $$=new Item_sum_sum($3); };
in_sum_expr:
{ Select->in_sum_expr++; }
@@ -2061,7 +2064,7 @@ in_sum_expr:
{
Select->in_sum_expr--;
$$=$2;
- }
+ };
cast_type:
BINARY { $$=ITEM_CAST_BINARY; }
@@ -2071,42 +2074,42 @@ cast_type:
| UNSIGNED INT_SYM { $$=ITEM_CAST_UNSIGNED_INT; }
| DATE_SYM { $$=ITEM_CAST_DATE; }
| TIME_SYM { $$=ITEM_CAST_TIME; }
- | DATETIME { $$=ITEM_CAST_DATETIME; }
+ | DATETIME { $$=ITEM_CAST_DATETIME; };
expr_list:
{ Select->expr_list.push_front(new List<Item>); }
expr_list2
- { $$= Select->expr_list.pop(); }
+ { $$= Select->expr_list.pop(); };
expr_list2:
expr { Select->expr_list.head()->push_back($1); }
- | expr_list2 ',' expr { Select->expr_list.head()->push_back($3); }
+ | expr_list2 ',' expr { Select->expr_list.head()->push_back($3); };
ident_list_arg:
ident_list { $$= $1; }
- | '(' ident_list ')' { $$= $2; }
+ | '(' ident_list ')' { $$= $2; };
ident_list:
{ Select->expr_list.push_front(new List<Item>); }
ident_list2
- { $$= Select->expr_list.pop(); }
+ { $$= Select->expr_list.pop(); };
ident_list2:
simple_ident { Select->expr_list.head()->push_back($1); }
- | ident_list2 ',' simple_ident { Select->expr_list.head()->push_back($3); }
+ | ident_list2 ',' simple_ident { Select->expr_list.head()->push_back($3); };
opt_expr:
/* empty */ { $$= NULL; }
- | expr { $$= $1; }
+ | expr { $$= $1; };
opt_else:
/* empty */ { $$= NULL; }
- | ELSE expr { $$= $2; }
+ | ELSE expr { $$= $2; };
when_list:
{ Select->when_list.push_front(new List<Item>); }
when_list2
- { $$= Select->when_list.pop(); }
+ { $$= Select->when_list.pop(); };
when_list2:
expr THEN_SYM expr
@@ -2120,11 +2123,11 @@ when_list2:
SELECT_LEX *sel=Select;
sel->when_list.head()->push_back($3);
sel->when_list.head()->push_back($5);
- }
+ };
opt_pad:
/* empty */ { $$=new Item_string(" ",1,default_charset_info); }
- | expr { $$=$1; }
+ | expr { $$=$1; };
join_table_list:
'(' join_table_list ')' { $$=$2; }
@@ -2166,12 +2169,12 @@ join_table_list:
| join_table_list NATURAL RIGHT opt_outer JOIN_SYM join_table
{ add_join_natural($6,$1); $1->outer_join|=JOIN_TYPE_RIGHT; $$=$1; }
| join_table_list NATURAL JOIN_SYM join_table
- { add_join_natural($1,$4); $$=$4; }
+ { add_join_natural($1,$4); $$=$4; };
normal_join:
',' {}
| JOIN_SYM {}
- | CROSS JOIN_SYM {}
+ | CROSS JOIN_SYM {};
join_table:
{
@@ -2187,14 +2190,14 @@ join_table:
| '{' ident join_table LEFT OUTER JOIN_SYM join_table ON expr '}'
{ add_join_on($7,$9); $7->outer_join|=JOIN_TYPE_LEFT; $$=$7; }
| '(' SELECT_SYM select_part3 ')' opt_table_alias
- {
- LEX *lex=Lex;
- SELECT_LEX *select_to_execute= lex->select;
- lex->select=lex->select->prev;
- if (!($$=add_table_to_list(new Table_ident(select_to_execute),
- $5,0,TL_UNLOCK)))
- YYABORT;
- }
+ {
+ LEX *lex=Lex;
+ SELECT_LEX *select_to_execute= lex->select;
+ lex->select=lex->select->prev;
+ if (!($$=add_table_to_list(new Table_ident(select_to_execute),
+ $5,0,TL_UNLOCK)))
+ YYABORT;
+ };
select_part3:
{
@@ -2215,7 +2218,7 @@ select_intoto:
opt_outer:
/* empty */ {}
- | OUTER {}
+ | OUTER {};
opt_key_definition:
/* empty */ {}
@@ -2230,11 +2233,11 @@ opt_key_definition:
SELECT_LEX *sel=Select;
sel->ignore_index= *$2;
sel->ignore_index_ptr= &sel->ignore_index;
- }
+ };
key_usage_list:
key_or_index { Select->interval_list.empty(); } '(' key_usage_list2 ')'
- { $$= &Select->interval_list; }
+ { $$= &Select->interval_list; };
key_usage_list2:
key_usage_list2 ',' ident
@@ -2242,7 +2245,7 @@ key_usage_list2:
| ident
{ Select->interval_list.push_back(new String((const char*) $1.str,$1.length,default_charset_info)); }
| PRIMARY_SYM
- { Select->interval_list.push_back(new String("PRIMARY",7,default_charset_info)); }
+ { Select->interval_list.push_back(new String("PRIMARY",7,default_charset_info)); };
using_list:
ident
@@ -2256,7 +2259,7 @@ using_list:
SELECT_LEX *sel=Select;
if (!($$= new Item_cond_and(new Item_func_eq(new Item_field(sel->db1,sel->table1,$3.str), new Item_field(sel->db2,sel->table2,$3.str)), $1)))
YYABORT;
- }
+ };
interval:
DAY_HOUR_SYM { $$=INTERVAL_DAY_HOUR; }
@@ -2271,22 +2274,22 @@ interval:
| MONTH_SYM { $$=INTERVAL_MONTH; }
| SECOND_SYM { $$=INTERVAL_SECOND; }
| YEAR_MONTH_SYM { $$=INTERVAL_YEAR_MONTH; }
- | YEAR_SYM { $$=INTERVAL_YEAR; }
+ | YEAR_SYM { $$=INTERVAL_YEAR; };
table_alias:
/* empty */
| AS
- | EQ
+ | EQ;
opt_table_alias:
/* empty */ { $$=0; }
| table_alias ident
- { $$= (LEX_STRING*) sql_memdup(&$2,sizeof(LEX_STRING)); }
+ { $$= (LEX_STRING*) sql_memdup(&$2,sizeof(LEX_STRING)); };
where_clause:
/* empty */ { Select->where= 0; }
- | WHERE expr { Select->where= $2; }
+ | WHERE expr { Select->where= $2; };
having_clause:
/* empty */
@@ -2294,11 +2297,11 @@ having_clause:
{
SELECT_LEX *sel=Select;
sel->having= $3; sel->create_refs=0;
- }
+ };
opt_escape:
ESCAPE_SYM TEXT_STRING { $$= $2.str; }
- | /* empty */ { $$= (char*) "\\"; }
+ | /* empty */ { $$= (char*) "\\"; };
/*
@@ -2307,13 +2310,13 @@ opt_escape:
group_clause:
/* empty */
- | GROUP BY group_list
+ | GROUP BY group_list;
group_list:
group_list ',' order_ident order_dir
{ if (add_group_to_list($3,(bool) $4)) YYABORT; }
| order_ident order_dir
- { if (add_group_to_list($1,(bool) $2)) YYABORT; }
+ { if (add_group_to_list($1,(bool) $2)) YYABORT; };
/*
Order by statement in select
@@ -2321,7 +2324,7 @@ group_list:
opt_order_clause:
/* empty */
- | order_clause
+ | order_clause;
order_clause:
ORDER_SYM BY
@@ -2330,18 +2333,18 @@ order_clause:
if (lex->sql_command == SQLCOM_MULTI_UPDATE)
YYABORT;
lex->select->sort_default=1;
- } order_list
+ } order_list;
order_list:
order_list ',' order_ident order_dir
{ if (add_order_to_list($3,(bool) $4)) YYABORT; }
| order_ident order_dir
- { if (add_order_to_list($1,(bool) $2)) YYABORT; }
+ { if (add_order_to_list($1,(bool) $2)) YYABORT; };
order_dir:
/* empty */ { $$ = 1; }
| ASC { $$ =1; }
- | DESC { $$ =0; }
+ | DESC { $$ =0; };
limit_clause:
@@ -2356,7 +2359,7 @@ limit_clause:
{
SELECT_LEX *sel=Select;
sel->select_limit= $4; sel->offset_limit=$2;
- }
+ };
delete_limit_clause:
/* empty */
@@ -2367,20 +2370,20 @@ delete_limit_clause:
lex->select->select_limit= HA_POS_ERROR;
}
| LIMIT ulonglong_num
- { Select->select_limit= (ha_rows) $2; }
+ { Select->select_limit= (ha_rows) $2; };
ULONG_NUM:
NUM { $$= strtoul($1.str,NULL,10); }
| ULONGLONG_NUM { $$= (ulong) strtoull($1.str,NULL,10); }
| REAL_NUM { $$= strtoul($1.str,NULL,10); }
- | FLOAT_NUM { $$= strtoul($1.str,NULL,10); }
+ | FLOAT_NUM { $$= strtoul($1.str,NULL,10); };
ulonglong_num:
NUM { $$= (ulonglong) strtoul($1.str,NULL,10); }
| ULONGLONG_NUM { $$= strtoull($1.str,NULL,10); }
| LONG_NUM { $$= (ulonglong) strtoul($1.str,NULL,10); }
| REAL_NUM { $$= strtoull($1.str,NULL,10); }
- | FLOAT_NUM { $$= strtoull($1.str,NULL,10); }
+ | FLOAT_NUM { $$= strtoull($1.str,NULL,10); };
procedure_clause:
/* empty */
@@ -2394,16 +2397,16 @@ procedure_clause:
YYABORT;
current_thd->safe_to_cache_query=0;
}
- '(' procedure_list ')'
+ '(' procedure_list ')';
procedure_list:
/* empty */ {}
- | procedure_list2 {}
+ | procedure_list2 {};
procedure_list2:
procedure_list2 ',' procedure_item
- | procedure_item
+ | procedure_item;
procedure_item:
remember_name expr
@@ -2412,7 +2415,7 @@ procedure_item:
YYABORT;
if (!$2->name)
$2->set_name($1,(uint) ((char*) Lex->tok_end - $1));
- }
+ };
opt_into:
INTO OUTFILE TEXT_STRING
@@ -2425,7 +2428,7 @@ opt_into:
{
if (!(Lex->exchange= new sql_exchange($3.str,1)))
YYABORT;
- }
+ };
/*
DO statement
@@ -2438,7 +2441,7 @@ do: DO_SYM
if (!(lex->insert_list = new List_item))
YYABORT;
}
- values
+ values;
/*
Drop : delete tables or index
*/
@@ -2472,27 +2475,27 @@ drop:
LEX *lex=Lex;
lex->sql_command = SQLCOM_DROP_FUNCTION;
lex->udf.name=$3.str;
- }
+ };
table_list:
table_name
- | table_list ',' table_name
+ | table_list ',' table_name;
table_name:
table_ident
- { if (!add_table_to_list($1,NULL,1)) YYABORT; }
+ { if (!add_table_to_list($1,NULL,1)) YYABORT; };
if_exists:
/* empty */ { $$=0; }
- | IF EXISTS { $$= 1; }
+ | IF EXISTS { $$= 1; };
/*
** Insert : add new data to table
*/
insert:
- INSERT { Lex->sql_command = SQLCOM_INSERT; } insert_lock_option opt_ignore insert2 insert_field_spec
+ INSERT { Lex->sql_command = SQLCOM_INSERT; } insert_lock_option opt_ignore insert2 insert_field_spec;
replace:
REPLACE
@@ -2501,21 +2504,21 @@ replace:
lex->sql_command = SQLCOM_REPLACE;
lex->duplicates= DUP_REPLACE;
}
- replace_lock_option insert2 insert_field_spec
+ replace_lock_option insert2 insert_field_spec;
insert_lock_option:
/* empty */ { Lex->lock_option= TL_WRITE_CONCURRENT_INSERT; }
| LOW_PRIORITY { Lex->lock_option= TL_WRITE_LOW_PRIORITY; }
| DELAYED_SYM { Lex->lock_option= TL_WRITE_DELAYED; }
- | HIGH_PRIORITY { Lex->lock_option= TL_WRITE; }
+ | HIGH_PRIORITY { Lex->lock_option= TL_WRITE; };
replace_lock_option:
opt_low_priority {}
- | DELAYED_SYM { Lex->lock_option= TL_WRITE_DELAYED; }
+ | DELAYED_SYM { Lex->lock_option= TL_WRITE_DELAYED; };
insert2:
INTO insert_table {}
- | insert_table {}
+ | insert_table {};
insert_table:
table_name
@@ -2524,7 +2527,7 @@ insert_table:
lex->field_list.empty();
lex->many_values.empty();
lex->insert_list=0;
- }
+ };
insert_field_spec:
opt_field_spec insert_values {}
@@ -2535,16 +2538,16 @@ insert_field_spec:
lex->many_values.push_back(lex->insert_list))
YYABORT;
}
- ident_eq_list
+ ident_eq_list;
opt_field_spec:
/* empty */ { }
| '(' fields ')' { }
- | '(' ')' { }
+ | '(' ')' { };
fields:
fields ',' insert_ident { Lex->field_list.push_back($3); }
- | insert_ident { Lex->field_list.push_back($1); }
+ | insert_ident { Lex->field_list.push_back($1); };
insert_values:
VALUES values_list {}
@@ -2556,16 +2559,17 @@ insert_values:
lex->lock_option= (using_update_log) ? TL_READ_NO_INSERT : TL_READ;
mysql_init_select(lex);
}
- select_options select_item_list select_from select_lock_type union {}
+ select_options select_item_list select_from select_lock_type
+ union {};
values_list:
values_list ',' no_braces
- | no_braces
+ | no_braces;
ident_eq_list:
ident_eq_list ',' ident_eq_value
|
- ident_eq_value
+ ident_eq_value;
ident_eq_value:
simple_ident equal expr
@@ -2574,10 +2578,10 @@ ident_eq_value:
if (lex->field_list.push_back($1) ||
lex->insert_list->push_back($3))
YYABORT;
- }
+ };
equal: EQ {}
- | SET_VAR {}
+ | SET_VAR {};
no_braces:
'('
@@ -2590,11 +2594,11 @@ no_braces:
LEX *lex=Lex;
if (lex->many_values.push_back(lex->insert_list))
YYABORT;
- }
+ };
opt_values:
/* empty */ {}
- | values
+ | values;
values:
values ',' expr
@@ -2606,7 +2610,7 @@ values:
{
if (Lex->insert_list->push_back($1))
YYABORT;
- }
+ };
/* Update rows in a table */
@@ -2619,7 +2623,7 @@ update:
lex->select->order_list.first=0;
lex->select->order_list.next= (byte**) &lex->select->order_list.first;
}
- opt_low_priority opt_ignore join_table_list SET update_list where_clause opt_order_clause delete_limit_clause
+ opt_low_priority opt_ignore join_table_list SET update_list where_clause opt_order_clause delete_limit_clause;
update_list:
update_list ',' simple_ident equal expr
@@ -2631,11 +2635,11 @@ update_list:
{
if (add_item_to_list($1) || add_value_to_list($3))
YYABORT;
- }
+ };
opt_low_priority:
/* empty */ { Lex->lock_option= current_thd->update_lock_default; }
- | LOW_PRIORITY { Lex->lock_option= TL_WRITE_LOW_PRIORITY; }
+ | LOW_PRIORITY { Lex->lock_option= TL_WRITE_LOW_PRIORITY; };
/* Delete rows from a table */
@@ -2649,7 +2653,7 @@ delete:
lex->select->order_list.first=0;
lex->select->order_list.next= (byte**) &lex->select->order_list.first;
}
- opt_delete_options single_multi {}
+ opt_delete_options single_multi {};
single_multi:
FROM table_name where_clause opt_order_clause delete_limit_clause {}
@@ -2658,11 +2662,11 @@ single_multi:
FROM join_table_list where_clause
| FROM table_wild_list
{ mysql_init_multi_delete(Lex); }
- USING join_table_list where_clause
+ USING join_table_list where_clause;
table_wild_list:
table_wild_one {}
- | table_wild_list ',' table_wild_one {}
+ | table_wild_list ',' table_wild_one {};
table_wild_one:
ident opt_wild
@@ -2674,20 +2678,20 @@ table_wild_one:
{
if (!add_table_to_list(new Table_ident($1,$3,0),NULL,1,TL_WRITE))
YYABORT;
- }
+ };
opt_wild:
/* empty */ {}
- | '.' '*' {}
+ | '.' '*' {};
opt_delete_options:
/* empty */ {}
- | opt_delete_option opt_delete_options {}
+ | opt_delete_option opt_delete_options {};
opt_delete_option:
QUICK { Select->options|= OPTION_QUICK; }
- | LOW_PRIORITY { Lex->lock_option= TL_WRITE_LOW_PRIORITY; }
+ | LOW_PRIORITY { Lex->lock_option= TL_WRITE_LOW_PRIORITY; };
truncate:
TRUNCATE_SYM opt_table_sym table_name
@@ -2698,15 +2702,15 @@ truncate:
lex->select->order_list.elements=0;
lex->select->order_list.first=0;
lex->select->order_list.next= (byte**) &lex->select->order_list.first;
- lex->lock_option= current_thd->update_lock_default; }
+ lex->lock_option= current_thd->update_lock_default; };
opt_table_sym:
/* empty */
- | TABLE_SYM
+ | TABLE_SYM;
/* Show things */
-show: SHOW { Lex->wild=0;} show_param
+show: SHOW { Lex->wild=0;} show_param;
show_param:
DATABASES wild
@@ -2800,31 +2804,31 @@ show_param:
| SLAVE STATUS_SYM
{
Lex->sql_command = SQLCOM_SHOW_SLAVE_STAT;
- }
+ };
opt_db:
/* empty */ { $$= 0; }
- | from_or_in ident { $$= $2.str; }
+ | from_or_in ident { $$= $2.str; };
wild:
/* empty */
- | LIKE text_string { Lex->wild= $2; }
+ | LIKE text_string { Lex->wild= $2; };
opt_full:
/* empty */ { Lex->verbose=0; }
- | FULL { Lex->verbose=1; }
+ | FULL { Lex->verbose=1; };
from_or_in:
FROM
- | IN_SYM
+ | IN_SYM;
binlog_in:
/* empty */ { Lex->mi.log_file_name = 0; }
- | IN_SYM TEXT_STRING { Lex->mi.log_file_name = $2.str; }
+ | IN_SYM TEXT_STRING { Lex->mi.log_file_name = $2.str; };
binlog_from:
/* empty */ { Lex->mi.pos = 4; /* skip magic number */ }
- | FROM ulonglong_num { Lex->mi.pos = $2; }
+ | FROM ulonglong_num { Lex->mi.pos = $2; };
/* A Oracle compatible synonym for show */
@@ -2839,17 +2843,19 @@ describe:
YYABORT;
}
opt_describe_column
- | describe_command select { Lex->select_lex.options|= SELECT_DESCRIBE; }
+ | describe_command select
+ { Lex->select_lex.options|= SELECT_DESCRIBE; };
describe_command:
DESC
- | DESCRIBE
+ | DESCRIBE;
opt_describe_column:
/* empty */ {}
| text_string { Lex->wild= $1; }
- | ident { Lex->wild= new String((const char*) $1.str,$1.length,default_charset_info); }
+ | ident
+ { Lex->wild= new String((const char*) $1.str,$1.length,default_charset_info); };
/* flush things */
@@ -2860,11 +2866,11 @@ flush:
LEX *lex=Lex;
lex->sql_command= SQLCOM_FLUSH; lex->type=0;
}
- flush_options
+ flush_options;
flush_options:
flush_options ',' flush_option
- | flush_option
+ | flush_option;
flush_option:
table_or_tables { Lex->type|= REFRESH_TABLES; } opt_table_list
@@ -2876,26 +2882,26 @@ flush_option:
| STATUS_SYM { Lex->type|= REFRESH_STATUS; }
| SLAVE { Lex->type|= REFRESH_SLAVE; }
| MASTER_SYM { Lex->type|= REFRESH_MASTER; }
- | DES_KEY_FILE { Lex->type|= REFRESH_DES_KEY_FILE; }
+ | DES_KEY_FILE { Lex->type|= REFRESH_DES_KEY_FILE; };
opt_table_list:
/* empty */ {}
- | table_list {}
+ | table_list {};
reset:
RESET_SYM
{
LEX *lex=Lex;
lex->sql_command= SQLCOM_RESET; lex->type=0;
- } reset_options
+ } reset_options;
reset_options:
reset_options ',' reset_option
- | reset_option
+ | reset_option;
reset_option:
SLAVE { Lex->type|= REFRESH_SLAVE; }
| MASTER_SYM { Lex->type|= REFRESH_MASTER; }
- | QUERY_SYM CACHE_SYM { Lex->type|= REFRESH_QUERY_CACHE;}
+ | QUERY_SYM CACHE_SYM { Lex->type|= REFRESH_QUERY_CACHE;};
purge:
PURGE
@@ -2907,7 +2913,7 @@ purge:
MASTER_SYM LOGS_SYM TO_SYM TEXT_STRING
{
Lex->to_log = $6.str;
- }
+ } ;
/* kill threads */
@@ -2922,7 +2928,7 @@ kill:
}
lex->sql_command=SQLCOM_KILL;
lex->thread_id= (ulong) $2->val_int();
- }
+ };
/* change database */
@@ -2930,7 +2936,7 @@ use: USE_SYM ident
{
LEX *lex=Lex;
lex->sql_command=SQLCOM_CHANGE_DB; lex->select->db= $2.str;
- }
+ };
/* import, export of files */
@@ -2961,30 +2967,30 @@ load: LOAD DATA_SYM load_data_lock opt_local INFILE TEXT_STRING
LOAD DATA_SYM FROM MASTER_SYM
{
Lex->sql_command = SQLCOM_LOAD_MASTER_DATA;
- }
+ };
opt_local:
/* empty */ { $$=0;}
- | LOCAL_SYM { $$=1;}
+ | LOCAL_SYM { $$=1;};
load_data_lock:
/* empty */ { Lex->lock_option= current_thd->update_lock_default; }
| CONCURRENT { Lex->lock_option= TL_WRITE_CONCURRENT_INSERT ; }
- | LOW_PRIORITY { Lex->lock_option= TL_WRITE_LOW_PRIORITY; }
+ | LOW_PRIORITY { Lex->lock_option= TL_WRITE_LOW_PRIORITY; };
opt_duplicate:
/* empty */ { Lex->duplicates=DUP_ERROR; }
| REPLACE { Lex->duplicates=DUP_REPLACE; }
- | IGNORE_SYM { Lex->duplicates=DUP_IGNORE; }
+ | IGNORE_SYM { Lex->duplicates=DUP_IGNORE; };
opt_field_term:
/* empty */
- | COLUMNS field_term_list
+ | COLUMNS field_term_list;
field_term_list:
field_term_list field_term
- | field_term
+ | field_term;
field_term:
TERMINATED BY text_string { Lex->exchange->field_term= $3;}
@@ -2995,31 +3001,31 @@ field_term:
lex->exchange->opt_enclosed=1;
}
| ENCLOSED BY text_string { Lex->exchange->enclosed= $3;}
- | ESCAPED BY text_string { Lex->exchange->escaped= $3;}
+ | ESCAPED BY text_string { Lex->exchange->escaped= $3;};
opt_line_term:
/* empty */
- | LINES line_term_list
+ | LINES line_term_list;
line_term_list:
line_term_list line_term
- | line_term
+ | line_term;
line_term:
TERMINATED BY text_string { Lex->exchange->line_term= $3;}
- | STARTING BY text_string { Lex->exchange->line_start= $3;}
+ | STARTING BY text_string { Lex->exchange->line_start= $3;};
opt_ignore_lines:
/* empty */
| IGNORE_SYM NUM LINES
- { Lex->exchange->skip_lines=atol($2.str); }
+ { Lex->exchange->skip_lines=atol($2.str); };
/* Common definitions */
text_literal:
TEXT_STRING { $$ = new Item_string($1.str,$1.length,default_charset_info); }
| text_literal TEXT_STRING
- { ((Item_string*) $1)->append($2.str,$2.length); }
+ { ((Item_string*) $1)->append($2.str,$2.length); };
text_string:
TEXT_STRING { $$= new String($1.str,$1.length,default_charset_info); }
@@ -3027,7 +3033,7 @@ text_string:
{
Item *tmp = new Item_varbinary($1.str,$1.length,default_charset_info);
$$= tmp ? tmp->val_str((String*) 0) : (String*) 0;
- }
+ };
literal:
text_literal { $$ = $1; }
@@ -3041,7 +3047,7 @@ literal:
| HEX_NUM { $$ = new Item_varbinary($1.str,$1.length,default_charset_info);}
| DATE_SYM text_literal { $$ = $2; }
| TIME_SYM text_literal { $$ = $2; }
- | TIMESTAMP text_literal { $$ = $2; }
+ | TIMESTAMP text_literal { $$ = $2; };
/**********************************************************************
** Createing different items.
@@ -3049,15 +3055,16 @@ literal:
insert_ident:
simple_ident { $$=$1; }
- | table_wild { $$=$1; }
+ | table_wild { $$=$1; };
table_wild:
ident '.' '*' { $$ = new Item_field(NullS,$1.str,"*"); }
| ident '.' ident '.' '*'
- { $$ = new Item_field((current_thd->client_capabilities & CLIENT_NO_SCHEMA ? NullS : $1.str),$3.str,"*"); }
+ { $$ = new Item_field((current_thd->client_capabilities &
+ CLIENT_NO_SCHEMA ? NullS : $1.str),$3.str,"*"); };
order_ident:
- expr { $$=$1; }
+ expr { $$=$1; };
simple_ident:
ident
@@ -3079,18 +3086,19 @@ simple_ident:
{
SELECT_LEX *sel=Select;
$$ = !sel->create_refs || sel->in_sum_expr > 0 ? (Item*) new Item_field((current_thd->client_capabilities & CLIENT_NO_SCHEMA ? NullS :$1.str),$3.str,$5.str) : (Item*) new Item_ref((current_thd->client_capabilities & CLIENT_NO_SCHEMA ? NullS :$1.str),$3.str,$5.str);
- }
+ };
field_ident:
ident { $$=$1;}
| ident '.' ident { $$=$3;} /* Skipp schema name in create*/
- | '.' ident { $$=$2;} /* For Delphi */
+ | '.' ident { $$=$2;} /* For Delphi */;
table_ident:
ident { $$=new Table_ident($1); }
| ident '.' ident { $$=new Table_ident($1,$3,0);}
- | '.' ident { $$=new Table_ident($2);} /* For Delphi */
+ | '.' ident { $$=new Table_ident($2);}
+ /* For Delphi */;
ident:
IDENT { $$=$1; }
@@ -3101,12 +3109,12 @@ ident:
$$.length=$1.length;
if ((lex=Lex)->next_state != STATE_END)
lex->next_state=STATE_OPERATOR_OR_IDENT;
- }
+ };
ident_or_text:
ident { $$=$1;}
| TEXT_STRING { $$=$1;}
- | LEX_HOSTNAME { $$=$1;}
+ | LEX_HOSTNAME { $$=$1;};
user:
ident_or_text
@@ -3120,7 +3128,7 @@ user:
if (!($$=(LEX_USER*) sql_alloc(sizeof(st_lex_user))))
YYABORT;
$$->user = $1; $$->host=$3;
- }
+ };
/* Keyword that we allow for identifiers */
@@ -3203,7 +3211,9 @@ keyword:
| MASTER_USER_SYM {}
| MASTER_PASSWORD_SYM {}
| MASTER_CONNECT_RETRY_SYM {}
+ | MAX_CONNECTIONS_PER_HOUR {}
| MAX_QUERIES_PER_HOUR {}
+ | MAX_UPDATES_PER_HOUR {}
| MEDIUM_SYM {}
| MERGE_SYM {}
| MINUTE_SYM {}
@@ -3238,6 +3248,7 @@ keyword:
| REPAIR {}
| REPEATABLE_SYM {}
| RESET_SYM {}
+ | RESOURCES {}
| RESTORE_SYM {}
| ROLLBACK_SYM {}
| ROWS_SYM {}
@@ -3272,7 +3283,7 @@ keyword:
| USE_FRM {}
| VARIABLES {}
| WORK_SYM {}
- | YEAR_SYM {}
+ | YEAR_SYM {};
/* Option functions */
@@ -3287,17 +3298,17 @@ set:
lex->option_type=0;
lex->option_list.empty();
}
- option_value_list
+ option_value_list;
opt_option:
/* empty */ {}
- | OPTION {}
+ | OPTION {};
option_value_list:
option_value
| GLOBAL_SYM { Lex->option_type=1; } option_value
| LOCAL_SYM { Lex->option_type=0; } option_value
- | option_value_list ',' option_value
+ | option_value_list ',' option_value;
option_value:
set_option equal NUM
@@ -3423,13 +3434,13 @@ option_value:
push_back(new Set_option(thd->lex.option_type,
$1.str,$1.length,
item));
- }
+ };
query_cache_type:
NUM { current_thd->query_cache_type = set_zone(atoi($1.str),0,3); }
| OFF { current_thd->query_cache_type = 0; }
| ON { current_thd->query_cache_type = 1; }
- | DEMAND_SYM { current_thd->query_cache_type = 2; }
+ | DEMAND_SYM { current_thd->query_cache_type = 2; };
text_or_password:
TEXT_STRING { $$=$1.str;}
@@ -3443,7 +3454,7 @@ text_or_password:
make_scrambled_password(buff,$3.str);
$$=buff;
}
- }
+ };
set_option:
SQL_BIG_TABLES { $$= OPTION_BIG_TABLES; }
@@ -3466,7 +3477,7 @@ set_option:
| SQL_AUTO_IS_NULL { $$= OPTION_AUTO_IS_NULL; }
| SQL_SAFE_UPDATES { $$= OPTION_SAFE_UPDATES; }
| SQL_BUFFER_RESULT { $$= OPTION_BUFFER_RESULT; }
- | SQL_QUOTE_SHOW_CREATE { $$= OPTION_QUOTE_SHOW_CREATE; }
+ | SQL_QUOTE_SHOW_CREATE { $$= OPTION_QUOTE_SHOW_CREATE; };
set_isolation:
@@ -3483,16 +3494,16 @@ set_isolation:
lex->thd->session_tx_isolation= lex->tx_isolation= $2;
}
| tx_isolation
- { Lex->tx_isolation= $1; }
+ { Lex->tx_isolation= $1; };
tx_isolation:
- TRANSACTION_SYM ISOLATION LEVEL_SYM isolation_types { $$=$4; }
+ TRANSACTION_SYM ISOLATION LEVEL_SYM isolation_types { $$=$4; };
isolation_types:
READ_SYM UNCOMMITTED_SYM { $$= ISO_READ_UNCOMMITTED; }
| READ_SYM COMMITTED_SYM { $$= ISO_READ_COMMITTED; }
| REPEATABLE_SYM READ_SYM { $$= ISO_REPEATABLE_READ; }
- | SERIALIZABLE_SYM { $$= ISO_SERIALIZABLE; }
+ | SERIALIZABLE_SYM { $$= ISO_SERIALIZABLE; };
/* Lock function */
@@ -3501,28 +3512,28 @@ lock:
{
Lex->sql_command=SQLCOM_LOCK_TABLES;
}
- table_lock_list
+ table_lock_list;
table_or_tables:
TABLE_SYM
- | TABLES
+ | TABLES;
table_lock_list:
table_lock
- | table_lock_list ',' table_lock
+ | table_lock_list ',' table_lock;
table_lock:
table_ident opt_table_alias lock_option
- { if (!add_table_to_list($1,$2,0,(thr_lock_type) $3)) YYABORT; }
+ { if (!add_table_to_list($1,$2,0,(thr_lock_type) $3)) YYABORT; };
lock_option:
READ_SYM { $$=TL_READ_NO_INSERT; }
| WRITE_SYM { $$=current_thd->update_lock_default; }
| LOW_PRIORITY WRITE_SYM { $$=TL_WRITE_LOW_PRIORITY; }
- | READ_SYM LOCAL_SYM { $$= TL_READ; }
+ | READ_SYM LOCAL_SYM { $$= TL_READ; };
unlock:
- UNLOCK_SYM table_or_tables { Lex->sql_command=SQLCOM_UNLOCK_TABLES; }
+ UNLOCK_SYM table_or_tables { Lex->sql_command=SQLCOM_UNLOCK_TABLES; };
/*
@@ -3552,15 +3563,15 @@ handler:
if (!add_table_to_list($2,0,0))
YYABORT;
}
- handler_read_or_scan where_clause limit_clause { }
+ handler_read_or_scan where_clause limit_clause { };
handler_read_or_scan:
handler_scan_function { Lex->backup_dir= 0; }
- | ident handler_rkey_function { Lex->backup_dir= $1.str; }
+ | ident handler_rkey_function { Lex->backup_dir= $1.str; };
handler_scan_function:
FIRST_SYM { Lex->ha_read_mode = RFIRST; }
- | NEXT_SYM { Lex->ha_read_mode = RNEXT; }
+ | NEXT_SYM { Lex->ha_read_mode = RNEXT; };
handler_rkey_function:
FIRST_SYM { Lex->ha_read_mode = RFIRST; }
@@ -3574,14 +3585,14 @@ handler_rkey_function:
lex->ha_rkey_mode=$1;
if (!(lex->insert_list = new List_item))
YYABORT;
- } '(' values ')' { }
+ } '(' values ')' { };
handler_rkey_mode:
EQ { $$=HA_READ_KEY_EXACT; }
| GE { $$=HA_READ_KEY_OR_NEXT; }
| LE { $$=HA_READ_KEY_OR_PREV; }
| GT_SYM { $$=HA_READ_AFTER_KEY; }
- | LT { $$=HA_READ_BEFORE_KEY; }
+ | LT { $$=HA_READ_BEFORE_KEY; };
/* GRANT / REVOKE */
@@ -3595,7 +3606,7 @@ revoke:
lex->grant= lex->grant_tot_col=0;
lex->select->db=0;
}
- grant_privileges ON opt_table FROM user_list
+ grant_privileges ON opt_table FROM user_list;
grant:
GRANT
@@ -3608,19 +3619,19 @@ grant:
lex->select->db=0;
lex->ssl_type=SSL_TYPE_NONE;
lex->ssl_cipher=lex->x509_subject=lex->x509_issuer=0;
- lex->mqh=0;
+ bzero(&(lex->mqh),sizeof(lex->mqh));
}
grant_privileges ON opt_table TO_SYM user_list
- require_clause grant_options
+ require_clause grant_options;
grant_privileges:
grant_privilege_list {}
| ALL PRIVILEGES { Lex->grant = UINT_MAX;}
- | ALL { Lex->grant = UINT_MAX;}
+ | ALL { Lex->grant = UINT_MAX;};
grant_privilege_list:
grant_privilege
- | grant_privilege_list ',' grant_privilege
+ | grant_privilege_list ',' grant_privilege;
grant_privilege:
SELECT_SYM
@@ -3643,10 +3654,10 @@ grant_privilege:
| SHUTDOWN { Lex->grant |= SHUTDOWN_ACL;}
| PROCESS { Lex->grant |= PROCESS_ACL;}
| FILE_SYM { Lex->grant |= FILE_ACL;}
- | GRANT OPTION { Lex->grant |= GRANT_ACL;}
+ | GRANT OPTION { Lex->grant |= GRANT_ACL;};
require_list: require_list_element AND require_list
-| require_list_element
+| require_list_element ;
require_list_element: SUBJECT_SYM TEXT_STRING
{
@@ -3673,11 +3684,11 @@ require_list_element: SUBJECT_SYM TEXT_STRING
LEX *lex=Lex;
if (lex->ssl_cipher)
{
- net_printf(&lex->thd->net,ER_DUP_ARGUMENT, "CHIPER");
+ net_printf(&lex->thd->net,ER_DUP_ARGUMENT, "CIPHER");
YYABORT;
}
lex->ssl_cipher=$2.str;
- }
+ };
opt_table:
'*'
@@ -3723,12 +3734,12 @@ opt_table:
YYABORT;
if (lex->grant == UINT_MAX)
lex->grant = TABLE_ACLS & ~GRANT_ACL;
- }
+ };
user_list:
grant_user { if (Lex->users_list.push_back($1)) YYABORT;}
- | user_list ',' grant_user { if (Lex->users_list.push_back($3)) YYABORT;}
+ | user_list ',' grant_user { if (Lex->users_list.push_back($3)) YYABORT;};
grant_user:
@@ -3749,7 +3760,7 @@ grant_user:
| user IDENTIFIED_SYM BY PASSWORD TEXT_STRING
{ $$=$1; $1->password=$5 ; }
| user
- { $$=$1; $1->password.str=NullS; }
+ { $$=$1; $1->password.str=NullS; };
opt_column_list:
@@ -3758,11 +3769,11 @@ opt_column_list:
LEX *lex=Lex;
lex->grant |= lex->which_columns;
}
- | '(' column_list ')'
+ | '(' column_list ')';
column_list:
column_list ',' column_list_id
- | column_list_id
+ | column_list_id;
column_list_id:
ident
@@ -3782,7 +3793,7 @@ column_list_id:
point->rights |= lex->which_columns;
else
lex->columns.push_back(new LEX_COLUMN (*new_str,lex->which_columns));
- }
+ };
require_clause: /* empty */
@@ -3797,35 +3808,43 @@ require_clause: /* empty */
| REQUIRE_SYM X509_SYM
{
Lex->ssl_type=SSL_TYPE_X509;
- }
+ };
grant_options:
/* empty */ {}
- | WITH grant_option_list
+ | WITH grant_option_list;
grant_option_list:
grant_option_list grant_option {}
- | grant_option {}
+ | grant_option {};
grant_option:
GRANT OPTION { Lex->grant |= GRANT_ACL;}
- | MAX_QUERIES_PER_HOUR EQ NUM
+ | MAX_QUERIES_PER_HOUR EQ ULONG_NUM
+ {
+ Lex->mqh.questions=$3;
+ }
+ | MAX_UPDATES_PER_HOUR EQ ULONG_NUM
+ {
+ Lex->mqh.updates=$3;
+ }
+ | MAX_CONNECTIONS_PER_HOUR EQ ULONG_NUM
{
- Lex->mqh=atoi($3.str);
+ Lex->mqh.connections=$3;
}
begin:
- BEGIN_SYM { Lex->sql_command = SQLCOM_BEGIN;} opt_work
+ BEGIN_SYM { Lex->sql_command = SQLCOM_BEGIN;} opt_work;
opt_work:
/* empty */ {}
- | WORK_SYM {}
+ | WORK_SYM {};
commit:
- COMMIT_SYM { Lex->sql_command = SQLCOM_COMMIT;}
+ COMMIT_SYM { Lex->sql_command = SQLCOM_COMMIT;};
rollback:
- ROLLBACK_SYM { Lex->sql_command = SQLCOM_ROLLBACK;}
+ ROLLBACK_SYM { Lex->sql_command = SQLCOM_ROLLBACK;};
/*
@@ -3835,7 +3854,7 @@ rollback:
union:
/* empty */ {}
- | union_list
+ | union_list;
union_list:
UNION_SYM union_option
@@ -3851,14 +3870,14 @@ union_list:
YYABORT;
lex->select->linkage=UNION_TYPE;
}
- select_init
+ select_init;
union_opt:
union {}
- | optional_order_or_limit {}
+ | optional_order_or_limit {};
optional_order_or_limit:
- /* emty */ {}
+ /* empty */ {}
|
{
LEX *lex=Lex;
@@ -3868,8 +3887,10 @@ optional_order_or_limit:
lex->select->linkage=NOT_A_SELECT;
lex->select->select_limit=lex->thd->default_select_limit;
}
- opt_order_clause limit_clause
+ opt_order_clause limit_clause;
union_option:
/* empty */ {}
- | ALL {Lex->union_option=1;}
+ | ALL {Lex->union_option=1;};
+
+
diff --git a/sql/structs.h b/sql/structs.h
index 2250ea784f2..75280b34715 100644
--- a/sql/structs.h
+++ b/sql/structs.h
@@ -162,13 +162,16 @@ typedef struct st_lex_user {
} LEX_USER;
+typedef struct user_resources {
+ uint questions, updates, connections;
+} USER_RESOURCES;
+
typedef struct user_conn {
- char *user;
- uint len, connections, questions, max_questions;
+ char *user, *host;
+ uint len, connections, conn_per_hour, updates, questions, user_len;
+ USER_RESOURCES user_resources;
time_t intime;
-} UC;
-
-
+} USER_CONN;
/* Bits in form->update */
#define REG_MAKE_DUPP 1 /* Make a copy of record when read */
#define REG_NEW_RECORD 2 /* Write a new record if not found */
diff --git a/sql/uniques.cc b/sql/uniques.cc
index 6b05618bcc7..3a26f610dc5 100644
--- a/sql/uniques.cc
+++ b/sql/uniques.cc
@@ -55,7 +55,7 @@ Unique::Unique(qsort_cmp2 comp_func, void * comp_func_fixed_arg,
my_b_clear(&file);
init_tree(&tree, max_in_memory_size / 16, 0, size, comp_func, 0, NULL, comp_func_fixed_arg);
/* If the following fail's the next add will also fail */
- init_dynamic_array(&file_ptrs, sizeof(BUFFPEK), 16, 16);
+ my_init_dynamic_array(&file_ptrs, sizeof(BUFFPEK), 16, 16);
max_elements= max_in_memory_size / ALIGN_SIZE(sizeof(TREE_ELEMENT)+size);
open_cached_file(&file, mysql_tmpdir,TEMP_PREFIX, DISK_BUFFER_SIZE,
MYF(MY_WME));
diff --git a/sql/unireg.h b/sql/unireg.h
index c4d2052d1da..5a61f4a6c12 100644
--- a/sql/unireg.h
+++ b/sql/unireg.h
@@ -122,6 +122,13 @@ bfill((A)->null_flags,(A)->null_bytes,255);\
#define TE_INFO_LENGTH 3
#define MTYP_NOEMPTY_BIT 128
+/*
+ * Minimum length pattern before Turbo Boyer-Moore is used
+ * for SELECT "text" LIKE "%pattern%", excluding the two
+ * wildcards in class Item_func_like.
+ */
+#define MIN_TURBOBM_PATTERN_LEN 3
+
/* Include prototypes for unireg */
#include "mysqld_error.h"
diff --git a/strings/Makefile.am b/strings/Makefile.am
index 34f7b85c1e8..58486f6e524 100644
--- a/strings/Makefile.am
+++ b/strings/Makefile.am
@@ -44,7 +44,8 @@ noinst_PROGRAMS = conf_to_src
EXTRA_DIST = ctype-big5.c ctype-czech.c ctype-euc_kr.c ctype-win1250ch.c \
ctype-gb2312.c ctype-gbk.c ctype-sjis.c ctype-utf8.c \
ctype-tis620.c ctype-ujis.c ctype-latin1_de.c \
- strto.c strings-x86.s longlong2str-x86.s \
+ strto.c strings-x86.s \
+ longlong2str.c longlong2str-x86.s \
strxmov.c bmove_upp.c strappend.c strcont.c strend.c \
strfill.c strcend.c is_prefix.c strstr.c strinstr.c \
strmake.c strnmov.c strmov.c strnlen.c \
diff --git a/strings/bfill.c b/strings/bfill.c
index e0e22a7023e..85d21483b41 100644
--- a/strings/bfill.c
+++ b/strings/bfill.c
@@ -1,18 +1,19 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
+/* Copyright (C) 2002 MySQL AB
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ MA 02111-1307, USA */
/* File : bfill.c
Author : Richard A. O'Keefe.
diff --git a/strings/bmove.c b/strings/bmove.c
index 3a76e783dda..09fe067adcd 100644
--- a/strings/bmove.c
+++ b/strings/bmove.c
@@ -1,18 +1,19 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
+/* Copyright (C) 2002 MySQL AB
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ MA 02111-1307, USA */
/* File : bmove.c
Author : Richard A. O'Keefe.
diff --git a/strings/ctype-ujis.c b/strings/ctype-ujis.c
index 37edec4a2e5..d8de08fb117 100644
--- a/strings/ctype-ujis.c
+++ b/strings/ctype-ujis.c
@@ -1,18 +1,19 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
+/* Copyright (C) 2002 MySQL AB & tommy@valley.ne.jp.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ MA 02111-1307, USA */
/* This file is for Japanese EUC charset, and created by tommy@valley.ne.jp.
*/
diff --git a/strings/strend.c b/strings/strend.c
index d21abc79e2b..0e9c0333fc8 100644
--- a/strings/strend.c
+++ b/strings/strend.c
@@ -1,18 +1,19 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
+/* Copyright (C) 2002 MySQL AB
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ MA 02111-1307, USA */
/* File : strend.c
Author : Richard A. O'Keefe.
diff --git a/strings/strstr.c b/strings/strstr.c
index 66e9358b493..ca845568ddb 100644
--- a/strings/strstr.c
+++ b/strings/strstr.c
@@ -1,18 +1,19 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
+/* Copyright (C) 2002 MySQL AB
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ MA 02111-1307, USA */
/* File : strstr.c
Author : Monty
diff --git a/strings/strxmov.c b/strings/strxmov.c
index d8532bac8b4..fe1e88c13d0 100644
--- a/strings/strxmov.c
+++ b/strings/strxmov.c
@@ -1,18 +1,19 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
+/* Copyright (C) 2002 MySQL AB
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ MA 02111-1307, USA */
/* File : strxmov.c
Author : Richard A. O'Keefe.
diff --git a/strings/strxnmov.c b/strings/strxnmov.c
index 5e764e49e5a..3ef0e57650c 100644
--- a/strings/strxnmov.c
+++ b/strings/strxnmov.c
@@ -1,18 +1,19 @@
-/* Copyright (C) 2000 MySQL AB
-
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
+/* Copyright (C) 2002 MySQL AB
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this library; if not, write to the Free
+ Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
+ MA 02111-1307, USA */
/* File : strxnmov.c
Author : Richard A. O'Keefe.
diff --git a/support-files/my-huge.cnf.sh b/support-files/my-huge.cnf.sh
index ce9b5b18586..88d83afb986 100644
--- a/support-files/my-huge.cnf.sh
+++ b/support-files/my-huge.cnf.sh
@@ -35,8 +35,23 @@ set-variable = thread_cache=8
# Try number of CPU's*2 for thread_concurrency
set-variable = thread_concurrency=8
set-variable = myisam_sort_buffer_size=64M
-log-bin
-server-id = 1
+
+# Replication Master Server (default)
+log-bin # required for replication
+server-id = 1 # required unique id between 1 and 2^32 - 1
+ # defaults to 1 if master-host is not set
+ # but will not function as a master if omitted
+
+# Replication Slave Server (comment out master section to use this)
+#master-host = # MUST BE SET
+#master-user = # MUST BE SET
+#master-password = # MUST BE SET
+#master-port = # optional--defaults to 3306
+#log-bin # not required for slaves, but recommended
+#server-id = 2 # required unique id between 2 and 2^32 - 1
+ # (and different from the master)
+ # defaults to 2 if master-host is set
+ # but will not function as a slave if omitted
# Point the following paths to different dedicated disks
#tmpdir = /tmp/
diff --git a/support-files/mysql.server.sh b/support-files/mysql.server.sh
index eed749bf5b2..e6a32d91e77 100644
--- a/support-files/mysql.server.sh
+++ b/support-files/mysql.server.sh
@@ -13,6 +13,18 @@
# chkconfig: 2345 90 90
# description: A very fast and reliable SQL database engine.
+# Comments to support LSB init script conventions
+### BEGIN INIT INFO
+# Provides: mysql
+# Required-Start: $local_fs $network $remote_fs
+# Required-Stop: $local_fs $network $remote_fs
+# Default-Start: 3 5
+# Default-Stop: 3 5
+# Short-Description: start and stop MySLQ
+# Description: MySQL is a very fast and reliable SQL database engine.
+### END INIT INFO
+
+
# The following variables are only set for letting mysql.server find things.
# If you want to affect other MySQL variables, you should make your changes
# in the /etc/my.cnf or other configuration files.
diff --git a/support-files/mysql.spec.sh b/support-files/mysql.spec.sh
index a6152fbde91..372c70327b9 100644
--- a/support-files/mysql.spec.sh
+++ b/support-files/mysql.spec.sh
@@ -6,7 +6,7 @@
%define see_base For a description of MySQL see the base MySQL RPM or http://www.mysql.com
Name: MySQL
-Summary: MySQL: a very fast and reliable SQL database engine
+Summary: MySQL: a very fast and reliable SQL database server
Group: Applications/Databases
Summary(pt_BR): MySQL: Um servidor SQL rápido e confiável.
Group(pt_BR): Aplicações/Banco_de_Dados
@@ -18,54 +18,32 @@ Icon: mysql.gif
URL: http://www.mysql.com/
Packager: David Axmark <david@mysql.com>
Vendor: MySQL AB
+Requires: fileutils sh-utils
Provides: msqlormysql MySQL-server mysql
Obsoletes: mysql
# Think about what you use here since the first step is to
# run a rm -rf
-BuildRoot: /var/tmp/mysql
+BuildRoot: %{_tmppath}/%{name}-%{version}-build
# From the manual
%description
-MySQL is a true multi-user, multi-threaded SQL (Structured Query
-Language) database server. MySQL is a client/server implementation
-that consists of a server daemon (mysqld) and many different client
-programs/libraries.
-
-The main goals of MySQL are speed, robustness and ease of use. MySQL
-was originally developed because we needed a SQL server that could
-handle very big databases with magnitude higher speed than what any
-database vendor could offer to us. And since we did not need all the
-features that made their server slow we made our own. We have now been
-using MySQL since 1996 in a environment with more than 40 databases,
-10,000 tables, of which more than 500 have more than 7 million
-rows. This is about 200G of data.
-
-The base upon which MySQL is built is a set of routines that have been
-used in a highly demanding production environment for many
-years. While MySQL is still in development, it already offers a rich
-and highly useful function set.
-
-See the documentation for more information.
-
-%description -l pt_BR
-O MySQL é um servidor de banco de dados SQL realmente multiusuário e\
-multi-tarefa. A linguagem SQL é a mais popular linguagem para banco de\
-dados no mundo. O MySQL é uma implementação cliente/servidor que\
-consiste de um servidor chamado mysqld e diversos\
-programas/bibliotecas clientes. Os principais objetivos do MySQL são:\
-velocidade, robustez e facilidade de uso. O MySQL foi originalmente\
-desenvolvido porque nós na Tcx precisávamos de um servidor SQL que\
-pudesse lidar com grandes bases de dados e com uma velocidade muito\
-maior do que a que qualquer vendedor podia nos oferecer. Estamos\
-usando\
-o MySQL desde 1996 em um ambiente com mais de 40 bases de dados com 10.000\
-tabelas, das quais mais de 500 têm mais de 7 milhões de linhas. Isto é o\
-equivalente a aproximadamente 50G de dados críticos. A base da construção do\
-MySQL é uma série de rotinas que foram usadas em um ambiente de produção com\
-alta demanda por muitos anos. Mesmo o MySQL estando ainda em desenvolvimento,\
-ele já oferece um conjunto de funções muito ricas e úteis. Veja a documentação\
-para maiores informações.
+The MySQL(TM) software delivers a very fast, multi-threaded, multi-user,
+and robust SQL (Structured Query Language) database server. MySQL Server
+is intended for mission-critical, heavy-load production systems as well
+as for embedding into mass-deployed software. MySQL is a trademark of
+MySQL AB.
+
+The MySQL software has Dual Licensing, which means you can use the MySQL
+software free of charge under the GNU General Public License
+(http://www.gnu.org/licenses/). You can also purchase commercial MySQL
+licenses from MySQL AB if you do not wish to be bound by the terms of
+the GPL. See the chapter "Licensing and Support" in the manual for
+further info.
+
+The MySQL web site (http://www.mysql.com/) provides the latest
+news and information about the MySQL software. Also please see the
+documentation and the manual for more information.
%package client
Release: %{release}
@@ -86,7 +64,7 @@ Este pacote contém os clientes padrão para o MySQL.
%package bench
Release: %{release}
-Requires: MySQL-client MySQL-DBI-perl-bin perl
+Requires: %{name}-client MySQL-DBI-perl-bin perl
Summary: MySQL - Benchmarks and test system
Group: Applications/Databases
Summary(pt_BR): MySQL - Medições de desempenho
@@ -104,7 +82,7 @@ Este pacote contém medições de desempenho de scripts e dados do MySQL.
%package devel
Release: %{release}
-Requires: MySQL-client
+Requires: %{name}-client
Summary: MySQL - Development header files and libraries
Group: Applications/Databases
Summary(pt_BR): MySQL - Medições de desempenho
@@ -139,21 +117,29 @@ Provides: mysql-Max
Obsoletes: mysql-Max
%description Max
-Optional MySQL server binary that supports features
-like transactional tables. To active this binary, just install this
-package after the MySQL package.
+Optional MySQL server binary that supports additional features like
+transactional tables. To activate this binary, just install this
+package in addition to the MySQL package.
%package embedded
Release: %{release}
-Requires: devel
+Requires: %{name}-devel
Summary: MySQL - embedded library
Group: Applications/Databases
Summary(pt_BR): MySQL - Medições de desempenho
Group(pt_BR): Aplicações/Banco_de_Dados
-Obsoletes: embedded
+Obsoletes: mysql-embedded
%description embedded
-This package contains the MySQL server as library.
+This package contains the MySQL server as an embedded library.
+
+The embedded MySQL server library makes it possible to run a
+full-featured MySQL server inside the client application.
+The main benefits are increased speed and more simple management
+for embedded applications.
+
+The API is identical for the embedded MySQL version and the
+client/server version.
%{see_base}
@@ -188,9 +174,9 @@ sh -c "PATH=\"${MYSQL_BUILD_PATH:-/bin:/usr/bin}\" \
--sysconfdir=/etc \
--datadir=/usr/share \
--localstatedir=/var/lib/mysql \
- --infodir=/usr/info \
+ --infodir=%{_infodir} \
--includedir=/usr/include \
- --mandir=/usr/man \
+ --mandir=%{_mandir} \
--with-embedded-server \
--enable-thread-safe-client \
--with-comment=\"Official MySQL RPM\";
@@ -217,12 +203,9 @@ fi
RBR=$RPM_BUILD_ROOT
MBD=$RPM_BUILD_DIR/mysql-%{mysql_version}
-if test -z "$RBR" -o "$RBR" = "/"
-then
- echo "RPM_BUILD_ROOT has stupid value"
- exit 1
-fi
-rm -rf $RBR
+
+# Clean up the BuildRoot first
+[ "$RBR" != "/" ] && [ -d $RBR ] && rm -rf $RBR;
mkdir -p $RBR
#
@@ -248,7 +231,7 @@ mv Docs/manual.ps Docs/manual.ps.save
make distclean
mv Docs/manual.ps.save Docs/manual.ps
-#now build and save shared libraries
+# now build and save shared libraries
BuildMySQL "--enable-shared --enable-thread-safe-client --without-server "
(cd libmysql/.libs; tar cf $RBR/shared-libs.tar *.so*)
(cd libmysql_r/.libs; tar rf $RBR/shared-libs.tar *.so*)
@@ -271,13 +254,14 @@ nm --numeric-sort sql/mysqld > sql/mysqld.sym
%install -n mysql-%{mysql_version}
RBR=$RPM_BUILD_ROOT
MBD=$RPM_BUILD_DIR/mysql-%{mysql_version}
+
# Ensure that needed directories exists
install -d $RBR/etc/{logrotate.d,rc.d/init.d}
install -d $RBR/var/lib/mysql/mysql
install -d $RBR/usr/share/sql-bench
install -d $RBR/usr/share/mysql-test
-install -d $RBR/usr/{sbin,share,man,include}
-install -d $RBR/usr/doc/MySQL-%{mysql_version}
+install -d $RBR%{_mandir}
+install -d $RBR/usr/{sbin,share,include}
install -d $RBR/usr/lib
# Make install
make install DESTDIR=$RBR benchdir_root=/usr/share/
@@ -296,18 +280,6 @@ install -m644 $MBD/sql/mysqld.sym $RBR/usr/lib/mysql/mysqld.sym
install -m644 $MBD/support-files/mysql-log-rotate $RBR/etc/logrotate.d/mysql
install -m755 $MBD/support-files/mysql.server $RBR/etc/rc.d/init.d/mysql
-# Install docs
-install -m644 $RPM_BUILD_DIR/mysql-%{mysql_version}/Docs/mysql.info \
- $RBR/usr/info/mysql.info
-for file in README COPYING COPYING.LIB Docs/manual_toc.html Docs/manual.html \
- Docs/manual.txt Docs/manual.texi Docs/manual.ps \
- support-files/my-huge.cnf support-files/my-large.cnf \
- support-files/my-medium.cnf support-files/my-small.cnf
-do
- b=`basename $file`
- install -m644 $MBD/$file $RBR/usr/doc/MySQL-%{mysql_version}/$b
-done
-
%pre
if test -x /etc/rc.d/init.d/mysql
then
@@ -375,32 +347,43 @@ fi
# database files.
%files
-%attr(-, root, root) %doc /usr/doc/MySQL-%{mysql_version}/
+%doc %attr(644, root, root) COPYING COPYING.LIB README
+%doc %attr(644, root, root) Docs/manual.{html,ps,texi,txt} Docs/manual_toc.html
+%doc %attr(644, root, root) support-files/my-*.cnf
+
+%doc %attr(644, root, root) %{_infodir}/mysql.info*
+
+%doc %attr(644, root, man) %{_mandir}/man1/isamchk.1*
+%doc %attr(644, root, man) %{_mandir}/man1/isamlog.1*
+%doc %attr(644, root, man) %{_mandir}/man1/mysql_zap.1*
+%doc %attr(644, root, man) %{_mandir}/man1/mysqld.1*
+%doc %attr(644, root, man) %{_mandir}/man1/mysqld_multi.1*
+%doc %attr(644, root, man) %{_mandir}/man1/mysqld_safe.1*
+%doc %attr(644, root, man) %{_mandir}/man1/perror.1*
+%doc %attr(644, root, man) %{_mandir}/man1/replace.1*
%attr(755, root, root) /usr/bin/isamchk
%attr(755, root, root) /usr/bin/isamlog
-%attr(755, root, root) /usr/bin/pack_isam
+%attr(755, root, root) /usr/bin/my_print_defaults
%attr(755, root, root) /usr/bin/myisamchk
%attr(755, root, root) /usr/bin/myisamlog
%attr(755, root, root) /usr/bin/myisampack
-%attr(755, root, root) /usr/bin/mysql_fix_privilege_tables
%attr(755, root, root) /usr/bin/mysql_convert_table_format
+%attr(755, root, root) /usr/bin/mysql_explain_log
+%attr(755, root, root) /usr/bin/mysql_fix_privilege_tables
%attr(755, root, root) /usr/bin/mysql_install_db
%attr(755, root, root) /usr/bin/mysql_setpermission
%attr(755, root, root) /usr/bin/mysql_zap
%attr(755, root, root) /usr/bin/mysqlbug
-%attr(755, root, root) /usr/bin/mysqltest
+%attr(755, root, root) /usr/bin/mysqld_multi
+%attr(755, root, root) /usr/bin/mysqld_safe
%attr(755, root, root) /usr/bin/mysqlhotcopy
-%attr(755, root, root) /usr/bin/mysql_explain_log
+%attr(755, root, root) /usr/bin/mysqltest
+%attr(755, root, root) /usr/bin/pack_isam
%attr(755, root, root) /usr/bin/perror
%attr(755, root, root) /usr/bin/replace
-%attr(755, root, root) /usr/bin/resolveip
-%attr(755, root, root) /usr/bin/mysqld_safe
%attr(755, root, root) /usr/bin/resolve_stack_dump
-%attr(755, root, root) /usr/bin/mysqld_multi
-%attr(755, root, root) /usr/bin/my_print_defaults
-
-%attr(644, root, root) /usr/info/mysql.info*
+%attr(755, root, root) /usr/bin/resolveip
%attr(755, root, root) /usr/sbin/mysqld
%attr(644, root, root) /usr/lib/mysql/mysqld.sym
@@ -413,28 +396,20 @@ fi
%files client
%attr(755, root, root) /usr/bin/msql2mysql
%attr(755, root, root) /usr/bin/mysql
+%attr(755, root, root) /usr/bin/mysql_find_rows
%attr(755, root, root) /usr/bin/mysqlaccess
%attr(755, root, root) /usr/bin/mysqladmin
+%attr(755, root, root) /usr/bin/mysqlbinlog
%attr(755, root, root) /usr/bin/mysqlcheck
-%attr(755, root, root) /usr/bin/mysql_find_rows
%attr(755, root, root) /usr/bin/mysqldump
%attr(755, root, root) /usr/bin/mysqlimport
%attr(755, root, root) /usr/bin/mysqlshow
-%attr(755, root, root) /usr/bin/mysqlbinlog
-%attr(644, root, man) %doc /usr/man/man1/mysql.1*
-%attr(644, root, man) %doc /usr/man/man1/isamchk.1*
-%attr(644, root, man) %doc /usr/man/man1/isamlog.1*
-%attr(644, root, man) %doc /usr/man/man1/mysql_zap.1*
-%attr(644, root, man) %doc /usr/man/man1/mysqlaccess.1*
-%attr(644, root, man) %doc /usr/man/man1/mysqladmin.1*
-%attr(644, root, man) %doc /usr/man/man1/mysqld.1*
-%attr(644, root, man) %doc /usr/man/man1/mysqld_multi.1*
-%attr(644, root, man) %doc /usr/man/man1/mysqldump.1*
-%attr(644, root, man) %doc /usr/man/man1/mysqlshow.1*
-%attr(644, root, man) %doc /usr/man/man1/perror.1*
-%attr(644, root, man) %doc /usr/man/man1/replace.1*
-%attr(644, root, man) %doc /usr/man/man1/mysqld_safe.1*
+%doc %attr(644, root, man) %{_mandir}/man1/mysql.1*
+%doc %attr(644, root, man) %{_mandir}/man1/mysqlaccess.1*
+%doc %attr(644, root, man) %{_mandir}/man1/mysqladmin.1*
+%doc %attr(644, root, man) %{_mandir}/man1/mysqldump.1*
+%doc %attr(644, root, man) %{_mandir}/man1/mysqlshow.1*
%post shared
/sbin/ldconfig
@@ -443,14 +418,30 @@ fi
/sbin/ldconfig
%files devel
+%defattr(644 root, root)
%attr(755, root, root) /usr/bin/comp_err
-%attr(755, root, root) /usr/include/mysql/
-%attr(755, root, root) /usr/lib/mysql/*.a
%attr(755, root, root) /usr/bin/mysql_config
+%dir %attr(755, root, root) /usr/include/mysql
+%dir %attr(755, root, root) /usr/lib/mysql
+/usr/include/mysql/*
+/usr/lib/mysql/libdbug.a
+/usr/lib/mysql/libheap.a
+/usr/lib/mysql/libmerge.a
+/usr/lib/mysql/libmyisam.a
+/usr/lib/mysql/libmyisammrg.a
+/usr/lib/mysql/libmysqlclient.a
+/usr/lib/mysql/libmysqlclient.la
+/usr/lib/mysql/libmysqlclient_r.a
+/usr/lib/mysql/libmysqlclient_r.la
+/usr/lib/mysql/libmystrings.a
+/usr/lib/mysql/libmysys.a
+/usr/lib/mysql/libnisam.a
+/usr/lib/mysql/libvio.a
%files shared
+%defattr(755 root, root)
# Shared libraries (omit for architectures that don't support them)
-%attr(755, root, root) /usr/lib/*.so*
+/usr/lib/*.so*
%files bench
%attr(-, root, root) /usr/share/sql-bench
@@ -464,10 +455,22 @@ fi
%attr(644, root, root) /usr/lib/mysql/mysqld-max.sym
%files embedded
-%attr(755, root, root) /usr/lib/mysql/libmysqld.a
+%attr(644, root, root) /usr/lib/mysql/libmysqld.a
%changelog
+* Fri May 03 2002 Lenz Grimmer <lenz@mysql.com>
+
+- Use more RPM macros (e.g. infodir, mandir) to make the spec
+ file more portable
+- reorganized the installation of documentation files: let RPM
+ take care of this
+- reorganized the file list: actually install man pages along
+ with the binaries of the respective subpackage
+- don't include libmysqld.a in the devel subpackage as well, if we
+ have a special "embedded" subpackage
+- reworked the package descriptions
+
* Mon Oct 8 2001 Monty
- Added embedded server as a separate RPM
diff --git a/tools/mysqlmanager.c b/tools/mysqlmanager.c
index 536b76a1351..a68038a8c37 100644
--- a/tools/mysqlmanager.c
+++ b/tools/mysqlmanager.c
@@ -30,7 +30,7 @@
#include <m_string.h>
#include <m_ctype.h>
#include <hash.h>
-#include <getopt.h>
+#include <my_getopt.h>
#include <stdarg.h>
#include <sys/stat.h>
#include <errno.h>
@@ -41,8 +41,8 @@
#include <sys/wait.h>
#endif
-#define MANAGER_VERSION "1.0"
-#define MANAGER_GREETING "MySQL Server Management Daemon v. 1.0"
+#define MANAGER_VERSION "1.2"
+#define MANAGER_GREETING "MySQL Server Management Daemon v. 1.2"
#define LOG_ERR 1
#define LOG_WARN 2
@@ -99,7 +99,7 @@
#define DO_STACKTRACE 1
#endif
-uint manager_port = MANAGER_PORT;
+uint manager_port;
FILE* errfp;
const char* manager_log_file = MANAGER_LOG_FILE;
pthread_mutex_t lock_log,lock_shutdown,lock_exec_hash,lock_launch_thd;
@@ -108,14 +108,14 @@ pthread_t loop_th,launch_msg_th;
int manager_sock = -1;
uchar* stack_bottom=0;
struct sockaddr_in manager_addr;
-ulong manager_bind_addr = INADDR_ANY;
-int manager_back_log = MANAGER_BACK_LOG;
+ulong manager_bind_addr;
+int manager_back_log;
int in_shutdown = 0, shutdown_requested=0;
-int manager_connect_retries=MANAGER_CONNECT_RETRIES;
+int manager_connect_retries;
const char* manager_greeting = MANAGER_GREETING;
-uint manager_max_cmd_len = MANAGER_MAX_CMD_LEN;
+uint manager_max_cmd_len;
const char* manager_pw_file=MANAGER_PW_FILE;
-int one_thread = 0; /* for debugging */
+my_bool one_thread; /* for debugging */
typedef enum {PARAM_STDOUT,PARAM_STDERR} PARAM_TYPE;
@@ -232,8 +232,8 @@ static int set_exec_param(struct manager_thd* thd, char* args_start,
#define HANDLE_DECL(com) static int com (struct manager_thd* thd, char* args_start,char* args_end)
#define HANDLE_NOARG_DECL(com) static int com \
- (struct manager_thd* thd, char* __attribute__((unused)) args_start,\
- char* __attribute__((unused)) args_end)
+ (struct manager_thd* thd, char *args_start __attribute__((unused)),\
+ char* args_end __attribute__((unused)))
HANDLE_NOARG_DECL(handle_ping);
@@ -272,22 +272,44 @@ struct manager_cmd commands[] =
{0,0,0,0}
};
-struct option long_options[] =
-{
- {"debug", optional_argument, 0, '#'},
- {"help", no_argument, 0, 'h'},
- {"port", required_argument, 0, 'P'},
- {"log", required_argument, 0, 'l'},
- {"bind-address", required_argument, 0, 'b'},
- {"tcp-backlog", required_argument, 0, 'B'},
- {"greeting", required_argument, 0, 'g'},
- {"max-command-len",required_argument,0,'m'},
- {"one-thread",no_argument,0,'d'},
- {"connect-retries",required_argument,0,'C'},
- {"password-file",required_argument,0,'p'},
- {"pid-file",required_argument,0,'f'},
- {"version", no_argument, 0, 'V'},
- {0, 0, 0, 0}
+
+static struct my_option my_long_options[] =
+{
+#ifndef DBUG_OFF
+ {"debug", '#', "Output debug log. Often this is 'd:t:o,filename'",
+ 0, 0, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0},
+#endif
+ {"help", '?', "Display this help and exit.",
+ 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"port", 'P', "Port number to listen on.", (gptr*) &manager_port,
+ (gptr*) &manager_port, 0, GET_UINT, REQUIRED_ARG, MANAGER_PORT, 0, 0, 0,
+ 0, 0},
+ {"log", 'l', "Path to log file.", (gptr*) &manager_log_file,
+ (gptr*) &manager_log_file, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"bind-address", 'b', "Address to listen on.", (gptr*) &manager_bind_addr,
+ (gptr*) &manager_bind_addr, 0, GET_ULONG, REQUIRED_ARG, INADDR_ANY, 0,
+ 0, 0, 0, 0},
+ {"tcp-backlog", 'B', "Size of TCP/IP listen queue.",
+ (gptr*) &manager_back_log, (gptr*) &manager_back_log, 0, GET_INT,
+ REQUIRED_ARG, MANAGER_BACK_LOG, 0, 0, 0, 0, 0},
+ {"greeting", 'g', "Set greeting on connect", (gptr*) &manager_greeting,
+ (gptr*) &manager_greeting, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"max-command-len", 'm', "Maximum command length",
+ (gptr*) &manager_max_cmd_len, (gptr*) &manager_max_cmd_len, 0, GET_UINT,
+ REQUIRED_ARG, MANAGER_MAX_CMD_LEN, 0, 0, 0, 0, 0},
+ {"one-thread", 'd', "Use one thread ( for debugging)", (gptr*) &one_thread,
+ (gptr*) &one_thread, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
+ {"connect-retries", 'C', "Number of attempts to establish MySQL connection",
+ (gptr*) &manager_connect_retries, (gptr*) &manager_connect_retries, 0,
+ GET_INT, REQUIRED_ARG, MANAGER_CONNECT_RETRIES, 0, 0, 0, 0, 0},
+ {"password-file", 'p', "Password file for manager",
+ (gptr*) &manager_pw_file, (gptr*) &manager_pw_file, 0, GET_STR,
+ REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"pid-file", 'f', "Pid file to use", (gptr*) &pid_file, (gptr*) &pid_file,
+ 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
+ {"version", 'V', "Output version information and exit.", 0, 0, 0,
+ GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
+ { 0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}
};
static void die(const char* fmt,...);
@@ -1063,7 +1085,7 @@ static void log_msg(const char* fmt, int msg_type, va_list args)
}
static pthread_handler_decl(process_launcher_messages,
- __attribute__((unused)) arg)
+ args __attribute__((unused)))
{
my_thread_init();
for (;!in_shutdown;)
@@ -1280,80 +1302,41 @@ static void usage()
printf("MySQL AB, by Sasha\n");
printf("This software comes with ABSOLUTELY NO WARRANTY\n\n");
printf("Manages instances of MySQL server.\n\n");
- printf("Usage: %s [OPTIONS]", my_progname);
- printf("\n\
- -?, --help Display this help and exit.\n");
-#ifndef DBUG_OFF
- puts("\
- -#, --debug=[...] Output debug log. Often this is 'd:t:o,filename`");
-#endif
- printf("\
- -P, --port=... Port number to listen on.\n\
- -l, --log=... Path to log file.\n\
- -b, --bind-address=... Address to listen on.\n\
- -B, --tcp-backlog==... Size of TCP/IP listen queue.\n\
- -g, --greeting= Set greeting on connect \n\
- -m, --max-command-len Maximum command length \n\
- -d, --one-thread Use one thread ( for debugging) \n\
- -C, --connect-retries Number of attempts to establish MySQL connection \n\
- -m, --max-command-len Maximum command length \n\
- -V, --version Output version information and exit.\n\n");
+ printf("Usage: %s [OPTIONS]\n\n", my_progname);
+ my_print_help(my_long_options);
+ my_print_variables(my_long_options);
}
-static int parse_args(int argc, char **argv)
+
+static my_bool
+get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
+ char *argument)
{
- int c, option_index = 0;
- while ((c=getopt_long(argc,argv,"P:?#:Vl:b:B:g:m:dC:p:f:",
- long_options,&option_index)) != EOF)
- {
- switch (c)
- {
- case '#':
- DBUG_PUSH(optarg ? optarg : "d:t:O,/tmp/mysqlmgrd.trace");
- break;
- case 'd':
- one_thread=1;
- break;
- case 'p':
- manager_pw_file=optarg;
- break;
- case 'f':
- pid_file=optarg;
- break;
- case 'C':
- manager_connect_retries=atoi(optarg);
- break;
- case 'P':
- manager_port=atoi(optarg);
- break;
- case 'm':
- manager_max_cmd_len=atoi(optarg);
- break;
- case 'g':
- manager_greeting=optarg;
- case 'b':
- manager_bind_addr = inet_addr(optarg);
- break;
- case 'B':
- manager_back_log = atoi(optarg);
- break;
- case 'l':
- manager_log_file=optarg;
- break;
- case 'V':
- print_version();
- exit(0);
- case '?':
- usage();
- exit(0);
- default:
- usage();
- exit(1);
- }
+ switch (optid) {
+ case '#':
+ DBUG_PUSH(argument ? argument : "d:t:O,/tmp/mysqlmgrd.trace");
+ break;
+ case 'V':
+ print_version();
+ exit(0);
+ case '?':
+ usage();
+ exit(0);
}
return 0;
}
+
+static int parse_args(int argc, char **argv)
+{
+ int ho_error;
+
+ if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option)))
+ exit(ho_error);
+
+ return 0;
+}
+
static int init_server()
{
int arg=1;
diff --git a/vio/test-ssl.c b/vio/test-ssl.c
index 09dae7ad5cf..9fdab86e9b9 100644
--- a/vio/test-ssl.c
+++ b/vio/test-ssl.c
@@ -25,11 +25,11 @@
#ifndef __GNU_LIBRARY__
#define __GNU_LIBRARY__ // Skip warnings in getopt.h
#endif
-#include <getopt.h>
+#include <my_getopt.h>
#include <signal.h>
#include <violite.h>
-const char *VER="0.1";
+const char *VER="0.2";
#ifndef DBUG_OFF
diff --git a/vio/test-sslclient.c b/vio/test-sslclient.c
index 51a78485642..84853e45485 100644
--- a/vio/test-sslclient.c
+++ b/vio/test-sslclient.c
@@ -25,11 +25,11 @@
#ifndef __GNU_LIBRARY__
#define __GNU_LIBRARY__ // Skip warnings in getopt.h
#endif
-#include <getopt.h>
+#include <my_getopt.h>
#include <signal.h>
#include <violite.h>
-const char *VER="0.1";
+const char *VER="0.2";
#ifndef DBUG_OFF
diff --git a/vio/test-sslserver.c b/vio/test-sslserver.c
index 988019a012b..a9e28ac7a58 100644
--- a/vio/test-sslserver.c
+++ b/vio/test-sslserver.c
@@ -25,11 +25,11 @@
#ifndef __GNU_LIBRARY__
#define __GNU_LIBRARY__ // Skip warnings in getopt.h
#endif
-#include <getopt.h>
+#include <my_getopt.h>
#include <signal.h>
#include <violite.h>
-const char *VER="0.1";
+const char *VER="0.2";
#ifndef DBUG_OFF
diff --git a/vio/vio.c b/vio/vio.c
index 62814e50240..67cb7ec95cd 100644
--- a/vio/vio.c
+++ b/vio/vio.c
@@ -96,7 +96,7 @@ Vio *vio_new(my_socket sd, enum enum_vio_type type, my_bool localhost)
sprintf(vio->desc,
(vio->type == VIO_TYPE_SOCKET ? "socket (%d)" : "TCP/IP (%d)"),
vio->sd);
-#if !defined(___WIN__) && !defined(__EMX__)
+#if !defined(___WIN__) && !defined(__EMX__) && !defined(OS2)
#if !defined(NO_FCNTL_NONBLOCK)
vio->fcntl_mode = fcntl(sd, F_GETFL);
#elif defined(HAVE_SYS_IOCTL_H) /* hpux */
diff --git a/vio/viosocket.c b/vio/viosocket.c
index 14b4305b95a..85e239f29ac 100644
--- a/vio/viosocket.c
+++ b/vio/viosocket.c
@@ -87,7 +87,7 @@ int vio_write(Vio * vio, const gptr buf, int size)
int r;
DBUG_ENTER("vio_write");
DBUG_PRINT("enter", ("sd=%d, buf=%p, size=%d", vio->sd, buf, size));
-#ifdef __WIN__
+#if defined( __WIN__)
if ( vio->type == VIO_TYPE_NAMEDPIPE)
{
DWORD length;
@@ -95,7 +95,7 @@ int vio_write(Vio * vio, const gptr buf, int size)
DBUG_RETURN(-1);
DBUG_RETURN(length);
}
- r = send(vio->sd, buf, size,0);
+ r = send(vio->sd, buf, size, 0);
#else
r = write(vio->sd, buf, size);
#endif /* __WIN__ */
diff --git a/vio/viotest-ssl.c b/vio/viotest-ssl.c
index 8c549ae1d38..1a766a3fc97 100644
--- a/vio/viotest-ssl.c
+++ b/vio/viotest-ssl.c
@@ -25,12 +25,12 @@
#ifndef __GNU_LIBRARY__
#define __GNU_LIBRARY__ // Skip warnings in getopt.h
#endif
-#include <getopt.h>
+#include <my_getopt.h>
//#include "my_readline.h"
#include <signal.h>
#include <violite.h>
-const char *VER="0.1";
+const char *VER="0.2";
#ifndef DBUG_OFF