0
0
mirror of https://github.com/rbock/sqlpp11.git synced 2024-11-16 04:47:18 +08:00

Added table() method for columns.

This commit is contained in:
rbock 2015-03-07 09:40:06 +01:00
parent 028af83fe7
commit 6591d38bab
2 changed files with 19 additions and 0 deletions

View File

@ -70,6 +70,13 @@ namespace sqlpp
column_t& operator=(column_t&&) = default; column_t& operator=(column_t&&) = default;
~column_t() = default; ~column_t() = default;
template<typename T = _table>
auto table() const -> _table
{
static_assert(is_table_t<T>::value, "cannot call get_table for columns of a sub-selects or cte");
return _table{};
}
template<typename alias_provider> template<typename alias_provider>
expression_alias_t<column_t, alias_provider> as(const alias_provider&) const expression_alias_t<column_t, alias_provider> as(const alias_provider&) const
{ {

View File

@ -36,11 +36,23 @@
MockDb db = {}; MockDb db = {};
MockDb::_serializer_context_t printer; MockDb::_serializer_context_t printer;
template<typename Column>
int64_t getColumn(const Column& column)
{
auto result = db(select(column.as(sqlpp::a)).from(column.table()).where(true));
if (not result.empty())
return result.front().a;
else
return 0;
}
int main() int main()
{ {
test::TabFoo f; test::TabFoo f;
test::TabBar t; test::TabBar t;
getColumn(t.alpha);
for (const auto& row : db(select(all_of(t)).from(t).where(true))) for (const auto& row : db(select(all_of(t)).from(t).where(true)))
{ {
int64_t a = row.alpha; int64_t a = row.alpha;