aboutsummaryrefslogtreecommitdiff
path: root/common/query
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2011-11-08 13:40:31 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2011-11-08 13:40:31 +0200
commit28a08724fc9e2ac494596711990206c64ca36b1d (patch)
tree5f382e92fe0810a5b93522f92f26ea33f179c8d3 /common/query
parent37a2585ce1d0801bab5d0aba50012c3bcd451739 (diff)
Get rid of custom value_traits specialization in query test
auto_ptr<string> is now handled automatically as a wrapper.
Diffstat (limited to 'common/query')
-rw-r--r--common/query/driver.cxx2
-rw-r--r--common/query/makefile6
-rw-r--r--common/query/traits-mysql.hxx59
-rw-r--r--common/query/traits-oracle.hxx60
-rw-r--r--common/query/traits-pgsql.hxx59
-rw-r--r--common/query/traits-sqlite.hxx59
-rw-r--r--common/query/traits.hxx21
7 files changed, 3 insertions, 263 deletions
diff --git a/common/query/driver.cxx b/common/query/driver.cxx
index e019fe5..6dd7757 100644
--- a/common/query/driver.cxx
+++ b/common/query/driver.cxx
@@ -399,7 +399,7 @@ main (int argc, char* argv[])
t.commit ();
}
- // Test value_traits::type != value_traits::value_type.
+ // Test value_traits::value_type != value_traits::query_type.
//
cout << "test 013" << endl;
{
diff --git a/common/query/makefile b/common/query/makefile
index f1f2fa9..63c0e77 100644
--- a/common/query/makefile
+++ b/common/query/makefile
@@ -36,8 +36,7 @@ gen := $(addprefix $(out_base)/,$(genf))
$(gen): $(odb)
$(gen): odb := $(odb)
$(gen) $(dist): export odb_options += --database $(db_id) --generate-schema \
---generate-query --hxx-prologue '\#include "traits.hxx"' \
---table-prefix t_query_
+--generate-query --table-prefix t_query_
$(gen): cpp_options := -I$(src_base)
$(gen): $(common.l.cpp-options)
@@ -54,13 +53,12 @@ name := $(subst /,-,$(subst $(src_root)/common/,,$(src_base)))
$(dist): db_id := @database@
$(dist): sources := $(cxx_tun)
$(dist): headers := $(odb_hdr)
-$(dist): export extra_headers := traits.hxx $(databases:%=traits-%.hxx)
$(dist): data_dist := test.std
$(dist): export name := $(name)
$(dist): export extra_dist := $(data_dist) $(call vc9projs,$(name)) \
$(call vc10projs,$(name))
$(dist):
- $(call dist-data,$(sources) $(headers) $(extra_headers) $(data_dist))
+ $(call dist-data,$(sources) $(headers) $(data_dist))
$(call meta-automake,../template/Makefile.am)
$(call meta-vc9projs,../template/template,$(name))
$(call meta-vc10projs,../template/template,$(name))
diff --git a/common/query/traits-mysql.hxx b/common/query/traits-mysql.hxx
deleted file mode 100644
index fb95bfd..0000000
--- a/common/query/traits-mysql.hxx
+++ /dev/null
@@ -1,59 +0,0 @@
-// file : common/query/traits-mysql.hxx
-// author : Boris Kolpackov <boris@codesynthesis.com>
-// copyright : Copyright (c) 2009-2011 Code Synthesis Tools CC
-// license : GNU GPL v2; see accompanying LICENSE file
-
-#ifndef TRAITS_MYSQL_HXX
-#define TRAITS_MYSQL_HXX
-
-#include <string>
-#include <memory> // std::auto_ptr
-#include <cstring> // std::memcpy
-
-#include <odb/mysql/traits.hxx>
-
-namespace odb
-{
- namespace mysql
- {
- template <>
- class value_traits<std::auto_ptr<std::string>, id_string>
- {
- public:
- typedef std::auto_ptr<std::string> value_type;
- typedef std::string query_type;
- typedef details::buffer image_type;
-
- static void
- set_value (std::auto_ptr<std::string>& v,
- const details::buffer& b,
- std::size_t n,
- bool is_null)
- {
- v.reset (is_null ? 0 : new std::string (b.data (), n));
- }
-
- static void
- set_image (details::buffer& b,
- std::size_t& n,
- bool& is_null,
- const std::auto_ptr<std::string>& v)
- {
- is_null = v.get () == 0;
-
- if (!is_null)
- {
- n = v->size ();
-
- if (n > b.capacity ())
- b.capacity (n);
-
- if (n != 0)
- std::memcpy (b.data (), v->c_str (), n);
- }
- }
- };
- }
-}
-
-#endif // TRAITS_MYSQL_HXX
diff --git a/common/query/traits-oracle.hxx b/common/query/traits-oracle.hxx
deleted file mode 100644
index 9f9c71b..0000000
--- a/common/query/traits-oracle.hxx
+++ /dev/null
@@ -1,60 +0,0 @@
-// file : common/query/traits-oracle.hxx
-// author : Constantin Michael <constantin@codesynthesis.com>
-// copyright : Copyright (c) 2009-2011 Code Synthesis Tools CC
-// license : GNU GPL v2; see accompanying LICENSE file
-
-#ifndef TRAITS_ORACLE_HXX
-#define TRAITS_ORACLE_HXX
-
-#include <string>
-#include <memory> // std::auto_ptr
-#include <cstring> // std::memcpy
-#include <cassert>
-
-#include <odb/oracle/traits.hxx>
-
-namespace odb
-{
- namespace oracle
- {
- template <>
- class value_traits<std::auto_ptr<std::string>, id_string>
- {
- public:
- typedef std::auto_ptr<std::string> value_type;
- typedef std::string query_type;
- typedef char* image_type;
-
- static void
- set_value (std::auto_ptr<std::string>& v,
- const char* b,
- std::size_t n,
- bool is_null)
- {
- v.reset (is_null ? 0 : new std::string (b, n));
- }
-
- static void
- set_image (char* b,
- std::size_t c,
- std::size_t& n,
- bool& is_null,
- const std::auto_ptr<std::string>& v)
- {
- is_null = v.get () == 0;
-
- if (!is_null)
- {
- n = v->size ();
-
- assert (c >= n);
-
- if (n != 0)
- std::memcpy (b, v->c_str (), n);
- }
- }
- };
- }
-}
-
-#endif // TRAITS_ORACLE_HXX
diff --git a/common/query/traits-pgsql.hxx b/common/query/traits-pgsql.hxx
deleted file mode 100644
index 5b5c5d3..0000000
--- a/common/query/traits-pgsql.hxx
+++ /dev/null
@@ -1,59 +0,0 @@
-// file : common/query/traits-pgsql.hxx
-// author : Constantin Michael <constantin@codesynthesis.com>
-// copyright : Copyright (c) 2009-2011 Code Synthesis Tools CC
-// license : GNU GPL v2; see accompanying LICENSE file
-
-#ifndef TRAITS_PGSQL_HXX
-#define TRAITS_PGSQL_HXX
-
-#include <string>
-#include <memory> // std::auto_ptr
-#include <cstring> // std::memcpy
-
-#include <odb/pgsql/traits.hxx>
-
-namespace odb
-{
- namespace pgsql
- {
- template <>
- class value_traits<std::auto_ptr<std::string>, id_string>
- {
- public:
- typedef std::auto_ptr<std::string> value_type;
- typedef std::string query_type;
- typedef details::buffer image_type;
-
- static void
- set_value (std::auto_ptr<std::string>& v,
- const details::buffer& b,
- std::size_t n,
- bool is_null)
- {
- v.reset (is_null ? 0 : new std::string (b.data (), n));
- }
-
- static void
- set_image (details::buffer& b,
- std::size_t& n,
- bool& is_null,
- const std::auto_ptr<std::string>& v)
- {
- is_null = v.get () == 0;
-
- if (!is_null)
- {
- n = v->size ();
-
- if (n > b.capacity ())
- b.capacity (n);
-
- if (n != 0)
- std::memcpy (b.data (), v->c_str (), n);
- }
- }
- };
- }
-}
-
-#endif // TRAITS_PGSQL_HXX
diff --git a/common/query/traits-sqlite.hxx b/common/query/traits-sqlite.hxx
deleted file mode 100644
index 4e58b34..0000000
--- a/common/query/traits-sqlite.hxx
+++ /dev/null
@@ -1,59 +0,0 @@
-// file : common/query/traits-sqlite.hxx
-// author : Boris Kolpackov <boris@codesynthesis.com>
-// copyright : Copyright (c) 2009-2011 Code Synthesis Tools CC
-// license : GNU GPL v2; see accompanying LICENSE file
-
-#ifndef TRAITS_SQLITE_HXX
-#define TRAITS_SQLITE_HXX
-
-#include <string>
-#include <memory> // std::auto_ptr
-#include <cstring> // std::memcpy
-
-#include <odb/sqlite/traits.hxx>
-
-namespace odb
-{
- namespace sqlite
- {
- template <>
- class value_traits<std::auto_ptr<std::string>, id_text>
- {
- public:
- typedef std::auto_ptr<std::string> value_type;
- typedef std::string query_type;
- typedef details::buffer image_type;
-
- static void
- set_value (std::auto_ptr<std::string>& v,
- const details::buffer& b,
- std::size_t n,
- bool is_null)
- {
- v.reset (is_null ? 0 : new std::string (b.data (), n));
- }
-
- static void
- set_image (details::buffer& b,
- std::size_t& n,
- bool& is_null,
- const std::auto_ptr<std::string>& v)
- {
- is_null = v.get () == 0;
-
- if (!is_null)
- {
- n = v->size ();
-
- if (n > b.capacity ())
- b.capacity (n);
-
- if (n != 0)
- std::memcpy (b.data (), v->c_str (), n);
- }
- }
- };
- }
-}
-
-#endif // TRAITS_SQLITE_HXX
diff --git a/common/query/traits.hxx b/common/query/traits.hxx
deleted file mode 100644
index ea142c9..0000000
--- a/common/query/traits.hxx
+++ /dev/null
@@ -1,21 +0,0 @@
-// file : common/query/traits.hxx
-// author : Boris Kolpackov <boris@codesynthesis.com>
-// copyright : Copyright (c) 2009-2011 Code Synthesis Tools CC
-// license : GNU GPL v2; see accompanying LICENSE file
-
-#ifndef TRAITS_HXX
-#define TRAITS_HXX
-
-#include <common/config.hxx>
-
-#if defined(DATABASE_MYSQL)
-# include "traits-mysql.hxx"
-#elif defined(DATABASE_ORACLE)
-# include "traits-oracle.hxx"
-#elif defined(DATABASE_SQLITE)
-# include "traits-sqlite.hxx"
-#elif defined(DATABASE_PGSQL)
-# include "traits-pgsql.hxx"
-#endif
-
-#endif // TRAITS_HXX