34 #include <wiredtiger.h> 36 #include "mongo/base/disallow_copying.h" 37 #include "mongo/base/status.h" 38 #include "mongo/base/status_with.h" 39 #include "mongo/bson/bsonobj.h" 40 #include "mongo/db/namespace_string.h" 41 #include "mongo/util/assert_util.h" 46 class OperationContext;
47 class WiredTigerConfigParser;
48 class WiredTigerKVEngine;
49 class WiredTigerSession;
61 if (MONGO_likely(retCode == 0))
67 #define invariantWTOK(expression) \ 69 int _invariantWTOK_retCode = expression; \ 70 if (MONGO_unlikely(_invariantWTOK_retCode != 0)) { \ 72 #expression, wtRCToStatus(_invariantWTOK_retCode), __FILE__, __LINE__); \ 90 const WT_ITEM*
Get()
const {
121 const char* message);
138 const std::string& tableUri,
140 std::string* source);
147 const std::string&
uri,
148 const std::string& config,
149 BSONObjBuilder* bob);
167 BSONObjBuilder* bob);
179 BSONObjBuilder* bob);
190 int64_t minimumVersion,
191 int64_t maximumVersion);
203 const std::string&
uri,
204 const std::string& config,
211 template <
typename ResultType>
213 const std::string&
uri,
214 const std::string& config,
221 template <
typename ResultType>
223 const std::string&
uri,
224 const std::string& config,
226 ResultType maximumResultType);
242 static int onError(WT_EVENT_HANDLER* handler,
245 const char* message);
247 using ErrorHandler = int (*)(WT_EVENT_HANDLER*, WT_SESSION*, int,
const char*);
260 const std::string&
uri,
261 std::vector<std::string>* errors = NULL);
270 template <
typename T>
277 template <
typename T>
287 wiredtiger_config_parser_open(NULL, config.rawData(), config.size(), &
_parser));
291 invariant(nested.type == WT_CONFIG_ITEM::WT_CONFIG_ITEM_STRUCT);
299 int next(WT_CONFIG_ITEM*
key, WT_CONFIG_ITEM* value) {
303 int get(
const char*
key, WT_CONFIG_ITEM* value) {
312 template <
typename ResultType>
314 const std::string&
uri,
315 const std::string& config,
317 return getStatisticsValueAs<ResultType>(
318 session,
uri, config, statisticsKey, std::numeric_limits<ResultType>::max());
322 template <
typename ResultType>
324 const std::string&
uri,
325 const std::string& config,
327 ResultType maximumResultType) {
329 if (!result.isOK()) {
333 _castStatisticsValue<ResultType>(result.getValue(), maximumResultType));
337 template <
typename ResultType>
339 return _castStatisticsValue<ResultType>(statisticsValue,
340 std::numeric_limits<ResultType>::max());
344 template <
typename ResultType>
346 ResultType maximumResultType) {
347 return statisticsValue > static_cast<uint64_t>(maximumResultType)
349 : static_cast<ResultType>(statisticsValue);
MONGO_DISALLOW_COPYING(WiredTigerConfigParser)
static int onError(WT_EVENT_HANDLER *handler, WT_SESSION *session, int error, const char *message)
Definition: wiredtiger_util.cpp:486
static int64_t getIdentSize(WT_SESSION *s, const std::string &uri)
Definition: wiredtiger_util.cpp:354
Definition: wiredtiger_util.h:76
KVEngine * engine
Definition: kv_engine_test_timestamps.cpp:205
static int verifyTable(OperationContext *opCtx, const std::string &uri, std::vector< std::string > *errors=NULL)
Calls WT_SESSION::validate() on a side-session to ensure that your current transaction isn't left in ...
Definition: wiredtiger_util.cpp:499
Collection *const const NamespaceString & ns
Definition: collection_info_cache_impl.cpp:53
WiredTigerItem(const void *d, size_t s)
Definition: wiredtiger_util.h:77
Copyright (C) 2014 MongoDB Inc.
Definition: bson_collection_catalog_entry.cpp:38
static Status getApplicationMetadata(OperationContext *opCtx, StringData uri, BSONObjBuilder *bob)
Reads app_metadata for collection/index at URI as a BSON document.
Definition: wiredtiger_util.cpp:161
WT_ITEM * Get()
Definition: wiredtiger_util.h:87
Definition: wiredtiger_util.h:237
WiredTigerConfigParser(const WT_CONFIG_ITEM &nested)
Definition: wiredtiger_util.h:290
BSONObj key
Definition: btree_interface.cpp:334
static StatusWith< std::string > getMetadata(OperationContext *opCtx, StringData uri)
Gets entire metadata string for collection/index at URI.
Definition: wiredtiger_util.cpp:133
~WiredTigerConfigParser()
Definition: wiredtiger_util.h:295
static void fetchTypeAndSourceURI(OperationContext *opCtx, const std::string &tableUri, std::string *type, std::string *source)
Fetch the type and source fields out of the colgroup metadata.
Definition: wiredtiger_util.cpp:110
This is a structure that caches 1 cursor for each uri.
Definition: wiredtiger_session_cache.h:65
static size_t getCacheSizeMB(double requestedCacheSizeGB)
Return amount of memory to use for the WiredTiger cache based on either the startup option chosen or ...
Definition: wiredtiger_util.cpp:368
const ErrorHandler _defaultErrorHandler
Definition: wiredtiger_util.h:250
WT_EVENT_HANDLER * getWtEventHandler()
Definition: wiredtiger_util.cpp:469
WiredTigerItem(const std::string &str)
Definition: wiredtiger_util.h:81
std::shared_ptr< void > data
Definition: ephemeral_for_test_record_store_test.cpp:74
Definition: wiredtiger_kv_engine.h:66
bool wt_keeptxnopen()
Definition: wiredtiger_util.h:51
ErrorAccumulator(std::vector< std::string > *errors)
Definition: wiredtiger_util.cpp:476
OperationContext Database StringData CollectionOptions bool const BSONObj &idIndex Status
Definition: database_impl.cpp:955
const WT_ITEM * Get() const
Definition: wiredtiger_util.h:90
static Status checkTableCreationOptions(const BSONElement &configElem)
Validates the 'configString' specified as a collection or index creation option.
Definition: wiredtiger_util.cpp:283
WiredTigerEventHandler()
Definition: wiredtiger_util.cpp:459
WiredTigerConfigParser(StringData config)
Definition: wiredtiger_util.h:285
int(*)(WT_EVENT_HANDLER *, WT_SESSION *, int, const char *) ErrorHandler
Definition: wiredtiger_util.h:247
Definition: index_key_validate.h:40
bool wasStartupSuccessful()
Definition: wiredtiger_util.h:109
static StatusWith< int64_t > checkApplicationMetadataFormatVersion(OperationContext *opCtx, StringData uri, int64_t minimumVersion, int64_t maximumVersion)
Validates formatVersion in application metadata for 'uri'.
Definition: wiredtiger_util.cpp:227
int next(WT_CONFIG_ITEM *key, WT_CONFIG_ITEM *value)
Definition: wiredtiger_util.h:299
static Status exportTableToBSON(WT_SESSION *s, const std::string &uri, const std::string &config, BSONObjBuilder *bob)
Reads contents of table using URI and exports all keys to BSON as string elements.
Definition: wiredtiger_util.cpp:541
static StatusWith< ResultType > getStatisticsValueAs(WT_SESSION *session, const std::string &uri, const std::string &config, int statisticsKey)
Reads individual statistics using URI and casts to type ResultType.
Definition: wiredtiger_util.h:313
static bool useTableLogging(NamespaceString ns, bool replEnabled)
Definition: wiredtiger_util.cpp:519
Returns a WT_EVENT_HANDLER with MongoDB's default handlers.
Definition: wiredtiger_util.h:103
void setStartupSuccessful()
Definition: wiredtiger_util.h:113
static StatusWith< uint64_t > getStatisticsValue(WT_SESSION *session, const std::string &uri, const std::string &config, int statisticsKey)
Reads individual statistics using URI.
Definition: wiredtiger_util.cpp:314
static void appendSnapshotWindowSettings(WiredTigerKVEngine *engine, WiredTigerSession *session, BSONObjBuilder *bob)
Appends information about the storage engine's currently available snapshots and the settings that af...
Definition: wiredtiger_util.cpp:605
static T _castStatisticsValue(uint64_t statisticsValue)
Casts unsigned 64-bit statistics value to T.
Status wtRCToStatus(int retCode, const char *prefix=NULL)
converts wiredtiger return codes to mongodb statuses.
Definition: wiredtiger_util.h:60
Status wtRCToStatus_slow(int retCode, const char *prefix)
Definition: wiredtiger_util.cpp:82
std::vector< std::string > *const _errors
Definition: wiredtiger_util.h:249
int suppressibleStartupErrorLog(WT_EVENT_HANDLER *handler, WT_SESSION *sesion, int errorCode, const char *message)
Collection *const OperationContext *const opCtx
Definition: collection_impl.cpp:80
bool _startupSuccessful
Definition: wiredtiger_util.h:123
int get(const char *key, WT_CONFIG_ITEM *value)
Definition: wiredtiger_util.h:303
#define invariantWTOK(expression)
Definition: wiredtiger_util.h:67
MONGO_DISALLOW_COPYING(WiredTigerUtil)
std::string uri
Definition: wiredtiger_standard_record_store_test.cpp:367
Definition: wiredtiger_util.h:126
Definition: wiredtiger_util.h:281
WT_CONFIG_PARSER * _parser
Definition: wiredtiger_util.h:308