From 3d1969a43fce72dd50044c5eada38557f3f200bd Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Mon, 8 Oct 2012 16:09:08 +0200 Subject: Ground work for multi-database support All generated code now includes database id. The database-specific database class interface has been updated to include all the database operations. The database-specific tests now use this interface. --- pgsql/custom/driver.cxx | 7 ++++--- pgsql/custom/query.hxx | 34 +++++++++++++++++----------------- pgsql/database/driver.cxx | 3 ++- pgsql/index/driver.cxx | 7 ++++--- pgsql/native/driver.cxx | 6 ++++-- pgsql/template/driver.cxx | 5 +++-- pgsql/truncation/driver.cxx | 9 +++++---- pgsql/types/driver.cxx | 5 +++-- 8 files changed, 42 insertions(+), 34 deletions(-) (limited to 'pgsql') diff --git a/pgsql/custom/driver.cxx b/pgsql/custom/driver.cxx index f1f70f8..7188f74 100644 --- a/pgsql/custom/driver.cxx +++ b/pgsql/custom/driver.cxx @@ -18,14 +18,15 @@ #include "test-odb.hxx" using namespace std; -using namespace odb::core; +namespace pgsql = odb::pgsql; +using namespace pgsql; int main (int argc, char* argv[]) { try { - auto_ptr db (create_database (argc, argv)); + auto_ptr db (create_specific_database (argc, argv)); object o (1); o.p = point (1.1111, 2222222222.2); @@ -61,7 +62,7 @@ main (int argc, char* argv[]) // Query. // - typedef odb::query query; + typedef pgsql::query query; typedef odb::result result; { diff --git a/pgsql/custom/query.hxx b/pgsql/custom/query.hxx index 4b29b45..432d25b 100644 --- a/pgsql/custom/query.hxx +++ b/pgsql/custom/query.hxx @@ -34,18 +34,18 @@ namespace odb // is_null, is_not_null // public: - query + query_base is_null () const { - query q (table_, column_); + query_base q (table_, column_); q += "IS NULL"; return q; } - query + query_base is_not_null () const { - query q (table_, column_); + query_base q (table_, column_); q += "IS NOT NULL"; return q; } @@ -53,61 +53,61 @@ namespace odb // = // public: - query + query_base equal (const point& v) const { return equal (val_bind (v)); } - query + query_base equal (val_bind v) const { - query q (table_, column_); + query_base q (table_, column_); q += "~="; q.append (v, conversion_); return q; } - query + query_base equal (ref_bind r) const { - query q (table_, column_); + query_base q (table_, column_); q += "~="; q.append (r, conversion_); return q; } - friend query + friend query_base operator== (const query_column& c, const point& v) { return c.equal (v); } - friend query + friend query_base operator== (const point& v, const query_column& c) { return c.equal (v); } - friend query + friend query_base operator== (const query_column& c, val_bind v) { return c.equal (v); } - friend query + friend query_base operator== (val_bind v, const query_column& c) { return c.equal (v); } - friend query + friend query_base operator== (const query_column& c, ref_bind r) { return c.equal (r); } - friend query + friend query_base operator== (ref_bind r, const query_column& c) { return c.equal (r); @@ -116,10 +116,10 @@ namespace odb // Column comparison. // public: - query + query_base operator== (const query_column& c) const { - query q (table_, column_); + query_base q (table_, column_); q += "~="; q.append (c.table (), c.column ()); return q; diff --git a/pgsql/database/driver.cxx b/pgsql/database/driver.cxx index 8746c37..68c34ab 100644 --- a/pgsql/database/driver.cxx +++ b/pgsql/database/driver.cxx @@ -7,7 +7,8 @@ #include -using namespace odb::pgsql; +namespace pgsql = odb::pgsql; +using namespace pgsql; int main (int argc, char* argv[]) diff --git a/pgsql/index/driver.cxx b/pgsql/index/driver.cxx index 48ac5f8..4c46b58 100644 --- a/pgsql/index/driver.cxx +++ b/pgsql/index/driver.cxx @@ -1,4 +1,4 @@ -// file : pgsql/template/driver.cxx +// file : pgsql/index/driver.cxx // copyright : Copyright (c) 2009-2012 Code Synthesis Tools CC // license : GNU GPL v2; see accompanying LICENSE file @@ -18,7 +18,8 @@ #include "test-odb.hxx" using namespace std; -using namespace odb::core; +namespace pgsql = odb::pgsql; +using namespace pgsql; int main (int argc, char* argv[]) @@ -27,7 +28,7 @@ main (int argc, char* argv[]) { // This is just a schema creation test. // - auto_ptr db (create_database (argc, argv)); + auto_ptr db (create_specific_database (argc, argv)); { transaction t (db->begin ()); diff --git a/pgsql/native/driver.cxx b/pgsql/native/driver.cxx index 94bda60..3e4b680 100644 --- a/pgsql/native/driver.cxx +++ b/pgsql/native/driver.cxx @@ -10,18 +10,20 @@ #include #include +#include #include using namespace std; -using namespace odb::core; +namespace pgsql = odb::pgsql; +using namespace pgsql; int main (int argc, char* argv[]) { try { - auto_ptr db (create_database (argc, argv)); + auto_ptr db (create_specific_database (argc, argv)); // Create the database schema. // diff --git a/pgsql/template/driver.cxx b/pgsql/template/driver.cxx index 329c91c..9297ab0 100644 --- a/pgsql/template/driver.cxx +++ b/pgsql/template/driver.cxx @@ -18,14 +18,15 @@ #include "test-odb.hxx" using namespace std; -using namespace odb::core; +namespace pgsql = odb::pgsql; +using namespace pgsql; int main (int argc, char* argv[]) { try { - auto_ptr db (create_database (argc, argv)); + auto_ptr db (create_specific_database (argc, argv)); // // diff --git a/pgsql/truncation/driver.cxx b/pgsql/truncation/driver.cxx index eefbdcd..fe72780 100644 --- a/pgsql/truncation/driver.cxx +++ b/pgsql/truncation/driver.cxx @@ -18,7 +18,8 @@ #include "test-odb.hxx" using namespace std; -using namespace odb::core; +namespace pgsql = odb::pgsql; +using namespace pgsql; int main (int argc, char* argv[]) @@ -33,7 +34,7 @@ main (int argc, char* argv[]) // Test basic operations. // { - auto_ptr db (create_database (argc, argv)); + auto_ptr db (create_specific_database (argc, argv)); // Run persist/load so that the initial bindings are established // (version == 0). @@ -98,10 +99,10 @@ main (int argc, char* argv[]) // Test query. // { - typedef odb::query query; + typedef pgsql::query query; typedef odb::result result; - auto_ptr db (create_database (argc, argv)); + auto_ptr db (create_specific_database (argc, argv)); // Run persist/query so that the initial bindings are established // (version == 0). diff --git a/pgsql/types/driver.cxx b/pgsql/types/driver.cxx index 8b51cc5..8b969aa 100644 --- a/pgsql/types/driver.cxx +++ b/pgsql/types/driver.cxx @@ -18,14 +18,15 @@ #include "test-odb.hxx" using namespace std; -using namespace odb::core; +namespace pgsql = odb::pgsql; +using namespace pgsql; int main (int argc, char* argv[]) { try { - auto_ptr db (create_database (argc, argv)); + auto_ptr db (create_specific_database (argc, argv)); object o (1); -- cgit v1.1