#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(ErrorCodes::NOT_IMPLEMENTED, "Accept not implemented for {}", demangle(typeid(*this).name())); } virtual bool isConst() const { return false; } }; template class ValueSourceImpl : public Visitable {}; } }