diff options
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 |