mirror of
https://github.com/matrix-construct/construct
synced 2024-11-17 23:40:57 +01:00
ircd::db: Move set() for json::tuple; check for undefined.
This commit is contained in:
parent
65802d3e47
commit
c58836ed56
2 changed files with 6 additions and 17 deletions
|
@ -203,7 +203,12 @@ const
|
||||||
{
|
{
|
||||||
if(stale)
|
if(stale)
|
||||||
{
|
{
|
||||||
set(v, row);
|
for(const auto &cell : row)
|
||||||
|
if(cell.valid() && cell.key() == idx->first)
|
||||||
|
json::set(v, cell.col(), cell.val());
|
||||||
|
else
|
||||||
|
json::set(v, cell.col(), string_view{});
|
||||||
|
|
||||||
stale = false;
|
stale = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -25,9 +25,7 @@
|
||||||
|
|
||||||
namespace ircd::db
|
namespace ircd::db
|
||||||
{
|
{
|
||||||
template<class... T> json::tuple<T...> &set(json::tuple<T...> &, const row &r);
|
|
||||||
template<class tuple> tuple make_tuple(const row &r);
|
template<class tuple> tuple make_tuple(const row &r);
|
||||||
|
|
||||||
template<class it> void set_index(it begin, it end, const string_view &index);
|
template<class it> void set_index(it begin, it end, const string_view &index);
|
||||||
template<class... T> void write(database &, const string_view &index, const json::tuple<T...> &, const sopts & = {});
|
template<class... T> void write(database &, const string_view &index, const json::tuple<T...> &, const sopts & = {});
|
||||||
}
|
}
|
||||||
|
@ -68,17 +66,3 @@ ircd::db::make_tuple(const row &row)
|
||||||
set(ret, row);
|
set(ret, row);
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
template<class... T>
|
|
||||||
ircd::json::tuple<T...> &
|
|
||||||
ircd::db::set(json::tuple<T...> &tuple,
|
|
||||||
const row &row)
|
|
||||||
{
|
|
||||||
for(const auto &cell : row)
|
|
||||||
if(cell.valid())
|
|
||||||
json::set(tuple, cell.col(), cell.val());
|
|
||||||
else
|
|
||||||
json::set(tuple, cell.col(), string_view{});
|
|
||||||
|
|
||||||
return tuple;
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in a new issue