From 15b1a95942518c84f8161c59820ea5d0e49a4e54 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Fri, 27 Apr 2012 11:36:43 +0200 Subject: Add support for NULL pointers to objects with composite object ids --- odb/relational/pgsql/inline.cxx | 43 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 odb/relational/pgsql/inline.cxx (limited to 'odb/relational/pgsql') diff --git a/odb/relational/pgsql/inline.cxx b/odb/relational/pgsql/inline.cxx new file mode 100644 index 0000000..ece021a --- /dev/null +++ b/odb/relational/pgsql/inline.cxx @@ -0,0 +1,43 @@ +// file : odb/relational/pgsql/inline.cxx +// copyright : Copyright (c) 2009-2012 Code Synthesis Tools CC +// license : GNU GPL v3; see accompanying LICENSE file + +#include + +#include +#include + +using namespace std; + +namespace relational +{ + namespace pgsql + { + namespace inline_ + { + namespace relational = relational::inline_; + + struct null_member: relational::null_member_impl, + member_base + { + null_member (base const& x) + : member_base::base (x), // virtual base + member_base::base_impl (x), // virtual base + base_impl (x), + member_base (x) + { + } + + virtual void + traverse_simple (member_info& mi) + { + if (get_) + os << "r = r && i." << mi.var << "null;"; + else + os << "i." << mi.var << "null = true;"; + } + }; + entry null_member_; + } + } +} -- cgit v1.1