//===----------------------------------------------------------------------===// // DuckDB // // duckdb/parser/constraints/foreign_key_constraint.hpp // // //===----------------------------------------------------------------------===// #pragma once #include "duckdb/parser/constraint.hpp" #include "duckdb/common/vector.hpp" namespace duckdb { class ForeignKeyConstraint : public Constraint { public: static constexpr const ConstraintType TYPE = ConstraintType::FOREIGN_KEY; public: DUCKDB_API ForeignKeyConstraint(vector pk_columns, vector fk_columns, ForeignKeyInfo info); //! The set of main key table's columns vector pk_columns; //! The set of foreign key table's columns vector fk_columns; ForeignKeyInfo info; public: DUCKDB_API string ToString() const override; DUCKDB_API unique_ptr Copy() const override; //! Serialize to a stand-alone binary blob DUCKDB_API void Serialize(FieldWriter &writer) const override; //! Deserializes a ParsedConstraint DUCKDB_API static unique_ptr Deserialize(FieldReader &source); }; } // namespace duckdb