From 823026b58211a4166de06ac243d978dcb9930271 Mon Sep 17 00:00:00 2001 From: Karen Arutyunov Date: Mon, 22 Jan 2024 15:58:08 +0300 Subject: Turn odb repository into muti-package repository Also remove the autoconf/make-based build system. --- odb/semantics/relational/foreign-key.cxx | 218 ------------------------------- 1 file changed, 218 deletions(-) delete mode 100644 odb/semantics/relational/foreign-key.cxx (limited to 'odb/semantics/relational/foreign-key.cxx') diff --git a/odb/semantics/relational/foreign-key.cxx b/odb/semantics/relational/foreign-key.cxx deleted file mode 100644 index 0357d95..0000000 --- a/odb/semantics/relational/foreign-key.cxx +++ /dev/null @@ -1,218 +0,0 @@ -// file : odb/semantics/relational/foreign-key.cxx -// license : GNU GPL v3; see accompanying LICENSE file - -#include -#include - -#include - -#include - -using namespace std; - -namespace semantics -{ - namespace relational - { - static const char* action_str[] = {"NO ACTION", "CASCADE", "SET NULL"}; - - ostream& - operator<< (ostream& os, foreign_key::action_type v) - { - return os << action_str[v]; - } - - istream& - operator>> (istream& is, foreign_key::action_type& v) - { - string s; - getline (is, s); - - if (!is.eof ()) - is.setstate (istream::failbit); - - if (!is.fail ()) - { - if (s == "NO ACTION") - v = foreign_key::no_action; - else if (s == "CASCADE") - v = foreign_key::cascade; - else if (s == "SET NULL") - v = foreign_key::set_null; - else - is.setstate (istream::failbit); - } - - return is; - } - - foreign_key:: - foreign_key (foreign_key const& k, uscope& s, graph& g) - : key (k, s, g), - referenced_table_ (k.referenced_table_), - referenced_columns_ (k.referenced_columns_), - deferrable_ (k.deferrable_), - on_delete_ (k.on_delete_) - { - } - - foreign_key:: - foreign_key (xml::parser& p, uscope& s, graph& g) - : key (p, s, g), - deferrable_ (p.attribute ("deferrable", deferrable_type ())), - on_delete_ (p.attribute ("on-delete", no_action)) - { - using namespace xml; - - p.next_expect (parser::start_element, xmlns, "references"); - referenced_table_ = p.attribute ("table"); - p.content (content::complex); - - for (parser::event_type e (p.peek ()); - e == parser::start_element; - e = p.peek ()) - { - if (p.qname () != xml::qname (xmlns, "column")) - break; // Not our elements. - - p.next (); - referenced_columns_.push_back (p.attribute ("name")); - p.content (content::empty); - p.next_expect (parser::end_element); - } - - p.next_expect (parser::end_element); - } - - foreign_key& foreign_key:: - clone (uscope& s, graph& g) const - { - return g.new_node (*this, s, g); - } - - void foreign_key:: - serialize_attributes (xml::serializer& s) const - { - key::serialize_attributes (s); - - if (deferrable () != deferrable_type::not_deferrable) - s.attribute ("deferrable", deferrable ()); - - if (on_delete () != no_action) - s.attribute ("on-delete", on_delete ()); - } - - void foreign_key:: - serialize_content (xml::serializer& s) const - { - key::serialize_content (s); - - // Referenced columns. - // - s.start_element (xmlns, "references"); - s.attribute ("table", referenced_table ()); - - for (columns::const_iterator i (referenced_columns_.begin ()); - i != referenced_columns_.end (); ++i) - { - s.start_element (xmlns, "column"); - s.attribute ("name", *i); - s.end_element (); - } - - s.end_element (); // references - } - - void foreign_key:: - serialize (xml::serializer& s) const - { - s.start_element (xmlns, "foreign-key"); - serialize_attributes (s); - serialize_content (s); - s.end_element (); // foreign-key - } - - // add_foreign_key - // - add_foreign_key& add_foreign_key:: - clone (uscope& s, graph& g) const - { - return g.new_node (*this, s, g); - } - - void add_foreign_key:: - serialize (xml::serializer& s) const - { - s.start_element (xmlns, "add-foreign-key"); - foreign_key::serialize_attributes (s); - foreign_key::serialize_content (s); - s.end_element (); - } - - // drop_foreign_key - // - drop_foreign_key:: - drop_foreign_key (xml::parser& p, uscope&, graph& g) - : unameable (p, g) - { - p.content (xml::content::empty); - } - - drop_foreign_key& drop_foreign_key:: - clone (uscope& s, graph& g) const - { - return g.new_node (*this, s, g); - } - - void drop_foreign_key:: - serialize (xml::serializer& s) const - { - s.start_element (xmlns, "drop-foreign-key"); - unameable::serialize_attributes (s); - s.end_element (); - } - - // type info - // - namespace - { - struct init - { - init () - { - unameable::parser_map& m (unameable::parser_map_); - - m["foreign-key"] = &unameable::parser_impl; - m["add-foreign-key"] = &unameable::parser_impl; - m["drop-foreign-key"] = &unameable::parser_impl; - - using compiler::type_info; - - // foreign_key - // - { - type_info ti (typeid (foreign_key)); - ti.add_base (typeid (key)); - insert (ti); - } - - // add_foreign_key - // - { - type_info ti (typeid (add_foreign_key)); - ti.add_base (typeid (foreign_key)); - insert (ti); - } - - // drop_foreign_key - // - { - type_info ti (typeid (drop_foreign_key)); - ti.add_base (typeid (unameable)); - insert (ti); - } - } - } init_; - } - } -} -- cgit v1.1