forked from scylladb/scylladb
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathschema_builder.hh
147 lines (119 loc) · 4.08 KB
/
schema_builder.hh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
/*
* Copyright 2015 Cloudius Systems
*/
#pragma once
#include "schema.hh"
#include "database_fwd.hh"
struct schema_builder {
schema::raw_schema _raw;
schema_builder(const schema::raw_schema&);
public:
schema_builder(const sstring& ks_name, const sstring& cf_name,
std::experimental::optional<utils::UUID> = { },
data_type regular_column_name_type = utf8_type);
schema_builder(const schema_ptr);
void set_uuid(const utils::UUID& id) {
_raw._id = id;
}
const utils::UUID& uuid() const {
return _raw._id;
}
void set_regular_column_name_type(const data_type& t) {
_raw._regular_column_name_type = t;
}
const data_type& regular_column_name_type() const {
return _raw._regular_column_name_type;
}
const sstring& ks_name() const {
return _raw._ks_name;
}
const sstring& cf_name() const {
return _raw._cf_name;
}
void set_comment(const sstring& s) {
_raw._comment = s;
}
const sstring& comment() const {
return _raw._comment;
}
void set_default_time_to_live(gc_clock::duration t) {
_raw._default_time_to_live = t;
}
gc_clock::duration default_time_to_live() const {
return _raw._default_time_to_live;
}
void set_default_validator(const data_type& validator) {
_raw._default_validator = validator;
}
void set_gc_grace_seconds(int32_t gc_grace_seconds) {
_raw._gc_grace_seconds = gc_grace_seconds;
}
int32_t get_gc_grace_seconds() {
return _raw._gc_grace_seconds;
}
void set_dc_local_read_repair_chance(double chance) {
_raw._dc_local_read_repair_chance = chance;
}
double get_dc_local_read_repair_chance() {
return _raw._dc_local_read_repair_chance;
}
void set_read_repair_chance(double chance) {
_raw._read_repair_chance = chance;
}
double get_read_repair_chance() {
return _raw._read_repair_chance;
}
void set_min_compaction_threshold(int32_t t) {
_raw._min_compaction_threshold = t;
}
int32_t get_min_compaction_threshold() {
return _raw._min_compaction_threshold;
}
void set_max_compaction_threshold(int32_t t) {
_raw._max_compaction_threshold = t;
}
int32_t get_max_compaction_threshold() {
return _raw._max_compaction_threshold;
}
void set_min_index_interval(int32_t t) {
_raw._min_index_interval = t;
}
int32_t get_min_index_interval() {
return _raw._min_index_interval;
}
void set_max_index_interval(int32_t t) {
_raw._max_index_interval = t;
}
int32_t get_max_index_interval() {
return _raw._max_index_interval;
}
void set_bloom_filter_fp_chance(double fp) {
_raw._bloom_filter_fp_chance = fp;
}
double get_bloom_filter_fp_chance() const {
return _raw._bloom_filter_fp_chance;
}
void set_compressor_params(const compression_parameters& cp) {
_raw._compressor_params = cp;
}
void set_compaction_strategy(sstables::compaction_strategy_type type) {
_raw._compaction_strategy = type;
}
void set_compaction_strategy_options(std::map<sstring, sstring> options) {
_raw._compaction_strategy_options = std::move(options);
}
void set_is_dense(bool is_dense) {
_raw._is_dense = is_dense;
}
void set_is_compound(bool is_compound) {
_raw._is_compound = is_compound;
}
column_definition& find_column(const cql3::column_identifier&);
schema_builder& with_column(const column_definition& c);
schema_builder& with_column(bytes name, data_type type, column_kind kind = column_kind::regular_column);
schema_builder& with_column(bytes name, data_type type, index_info info, column_kind kind = column_kind::regular_column);
schema_builder& with_column(bytes name, data_type type, index_info info, column_kind kind, column_id component_index);
void add_default_index_names(database&);
enum class compact_storage { no, yes };
schema_ptr build(compact_storage = compact_storage::no);
};