Reverted erroneous modification [#METR-19997].

This commit is contained in:
Alexey Milovidov 2016-03-16 06:02:20 +03:00
parent 9dc7b7ef03
commit 0f7054ab63

View File

@ -46,7 +46,7 @@ typedef std::shared_ptr<IStorage> StoragePtr;
* - структура хранения данных (сжатие, etc.)
* - конкуррентный доступ к данным (блокировки, etc.)
*/
class IStorage : private boost::noncopyable, public ITableDeclaration, private std::enable_shared_from_this<IStorage>
class IStorage : private boost::noncopyable, public ITableDeclaration
{
public:
/// Основное имя типа таблицы (например, StorageMergeTree).
@ -279,7 +279,13 @@ public:
*/
std::shared_ptr<IStorage> thisPtr()
{
return shared_from_this();
std::shared_ptr<IStorage> res = this_ptr.lock();
if (!res)
{
res.reset(this);
this_ptr = res;
}
return res;
}
bool is_dropped{false};
@ -294,6 +300,8 @@ protected:
using ITableDeclaration::ITableDeclaration;
private:
std::weak_ptr<IStorage> this_ptr;
/// Брать следующие два лока всегда нужно в этом порядке.
/** Берется на чтение на все время запроса INSERT и на все время слияния кусков (для MergeTree).