Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
74f75893
T
TDengine
项目概览
taosdata
/
TDengine
大约 1 年 前同步成功
通知
1184
Star
22015
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
74f75893
编写于
9月 19, 2022
作者:
X
Xiaoyu Wang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
enh: physical plan serialization supports cross-platform
上级
70bc3e69
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
111 addition
and
22 deletion
+111
-22
source/libs/nodes/src/nodesMsgFuncs.c
source/libs/nodes/src/nodesMsgFuncs.c
+109
-21
source/libs/planner/test/planTestUtil.cpp
source/libs/planner/test/planTestUtil.cpp
+2
-1
未找到文件。
source/libs/nodes/src/nodesMsgFuncs.c
浏览文件 @
74f75893
...
...
@@ -17,6 +17,14 @@
#include "plannodes.h"
#include "tdatablock.h"
#define htonll(x) \
(((int64_t)x & 0x00000000000000ff) << 7 * 8) | (((int64_t)x & 0x000000000000ff00) << 5 * 8) | \
(((int64_t)x & 0x0000000000ff0000) << 3 * 8) | (((int64_t)x & 0x00000000ff000000) << 1 * 8) | \
(((int64_t)x & 0x000000ff00000000) >> 1 * 8) | (((int64_t)x & 0x0000ff0000000000) >> 3 * 8) | \
(((int64_t)x & 0x00ff000000000000) >> 5 * 8) | (((int64_t)x & 0xff00000000000000) >> 7 * 8)
#define ntohll(x) htonll(x)
#define NODES_MSG_DEFAULT_LEN 1024
#define TLV_TYPE_ARRAY_ELEM 0
...
...
@@ -86,8 +94,8 @@ static int32_t tlvEncodeImpl(STlvEncoder* pEncoder, int16_t type, const void* pV
pEncoder
->
allocSize
=
pEncoder
->
allocSize
*
2
;
}
STlv
*
pTlv
=
(
STlv
*
)(
pEncoder
->
pBuf
+
pEncoder
->
offset
);
pTlv
->
type
=
type
;
pTlv
->
len
=
len
;
pTlv
->
type
=
htons
(
type
)
;
pTlv
->
len
=
htonl
(
len
)
;
memcpy
(
pTlv
->
value
,
pValue
,
len
);
pEncoder
->
offset
+=
tlvLen
;
++
(
pEncoder
->
tlvCount
);
...
...
@@ -117,26 +125,32 @@ static int32_t tlvEncodeValueI8(STlvEncoder* pEncoder, int8_t value) {
}
static
int32_t
tlvEncodeI16
(
STlvEncoder
*
pEncoder
,
int16_t
type
,
int16_t
value
)
{
value
=
htons
(
value
);
return
tlvEncodeImpl
(
pEncoder
,
type
,
&
value
,
sizeof
(
value
));
}
static
int32_t
tlvEncodeValueI16
(
STlvEncoder
*
pEncoder
,
int16_t
value
)
{
value
=
htons
(
value
);
return
tlvEncodeValueImpl
(
pEncoder
,
&
value
,
sizeof
(
value
));
}
static
int32_t
tlvEncodeI32
(
STlvEncoder
*
pEncoder
,
int16_t
type
,
int32_t
value
)
{
value
=
htonl
(
value
);
return
tlvEncodeImpl
(
pEncoder
,
type
,
&
value
,
sizeof
(
value
));
}
static
int32_t
tlvEncodeValueI32
(
STlvEncoder
*
pEncoder
,
int32_t
value
)
{
value
=
htonl
(
value
);
return
tlvEncodeValueImpl
(
pEncoder
,
&
value
,
sizeof
(
value
));
}
static
int32_t
tlvEncodeI64
(
STlvEncoder
*
pEncoder
,
int16_t
type
,
int64_t
value
)
{
value
=
htonll
(
value
);
return
tlvEncodeImpl
(
pEncoder
,
type
,
&
value
,
sizeof
(
value
));
}
static
int32_t
tlvEncodeValueI64
(
STlvEncoder
*
pEncoder
,
int64_t
value
)
{
value
=
htonll
(
value
);
return
tlvEncodeValueImpl
(
pEncoder
,
&
value
,
sizeof
(
value
));
}
...
...
@@ -149,34 +163,44 @@ static int32_t tlvEncodeValueU8(STlvEncoder* pEncoder, uint8_t value) {
}
static
int32_t
tlvEncodeU16
(
STlvEncoder
*
pEncoder
,
int16_t
type
,
uint16_t
value
)
{
value
=
htons
(
value
);
return
tlvEncodeImpl
(
pEncoder
,
type
,
&
value
,
sizeof
(
value
));
}
static
int32_t
tlvEncodeValueU16
(
STlvEncoder
*
pEncoder
,
uint16_t
value
)
{
value
=
htons
(
value
);
return
tlvEncodeValueImpl
(
pEncoder
,
&
value
,
sizeof
(
value
));
}
static
int32_t
tlvEncodeU64
(
STlvEncoder
*
pEncoder
,
int16_t
type
,
uint64_t
value
)
{
value
=
htonll
(
value
);
return
tlvEncodeImpl
(
pEncoder
,
type
,
&
value
,
sizeof
(
value
));
}
static
int32_t
tlvEncodeValueU64
(
STlvEncoder
*
pEncoder
,
uint64_t
value
)
{
value
=
htonll
(
value
);
return
tlvEncodeValueImpl
(
pEncoder
,
&
value
,
sizeof
(
value
));
}
static
int32_t
tlvEncodeDouble
(
STlvEncoder
*
pEncoder
,
int16_t
type
,
double
value
)
{
return
tlvEncodeImpl
(
pEncoder
,
type
,
&
value
,
sizeof
(
value
));
int64_t
temp
=
*
(
int64_t
*
)
&
value
;
temp
=
htonll
(
temp
);
return
tlvEncodeImpl
(
pEncoder
,
type
,
&
temp
,
sizeof
(
temp
));
}
static
int32_t
tlvEncodeValueDouble
(
STlvEncoder
*
pEncoder
,
double
value
)
{
return
tlvEncodeValueImpl
(
pEncoder
,
&
value
,
sizeof
(
value
));
int64_t
temp
=
*
(
int64_t
*
)
&
value
;
temp
=
htonll
(
temp
);
return
tlvEncodeValueImpl
(
pEncoder
,
&
temp
,
sizeof
(
temp
));
}
static
int32_t
tlvEncodeEnum
(
STlvEncoder
*
pEncoder
,
int16_t
type
,
int32_t
value
)
{
value
=
htonl
(
value
);
return
tlvEncodeImpl
(
pEncoder
,
type
,
&
value
,
sizeof
(
value
));
}
static
int32_t
tlvEncodeValueEnum
(
STlvEncoder
*
pEncoder
,
int32_t
value
)
{
value
=
htonl
(
value
);
return
tlvEncodeValueImpl
(
pEncoder
,
&
value
,
sizeof
(
value
));
}
...
...
@@ -197,7 +221,7 @@ static int32_t tlvEncodeCStr(STlvEncoder* pEncoder, int16_t type, const char* pV
static
int32_t
tlvEncodeValueCStr
(
STlvEncoder
*
pEncoder
,
const
char
*
pValue
)
{
int16_t
len
=
strlen
(
pValue
);
int32_t
code
=
tlvEncodeValueI
mpl
(
pEncoder
,
&
len
,
sizeof
(
len
)
);
int32_t
code
=
tlvEncodeValueI
16
(
pEncoder
,
len
);
if
(
TSDB_CODE_SUCCESS
==
code
)
{
code
=
tlvEncodeValueImpl
(
pEncoder
,
pValue
,
len
);
}
...
...
@@ -218,8 +242,8 @@ static int32_t tlvEncodeObj(STlvEncoder* pEncoder, int16_t type, FToMsg func, co
int32_t
code
=
func
(
pObj
,
pEncoder
);
if
(
TSDB_CODE_SUCCESS
==
code
)
{
STlv
*
pTlv
=
(
STlv
*
)(
pEncoder
->
pBuf
+
start
);
pTlv
->
type
=
type
;
pTlv
->
len
=
pEncoder
->
offset
-
start
-
sizeof
(
STlv
);
pTlv
->
type
=
htons
(
type
)
;
pTlv
->
len
=
htonl
(
pEncoder
->
offset
-
start
-
sizeof
(
STlv
)
);
}
++
(
pEncoder
->
tlvCount
);
return
code
;
...
...
@@ -236,8 +260,8 @@ static int32_t tlvEncodeObjArray(STlvEncoder* pEncoder, int16_t type, FToMsg fun
}
if
(
TSDB_CODE_SUCCESS
==
code
)
{
STlv
*
pTlv
=
(
STlv
*
)(
pEncoder
->
pBuf
+
start
);
pTlv
->
type
=
type
;
pTlv
->
len
=
pEncoder
->
offset
-
start
-
sizeof
(
STlv
);
pTlv
->
type
=
htons
(
type
)
;
pTlv
->
len
=
htonl
(
pEncoder
->
offset
-
start
-
sizeof
(
STlv
)
);
}
}
return
code
;
...
...
@@ -259,6 +283,8 @@ static int32_t tlvGetNextTlv(STlvDecoder* pDecoder, STlv** pTlv) {
}
*
pTlv
=
(
STlv
*
)(
pDecoder
->
pBuf
+
pDecoder
->
offset
);
(
*
pTlv
)
->
type
=
ntohs
((
*
pTlv
)
->
type
);
(
*
pTlv
)
->
len
=
ntohl
((
*
pTlv
)
->
len
);
if
((
*
pTlv
)
->
len
+
pDecoder
->
offset
>
pDecoder
->
bufSize
)
{
return
TSDB_CODE_FAILED
;
}
...
...
@@ -291,22 +317,52 @@ static int32_t tlvDecodeValueI8(STlvDecoder* pDecoder, int8_t* pValue) {
return
tlvDecodeValueImpl
(
pDecoder
,
pValue
,
sizeof
(
*
pValue
));
}
static
int32_t
tlvDecodeI16
(
STlv
*
pTlv
,
int16_t
*
pValue
)
{
return
tlvDecodeImpl
(
pTlv
,
pValue
,
sizeof
(
*
pValue
));
}
static
int32_t
tlvDecodeI16
(
STlv
*
pTlv
,
int16_t
*
pValue
)
{
int32_t
code
=
tlvDecodeImpl
(
pTlv
,
pValue
,
sizeof
(
*
pValue
));
if
(
TSDB_CODE_SUCCESS
==
code
)
{
*
pValue
=
ntohs
(
*
pValue
);
}
return
code
;
}
static
int32_t
tlvDecodeValueI16
(
STlvDecoder
*
pDecoder
,
int16_t
*
pValue
)
{
return
tlvDecodeValueImpl
(
pDecoder
,
pValue
,
sizeof
(
*
pValue
));
int32_t
code
=
tlvDecodeValueImpl
(
pDecoder
,
pValue
,
sizeof
(
*
pValue
));
if
(
TSDB_CODE_SUCCESS
==
code
)
{
*
pValue
=
ntohs
(
*
pValue
);
}
return
code
;
}
static
int32_t
tlvDecodeI32
(
STlv
*
pTlv
,
int32_t
*
pValue
)
{
return
tlvDecodeImpl
(
pTlv
,
pValue
,
sizeof
(
*
pValue
));
}
static
int32_t
tlvDecodeI32
(
STlv
*
pTlv
,
int32_t
*
pValue
)
{
int32_t
code
=
tlvDecodeImpl
(
pTlv
,
pValue
,
sizeof
(
*
pValue
));
if
(
TSDB_CODE_SUCCESS
==
code
)
{
*
pValue
=
ntohl
(
*
pValue
);
}
return
code
;
}
static
int32_t
tlvDecodeValueI32
(
STlvDecoder
*
pDecoder
,
int32_t
*
pValue
)
{
return
tlvDecodeValueImpl
(
pDecoder
,
pValue
,
sizeof
(
*
pValue
));
int32_t
code
=
tlvDecodeValueImpl
(
pDecoder
,
pValue
,
sizeof
(
*
pValue
));
if
(
TSDB_CODE_SUCCESS
==
code
)
{
*
pValue
=
ntohl
(
*
pValue
);
}
return
code
;
}
static
int32_t
tlvDecodeI64
(
STlv
*
pTlv
,
int64_t
*
pValue
)
{
return
tlvDecodeImpl
(
pTlv
,
pValue
,
sizeof
(
*
pValue
));
}
static
int32_t
tlvDecodeI64
(
STlv
*
pTlv
,
int64_t
*
pValue
)
{
int32_t
code
=
tlvDecodeImpl
(
pTlv
,
pValue
,
sizeof
(
*
pValue
));
if
(
TSDB_CODE_SUCCESS
==
code
)
{
*
pValue
=
ntohll
(
*
pValue
);
}
return
code
;
}
static
int32_t
tlvDecodeValueI64
(
STlvDecoder
*
pDecoder
,
int64_t
*
pValue
)
{
return
tlvDecodeValueImpl
(
pDecoder
,
pValue
,
sizeof
(
*
pValue
));
int32_t
code
=
tlvDecodeValueImpl
(
pDecoder
,
pValue
,
sizeof
(
*
pValue
));
if
(
TSDB_CODE_SUCCESS
==
code
)
{
*
pValue
=
ntohll
(
*
pValue
);
}
return
code
;
}
static
int32_t
tlvDecodeU8
(
STlv
*
pTlv
,
uint8_t
*
pValue
)
{
return
tlvDecodeImpl
(
pTlv
,
pValue
,
sizeof
(
*
pValue
));
}
...
...
@@ -315,22 +371,54 @@ static int32_t tlvDecodeValueU8(STlvDecoder* pDecoder, uint8_t* pValue) {
return
tlvDecodeValueImpl
(
pDecoder
,
pValue
,
sizeof
(
*
pValue
));
}
static
int32_t
tlvDecodeU16
(
STlv
*
pTlv
,
uint16_t
*
pValue
)
{
return
tlvDecodeImpl
(
pTlv
,
pValue
,
sizeof
(
*
pValue
));
}
static
int32_t
tlvDecodeU16
(
STlv
*
pTlv
,
uint16_t
*
pValue
)
{
int32_t
code
=
tlvDecodeImpl
(
pTlv
,
pValue
,
sizeof
(
*
pValue
));
if
(
TSDB_CODE_SUCCESS
==
code
)
{
*
pValue
=
ntohs
(
*
pValue
);
}
return
code
;
}
static
int32_t
tlvDecodeValueU16
(
STlvDecoder
*
pDecoder
,
uint16_t
*
pValue
)
{
return
tlvDecodeValueImpl
(
pDecoder
,
pValue
,
sizeof
(
*
pValue
));
int32_t
code
=
tlvDecodeValueImpl
(
pDecoder
,
pValue
,
sizeof
(
*
pValue
));
if
(
TSDB_CODE_SUCCESS
==
code
)
{
*
pValue
=
ntohs
(
*
pValue
);
}
return
code
;
}
static
int32_t
tlvDecodeU64
(
STlv
*
pTlv
,
uint64_t
*
pValue
)
{
return
tlvDecodeImpl
(
pTlv
,
pValue
,
sizeof
(
*
pValue
));
}
static
int32_t
tlvDecodeU64
(
STlv
*
pTlv
,
uint64_t
*
pValue
)
{
int32_t
code
=
tlvDecodeImpl
(
pTlv
,
pValue
,
sizeof
(
*
pValue
));
if
(
TSDB_CODE_SUCCESS
==
code
)
{
*
pValue
=
ntohll
(
*
pValue
);
}
return
code
;
}
static
int32_t
tlvDecodeValueU64
(
STlvDecoder
*
pDecoder
,
uint64_t
*
pValue
)
{
return
tlvDecodeValueImpl
(
pDecoder
,
pValue
,
sizeof
(
*
pValue
));
int32_t
code
=
tlvDecodeValueImpl
(
pDecoder
,
pValue
,
sizeof
(
*
pValue
));
if
(
TSDB_CODE_SUCCESS
==
code
)
{
*
pValue
=
ntohll
(
*
pValue
);
}
return
code
;
}
static
int32_t
tlvDecodeDouble
(
STlv
*
pTlv
,
double
*
pValue
)
{
return
tlvDecodeImpl
(
pTlv
,
pValue
,
sizeof
(
*
pValue
));
}
static
int32_t
tlvDecodeDouble
(
STlv
*
pTlv
,
double
*
pValue
)
{
int64_t
temp
=
0
;
int32_t
code
=
tlvDecodeI64
(
pTlv
,
&
temp
);
if
(
TSDB_CODE_SUCCESS
==
code
)
{
*
pValue
=
*
(
double
*
)
&
temp
;
}
return
code
;
}
static
int32_t
tlvDecodeValueDouble
(
STlvDecoder
*
pDecoder
,
double
*
pValue
)
{
return
tlvDecodeValueImpl
(
pDecoder
,
pValue
,
sizeof
(
*
pValue
));
int64_t
temp
=
0
;
int32_t
code
=
tlvDecodeValueI64
(
pDecoder
,
&
temp
);
if
(
TSDB_CODE_SUCCESS
==
code
)
{
*
pValue
=
*
(
double
*
)
&
temp
;
}
return
code
;
}
static
int32_t
convertIntegerType
(
int32_t
value
,
void
*
pValue
,
int16_t
len
)
{
...
...
source/libs/planner/test/planTestUtil.cpp
浏览文件 @
74f75893
...
...
@@ -473,10 +473,11 @@ class PlannerTestBaseImpl {
cout
<<
"nodesNodeToMsg: "
<<
chrono
::
duration_cast
<
chrono
::
microseconds
>
(
chrono
::
steady_clock
::
now
()
-
start
).
count
()
<<
"us"
<<
endl
;
string
copyStr
(
pStr
,
len
);
SNode
*
pNode
=
NULL
;
char
*
pNewStr
=
NULL
;
int32_t
newlen
=
0
;
DO_WITH_THROW
(
nodesMsgToNode
,
pStr
,
len
,
&
pNode
)
DO_WITH_THROW
(
nodesMsgToNode
,
copyStr
.
c_str
()
,
len
,
&
pNode
)
DO_WITH_THROW
(
nodesNodeToMsg
,
pNode
,
&
pNewStr
,
&
newlen
)
if
(
newlen
!=
len
||
0
!=
memcmp
(
pStr
,
pNewStr
,
len
))
{
cout
<<
"nodesNodeToMsg error!!!!!!!!!!!!!! len = "
<<
len
<<
", newlen = "
<<
newlen
<<
endl
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录