mirror of
https://github.com/rbock/sqlpp11.git
synced 2024-11-15 20:31:16 +08:00
Merge pull request #247 from sjoubert/multi_insert_value_or_null
Add support of value_or_null in multi-insert
This commit is contained in:
commit
80ccb35355
@ -30,6 +30,7 @@
|
||||
#include <sqlpp11/default_value.h>
|
||||
#include <sqlpp11/null.h>
|
||||
#include <sqlpp11/tvin.h>
|
||||
#include <sqlpp11/value_or_null.h>
|
||||
#include <sqlpp11/type_traits.h>
|
||||
#include <sqlpp11/serializer.h>
|
||||
#include <sqlpp11/detail/type_set.h>
|
||||
@ -64,6 +65,7 @@ namespace sqlpp
|
||||
using _pure_value_t = typename value_type_of<Column>::_cpp_value_type;
|
||||
using _wrapped_value_t = wrap_operand_t<_pure_value_t>;
|
||||
using _tvin_t = tvin_t<_wrapped_value_t>;
|
||||
using _value_or_null_t = value_or_null_t<typename Column::_traits::_value_type>;
|
||||
|
||||
insert_value_t(rhs_wrap_t<_wrapped_value_t, _trivial_value_is_null> rhs)
|
||||
: _is_null(rhs._is_null()), _is_default(rhs._is_default()), _value(rhs._expr._t)
|
||||
@ -85,6 +87,11 @@ namespace sqlpp
|
||||
{
|
||||
}
|
||||
|
||||
insert_value_t(const rhs_wrap_t<_value_or_null_t, _trivial_value_is_null>& rhs)
|
||||
: _is_null(rhs._expr._is_null), _is_default(false), _value{rhs._expr._value}
|
||||
{
|
||||
}
|
||||
|
||||
insert_value_t(const insert_value_t&) = default;
|
||||
insert_value_t(insert_value_t&&) = default;
|
||||
insert_value_t& operator=(const insert_value_t&) = default;
|
||||
|
@ -54,6 +54,8 @@ int Insert(int, char*[])
|
||||
|
||||
db(insert_into(t).default_values());
|
||||
db(insert_into(t).set(t.gamma = true, t.beta = "kirschauflauf"));
|
||||
db(insert_into(t).set(t.gamma = sqlpp::default_value, t.beta = sqlpp::value_or_null("pie"),
|
||||
t.delta = sqlpp::value_or_null<sqlpp::integer>(sqlpp::null)));
|
||||
|
||||
serialize(insert_into(t).default_values(), printer).str();
|
||||
|
||||
@ -64,6 +66,9 @@ int Insert(int, char*[])
|
||||
multi_insert.values.add(t.gamma = true, t.beta = "cheesecake", t.delta = 1);
|
||||
multi_insert.values.add(t.gamma = sqlpp::default_value, t.beta = sqlpp::default_value,
|
||||
t.delta = sqlpp::default_value);
|
||||
multi_insert.values.add(t.gamma = sqlpp::value_or_null(true),
|
||||
t.beta = sqlpp::value_or_null("pie"),
|
||||
t.delta = sqlpp::value_or_null<sqlpp::integer>(sqlpp::null));
|
||||
auto i = dynamic_insert_into(db, t).dynamic_set();
|
||||
i.insert_list.add(t.beta = "kirschauflauf");
|
||||
printer.reset();
|
||||
|
Loading…
Reference in New Issue
Block a user