From a4f25daf17392c9c4b90de60b9d777290706f667 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Mon, 8 Apr 2013 11:13:51 +0200 Subject: Generate add/drop foreign key migration statements Also add the --fkeys-deferrable-mode option. General schemas generation rework. --- odb/semantics/relational/foreign-key.hxx | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) (limited to 'odb/semantics/relational/foreign-key.hxx') diff --git a/odb/semantics/relational/foreign-key.hxx b/odb/semantics/relational/foreign-key.hxx index 50a3fae..458683f 100644 --- a/odb/semantics/relational/foreign-key.hxx +++ b/odb/semantics/relational/foreign-key.hxx @@ -7,6 +7,7 @@ #include +#include #include #include @@ -38,10 +39,15 @@ namespace semantics } public: + typedef relational::deferrable deferrable_type; + + deferrable_type + deferrable () const {return deferrable_;} + bool - deferred () const + not_deferrable () const { - return deferred_; + return deferrable_ == deferrable_type::not_deferrable; } enum action_type @@ -51,19 +57,16 @@ namespace semantics }; action_type - on_delete () const - { - return on_delete_; - } + on_delete () const {return on_delete_;} public: foreign_key (string const& id, qname const& referenced_table, - bool deferred, + deferrable_type deferrable, action_type on_delete = no_action) : key (id), referenced_table_ (referenced_table), - deferred_ (deferred), + deferrable_ (deferrable), on_delete_ (on_delete) { } @@ -93,7 +96,7 @@ namespace semantics private: qname referenced_table_; columns referenced_columns_; - bool deferred_; + deferrable_type deferrable_; action_type on_delete_; }; @@ -108,7 +111,7 @@ namespace semantics public: add_foreign_key (string const& id, qname const& rt, - bool d, + deferrable_type d, action_type od = no_action) : foreign_key (id, rt, d, od) {} add_foreign_key (foreign_key const& fk, uscope& s, graph& g) -- cgit v1.1