diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2014-08-29 12:06:46 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2014-08-29 12:06:46 +0200 |
commit | b985defe92ab9107fa857d2c32b7d5182b351344 (patch) | |
tree | ece83c795e702eaa4ea534e13fa0c35bf983083a /common/inheritance/polymorphism/test15.hxx | |
parent | a3af5aadbe45eccab791eec98859f6ad722c3b58 (diff) |
Pass non-const image to clone_image(), copy_image()
This is necessary since some databases need to steal stuff from the
original image (e.g., LOB descriptors in Oracle).
Diffstat (limited to 'common/inheritance/polymorphism/test15.hxx')
-rw-r--r-- | common/inheritance/polymorphism/test15.hxx | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/common/inheritance/polymorphism/test15.hxx b/common/inheritance/polymorphism/test15.hxx new file mode 100644 index 0000000..d64f935 --- /dev/null +++ b/common/inheritance/polymorphism/test15.hxx @@ -0,0 +1,45 @@ +// file : common/inheritance/polymorphism/test15.hxx +// copyright : Copyright (c) 2009-2013 Code Synthesis Tools CC +// license : GNU GPL v2; see accompanying LICENSE file + +#ifndef TEST15_HXX +#define TEST15_HXX + +#include <vector> + +#include <odb/core.hxx> + +#ifdef ODB_COMPILER +# if defined(ODB_DATABASE_PGSQL) +# define BLOB_TYPE "BYTEA" +# elif defined(ODB_DATABASE_MSSQL) +# define BLOB_TYPE "VARBINARY(max)" +# else +# define BLOB_TYPE "BLOB" +# endif +#endif + + +// Test LOB/long data and polymorphism. +// +#pragma db namespace table("t15_") +namespace test15 +{ + #pragma db object polymorphic + struct base + { + virtual ~base () {} + + #pragma db id auto + unsigned long id; + }; + + #pragma db object + struct derived: base + { + #pragma db type(BLOB_TYPE) + std::vector<char> blob; + }; +} + +#endif // TEST15_HXX |