Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
3c4237af
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22017
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看板
提交
3c4237af
编写于
2月 24, 2022
作者:
H
Hongze Cheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
more tdb
上级
20845ce4
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
52 addition
and
1 deletion
+52
-1
source/libs/tdb/src/db/tdbPFile.c
source/libs/tdb/src/db/tdbPFile.c
+25
-1
source/libs/tdb/src/db/tdbUtil.c
source/libs/tdb/src/db/tdbUtil.c
+25
-0
source/libs/tdb/src/inc/tdbUtil.h
source/libs/tdb/src/inc/tdbUtil.h
+2
-0
未找到文件。
source/libs/tdb/src/db/tdbPFile.c
浏览文件 @
3c4237af
...
...
@@ -18,6 +18,7 @@
struct
SPFile
{
char
*
dbFileName
;
char
*
jFileName
;
int
pageSize
;
uint8_t
fid
[
TDB_FILE_ID_LEN
];
int
fd
;
int
jfd
;
...
...
@@ -26,6 +27,8 @@ struct SPFile {
SPgno
dbOrigSize
;
};
static
int
tdbPFileReadPage
(
SPFile
*
pFile
,
SPgHdr
*
pPage
);
int
tdbPFileOpen
(
SPCache
*
pCache
,
const
char
*
fileName
,
SPFile
**
ppFile
)
{
uint8_t
*
pPtr
;
SPFile
*
pFile
;
...
...
@@ -81,7 +84,13 @@ SPgHdr *tdbPFileGet(SPFile *pFile, SPgno pgno) {
}
tdbPCacheFetchFinish
(
pFile
->
pCache
,
pPage
);
if
(
true
/* not load from the file, then load the content from the file*/
)
{
if
(
pgno
>
pFile
->
dbFileSize
/*TODO*/
)
{
memset
(
pPage
->
pData
,
0
,
pFile
->
pageSize
);
}
else
{
if
(
tdbPFileReadPage
(
pFile
,
pPage
)
<
0
)
{
// TODO: handle error
return
NULL
;
}
}
return
pPage
;
...
...
@@ -100,4 +109,19 @@ int tdbPFileCommit(SPFile *pFile) {
int
tdbPFileRollback
(
SPFile
*
pFile
)
{
// TODO
return
0
;
}
static
int
tdbPFileReadPage
(
SPFile
*
pFile
,
SPgHdr
*
pPage
)
{
i64
offset
;
int
ret
;
ASSERT
(
memcmp
(
pFile
->
fid
,
pPage
->
pgid
.
fileid
,
TDB_FILE_ID_LEN
)
==
0
);
offset
=
(
pPage
->
pgid
.
pgno
-
1
)
*
(
i64
)(
pFile
->
pageSize
);
ret
=
tdbPRead
(
pFile
->
fd
,
pPage
->
pData
,
pFile
->
pageSize
,
offset
);
if
(
ret
<
0
)
{
// TODO: handle error
return
-
1
;
}
return
0
;
}
\ No newline at end of file
source/libs/tdb/src/db/tdbUtil.c
浏览文件 @
3c4237af
...
...
@@ -64,4 +64,29 @@ int tdbGetFileSize(const char *fname, int pgSize, SPgno *pSize) {
*
pSize
=
st
.
st_size
/
pgSize
;
return
0
;
}
int
tdbPRead
(
int
fd
,
void
*
pData
,
int
count
,
i64
offset
)
{
void
*
pBuf
;
int
nbytes
;
i64
ioffset
;
int
iread
;
pBuf
=
pData
;
nbytes
=
count
;
ioffset
=
offset
;
while
(
nbytes
>
0
)
{
iread
=
pread
(
fd
,
pBuf
,
nbytes
,
ioffset
);
if
(
iread
<
0
)
{
/* TODO */
}
else
if
(
iread
==
0
)
{
return
(
count
-
iread
);
}
nbytes
=
nbytes
-
iread
;
pBuf
=
(
void
*
)((
u8
*
)
pBuf
+
iread
);
ioffset
+=
iread
;
}
return
count
;
}
\ No newline at end of file
source/libs/tdb/src/inc/tdbUtil.h
浏览文件 @
3c4237af
...
...
@@ -37,6 +37,8 @@ int tdbCheckFileAccess(const char *pathname, int mode);
int
tdbGetFileSize
(
const
char
*
fname
,
int
pgSize
,
SPgno
*
pSize
);
int
tdbPRead
(
int
fd
,
void
*
pData
,
int
count
,
i64
offset
);
#ifdef __cplusplus
}
#endif
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录