mirror of
https://github.com/rbock/sqlpp11.git
synced 2024-11-16 12:51:13 +08:00
74cafe35dd
Before this, there could be multiple classes representing multiple id columns. Now there is one class representing ALL the name "id". Very important for analyzing potential name clashes.
152 lines
4.2 KiB
C++
152 lines
4.2 KiB
C++
#ifndef TEST_SAMPLE_H
|
|
#define TEST_SAMPLE_H
|
|
|
|
#include <sqlpp11/table.h>
|
|
#include <sqlpp11/column_types.h>
|
|
#include <sqlpp11/char_sequence.h>
|
|
|
|
namespace test
|
|
{
|
|
namespace TabPerson_
|
|
{
|
|
struct Id
|
|
{
|
|
struct _alias_t
|
|
{
|
|
static constexpr const char _literal[] = "id";
|
|
using _name_t = sqlpp::make_char_sequence<sizeof(_literal), _literal>;
|
|
template<typename T>
|
|
struct _member_t
|
|
{
|
|
T id;
|
|
T& operator()() { return id; }
|
|
const T& operator()() const { return id; }
|
|
};
|
|
};
|
|
using _traits = sqlpp::make_traits<sqlpp::integer, sqlpp::tag::must_not_insert, sqlpp::tag::must_not_update, sqlpp::tag::can_be_null>;
|
|
};
|
|
struct Name
|
|
{
|
|
struct _alias_t
|
|
{
|
|
static constexpr const char _literal[] = "name";
|
|
using _name_t = sqlpp::make_char_sequence<sizeof(_literal), _literal>;
|
|
template<typename T>
|
|
struct _member_t
|
|
{
|
|
T name;
|
|
T& operator()() { return name; }
|
|
const T& operator()() const { return name; }
|
|
};
|
|
};
|
|
using _traits = sqlpp::make_traits<sqlpp::varchar, sqlpp::tag::require_insert>;
|
|
};
|
|
struct Feature
|
|
{
|
|
struct _alias_t
|
|
{
|
|
static constexpr const char _literal[] = "feature";
|
|
using _name_t = sqlpp::make_char_sequence<sizeof(_literal), _literal>;
|
|
template<typename T>
|
|
struct _member_t
|
|
{
|
|
T feature;
|
|
T& operator()() { return feature; }
|
|
const T& operator()() const { return feature; }
|
|
};
|
|
};
|
|
using _traits = sqlpp::make_traits<sqlpp::integer, sqlpp::tag::require_insert>;
|
|
};
|
|
}
|
|
|
|
struct TabPerson: sqlpp::table_t<TabPerson,
|
|
TabPerson_::Id,
|
|
TabPerson_::Name,
|
|
TabPerson_::Feature>
|
|
{
|
|
struct _alias_t
|
|
{
|
|
static constexpr const char _literal[] = "tab_person";
|
|
using _name_t = sqlpp::make_char_sequence<sizeof(_literal), _literal>;
|
|
template<typename T>
|
|
struct _member_t
|
|
{
|
|
T tabPerson;
|
|
T& operator()() { return tabPerson; }
|
|
const T& operator()() const { return tabPerson; }
|
|
};
|
|
};
|
|
};
|
|
namespace TabFeature_
|
|
{
|
|
struct Id
|
|
{
|
|
struct _alias_t
|
|
{
|
|
static constexpr const char _literal[] = "id";
|
|
using _name_t = sqlpp::make_char_sequence<sizeof(_literal), _literal>;
|
|
template<typename T>
|
|
struct _member_t
|
|
{
|
|
T id;
|
|
T& operator()() { return id; }
|
|
const T& operator()() const { return id; }
|
|
};
|
|
};
|
|
using _traits = sqlpp::make_traits<sqlpp::integer, sqlpp::tag::must_not_insert, sqlpp::tag::must_not_update, sqlpp::tag::can_be_null>;
|
|
};
|
|
struct Name
|
|
{
|
|
struct _alias_t
|
|
{
|
|
static constexpr const char _literal[] = "name";
|
|
using _name_t = sqlpp::make_char_sequence<sizeof(_literal), _literal>;
|
|
template<typename T>
|
|
struct _member_t
|
|
{
|
|
T name;
|
|
T& operator()() { return name; }
|
|
const T& operator()() const { return name; }
|
|
};
|
|
};
|
|
using _traits = sqlpp::make_traits<sqlpp::varchar, sqlpp::tag::can_be_null>;
|
|
};
|
|
struct Fatal
|
|
{
|
|
struct _alias_t
|
|
{
|
|
static constexpr const char _literal[] = "fatal";
|
|
using _name_t = sqlpp::make_char_sequence<sizeof(_literal), _literal>;
|
|
template<typename T>
|
|
struct _member_t
|
|
{
|
|
T fatal;
|
|
T& operator()() { return fatal; }
|
|
const T& operator()() const { return fatal; }
|
|
};
|
|
};
|
|
using _traits = sqlpp::make_traits<sqlpp::boolean, sqlpp::tag::require_insert>;
|
|
};
|
|
}
|
|
|
|
struct TabFeature: sqlpp::table_t<TabFeature,
|
|
TabFeature_::Id,
|
|
TabFeature_::Name,
|
|
TabFeature_::Fatal>
|
|
{
|
|
struct _alias_t
|
|
{
|
|
static constexpr const char _literal[] = "tab_feature";
|
|
using _name_t = sqlpp::make_char_sequence<sizeof(_literal), _literal>;
|
|
template<typename T>
|
|
struct _member_t
|
|
{
|
|
T tabFeature;
|
|
T& operator()() { return tabFeature; }
|
|
const T& operator()() const { return tabFeature; }
|
|
};
|
|
};
|
|
};
|
|
}
|
|
#endif
|