xapian-core
1.4.26
|
A writable chert database. More...
#include <chert_database.h>
Public Member Functions | |
ChertWritableDatabase (const string &dir, int action, int block_size) | |
Create and open a writable chert database. More... | |
~ChertWritableDatabase () | |
bool | has_uncommitted_changes () const |
Return true if there are uncommitted changes. More... | |
Xapian::termcount | get_doclength (Xapian::docid did) const |
Virtual methods of Database::Internal. More... | |
Xapian::termcount | get_unique_terms (Xapian::docid did) const |
Virtual methods of Database::Internal. More... | |
void | get_freqs (const string &term, Xapian::doccount *termfreq_ptr, Xapian::termcount *collfreq_ptr) const |
Virtual methods of Database::Internal. More... | |
Xapian::doccount | get_value_freq (Xapian::valueno slot) const |
Virtual methods of Database::Internal. More... | |
std::string | get_value_lower_bound (Xapian::valueno slot) const |
Virtual methods of Database::Internal. More... | |
std::string | get_value_upper_bound (Xapian::valueno slot) const |
Virtual methods of Database::Internal. More... | |
bool | term_exists (const string &tname) const |
Virtual methods of Database::Internal. More... | |
LeafPostList * | open_post_list (const string &tname) const |
Virtual methods of Database::Internal. More... | |
ValueList * | open_value_list (Xapian::valueno slot) const |
Virtual methods of Database::Internal. More... | |
TermList * | open_allterms (const string &prefix) const |
Virtual methods of Database::Internal. More... | |
void | add_spelling (const string &word, Xapian::termcount freqinc) const |
Virtual methods of Database::Internal. More... | |
void | remove_spelling (const string &word, Xapian::termcount freqdec) const |
Virtual methods of Database::Internal. More... | |
TermList * | open_spelling_wordlist () const |
Virtual methods of Database::Internal. More... | |
TermList * | open_synonym_keylist (const string &prefix) const |
Virtual methods of Database::Internal. More... | |
void | add_synonym (const string &word, const string &synonym) const |
Virtual methods of Database::Internal. More... | |
void | remove_synonym (const string &word, const string &synonym) const |
Virtual methods of Database::Internal. More... | |
void | clear_synonyms (const string &word) const |
Virtual methods of Database::Internal. More... | |
void | set_metadata (const string &key, const string &value) |
Virtual methods of Database::Internal. More... | |
void | invalidate_doc_object (Xapian::Document::Internal *obj) const |
Virtual methods of Database::Internal. More... | |
Public Member Functions inherited from ChertDatabase | |
ChertDatabase (const string &db_dir_, int action=Xapian::DB_READONLY_, unsigned int block_size=0u) | |
Create and open a chert database. More... | |
~ChertDatabase () | |
ChertCursor * | get_postlist_cursor () const |
Get a postlist table cursor (used by ChertValueList). More... | |
chert_revision_number_t | get_revision_number () const |
Get an object holding the revision number which the tables are opened at. More... | |
void | throw_termlist_table_close_exception () const |
int | get_backend_info (string *path) const |
Get backend information about this database. More... | |
void | get_used_docid_range (Xapian::docid &first, Xapian::docid &last) const |
Find lowest and highest docids actually in use. More... | |
bool | locked () const |
Return true if the database is open for writing. More... | |
Xapian::doccount | get_doccount () const |
Virtual methods of Database::Internal. More... | |
Xapian::docid | get_lastdocid () const |
Virtual methods of Database::Internal. More... | |
Xapian::totallength | get_total_length () const |
Virtual methods of Database::Internal. More... | |
Xapian::termcount | get_doclength_lower_bound () const |
Virtual methods of Database::Internal. More... | |
Xapian::termcount | get_doclength_upper_bound () const |
Virtual methods of Database::Internal. More... | |
Xapian::termcount | get_wdf_upper_bound (const string &term) const |
Virtual methods of Database::Internal. More... | |
bool | has_positions () const |
Virtual methods of Database::Internal. More... | |
PositionList * | open_position_list (Xapian::docid did, const string &term) const |
Virtual methods of Database::Internal. More... | |
TermList * | open_term_list (Xapian::docid did) const |
Virtual methods of Database::Internal. More... | |
TermList * | open_spelling_termlist (const string &word) const |
Virtual methods of Database::Internal. More... | |
Xapian::doccount | get_spelling_frequency (const string &word) const |
Virtual methods of Database::Internal. More... | |
TermList * | open_synonym_termlist (const string &term) const |
Virtual methods of Database::Internal. More... | |
string | get_metadata (const string &key) const |
Virtual methods of Database::Internal. More... | |
TermList * | open_metadata_keylist (const std::string &prefix) const |
Virtual methods of Database::Internal. More... | |
void | write_changesets_to_fd (int fd, const string &start_revision, bool need_whole_db, Xapian::ReplicationInfo *info) |
Virtual methods of Database::Internal. More... | |
string | get_revision_info () const |
Virtual methods of Database::Internal. More... | |
string | get_uuid () const |
Virtual methods of Database::Internal. More... | |
void | request_document (Xapian::docid) const |
Virtual methods of Database::Internal. More... | |
void | readahead_for_query (const Xapian::Query &query) |
Virtual methods of Database::Internal. More... | |
Public Member Functions inherited from Xapian::Database::Internal | |
virtual | ~Internal () |
Destroy the database. More... | |
virtual void | keep_alive () |
Send a keep-alive signal to a remote database, to stop it from timing out. More... | |
void | begin_transaction (bool flushed) |
Begin a transaction. More... | |
void | commit_transaction () |
Commit a transaction. More... | |
void | cancel_transaction () |
Cancel a transaction. More... | |
virtual void | delete_document (const string &unique_term) |
Delete any documents indexed by a term from the database. More... | |
virtual Xapian::docid | replace_document (const string &unique_term, const Xapian::Document &document) |
Replace any documents matching a term. More... | |
virtual Xapian::Document::Internal * | collect_document (Xapian::docid did) const |
Request and later collect a document from the database. More... | |
Public Member Functions inherited from Xapian::Internal::intrusive_base | |
intrusive_base () | |
Construct with no references. More... | |
Private Member Functions | |
void | check_flush_threshold () |
Check if we should autoflush. More... | |
void | flush_postlist_changes () const |
Flush any unflushed postlist changes, but don't commit them. More... | |
void | close () |
Close all the tables permanently. More... | |
void | apply () |
Apply changes. More... | |
void | add_freq_delta (const string &tname, Xapian::termcount_diff tf_delta, Xapian::termcount_diff cf_delta) |
Add or modify an entry in freq_deltas. More... | |
void | insert_mod_plist (Xapian::docid did, const string &tname, Xapian::termcount wdf) |
Insert modifications for a new document to the postlists. More... | |
void | update_mod_plist (Xapian::docid did, const string &tname, char type, Xapian::termcount wdf) |
Update the stored modifications to the postlists. More... | |
void | commit () |
Implementation of virtual methods: see Database::Internal for details. More... | |
void | cancel () |
Cancel pending modifications to the database. More... | |
Xapian::docid | add_document (const Xapian::Document &document) |
Implementation of virtual methods: see Database::Internal for details. More... | |
Xapian::docid | add_document_ (Xapian::docid did, const Xapian::Document &document) |
Implementation of virtual methods: see Database::Internal for details. More... | |
void | delete_document (Xapian::docid did) |
Implementation of virtual methods: see Database::Internal for details. More... | |
void | replace_document (Xapian::docid did, const Xapian::Document &document) |
Implementation of virtual methods: see Database::Internal for details. More... | |
Xapian::Document::Internal * | open_document (Xapian::docid did, bool lazy) const |
Implementation of virtual methods: see Database::Internal for details. More... | |
Private Attributes | |
map< string, pair< Xapian::termcount_diff, Xapian::termcount_diff > > | freq_deltas |
Unflushed changes to term frequencies and collection frequencies. More... | |
map< Xapian::docid, Xapian::termcount > | doclens |
Document lengths of new and modified documents which haven't been flushed yet. More... | |
map< string, map< Xapian::docid, pair< char, Xapian::termcount > > > | mod_plists |
Modifications to posting lists. More... | |
map< Xapian::valueno, ValueStats > | value_stats |
Xapian::doccount | change_count |
The number of documents added, deleted, or replaced since the last flush. More... | |
Xapian::doccount | flush_threshold |
If change_count reaches this threshold we automatically flush. More... | |
Xapian::Document::Internal * | modify_shortcut_document |
A pointer to the last document which was returned by open_document(), or NULL if there is no such valid document. More... | |
Xapian::docid | modify_shortcut_docid |
The document ID for the last document returned by open_document(). More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from ChertDatabase | |
static void | compact (Xapian::Compactor *compactor, const char *destdir, const std::vector< Xapian::Database::Internal *> &sources, const std::vector< Xapian::docid > &offset, size_t block_size, Xapian::Compactor::compaction_level compaction, unsigned flags, Xapian::docid last_docid) |
Public Attributes inherited from Xapian::Internal::intrusive_base | |
unsigned | _refs |
Reference count. More... | |
Protected Types inherited from Xapian::Database::Internal | |
enum | { TRANSACTION_UNIMPLEMENTED = -1, TRANSACTION_NONE = 0, TRANSACTION_UNFLUSHED = 1, TRANSACTION_FLUSHED = 2 } |
Transaction state. More... | |
Protected Member Functions inherited from Xapian::Database::Internal | |
bool | transaction_active () const |
Internal () | |
Create a database - called only by derived classes. More... | |
void | dtor_called () |
Internal method to perform cleanup when a writable database is destroyed with uncommitted changes. More... | |
Protected Attributes inherited from Xapian::Database::Internal | |
enum Xapian::Database::Internal:: { ... } | transaction_state |
Transaction state. More... | |
A writable chert database.
Definition at line 336 of file chert_database.h.
ChertWritableDatabase::ChertWritableDatabase | ( | const string & | dir, |
int | action, | ||
int | block_size | ||
) |
Create and open a writable chert database.
Xapian::DatabaseOpeningError | thrown if database can't be opened. |
Xapian::DatabaseVersionError | thrown if database is in an unsupported format. This implies that the database was created by an older or newer version of Xapian. |
dir | directory holding chert tables |
Definition at line 1063 of file chert_database.cc.
References flush_threshold, and LOGCALL_CTOR.
ChertWritableDatabase::~ChertWritableDatabase | ( | ) |
Definition at line 1083 of file chert_database.cc.
References Xapian::Database::Internal::dtor_called(), and LOGCALL_DTOR.
|
privatevirtual |
Implementation of virtual methods: see Database::Internal for details.
Reimplemented from Xapian::Database::Internal.
Definition at line 1206 of file chert_database.cc.
References add_document_(), CHERT_MAX_DOCID, ChertDatabaseStats::get_last_docid(), ChertDatabaseStats::get_next_docid(), LOGCALL, RETURN, and ChertDatabase::stats.
|
private |
Implementation of virtual methods: see Database::Internal for details.
Definition at line 1217 of file chert_database.cc.
References ChertDatabaseStats::add_document(), ChertValueManager::add_document(), add_freq_delta(), Assert, cancel(), check_flush_threshold(), ChertDatabaseStats::check_wdf(), doclens, Xapian::Document::get_data(), Xapian::TermIterator::get_wdf(), insert_mod_plist(), ChertTable::is_open(), LOGCALL, LOGLINE, MAX_SAFE_TERM_LENGTH, ChertDatabase::position_table, Xapian::TermIterator::positionlist_begin(), Xapian::TermIterator::positionlist_end(), ChertDatabase::record_table, ChertRecordTable::replace_record(), RETURN, ChertPositionListTable::set_positionlist(), ChertTermListTable::set_termlist(), ChertDatabase::stats, STRINGIZE, Xapian::Document::termlist_begin(), Xapian::Document::termlist_end(), ChertDatabase::termlist_table, ChertDatabase::value_manager, and value_stats.
Referenced by add_document(), and replace_document().
|
private |
Add or modify an entry in freq_deltas.
tname | The term to modify the entry for. |
tf_delta | The change in the term frequency delta. |
cf_delta | The change in the collection frequency delta. |
Definition at line 1148 of file chert_database.cc.
References freq_deltas.
Referenced by add_document_(), delete_document(), and replace_document().
|
virtual |
Virtual methods of Database::Internal.
Reimplemented from Xapian::Database::Internal.
Definition at line 1679 of file chert_database.cc.
References ChertSpellingTable::add_word(), and ChertDatabase::spelling_table.
|
virtual |
Virtual methods of Database::Internal.
Reimplemented from Xapian::Database::Internal.
Definition at line 1707 of file chert_database.cc.
References ChertSynonymTable::add_synonym(), and ChertDatabase::synonym_table.
|
private |
Apply changes.
Definition at line 1141 of file chert_database.cc.
References ChertDatabase::apply(), ChertValueManager::set_value_stats(), ChertDatabase::value_manager, and value_stats.
Referenced by check_flush_threshold(), and commit().
|
privatevirtual |
Cancel pending modifications to the database.
Reimplemented from ChertDatabase.
Definition at line 1667 of file chert_database.cc.
References ChertDatabase::cancel(), change_count, doclens, freq_deltas, mod_plists, ChertDatabase::postlist_table, ChertDatabaseStats::read(), ChertDatabase::stats, and value_stats.
Referenced by add_document_(), delete_document(), and replace_document().
|
private |
Check if we should autoflush.
Called at the end of each document changing operation.
Definition at line 1099 of file chert_database.cc.
References apply(), change_count, flush_postlist_changes(), flush_threshold, and Xapian::Database::Internal::transaction_active().
Referenced by add_document_(), delete_document(), and replace_document().
|
virtual |
Virtual methods of Database::Internal.
Reimplemented from Xapian::Database::Internal.
Definition at line 1721 of file chert_database.cc.
References ChertSynonymTable::clear_synonyms(), and ChertDatabase::synonym_table.
|
privatevirtual |
Close all the tables permanently.
Reimplemented from ChertDatabase.
Definition at line 1130 of file chert_database.cc.
References ChertDatabase::close(), commit(), LOGCALL_VOID, and Xapian::Database::Internal::transaction_active().
|
privatevirtual |
Implementation of virtual methods: see Database::Internal for details.
Reimplemented from Xapian::Database::Internal.
Definition at line 1090 of file chert_database.cc.
References apply(), change_count, flush_postlist_changes(), and Xapian::Database::Internal::transaction_active().
Referenced by close().
|
privatevirtual |
Implementation of virtual methods: see Database::Internal for details.
Reimplemented from Xapian::Database::Internal.
Definition at line 1277 of file chert_database.cc.
References add_freq_delta(), Assert, ChertTermList::at_end(), cancel(), check_flush_threshold(), ChertDatabaseStats::delete_document(), ChertValueManager::delete_document(), ChertPositionListTable::delete_positionlist(), ChertRecordTable::delete_record(), ChertTermListTable::delete_termlist(), doclens, ChertTermList::get_doclength(), ChertTermList::get_termname(), ChertTermList::get_wdf(), ChertTable::is_open(), LOGCALL_VOID, modify_shortcut_docid, modify_shortcut_document, ChertTermList::next(), ChertDatabase::position_table, rare, ChertDatabase::record_table, ChertDatabase::stats, ChertDatabase::termlist_table, ChertDatabase::throw_termlist_table_close_exception(), update_mod_plist(), ChertDatabase::value_manager, and value_stats.
|
private |
Flush any unflushed postlist changes, but don't commit them.
Definition at line 1118 of file chert_database.cc.
References change_count, doclens, freq_deltas, ChertPostListTable::merge_changes(), mod_plists, ChertDatabase::postlist_table, ChertDatabase::stats, and ChertDatabaseStats::write().
Referenced by check_flush_threshold(), commit(), and open_allterms().
|
virtual |
Virtual methods of Database::Internal.
Reimplemented from ChertDatabase.
Definition at line 1521 of file chert_database.cc.
References doclens, ChertDatabase::get_doclength(), LOGCALL, RETURN, and Xapian::Internal::str().
|
virtual |
Virtual methods of Database::Internal.
Reimplemented from ChertDatabase.
Definition at line 1559 of file chert_database.cc.
References Assert, freq_deltas, ChertDatabase::get_freqs(), and LOGCALL_VOID.
Referenced by term_exists().
|
virtual |
Virtual methods of Database::Internal.
Reimplemented from ChertDatabase.
Definition at line 1536 of file chert_database.cc.
References Assert, doclens, ChertTermList::get_approx_size(), ChertDatabase::get_unique_terms(), LOGCALL, RETURN, and Xapian::Internal::str().
|
virtual |
Virtual methods of Database::Internal.
Reimplemented from ChertDatabase.
Definition at line 1577 of file chert_database.cc.
References ChertDatabase::get_value_freq(), LOGCALL, RETURN, and value_stats.
|
virtual |
Virtual methods of Database::Internal.
Reimplemented from ChertDatabase.
Definition at line 1587 of file chert_database.cc.
References ChertDatabase::get_value_lower_bound(), LOGCALL, RETURN, and value_stats.
|
virtual |
Virtual methods of Database::Internal.
Reimplemented from ChertDatabase.
Definition at line 1597 of file chert_database.cc.
References ChertDatabase::get_value_upper_bound(), LOGCALL, RETURN, and value_stats.
|
virtual |
Return true if there are uncommitted changes.
Reimplemented from ChertDatabase.
Definition at line 1749 of file chert_database.cc.
References change_count, ChertSynonymTable::is_modified(), ChertSpellingTable::is_modified(), ChertValueManager::is_modified(), ChertTable::is_modified(), ChertDatabase::position_table, ChertDatabase::postlist_table, ChertDatabase::record_table, ChertDatabase::spelling_table, ChertDatabase::synonym_table, ChertDatabase::termlist_table, and ChertDatabase::value_manager.
|
private |
Insert modifications for a new document to the postlists.
did | The document ID to insert the entry for. |
tname | The term to insert the entry for. |
wdf | The new wdf value to store. |
Definition at line 1163 of file chert_database.cc.
References mod_plists.
Referenced by add_document_().
|
virtual |
Virtual methods of Database::Internal.
Reimplemented from Xapian::Database::Internal.
Definition at line 1740 of file chert_database.cc.
References modify_shortcut_docid, and modify_shortcut_document.
|
virtual |
Virtual methods of Database::Internal.
Reimplemented from ChertDatabase.
Definition at line 1656 of file chert_database.cc.
References change_count, flush_postlist_changes(), LOGCALL, ChertDatabase::open_allterms(), and RETURN.
|
privatevirtual |
Implementation of virtual methods: see Database::Internal for details.
Reimplemented from ChertDatabase.
Definition at line 1510 of file chert_database.cc.
References LOGCALL, modify_shortcut_docid, modify_shortcut_document, ChertDatabase::open_document(), and RETURN.
|
virtual |
Virtual methods of Database::Internal.
Reimplemented from ChertDatabase.
Definition at line 1616 of file chert_database.cc.
References ChertDatabase::ChertAllDocsPostList, ChertDatabase::ChertPostList, doclens, ChertDatabase::get_doccount(), ChertDatabaseStats::get_last_docid(), ChertDatabaseStats::get_wdf_upper_bound(), LOGCALL, mod_plists, RETURN, and ChertDatabase::stats.
|
virtual |
Virtual methods of Database::Internal.
Reimplemented from ChertDatabase.
Definition at line 1693 of file chert_database.cc.
References ChertSpellingTable::merge_changes(), ChertDatabase::open_spelling_wordlist(), and ChertDatabase::spelling_table.
|
virtual |
Virtual methods of Database::Internal.
Reimplemented from ChertDatabase.
Definition at line 1700 of file chert_database.cc.
References ChertSynonymTable::merge_changes(), ChertDatabase::open_synonym_keylist(), and ChertDatabase::synonym_table.
|
virtual |
Virtual methods of Database::Internal.
Reimplemented from ChertDatabase.
Definition at line 1645 of file chert_database.cc.
References change_count, LOGCALL, ChertValueManager::merge_changes(), ChertDatabase::open_value_list(), RETURN, and ChertDatabase::value_manager.
|
virtual |
Virtual methods of Database::Internal.
Reimplemented from Xapian::Database::Internal.
Definition at line 1686 of file chert_database.cc.
References ChertSpellingTable::remove_word(), and ChertDatabase::spelling_table.
|
virtual |
Virtual methods of Database::Internal.
Reimplemented from Xapian::Database::Internal.
Definition at line 1714 of file chert_database.cc.
References ChertSynonymTable::remove_synonym(), and ChertDatabase::synonym_table.
|
privatevirtual |
Implementation of virtual methods: see Database::Internal for details.
Reimplemented from Xapian::Database::Internal.
Definition at line 1338 of file chert_database.cc.
References ChertDatabaseStats::add_document(), add_document_(), add_freq_delta(), Assert, ChertTermList::at_end(), cancel(), check_flush_threshold(), ChertDatabaseStats::check_wdf(), ChertDatabaseStats::delete_document(), ChertPositionListTable::delete_positionlist(), doclens, ChertPostListTable::document_exists(), Xapian::Document::get_data(), ChertTermList::get_doclength(), ChertDatabaseStats::get_last_docid(), ChertTermList::get_termname(), Xapian::TermIterator::get_wdf(), ChertTermList::get_wdf(), Xapian::Document::internal, ChertTable::is_open(), LOGCALL_VOID, LOGLINE, MAX_SAFE_TERM_LENGTH, modify_shortcut_docid, modify_shortcut_document, ChertTermList::next(), ChertDatabase::position_table, Xapian::TermIterator::positionlist_begin(), Xapian::TermIterator::positionlist_end(), ChertDatabase::postlist_table, ChertDatabase::record_table, ChertValueManager::replace_document(), ChertRecordTable::replace_record(), ChertDatabaseStats::set_last_docid(), ChertPositionListTable::set_positionlist(), ChertTermListTable::set_termlist(), ChertDatabase::stats, STRINGIZE, Xapian::Document::termlist_begin(), Xapian::Document::termlist_end(), ChertDatabase::termlist_table, ChertDatabase::throw_termlist_table_close_exception(), update_mod_plist(), ChertDatabase::value_manager, and value_stats.
|
virtual |
Virtual methods of Database::Internal.
Reimplemented from Xapian::Database::Internal.
Definition at line 1727 of file chert_database.cc.
References ChertTable::add(), ChertTable::del(), LOGCALL_VOID, and ChertDatabase::postlist_table.
|
virtual |
Virtual methods of Database::Internal.
Reimplemented from ChertDatabase.
Definition at line 1607 of file chert_database.cc.
References get_freqs(), LOGCALL, and RETURN.
|
private |
Update the stored modifications to the postlists.
did | The document ID to modify the entry for. |
tname | The term to modify the entry for. |
type | The type of change to the postlist. |
wdf | The new wdf value to store. |
If type is 'A', and an existing entry is in the stored modifications, the stored type will be set to 'M'. In all other cases, the stored type is simply the value supplied.
Definition at line 1178 of file chert_database.cc.
References Assert, and mod_plists.
Referenced by delete_document(), and replace_document().
|
mutableprivate |
The number of documents added, deleted, or replaced since the last flush.
Definition at line 353 of file chert_database.h.
Referenced by cancel(), check_flush_threshold(), commit(), flush_postlist_changes(), has_uncommitted_changes(), open_allterms(), and open_value_list().
|
mutableprivate |
Document lengths of new and modified documents which haven't been flushed yet.
Definition at line 342 of file chert_database.h.
Referenced by add_document_(), cancel(), delete_document(), flush_postlist_changes(), get_doclength(), get_unique_terms(), open_post_list(), and replace_document().
|
private |
If change_count reaches this threshold we automatically flush.
Definition at line 356 of file chert_database.h.
Referenced by check_flush_threshold(), and ChertWritableDatabase().
|
mutableprivate |
Unflushed changes to term frequencies and collection frequencies.
Definition at line 339 of file chert_database.h.
Referenced by add_freq_delta(), cancel(), flush_postlist_changes(), and get_freqs().
|
mutableprivate |
Modifications to posting lists.
Definition at line 346 of file chert_database.h.
Referenced by cancel(), flush_postlist_changes(), insert_mod_plist(), open_post_list(), and update_mod_plist().
|
mutableprivate |
The document ID for the last document returned by open_document().
Definition at line 368 of file chert_database.h.
Referenced by delete_document(), invalidate_doc_object(), open_document(), and replace_document().
|
mutableprivate |
A pointer to the last document which was returned by open_document(), or NULL if there is no such valid document.
This is used purely for comparing with a supplied document to help with optimising replace_document. When the document internals are deleted, this pointer gets set to NULL.
Definition at line 364 of file chert_database.h.
Referenced by delete_document(), invalidate_doc_object(), open_document(), and replace_document().
|
mutableprivate |
Definition at line 348 of file chert_database.h.
Referenced by add_document_(), apply(), cancel(), delete_document(), get_value_freq(), get_value_lower_bound(), get_value_upper_bound(), and replace_document().