diff options
author | Constantin Michael <constantin@codesynthesis.com> | 2011-07-07 15:00:58 +0200 |
---|---|---|
committer | Constantin Michael <constantin@codesynthesis.com> | 2011-07-08 13:58:43 +0200 |
commit | 6d7ac4aa978914e8e9e274f813f3aa4a9396a2fa (patch) | |
tree | fd64046687cb985c69e9a63d926a667044155a7c | |
parent | fbbf6259aa0d721e20b367c97703608cb3e35cfa (diff) |
Add CASCADE to PostgreSQL DROP TABLE statements
-rw-r--r-- | odb/relational/pgsql/schema.cxx | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/odb/relational/pgsql/schema.cxx b/odb/relational/pgsql/schema.cxx index 2e4981f..de4d507 100644 --- a/odb/relational/pgsql/schema.cxx +++ b/odb/relational/pgsql/schema.cxx @@ -17,6 +17,32 @@ namespace relational namespace relational = relational::schema; // + // Drop. + // + + struct drop_common: virtual relational::drop_common + { + virtual void + drop_table (string const& table) + { + os << "DROP TABLE IF EXISTS " << quote_id (table) << " CASCADE" + << endl; + } + }; + + struct member_drop: relational::member_drop, drop_common + { + member_drop (base const& x): base (x) {} + }; + entry<member_drop> member_drop_; + + struct class_drop: relational::class_drop, drop_common + { + class_drop (base const& x): base (x) {} + }; + entry<class_drop> class_drop_; + + // // Create. // |