Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
0902c02a
T
TDengine
项目概览
taosdata
/
TDengine
大约 2 年 前同步成功
通知
1192
Star
22018
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看板
提交
0902c02a
编写于
9月 19, 2022
作者:
H
Hongze Cheng
浏览文件
操作
浏览文件
下载
差异文件
Merge branch '3.0' of
https://github.com/taosdata/TDengine
into feat/stream_compression
上级
c90123c0
300f0c2c
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
158 addition
and
52 deletion
+158
-52
cmake/taostools_CMakeLists.txt.in
cmake/taostools_CMakeLists.txt.in
+1
-1
source/libs/nodes/src/nodesMsgFuncs.c
source/libs/nodes/src/nodesMsgFuncs.c
+149
-48
source/libs/planner/test/planTestUtil.cpp
source/libs/planner/test/planTestUtil.cpp
+2
-1
source/libs/tdb/src/db/tdbBtree.c
source/libs/tdb/src/db/tdbBtree.c
+4
-0
source/libs/tdb/src/db/tdbPager.c
source/libs/tdb/src/db/tdbPager.c
+2
-2
未找到文件。
cmake/taostools_CMakeLists.txt.in
浏览文件 @
0902c02a
...
...
@@ -2,7 +2,7 @@
# taos-tools
ExternalProject_Add(taos-tools
GIT_REPOSITORY https://github.com/taosdata/taos-tools.git
GIT_TAG
125c77a
GIT_TAG
509ec72
SOURCE_DIR "${TD_SOURCE_DIR}/tools/taos-tools"
BINARY_DIR ""
#BUILD_IN_SOURCE TRUE
...
...
source/libs/nodes/src/nodesMsgFuncs.c
浏览文件 @
0902c02a
...
...
@@ -17,6 +17,18 @@
#include "plannodes.h"
#include "tdatablock.h"
#ifndef htonll
#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)
#endif
#define NODES_MSG_DEFAULT_LEN 1024
#define TLV_TYPE_ARRAY_ELEM 0
...
...
@@ -86,8 +98,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 +129,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 +167,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 +225,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 +246,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 +264,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 +287,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 +321,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 +375,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
)
{
...
...
@@ -2462,33 +2554,54 @@ static int32_t msgToPhysiWindowNode(STlvDecoder* pDecoder, void* pObj) {
return
code
;
}
enum
{
PHY_INTERVAL_CODE_WINDOW
=
1
,
PHY_INTERVAL_CODE_INTERVAL
,
PHY_INTERVAL_CODE_OFFSET
,
PHY_INTERVAL_CODE_SLIDING
,
PHY_INTERVAL_CODE_INTERVAL_UNIT
,
PHY_INTERVAL_CODE_SLIDING_UNIT
};
enum
{
PHY_INTERVAL_CODE_WINDOW
=
1
,
PHY_INTERVAL_CODE_INLINE_ATTRS
};
static
int32_t
physiIntervalNodeInlineToMsg
(
const
void
*
pObj
,
STlvEncoder
*
pEncoder
)
{
const
SIntervalPhysiNode
*
pNode
=
(
const
SIntervalPhysiNode
*
)
pObj
;
int32_t
code
=
tlvEncodeValueI64
(
pEncoder
,
pNode
->
interval
);
if
(
TSDB_CODE_SUCCESS
==
code
)
{
code
=
tlvEncodeValueI64
(
pEncoder
,
pNode
->
offset
);
}
if
(
TSDB_CODE_SUCCESS
==
code
)
{
code
=
tlvEncodeValueI64
(
pEncoder
,
pNode
->
sliding
);
}
if
(
TSDB_CODE_SUCCESS
==
code
)
{
code
=
tlvEncodeValueI8
(
pEncoder
,
pNode
->
intervalUnit
);
}
if
(
TSDB_CODE_SUCCESS
==
code
)
{
code
=
tlvEncodeValueI8
(
pEncoder
,
pNode
->
slidingUnit
);
}
return
code
;
}
static
int32_t
physiIntervalNodeToMsg
(
const
void
*
pObj
,
STlvEncoder
*
pEncoder
)
{
const
SIntervalPhysiNode
*
pNode
=
(
const
SIntervalPhysiNode
*
)
pObj
;
int32_t
code
=
tlvEncodeObj
(
pEncoder
,
PHY_INTERVAL_CODE_WINDOW
,
physiWindowNodeToMsg
,
&
pNode
->
window
);
if
(
TSDB_CODE_SUCCESS
==
code
)
{
code
=
tlvEncode
I64
(
pEncoder
,
PHY_INTERVAL_CODE_INTERVAL
,
pNode
->
interval
);
code
=
tlvEncode
Obj
(
pEncoder
,
PHY_INTERVAL_CODE_INLINE_ATTRS
,
physiIntervalNodeInlineToMsg
,
pNode
);
}
return
code
;
}
static
int32_t
msgToPhysiIntervalNodeInline
(
STlvDecoder
*
pDecoder
,
void
*
pObj
)
{
SIntervalPhysiNode
*
pNode
=
(
SIntervalPhysiNode
*
)
pObj
;
int32_t
code
=
tlvDecodeValueI64
(
pDecoder
,
&
pNode
->
interval
);
if
(
TSDB_CODE_SUCCESS
==
code
)
{
code
=
tlv
EncodeI64
(
pEncoder
,
PHY_INTERVAL_CODE_OFFSET
,
pNode
->
offset
);
code
=
tlv
DecodeValueI64
(
pDecoder
,
&
pNode
->
offset
);
}
if
(
TSDB_CODE_SUCCESS
==
code
)
{
code
=
tlv
EncodeI64
(
pEncoder
,
PHY_INTERVAL_CODE_SLIDING
,
pNode
->
sliding
);
code
=
tlv
DecodeValueI64
(
pDecoder
,
&
pNode
->
sliding
);
}
if
(
TSDB_CODE_SUCCESS
==
code
)
{
code
=
tlv
EncodeI8
(
pEncoder
,
PHY_INTERVAL_CODE_INTERVAL_UNIT
,
pNode
->
intervalUnit
);
code
=
tlv
DecodeValueI8
(
pDecoder
,
&
pNode
->
intervalUnit
);
}
if
(
TSDB_CODE_SUCCESS
==
code
)
{
code
=
tlv
EncodeI8
(
pEncoder
,
PHY_INTERVAL_CODE_SLIDING_UNIT
,
pNode
->
slidingUnit
);
code
=
tlv
DecodeValueI8
(
pDecoder
,
&
pNode
->
slidingUnit
);
}
return
code
;
...
...
@@ -2504,20 +2617,8 @@ static int32_t msgToPhysiIntervalNode(STlvDecoder* pDecoder, void* pObj) {
case
PHY_INTERVAL_CODE_WINDOW
:
code
=
tlvDecodeObjFromTlv
(
pTlv
,
msgToPhysiWindowNode
,
&
pNode
->
window
);
break
;
case
PHY_INTERVAL_CODE_INTERVAL
:
code
=
tlvDecodeI64
(
pTlv
,
&
pNode
->
interval
);
break
;
case
PHY_INTERVAL_CODE_OFFSET
:
code
=
tlvDecodeI64
(
pTlv
,
&
pNode
->
offset
);
break
;
case
PHY_INTERVAL_CODE_SLIDING
:
code
=
tlvDecodeI64
(
pTlv
,
&
pNode
->
sliding
);
break
;
case
PHY_INTERVAL_CODE_INTERVAL_UNIT
:
code
=
tlvDecodeI8
(
pTlv
,
&
pNode
->
intervalUnit
);
break
;
case
PHY_INTERVAL_CODE_SLIDING_UNIT
:
code
=
tlvDecodeI8
(
pTlv
,
&
pNode
->
slidingUnit
);
case
PHY_INTERVAL_CODE_INLINE_ATTRS
:
code
=
tlvDecodeObjFromTlv
(
pTlv
,
msgToPhysiIntervalNodeInline
,
pNode
);
break
;
default:
break
;
...
...
source/libs/planner/test/planTestUtil.cpp
浏览文件 @
0902c02a
...
...
@@ -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
;
...
...
source/libs/tdb/src/db/tdbBtree.c
浏览文件 @
0902c02a
...
...
@@ -841,6 +841,10 @@ static int tdbBtreeBalanceNonRoot(SBTree *pBt, SPage *pParent, int idx, TXN *pTx
// copy content to the parent page
tdbBtreeInitPage
(
pParent
,
&
(
SBtreeInitPageArg
){.
flags
=
flags
,
.
pBt
=
pBt
},
0
);
tdbPageCopy
(
pNews
[
0
],
pParent
,
1
);
if
(
!
TDB_BTREE_PAGE_IS_LEAF
(
pNews
[
0
]))
{
((
SIntHdr
*
)(
pParent
->
pData
))
->
pgno
=
((
SIntHdr
*
)(
pNews
[
0
]
->
pData
))
->
pgno
;
}
}
for
(
int
i
=
0
;
i
<
3
;
i
++
)
{
...
...
source/libs/tdb/src/db/tdbPager.c
浏览文件 @
0902c02a
...
...
@@ -260,7 +260,7 @@ int tdbPagerCommit(SPager *pPager, TXN *pTxn) {
pPage
->
isDirty
=
0
;
//
tRBTreeDrop(&pPager->rbt, (SRBTreeNode *)pPage);
tRBTreeDrop
(
&
pPager
->
rbt
,
(
SRBTreeNode
*
)
pPage
);
tdbPCacheRelease
(
pPager
->
pCache
,
pPage
,
pTxn
);
}
...
...
@@ -353,7 +353,7 @@ int tdbPagerAbort(SPager *pPager, TXN *pTxn) {
pPage
->
isDirty
=
0
;
//
tRBTreeDrop(&pPager->rbt, (SRBTreeNode *)pPage);
tRBTreeDrop
(
&
pPager
->
rbt
,
(
SRBTreeNode
*
)
pPage
);
tdbPCacheRelease
(
pPager
->
pCache
,
pPage
,
pTxn
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录