From b985defe92ab9107fa857d2c32b7d5182b351344 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Fri, 29 Aug 2014 12:06:46 +0200 Subject: 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). --- common/inheritance/polymorphism/test15.hxx | 45 ++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 common/inheritance/polymorphism/test15.hxx (limited to 'common/inheritance/polymorphism/test15.hxx') 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 + +#include + +#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 blob; + }; +} + +#endif // TEST15_HXX -- cgit v1.1