11 namespace SWC {
namespace DB {
namespace Specs {
15 : range_begin(), range_end(), key_intervals(),
16 values(col_type), ts_start(), ts_finish(),
17 flags(), offset_key(), offset_rev(0), options(0),
23 : range_begin(a_range_begin),
24 range_end(a_range_end),
27 ts_start(), ts_finish(),
28 flags(), offset_key(),
29 offset_rev(0), options(0),
34 : range_begin(bufp, remainp, true),
35 range_end(bufp, remainp, true),
36 key_intervals(bufp, remainp),
37 values(bufp, remainp, true),
38 ts_start(bufp, remainp),
39 ts_finish(bufp, remainp),
41 offset_key(bufp, remainp, true),
42 offset_rev(Serialization::
decode_vi64(bufp, remainp)),
43 options(Serialization::
decode_i8(bufp, remainp)),
52 : range_begin(other.range_begin),
53 range_end(other.range_end),
54 key_intervals(other.key_intervals),
56 ts_start(other.ts_start),
57 ts_finish(other.ts_finish),
59 offset_key(other.offset_key),
60 offset_rev(other.offset_rev),
61 options(other.options),
69 : range_begin(std::move(other.range_begin)),
70 range_end(std::move(other.range_end)),
71 key_intervals(std::move(other.key_intervals)),
72 values(std::move(other.values)),
73 ts_start(std::move(other.ts_start)),
74 ts_finish(std::move(other.ts_finish)),
75 flags(std::move(other.flags)),
76 offset_key(std::move(other.offset_key)),
77 offset_rev(other.offset_rev),
78 options(other.options),
79 updating(std::move(other.updating)) {
109 range_begin.move(other.range_begin);
110 range_end.move(other.range_end);
112 key_intervals.move(other.key_intervals);
114 values.move(other.values);
116 ts_start.copy(other.ts_start);
117 ts_finish.copy(other.ts_finish);
119 flags.copy(other.flags);
121 offset_key.move(other.offset_key);
122 offset_rev = other.offset_rev;
124 options = other.options;
126 updating = std::move(other.updating);
139 return ts_start.equal(other.ts_start) &&
140 ts_finish.equal(other.ts_finish) &&
141 flags.equal(other.flags) &&
142 options == other.options &&
143 range_begin.equal(other.range_begin) &&
144 range_end.equal(other.range_end) &&
145 key_intervals.equal(other.key_intervals) &&
146 values.equal(other.values) &&
147 offset_key.equal(other.offset_key) &&
148 offset_rev == other.offset_rev &&
149 is_updating() == other.is_updating() &&
150 (!is_updating() || updating->equal(*other.updating.get()));
240 if(restp && !end.
empty())
246 bool rest,
bool no_stepping)
const {
249 if(sz < intval.start.size())
250 sz = intval.start.size();
251 if(sz < intval.finish.size())
252 sz = intval.finish.size();
259 const auto* keyp = ending
260 ? (initial ? &intval.finish : &intval.start )
261 : (initial ? &intval.start : &intval.finish);
262 for(
size_t idx=0; idx < keyp->size(); ++idx) {
263 auto& key_f = key_range[idx];
288 key_f.append(f.data(), f.size());
300 for(
auto it = key_range.
cbegin(); it != key_range.
cend(); ++it) {
309 auto it = key_range.
cend();
318 }
while(it != key_range.
cbegin());
352 const std::string& offset)
const {
353 out << offset <<
"Interval(\n";
355 out << offset <<
" Range(\n"
356 << offset <<
" begin(";
359 << offset <<
" end(";
366 out << offset <<
" Timestamp(\n"
367 << offset <<
" start(";
370 << offset <<
" finish(";
375 out << offset <<
" Offset(\n"
376 << offset <<
" key(";
384 out << offset <<
" Flags(";
389 out << offset <<
" Update(";
394 out << offset <<
" Options("
403 out << offset <<
")\n";