Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
0491aa97
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
0491aa97
编写于
6月 07, 2021
作者:
D
dapan1121
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
modify keep
上级
efa03cb0
变更
9
展开全部
隐藏空白更改
内联
并排
Showing
9 changed file
with
1584 addition
and
1556 deletion
+1584
-1556
src/client/src/tscSQLParser.c
src/client/src/tscSQLParser.c
+33
-31
src/inc/taosmsg.h
src/inc/taosmsg.h
+1
-1
src/inc/ttokendef.h
src/inc/ttokendef.h
+23
-22
src/mnode/inc/mnodeDef.h
src/mnode/inc/mnodeDef.h
+1
-1
src/mnode/src/mnodeDb.c
src/mnode/src/mnodeDb.c
+22
-21
src/mnode/src/mnodeVgroup.c
src/mnode/src/mnodeVgroup.c
+3
-3
src/query/inc/sql.y
src/query/inc/sql.y
+10
-1
src/query/src/sql.c
src/query/src/sql.c
+1490
-1475
src/util/src/terror.c
src/util/src/terror.c
+1
-1
未找到文件。
src/client/src/tscSQLParser.c
浏览文件 @
0491aa97
...
...
@@ -5819,9 +5819,11 @@ int32_t validateLimitNode(SSqlCmd* pCmd, SQueryInfo* pQueryInfo, SSqlNode* pSqlN
}
static
int32_t
setKeepOption
(
SSqlCmd
*
pCmd
,
SCreateDbMsg
*
pMsg
,
SCreateDbInfo
*
pCreateDb
)
{
const
char
*
msg
=
"invalid number of options"
;
const
char
*
msg1
=
"invalid number of keep options"
;
const
char
*
msg2
=
"invalid keep value"
;
const
char
*
msg3
=
"invalid keep value, should be keep0 <= keep1 <= keep2"
;
pMsg
->
daysToKeep
=
htonl
(
-
1
);
pMsg
->
daysToKeep
0
=
htonl
(
-
1
);
pMsg
->
daysToKeep1
=
htonl
(
-
1
);
pMsg
->
daysToKeep2
=
htonl
(
-
1
);
...
...
@@ -5829,38 +5831,38 @@ static int32_t setKeepOption(SSqlCmd* pCmd, SCreateDbMsg* pMsg, SCreateDbInfo* p
if
(
pKeep
!=
NULL
)
{
size_t
s
=
taosArrayGetSize
(
pKeep
);
tVariantListItem
*
p0
=
taosArrayGet
(
pKeep
,
0
);
switch
(
s
)
{
case
1
:
{
if
((
int32_t
)
p0
->
pVar
.
i64
<=
0
)
{
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg
);
}
pMsg
->
daysToKeep
=
htonl
((
int32_t
)
p0
->
pVar
.
i64
);
}
break
;
case
2
:
{
tVariantListItem
*
p1
=
taosArrayGet
(
pKeep
,
1
);
if
((
int32_t
)
p0
->
pVar
.
i64
<=
0
||
(
int32_t
)
p1
->
pVar
.
i64
<=
0
)
{
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg
);
}
pMsg
->
daysToKeep
=
htonl
((
int32_t
)
p0
->
pVar
.
i64
);
pMsg
->
daysToKeep1
=
htonl
((
int32_t
)
p1
->
pVar
.
i64
);
break
;
}
case
3
:
{
tVariantListItem
*
p1
=
taosArrayGet
(
pKeep
,
1
);
tVariantListItem
*
p2
=
taosArrayGet
(
pKeep
,
2
);
size_t
expectNum
=
1
;
#ifdef _STORAGE
expectNum
=
3
;
#endif
if
(
s
!=
expectNum
)
{
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg1
);
}
if
((
int32_t
)
p0
->
pVar
.
i64
<=
0
||
(
int32_t
)
p1
->
pVar
.
i64
<=
0
||
(
int32_t
)
p2
->
pVar
.
i64
<=
0
)
{
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg
);
}
if
((
int32_t
)
p0
->
pVar
.
i64
<=
0
)
{
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg2
);
}
pMsg
->
daysToKeep0
=
htonl
((
int32_t
)
p0
->
pVar
.
i64
);
pMsg
->
daysToKeep
=
htonl
((
int32_t
)
p0
->
pVar
.
i64
);
pMsg
->
daysToKeep1
=
htonl
((
int32_t
)
p1
->
pVar
.
i64
);
pMsg
->
daysToKeep2
=
htonl
((
int32_t
)
p2
->
pVar
.
i64
);
break
;
}
default:
{
return
invalidOperationMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg
);
}
#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
->
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
;
...
...
src/inc/taosmsg.h
浏览文件 @
0491aa97
...
...
@@ -548,7 +548,7 @@ typedef struct {
int32_t
totalBlocks
;
int32_t
maxTables
;
int32_t
daysPerFile
;
int32_t
daysToKeep
;
int32_t
daysToKeep
0
;
int32_t
daysToKeep1
;
int32_t
daysToKeep2
;
int32_t
minRowsPerFileBlock
;
...
...
src/inc/ttokendef.h
浏览文件 @
0491aa97
...
...
@@ -104,28 +104,28 @@
#define TK_QTIME 85
#define TK_CONNS 86
#define TK_STATE 87
#define TK_
KEEP
88
#define TK_
CACHE
89
#define TK_
REPLICA
90
#define TK_
QUORUM
91
#define TK_
DAYS
92
#define TK_
MINROWS
93
#define TK_M
AX
ROWS 94
#define TK_
BLOCKS
95
#define TK_
CTIME
96
#define TK_
WAL
97
#define TK_
FSYNC
98
#define TK_
COMP
99
#define TK_
PRECISION
100
#define TK_
UPDATE
101
#define TK_
CACHELAST
102
#define TK_
PARTITIONS
103
#define TK_
LP
104
#define TK_
R
P 105
#define TK_
UNSIGNED
106
#define TK_
TAGS
107
#define TK_
USING
108
#define TK_
COMMA
109
#define TK_
COMMA
88
#define TK_
KEEP
89
#define TK_
CACHE
90
#define TK_
REPLICA
91
#define TK_
QUORUM
92
#define TK_
DAYS
93
#define TK_M
IN
ROWS 94
#define TK_
MAXROWS
95
#define TK_
BLOCKS
96
#define TK_
CTIME
97
#define TK_
WAL
98
#define TK_
FSYNC
99
#define TK_
COMP
100
#define TK_
PRECISION
101
#define TK_
UPDATE
102
#define TK_
CACHELAST
103
#define TK_
PARTITIONS
104
#define TK_
L
P 105
#define TK_
RP
106
#define TK_
UNSIGNED
107
#define TK_
TAGS
108
#define TK_
USING
109
#define TK_AS 110
#define TK_NULL 111
#define TK_SELECT 112
...
...
@@ -213,6 +213,7 @@
#define TK_SPACE 300
#define TK_COMMENT 301
#define TK_ILLEGAL 302
...
...
src/mnode/inc/mnodeDef.h
浏览文件 @
0491aa97
...
...
@@ -161,7 +161,7 @@ typedef struct {
int32_t
totalBlocks
;
int32_t
maxTables
;
int32_t
daysPerFile
;
int32_t
daysToKeep
;
int32_t
daysToKeep
0
;
int32_t
daysToKeep1
;
int32_t
daysToKeep2
;
int32_t
minRowsPerFileBlock
;
...
...
src/mnode/src/mnodeDb.c
浏览文件 @
0491aa97
...
...
@@ -261,26 +261,27 @@ static int32_t mnodeCheckDbCfg(SDbCfg *pCfg) {
return
TSDB_CODE_MND_INVALID_DB_OPTION_DAYS
;
}
if
(
pCfg
->
daysToKeep
<
TSDB_MIN_KEEP
||
pCfg
->
daysToKeep
>
TSDB_MAX_KEEP
)
{
mError
(
"invalid db option daysToKeep:%d valid range: [%d, %d]"
,
pCfg
->
daysToKeep
,
TSDB_MIN_KEEP
,
TSDB_MAX_KEEP
);
if
(
pCfg
->
daysToKeep
0
<
TSDB_MIN_KEEP
||
pCfg
->
daysToKeep0
>
TSDB_MAX_KEEP
)
{
mError
(
"invalid db option daysToKeep:%d valid range: [%d, %d]"
,
pCfg
->
daysToKeep
0
,
TSDB_MIN_KEEP
,
TSDB_MAX_KEEP
);
return
TSDB_CODE_MND_INVALID_DB_OPTION_KEEP
;
}
if
(
pCfg
->
daysToKeep
<
pCfg
->
daysPerFile
)
{
mError
(
"invalid db option daysToKeep:%d should larger than daysPerFile:%d"
,
pCfg
->
daysToKeep
,
pCfg
->
daysPerFile
);
if
(
pCfg
->
daysToKeep
0
<
pCfg
->
daysPerFile
)
{
mError
(
"invalid db option daysToKeep:%d should larger than daysPerFile:%d"
,
pCfg
->
daysToKeep
0
,
pCfg
->
daysPerFile
);
return
TSDB_CODE_MND_INVALID_DB_OPTION_KEEP
;
}
if
(
pCfg
->
daysToKeep
2
<
TSDB_MIN_KEEP
||
pCfg
->
daysToKeep2
>
pCfg
->
daysToKeep
)
{
mError
(
"invalid db option daysToKeep
2:%d valid range: [%d, %d]"
,
pCfg
->
daysToKeep2
,
TSDB_MIN_KEEP
,
pCfg
->
daysToKeep
);
if
(
pCfg
->
daysToKeep
1
<
pCfg
->
daysToKeep0
||
pCfg
->
daysToKeep1
>
TSDB_MAX_KEEP
)
{
mError
(
"invalid db option daysToKeep
1:%d valid range: [%d, %d]"
,
pCfg
->
daysToKeep1
,
pCfg
->
daysToKeep0
,
TSDB_MAX_KEEP
);
return
TSDB_CODE_MND_INVALID_DB_OPTION_KEEP
;
}
if
(
pCfg
->
daysToKeep
1
<
TSDB_MIN_KEEP
||
pCfg
->
daysToKeep1
>
pCfg
->
daysToKeep2
)
{
mError
(
"invalid db option daysToKeep
1:%d valid range: [%d, %d]"
,
pCfg
->
daysToKeep1
,
TSDB_MIN_KEEP
,
pCfg
->
daysToKeep2
);
if
(
pCfg
->
daysToKeep
2
<
pCfg
->
daysToKeep1
||
pCfg
->
daysToKeep2
>
TSDB_MAX_KEEP
)
{
mError
(
"invalid db option daysToKeep
2:%d valid range: [%d, %d]"
,
pCfg
->
daysToKeep2
,
pCfg
->
daysToKeep1
,
TSDB_MAX_KEEP
);
return
TSDB_CODE_MND_INVALID_DB_OPTION_KEEP
;
}
if
(
pCfg
->
maxRowsPerFileBlock
<
TSDB_MIN_MAX_ROW_FBLOCK
||
pCfg
->
maxRowsPerFileBlock
>
TSDB_MAX_MAX_ROW_FBLOCK
)
{
mError
(
"invalid db option maxRowsPerFileBlock:%d valid range: [%d, %d]"
,
pCfg
->
maxRowsPerFileBlock
,
TSDB_MIN_MAX_ROW_FBLOCK
,
TSDB_MAX_MAX_ROW_FBLOCK
);
...
...
@@ -378,9 +379,9 @@ static void mnodeSetDefaultDbCfg(SDbCfg *pCfg) {
if
(
pCfg
->
totalBlocks
<
0
)
pCfg
->
totalBlocks
=
tsBlocksPerVnode
;
if
(
pCfg
->
maxTables
<
0
)
pCfg
->
maxTables
=
tsMaxTablePerVnode
;
if
(
pCfg
->
daysPerFile
<
0
)
pCfg
->
daysPerFile
=
tsDaysPerFile
;
if
(
pCfg
->
daysToKeep
<
0
)
pCfg
->
daysToKeep
=
tsDaysToKeep
;
if
(
pCfg
->
daysToKeep1
<
0
)
pCfg
->
daysToKeep1
=
pCfg
->
daysToKeep
;
if
(
pCfg
->
daysToKeep
2
<
0
)
pCfg
->
daysToKeep2
=
pCfg
->
daysToKeep
;
if
(
pCfg
->
daysToKeep
2
<
0
)
pCfg
->
daysToKeep2
=
tsDaysToKeep
;
if
(
pCfg
->
daysToKeep1
<
0
)
pCfg
->
daysToKeep1
=
pCfg
->
daysToKeep
2
;
if
(
pCfg
->
daysToKeep
0
<
0
)
pCfg
->
daysToKeep0
=
pCfg
->
daysToKeep1
;
if
(
pCfg
->
minRowsPerFileBlock
<
0
)
pCfg
->
minRowsPerFileBlock
=
tsMinRowsInFileBlock
;
if
(
pCfg
->
maxRowsPerFileBlock
<
0
)
pCfg
->
maxRowsPerFileBlock
=
tsMaxRowsInFileBlock
;
if
(
pCfg
->
fsyncPeriod
<
0
)
pCfg
->
fsyncPeriod
=
tsFsyncPeriod
;
...
...
@@ -435,7 +436,7 @@ static int32_t mnodeCreateDb(SAcctObj *pAcct, SCreateDbMsg *pCreate, SMnodeMsg *
.
totalBlocks
=
pCreate
->
totalBlocks
,
.
maxTables
=
pCreate
->
maxTables
,
.
daysPerFile
=
pCreate
->
daysPerFile
,
.
daysToKeep
=
pCreate
->
daysToKeep
,
.
daysToKeep
0
=
pCreate
->
daysToKeep0
,
.
daysToKeep1
=
pCreate
->
daysToKeep1
,
.
daysToKeep2
=
pCreate
->
daysToKeep2
,
.
minRowsPerFileBlock
=
pCreate
->
minRowsPerFileBlock
,
...
...
@@ -777,7 +778,7 @@ static int32_t mnodeRetrieveDbs(SShowObj *pShow, char *data, int32_t rows, void
pWrite
=
data
+
pShow
->
offset
[
cols
]
*
rows
+
pShow
->
bytes
[
cols
]
*
numOfRows
;
char
tmp
[
128
]
=
{
0
};
sprintf
(
tmp
,
"%d,%d,%d"
,
pDb
->
cfg
.
daysToKeep
1
,
pDb
->
cfg
.
daysToKeep2
,
pDb
->
cfg
.
daysToKeep
);
sprintf
(
tmp
,
"%d,%d,%d"
,
pDb
->
cfg
.
daysToKeep
0
,
pDb
->
cfg
.
daysToKeep1
,
pDb
->
cfg
.
daysToKeep2
);
STR_WITH_SIZE_TO_VARSTR
(
pWrite
,
tmp
,
strlen
(
tmp
));
cols
++
;
...
...
@@ -890,7 +891,7 @@ static int32_t mnodeProcessCreateDbMsg(SMnodeMsg *pMsg) {
pCreate
->
cacheBlockSize
=
htonl
(
pCreate
->
cacheBlockSize
);
pCreate
->
totalBlocks
=
htonl
(
pCreate
->
totalBlocks
);
pCreate
->
daysPerFile
=
htonl
(
pCreate
->
daysPerFile
);
pCreate
->
daysToKeep
=
htonl
(
pCreate
->
daysToKeep
);
pCreate
->
daysToKeep
0
=
htonl
(
pCreate
->
daysToKeep0
);
pCreate
->
daysToKeep1
=
htonl
(
pCreate
->
daysToKeep1
);
pCreate
->
daysToKeep2
=
htonl
(
pCreate
->
daysToKeep2
);
pCreate
->
commitTime
=
htonl
(
pCreate
->
commitTime
);
...
...
@@ -917,7 +918,7 @@ static SDbCfg mnodeGetAlterDbOption(SDbObj *pDb, SAlterDbMsg *pAlter) {
int32_t
cacheBlockSize
=
htonl
(
pAlter
->
cacheBlockSize
);
int32_t
totalBlocks
=
htonl
(
pAlter
->
totalBlocks
);
int32_t
daysPerFile
=
htonl
(
pAlter
->
daysPerFile
);
int32_t
daysToKeep
=
htonl
(
pAlter
->
daysToKeep
);
int32_t
daysToKeep
0
=
htonl
(
pAlter
->
daysToKeep0
);
int32_t
daysToKeep1
=
htonl
(
pAlter
->
daysToKeep1
);
int32_t
daysToKeep2
=
htonl
(
pAlter
->
daysToKeep2
);
int32_t
minRows
=
htonl
(
pAlter
->
minRowsPerFileBlock
);
...
...
@@ -960,9 +961,9 @@ static SDbCfg mnodeGetAlterDbOption(SDbObj *pDb, SAlterDbMsg *pAlter) {
terrno
=
TSDB_CODE_MND_INVALID_DB_OPTION
;
}
if
(
daysToKeep
>
0
&&
daysToKeep
!=
pDb
->
cfg
.
daysToKeep
)
{
mDebug
(
"db:%s, daysToKeep:%d change to %d"
,
pDb
->
name
,
pDb
->
cfg
.
daysToKeep
,
daysToKeep
);
newCfg
.
daysToKeep
=
daysToKeep
;
if
(
daysToKeep
0
>
0
&&
daysToKeep0
!=
pDb
->
cfg
.
daysToKeep0
)
{
mDebug
(
"db:%s, daysToKeep:%d change to %d"
,
pDb
->
name
,
pDb
->
cfg
.
daysToKeep
0
,
daysToKeep0
);
newCfg
.
daysToKeep
0
=
daysToKeep0
;
}
if
(
daysToKeep1
>
0
&&
daysToKeep1
!=
pDb
->
cfg
.
daysToKeep1
)
{
...
...
@@ -1063,8 +1064,8 @@ static SDbCfg mnodeGetAlterDbOption(SDbObj *pDb, SAlterDbMsg *pAlter) {
// community version can only change daysToKeep
// but enterprise version can change all daysToKeep options
#ifndef _STORAGE
newCfg
.
daysToKeep1
=
newCfg
.
daysToKeep
;
newCfg
.
daysToKeep2
=
newCfg
.
daysToKeep
;
newCfg
.
daysToKeep1
=
newCfg
.
daysToKeep
0
;
newCfg
.
daysToKeep2
=
newCfg
.
daysToKeep
0
;
#endif
return
newCfg
;
...
...
@@ -1304,4 +1305,4 @@ int32_t mnodeCompactDbs() {
mInfo
(
"end to compact dbs table..."
);
return
0
;
}
\ No newline at end of file
}
src/mnode/src/mnodeVgroup.c
浏览文件 @
0491aa97
...
...
@@ -894,9 +894,9 @@ static SCreateVnodeMsg *mnodeBuildVnodeMsg(SVgObj *pVgroup) {
pCfg
->
totalBlocks
=
htonl
(
pDb
->
cfg
.
totalBlocks
);
pCfg
->
maxTables
=
htonl
(
maxTables
+
1
);
pCfg
->
daysPerFile
=
htonl
(
pDb
->
cfg
.
daysPerFile
);
pCfg
->
daysToKeep
=
htonl
(
pDb
->
cfg
.
daysToKeep
);
pCfg
->
daysToKeep1
=
htonl
(
pDb
->
cfg
.
daysToKeep
1
);
pCfg
->
daysToKeep2
=
htonl
(
pDb
->
cfg
.
daysToKeep
2
);
pCfg
->
daysToKeep
=
htonl
(
pDb
->
cfg
.
daysToKeep
2
);
//FROM DB TO VNODE MAP
pCfg
->
daysToKeep1
=
htonl
(
pDb
->
cfg
.
daysToKeep
0
);
pCfg
->
daysToKeep2
=
htonl
(
pDb
->
cfg
.
daysToKeep
1
);
pCfg
->
minRowsPerFileBlock
=
htonl
(
pDb
->
cfg
.
minRowsPerFileBlock
);
pCfg
->
maxRowsPerFileBlock
=
htonl
(
pDb
->
cfg
.
maxRowsPerFileBlock
);
pCfg
->
fsyncPeriod
=
htonl
(
pDb
->
cfg
.
fsyncPeriod
);
...
...
src/query/inc/sql.y
浏览文件 @
0491aa97
...
...
@@ -238,9 +238,18 @@ acct_optr(Y) ::= pps(C) tseries(D) storage(P) streams(F) qtime(Q) dbs(E) users(K
Y.stat = M;
}
%type intitemlist {SArray*}
%destructor intitemlist {taosArrayDestroy($$);}
%type intitem {tVariant}
intitemlist(A) ::= intitemlist(X) COMMA intitem(Y). { A = tVariantListAppend(X, &Y, -1); }
intitemlist(A) ::= intitem(X). { A = tVariantListAppend(NULL, &X, -1); }
intitem(A) ::= INTEGER(X). { toTSDBType(X.type); tVariantCreate(&A, &X); }
%type keep {SArray*}
%destructor keep {taosArrayDestroy($$);}
keep(Y) ::= KEEP
tag
itemlist(X). { Y = X; }
keep(Y) ::= KEEP
int
itemlist(X). { Y = X; }
cache(Y) ::= CACHE INTEGER(X). { Y = X; }
replica(Y) ::= REPLICA INTEGER(X). { Y = X; }
...
...
src/query/src/sql.c
浏览文件 @
0491aa97
此差异已折叠。
点击以展开。
src/util/src/terror.c
浏览文件 @
0491aa97
...
...
@@ -193,7 +193,7 @@ TAOS_DEFINE_ERROR(TSDB_CODE_MND_DB_IN_DROPPING, "Database not availabl
TAOS_DEFINE_ERROR
(
TSDB_CODE_MND_VGROUP_NOT_READY
,
"Database unsynced"
)
TAOS_DEFINE_ERROR
(
TSDB_CODE_MND_INVALID_DB_OPTION_DAYS
,
"Invalid database option: days out of range"
)
TAOS_DEFINE_ERROR
(
TSDB_CODE_MND_INVALID_DB_OPTION_KEEP
,
"Invalid database option: keep >= keep1 >= keep0 >= days"
)
TAOS_DEFINE_ERROR
(
TSDB_CODE_MND_INVALID_DB_OPTION_KEEP
,
"Invalid database option: keep
2
>= keep1 >= keep0 >= days"
)
TAOS_DEFINE_ERROR
(
TSDB_CODE_MND_INVALID_TOPIC
,
"Invalid topic name"
)
TAOS_DEFINE_ERROR
(
TSDB_CODE_MND_INVALID_TOPIC_OPTION
,
"Invalid topic option"
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录