From af12ffe836de09ec84f666effa4df347eeb07a43 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Thu, 26 Jan 2012 12:43:16 +0200 Subject: Implement support for database schema New pragma qualifier: namespace. New pragma specifier: schema. The table specifier was extended to accept a schema prefix. New option: --default- schema. The common/schema test was extended to cover the new functionality. --- odb/traversal/relational/elements.cxx | 18 ------------------ odb/traversal/relational/elements.hxx | 25 ++++++++++++++++++++----- 2 files changed, 20 insertions(+), 23 deletions(-) delete mode 100644 odb/traversal/relational/elements.cxx (limited to 'odb/traversal') diff --git a/odb/traversal/relational/elements.cxx b/odb/traversal/relational/elements.cxx deleted file mode 100644 index de9c259..0000000 --- a/odb/traversal/relational/elements.cxx +++ /dev/null @@ -1,18 +0,0 @@ -// file : odb/traversal/relational/elements.cxx -// author : Boris Kolpackov -// copyright : Copyright (c) 2009-2011 Code Synthesis Tools CC -// license : GNU GPL v3; see accompanying LICENSE file - -#include - -namespace traversal -{ - namespace relational - { - void names:: - traverse (type& e) - { - dispatch (e.nameable ()); - } - } -} diff --git a/odb/traversal/relational/elements.hxx b/odb/traversal/relational/elements.hxx index 72b8c39..e40a9f6 100644 --- a/odb/traversal/relational/elements.hxx +++ b/odb/traversal/relational/elements.hxx @@ -94,7 +94,8 @@ namespace traversal // Edges // - struct names: edge + template + struct names: edge > { names () { @@ -102,18 +103,28 @@ namespace traversal names (node_dispatcher& n) { - node_traverser (n); + this->node_traverser (n); } virtual void - traverse (type&); + traverse (semantics::relational::names& e) + { + dispatch (e.nameable ()); + } }; + typedef names unames; + typedef names qnames; + // // Nodes // - struct nameable: node {}; + template + struct nameable: node > {}; + + typedef nameable unameable; + typedef nameable qnameable; // // @@ -140,7 +151,11 @@ namespace traversal } }; - struct scope: scope_template {}; + template + struct scope: scope_template > {}; + + typedef scope uscope; + typedef scope qscope; } } -- cgit v1.1