aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorConstantin Michael <constantin@codesynthesis.com>2011-07-07 15:00:58 +0200
committerConstantin Michael <constantin@codesynthesis.com>2011-07-08 13:58:43 +0200
commit6d7ac4aa978914e8e9e274f813f3aa4a9396a2fa (patch)
treefd64046687cb985c69e9a63d926a667044155a7c
parentfbbf6259aa0d721e20b367c97703608cb3e35cfa (diff)
Add CASCADE to PostgreSQL DROP TABLE statements
-rw-r--r--odb/relational/pgsql/schema.cxx26
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.
//