Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
519fce0f
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
519fce0f
编写于
1月 10, 2022
作者:
S
Shengliang Guan
提交者:
GitHub
1月 10, 2022
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #9707 from taosdata/feature/3.0_wxy
TD-12678 bug fix
上级
3cce6bd8
7508af00
变更
4
显示空白变更内容
内联
并排
Showing
4 changed file
with
55 addition
and
9 deletion
+55
-9
source/client/src/clientImpl.c
source/client/src/clientImpl.c
+2
-0
source/libs/parser/test/mockCatalogService.cpp
source/libs/parser/test/mockCatalogService.cpp
+3
-0
source/libs/planner/src/physicalPlan.c
source/libs/planner/src/physicalPlan.c
+1
-1
source/libs/planner/src/physicalPlanJson.c
source/libs/planner/src/physicalPlanJson.c
+49
-8
未找到文件。
source/client/src/clientImpl.c
浏览文件 @
519fce0f
...
...
@@ -305,6 +305,8 @@ TAOS_RES *taos_query_l(TAOS *taos, const char *sql, int sqlLen) {
}
else
{
CHECK_CODE_GOTO
(
getPlan
(
pRequest
,
pQuery
,
&
pDag
),
_return
);
CHECK_CODE_GOTO
(
scheduleQuery
(
pRequest
,
pDag
,
&
pJob
),
_return
);
pRequest
->
code
=
terrno
;
return
pRequest
;
}
_return:
...
...
source/libs/parser/test/mockCatalogService.cpp
浏览文件 @
519fce0f
...
...
@@ -112,6 +112,9 @@ public:
int32_t
catalogGetTableHashVgroup
(
const
SName
*
pTableName
,
SVgroupInfo
*
vgInfo
)
const
{
// todo
vgInfo
->
vgId
=
1
;
vgInfo
->
numOfEps
=
1
;
vgInfo
->
epAddr
[
0
].
port
=
6030
;
strcpy
(
vgInfo
->
epAddr
[
0
].
fqdn
,
"node1"
);
return
0
;
}
...
...
source/libs/planner/src/physicalPlan.c
浏览文件 @
519fce0f
...
...
@@ -234,7 +234,7 @@ static SSubplan* initSubplan(SPlanContext* pCxt, int32_t type) {
static
void
vgroupInfoToEpSet
(
const
SVgroupInfo
*
vg
,
SQueryNodeAddr
*
execNode
)
{
execNode
->
nodeId
=
vg
->
vgId
;
execNode
->
inUse
=
0
;
// todo
execNode
->
inUse
=
vg
->
inUse
;
execNode
->
numOfEps
=
vg
->
numOfEps
;
for
(
int8_t
i
=
0
;
i
<
vg
->
numOfEps
;
++
i
)
{
execNode
->
epAddr
[
i
]
=
vg
->
epAddr
[
i
];
...
...
source/libs/planner/src/physicalPlanJson.c
浏览文件 @
519fce0f
...
...
@@ -62,7 +62,7 @@ static bool fromObjectWithAlloc(const cJSON* json, const char* name, FFromJson f
return
func
(
jObj
,
*
obj
);
}
static
bool
add
Array
(
cJSON
*
json
,
const
char
*
name
,
FToJson
func
,
const
SArray
*
array
)
{
static
bool
add
Tarray
(
cJSON
*
json
,
const
char
*
name
,
FToJson
func
,
const
SArray
*
array
,
bool
isPoint
)
{
size_t
size
=
(
NULL
==
array
)
?
0
:
taosArrayGetSize
(
array
);
if
(
size
>
0
)
{
cJSON
*
jArray
=
cJSON_AddArrayToObject
(
json
,
name
);
...
...
@@ -70,7 +70,7 @@ static bool addArray(cJSON* json, const char* name, FToJson func, const SArray*
return
false
;
}
for
(
size_t
i
=
0
;
i
<
size
;
++
i
)
{
if
(
!
addItem
(
jArray
,
func
,
taosArrayGetP
(
array
,
i
)))
{
if
(
!
addItem
(
jArray
,
func
,
isPoint
?
taosArrayGetP
(
array
,
i
)
:
taosArrayGet
(
array
,
i
)))
{
return
false
;
}
}
...
...
@@ -78,11 +78,19 @@ static bool addArray(cJSON* json, const char* name, FToJson func, const SArray*
return
true
;
}
static
bool
fromArray
(
const
cJSON
*
json
,
const
char
*
name
,
FFromJson
func
,
SArray
**
array
,
int32_t
itemSize
)
{
static
bool
addInlineArray
(
cJSON
*
json
,
const
char
*
name
,
FToJson
func
,
const
SArray
*
array
)
{
return
addTarray
(
json
,
name
,
func
,
array
,
false
);
}
static
bool
addArray
(
cJSON
*
json
,
const
char
*
name
,
FToJson
func
,
const
SArray
*
array
)
{
return
addTarray
(
json
,
name
,
func
,
array
,
true
);
}
static
bool
fromTarray
(
const
cJSON
*
json
,
const
char
*
name
,
FFromJson
func
,
SArray
**
array
,
int32_t
itemSize
,
bool
isPoint
)
{
const
cJSON
*
jArray
=
cJSON_GetObjectItem
(
json
,
name
);
int32_t
size
=
(
NULL
==
jArray
?
0
:
cJSON_GetArraySize
(
jArray
));
if
(
size
>
0
)
{
*
array
=
taosArrayInit
(
size
,
POINTER_BYTES
);
*
array
=
taosArrayInit
(
size
,
isPoint
?
POINTER_BYTES
:
itemSize
);
if
(
NULL
==
*
array
)
{
return
false
;
}
...
...
@@ -92,11 +100,19 @@ static bool fromArray(const cJSON* json, const char* name, FFromJson func, SArra
if
(
NULL
==
item
||
!
func
(
cJSON_GetArrayItem
(
jArray
,
i
),
item
))
{
return
false
;
}
taosArrayPush
(
*
array
,
&
item
);
taosArrayPush
(
*
array
,
isPoint
?
&
item
:
item
);
}
return
true
;
}
static
bool
fromInlineArray
(
const
cJSON
*
json
,
const
char
*
name
,
FFromJson
func
,
SArray
**
array
,
int32_t
itemSize
)
{
return
fromTarray
(
json
,
name
,
func
,
array
,
itemSize
,
false
);
}
static
bool
fromArray
(
const
cJSON
*
json
,
const
char
*
name
,
FFromJson
func
,
SArray
**
array
,
int32_t
itemSize
)
{
return
fromTarray
(
json
,
name
,
func
,
array
,
itemSize
,
true
);
}
static
bool
addRawArray
(
cJSON
*
json
,
const
char
*
name
,
FToJson
func
,
const
void
*
array
,
int32_t
itemSize
,
int32_t
size
)
{
if
(
size
>
0
)
{
cJSON
*
jArray
=
cJSON_AddArrayToObject
(
json
,
name
);
...
...
@@ -556,6 +572,32 @@ static bool epAddrFromJson(const cJSON* json, void* obj) {
return
true
;
}
static
const
char
*
jkNodeAddrId
=
"NodeId"
;
static
const
char
*
jkNodeAddrInUse
=
"InUse"
;
static
const
char
*
jkNodeAddrEpAddrs
=
"EpAddrs"
;
static
bool
nodeAddrToJson
(
const
void
*
obj
,
cJSON
*
json
)
{
const
SQueryNodeAddr
*
ep
=
(
const
SQueryNodeAddr
*
)
obj
;
bool
res
=
cJSON_AddNumberToObject
(
json
,
jkNodeAddrId
,
ep
->
nodeId
);
if
(
res
)
{
res
=
cJSON_AddNumberToObject
(
json
,
jkNodeAddrInUse
,
ep
->
inUse
);
}
if
(
res
)
{
res
=
addRawArray
(
json
,
jkNodeAddrEpAddrs
,
epAddrToJson
,
ep
->
epAddr
,
ep
->
numOfEps
,
sizeof
(
SEpAddrMsg
));
}
return
res
;
}
static
bool
nodeAddrFromJson
(
const
cJSON
*
json
,
void
*
obj
)
{
SQueryNodeAddr
*
ep
=
(
SQueryNodeAddr
*
)
obj
;
ep
->
nodeId
=
getNumber
(
json
,
jkNodeAddrId
);
ep
->
inUse
=
getNumber
(
json
,
jkNodeAddrInUse
);
int32_t
numOfEps
=
0
;
bool
res
=
fromRawArray
(
json
,
jkNodeAddrEpAddrs
,
nodeAddrFromJson
,
&
ep
->
epAddr
,
sizeof
(
SEpAddrMsg
),
&
numOfEps
);
ep
->
numOfEps
=
numOfEps
;
return
res
;
}
static
const
char
*
jkExchangeNodeSrcTemplateId
=
"SrcTemplateId"
;
static
const
char
*
jkExchangeNodeSrcEndPoints
=
"SrcEndPoints"
;
...
...
@@ -563,7 +605,7 @@ static bool exchangeNodeToJson(const void* obj, cJSON* json) {
const
SExchangePhyNode
*
exchange
=
(
const
SExchangePhyNode
*
)
obj
;
bool
res
=
cJSON_AddNumberToObject
(
json
,
jkExchangeNodeSrcTemplateId
,
exchange
->
srcTemplateId
);
if
(
res
)
{
res
=
add
Array
(
json
,
jkExchangeNodeSrcEndPoints
,
ep
AddrToJson
,
exchange
->
pSrcEndPoints
);
res
=
add
InlineArray
(
json
,
jkExchangeNodeSrcEndPoints
,
node
AddrToJson
,
exchange
->
pSrcEndPoints
);
}
return
res
;
}
...
...
@@ -571,7 +613,7 @@ static bool exchangeNodeToJson(const void* obj, cJSON* json) {
static
bool
exchangeNodeFromJson
(
const
cJSON
*
json
,
void
*
obj
)
{
SExchangePhyNode
*
exchange
=
(
SExchangePhyNode
*
)
obj
;
exchange
->
srcTemplateId
=
getNumber
(
json
,
jkExchangeNodeSrcTemplateId
);
return
from
Array
(
json
,
jkExchangeNodeSrcEndPoints
,
epAddrFromJson
,
&
exchange
->
pSrcEndPoints
,
sizeof
(
SEpAddrMsg
));
return
from
InlineArray
(
json
,
jkExchangeNodeSrcEndPoints
,
nodeAddrFromJson
,
&
exchange
->
pSrcEndPoints
,
sizeof
(
SQueryNodeAddr
));
}
static
bool
specificPhyNodeToJson
(
const
void
*
obj
,
cJSON
*
json
)
{
...
...
@@ -803,7 +845,6 @@ static cJSON* subplanToJson(const SSubplan* subplan) {
if
(
res
)
{
res
=
addObject
(
jSubplan
,
jkSubplanDataSink
,
dataSinkToJson
,
subplan
->
pDataSink
);
}
if
(
!
res
)
{
cJSON_Delete
(
jSubplan
);
return
NULL
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录