summaryrefslogtreecommitdiff
path: root/odb/relational/common-query.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'odb/relational/common-query.cxx')
-rw-r--r--odb/relational/common-query.cxx170
1 files changed, 0 insertions, 170 deletions
diff --git a/odb/relational/common-query.cxx b/odb/relational/common-query.cxx
deleted file mode 100644
index a543e77..0000000
--- a/odb/relational/common-query.cxx
+++ /dev/null
@@ -1,170 +0,0 @@
-// file : odb/relational/common-query.cxx
-// copyright : Copyright (c) 2009-2019 Code Synthesis Tools CC
-// license : GNU GPL v3; see accompanying LICENSE file
-
-#include <odb/relational/common-query.hxx>
-
-using namespace std;
-
-namespace relational
-{
- // query_alias_traits
- //
-
- void query_alias_traits::
- generate_decl_body ()
- {
- os << "static const char table_name[];";
- }
-
- void query_alias_traits::
- generate_def (semantics::data_member& m, semantics::class_& c)
- {
- // Come up with a table alias. Generally, we want it to be based
- // on the column name. This is straightforward for single-column
- // references. In case of a composite id, we will need to use the
- // column prefix which is based on the data member name, unless
- // overridden by the user. In the latter case the prefix can be
- // empty, in which case we will just fall back on the member's
- // public name.
- //
- string alias;
- {
- string n;
-
- if (composite_wrapper (utype (*id_member (c))))
- {
- n = column_prefix (m, key_prefix_, default_name_).prefix;
-
- if (n.empty ())
- n = public_name_db (m);
- else if (n[n.size () - 1] == '_')
- n.resize (n.size () - 1); // Remove trailing underscore.
- }
- else
- {
- bool dummy;
- n = column_name (m, key_prefix_, default_name_, dummy);
- }
-
- alias = column_prefix_.prefix + n;
- }
-
- generate_def (public_name (m), c, alias);
- }
-
- void query_alias_traits::
- generate_def (string const& tag, semantics::class_& c, string const& alias)
- {
- semantics::class_* poly_root (polymorphic (c));
- bool poly_derived (poly_root != 0 && poly_root != &c);
- semantics::class_* poly_base (poly_derived ? &polymorphic_base (c) : 0);
-
- if (poly_derived)
- generate_def (tag, *poly_base, alias);
-
- os << "const char alias_traits<"
- << " " << class_fq_name (c) << "," << endl
- << " id_" << db << "," << endl
- << " " << scope_ << "::" << tag << "_tag>::" << endl
- << "table_name[] = ";
-
- if (poly_root != 0)
- os << strlit (quote_id (alias + "_" + table_name (c).uname ()));
- else
- os << strlit (quote_id (alias));
-
- os << ";"
- << endl;
- }
-
- entry<query_alias_traits> query_alias_traits_;
-
-
- // query_columns_base
- //
-
- entry<query_columns_base> query_columns_base_;
-
- // query_columns
- //
-
- void query_columns::
- column_ctor (string const& type, string const& name, string const& base)
- {
- os << name << " (";
-
- if (multi_dynamic)
- os << "odb::query_column< " << type << " >& qc," << endl;
-
- os << "const char* t, const char* c, const char* conv)" << endl
- << " : " << base << " (" << (multi_dynamic ? "qc, " : "") <<
- "t, c, conv)"
- << "{"
- << "}";
- }
-
- void query_columns::
- column_ctor_args_extra (semantics::data_member&)
- {
- }
-
- void query_columns::
- column_common (semantics::data_member& m,
- string const& type,
- string const& column,
- string const& suffix)
- {
- string name (public_name (m));
-
- if (decl_)
- {
- string type_id (database_type_id (m));
-
- os << "// " << name << endl
- << "//" << endl;
-
- os << "typedef" << endl
- << db << "::query_column<" << endl
- << " " << db << "::value_traits<" << endl
- << " " << type << "," << endl
- << " " << type_id << " >::query_type," << endl
- << " " << type_id << " >" << endl
- << name << suffix << ";"
- << endl;
- }
- else
- {
- // Note that here we don't use suffix.
- //
- string tmpl (ptr_ ? "pointer_query_columns" : "query_columns");
- tmpl += "< " + fq_name_ + ", id_" + db.string () + ", A >" + scope_;
-
- os << "template <typename A>" << endl
- << "const typename " << tmpl << "::" << name << "_type_" << endl
- << tmpl << "::" << endl
- << name << " (";
-
- // Pass common query column for registration.
- //
- if (multi_dynamic)
- {
- string tmpl (ptr_ ? "pointer_query_columns" : "query_columns");
- tmpl += "< " + fq_name_ + ", id_common, typename A::common_traits >" +
- scope_;
-
- os << tmpl << "::" << name << "," << endl;
- }
-
- os << "A::" << "table_name, " << strlit (quote_id (column));
-
- string const& conv (convert_to_expr (column_type (), m));
- os << ", " << (conv.empty () ? "0" : strlit (conv));
-
- column_ctor_args_extra (m);
-
- os << ");"
- << endl;
- }
- }
-}