diff options
author | Benety Goh <benety@mongodb.com> | 2018-12-19 22:24:30 -0500 |
---|---|---|
committer | Benety Goh <benety@mongodb.com> | 2018-12-19 22:24:49 -0500 |
commit | fc1aa5592b8783dc802668659ec87826d789dd2f (patch) | |
tree | af7436ffc208b4cd3389df91009d83ca4ad413ad /src/mongo | |
parent | 424946d39691708bad0b0719ce4e67138b747c5e (diff) | |
download | mongo-fc1aa5592b8783dc802668659ec87826d789dd2f.tar.gz |
SERVER-38700 unshim Database
Diffstat (limited to 'src/mongo')
-rw-r--r-- | src/mongo/db/SConscript | 3 | ||||
-rw-r--r-- | src/mongo/db/catalog/SConscript | 15 | ||||
-rw-r--r-- | src/mongo/db/catalog/database.cpp | 43 | ||||
-rw-r--r-- | src/mongo/db/catalog/database.h | 286 | ||||
-rw-r--r-- | src/mongo/db/catalog/database_holder_impl.cpp | 4 | ||||
-rw-r--r-- | src/mongo/db/catalog/database_impl.cpp | 21 | ||||
-rw-r--r-- | src/mongo/db/catalog/database_impl.h | 77 | ||||
-rw-r--r-- | src/mongo/db/commands/SConscript | 1 | ||||
-rw-r--r-- | src/mongo/db/matcher/SConscript | 1 | ||||
-rw-r--r-- | src/mongo/db/repl/SConscript | 3 |
10 files changed, 72 insertions, 382 deletions
diff --git a/src/mongo/db/SConscript b/src/mongo/db/SConscript index 3cfdc818fbb..76ac4282555 100644 --- a/src/mongo/db/SConscript +++ b/src/mongo/db/SConscript @@ -698,7 +698,6 @@ env.Library( '$BUILD_DIR/mongo/idl/idl_parser', 'catalog/collection', 'catalog/database_holder', - 'catalog/database', 'catalog/uuid_catalog', 'commands/test_commands_enabled', 'commands/txn_cmd_request', @@ -1032,7 +1031,6 @@ env.Library( ], LIBDEPS=[ '$BUILD_DIR/mongo/db/catalog/collection', - '$BUILD_DIR/mongo/db/catalog/database', 'rw_concern_d', 'background', 'logical_clock', @@ -1146,7 +1144,6 @@ env.Library( 'background', 'bson/dotted_path_support', 'catalog/collection', - 'catalog/database', 'catalog/document_validation', 'catalog/index_catalog_entry', 'catalog/index_catalog', diff --git a/src/mongo/db/catalog/SConscript b/src/mongo/db/catalog/SConscript index 548e148f2cb..8a708417845 100644 --- a/src/mongo/db/catalog/SConscript +++ b/src/mongo/db/catalog/SConscript @@ -196,23 +196,12 @@ env.Library( ], ) -env.Library( - target='database', - source=[ - "database.cpp", - ], - LIBDEPS=[ - '$BUILD_DIR/mongo/base', - ], -) - env.CppUnitTest( target='database_test', source=[ 'database_test.cpp', ], LIBDEPS=[ - 'database', 'multi_index_block', '$BUILD_DIR/mongo/db/auth/authmocks', '$BUILD_DIR/mongo/db/concurrency/lock_manager', @@ -286,7 +275,6 @@ env.Library( ], LIBDEPS=[ 'collection', - 'database', 'database_holder', '$BUILD_DIR/mongo/base', '$BUILD_DIR/mongo/db/namespace_string', @@ -337,7 +325,6 @@ env.Library( ], LIBDEPS_PRIVATE=[ 'collection', - 'database', 'uuid_catalog', '$BUILD_DIR/mongo/db/repair_database', '$BUILD_DIR/mongo/db/service_context', @@ -372,7 +359,6 @@ env.Library( LIBDEPS=[ 'collection', 'collection_options', - 'database', 'database_holder', 'health_log', 'index_catalog', @@ -428,7 +414,6 @@ env.Library( '$BUILD_DIR/mongo/db/write_ops', 'collection_options', 'collection', - 'database', 'index_catalog', 'index_key_validate', 'multi_index_block', diff --git a/src/mongo/db/catalog/database.cpp b/src/mongo/db/catalog/database.cpp deleted file mode 100644 index 12ef918664b..00000000000 --- a/src/mongo/db/catalog/database.cpp +++ /dev/null @@ -1,43 +0,0 @@ - -/** - * Copyright (C) 2018-present MongoDB, Inc. - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the Server Side Public License, version 1, - * as published by MongoDB, Inc. - * - * 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 - * Server Side Public License for more details. - * - * You should have received a copy of the Server Side Public License - * along with this program. If not, see - * <http://www.mongodb.com/licensing/server-side-public-license>. - * - * As a special exception, the copyright holders give permission to link the - * code of portions of this program with the OpenSSL library under certain - * conditions as described in each individual source file and distribute - * linked combinations including the program with the OpenSSL library. You - * must comply with the Server Side Public License in all respects for - * all of the code used other than as permitted herein. If you modify file(s) - * with this exception, you may extend this exception to your version of the - * file(s), but you are not obligated to do so. If you do not wish to do so, - * delete this exception statement from your version. If you delete this - * exception statement from all source files in the program, then also delete - * it in the license file. - */ - -#include "mongo/platform/basic.h" - -#include "mongo/db/catalog/database.h" - -namespace mongo { - -Database::Impl::~Impl() = default; - -MONGO_DEFINE_SHIM(Database::makeImpl); - -void Database::TUHook::hook() noexcept {} - -} // namespace mongo diff --git a/src/mongo/db/catalog/database.h b/src/mongo/db/catalog/database.h index ea77cdb9a20..74ff3b6f42b 100644 --- a/src/mongo/db/catalog/database.h +++ b/src/mongo/db/catalog/database.h @@ -33,7 +33,6 @@ #include <memory> #include <string> -#include "mongo/base/shim.h" #include "mongo/base/status.h" #include "mongo/base/string_data.h" #include "mongo/bson/bsonobj.h" @@ -59,104 +58,17 @@ class Database : public Decorable<Database> { public: typedef StringMap<Collection*> CollectionMap; - class Impl { - public: - virtual ~Impl() = 0; - - virtual void init(OperationContext* opCtx) = 0; - - virtual void close(OperationContext* opCtx, const std::string& reason) = 0; - - virtual const std::string& name() const = 0; - - virtual void clearTmpCollections(OperationContext* opCtx) = 0; - - virtual Status setProfilingLevel(OperationContext* opCtx, int newLevel) = 0; - - virtual int getProfilingLevel() const = 0; - - virtual const char* getProfilingNS() const = 0; - - virtual void setDropPending(OperationContext* opCtx, bool dropPending) = 0; - - virtual bool isDropPending(OperationContext* opCtx) const = 0; - - virtual void getStats(OperationContext* opCtx, BSONObjBuilder* output, double scale) = 0; - - virtual const DatabaseCatalogEntry* getDatabaseCatalogEntry() const = 0; - - virtual Status dropCollection(OperationContext* opCtx, - StringData fullns, - repl::OpTime dropOpTime) = 0; - virtual Status dropCollectionEvenIfSystem(OperationContext* opCtx, - const NamespaceString& fullns, - repl::OpTime dropOpTime) = 0; - - virtual Status dropView(OperationContext* opCtx, StringData fullns) = 0; - - virtual Status userCreateNS(OperationContext* opCtx, - const NamespaceString& fullns, - CollectionOptions collectionOptions, - bool createDefaultIndexes, - const BSONObj& idIndex) = 0; - - virtual Collection* createCollection(OperationContext* opCtx, - StringData ns, - const CollectionOptions& options, - bool createDefaultIndexes, - const BSONObj& idIndex) = 0; - - virtual Status createView(OperationContext* opCtx, - StringData viewName, - const CollectionOptions& options) = 0; - - virtual Collection* getCollection(OperationContext* opCtx, StringData ns) const = 0; - - virtual ViewCatalog* getViewCatalog() = 0; - - virtual Collection* getOrCreateCollection(OperationContext* opCtx, - const NamespaceString& nss) = 0; - - virtual Status renameCollection(OperationContext* opCtx, - StringData fromNS, - StringData toNS, - bool stayTemp) = 0; - - virtual const std::string& getSystemViewsName() const = 0; - - virtual StatusWith<NamespaceString> makeUniqueCollectionNamespace( - OperationContext* opCtx, StringData collectionNameModel) = 0; - - virtual void checkForIdIndexesAndDropPendingCollections(OperationContext* opCtx) = 0; - - virtual CollectionMap& collections() = 0; - virtual const CollectionMap& collections() const = 0; - - virtual uint64_t epoch() const = 0; - }; - -public: /** * Creates the namespace 'ns' in the database 'db' according to 'options'. If * 'createDefaultIndexes' is true, creates the _id index for the collection (and the system * indexes, in the case of system collections). Creates the collection's _id index according * to 'idIndex', if it is non-empty. When 'idIndex' is empty, creates the default _id index. */ - inline Status userCreateNS(OperationContext* opCtx, - const NamespaceString& fullns, - CollectionOptions collectionOptions, - bool createDefaultIndexes = true, - const BSONObj& idIndex = BSONObj()) { - return this->_impl().userCreateNS( - opCtx, fullns, std::move(collectionOptions), createDefaultIndexes, idIndex); - } - - static MONGO_DECLARE_SHIM((Database * this_, - StringData name, - DatabaseCatalogEntry*, - uint64_t epoch, - PrivateTo<Database>) - ->std::unique_ptr<Impl>) makeImpl; + virtual Status userCreateNS(OperationContext* opCtx, + const NamespaceString& fullns, + CollectionOptions collectionOptions, + bool createDefaultIndexes = true, + const BSONObj& idIndex = BSONObj()) = 0; /** * Iterating over a Database yields Collection* pointers. @@ -203,44 +115,28 @@ public: CollectionMap::const_iterator _it; }; - explicit inline Database(const StringData name, - DatabaseCatalogEntry* const dbEntry, - uint64_t epoch) - : _pimpl(makeImpl(this, name, dbEntry, epoch, PrivateCall<Database>{})) {} + Database() = default; // must call close first - inline ~Database() = default; + virtual ~Database() = default; inline Database(Database&&) = delete; inline Database& operator=(Database&&) = delete; - inline iterator begin() const { - return iterator(this->_impl().collections().begin()); - } - - inline iterator end() const { - return iterator(this->_impl().collections().end()); - } + virtual iterator begin() const = 0; + virtual iterator end() const = 0; /** * Sets up internal memory structures. */ - inline void init(OperationContext* opCtx) { - this->_impl().init(opCtx); - } + virtual void init(OperationContext* opCtx) = 0; // closes files and other cleanup see below. - inline void close(OperationContext* const opCtx, const std::string& reason) { - return this->_impl().close(opCtx, reason); - } + virtual void close(OperationContext* const opCtx, const std::string& reason) = 0; - inline const std::string& name() const { - return this->_impl().name(); - } + virtual const std::string& name() const = 0; - inline void clearTmpCollections(OperationContext* const opCtx) { - return this->_impl().clearTmpCollections(opCtx); - } + virtual void clearTmpCollections(OperationContext* const opCtx) = 0; /** * Sets a new profiling level for the database and returns the outcome. @@ -248,17 +144,11 @@ public: * @param opCtx Operation context which to use for creating the profiling collection. * @param newLevel New profiling level to use. */ - inline Status setProfilingLevel(OperationContext* const opCtx, const int newLevel) { - return this->_impl().setProfilingLevel(opCtx, newLevel); - } + virtual Status setProfilingLevel(OperationContext* const opCtx, const int newLevel) = 0; - inline int getProfilingLevel() const { - return this->_impl().getProfilingLevel(); - } + virtual int getProfilingLevel() const = 0; - inline const char* getProfilingNS() const { - return this->_impl().getProfilingNS(); - } + virtual const char* getProfilingNS() const = 0; /** * Sets the 'drop-pending' state of this Database. @@ -268,27 +158,19 @@ public: * state. * The database must be locked in MODE_X when calling this function. */ - inline void setDropPending(OperationContext* opCtx, bool dropPending) { - this->_impl().setDropPending(opCtx, dropPending); - } + virtual void setDropPending(OperationContext* opCtx, bool dropPending) = 0; /** * Returns the 'drop-pending' state of this Database. * The database must be locked in MODE_X when calling this function. */ - inline bool isDropPending(OperationContext* opCtx) const { - return this->_impl().isDropPending(opCtx); - } + virtual bool isDropPending(OperationContext* opCtx) const = 0; - inline void getStats(OperationContext* const opCtx, - BSONObjBuilder* const output, - const double scale = 1) { - return this->_impl().getStats(opCtx, output, scale); - } + virtual void getStats(OperationContext* const opCtx, + BSONObjBuilder* const output, + const double scale = 1) = 0; - inline const DatabaseCatalogEntry* getDatabaseCatalogEntry() const { - return this->_impl().getDatabaseCatalogEntry(); - } + virtual const DatabaseCatalogEntry* getDatabaseCatalogEntry() const = 0; /** * dropCollection() will refuse to drop system collections. Use dropCollectionEvenIfSystem() if @@ -297,69 +179,47 @@ public: * If we are applying a 'drop' oplog entry on a secondary, 'dropOpTime' will contain the optime * of the oplog entry. */ - inline Status dropCollection(OperationContext* const opCtx, - const StringData fullns, - repl::OpTime dropOpTime = {}) { - return this->_impl().dropCollection(opCtx, fullns, dropOpTime); - } - inline Status dropCollectionEvenIfSystem(OperationContext* const opCtx, - const NamespaceString& fullns, - repl::OpTime dropOpTime = {}) { - return this->_impl().dropCollectionEvenIfSystem(opCtx, fullns, dropOpTime); - } - - inline Status dropView(OperationContext* const opCtx, const StringData fullns) { - return this->_impl().dropView(opCtx, fullns); - } - - inline Collection* createCollection(OperationContext* const opCtx, - StringData ns, - const CollectionOptions& options = CollectionOptions(), - const bool createDefaultIndexes = true, - const BSONObj& idIndex = BSONObj()) { - return this->_impl().createCollection(opCtx, ns, options, createDefaultIndexes, idIndex); - } - - inline Status createView(OperationContext* const opCtx, - const StringData viewName, - const CollectionOptions& options) { - return this->_impl().createView(opCtx, viewName, options); - } + virtual Status dropCollection(OperationContext* const opCtx, + const StringData fullns, + repl::OpTime dropOpTime = {}) = 0; + virtual Status dropCollectionEvenIfSystem(OperationContext* const opCtx, + const NamespaceString& fullns, + repl::OpTime dropOpTime = {}) = 0; + + virtual Status dropView(OperationContext* const opCtx, const StringData fullns) = 0; + + virtual Collection* createCollection(OperationContext* const opCtx, + StringData ns, + const CollectionOptions& options = CollectionOptions(), + const bool createDefaultIndexes = true, + const BSONObj& idIndex = BSONObj()) = 0; + + virtual Status createView(OperationContext* const opCtx, + const StringData viewName, + const CollectionOptions& options) = 0; /** * @param ns - this is fully qualified, which is maybe not ideal ??? */ - inline Collection* getCollection(OperationContext* opCtx, const StringData ns) const { - return this->_impl().getCollection(opCtx, ns); - } + virtual Collection* getCollection(OperationContext* opCtx, const StringData ns) const = 0; - inline Collection* getCollection(OperationContext* opCtx, const NamespaceString& ns) const { - return this->_impl().getCollection(opCtx, ns.ns()); - } + virtual Collection* getCollection(OperationContext* opCtx, const NamespaceString& ns) const = 0; /** * Get the view catalog, which holds the definition for all views created on this database. You * must be holding a database lock to use this accessor. */ - inline ViewCatalog* getViewCatalog() { - return this->_impl().getViewCatalog(); - } - - inline Collection* getOrCreateCollection(OperationContext* const opCtx, - const NamespaceString& nss) { - return this->_impl().getOrCreateCollection(opCtx, nss); - } - - inline Status renameCollection(OperationContext* const opCtx, - const StringData fromNS, - const StringData toNS, - const bool stayTemp) { - return this->_impl().renameCollection(opCtx, fromNS, toNS, stayTemp); - } - - inline const std::string& getSystemViewsName() const { - return this->_impl().getSystemViewsName(); - } + virtual ViewCatalog* getViewCatalog() = 0; + + virtual Collection* getOrCreateCollection(OperationContext* const opCtx, + const NamespaceString& nss) = 0; + + virtual Status renameCollection(OperationContext* const opCtx, + const StringData fromNS, + const StringData toNS, + const bool stayTemp) = 0; + + virtual const std::string& getSystemViewsName() const = 0; /** * Generates a collection namespace suitable for creating a temporary collection. @@ -371,19 +231,15 @@ public: * * The database must be locked in MODE_X when calling this function. */ - inline StatusWith<NamespaceString> makeUniqueCollectionNamespace( - OperationContext* opCtx, StringData collectionNameModel) { - return this->_impl().makeUniqueCollectionNamespace(opCtx, collectionNameModel); - } + virtual StatusWith<NamespaceString> makeUniqueCollectionNamespace( + OperationContext* opCtx, StringData collectionNameModel) = 0; /** * If we are in a replset, every replicated collection must have an _id index. As we scan each * database, we also gather a list of drop-pending collection namespaces for the * DropPendingCollectionReaper to clean up eventually. */ - inline void checkForIdIndexesAndDropPendingCollections(OperationContext* opCtx) { - return this->_impl().checkForIdIndexesAndDropPendingCollections(opCtx); - } + virtual void checkForIdIndexesAndDropPendingCollections(OperationContext* opCtx) = 0; /** * A database is assigned a new epoch whenever it is closed and re-opened. This involves @@ -396,33 +252,7 @@ public: * For example, closing a database must kill all active queries against the database. This is * implemented by checking that the epoch has not changed during query yield recovery. */ - inline uint64_t epoch() const { - return this->_impl().epoch(); - } - -private: - // This structure exists to give us a customization point to decide how to force users of this - // class to depend upon the corresponding `database.cpp` Translation Unit (TU). All public - // forwarding functions call `_impl(), and `_impl` creates an instance of this structure. - struct TUHook { - static void hook() noexcept; - - explicit inline TUHook() noexcept { - if (kDebugBuild) - this->hook(); - } - }; - - inline const Impl& _impl() const { - TUHook{}; - return *this->_pimpl; - } - - inline Impl& _impl() { - TUHook{}; - return *this->_pimpl; - } - - std::unique_ptr<Impl> _pimpl; + virtual uint64_t epoch() const = 0; }; + } // namespace mongo diff --git a/src/mongo/db/catalog/database_holder_impl.cpp b/src/mongo/db/catalog/database_holder_impl.cpp index 13992415498..660909b341e 100644 --- a/src/mongo/db/catalog/database_holder_impl.cpp +++ b/src/mongo/db/catalog/database_holder_impl.cpp @@ -37,8 +37,8 @@ #include "mongo/db/audit.h" #include "mongo/db/background.h" #include "mongo/db/catalog/collection_impl.h" -#include "mongo/db/catalog/database.h" #include "mongo/db/catalog/database_catalog_entry.h" +#include "mongo/db/catalog/database_impl.h" #include "mongo/db/catalog/namespace_uuid_cache.h" #include "mongo/db/catalog/uuid_catalog.h" #include "mongo/db/concurrency/write_conflict_exception.h" @@ -168,7 +168,7 @@ Database* DatabaseHolderImpl::openDb(OperationContext* opCtx, StringData ns, boo *justCreated = true; } - auto newDb = stdx::make_unique<Database>(dbname, entry, ++_epoch); + auto newDb = stdx::make_unique<DatabaseImpl>(dbname, entry, ++_epoch); newDb->init(opCtx); // Finally replace our nullptr entry with the new Database pointer. diff --git a/src/mongo/db/catalog/database_impl.cpp b/src/mongo/db/catalog/database_impl.cpp index 2ea1d12b612..eb869e6214a 100644 --- a/src/mongo/db/catalog/database_impl.cpp +++ b/src/mongo/db/catalog/database_impl.cpp @@ -80,15 +80,6 @@ #include "mongo/util/log.h" namespace mongo { -MONGO_REGISTER_SHIM(Database::makeImpl) -(Database* const this_, - const StringData name, - DatabaseCatalogEntry* const dbEntry, - uint64_t epoch, - PrivateTo<Database>) - ->std::unique_ptr<Database::Impl> { - return stdx::make_unique<DatabaseImpl>(this_, name, dbEntry, epoch); -} namespace { MONGO_FAIL_POINT_DEFINE(hangBeforeLoggingCreateCollection); @@ -197,7 +188,7 @@ void DatabaseImpl::close(OperationContext* opCtx, const std::string& reason) { invariant(opCtx->lockState()->isW()); // Clear cache of oplog Collection pointer. - repl::oplogCheckCloseDatabase(opCtx, this->_this); + repl::oplogCheckCloseDatabase(opCtx, this); for (auto&& pair : _collections) { auto* coll = pair.second; @@ -272,8 +263,7 @@ Collection* DatabaseImpl::_getOrCreateCollectionInstance(OperationContext* opCtx return coll; } -DatabaseImpl::DatabaseImpl(Database* const this_, - const StringData name, +DatabaseImpl::DatabaseImpl(const StringData name, DatabaseCatalogEntry* const dbEntry, uint64_t epoch) : _name(name.toString()), @@ -281,9 +271,8 @@ DatabaseImpl::DatabaseImpl(Database* const this_, _epoch(epoch), _profileName(_name + ".system.profile"), _viewsName(_name + "." + DurableViewCatalog::viewsCollectionName().toString()), - _durableViews(DurableViewCatalogImpl(this_)), - _views(&_durableViews), - _this(this_) {} + _durableViews(DurableViewCatalogImpl(this)), + _views(&_durableViews) {} void DatabaseImpl::init(OperationContext* const opCtx) { Status status = validateDBName(_name); @@ -370,7 +359,7 @@ Status DatabaseImpl::setProfilingLevel(OperationContext* opCtx, int newLevel) { "the storage engine doesn't support profiling."); } - Status status = createProfileCollection(opCtx, this->_this); + Status status = createProfileCollection(opCtx, this); if (!status.isOK()) { return status; diff --git a/src/mongo/db/catalog/database_impl.h b/src/mongo/db/catalog/database_impl.h index 20cf3fb16e8..2130cdd9ce5 100644 --- a/src/mongo/db/catalog/database_impl.h +++ b/src/mongo/db/catalog/database_impl.h @@ -36,78 +36,15 @@ namespace mongo { -/** - * Represents a logical database containing Collections. - * - * The semantics for a const Database are that you can mutate individual collections but not add or - * remove them. - */ -class DatabaseImpl : public Database::Impl { +class DatabaseImpl : public Database { public: - typedef StringMap<Collection*> CollectionMap; - - /** - * Iterating over a Database yields Collection* pointers. - */ - class iterator { - public: - using iterator_category = std::forward_iterator_tag; - using value_type = Collection*; - using pointer = const value_type*; - using reference = const value_type&; - using difference_type = ptrdiff_t; - - iterator() = default; - iterator(CollectionMap::const_iterator it) : _it(it) {} - - reference operator*() const { - return _it->second; - } - - pointer operator->() const { - return &_it->second; - } - - bool operator==(const iterator& other) { - return _it == other._it; - } - - bool operator!=(const iterator& other) { - return _it != other._it; - } - - iterator& operator++() { - ++_it; - return *this; - } - - iterator operator++(int) { - auto oldPosition = *this; - ++_it; - return oldPosition; - } - - private: - CollectionMap::const_iterator _it; - }; - - explicit DatabaseImpl(Database* this_, - StringData name, - DatabaseCatalogEntry* dbEntry, - uint64_t epoch); + explicit DatabaseImpl(StringData name, DatabaseCatalogEntry* dbEntry, uint64_t epoch); // must call close first ~DatabaseImpl(); void init(OperationContext*) final; - iterator begin() const { - return iterator(_collections.begin()); - } - - iterator end() const { - return iterator(_collections.end()); - } // closes files and other cleanup see below. void close(OperationContext* opCtx, const std::string& reason) final; @@ -220,11 +157,12 @@ public: void checkForIdIndexesAndDropPendingCollections(OperationContext* opCtx) final; - inline CollectionMap& collections() final { - return _collections; + iterator begin() const final { + return iterator(_collections.begin()); } - inline const CollectionMap& collections() const final { - return _collections; + + iterator end() const final { + return iterator(_collections.end()); } uint64_t epoch() const { @@ -299,7 +237,6 @@ private: DurableViewCatalogImpl _durableViews; // interface for system.views operations ViewCatalog _views; // in-memory representation of _durableViews - Database* _this; // Pointer to wrapper, for external caller compatibility. }; } // namespace mongo diff --git a/src/mongo/db/commands/SConscript b/src/mongo/db/commands/SConscript index b601794f389..eabb2df44fa 100644 --- a/src/mongo/db/commands/SConscript +++ b/src/mongo/db/commands/SConscript @@ -283,7 +283,6 @@ env.Library( LIBDEPS_PRIVATE=[ '$BUILD_DIR/mongo/db/catalog/catalog_helpers', '$BUILD_DIR/mongo/db/catalog/collection', - '$BUILD_DIR/mongo/db/catalog/database', '$BUILD_DIR/mongo/db/commands', 'test_commands_enabled', ], diff --git a/src/mongo/db/matcher/SConscript b/src/mongo/db/matcher/SConscript index 444c2b6739e..275b275569c 100644 --- a/src/mongo/db/matcher/SConscript +++ b/src/mongo/db/matcher/SConscript @@ -166,7 +166,6 @@ env.Library( '$BUILD_DIR/mongo/scripting/scripting_server', 'expressions', '$BUILD_DIR/mongo/db/catalog/collection', - '$BUILD_DIR/mongo/db/catalog/database', '$BUILD_DIR/mongo/db/catalog/index_catalog', '$BUILD_DIR/mongo/db/catalog_raii', ], diff --git a/src/mongo/db/repl/SConscript b/src/mongo/db/repl/SConscript index 969e653c0a7..69ef7c36fb3 100644 --- a/src/mongo/db/repl/SConscript +++ b/src/mongo/db/repl/SConscript @@ -117,7 +117,6 @@ env.Library( 'repl_coordinator_interface', '$BUILD_DIR/mongo/base', '$BUILD_DIR/mongo/db/background', - '$BUILD_DIR/mongo/db/catalog/database', '$BUILD_DIR/mongo/db/cloner', '$BUILD_DIR/mongo/db/concurrency/lock_manager', '$BUILD_DIR/mongo/db/db_raii', @@ -212,7 +211,6 @@ env.Library( '$BUILD_DIR/mongo/base', '$BUILD_DIR/mongo/idl/idl_parser', '$BUILD_DIR/mongo/db/catalog/collection_options', - '$BUILD_DIR/mongo/db/catalog/database', '$BUILD_DIR/mongo/db/catalog/health_log', '$BUILD_DIR/mongo/db/db_raii', ], @@ -485,7 +483,6 @@ env.Library( 'oplog_interface_local.cpp', ], LIBDEPS=[ - '$BUILD_DIR/mongo/db/catalog/database', '$BUILD_DIR/mongo/db/db_raii', '$BUILD_DIR/mongo/db/query_exec', ], |