14void set_all_null(uint8_t *column_ptr, std::size_t num_attrs, std::size_t begin, std::size_t end);
18void set_all_not_null(uint8_t *column_ptr, std::size_t num_attrs, std::size_t begin, std::size_t end);
27template<
typename T,
typename Generator = std::mt19937_64>
28std::enable_if_t<std::is_arithmetic_v<T>,
void>
30fill_uniform(T *column_ptr, std::vector<T> values, std::size_t begin, std::size_t end, Generator &&g = Generator()) {
31 M_insist(begin < end,
"must set at least one row");
33 const auto count = end - begin;
36 auto ptr = column_ptr + begin;
37 for (std::size_t i = 0; i != count; ) {
39 std::shuffle(values.begin(), values.end(), std::forward<Generator>(g));
40 for (
auto v : values) {
48 M_insist(ptr - column_ptr ==
long(count),
"incorrect number of elements written");
53void generate_column_data(
void *column_ptr,
const Attribute &attr, std::size_t num_distinct_values, std::size_t begin,
59 std::size_t num_distinct_values_left, std::size_t num_distinct_values_right,
60 std::size_t count_left, std::size_t count_right,
61 std::size_t num_distinct_values_matching);
void set_all_not_null(uint8_t *column_ptr, std::size_t num_attrs, std::size_t begin, std::size_t end)
Sets all attributes of the begin-th row (including) to the end-th row (excluding) of column at addres...
void generate_column_data(void *column_ptr, const Attribute &attr, std::size_t num_distinct_values, std::size_t begin, std::size_t end)
Generates data for the column at address column_ptr from begin-th row (including) to end-th row (excl...
void set_all_null(uint8_t *column_ptr, std::size_t num_attrs, std::size_t begin, std::size_t end)
Sets all attributes of the begin-th row (including) to the end-th row (excluding) of column at addres...
void generate_correlated_column_data(void *left_ptr, void *right_ptr, const Attribute &attr, std::size_t num_distinct_values_left, std::size_t num_distinct_values_right, std::size_t count_left, std::size_t count_right, std::size_t num_distinct_values_matching)
Generates data for two columns at addresses left_ptr and right_ptr correlated by num_distinct_values_...
void generate_primary_keys(void *column_ptr, const Type &type, std::size_t begin, std::size_t end)
Generates primary keys of Type type for the begin-th row (including) to the end-th row (excluding) of...
std::enable_if_t< std::is_arithmetic_v< T >, void > M_EXPORT fill_uniform(T *column_ptr, std::vector< T > values, std::size_t begin, std::size_t end, Generator &&g=Generator())
Fills column at address column_ptr from begin-th row (including) to end-th row (excluding) with data ...