Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
b8954ae1
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看板
提交
b8954ae1
编写于
3月 21, 2022
作者:
H
Hongze Cheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
more TDB
上级
8becb542
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
13 addition
and
27 deletion
+13
-27
source/libs/tdb/src/db/tdbBtree.c
source/libs/tdb/src/db/tdbBtree.c
+1
-27
source/libs/tdb/src/page/tdbPage.c
source/libs/tdb/src/page/tdbPage.c
+12
-0
未找到文件。
source/libs/tdb/src/db/tdbBtree.c
浏览文件 @
b8954ae1
...
...
@@ -462,29 +462,6 @@ typedef struct {
SPage
*
pNewPages
[
5
];
}
SBtreeBalanceHelper
;
static
int
tdbBtreeCopyPageContent
(
SPage
*
pFrom
,
SPage
*
pTo
)
{
#if 0
int nCells = TDB_PAGE_TOTAL_CELLS(pFrom);
int cCells = TDB_PAGE_CCELLS(pFrom);
int fCell = TDB_PAGE_FCELL(pFrom);
int nFree = TDB_PAGE_NFREE(pFrom);
pTo->pFreeStart = pTo->pCellIdx + nCells * pFrom->pPageMethods->szOffset;
memcpy(pTo->pCellIdx, pFrom->pCellIdx, nCells * pFrom->pPageMethods->szOffset);
pTo->pFreeEnd = (u8 *)pTo->pPageFtr - (u8 *)(pFrom->pPageFtr) + pFrom->pFreeEnd;
memcpy(pTo->pFreeEnd, pFrom->pFreeEnd, (u8 *)pFrom->pPageFtr - pFrom->pFreeEnd);
TDB_PAGE_NCELLS_SET(pTo, nCells);
TDB_PAGE_CCELLS_SET(pTo, cCells);
TDB_PAGE_FCELL_SET(pTo, fCell);
TDB_PAGE_NFREE_SET(pTo, nFree);
// TODO: update other fields
#endif
return
0
;
}
static
int
tdbBtreeBalanceDeeper
(
SBTree
*
pBt
,
SPage
*
pRoot
,
SPage
**
ppChild
)
{
SPager
*
pPager
;
SPage
*
pChild
;
...
...
@@ -503,10 +480,7 @@ static int tdbBtreeBalanceDeeper(SBTree *pBt, SPage *pRoot, SPage **ppChild) {
}
// Copy the root page content to the child page
ret
=
tdbBtreeCopyPageContent
(
pRoot
,
pChild
);
if
(
ret
<
0
)
{
return
-
1
;
}
tdbPageCopy
(
pRoot
,
pChild
);
pChild
->
nOverflow
=
pRoot
->
nOverflow
;
for
(
int
i
=
0
;
i
<
pChild
->
nOverflow
;
i
++
)
{
...
...
source/libs/tdb/src/page/tdbPage.c
浏览文件 @
b8954ae1
...
...
@@ -208,6 +208,8 @@ int tdbPageDropCell(SPage *pPage, int idx) {
}
void
tdbPageCopy
(
SPage
*
pFromPage
,
SPage
*
pToPage
)
{
int
delta
,
nFree
;
pToPage
->
pFreeStart
=
pToPage
->
pPageHdr
+
(
pFromPage
->
pFreeStart
-
pFromPage
->
pPageHdr
);
pToPage
->
pFreeEnd
=
(
u8
*
)(
pToPage
->
pPageFtr
)
-
((
u8
*
)
pFromPage
->
pPageFtr
-
pFromPage
->
pFreeEnd
);
...
...
@@ -215,6 +217,16 @@ void tdbPageCopy(SPage *pFromPage, SPage *pToPage) {
memcpy
(
pToPage
->
pPageHdr
,
pFromPage
->
pPageHdr
,
pFromPage
->
pFreeStart
-
pFromPage
->
pPageHdr
);
memcpy
(
pToPage
->
pFreeEnd
,
pFromPage
->
pFreeEnd
,
(
u8
*
)
pFromPage
->
pPageFtr
-
pFromPage
->
pFreeEnd
);
ASSERT
(
TDB_PAGE_CCELLS
(
pToPage
)
==
pToPage
->
pFreeEnd
-
pToPage
->
pData
);
delta
=
(
pToPage
->
pPageHdr
-
pToPage
->
pAmHdr
)
-
(
pFromPage
->
pPageHdr
-
pFromPage
->
pAmHdr
);
if
(
delta
!=
0
)
{
nFree
=
TDB_PAGE_NFREE
(
pFromPage
);
TDB_PAGE_NFREE_SET
(
pToPage
,
nFree
-
delta
);
}
// TODO: do we need to copy the overflow part ???
}
static
int
tdbPageAllocate
(
SPage
*
pPage
,
int
szCell
,
SCell
**
ppCell
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录