提交 6cf578f2 编写于 作者: X Xiaoyu Wang

feat: database option 'tsdb_pagesize'

上级 2f905064
...@@ -787,6 +787,7 @@ typedef struct { ...@@ -787,6 +787,7 @@ typedef struct {
int32_t sstTrigger; int32_t sstTrigger;
int16_t hashPrefix; int16_t hashPrefix;
int16_t hashSuffix; int16_t hashSuffix;
int32_t tsdbPageSize;
} SCreateDbReq; } SCreateDbReq;
int32_t tSerializeSCreateDbReq(void* buf, int32_t bufLen, SCreateDbReq* pReq); int32_t tSerializeSCreateDbReq(void* buf, int32_t bufLen, SCreateDbReq* pReq);
......
...@@ -89,240 +89,241 @@ ...@@ -89,240 +89,241 @@
#define TK_KEEP 71 #define TK_KEEP 71
#define TK_PAGES 72 #define TK_PAGES 72
#define TK_PAGESIZE 73 #define TK_PAGESIZE 73
#define TK_PRECISION 74 #define TK_TSDB_PAGESIZE 74
#define TK_REPLICA 75 #define TK_PRECISION 75
#define TK_STRICT 76 #define TK_REPLICA 76
#define TK_VGROUPS 77 #define TK_STRICT 77
#define TK_SINGLE_STABLE 78 #define TK_VGROUPS 78
#define TK_RETENTIONS 79 #define TK_SINGLE_STABLE 79
#define TK_SCHEMALESS 80 #define TK_RETENTIONS 80
#define TK_WAL_LEVEL 81 #define TK_SCHEMALESS 81
#define TK_WAL_FSYNC_PERIOD 82 #define TK_WAL_LEVEL 82
#define TK_WAL_RETENTION_PERIOD 83 #define TK_WAL_FSYNC_PERIOD 83
#define TK_WAL_RETENTION_SIZE 84 #define TK_WAL_RETENTION_PERIOD 84
#define TK_WAL_ROLL_PERIOD 85 #define TK_WAL_RETENTION_SIZE 85
#define TK_WAL_SEGMENT_SIZE 86 #define TK_WAL_ROLL_PERIOD 86
#define TK_SST_TRIGGER 87 #define TK_WAL_SEGMENT_SIZE 87
#define TK_TABLE_PREFIX 88 #define TK_STT_TRIGGER 88
#define TK_TABLE_SUFFIX 89 #define TK_TABLE_PREFIX 89
#define TK_NK_COLON 90 #define TK_TABLE_SUFFIX 90
#define TK_TABLE 91 #define TK_NK_COLON 91
#define TK_NK_LP 92 #define TK_TABLE 92
#define TK_NK_RP 93 #define TK_NK_LP 93
#define TK_STABLE 94 #define TK_NK_RP 94
#define TK_ADD 95 #define TK_STABLE 95
#define TK_COLUMN 96 #define TK_ADD 96
#define TK_MODIFY 97 #define TK_COLUMN 97
#define TK_RENAME 98 #define TK_MODIFY 98
#define TK_TAG 99 #define TK_RENAME 99
#define TK_SET 100 #define TK_TAG 100
#define TK_NK_EQ 101 #define TK_SET 101
#define TK_USING 102 #define TK_NK_EQ 102
#define TK_TAGS 103 #define TK_USING 103
#define TK_COMMENT 104 #define TK_TAGS 104
#define TK_BOOL 105 #define TK_COMMENT 105
#define TK_TINYINT 106 #define TK_BOOL 106
#define TK_SMALLINT 107 #define TK_TINYINT 107
#define TK_INT 108 #define TK_SMALLINT 108
#define TK_INTEGER 109 #define TK_INT 109
#define TK_BIGINT 110 #define TK_INTEGER 110
#define TK_FLOAT 111 #define TK_BIGINT 111
#define TK_DOUBLE 112 #define TK_FLOAT 112
#define TK_BINARY 113 #define TK_DOUBLE 113
#define TK_TIMESTAMP 114 #define TK_BINARY 114
#define TK_NCHAR 115 #define TK_TIMESTAMP 115
#define TK_UNSIGNED 116 #define TK_NCHAR 116
#define TK_JSON 117 #define TK_UNSIGNED 117
#define TK_VARCHAR 118 #define TK_JSON 118
#define TK_MEDIUMBLOB 119 #define TK_VARCHAR 119
#define TK_BLOB 120 #define TK_MEDIUMBLOB 120
#define TK_VARBINARY 121 #define TK_BLOB 121
#define TK_DECIMAL 122 #define TK_VARBINARY 122
#define TK_MAX_DELAY 123 #define TK_DECIMAL 123
#define TK_WATERMARK 124 #define TK_MAX_DELAY 124
#define TK_ROLLUP 125 #define TK_WATERMARK 125
#define TK_TTL 126 #define TK_ROLLUP 126
#define TK_SMA 127 #define TK_TTL 127
#define TK_FIRST 128 #define TK_SMA 128
#define TK_LAST 129 #define TK_FIRST 129
#define TK_SHOW 130 #define TK_LAST 130
#define TK_DATABASES 131 #define TK_SHOW 131
#define TK_TABLES 132 #define TK_DATABASES 132
#define TK_STABLES 133 #define TK_TABLES 133
#define TK_MNODES 134 #define TK_STABLES 134
#define TK_MODULES 135 #define TK_MNODES 135
#define TK_QNODES 136 #define TK_MODULES 136
#define TK_FUNCTIONS 137 #define TK_QNODES 137
#define TK_INDEXES 138 #define TK_FUNCTIONS 138
#define TK_ACCOUNTS 139 #define TK_INDEXES 139
#define TK_APPS 140 #define TK_ACCOUNTS 140
#define TK_CONNECTIONS 141 #define TK_APPS 141
#define TK_LICENCES 142 #define TK_CONNECTIONS 142
#define TK_GRANTS 143 #define TK_LICENCES 143
#define TK_QUERIES 144 #define TK_GRANTS 144
#define TK_SCORES 145 #define TK_QUERIES 145
#define TK_TOPICS 146 #define TK_SCORES 146
#define TK_VARIABLES 147 #define TK_TOPICS 147
#define TK_BNODES 148 #define TK_VARIABLES 148
#define TK_SNODES 149 #define TK_BNODES 149
#define TK_CLUSTER 150 #define TK_SNODES 150
#define TK_TRANSACTIONS 151 #define TK_CLUSTER 151
#define TK_DISTRIBUTED 152 #define TK_TRANSACTIONS 152
#define TK_CONSUMERS 153 #define TK_DISTRIBUTED 153
#define TK_SUBSCRIPTIONS 154 #define TK_CONSUMERS 154
#define TK_VNODES 155 #define TK_SUBSCRIPTIONS 155
#define TK_LIKE 156 #define TK_VNODES 156
#define TK_INDEX 157 #define TK_LIKE 157
#define TK_FUNCTION 158 #define TK_INDEX 158
#define TK_INTERVAL 159 #define TK_FUNCTION 159
#define TK_TOPIC 160 #define TK_INTERVAL 160
#define TK_AS 161 #define TK_TOPIC 161
#define TK_WITH 162 #define TK_AS 162
#define TK_META 163 #define TK_WITH 163
#define TK_CONSUMER 164 #define TK_META 164
#define TK_GROUP 165 #define TK_CONSUMER 165
#define TK_DESC 166 #define TK_GROUP 166
#define TK_DESCRIBE 167 #define TK_DESC 167
#define TK_RESET 168 #define TK_DESCRIBE 168
#define TK_QUERY 169 #define TK_RESET 169
#define TK_CACHE 170 #define TK_QUERY 170
#define TK_EXPLAIN 171 #define TK_CACHE 171
#define TK_ANALYZE 172 #define TK_EXPLAIN 172
#define TK_VERBOSE 173 #define TK_ANALYZE 173
#define TK_NK_BOOL 174 #define TK_VERBOSE 174
#define TK_RATIO 175 #define TK_NK_BOOL 175
#define TK_NK_FLOAT 176 #define TK_RATIO 176
#define TK_OUTPUTTYPE 177 #define TK_NK_FLOAT 177
#define TK_AGGREGATE 178 #define TK_OUTPUTTYPE 178
#define TK_BUFSIZE 179 #define TK_AGGREGATE 179
#define TK_STREAM 180 #define TK_BUFSIZE 180
#define TK_INTO 181 #define TK_STREAM 181
#define TK_TRIGGER 182 #define TK_INTO 182
#define TK_AT_ONCE 183 #define TK_TRIGGER 183
#define TK_WINDOW_CLOSE 184 #define TK_AT_ONCE 184
#define TK_IGNORE 185 #define TK_WINDOW_CLOSE 185
#define TK_EXPIRED 186 #define TK_IGNORE 186
#define TK_KILL 187 #define TK_EXPIRED 187
#define TK_CONNECTION 188 #define TK_KILL 188
#define TK_TRANSACTION 189 #define TK_CONNECTION 189
#define TK_BALANCE 190 #define TK_TRANSACTION 190
#define TK_VGROUP 191 #define TK_BALANCE 191
#define TK_MERGE 192 #define TK_VGROUP 192
#define TK_REDISTRIBUTE 193 #define TK_MERGE 193
#define TK_SPLIT 194 #define TK_REDISTRIBUTE 194
#define TK_DELETE 195 #define TK_SPLIT 195
#define TK_INSERT 196 #define TK_DELETE 196
#define TK_NULL 197 #define TK_INSERT 197
#define TK_NK_QUESTION 198 #define TK_NULL 198
#define TK_NK_ARROW 199 #define TK_NK_QUESTION 199
#define TK_ROWTS 200 #define TK_NK_ARROW 200
#define TK_TBNAME 201 #define TK_ROWTS 201
#define TK_QSTART 202 #define TK_TBNAME 202
#define TK_QEND 203 #define TK_QSTART 203
#define TK_QDURATION 204 #define TK_QEND 204
#define TK_WSTART 205 #define TK_QDURATION 205
#define TK_WEND 206 #define TK_WSTART 206
#define TK_WDURATION 207 #define TK_WEND 207
#define TK_CAST 208 #define TK_WDURATION 208
#define TK_NOW 209 #define TK_CAST 209
#define TK_TODAY 210 #define TK_NOW 210
#define TK_TIMEZONE 211 #define TK_TODAY 211
#define TK_CLIENT_VERSION 212 #define TK_TIMEZONE 212
#define TK_SERVER_VERSION 213 #define TK_CLIENT_VERSION 213
#define TK_SERVER_STATUS 214 #define TK_SERVER_VERSION 214
#define TK_CURRENT_USER 215 #define TK_SERVER_STATUS 215
#define TK_COUNT 216 #define TK_CURRENT_USER 216
#define TK_LAST_ROW 217 #define TK_COUNT 217
#define TK_BETWEEN 218 #define TK_LAST_ROW 218
#define TK_IS 219 #define TK_BETWEEN 219
#define TK_NK_LT 220 #define TK_IS 220
#define TK_NK_GT 221 #define TK_NK_LT 221
#define TK_NK_LE 222 #define TK_NK_GT 222
#define TK_NK_GE 223 #define TK_NK_LE 223
#define TK_NK_NE 224 #define TK_NK_GE 224
#define TK_MATCH 225 #define TK_NK_NE 225
#define TK_NMATCH 226 #define TK_MATCH 226
#define TK_CONTAINS 227 #define TK_NMATCH 227
#define TK_IN 228 #define TK_CONTAINS 228
#define TK_JOIN 229 #define TK_IN 229
#define TK_INNER 230 #define TK_JOIN 230
#define TK_SELECT 231 #define TK_INNER 231
#define TK_DISTINCT 232 #define TK_SELECT 232
#define TK_WHERE 233 #define TK_DISTINCT 233
#define TK_PARTITION 234 #define TK_WHERE 234
#define TK_BY 235 #define TK_PARTITION 235
#define TK_SESSION 236 #define TK_BY 236
#define TK_STATE_WINDOW 237 #define TK_SESSION 237
#define TK_SLIDING 238 #define TK_STATE_WINDOW 238
#define TK_FILL 239 #define TK_SLIDING 239
#define TK_VALUE 240 #define TK_FILL 240
#define TK_NONE 241 #define TK_VALUE 241
#define TK_PREV 242 #define TK_NONE 242
#define TK_LINEAR 243 #define TK_PREV 243
#define TK_NEXT 244 #define TK_LINEAR 244
#define TK_HAVING 245 #define TK_NEXT 245
#define TK_RANGE 246 #define TK_HAVING 246
#define TK_EVERY 247 #define TK_RANGE 247
#define TK_ORDER 248 #define TK_EVERY 248
#define TK_SLIMIT 249 #define TK_ORDER 249
#define TK_SOFFSET 250 #define TK_SLIMIT 250
#define TK_LIMIT 251 #define TK_SOFFSET 251
#define TK_OFFSET 252 #define TK_LIMIT 252
#define TK_ASC 253 #define TK_OFFSET 253
#define TK_NULLS 254 #define TK_ASC 254
#define TK_ABORT 255 #define TK_NULLS 255
#define TK_AFTER 256 #define TK_ABORT 256
#define TK_ATTACH 257 #define TK_AFTER 257
#define TK_BEFORE 258 #define TK_ATTACH 258
#define TK_BEGIN 259 #define TK_BEFORE 259
#define TK_BITAND 260 #define TK_BEGIN 260
#define TK_BITNOT 261 #define TK_BITAND 261
#define TK_BITOR 262 #define TK_BITNOT 262
#define TK_BLOCKS 263 #define TK_BITOR 263
#define TK_CHANGE 264 #define TK_BLOCKS 264
#define TK_COMMA 265 #define TK_CHANGE 265
#define TK_COMPACT 266 #define TK_COMMA 266
#define TK_CONCAT 267 #define TK_COMPACT 267
#define TK_CONFLICT 268 #define TK_CONCAT 268
#define TK_COPY 269 #define TK_CONFLICT 269
#define TK_DEFERRED 270 #define TK_COPY 270
#define TK_DELIMITERS 271 #define TK_DEFERRED 271
#define TK_DETACH 272 #define TK_DELIMITERS 272
#define TK_DIVIDE 273 #define TK_DETACH 273
#define TK_DOT 274 #define TK_DIVIDE 274
#define TK_EACH 275 #define TK_DOT 275
#define TK_END 276 #define TK_EACH 276
#define TK_FAIL 277 #define TK_END 277
#define TK_FILE 278 #define TK_FAIL 278
#define TK_FOR 279 #define TK_FILE 279
#define TK_GLOB 280 #define TK_FOR 280
#define TK_ID 281 #define TK_GLOB 281
#define TK_IMMEDIATE 282 #define TK_ID 282
#define TK_IMPORT 283 #define TK_IMMEDIATE 283
#define TK_INITIALLY 284 #define TK_IMPORT 284
#define TK_INSTEAD 285 #define TK_INITIALLY 285
#define TK_ISNULL 286 #define TK_INSTEAD 286
#define TK_KEY 287 #define TK_ISNULL 287
#define TK_NK_BITNOT 288 #define TK_KEY 288
#define TK_NK_SEMI 289 #define TK_NK_BITNOT 289
#define TK_NOTNULL 290 #define TK_NK_SEMI 290
#define TK_OF 291 #define TK_NOTNULL 291
#define TK_PLUS 292 #define TK_OF 292
#define TK_PRIVILEGE 293 #define TK_PLUS 293
#define TK_RAISE 294 #define TK_PRIVILEGE 294
#define TK_REPLACE 295 #define TK_RAISE 295
#define TK_RESTRICT 296 #define TK_REPLACE 296
#define TK_ROW 297 #define TK_RESTRICT 297
#define TK_SEMI 298 #define TK_ROW 298
#define TK_STAR 299 #define TK_SEMI 299
#define TK_STATEMENT 300 #define TK_STAR 300
#define TK_STRING 301 #define TK_STATEMENT 301
#define TK_TIMES 302 #define TK_STRING 302
#define TK_UPDATE 303 #define TK_TIMES 303
#define TK_VALUES 304 #define TK_UPDATE 304
#define TK_VARIABLE 305 #define TK_VALUES 305
#define TK_VIEW 306 #define TK_VARIABLE 306
#define TK_WAL 307 #define TK_VIEW 307
#define TK_WAL 308
#define TK_NK_SPACE 300 #define TK_NK_SPACE 300
#define TK_NK_COMMENT 301 #define TK_NK_COMMENT 301
......
...@@ -64,6 +64,7 @@ typedef struct SDatabaseOptions { ...@@ -64,6 +64,7 @@ typedef struct SDatabaseOptions {
int64_t keep[3]; int64_t keep[3];
int32_t pages; int32_t pages;
int32_t pagesize; int32_t pagesize;
int32_t tsdbPageSize;
char precisionStr[3]; char precisionStr[3];
int8_t precision; int8_t precision;
int8_t replica; int8_t replica;
......
...@@ -300,6 +300,9 @@ typedef enum ELogicConditionType { ...@@ -300,6 +300,9 @@ typedef enum ELogicConditionType {
#define TSDB_DEFAULT_PAGES_PER_VNODE 256 #define TSDB_DEFAULT_PAGES_PER_VNODE 256
#define TSDB_MIN_PAGESIZE_PER_VNODE 1 // unit KB #define TSDB_MIN_PAGESIZE_PER_VNODE 1 // unit KB
#define TSDB_MAX_PAGESIZE_PER_VNODE 16384 #define TSDB_MAX_PAGESIZE_PER_VNODE 16384
#define TSDB_DEFAULT_TSDB_PAGESIZE 4
#define TSDB_MIN_TSDB_PAGESIZE 1 // unit KB
#define TSDB_MAX_TSDB_PAGESIZE 16384
#define TSDB_DEFAULT_PAGESIZE_PER_VNODE 4 #define TSDB_DEFAULT_PAGESIZE_PER_VNODE 4
#define TSDB_MIN_DAYS_PER_FILE 60 // unit minute #define TSDB_MIN_DAYS_PER_FILE 60 // unit minute
#define TSDB_MAX_DAYS_PER_FILE (3650 * 1440) #define TSDB_MAX_DAYS_PER_FILE (3650 * 1440)
......
...@@ -2038,6 +2038,7 @@ int32_t tSerializeSCreateDbReq(void *buf, int32_t bufLen, SCreateDbReq *pReq) { ...@@ -2038,6 +2038,7 @@ int32_t tSerializeSCreateDbReq(void *buf, int32_t bufLen, SCreateDbReq *pReq) {
if (tEncodeI8(&encoder, pRetension->freqUnit) < 0) return -1; if (tEncodeI8(&encoder, pRetension->freqUnit) < 0) return -1;
if (tEncodeI8(&encoder, pRetension->keepUnit) < 0) return -1; if (tEncodeI8(&encoder, pRetension->keepUnit) < 0) return -1;
} }
if (tEncodeI32(&encoder, pReq->tsdbPageSize) < 0) return -1;
tEndEncode(&encoder); tEndEncode(&encoder);
int32_t tlen = encoder.pos; int32_t tlen = encoder.pos;
...@@ -2098,6 +2099,8 @@ int32_t tDeserializeSCreateDbReq(void *buf, int32_t bufLen, SCreateDbReq *pReq) ...@@ -2098,6 +2099,8 @@ int32_t tDeserializeSCreateDbReq(void *buf, int32_t bufLen, SCreateDbReq *pReq)
} }
} }
if (tDecodeI32(&decoder, &pReq->tsdbPageSize) < 0) return -1;
tEndDecode(&decoder); tEndDecode(&decoder);
tDecoderClear(&decoder); tDecoderClear(&decoder);
......
...@@ -48,6 +48,7 @@ typedef enum EDatabaseOptionType { ...@@ -48,6 +48,7 @@ typedef enum EDatabaseOptionType {
DB_OPTION_KEEP, DB_OPTION_KEEP,
DB_OPTION_PAGES, DB_OPTION_PAGES,
DB_OPTION_PAGESIZE, DB_OPTION_PAGESIZE,
DB_OPTION_TSDB_PAGESIZE,
DB_OPTION_PRECISION, DB_OPTION_PRECISION,
DB_OPTION_REPLICA, DB_OPTION_REPLICA,
DB_OPTION_STRICT, DB_OPTION_STRICT,
...@@ -60,7 +61,7 @@ typedef enum EDatabaseOptionType { ...@@ -60,7 +61,7 @@ typedef enum EDatabaseOptionType {
DB_OPTION_WAL_RETENTION_SIZE, DB_OPTION_WAL_RETENTION_SIZE,
DB_OPTION_WAL_ROLL_PERIOD, DB_OPTION_WAL_ROLL_PERIOD,
DB_OPTION_WAL_SEGMENT_SIZE, DB_OPTION_WAL_SEGMENT_SIZE,
DB_OPTION_SST_TRIGGER, DB_OPTION_STT_TRIGGER,
DB_OPTION_TABLE_PREFIX, DB_OPTION_TABLE_PREFIX,
DB_OPTION_TABLE_SUFFIX DB_OPTION_TABLE_SUFFIX
} EDatabaseOptionType; } EDatabaseOptionType;
......
...@@ -184,6 +184,7 @@ db_options(A) ::= db_options(B) KEEP integer_list(C). ...@@ -184,6 +184,7 @@ db_options(A) ::= db_options(B) KEEP integer_list(C).
db_options(A) ::= db_options(B) KEEP variable_list(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_KEEP, C); } db_options(A) ::= db_options(B) KEEP variable_list(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_KEEP, C); }
db_options(A) ::= db_options(B) PAGES NK_INTEGER(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_PAGES, &C); } db_options(A) ::= db_options(B) PAGES NK_INTEGER(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_PAGES, &C); }
db_options(A) ::= db_options(B) PAGESIZE NK_INTEGER(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_PAGESIZE, &C); } db_options(A) ::= db_options(B) PAGESIZE NK_INTEGER(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_PAGESIZE, &C); }
db_options(A) ::= db_options(B) TSDB_PAGESIZE NK_INTEGER(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_TSDB_PAGESIZE, &C); }
db_options(A) ::= db_options(B) PRECISION NK_STRING(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_PRECISION, &C); } db_options(A) ::= db_options(B) PRECISION NK_STRING(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_PRECISION, &C); }
db_options(A) ::= db_options(B) REPLICA NK_INTEGER(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_REPLICA, &C); } db_options(A) ::= db_options(B) REPLICA NK_INTEGER(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_REPLICA, &C); }
db_options(A) ::= db_options(B) STRICT NK_STRING(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_STRICT, &C); } db_options(A) ::= db_options(B) STRICT NK_STRING(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_STRICT, &C); }
...@@ -207,7 +208,7 @@ db_options(A) ::= db_options(B) WAL_RETENTION_SIZE NK_MINUS(D) NK_INTEGER(C). ...@@ -207,7 +208,7 @@ db_options(A) ::= db_options(B) WAL_RETENTION_SIZE NK_MINUS(D) NK_INTEGER(C).
} }
db_options(A) ::= db_options(B) WAL_ROLL_PERIOD NK_INTEGER(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_WAL_ROLL_PERIOD, &C); } db_options(A) ::= db_options(B) WAL_ROLL_PERIOD NK_INTEGER(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_WAL_ROLL_PERIOD, &C); }
db_options(A) ::= db_options(B) WAL_SEGMENT_SIZE NK_INTEGER(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_WAL_SEGMENT_SIZE, &C); } db_options(A) ::= db_options(B) WAL_SEGMENT_SIZE NK_INTEGER(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_WAL_SEGMENT_SIZE, &C); }
db_options(A) ::= db_options(B) SST_TRIGGER NK_INTEGER(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_SST_TRIGGER, &C); } db_options(A) ::= db_options(B) STT_TRIGGER NK_INTEGER(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_STT_TRIGGER, &C); }
db_options(A) ::= db_options(B) TABLE_PREFIX NK_INTEGER(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_TABLE_PREFIX, &C); } db_options(A) ::= db_options(B) TABLE_PREFIX NK_INTEGER(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_TABLE_PREFIX, &C); }
db_options(A) ::= db_options(B) TABLE_SUFFIX NK_INTEGER(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_TABLE_SUFFIX, &C); } db_options(A) ::= db_options(B) TABLE_SUFFIX NK_INTEGER(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_TABLE_SUFFIX, &C); }
...@@ -226,7 +227,7 @@ alter_db_option(A) ::= KEEP variable_list(B). ...@@ -226,7 +227,7 @@ alter_db_option(A) ::= KEEP variable_list(B).
//alter_db_option(A) ::= REPLICA NK_INTEGER(B). { A.type = DB_OPTION_REPLICA; A.val = B; } //alter_db_option(A) ::= REPLICA NK_INTEGER(B). { A.type = DB_OPTION_REPLICA; A.val = B; }
//alter_db_option(A) ::= STRICT NK_STRING(B). { A.type = DB_OPTION_STRICT; A.val = B; } //alter_db_option(A) ::= STRICT NK_STRING(B). { A.type = DB_OPTION_STRICT; A.val = B; }
alter_db_option(A) ::= WAL_LEVEL NK_INTEGER(B). { A.type = DB_OPTION_WAL; A.val = B; } alter_db_option(A) ::= WAL_LEVEL NK_INTEGER(B). { A.type = DB_OPTION_WAL; A.val = B; }
alter_db_option(A) ::= SST_TRIGGER NK_INTEGER(B). { A.type = DB_OPTION_SST_TRIGGER; A.val = B; } alter_db_option(A) ::= STT_TRIGGER NK_INTEGER(B). { A.type = DB_OPTION_STT_TRIGGER; A.val = B; }
%type integer_list { SNodeList* } %type integer_list { SNodeList* }
%destructor integer_list { nodesDestroyList($$); } %destructor integer_list { nodesDestroyList($$); }
......
...@@ -826,6 +826,7 @@ SNode* createDefaultDatabaseOptions(SAstCreateContext* pCxt) { ...@@ -826,6 +826,7 @@ SNode* createDefaultDatabaseOptions(SAstCreateContext* pCxt) {
pOptions->keep[2] = TSDB_DEFAULT_KEEP; pOptions->keep[2] = TSDB_DEFAULT_KEEP;
pOptions->pages = TSDB_DEFAULT_PAGES_PER_VNODE; pOptions->pages = TSDB_DEFAULT_PAGES_PER_VNODE;
pOptions->pagesize = TSDB_DEFAULT_PAGESIZE_PER_VNODE; pOptions->pagesize = TSDB_DEFAULT_PAGESIZE_PER_VNODE;
pOptions->tsdbPageSize = TSDB_DEFAULT_TSDB_PAGESIZE;
pOptions->precision = TSDB_DEFAULT_PRECISION; pOptions->precision = TSDB_DEFAULT_PRECISION;
pOptions->replica = TSDB_DEFAULT_DB_REPLICA; pOptions->replica = TSDB_DEFAULT_DB_REPLICA;
pOptions->strict = TSDB_DEFAULT_DB_STRICT; pOptions->strict = TSDB_DEFAULT_DB_STRICT;
...@@ -858,6 +859,7 @@ SNode* createAlterDatabaseOptions(SAstCreateContext* pCxt) { ...@@ -858,6 +859,7 @@ SNode* createAlterDatabaseOptions(SAstCreateContext* pCxt) {
pOptions->keep[2] = -1; pOptions->keep[2] = -1;
pOptions->pages = -1; pOptions->pages = -1;
pOptions->pagesize = -1; pOptions->pagesize = -1;
pOptions->tsdbPageSize = -1;
pOptions->precision = -1; pOptions->precision = -1;
pOptions->replica = -1; pOptions->replica = -1;
pOptions->strict = -1; pOptions->strict = -1;
...@@ -918,6 +920,9 @@ SNode* setDatabaseOption(SAstCreateContext* pCxt, SNode* pOptions, EDatabaseOpti ...@@ -918,6 +920,9 @@ SNode* setDatabaseOption(SAstCreateContext* pCxt, SNode* pOptions, EDatabaseOpti
case DB_OPTION_PAGESIZE: case DB_OPTION_PAGESIZE:
pDbOptions->pagesize = taosStr2Int32(((SToken*)pVal)->z, NULL, 10); pDbOptions->pagesize = taosStr2Int32(((SToken*)pVal)->z, NULL, 10);
break; break;
case DB_OPTION_TSDB_PAGESIZE:
pDbOptions->tsdbPageSize = taosStr2Int32(((SToken*)pVal)->z, NULL, 10);
break;
case DB_OPTION_PRECISION: case DB_OPTION_PRECISION:
COPY_STRING_FORM_STR_TOKEN(pDbOptions->precisionStr, (SToken*)pVal); COPY_STRING_FORM_STR_TOKEN(pDbOptions->precisionStr, (SToken*)pVal);
break; break;
...@@ -955,7 +960,7 @@ SNode* setDatabaseOption(SAstCreateContext* pCxt, SNode* pOptions, EDatabaseOpti ...@@ -955,7 +960,7 @@ SNode* setDatabaseOption(SAstCreateContext* pCxt, SNode* pOptions, EDatabaseOpti
case DB_OPTION_WAL_SEGMENT_SIZE: case DB_OPTION_WAL_SEGMENT_SIZE:
pDbOptions->walSegmentSize = taosStr2Int32(((SToken*)pVal)->z, NULL, 10); pDbOptions->walSegmentSize = taosStr2Int32(((SToken*)pVal)->z, NULL, 10);
break; break;
case DB_OPTION_SST_TRIGGER: case DB_OPTION_STT_TRIGGER:
pDbOptions->sstTrigger = taosStr2Int32(((SToken*)pVal)->z, NULL, 10); pDbOptions->sstTrigger = taosStr2Int32(((SToken*)pVal)->z, NULL, 10);
break; break;
case DB_OPTION_TABLE_PREFIX: case DB_OPTION_TABLE_PREFIX:
......
...@@ -187,7 +187,7 @@ static SKeyword keywordTable[] = { ...@@ -187,7 +187,7 @@ static SKeyword keywordTable[] = {
{"SNODES", TK_SNODES}, {"SNODES", TK_SNODES},
{"SOFFSET", TK_SOFFSET}, {"SOFFSET", TK_SOFFSET},
{"SPLIT", TK_SPLIT}, {"SPLIT", TK_SPLIT},
{"SST_TRIGGER", TK_SST_TRIGGER}, {"STT_TRIGGER", TK_STT_TRIGGER},
{"STABLE", TK_STABLE}, {"STABLE", TK_STABLE},
{"STABLES", TK_STABLES}, {"STABLES", TK_STABLES},
{"STATE", TK_STATE}, {"STATE", TK_STATE},
...@@ -216,6 +216,7 @@ static SKeyword keywordTable[] = { ...@@ -216,6 +216,7 @@ static SKeyword keywordTable[] = {
{"TRANSACTIONS", TK_TRANSACTIONS}, {"TRANSACTIONS", TK_TRANSACTIONS},
{"TRIGGER", TK_TRIGGER}, {"TRIGGER", TK_TRIGGER},
{"TRIM", TK_TRIM}, {"TRIM", TK_TRIM},
{"TSDB_PAGESIZE", TK_TSDB_PAGESIZE},
{"TSERIES", TK_TSERIES}, {"TSERIES", TK_TSERIES},
{"TTL", TK_TTL}, {"TTL", TK_TTL},
{"UNION", TK_UNION}, {"UNION", TK_UNION},
......
...@@ -3485,6 +3485,7 @@ static int32_t buildCreateDbReq(STranslateContext* pCxt, SCreateDatabaseStmt* pS ...@@ -3485,6 +3485,7 @@ static int32_t buildCreateDbReq(STranslateContext* pCxt, SCreateDatabaseStmt* pS
pReq->sstTrigger = pStmt->pOptions->sstTrigger; pReq->sstTrigger = pStmt->pOptions->sstTrigger;
pReq->hashPrefix = pStmt->pOptions->tablePrefix; pReq->hashPrefix = pStmt->pOptions->tablePrefix;
pReq->hashSuffix = pStmt->pOptions->tableSuffix; pReq->hashSuffix = pStmt->pOptions->tableSuffix;
pReq->tsdbPageSize = pStmt->pOptions->tsdbPageSize;
pReq->ignoreExist = pStmt->ignoreExists; pReq->ignoreExist = pStmt->ignoreExists;
return buildCreateDbRetentions(pStmt->pOptions->pRetentions, pReq); return buildCreateDbRetentions(pStmt->pOptions->pRetentions, pReq);
} }
...@@ -3729,6 +3730,10 @@ static int32_t checkDatabaseOptions(STranslateContext* pCxt, const char* pDbName ...@@ -3729,6 +3730,10 @@ static int32_t checkDatabaseOptions(STranslateContext* pCxt, const char* pDbName
code = checkDbRangeOption(pCxt, "pagesize", pOptions->pagesize, TSDB_MIN_PAGESIZE_PER_VNODE, code = checkDbRangeOption(pCxt, "pagesize", pOptions->pagesize, TSDB_MIN_PAGESIZE_PER_VNODE,
TSDB_MAX_PAGESIZE_PER_VNODE); TSDB_MAX_PAGESIZE_PER_VNODE);
} }
if (TSDB_CODE_SUCCESS == code) {
code = checkDbRangeOption(pCxt, "tsdbPagesize", pOptions->tsdbPageSize, TSDB_MIN_TSDB_PAGESIZE,
TSDB_MAX_TSDB_PAGESIZE);
}
if (TSDB_CODE_SUCCESS == code) { if (TSDB_CODE_SUCCESS == code) {
code = checkDbPrecisionOption(pCxt, pOptions); code = checkDbPrecisionOption(pCxt, pOptions);
} }
......
因为 它太大了无法显示 source diff 。你可以改为 查看blob
...@@ -162,7 +162,7 @@ TEST_F(ParserInitialATest, alterDatabase) { ...@@ -162,7 +162,7 @@ TEST_F(ParserInitialATest, alterDatabase) {
setAlterDbWal(1); setAlterDbWal(1);
setAlterDbCacheModel(TSDB_CACHE_MODEL_LAST_ROW); setAlterDbCacheModel(TSDB_CACHE_MODEL_LAST_ROW);
setAlterDbSstTrigger(16); setAlterDbSstTrigger(16);
run("ALTER DATABASE test CACHEMODEL 'last_row' CACHESIZE 32 WAL_FSYNC_PERIOD 200 KEEP 10 WAL_LEVEL 1 SST_TRIGGER 16"); run("ALTER DATABASE test CACHEMODEL 'last_row' CACHESIZE 32 WAL_FSYNC_PERIOD 200 KEEP 10 WAL_LEVEL 1 STT_TRIGGER 16");
clearAlterDbReq(); clearAlterDbReq();
initAlterDb("test"); initAlterDb("test");
...@@ -236,8 +236,8 @@ TEST_F(ParserInitialATest, alterDatabaseSemanticCheck) { ...@@ -236,8 +236,8 @@ TEST_F(ParserInitialATest, alterDatabaseSemanticCheck) {
run("ALTER DATABASE test KEEP 1w", TSDB_CODE_PAR_INVALID_DB_OPTION); run("ALTER DATABASE test KEEP 1w", TSDB_CODE_PAR_INVALID_DB_OPTION);
run("ALTER DATABASE test WAL_LEVEL 0", TSDB_CODE_PAR_INVALID_DB_OPTION); run("ALTER DATABASE test WAL_LEVEL 0", TSDB_CODE_PAR_INVALID_DB_OPTION);
run("ALTER DATABASE test WAL_LEVEL 3", TSDB_CODE_PAR_INVALID_DB_OPTION); run("ALTER DATABASE test WAL_LEVEL 3", TSDB_CODE_PAR_INVALID_DB_OPTION);
run("ALTER DATABASE test SST_TRIGGER 0", TSDB_CODE_PAR_INVALID_DB_OPTION); run("ALTER DATABASE test STT_TRIGGER 0", TSDB_CODE_PAR_INVALID_DB_OPTION);
run("ALTER DATABASE test SST_TRIGGER 17", TSDB_CODE_PAR_INVALID_DB_OPTION); run("ALTER DATABASE test STT_TRIGGER 17", TSDB_CODE_PAR_INVALID_DB_OPTION);
// Regardless of the specific sentence // Regardless of the specific sentence
run("ALTER DATABASE db WAL_LEVEL 0 # td-14436", TSDB_CODE_PAR_SYNTAX_ERROR, PARSER_STAGE_PARSE); run("ALTER DATABASE db WAL_LEVEL 0 # td-14436", TSDB_CODE_PAR_SYNTAX_ERROR, PARSER_STAGE_PARSE);
} }
......
...@@ -118,6 +118,7 @@ TEST_F(ParserInitialCTest, createDatabase) { ...@@ -118,6 +118,7 @@ TEST_F(ParserInitialCTest, createDatabase) {
expect.sstTrigger = TSDB_DEFAULT_SST_TRIGGER; expect.sstTrigger = TSDB_DEFAULT_SST_TRIGGER;
expect.hashPrefix = TSDB_DEFAULT_HASH_PREFIX; expect.hashPrefix = TSDB_DEFAULT_HASH_PREFIX;
expect.hashSuffix = TSDB_DEFAULT_HASH_SUFFIX; expect.hashSuffix = TSDB_DEFAULT_HASH_SUFFIX;
expect.tsdbPageSize = TSDB_DEFAULT_TSDB_PAGESIZE;
}; };
auto setDbBufferFunc = [&](int32_t buffer) { expect.buffer = buffer; }; auto setDbBufferFunc = [&](int32_t buffer) { expect.buffer = buffer; };
...@@ -161,6 +162,7 @@ TEST_F(ParserInitialCTest, createDatabase) { ...@@ -161,6 +162,7 @@ TEST_F(ParserInitialCTest, createDatabase) {
auto setDbSstTrigger = [&](int32_t sstTrigger) { expect.sstTrigger = sstTrigger; }; auto setDbSstTrigger = [&](int32_t sstTrigger) { expect.sstTrigger = sstTrigger; };
auto setDbHashPrefix = [&](int32_t hashPrefix) { expect.hashPrefix = hashPrefix; }; auto setDbHashPrefix = [&](int32_t hashPrefix) { expect.hashPrefix = hashPrefix; };
auto setDbHashSuffix = [&](int32_t hashSuffix) { expect.hashSuffix = hashSuffix; }; auto setDbHashSuffix = [&](int32_t hashSuffix) { expect.hashSuffix = hashSuffix; };
auto setDbTsdbPageSize = [&](int32_t tsdbPageSize) { expect.tsdbPageSize = tsdbPageSize; };
setCheckDdlFunc([&](const SQuery* pQuery, ParserStage stage) { setCheckDdlFunc([&](const SQuery* pQuery, ParserStage stage) {
ASSERT_EQ(nodeType(pQuery->pRoot), QUERY_NODE_CREATE_DATABASE_STMT); ASSERT_EQ(nodeType(pQuery->pRoot), QUERY_NODE_CREATE_DATABASE_STMT);
...@@ -194,6 +196,7 @@ TEST_F(ParserInitialCTest, createDatabase) { ...@@ -194,6 +196,7 @@ TEST_F(ParserInitialCTest, createDatabase) {
ASSERT_EQ(req.sstTrigger, expect.sstTrigger); ASSERT_EQ(req.sstTrigger, expect.sstTrigger);
ASSERT_EQ(req.hashPrefix, expect.hashPrefix); ASSERT_EQ(req.hashPrefix, expect.hashPrefix);
ASSERT_EQ(req.hashSuffix, expect.hashSuffix); ASSERT_EQ(req.hashSuffix, expect.hashSuffix);
ASSERT_EQ(req.tsdbPageSize, expect.tsdbPageSize);
ASSERT_EQ(req.ignoreExist, expect.ignoreExist); ASSERT_EQ(req.ignoreExist, expect.ignoreExist);
ASSERT_EQ(req.numOfRetensions, expect.numOfRetensions); ASSERT_EQ(req.numOfRetensions, expect.numOfRetensions);
if (expect.numOfRetensions > 0) { if (expect.numOfRetensions > 0) {
...@@ -244,6 +247,7 @@ TEST_F(ParserInitialCTest, createDatabase) { ...@@ -244,6 +247,7 @@ TEST_F(ParserInitialCTest, createDatabase) {
setDbSstTrigger(16); setDbSstTrigger(16);
setDbHashPrefix(3); setDbHashPrefix(3);
setDbHashSuffix(4); setDbHashSuffix(4);
setDbTsdbPageSize(32);
run("CREATE DATABASE IF NOT EXISTS wxy_db " run("CREATE DATABASE IF NOT EXISTS wxy_db "
"BUFFER 64 " "BUFFER 64 "
"CACHEMODEL 'last_value' " "CACHEMODEL 'last_value' "
...@@ -268,9 +272,10 @@ TEST_F(ParserInitialCTest, createDatabase) { ...@@ -268,9 +272,10 @@ TEST_F(ParserInitialCTest, createDatabase) {
"WAL_RETENTION_SIZE -1 " "WAL_RETENTION_SIZE -1 "
"WAL_ROLL_PERIOD 10 " "WAL_ROLL_PERIOD 10 "
"WAL_SEGMENT_SIZE 20 " "WAL_SEGMENT_SIZE 20 "
"SST_TRIGGER 16 " "STT_TRIGGER 16 "
"TABLE_PREFIX 3" "TABLE_PREFIX 3 "
"TABLE_SUFFIX 4"); "TABLE_SUFFIX 4 "
"TSDB_PAGESIZE 32");
clearCreateDbReq(); clearCreateDbReq();
setCreateDbReqFunc("wxy_db", 1); setCreateDbReqFunc("wxy_db", 1);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册