sstables: encode logic for creating a static key component in composite

Signed-off-by: Glauber Costa <glommer@cloudius-systems.com>
This commit is contained in:
Glauber Costa
2015-05-25 17:48:38 -04:00
parent c5b6786094
commit eaa61ba86c
2 changed files with 8 additions and 0 deletions

View File

@@ -127,6 +127,13 @@ composite composite::from_exploded(const std::vector<bytes_view>& v) {
return from_components(v.begin(), v.end(), std::vector<data_type>(v.size(), bytes_type), true);
}
composite composite::static_prefix(const schema& s) {
static bytes static_marker(size_t(2), bytes::value_type(0xff));
std::vector<bytes_view> sv(s.clustering_key_size());
return static_marker + from_components(sv.begin(), sv.end(), std::vector<data_type>(sv.size(), bytes_type), true);
}
inline
std::vector<bytes> explode_composite(bytes_view _bytes) {
std::vector<bytes> ret;

View File

@@ -115,6 +115,7 @@ public:
static composite from_bytes(bytes b) { return composite(std::move(b)); }
static composite from_clustering_key(const schema& s, const clustering_key& ck);
static composite from_exploded(const std::vector<bytes_view>& v);
static composite static_prefix(const schema& s);
explicit operator bytes_view() const {
return _bytes;
}