summaryrefslogtreecommitdiff
path: root/common/erase-query/driver.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'common/erase-query/driver.cxx')
-rw-r--r--common/erase-query/driver.cxx181
1 files changed, 0 insertions, 181 deletions
diff --git a/common/erase-query/driver.cxx b/common/erase-query/driver.cxx
deleted file mode 100644
index 6c11957..0000000
--- a/common/erase-query/driver.cxx
+++ /dev/null
@@ -1,181 +0,0 @@
-// file : common/erase-query/driver.cxx
-// license : GNU GPL v2; see accompanying LICENSE file
-
-// Test query-based erase.
-//
-
-#include <memory> // std::unique_ptr
-#include <iostream>
-
-#include <odb/database.hxx>
-#include <odb/transaction.hxx>
-
-#include <libcommon/common.hxx>
-
-#include "test.hxx"
-#include "test-odb.hxx"
-
-#undef NDEBUG
-#include <cassert>
-
-using namespace std;
-using namespace odb::core;
-
-void
-persist (database& db)
-{
- object o1 (1);
- object o2 (2);
- object o3 (3);
- object o4 (4);
-
- transaction t (db.begin ());
- db.persist (o1);
- db.persist (o2);
- db.persist (o3);
- db.persist (o4);
- t.commit ();
-}
-
-int
-main (int argc, char* argv[])
-{
- try
- {
- typedef odb::query<object> query;
-
- unique_ptr<database> db (create_database (argc, argv));
-
- // erase_query()
- //
- persist (*db);
-
- {
- transaction t (db->begin ());
- assert (db->erase_query<object> () == 4);
- t.commit ();
- }
-
- // erase_query(const char*)
- //
- persist (*db);
-
- {
- transaction t (db->begin ());
-
- if (db->id () != odb::id_oracle)
- assert (db->erase_query<object> (
- "erase_query_object.id < 3") == 2);
- else
- assert (db->erase_query<object> (
- "\"erase_query_object\".\"id\" < 3") == 2);
-
- db->erase_query<object> ();
- t.commit ();
- }
-
- // erase_query(query)
- //
- persist (*db);
-
- {
- transaction t (db->begin ());
- assert (db->erase_query<object> (query::id == 2 || query::id == 4) == 2);
- db->erase_query<object> ();
- t.commit ();
- }
-
- // Test predicates involving object pointers (DELETE JOIN).
- //
- /*
- {
- object o11 (1);
- object o12 (2);
- object o13 (3);
- object2 o2;
-
- o11.o2 = &o2;
- o2.num = 123;
-
- o12.o1 = &o13;
- o13.num = 123;
-
- transaction t (db->begin ());
- db->persist (o2);
- db->persist (o13);
- db->persist (o12);
- db->persist (o11);
- t.commit ();
- }
-
- {
- transaction t (db->begin ());
- assert (db->erase_query<object> (query::o1::num == 123) == 1);
- assert (db->erase_query<object> (query::o2::num == 123) == 1);
- db->erase_query<object> ();
- t.commit ();
- }
- */
-
- // For now we can only do column-based tests, like is_null().
- //
- {
- object o11 (1);
- object o12 (2);
- object o13 (3);
- object2 o2;
-
- o12.o2 = &o2;
-
- transaction t (db->begin ());
- db->persist (o2);
- db->persist (o13);
- db->persist (o12);
- db->persist (o11);
- t.commit ();
- }
-
- {
- transaction t (db->begin ());
- assert (db->erase_query<object> (query::o2.is_null ()) == 2);
- db->erase_query<object> ();
- t.commit ();
- }
-
- // Make sure container data is deleted.
- //
- {
- object o (1);
- o.v.push_back (1);
- o.v.push_back (2);
- o.v.push_back (3);
-
- transaction t (db->begin ());
- db->persist (o);
- t.commit ();
- }
-
- {
- transaction t (db->begin ());
- assert (db->erase_query<object> () == 1);
- t.commit ();
- }
-
- {
- transaction t (db->begin ());
-
- if (db->id () != odb::id_oracle)
- assert (db->execute ("SELECT * FROM erase_query_object_v "
- "WHERE object_id = 1") == 0);
- else
- assert (db->execute ("SELECT * FROM \"erase_query_object_v\" "
- "WHERE \"object_id\" = 1") == 0);
- t.commit ();
- }
- }
- catch (const odb::exception& e)
- {
- cerr << e.what () << endl;
- return 1;
- }
-}