提交 bbe9e3a0 编写于 作者: D dapan1121

support one keep for storage

上级 99c9ebb9
......@@ -5830,39 +5830,29 @@ static int32_t setKeepOption(SSqlCmd* pCmd, SCreateDbMsg* pMsg, SCreateDbInfo* p
SArray* pKeep = pCreateDb->keep;
if (pKeep != NULL) {
size_t s = taosArrayGetSize(pKeep);
tVariantListItem* p0 = taosArrayGet(pKeep, 0);
size_t expectNum = 1;
#ifdef _STORAGE
expectNum = 3;
if (s >= 4 ||s <= 0) {
#else
if (s != 1) {
#endif
if (s != expectNum) {
return invalidOperationMsg(tscGetErrorMsgPayload(pCmd), msg1);
}
if ((int32_t)p0->pVar.i64 <= 0) {
tVariantListItem* p0 = taosArrayGet(pKeep, 0);
tVariantListItem* p1 = (s > 1) ? taosArrayGet(pKeep, 1) : p0;
tVariantListItem* p2 = (s > 2) ? taosArrayGet(pKeep, 2) : p1;
if ((int32_t)p0->pVar.i64 <= 0 || (int32_t)p1->pVar.i64 <= 0 || (int32_t)p2->pVar.i64 <= 0) {
return invalidOperationMsg(tscGetErrorMsgPayload(pCmd), msg2);
}
pMsg->daysToKeep0 = htonl((int32_t)p0->pVar.i64);
#ifdef _STORAGE
tVariantListItem* p1 = taosArrayGet(pKeep, 1);
tVariantListItem* p2 = taosArrayGet(pKeep, 2);
if ((int32_t)p1->pVar.i64 <= 0 || (int32_t)p2->pVar.i64 <= 0) {
return invalidOperationMsg(tscGetErrorMsgPayload(pCmd), msg2);
}
if (!(((int32_t)p0->pVar.i64 <= (int32_t)p1->pVar.i64) && ((int32_t)p1->pVar.i64 <= (int32_t)p2->pVar.i64))) {
return invalidOperationMsg(tscGetErrorMsgPayload(pCmd), msg3);
}
pMsg->daysToKeep0 = htonl((int32_t)p0->pVar.i64);
pMsg->daysToKeep1 = htonl((int32_t)p1->pVar.i64);
pMsg->daysToKeep2 = htonl((int32_t)p2->pVar.i64);
#else
UNUSED(msg3);
pMsg->daysToKeep1 = pMsg->daysToKeep0;
pMsg->daysToKeep2 = pMsg->daysToKeep0;
#endif
}
return TSDB_CODE_SUCCESS;
......
......@@ -25,12 +25,12 @@ sql use $db
sql_error alter database $db keep "20"
sql_error alter database $db keep "20","20","20"
sql_error alter database $db keep 20
sql_error alter database $db keep 20,19
sql_error alter database $db keep 20.0
sql_error alter database $db keep 20.0,20.0,20.0
sql_error alter database $db keep 0,0,0
sql_error alter database $db keep -1,-1,-1
sql_error alter database $db keep 20,20
sql_error alter database $db keep 9,20
sql_error alter database $db keep 9,9,9
sql_error alter database $db keep 20,20,19
sql_error alter database $db keep 20,19,20
......@@ -38,6 +38,22 @@ sql_error alter database $db keep 20,19,19
sql_error alter database $db keep 20,19,18
sql_error alter database $db keep 20,20,20,20
sql_error alter database $db keep 365001,365001,365001
sql alter database $db keep 21
sql show databases
if $rows != 1 then
return -1
endi
if $data07 != 21,21,21 then
return -1
endi
sql alter database $db keep 11,12
sql show databases
if $rows != 1 then
return -1
endi
if $data07 != 11,12,12 then
return -1
endi
sql alter database $db keep 20,20,20
sql show databases
if $rows != 1 then
......
......@@ -159,8 +159,28 @@ sql_error create database $db keep "11"
sql_error create database $db keep 13,12,11
sql_error create database $db keep 11,12,11
sql_error create database $db keep 12,11,12
sql_error create database $db keep 11,11
sql_error create database $db keep 8
sql_error create database $db keep 12,11
sql_error create database $db keep 365001,365001,365001
sql create database dbk0 keep 19
sql show databases
if $rows != 1 then
return -1
endi
if $data07 != 19,19,19 then
return -1
endi
sql drop database dbk0
sql create database dbka keep 19,20
sql show databases
if $rows != 1 then
return -1
endi
if $data07 != 19,20,20 then
return -1
endi
sql drop database dbka
sql create database dbk1 keep 11,11,11
sql show databases
if $rows != 1 then
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册