query: add latest modification timestamp to result structure

This commit is contained in:
Gleb Natapov
2016-05-22 18:18:31 +03:00
parent 5fef0717cc
commit 1e6f64f4ab
3 changed files with 9 additions and 3 deletions

View File

@@ -28,6 +28,7 @@ class result_digest final {
class result {
bytes_ostream buf();
std::experimental::optional<query::result_digest> digest();
api::timestamp_type last_modified() [ [version 1.2] ] = api::missing_timestamp;
};
}

View File

@@ -156,10 +156,10 @@ public:
case result_request::only_digest: {
bytes_ostream buf;
ser::writer_of_query_result(buf).start_partitions().end_partitions().end_query_result();
return result(std::move(buf), result_digest(_digest.finalize_array()));
return result(std::move(buf), result_digest(_digest.finalize_array()), _last_modified);
}
case result_request::result_and_digest:
return result(std::move(_out), result_digest(_digest.finalize_array()), _row_count);
return result(std::move(_out), result_digest(_digest.finalize_array()), _last_modified, _row_count);
}
abort();
}

View File

@@ -97,6 +97,7 @@ class result {
bytes_ostream _w;
stdx::optional<result_digest> _digest;
stdx::optional<uint32_t> _row_count;
api::timestamp_type _last_modified = api::missing_timestamp;
public:
class builder;
@@ -105,7 +106,7 @@ public:
result();
result(bytes_ostream&& w, stdx::optional<uint32_t> c = {}) : _w(std::move(w)), _row_count(c) {}
result(bytes_ostream&& w, stdx::optional<result_digest> d, stdx::optional<uint32_t> c = {}) : _w(std::move(w)), _digest(d), _row_count(c) {}
result(bytes_ostream&& w, stdx::optional<result_digest> d, api::timestamp_type last_modified, stdx::optional<uint32_t> c = {}) : _w(std::move(w)), _digest(d), _row_count(c), _last_modified(last_modified) {}
result(result&&) = default;
result(const result&) = default;
result& operator=(result&&) = default;
@@ -123,6 +124,10 @@ public:
return _row_count;
}
const api::timestamp_type last_modified() const {
return _last_modified;
}
uint32_t calculate_row_count(const query::partition_slice&);
struct printer {