Merge branch '3.0' into fix/tsim

This commit is contained in:
Shengliang Guan 2022-07-27 15:46:46 +08:00
commit b7b51f4a26
31 changed files with 2988 additions and 3071 deletions

View File

@ -84,20 +84,20 @@
#define TK_COMP 66 #define TK_COMP 66
#define TK_DURATION 67 #define TK_DURATION 67
#define TK_NK_VARIABLE 68 #define TK_NK_VARIABLE 68
#define TK_FSYNC 69 #define TK_MAXROWS 69
#define TK_MAXROWS 70 #define TK_MINROWS 70
#define TK_MINROWS 71 #define TK_KEEP 71
#define TK_KEEP 72 #define TK_PAGES 72
#define TK_PAGES 73 #define TK_PAGESIZE 73
#define TK_PAGESIZE 74 #define TK_PRECISION 74
#define TK_PRECISION 75 #define TK_REPLICA 75
#define TK_REPLICA 76 #define TK_STRICT 76
#define TK_STRICT 77 #define TK_VGROUPS 77
#define TK_WAL 78 #define TK_SINGLE_STABLE 78
#define TK_VGROUPS 79 #define TK_RETENTIONS 79
#define TK_SINGLE_STABLE 80 #define TK_SCHEMALESS 80
#define TK_RETENTIONS 81 #define TK_WAL_LEVEL 81
#define TK_SCHEMALESS 82 #define TK_WAL_FSYNC_PERIOD 82
#define TK_WAL_RETENTION_PERIOD 83 #define TK_WAL_RETENTION_PERIOD 83
#define TK_WAL_RETENTION_SIZE 84 #define TK_WAL_RETENTION_SIZE 84
#define TK_WAL_ROLL_PERIOD 85 #define TK_WAL_ROLL_PERIOD 85
@ -188,93 +188,90 @@
#define TK_NK_BOOL 170 #define TK_NK_BOOL 170
#define TK_RATIO 171 #define TK_RATIO 171
#define TK_NK_FLOAT 172 #define TK_NK_FLOAT 172
#define TK_COMPACT 173 #define TK_OUTPUTTYPE 173
#define TK_VNODES 174 #define TK_AGGREGATE 174
#define TK_IN 175 #define TK_BUFSIZE 175
#define TK_OUTPUTTYPE 176 #define TK_STREAM 176
#define TK_AGGREGATE 177 #define TK_INTO 177
#define TK_BUFSIZE 178 #define TK_TRIGGER 178
#define TK_STREAM 179 #define TK_AT_ONCE 179
#define TK_INTO 180 #define TK_WINDOW_CLOSE 180
#define TK_TRIGGER 181 #define TK_IGNORE 181
#define TK_AT_ONCE 182 #define TK_EXPIRED 182
#define TK_WINDOW_CLOSE 183 #define TK_KILL 183
#define TK_IGNORE 184 #define TK_CONNECTION 184
#define TK_EXPIRED 185 #define TK_TRANSACTION 185
#define TK_KILL 186 #define TK_BALANCE 186
#define TK_CONNECTION 187 #define TK_VGROUP 187
#define TK_TRANSACTION 188 #define TK_MERGE 188
#define TK_BALANCE 189 #define TK_REDISTRIBUTE 189
#define TK_VGROUP 190 #define TK_SPLIT 190
#define TK_MERGE 191 #define TK_DELETE 191
#define TK_REDISTRIBUTE 192 #define TK_INSERT 192
#define TK_SPLIT 193 #define TK_NULL 193
#define TK_SYNCDB 194 #define TK_NK_QUESTION 194
#define TK_DELETE 195 #define TK_NK_ARROW 195
#define TK_INSERT 196 #define TK_ROWTS 196
#define TK_NULL 197 #define TK_TBNAME 197
#define TK_NK_QUESTION 198 #define TK_QSTART 198
#define TK_NK_ARROW 199 #define TK_QEND 199
#define TK_ROWTS 200 #define TK_QDURATION 200
#define TK_TBNAME 201 #define TK_WSTART 201
#define TK_QSTART 202 #define TK_WEND 202
#define TK_QEND 203 #define TK_WDURATION 203
#define TK_QDURATION 204 #define TK_CAST 204
#define TK_WSTART 205 #define TK_NOW 205
#define TK_WEND 206 #define TK_TODAY 206
#define TK_WDURATION 207 #define TK_TIMEZONE 207
#define TK_CAST 208 #define TK_CLIENT_VERSION 208
#define TK_NOW 209 #define TK_SERVER_VERSION 209
#define TK_TODAY 210 #define TK_SERVER_STATUS 210
#define TK_TIMEZONE 211 #define TK_CURRENT_USER 211
#define TK_CLIENT_VERSION 212 #define TK_COUNT 212
#define TK_SERVER_VERSION 213 #define TK_LAST_ROW 213
#define TK_SERVER_STATUS 214 #define TK_BETWEEN 214
#define TK_CURRENT_USER 215 #define TK_IS 215
#define TK_COUNT 216 #define TK_NK_LT 216
#define TK_LAST_ROW 217 #define TK_NK_GT 217
#define TK_BETWEEN 218 #define TK_NK_LE 218
#define TK_IS 219 #define TK_NK_GE 219
#define TK_NK_LT 220 #define TK_NK_NE 220
#define TK_NK_GT 221 #define TK_MATCH 221
#define TK_NK_LE 222 #define TK_NMATCH 222
#define TK_NK_GE 223 #define TK_CONTAINS 223
#define TK_NK_NE 224 #define TK_IN 224
#define TK_MATCH 225 #define TK_JOIN 225
#define TK_NMATCH 226 #define TK_INNER 226
#define TK_CONTAINS 227 #define TK_SELECT 227
#define TK_JOIN 228 #define TK_DISTINCT 228
#define TK_INNER 229 #define TK_WHERE 229
#define TK_SELECT 230 #define TK_PARTITION 230
#define TK_DISTINCT 231 #define TK_BY 231
#define TK_WHERE 232 #define TK_SESSION 232
#define TK_PARTITION 233 #define TK_STATE_WINDOW 233
#define TK_BY 234 #define TK_SLIDING 234
#define TK_SESSION 235 #define TK_FILL 235
#define TK_STATE_WINDOW 236 #define TK_VALUE 236
#define TK_SLIDING 237 #define TK_NONE 237
#define TK_FILL 238 #define TK_PREV 238
#define TK_VALUE 239 #define TK_LINEAR 239
#define TK_NONE 240 #define TK_NEXT 240
#define TK_PREV 241 #define TK_HAVING 241
#define TK_LINEAR 242 #define TK_RANGE 242
#define TK_NEXT 243 #define TK_EVERY 243
#define TK_HAVING 244 #define TK_ORDER 244
#define TK_RANGE 245 #define TK_SLIMIT 245
#define TK_EVERY 246 #define TK_SOFFSET 246
#define TK_ORDER 247 #define TK_LIMIT 247
#define TK_SLIMIT 248 #define TK_OFFSET 248
#define TK_SOFFSET 249 #define TK_ASC 249
#define TK_LIMIT 250 #define TK_NULLS 250
#define TK_OFFSET 251 #define TK_ID 251
#define TK_ASC 252 #define TK_NK_BITNOT 252
#define TK_NULLS 253 #define TK_VALUES 253
#define TK_ID 254 #define TK_IMPORT 254
#define TK_NK_BITNOT 255 #define TK_NK_SEMI 255
#define TK_VALUES 256 #define TK_FILE 256
#define TK_IMPORT 257
#define TK_NK_SEMI 258
#define TK_FILE 259
#define TK_NK_SPACE 300 #define TK_NK_SPACE 300
#define TK_NK_COMMENT 301 #define TK_NK_COMMENT 301

View File

@ -328,6 +328,7 @@ typedef struct STableScanPhysiNode {
int8_t triggerType; int8_t triggerType;
int64_t watermark; int64_t watermark;
int8_t igExpired; int8_t igExpired;
bool assignBlockUid;
} STableScanPhysiNode; } STableScanPhysiNode;
typedef STableScanPhysiNode STableSeqScanPhysiNode; typedef STableScanPhysiNode STableSeqScanPhysiNode;

View File

