summaryrefslogtreecommitdiff
path: root/odb/semantics
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2013-12-04 11:30:33 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2013-12-04 11:30:33 +0200
commit3417fc7c0df3b1b01750874587c4f3bb2ef02f45 (patch)
treea35f2439f7f72212d8ad05d3b8175e992d9a917f /odb/semantics
parenta0bf13c2522cc9c029af53f40970a3d0c19e178f (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.cxx4
-rw-r--r--odb/semantics/relational/foreign-key.hxx3
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