Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
6916f469
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看板
未验证
提交
6916f469
编写于
5月 08, 2022
作者:
X
Xiaoyu Wang
提交者:
GitHub
5月 08, 2022
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #12242 from taosdata/feature/3.0_wxy
fix: problem of sql command 'kill transaction'
上级
9bd5da46
64e8e0c0
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
24 addition
and
13 deletion
+24
-13
include/libs/nodes/nodes.h
include/libs/nodes/nodes.h
+0
-1
source/libs/nodes/src/nodesCodeFuncs.c
source/libs/nodes/src/nodesCodeFuncs.c
+4
-6
source/libs/nodes/src/nodesUtilFuncs.c
source/libs/nodes/src/nodesUtilFuncs.c
+0
-1
source/libs/parser/src/parAstCreater.c
source/libs/parser/src/parAstCreater.c
+3
-2
source/libs/parser/src/parAuthenticator.c
source/libs/parser/src/parAuthenticator.c
+7
-3
source/libs/parser/src/parTranslater.c
source/libs/parser/src/parTranslater.c
+1
-0
source/libs/parser/test/mockCatalog.cpp
source/libs/parser/test/mockCatalog.cpp
+9
-0
未找到文件。
include/libs/nodes/nodes.h
浏览文件 @
6916f469
...
...
@@ -164,7 +164,6 @@ typedef enum ENodeType {
QUERY_NODE_SHOW_TOPICS_STMT
,
QUERY_NODE_SHOW_CONSUMERS_STMT
,
QUERY_NODE_SHOW_SUBSCRIBES_STMT
,
QUERY_NODE_SHOW_TRANS_STMT
,
QUERY_NODE_SHOW_SMAS_STMT
,
QUERY_NODE_SHOW_CONFIGS_STMT
,
QUERY_NODE_SHOW_CONNECTIONS_STMT
,
...
...
source/libs/nodes/src/nodesCodeFuncs.c
浏览文件 @
6916f469
...
...
@@ -168,8 +168,6 @@ const char* nodesNodeName(ENodeType type) {
return
"ShowConsumersStmt"
;
case
QUERY_NODE_SHOW_SUBSCRIBES_STMT
:
return
"ShowSubscribesStmt"
;
case
QUERY_NODE_SHOW_TRANS_STMT
:
return
"ShowTransStmt"
;
case
QUERY_NODE_SHOW_SMAS_STMT
:
return
"ShowSmasStmt"
;
case
QUERY_NODE_SHOW_CONFIGS_STMT
:
...
...
@@ -1972,10 +1970,10 @@ static int32_t datumToJson(const void* pObj, SJson* pJson) {
code
=
tjsonAddDoubleToObject
(
pJson
,
jkValueDatum
,
pNode
->
datum
.
d
);
break
;
case
TSDB_DATA_TYPE_NCHAR
:
{
//cJSON only support utf-8 encoding. Convert memory content to hex string.
char
*
buf
=
taosMemoryCalloc
(
varDataLen
(
pNode
->
datum
.
p
)
*
2
+
1
,
sizeof
(
char
));
//
cJSON only support utf-8 encoding. Convert memory content to hex string.
char
*
buf
=
taosMemoryCalloc
(
varDataLen
(
pNode
->
datum
.
p
)
*
2
+
1
,
sizeof
(
char
));
code
=
taosHexEncode
(
varDataVal
(
pNode
->
datum
.
p
),
buf
,
varDataLen
(
pNode
->
datum
.
p
));
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
if
(
code
!=
TSDB_CODE_SUCCESS
)
{
taosMemoryFree
(
buf
);
return
TSDB_CODE_TSC_INVALID_VALUE
;
}
...
...
@@ -2086,7 +2084,7 @@ static int32_t jsonToDatum(const SJson* pJson, void* pObj) {
}
varDataSetLen
(
pNode
->
datum
.
p
,
pNode
->
node
.
resType
.
bytes
);
if
(
TSDB_DATA_TYPE_NCHAR
==
pNode
->
node
.
resType
.
type
)
{
char
*
buf
=
taosMemoryCalloc
(
1
,
pNode
->
node
.
resType
.
bytes
*
2
+
VARSTR_HEADER_SIZE
+
1
);
char
*
buf
=
taosMemoryCalloc
(
1
,
pNode
->
node
.
resType
.
bytes
*
2
+
VARSTR_HEADER_SIZE
+
1
);
if
(
NULL
==
buf
)
{
code
=
TSDB_CODE_OUT_OF_MEMORY
;
break
;
...
...
source/libs/nodes/src/nodesUtilFuncs.c
浏览文件 @
6916f469
...
...
@@ -190,7 +190,6 @@ SNodeptr nodesMakeNode(ENodeType type) {
case
QUERY_NODE_SHOW_TOPICS_STMT
:
case
QUERY_NODE_SHOW_CONSUMERS_STMT
:
case
QUERY_NODE_SHOW_SUBSCRIBES_STMT
:
case
QUERY_NODE_SHOW_TRANS_STMT
:
case
QUERY_NODE_SHOW_SMAS_STMT
:
case
QUERY_NODE_SHOW_CONFIGS_STMT
:
case
QUERY_NODE_SHOW_QUERIES_STMT
:
...
...
source/libs/parser/src/parAstCreater.c
浏览文件 @
6916f469
...
...
@@ -1300,9 +1300,10 @@ SNode* createDropStreamStmt(SAstCreateContext* pCxt, bool ignoreNotExists, const
}
SNode
*
createKillStmt
(
SAstCreateContext
*
pCxt
,
ENodeType
type
,
const
SToken
*
pId
)
{
S
Node
*
pStmt
=
nodesMakeNode
(
type
);
S
KillStmt
*
pStmt
=
nodesMakeNode
(
type
);
CHECK_OUT_OF_MEM
(
pStmt
);
return
pStmt
;
pStmt
->
targetId
=
strtol
(
pId
->
z
,
NULL
,
10
);
return
(
SNode
*
)
pStmt
;
}
SNode
*
createMergeVgroupStmt
(
SAstCreateContext
*
pCxt
,
const
SToken
*
pVgId1
,
const
SToken
*
pVgId2
)
{
...
...
source/libs/parser/src/parAuthenticator.c
浏览文件 @
6916f469
...
...
@@ -23,12 +23,17 @@ typedef struct SAuthCxt {
static
int32_t
authQuery
(
SAuthCxt
*
pCxt
,
SNode
*
pStmt
);
static
int32_t
checkAuth
(
SParseContext
*
pCxt
,
const
char
*
d
bName
,
AUTH_TYPE
type
)
{
static
int32_t
checkAuth
(
SParseContext
*
pCxt
,
const
char
*
pD
bName
,
AUTH_TYPE
type
)
{
if
(
pCxt
->
isSuperUser
)
{
return
TSDB_CODE_SUCCESS
;
}
SName
name
;
tNameSetDbName
(
&
name
,
pCxt
->
acctId
,
pDbName
,
strlen
(
pDbName
));
char
dbFname
[
TSDB_DB_FNAME_LEN
]
=
{
0
};
tNameGetFullDbName
(
&
name
,
dbFname
);
bool
pass
=
false
;
int32_t
code
=
catalogChkAuth
(
pCxt
->
pCatalog
,
pCxt
->
pTransporter
,
&
pCxt
->
mgmtEpSet
,
pCxt
->
pUser
,
dbName
,
type
,
&
pass
);
int32_t
code
=
catalogChkAuth
(
pCxt
->
pCatalog
,
pCxt
->
pTransporter
,
&
pCxt
->
mgmtEpSet
,
pCxt
->
pUser
,
dbFname
,
type
,
&
pass
);
return
TSDB_CODE_SUCCESS
==
code
?
(
pass
?
TSDB_CODE_SUCCESS
:
TSDB_CODE_PAR_PERMISSION_DENIED
)
:
code
;
}
...
...
@@ -130,7 +135,6 @@ static int32_t authQuery(SAuthCxt* pCxt, SNode* pStmt) {
case
QUERY_NODE_SHOW_TOPICS_STMT
:
case
QUERY_NODE_SHOW_CONSUMERS_STMT
:
case
QUERY_NODE_SHOW_SUBSCRIBES_STMT
:
case
QUERY_NODE_SHOW_TRANS_STMT
:
case
QUERY_NODE_SHOW_SMAS_STMT
:
case
QUERY_NODE_SHOW_CONFIGS_STMT
:
case
QUERY_NODE_SHOW_CONNECTIONS_STMT
:
...
...
source/libs/parser/src/parTranslater.c
浏览文件 @
6916f469
...
...
@@ -4131,6 +4131,7 @@ static int32_t rewriteQuery(STranslateContext* pCxt, SQuery* pQuery) {
case
QUERY_NODE_SHOW_QUERIES_STMT
:
case
QUERY_NODE_SHOW_CLUSTER_STMT
:
case
QUERY_NODE_SHOW_TOPICS_STMT
:
case
QUERY_NODE_SHOW_TRANSACTIONS_STMT
:
code
=
rewriteShow
(
pCxt
,
pQuery
);
break
;
case
QUERY_NODE_CREATE_TABLE_STMT
:
...
...
source/libs/parser/test/mockCatalog.cpp
浏览文件 @
6916f469
...
...
@@ -100,6 +100,14 @@ void generateInformationSchema(MockCatalogService* mcs) {
}
}
void
generatePerformanceSchema
(
MockCatalogService
*
mcs
)
{
{
ITableBuilder
&
builder
=
mcs
->
createTableBuilder
(
"performance_schema"
,
"trans"
,
TSDB_SYSTEM_TABLE
,
1
)
.
addColumn
(
"id"
,
TSDB_DATA_TYPE_INT
);
builder
.
done
();
}
}
/*
* Table:t1
* Field | Type | DataType | Bytes |
...
...
@@ -244,6 +252,7 @@ void initMetaDataEnv() {
void
generateMetaData
()
{
generateInformationSchema
(
mockCatalogService
.
get
());
generatePerformanceSchema
(
mockCatalogService
.
get
());
generateTestT1
(
mockCatalogService
.
get
());
generateTestST1
(
mockCatalogService
.
get
());
mockCatalogService
->
showTables
();
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录