mirror of
https://github.com/scylladb/scylladb.git
synced 2026-05-29 11:10:40 +00:00
schema: Calculate default validator
Fixes #2605 Signed-off-by: Duarte Nunes <duarte@scylladb.com> Message-Id: <20170719105131.21455-3-duarte@scylladb.com>
This commit is contained in:
committed by
Tomasz Grabiec
parent
259cfaf8f9
commit
013fa3da14
10
schema.cc
10
schema.cc
@@ -751,6 +751,16 @@ schema_ptr schema_builder::build() {
|
||||
}
|
||||
|
||||
prepare_dense_schema(new_raw);
|
||||
|
||||
if (_default_validator) {
|
||||
new_raw._default_validator = *_default_validator;
|
||||
} else if (new_raw._is_dense || !new_raw._is_compound) {
|
||||
auto regular_column = std::find_if(new_raw._columns.begin(), new_raw._columns.end(), [] (auto&& col) {
|
||||
return col.kind == column_kind::regular_column;
|
||||
});
|
||||
new_raw._default_validator = regular_column->type;
|
||||
}
|
||||
|
||||
return make_lw_shared<schema>(schema(new_raw));
|
||||
}
|
||||
|
||||
|
||||
@@ -31,6 +31,7 @@ private:
|
||||
schema::raw_schema _raw;
|
||||
std::experimental::optional<compact_storage> _compact_storage;
|
||||
std::experimental::optional<table_schema_version> _version;
|
||||
std::experimental::optional<data_type> _default_validator;
|
||||
schema_builder(const schema::raw_schema&);
|
||||
public:
|
||||
schema_builder(const sstring& ks_name, const sstring& cf_name,
|
||||
@@ -74,7 +75,7 @@ public:
|
||||
}
|
||||
|
||||
schema_builder& set_default_validator(const data_type& validator) {
|
||||
_raw._default_validator = validator;
|
||||
_default_validator = {validator};
|
||||
return *this;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user