//===----------------------------------------------------------------------===// // DuckDB // // duckdb/planner/operator/logical_copy_to_file.hpp // // //===----------------------------------------------------------------------===// #pragma once #include "duckdb/common/filename_pattern.hpp" #include "duckdb/common/local_file_system.hpp" #include "duckdb/function/copy_function.hpp" #include "duckdb/planner/logical_operator.hpp" namespace duckdb { class LogicalCopyToFile : public LogicalOperator { public: static constexpr const LogicalOperatorType TYPE = LogicalOperatorType::LOGICAL_COPY_TO_FILE; public: LogicalCopyToFile(CopyFunction function, unique_ptr bind_data) : LogicalOperator(LogicalOperatorType::LOGICAL_COPY_TO_FILE), function(function), bind_data(std::move(bind_data)) { } CopyFunction function; unique_ptr bind_data; std::string file_path; bool use_tmp_file; FilenamePattern filename_pattern; bool overwrite_or_ignore; bool per_thread_output; bool partition_output; vector partition_columns; vector names; vector expected_types; public: void Serialize(FieldWriter &writer) const override; static unique_ptr Deserialize(LogicalDeserializationState &state, FieldReader &reader); idx_t EstimateCardinality(ClientContext &context) override; //! Skips the serialization check in VerifyPlan bool SupportSerialization() const override { return false; } protected: void ResolveTypes() override { types.emplace_back(LogicalType::BIGINT); } }; } // namespace duckdb