#pragma once #include "ValueSourceVisitor.h" #include namespace DB { namespace ErrorCodes { extern const int NOT_IMPLEMENTED; } namespace GatherUtils { struct IValueSource { virtual ~IValueSource() = default; virtual void accept(ValueSourceVisitor &) { throw Exception("Accept not implemented for " + demangle(typeid(*this).name()), ErrorCodes::NOT_IMPLEMENTED); } virtual bool isConst() const { return false; } }; template class ValueSourceImpl : public Visitable {}; } }