#pragma once #include namespace DB { class Context; /* s3(source, [access_key_id, secret_access_key,] format, structure) - creates a temporary storage for a file in S3 */ class TableFunctionS3 : public ITableFunction { public: static constexpr auto name = "s3"; std::string getName() const override { return name; } private: StoragePtr executeImpl( const ASTPtr & ast_function, const Context & context, const std::string & table_name) const override; StoragePtr getStorage( const String & source, const String & access_key_id, const String & secret_access_key, const String & format, const ColumnsDescription & columns, Context & global_context, const std::string & table_name, const String & compression_method) const; }; }