//===----------------------------------------------------------------------===// // DuckDB // // duckdb/planner/operator/logical_cross_product.hpp // // //===----------------------------------------------------------------------===// #pragma once #include "duckdb/planner/operator/logical_unconditional_join.hpp" namespace duckdb { //! LogicalCrossProduct represents a cross product between two relations class LogicalCrossProduct : public LogicalUnconditionalJoin { LogicalCrossProduct() : LogicalUnconditionalJoin(LogicalOperatorType::LOGICAL_CROSS_PRODUCT) {}; public: static constexpr const LogicalOperatorType TYPE = LogicalOperatorType::LOGICAL_CROSS_PRODUCT; public: LogicalCrossProduct(unique_ptr left, unique_ptr right); public: static unique_ptr Create(unique_ptr left, unique_ptr right); void Serialize(FieldWriter &writer) const override; static unique_ptr Deserialize(LogicalDeserializationState &state, FieldReader &reader); }; } // namespace duckdb