@ -375,6 +375,7 @@ typedef struct SQuery {
int8_t precision; int8_t precision;
SCmdMsgInfo* pCmdMsg; SCmdMsgInfo* pCmdMsg;
int32_t msgType; int32_t msgType;
SArray* pTargetTableList;
SArray* pTableList; SArray* pTableList;
SArray* pDbList; SArray* pDbList;
bool showRewrite; bool showRewrite;

View File

@ -513,7 +513,6 @@ int32_t* taosGetErrno();
#define TSDB_CODE_PAR_ONLY_ONE_JSON_TAG TAOS_DEF_ERROR_CODE(0, 0x2633) #define TSDB_CODE_PAR_ONLY_ONE_JSON_TAG TAOS_DEF_ERROR_CODE(0, 0x2633)
#define TSDB_CODE_PAR_INCORRECT_NUM_OF_COL TAOS_DEF_ERROR_CODE(0, 0x2634) #define TSDB_CODE_PAR_INCORRECT_NUM_OF_COL TAOS_DEF_ERROR_CODE(0, 0x2634)
#define TSDB_CODE_PAR_INCORRECT_TIMESTAMP_VAL TAOS_DEF_ERROR_CODE(0, 0x2635) #define TSDB_CODE_PAR_INCORRECT_TIMESTAMP_VAL TAOS_DEF_ERROR_CODE(0, 0x2635)
#define TSDB_CODE_PAR_INVALID_DAYS_VALUE TAOS_DEF_ERROR_CODE(0, 0x2636)
#define TSDB_CODE_PAR_OFFSET_LESS_ZERO TAOS_DEF_ERROR_CODE(0, 0x2637) #define TSDB_CODE_PAR_OFFSET_LESS_ZERO TAOS_DEF_ERROR_CODE(0, 0x2637)
#define TSDB_CODE_PAR_SLIMIT_LEAK_PARTITION_BY TAOS_DEF_ERROR_CODE(0, 0x2638) #define TSDB_CODE_PAR_SLIMIT_LEAK_PARTITION_BY TAOS_DEF_ERROR_CODE(0, 0x2638)
#define TSDB_CODE_PAR_INVALID_TOPIC_QUERY TAOS_DEF_ERROR_CODE(0, 0x2639) #define TSDB_CODE_PAR_INVALID_TOPIC_QUERY TAOS_DEF_ERROR_CODE(0, 0x2639)

View File

@ -222,6 +222,7 @@ typedef struct SRequestObj {
int32_t code; int32_t code;
SArray* dbList; SArray* dbList;
SArray* tableList; SArray* tableList;
SArray* targetTableList;
SQueryExecMetric metric; SQueryExecMetric metric;
SRequestSendRecvBody body; SRequestSendRecvBody body;
bool syncQuery; // todo refactor: async query object bool syncQuery; // todo refactor: async query object

View File

@ -235,6 +235,7 @@ int32_t parseSql(SRequestObj* pRequest, bool topicQuery, SQuery** pQuery, SStmtC
if (TSDB_CODE_SUCCESS == code || NEED_CLIENT_HANDLE_ERROR(code)) { if (TSDB_CODE_SUCCESS == code || NEED_CLIENT_HANDLE_ERROR(code)) {
TSWAP(pRequest->dbList, (*pQuery)->pDbList); TSWAP(pRequest->dbList, (*pQuery)->pDbList);
TSWAP(pRequest->tableList, (*pQuery)->pTableList); TSWAP(pRequest->tableList, (*pQuery)->pTableList);
TSWAP(pRequest->targetTableList, (*pQuery)->pTargetTableList);
} }
return code; return code;
@ -851,7 +852,7 @@ void schedulerExecCb(SExecResult* pResult, void* param, int32_t code) {
tscDebug("schedulerExecCb request type %s", TMSG_INFO(pRequest->type)); tscDebug("schedulerExecCb request type %s", TMSG_INFO(pRequest->type));
if (NEED_CLIENT_RM_TBLMETA_REQ(pRequest->type)) { if (NEED_CLIENT_RM_TBLMETA_REQ(pRequest->type)) {
removeMeta(pTscObj, pRequest->tableList); removeMeta(pTscObj, pRequest->targetTableList);
} }
// return to client // return to client
@ -1094,7 +1095,7 @@ SRequestObj* execQuery(uint64_t connId, const char* sql, int sqlLen, bool valida
} while (retryNum++ < REQUEST_TOTAL_EXEC_TIMES); } while (retryNum++ < REQUEST_TOTAL_EXEC_TIMES);
if (NEED_CLIENT_RM_TBLMETA_REQ(pRequest->type)) { if (NEED_CLIENT_RM_TBLMETA_REQ(pRequest->type)) {
removeMeta(pRequest->pTscObj, pRequest->tableList); removeMeta(pRequest->pTscObj, pRequest->targetTableList);
} }
return pRequest; return pRequest;

View File

@ -687,6 +687,7 @@ void retrieveMetaCallback(SMetaData *pResultMeta, void *param, int32_t code) {
TSWAP(pRequest->dbList, (pQuery)->pDbList); TSWAP(pRequest->dbList, (pQuery)->pDbList);
TSWAP(pRequest->tableList, (pQuery)->pTableList); TSWAP(pRequest->tableList, (pQuery)->pTableList);
TSWAP(pRequest->targetTableList, (pQuery)->pTargetTableList);
destorySqlParseWrapper(pWrapper); destorySqlParseWrapper(pWrapper);

View File

@ -693,6 +693,7 @@ int stmtBindBatch(TAOS_STMT* stmt, TAOS_MULTI_BIND* bind, int32_t colIdx) {
TSWAP(pStmt->exec.pRequest->dbList, pStmt->sql.pQuery->pDbList); TSWAP(pStmt->exec.pRequest->dbList, pStmt->sql.pQuery->pDbList);
TSWAP(pStmt->exec.pRequest->tableList, pStmt->sql.pQuery->pTableList); TSWAP(pStmt->exec.pRequest->tableList, pStmt->sql.pQuery->pTableList);
TSWAP(pStmt->exec.pRequest->targetTableList, pStmt->sql.pQuery->pTargetTableList);
// if (STMT_TYPE_QUERY == pStmt->sql.queryRes) { // if (STMT_TYPE_QUERY == pStmt->sql.queryRes) {
// STMT_ERR_RET(stmtRestoreQueryFields(pStmt)); // STMT_ERR_RET(stmtRestoreQueryFields(pStmt));

View File

@ -89,8 +89,8 @@ static const SSysDbTableSchema userDBSchema[] = {
{.name = "status", .bytes = 10 + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_VARCHAR}, {.name = "status", .bytes = 10 + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_VARCHAR},
{.name = "retention", .bytes = 60 + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_VARCHAR}, {.name = "retention", .bytes = 60 + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_VARCHAR},
{.name = "single_stable", .bytes = 1, .type = TSDB_DATA_TYPE_BOOL}, {.name = "single_stable", .bytes = 1, .type = TSDB_DATA_TYPE_BOOL},
{.name = "cache_model", .bytes = TSDB_CACHE_MODEL_STR_LEN + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_VARCHAR}, {.name = "cachemodel", .bytes = TSDB_CACHE_MODEL_STR_LEN + VARSTR_HEADER_SIZE, .type = TSDB_DATA_TYPE_VARCHAR},
{.name = "cache_size", .bytes = 4, .type = TSDB_DATA_TYPE_INT}, {.name = "cachesize", .bytes = 4, .type = TSDB_DATA_TYPE_INT},
{.name = "wal_level", .bytes = 1, .type = TSDB_DATA_TYPE_TINYINT}, {.name = "wal_level", .bytes = 1, .type = TSDB_DATA_TYPE_TINYINT},
{.name = "wal_fsync_period", .bytes = 4, .type = TSDB_DATA_TYPE_INT}, {.name = "wal_fsync_period", .bytes = 4, .type = TSDB_DATA_TYPE_INT},
{.name = "wal_retention_period", .bytes = 4, .type = TSDB_DATA_TYPE_INT}, {.name = "wal_retention_period", .bytes = 4, .type = TSDB_DATA_TYPE_INT},

View File

@ -1526,6 +1526,7 @@ SOperatorInfo* createStreamScanOperatorInfo(SReadHandle* pHandle, STableScanPhys
pInfo->pDeleteDataRes = createSpecialDataBlock(STREAM_DELETE_DATA); pInfo->pDeleteDataRes = createSpecialDataBlock(STREAM_DELETE_DATA);
pInfo->updateWin = (STimeWindow){.skey = INT64_MAX, .ekey = INT64_MAX}; pInfo->updateWin = (STimeWindow){.skey = INT64_MAX, .ekey = INT64_MAX};
pInfo->pUpdateDataRes = createSpecialDataBlock(STREAM_CLEAR); pInfo->pUpdateDataRes = createSpecialDataBlock(STREAM_CLEAR);
pInfo->assignBlockUid = pTableScanNode->assignBlockUid;
pOperator->name = "StreamScanOperator"; pOperator->name = "StreamScanOperator";
pOperator->operatorType = QUERY_NODE_PHYSICAL_PLAN_STREAM_SCAN; pOperator->operatorType = QUERY_NODE_PHYSICAL_PLAN_STREAM_SCAN;

View File

@ -176,7 +176,6 @@ db_options(A) ::= db_options(B) CACHESIZE NK_INTEGER(C).
db_options(A) ::= db_options(B) COMP NK_INTEGER(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_COMP, &C); } db_options(A) ::= db_options(B) COMP NK_INTEGER(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_COMP, &C); }
db_options(A) ::= db_options(B) DURATION NK_INTEGER(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_DAYS, &C); } db_options(A) ::= db_options(B) DURATION NK_INTEGER(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_DAYS, &C); }
db_options(A) ::= db_options(B) DURATION NK_VARIABLE(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_DAYS, &C); } db_options(A) ::= db_options(B) DURATION NK_VARIABLE(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_DAYS, &C); }
db_options(A) ::= db_options(B) FSYNC NK_INTEGER(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_FSYNC, &C); }
db_options(A) ::= db_options(B) MAXROWS NK_INTEGER(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_MAXROWS, &C); } db_options(A) ::= db_options(B) MAXROWS NK_INTEGER(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_MAXROWS, &C); }
db_options(A) ::= db_options(B) MINROWS NK_INTEGER(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_MINROWS, &C); } db_options(A) ::= db_options(B) MINROWS NK_INTEGER(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_MINROWS, &C); }
db_options(A) ::= db_options(B) KEEP integer_list(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_KEEP, C); } db_options(A) ::= db_options(B) KEEP integer_list(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_KEEP, C); }
@ -186,11 +185,12 @@ db_options(A) ::= db_options(B) PAGESIZE NK_INTEGER(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); }
db_options(A) ::= db_options(B) WAL NK_INTEGER(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_WAL, &C); }
db_options(A) ::= db_options(B) VGROUPS NK_INTEGER(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_VGROUPS, &C); } db_options(A) ::= db_options(B) VGROUPS NK_INTEGER(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_VGROUPS, &C); }
db_options(A) ::= db_options(B) SINGLE_STABLE NK_INTEGER(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_SINGLE_STABLE, &C); } db_options(A) ::= db_options(B) SINGLE_STABLE NK_INTEGER(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_SINGLE_STABLE, &C); }
db_options(A) ::= db_options(B) RETENTIONS retention_list(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_RETENTIONS, C); } db_options(A) ::= db_options(B) RETENTIONS retention_list(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_RETENTIONS, C); }
db_options(A) ::= db_options(B) SCHEMALESS NK_INTEGER(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_SCHEMALESS, &C); } db_options(A) ::= db_options(B) SCHEMALESS NK_INTEGER(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_SCHEMALESS, &C); }
db_options(A) ::= db_options(B) WAL_LEVEL NK_INTEGER(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_WAL, &C); }
db_options(A) ::= db_options(B) WAL_FSYNC_PERIOD NK_INTEGER(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_FSYNC, &C); }
db_options(A) ::= db_options(B) WAL_RETENTION_PERIOD NK_INTEGER(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_WAL_RETENTION_PERIOD, &C); } db_options(A) ::= db_options(B) WAL_RETENTION_PERIOD NK_INTEGER(C). { A = setDatabaseOption(pCxt, B, DB_OPTION_WAL_RETENTION_PERIOD, &C); }
db_options(A) ::= db_options(B) WAL_RETENTION_PERIOD NK_MINUS(D) NK_INTEGER(C). { db_options(A) ::= db_options(B) WAL_RETENTION_PERIOD NK_MINUS(D) NK_INTEGER(C). {
SToken t = D; SToken t = D;
@ -214,13 +214,13 @@ alter_db_options(A) ::= alter_db_options(B) alter_db_option(C).
//alter_db_option(A) ::= BUFFER NK_INTEGER(B). { A.type = DB_OPTION_BUFFER; A.val = B; } //alter_db_option(A) ::= BUFFER NK_INTEGER(B). { A.type = DB_OPTION_BUFFER; A.val = B; }
alter_db_option(A) ::= CACHEMODEL NK_STRING(B). { A.type = DB_OPTION_CACHEMODEL; A.val = B; } alter_db_option(A) ::= CACHEMODEL NK_STRING(B). { A.type = DB_OPTION_CACHEMODEL; A.val = B; }
alter_db_option(A) ::= CACHESIZE NK_INTEGER(B). { A.type = DB_OPTION_CACHESIZE; A.val = B; } alter_db_option(A) ::= CACHESIZE NK_INTEGER(B). { A.type = DB_OPTION_CACHESIZE; A.val = B; }
alter_db_option(A) ::= FSYNC NK_INTEGER(B). { A.type = DB_OPTION_FSYNC; A.val = B; } alter_db_option(A) ::= WAL_FSYNC_PERIOD NK_INTEGER(B). { A.type = DB_OPTION_FSYNC; A.val = B; }
alter_db_option(A) ::= KEEP integer_list(B). { A.type = DB_OPTION_KEEP; A.pList = B; } alter_db_option(A) ::= KEEP integer_list(B). { A.type = DB_OPTION_KEEP; A.pList = B; }
alter_db_option(A) ::= KEEP variable_list(B). { A.type = DB_OPTION_KEEP; A.pList = B; } alter_db_option(A) ::= KEEP variable_list(B). { A.type = DB_OPTION_KEEP; A.pList = B; }
//alter_db_option(A) ::= PAGES NK_INTEGER(B). { A.type = DB_OPTION_PAGES; A.val = B; } //alter_db_option(A) ::= PAGES NK_INTEGER(B). { A.type = DB_OPTION_PAGES; A.val = 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 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; }
%type integer_list { SNodeList* } %type integer_list { SNodeList* }
%destructor integer_list { nodesDestroyList($$); } %destructor integer_list { nodesDestroyList($$); }
@ -476,7 +476,7 @@ explain_options(A) ::= explain_options(B) VERBOSE NK_BOOL(C).
explain_options(A) ::= explain_options(B) RATIO NK_FLOAT(C). { A = setExplainRatio(pCxt, B, &C); } explain_options(A) ::= explain_options(B) RATIO NK_FLOAT(C). { A = setExplainRatio(pCxt, B, &C); }
/************************************************ compact *************************************************************/ /************************************************ compact *************************************************************/
cmd ::= COMPACT VNODES IN NK_LP integer_list NK_RP. { pCxt->errCode = generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_EXPRIE_STATEMENT); } //cmd ::= COMPACT VNODES IN NK_LP integer_list NK_RP. { pCxt->errCode = generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_EXPRIE_STATEMENT); }
/************************************************ create/drop function ************************************************/ /************************************************ create/drop function ************************************************/
cmd ::= CREATE agg_func_opt(A) FUNCTION not_exists_opt(F) function_name(B) cmd ::= CREATE agg_func_opt(A) FUNCTION not_exists_opt(F) function_name(B)
@ -525,7 +525,7 @@ dnode_list(A) ::= DNODE NK_INTEGER(B).
dnode_list(A) ::= dnode_list(B) DNODE NK_INTEGER(C). { A = addNodeToList(pCxt, B, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &C)); } dnode_list(A) ::= dnode_list(B) DNODE NK_INTEGER(C). { A = addNodeToList(pCxt, B, createValueNode(pCxt, TSDB_DATA_TYPE_BIGINT, &C)); }
/************************************************ syncdb **************************************************************/ /************************************************ syncdb **************************************************************/
cmd ::= SYNCDB db_name(A) REPLICA. { pCxt->pRootNode = createSyncdbStmt(pCxt, &A); } //cmd ::= SYNCDB db_name(A) REPLICA. { pCxt->pRootNode = createSyncdbStmt(pCxt, &A); }
/************************************************ syncdb **************************************************************/ /************************************************ syncdb **************************************************************/
cmd ::= DELETE FROM full_table_name(A) where_clause_opt(B). { pCxt->pRootNode = createDeleteStmt(pCxt, A, B); } cmd ::= DELETE FROM full_table_name(A) where_clause_opt(B). { pCxt->pRootNode = createDeleteStmt(pCxt, A, B); }

