From b8fe0a2a11f3d51e969128c7f02a83cf9b9d65df Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Fri, 22 Jul 2011 14:49:29 +0200 Subject: Add pragma for setting type's or member's default value New pragma: default. New test: default. --- common/default/test.hxx | 70 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+) create mode 100644 common/default/test.hxx (limited to 'common/default/test.hxx') diff --git a/common/default/test.hxx b/common/default/test.hxx new file mode 100644 index 0000000..a676753 --- /dev/null +++ b/common/default/test.hxx @@ -0,0 +1,70 @@ +// file : common/default/test.hxx +// author : Boris Kolpackov +// copyright : Copyright (c) 2009-2011 Code Synthesis Tools CC +// license : GNU GPL v2; see accompanying LICENSE file + +#ifndef TEST_HXX +#define TEST_HXX + +#include +#include + +enum color {red, green, blue}; + +typedef unsigned long ulong; +#pragma db value(ulong) default(0) // @@ Can't do value(unsigned long). + +#pragma db object +struct object +{ + #pragma db id + unsigned long obj_id; + + // NULL. + // + #pragma db null default(null) + unsigned long null; + + // Boolean. + // + #pragma db default(true) + bool b; + + // Integers. + // + #pragma db default(1234) + unsigned long pi; + + #pragma db default(-1234) + long ni; + + // 0 default taken from the type. + unsigned long zi; + + // Floats. + // + #pragma db default(1.234) + double pf; + + #pragma db default(-1.234) + double nf; + + #pragma db default(0.0) + double zf; + + #pragma db default(1.123e+10) + double sf; + + // Strings. MySQL doesn't support default values on TEXT + // columns, so make the type VARCHAR. + // + #pragma db type("VARCHAR(64)") default("Someone's string") + std::string str; + + // Enums. + // + #pragma db default(green) + color e; +}; + +#endif // TEST_HXX -- cgit v1.1