From 7dbf58f9486fb3b3a021bbfab9df03af5a8f0fb3 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Thu, 7 Feb 2013 17:52:49 +0200 Subject: Use multi-pass table creation in MySQL This deals with table creation order and circular dependencies. Unfortunately, there doesn't seem to be a way in MySQL to drop a foreign key only if it exists without resorting to stored procedures. --- common/schema/driver.cxx | 112 ----------------------------------------------- 1 file changed, 112 deletions(-) delete mode 100644 common/schema/driver.cxx (limited to 'common/schema/driver.cxx') diff --git a/common/schema/driver.cxx b/common/schema/driver.cxx deleted file mode 100644 index a47d1f6..0000000 --- a/common/schema/driver.cxx +++ /dev/null @@ -1,112 +0,0 @@ -// file : common/schema/driver.cxx -// copyright : Copyright (c) 2009-2012 Code Synthesis Tools CC -// license : GNU GPL v2; see accompanying LICENSE file - -// Test various aspects of database schema. -// - -#include // std::auto_ptr -#include -#include - -#include -#include - -#include - -#include "test.hxx" -#include "test-odb.hxx" - -using namespace std; -using namespace odb::core; - -int -main (int argc, char* argv[]) -{ - try - { - auto_ptr db (create_database (argc, argv)); - - // Test database schema (aka database namespace). - // - using ns::object2; - - object2 o2; - o2.id = "aaa"; - o2.nums.push_back (1); - o2.nums.push_back (2); - o2.nums.push_back (3); - o2.obj1 = new object1; - o2.obj1->str = "aaa"; - - { - transaction t (db->begin ()); - db->persist (o2.obj1); - db->persist (o2); - t.commit (); - } - - { - transaction t (db->begin ()); - auto_ptr p2 (db->load ("aaa")); - t.commit (); - - assert (o2 == *p2); - } - - { - typedef odb::query query; - typedef odb::result result; - - transaction t (db->begin ()); - - { - result r (db->query (query::id == "aaa")); - assert (size (r) == 1); - } - - { - result r (db->query (query::obj1->str == "aaa")); - assert (size (r) == 1); - } - - t.commit (); - } - - { - typedef odb::query query; - typedef odb::result result; - - transaction t (db->begin ()); - - result r (db->query (query::object2::id == "aaa")); - - result::iterator i (r.begin ()); - assert (i != r.end ()); - assert (i->id2 == "aaa" && i->str == "aaa"); - assert (++i == r.end ()); - - t.commit (); - } - - { - typedef odb::result result; - - transaction t (db->begin ()); - - result r (db->query ()); - - result::iterator i (r.begin ()); - assert (i != r.end ()); - assert (i->str == "aaa"); - assert (++i == r.end ()); - - t.commit (); - } - } - catch (const odb::exception& e) - { - cerr << e.what () << endl; - return 1; - } -} -- cgit v1.1