diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2013-12-04 11:30:33 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2013-12-04 11:30:33 +0200 |
commit | 3417fc7c0df3b1b01750874587c4f3bb2ef02f45 (patch) | |
tree | a35f2439f7f72212d8ad05d3b8175e992d9a917f /odb/semantics | |
parent | a0bf13c2522cc9c029af53f40970a3d0c19e178f (diff) |
Implement on_delete pragma for object pointers
Translates to the ON DELETE SQL clause.
Diffstat (limited to 'odb/semantics')
-rw-r--r-- | odb/semantics/relational/foreign-key.cxx | 4 | ||||
-rw-r--r-- | odb/semantics/relational/foreign-key.hxx | 3 |
2 files changed, 5 insertions, 2 deletions
diff --git a/odb/semantics/relational/foreign-key.cxx b/odb/semantics/relational/foreign-key.cxx index 8188e1f..59b401b 100644 --- a/odb/semantics/relational/foreign-key.cxx +++ b/odb/semantics/relational/foreign-key.cxx @@ -15,7 +15,7 @@ namespace semantics { namespace relational { - static const char* action_str[] = {"NO ACTION", "CASCADE"}; + static const char* action_str[] = {"NO ACTION", "CASCADE", "SET NULL"}; ostream& operator<< (ostream& os, foreign_key::action_type v) @@ -38,6 +38,8 @@ namespace semantics v = foreign_key::no_action; else if (s == "CASCADE") v = foreign_key::cascade; + else if (s == "SET NULL") + v = foreign_key::set_null; else is.setstate (istream::failbit); } diff --git a/odb/semantics/relational/foreign-key.hxx b/odb/semantics/relational/foreign-key.hxx index 458683f..859b940 100644 --- a/odb/semantics/relational/foreign-key.hxx +++ b/odb/semantics/relational/foreign-key.hxx @@ -53,7 +53,8 @@ namespace semantics enum action_type { no_action, - cascade + cascade, + set_null }; action_type |