Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
f77d33dc
T
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
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看板
提交
f77d33dc
编写于
2月 15, 2022
作者:
H
Hongze Cheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
more TDB
上级
f44954b3
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
48 addition
and
12 deletion
+48
-12
source/libs/tdb/src/db/tdb.c
source/libs/tdb/src/db/tdb.c
+35
-6
source/libs/tdb/src/db/tdbEnv.c
source/libs/tdb/src/db/tdbEnv.c
+3
-1
source/libs/tdb/src/db/tdbPgFile.c
source/libs/tdb/src/db/tdbPgFile.c
+3
-2
source/libs/tdb/src/inc/tdbEnv.h
source/libs/tdb/src/inc/tdbEnv.h
+3
-2
source/libs/tdb/src/inc/tdbInt.h
source/libs/tdb/src/inc/tdbInt.h
+3
-0
source/libs/tdb/src/inc/tdbPgFile.h
source/libs/tdb/src/inc/tdbPgFile.h
+1
-1
未找到文件。
source/libs/tdb/src/db/tdb.c
浏览文件 @
f77d33dc
...
...
@@ -16,7 +16,7 @@
#include "tdbInt.h"
struct
STDb
{
char
*
dbname
;
// dbname
;
char
dbname
[
TDB_MAX_DBNAME_LEN
]
;
SBTree
*
pBt
;
// current access method (may extend)
SPgFile
*
pPgFile
;
// backend page file this DB is using
TENV
*
pEnv
;
// TENV containing the DB
...
...
@@ -63,16 +63,44 @@ int tdbOpen(TDB *pDb, const char *fname, const char *dbname, TENV *pEnv) {
SPgFile
*
pPgFile
;
SPgCache
*
pPgCache
;
SBTree
*
pBt
;
bool
fileExist
;
size_t
dbNameLen
;
char
dbfname
[
128
];
// TODO: make this as a macro or malloc on the heap
ASSERT
(
pDb
!=
NULL
);
ASSERT
(
fname
!=
NULL
);
// TODO: Here we simply put an assert here. In the future, make `pEnv`
// can be set as NULL.
ASSERT
(
pEnv
!=
NULL
);
// check the DB name
dbNameLen
=
0
;
if
(
dbname
)
{
dbNameLen
=
strlen
(
dbname
);
if
(
dbNameLen
>=
TDB_MAX_DBNAME_LEN
)
{
return
-
1
;
}
memcpy
(
pDb
->
dbname
,
dbname
,
dbNameLen
);
}
// Create a default ENV if pEnv is not set
if
(
pEnv
==
NULL
)
{
// if ((ret = tdbEnvOpen(&pEnv)) != 0) {
// return -1;
// }
pDb
->
dbname
[
dbNameLen
]
=
'\0'
;
// open pPgFile or get from the env
snprintf
(
dbfname
,
128
,
"%s/%s"
,
tdbEnvGetRootDir
(
pEnv
),
fname
);
fileExist
=
(
tdbCheckFileAccess
(
fname
,
TDB_F_OK
)
==
0
);
if
(
fileExist
)
{
// TODO
}
else
{
ret
=
pgFileOpen
(
&
pPgFile
,
dbfname
,
pEnv
);
if
(
ret
!=
0
)
{
// TODO: handle error
return
-
1
;
}
// Create and open the page file
}
#if 0
pDb->pEnv = pEnv;
// register DB to ENV
...
...
@@ -104,6 +132,7 @@ int tdbOpen(TDB *pDb, const char *fname, const char *dbname, TENV *pEnv) {
}
pDb->pBt = pBt;
#endif
return
0
;
}
...
...
source/libs/tdb/src/db/tdbEnv.c
浏览文件 @
f77d33dc
...
...
@@ -124,4 +124,6 @@ int tdbEnvBeginTxn(TENV *pEnv) {
int
tdbEnvCommit
(
TENV
*
pEnv
)
{
// TODO
return
0
;
}
\ No newline at end of file
}
const
char
*
tdbEnvGetRootDir
(
TENV
*
pEnv
)
{
return
pEnv
->
rootDir
;
}
source/libs/tdb/src/db/tdbPgFile.c
浏览文件 @
f77d33dc
...
...
@@ -17,8 +17,9 @@
static
int
pgFileRead
(
SPgFile
*
pPgFile
,
pgno_t
pgno
,
uint8_t
*
pData
);
int
pgFileOpen
(
SPgFile
**
ppPgFile
,
const
char
*
fname
,
SPgCache
*
pPgCache
)
{
SPgFile
*
pPgFile
;
int
pgFileOpen
(
SPgFile
**
ppPgFile
,
const
char
*
fname
,
TENV
*
pEnv
)
{
SPgFile
*
pPgFile
;
SPgCache
*
pPgCache
;
*
ppPgFile
=
NULL
;
...
...
source/libs/tdb/src/inc/tdbEnv.h
浏览文件 @
f77d33dc
...
...
@@ -20,8 +20,9 @@
extern
"C"
{
#endif
SPgFile
*
tdbEnvGetPageFile
(
TENV
*
pEnv
,
const
uint8_t
fileid
[]);
SPgCache
*
tdbEnvGetPgCache
(
TENV
*
pEnv
);
const
char
*
tdbEnvGetRootDir
(
TENV
*
pEnv
);
SPgFile
*
tdbEnvGetPageFile
(
TENV
*
pEnv
,
const
uint8_t
fileid
[]);
SPgCache
*
tdbEnvGetPgCache
(
TENV
*
pEnv
);
#ifdef __cplusplus
}
...
...
source/libs/tdb/src/inc/tdbInt.h
浏览文件 @
f77d33dc
...
...
@@ -76,6 +76,9 @@ typedef pgsz_t pgoff_t;
// cache
#define TDB_DEFAULT_CACHE_SIZE (256 * 4096) // 1M
// dbname
#define TDB_MAX_DBNAME_LEN 24
// tdb_log
#define tdbError(var)
...
...
source/libs/tdb/src/inc/tdbPgFile.h
浏览文件 @
f77d33dc
...
...
@@ -42,7 +42,7 @@ struct SPgFile {
TDB
*
pDb
;
// For a SPgFile for multiple databases, this is the <dbname, pgno> mapping DB.
};
int
pgFileOpen
(
SPgFile
**
ppPgFile
,
const
char
*
fname
,
SPgCache
*
pPgCache
);
int
pgFileOpen
(
SPgFile
**
ppPgFile
,
const
char
*
fname
,
TENV
*
pEnv
);
int
pgFileClose
(
SPgFile
*
pPgFile
);
SPage
*
pgFileFetch
(
SPgFile
*
pPgFile
,
pgno_t
pgno
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录