#pragma once #include #include #include #include namespace DB { /** * This class represents table engine for external executable files. */ class StorageExecutable final : public shared_ptr_helper, public IStorage { friend struct shared_ptr_helper; public: String getName() const override { return "Executable"; } Pipe read( const Names & column_names, const StorageMetadataPtr & /*metadata_snapshot*/, SelectQueryInfo & query_info, ContextPtr context, QueryProcessingStage::Enum processed_stage, size_t max_block_size, unsigned threads) override; protected: StorageExecutable( const StorageID & table_id, const String & file_path_, const String & format_, const ColumnsDescription & columns, const ConstraintsDescription & constraints); private: String file_path; String format; Poco::Logger * log; }; }