Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
e3e78784
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
Fork
4786
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
1
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
TDengine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
1
Issue
1
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
e3e78784
编写于
3月 29, 2022
作者:
H
Hongze Cheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
more meta
上级
339bcb1f
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
72 addition
and
6 deletion
+72
-6
source/dnode/vnode/src/meta/metaTDBImpl.c
source/dnode/vnode/src/meta/metaTDBImpl.c
+72
-6
未找到文件。
source/dnode/vnode/src/meta/metaTDBImpl.c
浏览文件 @
e3e78784
...
...
@@ -27,6 +27,72 @@ struct SMetaDB {
TDB
*
pCtbIdx
;
};
typedef
struct
__attribute__
((
__packed__
))
{
tb_uid_t
uid
;
int32_t
sver
;
}
SSchemaDbKey
;
typedef
struct
{
char
*
name
;
tb_uid_t
uid
;
}
SNameIdxKey
;
typedef
struct
{
tb_uid_t
suid
;
tb_uid_t
uid
;
}
SCtbIdxKey
;
static
inline
int
metaUidCmpr
(
const
void
*
arg1
,
int
len1
,
const
void
*
arg2
,
int
len2
)
{
tb_uid_t
uid1
,
uid2
;
ASSERT
(
len1
==
sizeof
(
tb_uid_t
));
ASSERT
(
len2
==
sizeof
(
tb_uid_t
));
uid1
=
((
tb_uid_t
*
)
arg1
)[
0
];
uid2
=
((
tb_uid_t
*
)
arg2
)[
1
];
if
(
uid1
<
uid2
)
{
return
-
1
;
}
if
(
uid1
==
uid2
)
{
return
0
;
}
else
{
return
1
;
}
}
static
inline
int
metaSchemaKeyCmpr
(
const
void
*
arg1
,
int
len1
,
const
void
*
arg2
,
int
len2
)
{
int
c
;
SSchemaDbKey
*
pKey1
=
(
SSchemaDbKey
*
)
arg1
;
SSchemaDbKey
*
pKey2
=
(
SSchemaDbKey
*
)
arg2
;
c
=
metaUidCmpr
(
arg1
,
sizeof
(
tb_uid_t
),
arg2
,
sizeof
(
tb_uid_t
));
if
(
c
)
return
c
;
if
(
pKey1
->
sver
>
pKey2
->
sver
)
{
return
1
;
}
else
if
(
pKey1
->
sver
==
pKey2
->
sver
)
{
return
0
;
}
else
{
return
-
1
;
}
}
static
inline
int
metaNameIdxCmpr
(
const
void
*
arg1
,
int
len1
,
const
void
*
arg2
,
int
len2
)
{
return
strcmp
((
char
*
)
arg1
,
(
char
*
)
arg2
);
}
static
inline
int
metaCtbIdxCmpr
(
const
void
*
arg1
,
int
len1
,
const
void
*
arg2
,
int
len2
)
{
int
c
;
SCtbIdxKey
*
pKey1
=
(
SCtbIdxKey
*
)
arg1
;
SCtbIdxKey
*
pKey2
=
(
SCtbIdxKey
*
)
arg2
;
c
=
metaUidCmpr
(
arg1
,
sizeof
(
tb_uid_t
),
arg2
,
sizeof
(
tb_uid_t
));
if
(
c
)
return
c
;
return
metaUidCmpr
(
&
pKey1
->
uid
,
sizeof
(
tb_uid_t
),
&
pKey2
->
uid
,
sizeof
(
tb_uid_t
));
}
int
metaOpenDB
(
SMeta
*
pMeta
)
{
SMetaDB
*
pMetaDb
;
int
ret
;
...
...
@@ -48,7 +114,7 @@ int metaOpenDB(SMeta *pMeta) {
}
// open table DB
ret
=
tdbDbOpen
(
"table.db"
,
sizeof
(
tb_uid_t
),
TDB_VARIANT_LEN
,
NULL
/*TODO*/
,
pMetaDb
->
pEnv
,
&
(
pMetaDb
->
pTbDB
));
ret
=
tdbDbOpen
(
"table.db"
,
sizeof
(
tb_uid_t
),
TDB_VARIANT_LEN
,
metaUidCmpr
,
pMetaDb
->
pEnv
,
&
(
pMetaDb
->
pTbDB
));
if
(
ret
<
0
)
{
// TODO
ASSERT
(
0
);
...
...
@@ -56,7 +122,7 @@ int metaOpenDB(SMeta *pMeta) {
}
// open schema DB
ret
=
tdbDbOpen
(
"schema.db"
,
sizeof
(
tb_uid_t
)
+
sizeof
(
int32_t
),
TDB_VARIANT_LEN
,
NULL
/*TODO*/
,
pMetaDb
->
pEnv
,
ret
=
tdbDbOpen
(
"schema.db"
,
sizeof
(
tb_uid_t
)
+
sizeof
(
int32_t
),
TDB_VARIANT_LEN
,
metaSchemaKeyCmpr
,
pMetaDb
->
pEnv
,
&
(
pMetaDb
->
pSchemaDB
));
if
(
ret
<
0
)
{
// TODO
...
...
@@ -64,28 +130,28 @@ int metaOpenDB(SMeta *pMeta) {
return
-
1
;
}
ret
=
tdbDbOpen
(
"name.idx"
,
TDB_VARIANT_LEN
,
0
,
NULL
/*TODO*/
,
pMetaDb
->
pEnv
,
&
(
pMetaDb
->
pNameIdx
));
ret
=
tdbDbOpen
(
"name.idx"
,
TDB_VARIANT_LEN
,
0
,
metaNameIdxCmpr
,
pMetaDb
->
pEnv
,
&
(
pMetaDb
->
pNameIdx
));
if
(
ret
<
0
)
{
// TODO
ASSERT
(
0
);
return
-
1
;
}
ret
=
tdbDbOpen
(
"stb.idx"
,
sizeof
(
tb_uid_t
),
0
,
NULL
/*TODO*/
,
pMetaDb
->
pEnv
,
&
(
pMetaDb
->
pStbIdx
));
ret
=
tdbDbOpen
(
"stb.idx"
,
sizeof
(
tb_uid_t
),
0
,
metaUidCmpr
,
pMetaDb
->
pEnv
,
&
(
pMetaDb
->
pStbIdx
));
if
(
ret
<
0
)
{
// TODO
ASSERT
(
0
);
return
-
1
;
}
ret
=
tdbDbOpen
(
"ntb.idx"
,
sizeof
(
tb_uid_t
),
0
,
NULL
/*TODO*/
,
pMetaDb
->
pEnv
,
&
(
pMetaDb
->
pNtbIdx
));
ret
=
tdbDbOpen
(
"ntb.idx"
,
sizeof
(
tb_uid_t
),
0
,
metaUidCmpr
,
pMetaDb
->
pEnv
,
&
(
pMetaDb
->
pNtbIdx
));
if
(
ret
<
0
)
{
// TODO
ASSERT
(
0
);
return
-
1
;
}
ret
=
tdbDbOpen
(
"ctb.idx"
,
sizeof
(
tb_uid_t
),
0
,
NULL
/*TODO*/
,
pMetaDb
->
pEnv
,
&
(
pMetaDb
->
pCtbIdx
));
ret
=
tdbDbOpen
(
"ctb.idx"
,
sizeof
(
tb_uid_t
),
0
,
metaCtbIdxCmpr
,
pMetaDb
->
pEnv
,
&
(
pMetaDb
->
pCtbIdx
));
if
(
ret
<
0
)
{
// TODO
ASSERT
(
0
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录