Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
5d1d2255
TDengine
项目概览
taosdata
/
TDengine
大约 1 年 前同步成功
通知
1184
Star
22015
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看板
体验新版 GitCode,发现更多精彩内容 >>
提交
5d1d2255
编写于
3月 29, 2022
作者:
H
Hongze Cheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
more meta
上级
8a0d117a
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
109 addition
and
13 deletion
+109
-13
source/dnode/vnode/src/meta/metaTDBImpl.c
source/dnode/vnode/src/meta/metaTDBImpl.c
+109
-13
未找到文件。
source/dnode/vnode/src/meta/metaTDBImpl.c
浏览文件 @
5d1d2255
...
@@ -301,6 +301,7 @@ STbCfg *metaGetTbInfoByUid(SMeta *pMeta, tb_uid_t uid) {
...
@@ -301,6 +301,7 @@ STbCfg *metaGetTbInfoByUid(SMeta *pMeta, tb_uid_t uid) {
// Fetch
// Fetch
pKey
=
&
uid
;
pKey
=
&
uid
;
kLen
=
sizeof
(
uid
);
kLen
=
sizeof
(
uid
);
pVal
=
NULL
;
ret
=
tdbDbGet
(
pMetaDb
->
pTbDB
,
pKey
,
kLen
,
&
pVal
,
&
vLen
);
ret
=
tdbDbGet
(
pMetaDb
->
pTbDB
,
pKey
,
kLen
,
&
pVal
,
&
vLen
);
if
(
ret
<
0
)
{
if
(
ret
<
0
)
{
return
NULL
;
return
NULL
;
...
@@ -324,6 +325,7 @@ STbCfg *metaGetTbInfoByName(SMeta *pMeta, char *tbname, tb_uid_t *uid) {
...
@@ -324,6 +325,7 @@ STbCfg *metaGetTbInfoByName(SMeta *pMeta, char *tbname, tb_uid_t *uid) {
pKey
=
tbname
;
pKey
=
tbname
;
kLen
=
strlen
(
tbname
)
+
1
;
kLen
=
strlen
(
tbname
)
+
1
;
pVal
=
NULL
;
ret
=
tdbDbGet
(
pMeta
->
pDB
->
pNameIdx
,
pKey
,
kLen
,
&
pVal
,
&
vLen
);
ret
=
tdbDbGet
(
pMeta
->
pDB
->
pNameIdx
,
pKey
,
kLen
,
&
pVal
,
&
vLen
);
if
(
ret
<
0
)
{
if
(
ret
<
0
)
{
return
NULL
;
return
NULL
;
...
@@ -336,34 +338,128 @@ STbCfg *metaGetTbInfoByName(SMeta *pMeta, char *tbname, tb_uid_t *uid) {
...
@@ -336,34 +338,128 @@ STbCfg *metaGetTbInfoByName(SMeta *pMeta, char *tbname, tb_uid_t *uid) {
}
}
SSchemaWrapper
*
metaGetTableSchema
(
SMeta
*
pMeta
,
tb_uid_t
uid
,
int32_t
sver
,
bool
isinline
)
{
SSchemaWrapper
*
metaGetTableSchema
(
SMeta
*
pMeta
,
tb_uid_t
uid
,
int32_t
sver
,
bool
isinline
)
{
// TODO
void
*
pKey
;
ASSERT
(
0
);
void
*
pVal
;
return
NULL
;
int
kLen
;
int
vLen
;
int
ret
;
SSchemaDbKey
schemaDbKey
;
SSchemaWrapper
*
pSchemaWrapper
;
void
*
pBuf
;
// fetch
schemaDbKey
.
uid
=
uid
;
schemaDbKey
.
sver
=
sver
;
pKey
=
&
schemaDbKey
;
kLen
=
sizeof
(
schemaDbKey
);
pVal
=
NULL
;
ret
=
tdbDbGet
(
pMeta
->
pDB
->
pSchemaDB
,
pKey
,
kLen
,
&
pVal
,
&
vLen
);
if
(
ret
<
0
)
{
return
NULL
;
}
// decode
pBuf
=
pVal
;
pSchemaWrapper
=
taosMemoryMalloc
(
sizeof
(
*
pSchemaWrapper
));
metaDecodeSchema
(
pBuf
,
pSchemaWrapper
);
TDB_FREE
(
pVal
);
return
pSchemaWrapper
;
}
}
STSchema
*
metaGetTbTSchema
(
SMeta
*
pMeta
,
tb_uid_t
uid
,
int32_t
sver
)
{
STSchema
*
metaGetTbTSchema
(
SMeta
*
pMeta
,
tb_uid_t
uid
,
int32_t
sver
)
{
// TODO
tb_uid_t
quid
;
ASSERT
(
0
);
SSchemaWrapper
*
pSW
;
return
NULL
;
STSchemaBuilder
sb
;
SSchema
*
pSchema
;
STSchema
*
pTSchema
;
STbCfg
*
pTbCfg
;
pTbCfg
=
metaGetTbInfoByUid
(
pMeta
,
uid
);
if
(
pTbCfg
->
type
==
META_CHILD_TABLE
)
{
quid
=
pTbCfg
->
ctbCfg
.
suid
;
}
else
{
quid
=
uid
;
}
pSW
=
metaGetTableSchema
(
pMeta
,
quid
,
sver
,
true
);
if
(
pSW
==
NULL
)
{
return
NULL
;
}
tdInitTSchemaBuilder
(
&
sb
,
0
);
for
(
int
i
=
0
;
i
<
pSW
->
nCols
;
i
++
)
{
pSchema
=
pSW
->
pSchema
+
i
;
tdAddColToSchema
(
&
sb
,
pSchema
->
type
,
pSchema
->
colId
,
pSchema
->
bytes
);
}
pTSchema
=
tdGetSchemaFromBuilder
(
&
sb
);
tdDestroyTSchemaBuilder
(
&
sb
);
return
pTSchema
;
}
}
struct
SMTbCursor
{
TDBC
*
pDbc
;
};
SMTbCursor
*
metaOpenTbCursor
(
SMeta
*
pMeta
)
{
SMTbCursor
*
metaOpenTbCursor
(
SMeta
*
pMeta
)
{
// TODO
SMTbCursor
*
pTbCur
=
NULL
;
ASSERT
(
0
);
SMetaDB
*
pDB
=
pMeta
->
pDB
;
return
NULL
;
pTbCur
=
(
SMTbCursor
*
)
taosMemoryCalloc
(
1
,
sizeof
(
*
pTbCur
));
if
(
pTbCur
==
NULL
)
{
return
NULL
;
}
tdbDbcOpen
(
pDB
->
pTbDB
,
&
pTbCur
->
pDbc
);
return
pTbCur
;
}
}
void
metaCloseTbCursor
(
SMTbCursor
*
pTbCur
)
{
void
metaCloseTbCursor
(
SMTbCursor
*
pTbCur
)
{
// TODO
if
(
pTbCur
)
{
ASSERT
(
0
);
if
(
pTbCur
->
pDbc
)
{
tdbDbcClose
(
pTbCur
->
pDbc
);
}
taosMemoryFree
(
pTbCur
);
}
}
}
char
*
metaTbCursorNext
(
SMTbCursor
*
pTbCur
)
{
char
*
metaTbCursorNext
(
SMTbCursor
*
pTbCur
)
{
// TODO
void
*
pKey
=
NULL
;
ASSERT
(
0
);
void
*
pVal
=
NULL
;
int
kLen
;
int
vLen
;
int
ret
;
void
*
pBuf
;
STbCfg
tbCfg
;
for
(;;)
{
ret
=
tdbDbNext
(
pTbCur
->
pDbc
,
&
pKey
,
&
kLen
,
&
pVal
,
&
vLen
);
if
(
ret
<
0
)
break
;
pBuf
=
pVal
;
metaDecodeTbInfo
(
pBuf
,
&
tbCfg
);
if
(
tbCfg
.
type
==
META_SUPER_TABLE
)
{
taosMemoryFree
(
tbCfg
.
name
);
taosMemoryFree
(
tbCfg
.
stbCfg
.
pTagSchema
);
continue
;
;
}
else
if
(
tbCfg
.
type
==
META_CHILD_TABLE
)
{
kvRowFree
(
tbCfg
.
ctbCfg
.
pTag
);
}
return
tbCfg
.
name
;
}
return
NULL
;
return
NULL
;
}
}
struct
SMCtbCursor
{
TDBC
*
pCur
;
tb_uid_t
suid
;
};
SMCtbCursor
*
metaOpenCtbCursor
(
SMeta
*
pMeta
,
tb_uid_t
uid
)
{
SMCtbCursor
*
metaOpenCtbCursor
(
SMeta
*
pMeta
,
tb_uid_t
uid
)
{
// TODO
// TODO
ASSERT
(
0
);
ASSERT
(
0
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录