Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
b0cfcbcd
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,发现更多精彩内容 >>
提交
b0cfcbcd
编写于
6月 17, 2022
作者:
H
Hongze Cheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
more work
上级
0b05c880
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
96 addition
and
12 deletion
+96
-12
source/dnode/vnode/src/inc/tsdb.h
source/dnode/vnode/src/inc/tsdb.h
+12
-3
source/dnode/vnode/src/tsdb/tsdbCommit.c
source/dnode/vnode/src/tsdb/tsdbCommit.c
+1
-1
source/dnode/vnode/src/tsdb/tsdbUtil.c
source/dnode/vnode/src/tsdb/tsdbUtil.c
+83
-8
未找到文件。
source/dnode/vnode/src/inc/tsdb.h
浏览文件 @
b0cfcbcd
...
...
@@ -131,6 +131,9 @@ int32_t tsdbReadDelData(SDelFReader *pReader, SDelIdx *pDelIdx, SMapData *pDelDa
int32_t
tsdbReadDelIdx
(
SDelFReader
*
pReader
,
SMapData
*
pDelIdxMap
,
uint8_t
**
ppBuf
);
// tsdbUtil.c ==============================================================================================
// TSDBROW
TSDBKEY
tsdbRowKey
(
TSDBROW
*
pRow
);
int32_t
tsdbKeyFid
(
TSKEY
key
,
int32_t
minutes
,
int8_t
precision
);
void
tsdbFidKeyRange
(
int32_t
fid
,
int32_t
minutes
,
int8_t
precision
,
TSKEY
*
minKey
,
TSKEY
*
maxKey
);
...
...
@@ -174,8 +177,10 @@ int32_t tGetBlock(uint8_t *p, void *ph);
int32_t
tBlockCmprFn
(
const
void
*
p1
,
const
void
*
p2
);
// SBlockData
void
tsdbBlockDataReset
(
SBlockData
*
pBlockData
);
#define tsdbBlockDataCreate() ((SBlockData){0})
void
tsdbBlockDataClear
(
SBlockData
*
pBlockData
);
int32_t
tsdbBlockDataAppendRow
(
SBlockData
*
pBlockData
,
TSDBROW
*
pRow
,
STSchema
*
pTSchema
);
void
tsdbBlockDataDestroy
(
SBlockData
*
pBlockData
);
// SDelIdx
int32_t
tPutDelIdx
(
uint8_t
*
p
,
void
*
ph
);
...
...
@@ -326,8 +331,12 @@ struct SColData {
};
struct
SBlockData
{
int32_t
maxRow
;
int32_t
nRow
;
SArray
*
aColData
;
TSDBKEY
*
aKey
;
int32_t
maxCol
;
int32_t
nCol
;
SColData
*
aColData
;
};
// ================== TSDB global config
...
...
source/dnode/vnode/src/tsdb/tsdbCommit.c
浏览文件 @
b0cfcbcd
...
...
@@ -388,7 +388,7 @@ static int32_t tsdbCommitMemoryData(SCommitter *pCommitter, SBlockIdx *pBlockIdx
if
(
code
)
goto
_err
;
block
=
BLOCK_INIT_VAL
;
tsdbBlockData
Reset
(
&
pCommitter
->
bDataN
);
tsdbBlockData
Clear
(
&
pCommitter
->
bDataN
);
}
return
code
;
...
...
source/dnode/vnode/src/tsdb/tsdbUtil.c
浏览文件 @
b0cfcbcd
...
...
@@ -405,6 +405,11 @@ void tsdbFidKeyRange(int32_t fid, int32_t minutes, int8_t precision, TSKEY *minK
// }
// TSDBROW ======================================================
TSDBKEY
tsdbRowKey
(
TSDBROW
*
pRow
)
{
// TODO: support SBlockData version
return
(
TSDBKEY
){.
version
=
pRow
->
version
,
.
ts
=
pRow
->
pTSRow
->
ts
};
}
void
tsdbRowGetColVal
(
TSDBROW
*
pRow
,
STSchema
*
pTSchema
,
int32_t
iCol
,
SColVal
*
pColVal
)
{
// TODO
}
...
...
@@ -515,13 +520,6 @@ int32_t tsdbBuildDeleteSkyline(SArray *aDelData, int32_t sidx, int32_t eidx, SAr
return
code
;
}
// SBlockData ======================================================
int32_t
tsdbBlockDataAppendRow
(
SBlockData
*
pBlockData
,
TSDBROW
*
pRow
,
STSchema
*
pTSchema
)
{
int32_t
code
=
0
;
// TODO
return
code
;
}
// KEYINFO ======================================================
int32_t
tPutKEYINFO
(
uint8_t
*
p
,
KEYINFO
*
pKeyInfo
)
{
int32_t
n
=
0
;
...
...
@@ -546,3 +544,80 @@ int32_t tGetKEYINFO(uint8_t *p, KEYINFO *pKeyInfo) {
}
// SBlockData ======================================================
void
tsdbBlockDataClear
(
SBlockData
*
pBlockData
)
{
pBlockData
->
nRow
=
0
;
for
(
int32_t
iCol
=
0
;
iCol
<
pBlockData
->
nCol
;
iCol
++
)
{
pBlockData
->
aColData
[
iCol
]
=
(
SColData
){.
cid
=
0
,
.
type
=
0
,
.
bytes
=
0
,
.
flags
=
0
,
.
nData
=
0
};
}
}
int32_t
tsdbBlockDataAppendRow
(
SBlockData
*
pBlockData
,
TSDBROW
*
pRow
,
STSchema
*
pTSchema
)
{
int32_t
code
=
0
;
TSDBKEY
key
=
tsdbRowKey
(
pRow
);
int32_t
nRow
=
pBlockData
->
nRow
;
SColVal
colVal
;
SColVal
*
pColVal
=
&
colVal
;
STColumn
*
pTColumn
;
SColData
*
pColData
;
pBlockData
->
nRow
++
;
// aKey
if
(
nRow
>=
pBlockData
->
maxRow
)
{
if
(
pBlockData
->
maxRow
==
0
)
{
pBlockData
->
maxRow
=
1024
;
}
else
{
pBlockData
->
maxRow
=
pBlockData
->
maxRow
*
2
;
}
ASSERT
(
pBlockData
->
maxRow
>
pBlockData
->
nRow
);
code
=
tsdbRealloc
((
uint8_t
**
)
&
pBlockData
->
aKey
,
sizeof
(
TSDBKEY
)
*
pBlockData
->
maxRow
);
if
(
code
)
goto
_err
;
}
pBlockData
->
aKey
[
nRow
]
=
key
;
// other cols
int16_t
iColData
=
0
;
int16_t
iCol
=
1
;
while
(
iCol
<
pTSchema
->
numOfCols
)
{
pTColumn
=
&
pTSchema
->
columns
[
iCol
];
if
(
iColData
<
pBlockData
->
nCol
)
{
pColData
=
&
pBlockData
->
aColData
[
iColData
];
if
(
pColData
->
cid
<
pTColumn
->
colId
)
{
iColData
++
;
}
else
if
(
pColData
->
cid
>
pTColumn
->
colId
)
{
// add a new SColData
iCol
++
;
}
else
{
iCol
++
;
iColData
++
;
}
}
else
{
// add a new column data
}
if
(
pColVal
->
isNone
)
{
// set bit
}
else
if
(
pColVal
->
isNull
)
{
// set bit
}
else
{
// set bit
// put data
}
}
return
code
;
_err:
tsdbError
(
"block data append row failed since %s"
,
tstrerror
(
code
));
return
code
;
}
void
tsdbBlockDataDestroy
(
SBlockData
*
pBlockData
)
{
tsdbFree
((
uint8_t
*
)
pBlockData
->
aKey
);
for
(
int32_t
iCol
=
0
;
iCol
<
pBlockData
->
nCol
;
iCol
++
)
{
tsdbFree
(
pBlockData
->
aColData
[
iCol
].
pBitMap
);
tsdbFree
(
pBlockData
->
aColData
[
iCol
].
pData
);
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录