View File

@ -60,7 +60,6 @@ static SKeyword keywordTable[] = {
{"COLUMN", TK_COLUMN}, {"COLUMN", TK_COLUMN},
{"COMMENT", TK_COMMENT}, {"COMMENT", TK_COMMENT},
{"COMP", TK_COMP}, {"COMP", TK_COMP},
{"COMPACT", TK_COMPACT},
{"CONNS", TK_CONNS}, {"CONNS", TK_CONNS},
{"CONNECTION", TK_CONNECTION}, {"CONNECTION", TK_CONNECTION},
{"CONNECTIONS", TK_CONNECTIONS}, {"CONNECTIONS", TK_CONNECTIONS},
@ -94,7 +93,6 @@ static SKeyword keywordTable[] = {
{"FLOAT", TK_FLOAT}, {"FLOAT", TK_FLOAT},
{"FLUSH", TK_FLUSH}, {"FLUSH", TK_FLUSH},
{"FROM", TK_FROM}, {"FROM", TK_FROM},
{"FSYNC", TK_FSYNC},
{"FUNCTION", TK_FUNCTION}, {"FUNCTION", TK_FUNCTION},
{"FUNCTIONS", TK_FUNCTIONS}, {"FUNCTIONS", TK_FUNCTIONS},
{"GRANT", TK_GRANT}, {"GRANT", TK_GRANT},
@ -156,7 +154,6 @@ static SKeyword keywordTable[] = {
{"PORT", TK_PORT}, {"PORT", TK_PORT},
{"PPS", TK_PPS}, {"PPS", TK_PPS},
{"PRECISION", TK_PRECISION}, {"PRECISION", TK_PRECISION},
// {"PRIVILEGE", TK_PRIVILEGE},
{"PREV", TK_PREV}, {"PREV", TK_PREV},
{"QNODE", TK_QNODE}, {"QNODE", TK_QNODE},
{"QNODES", TK_QNODES}, {"QNODES", TK_QNODES},
@ -199,7 +196,6 @@ static SKeyword keywordTable[] = {
{"STREAMS", TK_STREAMS}, {"STREAMS", TK_STREAMS},
{"STRICT", TK_STRICT}, {"STRICT", TK_STRICT},
{"SUBSCRIPTIONS", TK_SUBSCRIPTIONS}, {"SUBSCRIPTIONS", TK_SUBSCRIPTIONS},
{"SYNCDB", TK_SYNCDB},
{"SYSINFO", TK_SYSINFO}, {"SYSINFO", TK_SYSINFO},
{"TABLE", TK_TABLE}, {"TABLE", TK_TABLE},
{"TABLES", TK_TABLES}, {"TABLES", TK_TABLES},
@ -232,8 +228,8 @@ static SKeyword keywordTable[] = {
{"VERBOSE", TK_VERBOSE}, {"VERBOSE", TK_VERBOSE},
{"VGROUP", TK_VGROUP}, {"VGROUP", TK_VGROUP},
{"VGROUPS", TK_VGROUPS}, {"VGROUPS", TK_VGROUPS},
{"VNODES", TK_VNODES}, {"WAL_FSYNC_PERIOD", TK_WAL_FSYNC_PERIOD},
{"WAL", TK_WAL}, {"WAL_LEVEL", TK_WAL_LEVEL},
{"WAL_RETENTION_PERIOD", TK_WAL_RETENTION_PERIOD}, {"WAL_RETENTION_PERIOD", TK_WAL_RETENTION_PERIOD},
{"WAL_RETENTION_SIZE", TK_WAL_RETENTION_SIZE}, {"WAL_RETENTION_SIZE", TK_WAL_RETENTION_SIZE},
{"WAL_ROLL_PERIOD", TK_WAL_ROLL_PERIOD}, {"WAL_ROLL_PERIOD", TK_WAL_ROLL_PERIOD},
@ -251,69 +247,6 @@ static SKeyword keywordTable[] = {
{"_WDURATION", TK_WDURATION}, {"_WDURATION", TK_WDURATION},
{"_WEND", TK_WEND}, {"_WEND", TK_WEND},
{"_WSTART", TK_WSTART}, {"_WSTART", TK_WSTART},
// {"ID", TK_ID},
// {"STRING", TK_STRING},
// {"EQ", TK_EQ},
// {"NE", TK_NE},
// {"ISNULL", TK_ISNULL},
// {"NOTNULL", TK_NOTNULL},
// {"GLOB", TK_GLOB},
// {"GT", TK_GT},
// {"GE", TK_GE},
// {"LT", TK_LT},
// {"LE", TK_LE},
// {"BITAND", TK_BITAND},
// {"BITOR", TK_BITOR},
// {"LSHIFT", TK_LSHIFT},
// {"RSHIFT", TK_RSHIFT},
// {"PLUS", TK_PLUS},
// {"DIVIDE", TK_DIVIDE},
// {"TIMES", TK_TIMES},
// {"STAR", TK_STAR},
// {"SLASH", TK_SLASH},
// {"REM ", TK_REM},
// {"||", TK_CONCAT},
// {"UMINUS", TK_UMINUS},
// {"UPLUS", TK_UPLUS},
// {"BITNOT", TK_BITNOT},
// {"DOT", TK_DOT},
// {"CTIME", TK_CTIME},
// {"LP", TK_LP},
// {"RP", TK_RP},
// {"COMMA", TK_COMMA},
// {"VARIABLE", TK_VARIABLE},
// {"UPDATE", TK_UPDATE},
// {"CHANGE", TK_CHANGE},
// {"COLON", TK_COLON},
// {"ABORT", TK_ABORT},
// {"AFTER", TK_AFTER},
// {"ATTACH", TK_ATTACH},
// {"BEFORE", TK_BEFORE},
// {"BEGIN", TK_BEGIN},
// {"CASCADE", TK_CASCADE},
// {"CONFLICT", TK_CONFLICT},
// {"COPY", TK_COPY},
// {"DEFERRED", TK_DEFERRED},
// {"DELIMITERS", TK_DELIMITERS},
// {"DETACH", TK_DETACH},
// {"EACH", TK_EACH},
// {"END", TK_END},
// {"FAIL", TK_FAIL},
// {"FOR", TK_FOR},
// {"IMMEDIATE", TK_IMMEDIATE},
// {"INITIALLY", TK_INITIALLY},
// {"INSTEAD", TK_INSTEAD},
// {"KEY", TK_KEY},
// {"OF", TK_OF},
// {"RAISE", TK_RAISE},
// {"REPLACE", TK_REPLACE},
// {"RESTRICT", TK_RESTRICT},
// {"ROW", TK_ROW},
// {"STATEMENT", TK_STATEMENT},
// {"VIEW", TK_VIEW},
// {"SEMI", TK_SEMI},
// {"PARTITIONS", TK_PARTITIONS},
// {"MODE", TK_MODE},
}; };
// clang-format on // clang-format on

View File

@ -39,6 +39,7 @@ typedef struct STranslateContext {
SCmdMsgInfo* pCmdMsg; SCmdMsgInfo* pCmdMsg;
SHashObj* pDbs; SHashObj* pDbs;
SHashObj* pTables; SHashObj* pTables;
SHashObj* pTargetTables;
SExplainOptions* pExplainOpt; SExplainOptions* pExplainOpt;
SParseMetaCache* pMetaCache; SParseMetaCache* pMetaCache;
bool createStream; bool createStream;
@ -89,10 +90,10 @@ static int32_t collectUseDatabase(const SName* pName, SHashObj* pDbs) {
return collectUseDatabaseImpl(dbFName, pDbs); return collectUseDatabaseImpl(dbFName, pDbs);
} }
static int32_t collectUseTable(const SName* pName, SHashObj* pDbs) { static int32_t collectUseTable(const SName* pName, SHashObj* pTable) {
char fullName[TSDB_TABLE_FNAME_LEN]; char fullName[TSDB_TABLE_FNAME_LEN];
tNameExtractFullName(pName, fullName); tNameExtractFullName(pName, fullName);
return taosHashPut(pDbs, fullName, strlen(fullName), pName, sizeof(SName)); return taosHashPut(pTable, fullName, strlen(fullName), pName, sizeof(SName));
} }
static int32_t getTableMetaImpl(STranslateContext* pCxt, const SName* pName, STableMeta** pMeta) { static int32_t getTableMetaImpl(STranslateContext* pCxt, const SName* pName, STableMeta** pMeta) {
@ -357,7 +358,8 @@ static int32_t initTranslateContext(SParseContext* pParseCxt, SParseMetaCache* p
pCxt->pMetaCache = pMetaCache; pCxt->pMetaCache = pMetaCache;
pCxt->pDbs = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_NO_LOCK); pCxt->pDbs = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_NO_LOCK);
pCxt->pTables = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_NO_LOCK); pCxt->pTables = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_NO_LOCK);
if (NULL == pCxt->pNsLevel || NULL == pCxt->pDbs || NULL == pCxt->pTables) { pCxt->pTargetTables = taosHashInit(4, taosGetDefaultHashFunction(TSDB_DATA_TYPE_BINARY), true, HASH_NO_LOCK);
if (NULL == pCxt->pNsLevel || NULL == pCxt->pDbs || NULL == pCxt->pTables || NULL == pCxt->pTargetTables) {
return TSDB_CODE_OUT_OF_MEMORY; return TSDB_CODE_OUT_OF_MEMORY;
} }
return TSDB_CODE_SUCCESS; return TSDB_CODE_SUCCESS;
@ -3188,7 +3190,8 @@ static int32_t checkOptionsDependency(STranslateContext* pCxt, const char* pDbNa
daysToKeep0 = (-1 == daysToKeep0 ? dbCfg.daysToKeep0 : daysToKeep0); daysToKeep0 = (-1 == daysToKeep0 ? dbCfg.daysToKeep0 : daysToKeep0);
} }
if (daysPerFile > daysToKeep0) { if (daysPerFile > daysToKeep0) {
return generateSyntaxErrMsg(&pCxt->msgBuf, TSDB_CODE_PAR_INVALID_DAYS_VALUE); return generateSyntaxErrMsgExt(&pCxt->msgBuf, TSDB_CODE_PAR_INVALID_DB_OPTION,
"Invalid duration value, should be keep2 >= keep1 >= keep0 >= duration");
} }
return TSDB_CODE_SUCCESS; return TSDB_CODE_SUCCESS;
} }
@ -3933,6 +3936,9 @@ static int32_t buildCreateStbReq(STranslateContext* pCxt, SCreateTableStmt* pStm
SName tableName; SName tableName;
tNameExtractFullName(toName(pCxt->pParseCxt->acctId, pStmt->dbName, pStmt->tableName, &tableName), pReq->name); tNameExtractFullName(toName(pCxt->pParseCxt->acctId, pStmt->dbName, pStmt->tableName, &tableName), pReq->name);
int32_t code = collectUseTable(&tableName, pCxt->pTables); int32_t code = collectUseTable(&tableName, pCxt->pTables);
if (TSDB_CODE_SUCCESS == code) {
code = collectUseTable(&tableName, pCxt->pTargetTables);
}
if (TSDB_CODE_SUCCESS == code) { if (TSDB_CODE_SUCCESS == code) {
code = buildRollupAst(pCxt, pStmt, pReq); code = buildRollupAst(pCxt, pStmt, pReq);
} }
@ -3953,11 +3959,14 @@ static int32_t translateCreateSuperTable(STranslateContext* pCxt, SCreateTableSt
} }
static int32_t doTranslateDropSuperTable(STranslateContext* pCxt, const SName* pTableName, bool ignoreNotExists) { static int32_t doTranslateDropSuperTable(STranslateContext* pCxt, const SName* pTableName, bool ignoreNotExists) {
int32_t code = collectUseTable(pTableName, pCxt->pTargetTables);
if (TSDB_CODE_SUCCESS == code) {
SMDropStbReq dropReq = {0}; SMDropStbReq dropReq = {0};
tNameExtractFullName(pTableName, dropReq.name); tNameExtractFullName(pTableName, dropReq.name);
dropReq.igNotExists = ignoreNotExists; dropReq.igNotExists = ignoreNotExists;
code = buildCmdMsg(pCxt, TDMT_MND_DROP_STB, (FSerializeFunc)tSerializeSMDropStbReq, &dropReq);
return buildCmdMsg(pCxt, TDMT_MND_DROP_STB, (FSerializeFunc)tSerializeSMDropStbReq, &dropReq); }
return code;
} }
static int32_t translateDropTable(STranslateContext* pCxt, SDropTableStmt* pStmt) { static int32_t translateDropTable(STranslateContext* pCxt, SDropTableStmt* pStmt) {
@ -5559,8 +5568,13 @@ static int32_t rewriteCreateTable(STranslateContext* pCxt, SQuery* pQuery) {
int32_t code = checkCreateTable(pCxt, pStmt, false); int32_t code = checkCreateTable(pCxt, pStmt, false);
SVgroupInfo info = {0}; SVgroupInfo info = {0};
SName name;
toName(pCxt->pParseCxt->acctId, pStmt->dbName, pStmt->tableName, &name);
if (TSDB_CODE_SUCCESS == code) { if (TSDB_CODE_SUCCESS == code) {
code = getTableHashVgroup(pCxt, pStmt->dbName, pStmt->tableName, &info); code = getTableHashVgroupImpl(pCxt, &name, &info);
}
if (TSDB_CODE_SUCCESS == code) {
code = collectUseTable(&name, pCxt->pTargetTables);
} }
SArray* pBufArray = NULL; SArray* pBufArray = NULL;
if (TSDB_CODE_SUCCESS == code) { if (TSDB_CODE_SUCCESS == code) {
@ -5829,6 +5843,11 @@ static int32_t rewriteCreateSubTable(STranslateContext* pCxt, SCreateSubTableCla
if (TSDB_CODE_SUCCESS == code) { if (TSDB_CODE_SUCCESS == code) {
code = getTableMeta(pCxt, pStmt->useDbName, pStmt->useTableName, &pSuperTableMeta); code = getTableMeta(pCxt, pStmt->useDbName, pStmt->useTableName, &pSuperTableMeta);
} }
if (TSDB_CODE_SUCCESS == code) {
SName name;
toName(pCxt->pParseCxt->acctId, pStmt->dbName, pStmt->tableName, &name);
code = collectUseTable(&name, pCxt->pTargetTables);
}
STag* pTag = NULL; STag* pTag = NULL;
SArray* tagName = taosArrayInit(8, TSDB_COL_NAME_LEN); SArray* tagName = taosArrayInit(8, TSDB_COL_NAME_LEN);
@ -5927,8 +5946,13 @@ static void addDropTbReqIntoVgroup(SHashObj* pVgroupHashmap, SDropTableClause* p
static int32_t buildDropTableVgroupHashmap(STranslateContext* pCxt, SDropTableClause* pClause, bool* pIsSuperTable, static int32_t buildDropTableVgroupHashmap(STranslateContext* pCxt, SDropTableClause* pClause, bool* pIsSuperTable,
SHashObj* pVgroupHashmap) { SHashObj* pVgroupHashmap) {
SName name;
toName(pCxt->pParseCxt->acctId, pClause->dbName, pClause->tableName, &name);
STableMeta* pTableMeta = NULL; STableMeta* pTableMeta = NULL;
int32_t code = getTableMeta(pCxt, pClause->dbName, pClause->tableName, &pTableMeta); int32_t code = getTableMetaImpl(pCxt, &name, &pTableMeta);
if (TSDB_CODE_SUCCESS == code) {
code = collectUseTable(&name, pCxt->pTargetTables);
}
if (TSDB_CODE_SUCCESS == code && TSDB_SUPER_TABLE == pTableMeta->tableType) { if (TSDB_CODE_SUCCESS == code && TSDB_SUPER_TABLE == pTableMeta->tableType) {
*pIsSuperTable = true; *pIsSuperTable = true;
@ -6509,6 +6533,20 @@ static int32_t setRefreshMate(STranslateContext* pCxt, SQuery* pQuery) {
pTable = taosHashIterate(pCxt->pTables, pTable); pTable = taosHashIterate(pCxt->pTables, pTable);
} }
} }
if (NULL != pCxt->pTargetTables) {
taosArrayDestroy(pQuery->pTargetTableList);
pQuery->pTargetTableList = taosArrayInit(taosHashGetSize(pCxt->pTargetTables), sizeof(SName));
if (NULL == pQuery->pTargetTableList) {
return TSDB_CODE_OUT_OF_MEMORY;
}
SName* pTable = taosHashIterate(pCxt->pTargetTables, NULL);
while (NULL != pTable) {
taosArrayPush(pQuery->pTargetTableList, pTable);
pTable = taosHashIterate(pCxt->pTargetTables, pTable);
}
}
return TSDB_CODE_SUCCESS; return TSDB_CODE_SUCCESS;
} }

View File

@ -99,8 +99,6 @@ static char* getSyntaxErrFormat(int32_t errCode) {
return "Query block has incorrect number of result columns"; return "Query block has incorrect number of result columns";
case TSDB_CODE_PAR_INCORRECT_TIMESTAMP_VAL: case TSDB_CODE_PAR_INCORRECT_TIMESTAMP_VAL:
return "Incorrect TIMESTAMP value: %s"; return "Incorrect TIMESTAMP value: %s";
case TSDB_CODE_PAR_INVALID_DAYS_VALUE:
return "Invalid days value, should be keep2 >= keep1 >= keep0 >= days";
case TSDB_CODE_PAR_OFFSET_LESS_ZERO: case TSDB_CODE_PAR_OFFSET_LESS_ZERO:
return "soffset/offset can not be less than 0"; return "soffset/offset can not be less than 0";
case TSDB_CODE_PAR_SLIMIT_LEAK_PARTITION_BY: case TSDB_CODE_PAR_SLIMIT_LEAK_PARTITION_BY:

File diff suppressed because it is too large Load Diff

View File

@ -82,12 +82,12 @@ TEST_F(ParserInitialATest, alterDnode) {
* BUFFER int_value -- todo: range [3, 16384], default 96, unit MB * BUFFER int_value -- todo: range [3, 16384], default 96, unit MB
* | CACHEMODEL {'none' | 'last_row' | 'last_value' | 'both'} -- default 'none' * | CACHEMODEL {'none' | 'last_row' | 'last_value' | 'both'} -- default 'none'
* | CACHESIZE int_value -- range [1, 65536], default 1, unit MB * | CACHESIZE int_value -- range [1, 65536], default 1, unit MB
* | FSYNC int_value -- rang [0, 180000], default 3000, unit ms * | WAL_FSYNC_PERIOD int_value -- rang [0, 180000], default 3000, unit ms
* | KEEP {int_value | duration_value} -- rang [1, 365000], default 3650, unit day * | KEEP {int_value | duration_value} -- rang [1, 365000], default 3650, unit day
* | PAGES int_value -- todo: rang [64, +oo), default 256, unit page * | PAGES int_value -- todo: rang [64, +oo), default 256, unit page
* | REPLICA int_value -- todo: enum 1, 3, default 1, unit replica * | REPLICA int_value -- todo: enum 1, 3, default 1, unit replica
* | STRICT {'off' | 'on'} -- todo: default 'off' * | STRICT {'off' | 'on'} -- todo: default 'off'
* | WAL int_value -- enum 1, 2, default 1 * | WAL_LEVEL int_value -- enum 1, 2, default 1
* } * }
*/ */
TEST_F(ParserInitialATest, alterDatabase) { TEST_F(ParserInitialATest, alterDatabase) {
@ -157,7 +157,7 @@ TEST_F(ParserInitialATest, alterDatabase) {
setAlterDbFsync(200); setAlterDbFsync(200);
setAlterDbWal(1); setAlterDbWal(1);
setAlterDbCacheModel(TSDB_CACHE_MODEL_LAST_ROW); setAlterDbCacheModel(TSDB_CACHE_MODEL_LAST_ROW);
run("ALTER DATABASE test CACHEMODEL 'last_row' CACHESIZE 32 FSYNC 200 KEEP 10 WAL 1"); run("ALTER DATABASE test CACHEMODEL 'last_row' CACHESIZE 32 WAL_FSYNC_PERIOD 200 KEEP 10 WAL_LEVEL 1");
clearAlterDbReq(); clearAlterDbReq();
initAlterDb("test"); initAlterDb("test");
@ -182,11 +182,11 @@ TEST_F(ParserInitialATest, alterDatabase) {
initAlterDb("test"); initAlterDb("test");
setAlterDbFsync(0); setAlterDbFsync(0);
run("ALTER DATABASE test FSYNC 0"); run("ALTER DATABASE test WAL_FSYNC_PERIOD 0");
setAlterDbFsync(1000); setAlterDbFsync(1000);
run("ALTER DATABASE test FSYNC 1000"); run("ALTER DATABASE test WAL_FSYNC_PERIOD 1000");
setAlterDbFsync(180000); setAlterDbFsync(180000);
run("ALTER DATABASE test FSYNC 180000"); run("ALTER DATABASE test WAL_FSYNC_PERIOD 180000");
clearAlterDbReq(); clearAlterDbReq();
initAlterDb("test"); initAlterDb("test");
@ -210,9 +210,9 @@ TEST_F(ParserInitialATest, alterDatabase) {
initAlterDb("test"); initAlterDb("test");
setAlterDbWal(1); setAlterDbWal(1);
run("ALTER DATABASE test WAL 1"); run("ALTER DATABASE test WAL_LEVEL 1");
setAlterDbWal(2); setAlterDbWal(2);
run("ALTER DATABASE test WAL 2"); run("ALTER DATABASE test WAL_LEVEL 2");
clearAlterDbReq(); clearAlterDbReq();
} }
@ -223,16 +223,16 @@ TEST_F(ParserInitialATest, alterDatabaseSemanticCheck) {
run("ALTER DATABASE test CACHESIZE 0", TSDB_CODE_PAR_INVALID_DB_OPTION); run("ALTER DATABASE test CACHESIZE 0", TSDB_CODE_PAR_INVALID_DB_OPTION);
run("ALTER DATABASE test CACHESIZE 65537", TSDB_CODE_PAR_INVALID_DB_OPTION); run("ALTER DATABASE test CACHESIZE 65537", TSDB_CODE_PAR_INVALID_DB_OPTION);
// The syntax limits it to only positive numbers // The syntax limits it to only positive numbers
run("ALTER DATABASE test FSYNC -1", TSDB_CODE_PAR_SYNTAX_ERROR, PARSER_STAGE_PARSE); run("ALTER DATABASE test WAL_FSYNC_PERIOD -1", TSDB_CODE_PAR_SYNTAX_ERROR, PARSER_STAGE_PARSE);
run("ALTER DATABASE test FSYNC 180001", TSDB_CODE_PAR_INVALID_DB_OPTION); run("ALTER DATABASE test WAL_FSYNC_PERIOD 180001", TSDB_CODE_PAR_INVALID_DB_OPTION);
run("ALTER DATABASE test KEEP 0", TSDB_CODE_PAR_INVALID_DB_OPTION); run("ALTER DATABASE test KEEP 0", TSDB_CODE_PAR_INVALID_DB_OPTION);
run("ALTER DATABASE test KEEP 365001", TSDB_CODE_PAR_INVALID_DB_OPTION); run("ALTER DATABASE test KEEP 365001", TSDB_CODE_PAR_INVALID_DB_OPTION);
run("ALTER DATABASE test KEEP 1000000000s", TSDB_CODE_PAR_INVALID_DB_OPTION); run("ALTER DATABASE test KEEP 1000000000s", TSDB_CODE_PAR_INVALID_DB_OPTION);
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 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 3", TSDB_CODE_PAR_INVALID_DB_OPTION); run("ALTER DATABASE test WAL_LEVEL 3", TSDB_CODE_PAR_INVALID_DB_OPTION);
// Regardless of the specific sentence // Regardless of the specific sentence
run("ALTER DATABASE db WAL 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);
} }
/* /*

View File

@ -21,12 +21,6 @@ namespace ParserTest {
class ParserInitialCTest : public ParserDdlTest {}; class ParserInitialCTest : public ParserDdlTest {};
TEST_F(ParserInitialCTest, compact) {
useDb("root", "test");
run("COMPACT VNODES IN (1, 2)", TSDB_CODE_PAR_EXPRIE_STATEMENT, PARSER_STAGE_PARSE);
}
TEST_F(ParserInitialCTest, createAccount) { TEST_F(ParserInitialCTest, createAccount) {
useDb("root", "test"); useDb("root", "test");
@ -64,7 +58,7 @@ TEST_F(ParserInitialCTest, createBnode) {
* | CACHESIZE value * | CACHESIZE value
* | COMP {0 | 1 | 2} * | COMP {0 | 1 | 2}
* | DURATION value * | DURATION value
* | FSYNC value * | WAL_FSYNC_PERIOD value
* | MAXROWS value * | MAXROWS value
* | MINROWS value * | MINROWS value
* | KEEP value * | KEEP value
@ -74,7 +68,7 @@ TEST_F(ParserInitialCTest, createBnode) {
* | REPLICA value * | REPLICA value
* | RETENTIONS ingestion_duration:keep_duration ... * | RETENTIONS ingestion_duration:keep_duration ...
* | STRICT {'off' | 'on'} * | STRICT {'off' | 'on'}
* | WAL value * | WAL_LEVEL value
* | VGROUPS value * | VGROUPS value
* | SINGLE_STABLE {0 | 1} * | SINGLE_STABLE {0 | 1}
* | WAL_RETENTION_PERIOD value * | WAL_RETENTION_PERIOD value
@ -241,7 +235,7 @@ TEST_F(ParserInitialCTest, createDatabase) {
"CACHESIZE 20 " "CACHESIZE 20 "
"COMP 1 " "COMP 1 "
"DURATION 100 " "DURATION 100 "
"FSYNC 100 " "WAL_FSYNC_PERIOD 100 "
"MAXROWS 1000 " "MAXROWS 1000 "
"MINROWS 100 " "MINROWS 100 "
"KEEP 1440 " "KEEP 1440 "
@ -251,7 +245,7 @@ TEST_F(ParserInitialCTest, createDatabase) {
"REPLICA 3 " "REPLICA 3 "
"RETENTIONS 15s:7d,1m:21d,15m:500d " "RETENTIONS 15s:7d,1m:21d,15m:500d "
"STRICT 'on' " "STRICT 'on' "
"WAL 2 " "WAL_LEVEL 2 "
"VGROUPS 100 " "VGROUPS 100 "
"SINGLE_STABLE 1 " "SINGLE_STABLE 1 "
"SCHEMALESS 1 " "SCHEMALESS 1 "

View File

@ -553,6 +553,7 @@ static int32_t createTableScanPhysiNode(SPhysiPlanContext* pCxt, SSubplan* pSubp
pTableScan->triggerType = pScanLogicNode->triggerType; pTableScan->triggerType = pScanLogicNode->triggerType;
pTableScan->watermark = pScanLogicNode->watermark; pTableScan->watermark = pScanLogicNode->watermark;
pTableScan->igExpired = pScanLogicNode->igExpired; pTableScan->igExpired = pScanLogicNode->igExpired;
pTableScan->assignBlockUid = pCxt->pPlanCxt->rSmaQuery ? true : false;
return createScanPhysiNodeFinalize(pCxt, pSubplan, pScanLogicNode, (SScanPhysiNode*)pTableScan, pPhyNode); return createScanPhysiNodeFinalize(pCxt, pSubplan, pScanLogicNode, (SScanPhysiNode*)pTableScan, pPhyNode);
} }

View File

@ -517,7 +517,6 @@ TAOS_DEFINE_ERROR(TSDB_CODE_PAR_INTER_SLIDING_TOO_SMALL, "sliding value can no
TAOS_DEFINE_ERROR(TSDB_CODE_PAR_ONLY_ONE_JSON_TAG, "Only one tag if there is a json tag") TAOS_DEFINE_ERROR(TSDB_CODE_PAR_ONLY_ONE_JSON_TAG, "Only one tag if there is a json tag")
TAOS_DEFINE_ERROR(TSDB_CODE_PAR_INCORRECT_NUM_OF_COL, "Query block has incorrect number of result columns") TAOS_DEFINE_ERROR(TSDB_CODE_PAR_INCORRECT_NUM_OF_COL, "Query block has incorrect number of result columns")
TAOS_DEFINE_ERROR(TSDB_CODE_PAR_INCORRECT_TIMESTAMP_VAL, "Incorrect TIMESTAMP value") TAOS_DEFINE_ERROR(TSDB_CODE_PAR_INCORRECT_TIMESTAMP_VAL, "Incorrect TIMESTAMP value")
TAOS_DEFINE_ERROR(TSDB_CODE_PAR_INVALID_DAYS_VALUE, "Invalid days value, should be keep2 >= keep1 >= keep0 >= days")
TAOS_DEFINE_ERROR(TSDB_CODE_PAR_OFFSET_LESS_ZERO, "soffset/offset can not be less than 0") TAOS_DEFINE_ERROR(TSDB_CODE_PAR_OFFSET_LESS_ZERO, "soffset/offset can not be less than 0")
TAOS_DEFINE_ERROR(TSDB_CODE_PAR_SLIMIT_LEAK_PARTITION_BY, "slimit/soffset only available for PARTITION BY query") TAOS_DEFINE_ERROR(TSDB_CODE_PAR_SLIMIT_LEAK_PARTITION_BY, "slimit/soffset only available for PARTITION BY query")
TAOS_DEFINE_ERROR(TSDB_CODE_PAR_INVALID_TOPIC_QUERY, "Invalid topic query") TAOS_DEFINE_ERROR(TSDB_CODE_PAR_INVALID_TOPIC_QUERY, "Invalid topic query")

View File

@ -47,16 +47,16 @@ class TDTestCase:
tdSql.error('create database db comp "1.4"') tdSql.error('create database db comp "1.4"')
tdSql.error("create database db blocks '10'") tdSql.error("create database db blocks '10'")
tdSql.error('create database db keep "3650"') tdSql.error('create database db keep "3650"')
tdSql.error('create database db fsync "3650"') tdSql.error('create database db wal_fsync_period "3650"')
tdSql.execute('create database db precision "us"') tdSql.execute('create database db precision "us"')
tdSql.query('show databases') tdSql.query('show databases')
tdSql.checkData(0,16,'us') tdSql.checkData(0,16,'us')
tdSql.execute('drop database if exists db') tdSql.execute('drop database if exists db')
#checking float input exception for create #checking float input exception for create
tdSql.error("create database db fsync 7.3") tdSql.error("create database db wal_fsync_period 7.3")
tdSql.error("create database db fsync 0.0") tdSql.error("create database db wal_fsync_period 0.0")
tdSql.error("create database db fsync -5.32") tdSql.error("create database db wal_fsync_period -5.32")
tdSql.error('create database db comp 7.2') tdSql.error('create database db comp 7.2')
tdSql.error("create database db blocks 5.87") tdSql.error("create database db blocks 5.87")
tdSql.error('create database db keep 15.4') tdSql.error('create database db keep 15.4')

View File

@ -77,7 +77,7 @@ class TDTestCase:
"walLevel": 1, "walLevel": 1,
"cachelast": 0, "cachelast": 0,
"quorum": 1, "quorum": 1,
"fsync": 3000, "wal_fsync_period": 3000,
"update": 0 "update": 0
} }

View File

@ -92,7 +92,7 @@ class JoinPerf:
"walLevel": 1, "walLevel": 1,
"cachelast": 0, "cachelast": 0,
"quorum": 1, "quorum": 1,
"fsync": 3000, "wal_fsync_period": 3000,
"update": 0 "update": 0
} }

View File

@ -86,7 +86,7 @@ class Taosdemo:
"walLevel": 1, "walLevel": 1,
"cachelast": 0, "cachelast": 0,
"quorum": 1, "quorum": 1,
"fsync": 3000, "wal_fsync_period": 3000,
"update": 0 "update": 0
} }

View File

@ -68,7 +68,7 @@ class TDTestCase:
"walLevel": 1, "walLevel": 1,
"cachelast": 0, "cachelast": 0,
"quorum": 1, "quorum": 1,
"fsync": 3000, "wal_fsync_period": 3000,
"update": 0 "update": 0
} }

View File

@ -41,12 +41,12 @@ print ============= create database
# | BUFFER value [3~16384, default: 96] # | BUFFER value [3~16384, default: 96]
# | PAGES value [64~16384, default: 256] # | PAGES value [64~16384, default: 256]
# | CACHEMODEL value ['node', 'last_row', 'last_value', 'both'] # | CACHEMODEL value ['node', 'last_row', 'last_value', 'both']
# | FSYNC value [0 ~ 180000 ms] # | WAL_FSYNC_PERIOD value [0 ~ 180000 ms]
# | KEEP value [duration, 365000] # | KEEP value [duration, 365000]
# | REPLICA value [1 | 3] # | REPLICA value [1 | 3]
# | WAL value [1 | 2] # | WAL_LEVEL value [1 | 2]
sql create database db CACHEMODEL 'both' COMP 0 DURATION 240 FSYNC 1000 MAXROWS 8000 MINROWS 10 KEEP 1000 PRECISION 'ns' REPLICA 3 WAL 2 VGROUPS 6 SINGLE_STABLE 1 sql create database db CACHEMODEL 'both' COMP 0 DURATION 240 WAL_FSYNC_PERIOD 1000 MAXROWS 8000 MINROWS 10 KEEP 1000 PRECISION 'ns' REPLICA 3 WAL_LEVEL 2 VGROUPS 6 SINGLE_STABLE 1
sql show databases sql show databases
print rows: $rows print rows: $rows
print $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09 print $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09
@ -99,16 +99,16 @@ endi
if $data14_db != ns then # precision if $data14_db != ns then # precision
return -1 return -1
endi endi
if $data18_db != both then # cache_model if $data18_db != both then # cachemodel
return -1 return -1
endi endi
if $data19_db != 1 then # cash_size if $data19_db != 1 then # cash_size
return -1 return -1
endi endi
if $data20_db != 2 then # wal level if $data20_db != 2 then # wal_level level
return -1 return -1
endi endi
if $data21_db != 1000 then # wal fsyncperiod if $data21_db != 1000 then # wal_level fsyncperiod
return -1 return -1
endi endi
if $data22_db != 0 then # if $data22_db != 0 then #
@ -296,46 +296,46 @@ sql_error alter database db maxrows 2000
sql_error alter database db maxrows 11 # equal minrows sql_error alter database db maxrows 11 # equal minrows
sql_error alter database db maxrows 10 # little than minrows sql_error alter database db maxrows 10 # little than minrows
print ============== step wal print ============== step wal_level
sql alter database db wal 1 sql alter database db wal_level 1
sql show databases sql show databases
print wal $data20_db print wal_level $data20_db
if $data20_db != 1 then if $data20_db != 1 then
return -1 return -1
endi endi
sql alter database db wal 2 sql alter database db wal_level 2
sql show databases sql show databases
print wal $data20_db print wal_level $data20_db
if $data20_db != 2 then if $data20_db != 2 then
return -1 return -1
endi endi
sql_error alter database db wal 0 # TD-14436 sql_error alter database db wal_level 0 # TD-14436
sql_error alter database db wal 3 sql_error alter database db wal_level 3
sql_error alter database db wal 100 sql_error alter database db wal_level 100
sql_error alter database db wal -1 sql_error alter database db wal_level -1
print ============== modify fsync print ============== modify wal_fsync_period
sql alter database db fsync 2000 sql alter database db wal_fsync_period 2000
sql show databases sql show databases
print fsync $data21_db print wal_fsync_period $data21_db
if $data21_db != 2000 then if $data21_db != 2000 then
return -1 return -1
endi endi
sql alter database db fsync 500 sql alter database db wal_fsync_period 500
sql show databases sql show databases
print fsync $data21_db print wal_fsync_period $data21_db
if $data21_db != 500 then if $data21_db != 500 then
return -1 return -1
endi endi
sql alter database db fsync 0 sql alter database db wal_fsync_period 0
sql show databases sql show databases
print fsync $data21_db print wal_fsync_period $data21_db
if $data21_db != 0 then if $data21_db != 0 then
return -1 return -1
endi endi
sql_error alter database db fsync 180001 sql_error alter database db wal_fsync_period 180001
sql_error alter database db fsync -1 sql_error alter database db wal_fsync_period -1
print ============== modify comp print ============== modify comp
sql_error alter database db comp 1 sql_error alter database db comp 1

View File

@ -15,7 +15,7 @@ $tb = $tbPrefix . $i
print =============== step1 print =============== step1
# quorum presicion # quorum presicion
sql create database $db vgroups 8 replica 1 duration 2 keep 10 minrows 80 maxrows 10000 wal 2 fsync 1000 comp 0 cachemodel 'last_value' precision 'us' sql create database $db vgroups 8 replica 1 duration 2 keep 10 minrows 80 maxrows 10000 wal_level 2 wal_fsync_period 1000 comp 0 cachemodel 'last_value' precision 'us'
sql show databases sql show databases
print $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09 print $data00 $data01 $data02 $data03 $data04 $data05 $data06 $data07 $data08 $data09

View File

@ -43,13 +43,13 @@ print ============= create database with all options
# | CACHEMODEL value ['node', 'last_row', 'last_value', 'both', default: 'node'] # | CACHEMODEL value ['node', 'last_row', 'last_value', 'both', default: 'node']
# | COMP [0 | 1 | 2, default: 2] # | COMP [0 | 1 | 2, default: 2]
# | DURATION value [60m ~ min(3650d,keep), default: 10d, unit may be minut/hour/day] # | DURATION value [60m ~ min(3650d,keep), default: 10d, unit may be minut/hour/day]
# | FSYNC value [0 ~ 180000 ms, default: 3000] # | WAL_FSYNC_PERIOD value [0 ~ 180000 ms, default: 3000]
# | MAXROWS value [200~10000, default: 4096] # | MAXROWS value [200~10000, default: 4096]
# | MINROWS value [10~1000, default: 100] # | MINROWS value [10~1000, default: 100]
# | KEEP value [max(1d ~ 365000d), default: 1d, unit may be minut/hour/day] # | KEEP value [max(1d ~ 365000d), default: 1d, unit may be minut/hour/day]
# | PRECISION ['ms' | 'us' | 'ns', default: ms] # | PRECISION ['ms' | 'us' | 'ns', default: ms]
# | REPLICA value [1 | 3, default: 1] # | REPLICA value [1 | 3, default: 1]
# | WAL value [1 | 2, default: 1] # | WAL_LEVEL value [1 | 2, default: 1]
# | VGROUPS value [default: 2] # | VGROUPS value [default: 2]
# | SINGLE_STABLE [0 | 1, default: ] # | SINGLE_STABLE [0 | 1, default: ]
# #
@ -62,7 +62,7 @@ print ============= create database with all options
#$data7_db : keep #$data7_db : keep
#$data10_db : minrows #$data10_db : minrows
#$data11_db : maxrows #$data11_db : maxrows
#$data12_db : wal #$data12_db : wal_level
#$data13_db : fsync #$data13_db : fsync
#$data14_db : comp #$data14_db : comp
#$data15_db : cachelast #$data15_db : cachelast
@ -122,10 +122,10 @@ endi
if $data18_db != none then # cachelast if $data18_db != none then # cachelast
return -1 return -1
endi endi
if $data20_db != 1 then # wal if $data20_db != 1 then # wal_level
return -1 return -1
endi endi
if $data21_db != 3000 then # fsync if $data21_db != 3000 then # wal_fsync_period
return -1 return -1
endi endi
@ -254,8 +254,8 @@ sql_error create database db COMP -1
#sql_error create database db KEEP 525600001m #sql_error create database db KEEP 525600001m
#sql_error create database db KEEP 365001d #sql_error create database db KEEP 365001d
print ====> FSYNC value [0 ~ 180000 ms, default: 3000] print ====> WAL_FSYNC_PERIOD value [0 ~ 180000 ms, default: 3000]
sql create database db FSYNC 0 sql create database db WAL_FSYNC_PERIOD 0
sql show databases sql show databases
print $data0_db $data1_db $data2_db $data3_db $data4_db $data5_db $data6_db $data7_db $data8_db $data9_db $data10_db $data11_db $data12_db $data13_db $data14_db $data15_db $data16_db $data17_db print $data0_db $data1_db $data2_db $data3_db $data4_db $data5_db $data6_db $data7_db $data8_db $data9_db $data10_db $data11_db $data12_db $data13_db $data14_db $data15_db $data16_db $data17_db
if $data21_db != 0 then if $data21_db != 0 then
@ -263,15 +263,15 @@ if $data21_db != 0 then
endi endi
sql drop database db sql drop database db
sql create database db FSYNC 180000 sql create database db WAL_FSYNC_PERIOD 180000
sql show databases sql show databases
print $data0_db $data1_db $data2_db $data3_db $data4_db $data5_db $data6_db $data7_db $data8_db $data9_db $data10_db $data11_db $data12_db $data13_db $data14_db $data15_db $data16_db $data17_db print $data0_db $data1_db $data2_db $data3_db $data4_db $data5_db $data6_db $data7_db $data8_db $data9_db $data10_db $data11_db $data12_db $data13_db $data14_db $data15_db $data16_db $data17_db
if $data21_db != 180000 then if $data21_db != 180000 then
return -1 return -1
endi endi
sql drop database db sql drop database db
sql_error create database db FSYNC 180001 sql_error create database db WAL_FSYNC_PERIOD 180001
sql_error create database db FSYNC -1 sql_error create database db WAL_FSYNC_PERIOD -1
print ====> MAXROWS value [200~10000, default: 4096], MINROWS value [10~1000, default: 100] print ====> MAXROWS value [200~10000, default: 4096], MINROWS value [10~1000, default: 100]
sql create database db MAXROWS 10000 MINROWS 1000 sql create database db MAXROWS 10000 MINROWS 1000
@ -386,8 +386,8 @@ sql_error create database db REPLICA 4
#sql_error create database db TTL 0 #sql_error create database db TTL 0
#sql_error create database db TTL -1 #sql_error create database db TTL -1
print ====> WAL value [1 | 2, default: 1] print ====> WAL_LEVEL value [1 | 2, default: 1]
sql create database db WAL 2 sql create database db WAL_LEVEL 2
sql show databases sql show databases
print $data0_db $data1_db $data2_db $data3_db $data4_db $data5_db $data6_db $data7_db $data8_db $data9_db $data10_db $data11_db $data12_db $data13_db $data14_db $data15_db $data16_db $data17_db print $data0_db $data1_db $data2_db $data3_db $data4_db $data5_db $data6_db $data7_db $data8_db $data9_db $data10_db $data11_db $data12_db $data13_db $data14_db $data15_db $data16_db $data17_db
if $data20_db != 2 then if $data20_db != 2 then
@ -395,16 +395,16 @@ if $data20_db != 2 then
endi endi
sql drop database db sql drop database db
sql create database db WAL 1 sql create database db WAL_LEVEL 1
sql show databases sql show databases
print $data0_db $data1_db $data2_db $data3_db $data4_db $data5_db $data6_db $data7_db $data8_db $data9_db $data10_db $data11_db $data12_db $data13_db $data14_db $data15_db $data16_db $data17_db print $data0_db $data1_db $data2_db $data3_db $data4_db $data5_db $data6_db $data7_db $data8_db $data9_db $data10_db $data11_db $data12_db $data13_db $data14_db $data15_db $data16_db $data17_db
if $data20_db != 1 then if $data20_db != 1 then
return -1 return -1
endi endi
sql drop database db sql drop database db
sql_error create database db WAL 3 sql_error create database db WAL_LEVEL 3
sql_error create database db WAL -1 sql_error create database db WAL_LEVEL -1
sql_error create database db WAL 0 sql_error create database db WAL_LEVEL 0
print ====> VGROUPS value [1~4096, default: 2] print ====> VGROUPS value [1~4096, default: 2]
sql create database db VGROUPS 1 sql create database db VGROUPS 1

View File

@ -107,7 +107,7 @@ $ctime = 36000 # 10 hours
$wal = 1 # valid value is 1, 2 $wal = 1 # valid value is 1, 2
$comp = 1 # max=32, automatically trimmed when exceeding $comp = 1 # max=32, automatically trimmed when exceeding
sql create database $db replica $replica duration $duration keep $keep maxrows $rows_db wal $wal comp $comp sql create database $db replica $replica duration $duration keep $keep maxrows $rows_db wal_level $wal comp $comp
sql show databases sql show databases
if $rows != 3 then if $rows != 3 then
return -1 return -1
@ -225,13 +225,13 @@ sql_error create database $db ctime 29
sql_error create database $db ctime 40961 sql_error create database $db ctime 40961
# wal {0, 2} # wal {0, 2}
sql_error create database testwal wal 0 sql_error create database testwal wal_level 0
sql show databases sql show databases
if $rows != 2 then if $rows != 2 then
return -1 return -1
endi endi
sql create database testwal wal 1 sql create database testwal wal_level 1
sql show databases sql show databases
if $rows != 3 then if $rows != 3 then
return -1 return -1
@ -243,7 +243,7 @@ if $data13_testwal != 1 then
endi endi
sql drop database testwal sql drop database testwal
sql create database testwal wal 2 sql create database testwal wal_level 2
sql show databases sql show databases
if $rows != 3 then if $rows != 3 then
return -1 return -1
@ -254,8 +254,8 @@ if $data13_testwal != 2 then
endi endi
sql drop database testwal sql drop database testwal
sql_error create database $db wal -1 sql_error create database $db wal_level -1
sql_error create database $db wal 3 sql_error create database $db wal_level 3
# comp {0, 1, 2} # comp {0, 1, 2}
sql_error create database $db comp -1 sql_error create database $db comp -1

View File

@ -49,35 +49,35 @@ class TDTestCase:
fsync_index = i fsync_index = i
tdSql.execute("drop database if exists db1") tdSql.execute("drop database if exists db1")
tdSql.execute("create database db1 wal 1") tdSql.execute("create database db1 wal_level 1")
tdSql.query("show databases") tdSql.query("show databases")
for i in range(tdSql.queryRows): for i in range(tdSql.queryRows):
if tdSql.queryResult[i][0] == "db1": if tdSql.queryResult[i][0] == "db1":
tdSql.checkData(i, wal_index, 1) tdSql.checkData(i, wal_index, 1)
tdSql.execute("drop database if exists db1") tdSql.execute("drop database if exists db1")
tdSql.execute("create database db1 wal 2") tdSql.execute("create database db1 wal_level 2")
tdSql.query("show databases") tdSql.query("show databases")
for i in range(tdSql.queryRows): for i in range(tdSql.queryRows):
if tdSql.queryResult[i][0] == "db1": if tdSql.queryResult[i][0] == "db1":
tdSql.checkData(i, wal_index, 2) tdSql.checkData(i, wal_index, 2)
tdSql.execute("drop database if exists db1") tdSql.execute("drop database if exists db1")
tdSql.execute("create database db1 fsync 0") tdSql.execute("create database db1 wal_fsync_period 0")
tdSql.query("show databases") tdSql.query("show databases")
for i in range(tdSql.queryRows): for i in range(tdSql.queryRows):
if tdSql.queryResult[i][0] == "db1": if tdSql.queryResult[i][0] == "db1":
tdSql.checkData(i, fsync_index, 0) tdSql.checkData(i, fsync_index, 0)
tdSql.execute("drop database if exists db1") tdSql.execute("drop database if exists db1")
tdSql.execute("create database db1 fsync 3000") tdSql.execute("create database db1 wal_fsync_period 3000")
tdSql.query("show databases") tdSql.query("show databases")
for i in range(tdSql.queryRows): for i in range(tdSql.queryRows):
if tdSql.queryResult[i][0] == "db1": if tdSql.queryResult[i][0] == "db1":
tdSql.checkData(i, fsync_index, 3000) tdSql.checkData(i, fsync_index, 3000)
tdSql.execute("drop database if exists db1") tdSql.execute("drop database if exists db1")
tdSql.execute("create database db1 fsync 180000") tdSql.execute("create database db1 wal_fsync_period 180000")
tdSql.query("show databases") tdSql.query("show databases")
for i in range(tdSql.queryRows): for i in range(tdSql.queryRows):
if tdSql.queryResult[i][0] == "db1": if tdSql.queryResult[i][0] == "db1":
@ -85,7 +85,7 @@ class TDTestCase:
tdSql.execute("drop database if exists db1") tdSql.execute("drop database if exists db1")
tdSql.execute("create database db1 wal 1 fsync 6000") tdSql.execute("create database db1 wal_level 1 wal_fsync_period 6000")
tdSql.query("show databases") tdSql.query("show databases")
for i in range(tdSql.queryRows): for i in range(tdSql.queryRows):
if tdSql.queryResult[i][0] == "db1": if tdSql.queryResult[i][0] == "db1":
@ -93,49 +93,49 @@ class TDTestCase:
tdSql.checkData(i, wal_index, 1) tdSql.checkData(i, wal_index, 1)
tdSql.execute("drop database if exists db1") tdSql.execute("drop database if exists db1")
tdSql.execute("create database db1 wal 2 fsync 3000") tdSql.execute("create database db1 wal_level 2 wal_fsync_period 3000")
tdSql.query("show databases") tdSql.query("show databases")
for i in range(tdSql.queryRows): for i in range(tdSql.queryRows):
if tdSql.queryResult[i][0] == "db1": if tdSql.queryResult[i][0] == "db1":
tdSql.checkData(i, fsync_index, 3000) tdSql.checkData(i, fsync_index, 3000)
tdSql.checkData(i, wal_index, 2) tdSql.checkData(i, wal_index, 2)
tdSql.execute("alter database db1 wal 1") tdSql.execute("alter database db1 wal_level 1")
tdSql.query("show databases") tdSql.query("show databases")
for i in range(tdSql.queryRows): for i in range(tdSql.queryRows):
if tdSql.queryResult[i][0] == "db1": if tdSql.queryResult[i][0] == "db1":
tdSql.checkData(i, fsync_index, 3000) tdSql.checkData(i, fsync_index, 3000)
tdSql.checkData(i, wal_index, 1) tdSql.checkData(i, wal_index, 1)
tdSql.execute("alter database db1 wal 2") tdSql.execute("alter database db1 wal_level 2")
tdSql.query("show databases") tdSql.query("show databases")
for i in range(tdSql.queryRows): for i in range(tdSql.queryRows):
if tdSql.queryResult[i][0] == "db1": if tdSql.queryResult[i][0] == "db1":
tdSql.checkData(i, fsync_index, 3000) tdSql.checkData(i, fsync_index, 3000)
tdSql.checkData(i, wal_index, 2) tdSql.checkData(i, wal_index, 2)
tdSql.execute("alter database db1 fsync 0") tdSql.execute("alter database db1 wal_fsync_period 0")
tdSql.query("show databases") tdSql.query("show databases")
for i in range(tdSql.queryRows): for i in range(tdSql.queryRows):
if tdSql.queryResult[i][0] == "db1": if tdSql.queryResult[i][0] == "db1":
tdSql.checkData(i, fsync_index, 0) tdSql.checkData(i, fsync_index, 0)
tdSql.checkData(i, wal_index, 2) tdSql.checkData(i, wal_index, 2)
tdSql.execute("alter database db1 fsync 3000") tdSql.execute("alter database db1 wal_fsync_period 3000")
tdSql.query("show databases") tdSql.query("show databases")
for i in range(tdSql.queryRows): for i in range(tdSql.queryRows):
if tdSql.queryResult[i][0] == "db1": if tdSql.queryResult[i][0] == "db1":
tdSql.checkData(i, fsync_index, 3000) tdSql.checkData(i, fsync_index, 3000)
tdSql.checkData(i, wal_index, 2) tdSql.checkData(i, wal_index, 2)
tdSql.execute("alter database db1 fsync 18000") tdSql.execute("alter database db1 wal_fsync_period 18000")
tdSql.query("show databases") tdSql.query("show databases")
for i in range(tdSql.queryRows): for i in range(tdSql.queryRows):
if tdSql.queryResult[i][0] == "db1": if tdSql.queryResult[i][0] == "db1":
tdSql.checkData(i, fsync_index, 18000) tdSql.checkData(i, fsync_index, 18000)
tdSql.checkData(i, wal_index, 2) tdSql.checkData(i, wal_index, 2)
tdSql.execute("alter database db1 wal 1 fsync 3000") tdSql.execute("alter database db1 wal_level 1 wal_fsync_period 3000")
tdSql.query("show databases") tdSql.query("show databases")
for i in range(tdSql.queryRows): for i in range(tdSql.queryRows):
if tdSql.queryResult[i][0] == "db1": if tdSql.queryResult[i][0] == "db1":
@ -147,29 +147,29 @@ class TDTestCase:
@property @property
def fsync_create_err(self): def fsync_create_err(self):
return [ return [
"create database db1 wal 0", "create database db1 wal_level 0",
"create database db1 wal 3", "create database db1 wal_level 3",
"create database db1 wal null", "create database db1 wal_level null",
"create database db1 wal true", "create database db1 wal_level true",
"create database db1 wal 1.1", "create database db1 wal_level 1.1",
"create database db1 fsync -1", "create database db1 wal_fsync_period -1",
"create database db1 fsync 180001", "create database db1 wal_fsync_period 180001",
"create database db1 fsync 10.111", "create database db1 wal_fsync_period 10.111",
"create database db1 fsync true", "create database db1 wal_fsync_period true",
] ]
@property @property
def fsync_alter_err(self): def fsync_alter_err(self):
return [ return [
"alter database db1 wal 0", "alter database db1 wal_level 0",
"alter database db1 wal 3", "alter database db1 wal_level 3",
"alter database db1 wal null", "alter database db1 wal_level null",
"alter database db1 wal true", "alter database db1 wal_level true",
"alter database db1 wal 1.1", "alter database db1 wal_level 1.1",
"alter database db1 fsync -1", "alter database db1 wal_fsync_period -1",
"alter database db1 fsync 180001", "alter database db1 wal_fsync_period 180001",
"alter database db1 fsync 10.111", "alter database db1 wal_fsync_period 10.111",
"alter database db1 fsync true", "alter database db1 wal_fsync_period true",
] ]
def test_fsync_err(self): def test_fsync_err(self):
@ -290,7 +290,7 @@ class TDTestCase:
# tdSql.execute("use db") # tdSql.execute("use db")
tdLog.printNoPrefix("==========step4:after wal, all check again ") tdLog.printNoPrefix("==========step4:after wal_level, all check again ")
self.all_test() self.all_test()
def stop(self): def stop(self):