cql3/query_options: make_temporary() helper

Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
This commit is contained in:
Pekka Enberg
2015-08-19 10:16:23 +03:00
parent 6dee204db2
commit 23e9bf7162
2 changed files with 12 additions and 0 deletions

View File

@@ -107,6 +107,16 @@ size_t query_options::get_values_count() const
return _value_views.size();
}
bytes_view_opt query_options::make_temporary(bytes_opt value) const
{
if (value) {
_temporaries.emplace_back(value->begin(), value->end());
auto& temporary = _temporaries.back();
return bytes_view{temporary.data(), temporary.size()};
}
return std::experimental::nullopt;
}
bool query_options::skip_metadata() const
{
return _skip_metadata;

View File

@@ -54,6 +54,7 @@ private:
const std::experimental::optional<std::vector<sstring>> _names;
std::vector<bytes_opt> _values;
std::vector<bytes_view_opt> _value_views;
mutable std::vector<std::vector<int8_t>> _temporaries;
const bool _skip_metadata;
const specific_options _options;
const int32_t _protocol_version; // transient
@@ -84,6 +85,7 @@ public:
db::consistency_level get_consistency() const;
bytes_view_opt get_value_at(size_t idx) const;
bytes_view_opt make_temporary(bytes_opt value) const;
size_t get_values_count() const;
bool skip_metadata() const;
/** The pageSize for this query. Will be <= 0 if not relevant for the query. */