summaryrefslogtreecommitdiff
path: root/odb/semantics/relational/primary-key.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'odb/semantics/relational/primary-key.cxx')
-rw-r--r--odb/semantics/relational/primary-key.cxx26
1 files changed, 22 insertions, 4 deletions
diff --git a/odb/semantics/relational/primary-key.cxx b/odb/semantics/relational/primary-key.cxx
index f5e776d..480923d 100644
--- a/odb/semantics/relational/primary-key.cxx
+++ b/odb/semantics/relational/primary-key.cxx
@@ -3,13 +3,30 @@
// license : GNU GPL v3; see accompanying LICENSE file
#include <cutl/compiler/type-info.hxx>
-
-#include <odb/semantics/relational/primary-key.hxx>
+#include <odb/semantics/relational.hxx>
namespace semantics
{
namespace relational
{
+ primary_key::
+ primary_key (xml::parser& p, uscope& s, graph& g)
+ : key (p, s, g),
+ auto__ (p.attribute ("auto", false))
+ {
+ }
+
+ void primary_key::
+ serialize (xml::serializer& s) const
+ {
+ s.start_element (xmlns, "primary-key");
+ key::serialize_attributes (s);
+ if (auto_ ())
+ s.attribute ("auto", true);
+ key::serialize_content (s);
+ s.end_element ();
+ }
+
// type info
//
namespace
@@ -18,10 +35,11 @@ namespace semantics
{
init ()
{
+ unameable::parser_map_["primary-key"] =
+ &unameable::parser_impl<primary_key>;
+
using compiler::type_info;
- // primary_key
- //
{
type_info ti (typeid (primary_key));
ti.add_base (typeid (unameable));