Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
qq_50753323
TDengine
提交
bf9d1274
T
TDengine
项目概览
qq_50753323
/
TDengine
与 Fork 源项目一致
Fork自
taosdata / TDengine
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
bf9d1274
编写于
5月 02, 2020
作者:
S
slguan
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[TD-184] fix bug while drop dnode
上级
0cce9bea
变更
9
展开全部
隐藏空白更改
内联
并排
Showing
9 changed file
with
134 addition
and
139 deletion
+134
-139
src/client/src/tscSQLParser.c
src/client/src/tscSQLParser.c
+1
-9
src/mnode/inc/mgmtDnode.h
src/mnode/inc/mgmtDnode.h
+1
-1
src/mnode/src/mgmtDnode.c
src/mnode/src/mgmtDnode.c
+13
-9
src/query/inc/qsqlparser.h
src/query/inc/qsqlparser.h
+1
-1
src/query/inc/sql.y
src/query/inc/sql.y
+1
-1
src/query/src/qparserImpl.c
src/query/src/qparserImpl.c
+1
-1
src/query/src/sql.c
src/query/src/sql.c
+113
-114
tests/script/unique/big/testSuite.sim
tests/script/unique/big/testSuite.sim
+1
-1
tests/script/unique/mnode/mgmt33.sim
tests/script/unique/mnode/mgmt33.sim
+2
-2
未找到文件。
src/client/src/tscSQLParser.c
浏览文件 @
bf9d1274
...
...
@@ -206,7 +206,6 @@ int32_t tscToSQLCmd(SSqlObj* pSql, struct SSqlInfo* pInfo) {
case
TSDB_SQL_DROP_ACCT
:
case
TSDB_SQL_DROP_DNODE
:
case
TSDB_SQL_DROP_DB
:
{
const
char
*
msg1
=
"invalid ip address"
;
const
char
*
msg2
=
"invalid name"
;
const
char
*
msg3
=
"param name too long"
;
...
...
@@ -230,10 +229,7 @@ int32_t tscToSQLCmd(SSqlObj* pSql, struct SSqlInfo* pInfo) {
return
invalidSqlErrMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg3
);
}
}
else
if
(
pInfo
->
type
==
TSDB_SQL_DROP_DNODE
)
{
if
(
!
validateIpAddress
(
pzName
->
z
,
pzName
->
n
))
{
return
invalidSqlErrMsg
(
tscGetErrorMsgPayload
(
pCmd
),
msg1
);
}
pzName
->
n
=
strdequote
(
pzName
->
z
);
strncpy
(
pTableMetaInfo
->
name
,
pzName
->
z
,
pzName
->
n
);
}
else
{
// drop user
if
(
pzName
->
n
>
TSDB_USER_LEN
)
{
...
...
@@ -304,10 +300,6 @@ int32_t tscToSQLCmd(SSqlObj* pSql, struct SSqlInfo* pInfo) {
}
SSQLToken
*
pIpAddr
=
&
pInfo
->
pDCLInfo
->
a
[
0
];
// if (!validateIpAddress(pIpAddr->z, pIpAddr->n)) {
// return invalidSqlErrMsg(tscGetErrorMsgPayload(pCmd), msg);
// }
pIpAddr
->
n
=
strdequote
(
pIpAddr
->
z
);
break
;
}
...
...
src/mnode/inc/mgmtDnode.h
浏览文件 @
bf9d1274
...
...
@@ -38,7 +38,7 @@ void * mgmtGetNextDnode(void *pNode, SDnodeObj **pDnode);
void
mgmtIncDnodeRef
(
SDnodeObj
*
pDnode
);
void
mgmtDecDnodeRef
(
SDnodeObj
*
pDnode
);
void
*
mgmtGetDnode
(
int32_t
dnodeId
);
void
*
mgmtGetDnodeBy
I
p
(
char
*
ep
);
void
*
mgmtGetDnodeBy
E
p
(
char
*
ep
);
void
mgmtUpdateDnode
(
SDnodeObj
*
pDnode
);
int32_t
mgmtDropDnode
(
SDnodeObj
*
pDnode
);
...
...
src/mnode/src/mgmtDnode.c
浏览文件 @
bf9d1274
...
...
@@ -74,7 +74,9 @@ static int32_t mgmtDnodeActionInsert(SSdbOper *pOper) {
static
int32_t
mgmtDnodeActionDelete
(
SSdbOper
*
pOper
)
{
SDnodeObj
*
pDnode
=
pOper
->
pObj
;
#ifndef _SYNC
mgmtDropAllDnodeVgroups
(
pDnode
);
#endif
mgmtDropMnodeLocal
(
pDnode
->
dnodeId
);
balanceNotify
();
...
...
@@ -113,7 +115,7 @@ static int32_t mgmtDnodeActionRestored() {
int32_t
numOfRows
=
sdbGetNumOfRows
(
tsDnodeSdb
);
if
(
numOfRows
<=
0
&&
dnodeIsFirstDeploy
())
{
mgmtCreateDnode
(
tsLocalEp
);
SDnodeObj
*
pDnode
=
mgmtGetDnodeBy
I
p
(
tsLocalEp
);
SDnodeObj
*
pDnode
=
mgmtGetDnodeBy
E
p
(
tsLocalEp
);
mgmtAddMnode
(
pDnode
->
dnodeId
);
mgmtDecDnodeRef
(
pDnode
);
}
...
...
@@ -181,7 +183,7 @@ void *mgmtGetDnode(int32_t dnodeId) {
return
sdbGetRow
(
tsDnodeSdb
,
&
dnodeId
);
}
void
*
mgmtGetDnodeBy
I
p
(
char
*
ep
)
{
void
*
mgmtGetDnodeBy
E
p
(
char
*
ep
)
{
SDnodeObj
*
pDnode
=
NULL
;
void
*
pNode
=
NULL
;
...
...
@@ -271,7 +273,7 @@ void mgmtProcessDnodeStatusMsg(SRpcMsg *rpcMsg) {
SDnodeObj
*
pDnode
=
NULL
;
if
(
pStatus
->
dnodeId
==
0
)
{
pDnode
=
mgmtGetDnodeBy
I
p
(
pStatus
->
dnodeEp
);
pDnode
=
mgmtGetDnodeBy
E
p
(
pStatus
->
dnodeEp
);
if
(
pDnode
==
NULL
)
{
mTrace
(
"dnode %s not created"
,
pStatus
->
dnodeEp
);
mgmtSendSimpleResp
(
rpcMsg
->
handle
,
TSDB_CODE_DNODE_NOT_EXIST
);
...
...
@@ -358,7 +360,7 @@ static int32_t mgmtCreateDnode(char *ep) {
return
grantCode
;
}
SDnodeObj
*
pDnode
=
mgmtGetDnodeBy
I
p
(
ep
);
SDnodeObj
*
pDnode
=
mgmtGetDnodeBy
E
p
(
ep
);
if
(
pDnode
!=
NULL
)
{
mgmtDecDnodeRef
(
pDnode
);
mError
(
"dnode:%d is alredy exist, %s:%d"
,
pDnode
->
dnodeId
,
pDnode
->
dnodeFqdn
,
pDnode
->
dnodePort
);
...
...
@@ -391,6 +393,7 @@ static int32_t mgmtCreateDnode(char *ep) {
return
code
;
}
//TODO drop others tables
int32_t
mgmtDropDnode
(
SDnodeObj
*
pDnode
)
{
SSdbOper
oper
=
{
.
type
=
SDB_OPER_GLOBAL
,
...
...
@@ -407,8 +410,9 @@ int32_t mgmtDropDnode(SDnodeObj *pDnode) {
return
code
;
}
static
int32_t
mgmtDropDnodeByIp
(
char
*
ep
)
{
SDnodeObj
*
pDnode
=
mgmtGetDnodeByIp
(
ep
);
static
int32_t
mgmtDropDnodeByEp
(
char
*
ep
)
{
SDnodeObj
*
pDnode
=
mgmtGetDnodeByEp
(
ep
);
if
(
pDnode
==
NULL
)
{
mError
(
"dnode:%s, is not exist"
,
ep
);
return
TSDB_CODE_DNODE_NOT_EXIST
;
...
...
@@ -437,7 +441,7 @@ static void mgmtProcessCreateDnodeMsg(SQueuedMsg *pMsg) {
}
else
{
rpcRsp
.
code
=
mgmtCreateDnode
(
pCreate
->
ep
);
if
(
rpcRsp
.
code
==
TSDB_CODE_SUCCESS
)
{
SDnodeObj
*
pDnode
=
mgmtGetDnodeBy
I
p
(
pCreate
->
ep
);
SDnodeObj
*
pDnode
=
mgmtGetDnodeBy
E
p
(
pCreate
->
ep
);
mLPrint
(
"dnode:%d, %s is created by %s"
,
pDnode
->
dnodeId
,
pCreate
->
ep
,
pMsg
->
pUser
->
user
);
mgmtDecDnodeRef
(
pDnode
);
}
else
{
...
...
@@ -456,7 +460,7 @@ static void mgmtProcessDropDnodeMsg(SQueuedMsg *pMsg) {
if
(
strcmp
(
pMsg
->
pUser
->
user
,
"root"
)
!=
0
)
{
rpcRsp
.
code
=
TSDB_CODE_NO_RIGHTS
;
}
else
{
rpcRsp
.
code
=
mgmtDropDnodeBy
I
p
(
pDrop
->
ep
);
rpcRsp
.
code
=
mgmtDropDnodeBy
E
p
(
pDrop
->
ep
);
if
(
rpcRsp
.
code
==
TSDB_CODE_SUCCESS
)
{
mLPrint
(
"dnode:%s is dropped by %s"
,
pDrop
->
ep
,
pMsg
->
pUser
->
user
);
}
else
{
...
...
@@ -812,7 +816,7 @@ static int32_t mgmtGetVnodeMeta(STableMetaMsg *pMeta, SShowObj *pShow, void *pCo
SDnodeObj
*
pDnode
=
NULL
;
if
(
pShow
->
payloadLen
>
0
)
{
pDnode
=
mgmtGetDnodeBy
I
p
(
pShow
->
payload
);
pDnode
=
mgmtGetDnodeBy
E
p
(
pShow
->
payload
);
}
else
{
mgmtGetNextDnode
(
NULL
,
(
SDnodeObj
**
)
&
pDnode
);
}
...
...
src/query/inc/qsqlparser.h
浏览文件 @
bf9d1274
...
...
@@ -277,7 +277,7 @@ SSubclauseInfo *setSubclause(SSubclauseInfo *pClause, void *pSqlExprInfo);
SSubclauseInfo
*
appendSelectClause
(
SSubclauseInfo
*
pInfo
,
void
*
pSubclause
);
void
setCreated
Meter
Name
(
SSqlInfo
*
pInfo
,
SSQLToken
*
pMeterName
,
SSQLToken
*
pIfNotExists
);
void
setCreated
Table
Name
(
SSqlInfo
*
pInfo
,
SSQLToken
*
pMeterName
,
SSQLToken
*
pIfNotExists
);
void
SQLInfoDestroy
(
SSqlInfo
*
pInfo
);
...
...
src/query/inc/sql.y
浏览文件 @
bf9d1274
...
...
@@ -264,7 +264,7 @@ signed(A) ::= MINUS INTEGER(X). { A = -strtol(X.z, NULL, 10);}
////////////////////////////////// The CREATE TABLE statement ///////////////////////////////
cmd ::= CREATE TABLE ifnotexists(Y) ids(X) cpxName(Z) create_table_args. {
X.n += Z.n;
setCreated
Meter
Name(pInfo, &X, &Y);
setCreated
Table
Name(pInfo, &X, &Y);
}
%type create_table_args{SCreateTableSQL*}
...
...
src/query/src/qparserImpl.c
浏览文件 @
bf9d1274
...
...
@@ -731,7 +731,7 @@ SSubclauseInfo* appendSelectClause(SSubclauseInfo *pQueryInfo, void *pSubclause)
return
pQueryInfo
;
}
void
setCreated
Meter
Name
(
SSqlInfo
*
pInfo
,
SSQLToken
*
pMeterName
,
SSQLToken
*
pIfNotExists
)
{
void
setCreated
Table
Name
(
SSqlInfo
*
pInfo
,
SSQLToken
*
pMeterName
,
SSQLToken
*
pIfNotExists
)
{
pInfo
->
pCreateTableInfo
->
name
=
*
pMeterName
;
pInfo
->
pCreateTableInfo
->
existCheck
=
(
pIfNotExists
->
n
!=
0
);
}
...
...
src/query/src/sql.c
浏览文件 @
bf9d1274
此差异已折叠。
点击以展开。
tests/script/unique/big/testSuite.sim
浏览文件 @
bf9d1274
#run unique/big/balance.sim
#run unique/big/maxvnodes.sim
run unique/big/tcp.sim
#
run unique/big/tcp.sim
tests/script/unique/mnode/mgmt33.sim
浏览文件 @
bf9d1274
...
...
@@ -106,7 +106,7 @@ sleep 8000
sql show mnodes
$dnode1Role = $data2_1
$dnode2Role = $data
3
_4
$dnode2Role = $data
2
_4
$dnode3Role = $data2_3
print dnode1 ==> $dnode1Role
print dnode2 ==> $dnode2Role
...
...
@@ -128,7 +128,7 @@ sleep 10000
sql show mnodes
$dnode1Role = $data2_1
$dnode2Role = $data
3
_4
$dnode2Role = $data
2
_4
$dnode3Role = $data2_3
print dnode1 ==> $dnode1Role
print dnode2 ==> $dnode2Role
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录