Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
20a86520
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1187
Star
22018
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看板
提交
20a86520
编写于
9月 14, 2021
作者:
C
Cary Xu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
load sblock
上级
181e2b0c
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
31 addition
and
18 deletion
+31
-18
src/tsdb/inc/tsdbReadImpl.h
src/tsdb/inc/tsdbReadImpl.h
+2
-1
src/tsdb/src/tsdbFS.c
src/tsdb/src/tsdbFS.c
+1
-1
src/tsdb/src/tsdbReadImpl.c
src/tsdb/src/tsdbReadImpl.c
+28
-16
未找到文件。
src/tsdb/inc/tsdbReadImpl.h
浏览文件 @
20a86520
...
...
@@ -122,6 +122,7 @@ typedef struct {
uint8_t
offsetH
;
char
padding
[
1
];
}
SBlockColV0
;
typedef
struct
{
int16_t
colId
;
int32_t
len
;
...
...
@@ -239,7 +240,7 @@ int tsdbLoadBlockInfo(SReadH *pReadh, void **pTarget, int32_t *extendedLen);
int
tsdbLoadBlockData
(
SReadH
*
pReadh
,
SBlock
*
pBlock
,
SBlockInfo
*
pBlockInfo
);
int
tsdbLoadBlockDataCols
(
SReadH
*
pReadh
,
SBlock
*
pBlock
,
SBlockInfo
*
pBlkInfo
,
int16_t
*
colIds
,
int
numOfColsIds
);
int
tsdbLoadBlockStatis
(
SReadH
*
pReadh
,
SBlock
*
pBlock
);
// int tsdbLoadBlockHead
(SReadH *pReadh, SBlock *pBlock);
int
tsdbLoadBlockOffset
(
SReadH
*
pReadh
,
SBlock
*
pBlock
);
int
tsdbEncodeSBlockIdx
(
void
**
buf
,
SBlockIdx
*
pIdx
);
void
*
tsdbDecodeSBlockIdx
(
void
*
buf
,
SBlockIdx
*
pIdx
);
void
tsdbGetBlockStatis
(
SReadH
*
pReadh
,
SDataStatis
*
pStatis
,
int
numOfCols
,
SBlock
*
pBlock
);
...
...
src/tsdb/src/tsdbFS.c
浏览文件 @
20a86520
...
...
@@ -985,7 +985,7 @@ static bool tsdbIsTFileInFS(STsdbFS *pfs, const TFILE *pf) {
SDFileSet
*
pSet
;
while
((
pSet
=
tsdbFSIterNext
(
&
fsiter
)))
{
for
(
TSDB_FILE_T
ftype
=
0
;
ftype
<
TSDB_FILE_MAX
;
ftype
++
)
{
for
(
TSDB_FILE_T
ftype
=
0
;
ftype
<
pSet
->
nFiles
;
ftype
++
)
{
SDFile
*
pDFile
=
TSDB_DFILE_IN_SET
(
pSet
,
ftype
);
if
(
tfsIsSameFile
(
pf
,
TSDB_FILE_F
(
pDFile
)))
{
return
true
;
...
...
src/tsdb/src/tsdbReadImpl.c
浏览文件 @
20a86520
...
...
@@ -25,6 +25,8 @@ static int tsdbCheckAndDecodeColumnData(SDataCol *pDataCol, void *content, int3
static
int
tsdbLoadBlockDataColsImpl
(
SReadH
*
pReadh
,
SBlock
*
pBlock
,
SDataCols
*
pDataCols
,
int16_t
*
colIds
,
int
numOfColIds
);
static
int
tsdbLoadColData
(
SReadH
*
pReadh
,
SDFile
*
pDFile
,
SBlock
*
pBlock
,
SBlockCol
*
pBlockCol
,
SDataCol
*
pDataCol
);
static
int
tsdbLoadBlockStatisFromDFile
(
SReadH
*
pReadh
,
SBlock
*
pBlock
);
static
int
tsdbLoadBlockStatisFromAggr
(
SReadH
*
pReadh
,
SBlock
*
pBlock
);
int
tsdbInitReadH
(
SReadH
*
pReadh
,
STsdbRepo
*
pRepo
)
{
ASSERT
(
pReadh
!=
NULL
&&
pRepo
!=
NULL
);
...
...
@@ -492,23 +494,22 @@ static int tsdbLoadBlockStatisFromAggr(SReadH *pReadh, SBlock *pBlock) {
int
tsdbLoadBlockStatis
(
SReadH
*
pReadh
,
SBlock
*
pBlock
)
{
ASSERT
(
pBlock
->
numOfSubBlocks
<=
1
);
if
(
pBlock
->
blkVer
==
TSDB_SBLK_VER_0
)
{
return
tsdbLoadBlockStatisFromDFile
(
pReadh
,
pBlock
);
}
if
(
tsdbLoadBlockStatisFromDFile
(
pReadh
,
pBlock
)
<
0
)
{
return
-
1
;
if
(
pBlock
->
blkVer
>
TSDB_SBLK_VER_0
)
{
tsdbLoadBlockStatisFromAggr
(
pReadh
,
pBlock
);
}
return
tsdbLoadBlockStatisFrom
Aggr
(
pReadh
,
pBlock
);
return
tsdbLoadBlockStatisFrom
DFile
(
pReadh
,
pBlock
);
}
// int tsdbLoadBlockHead(SReadH *pReadh, SBlock *pBlock) {
// ASSERT(pBlock->numOfSubBlocks <= 1);
// if (pBlock->blkVer >= TSDB_SBLK_VER_1) {
// return tsdbLoadBlockStatisFromDFile(pReadh, pBlock);
// }
// return 0;
// }
int
tsdbLoadBlockOffset
(
SReadH
*
pReadh
,
SBlock
*
pBlock
)
{
ASSERT
(
pBlock
->
numOfSubBlocks
<=
1
);
if
(
pBlock
->
blkVer
>
TSDB_SBLK_VER_0
)
{
return
tsdbLoadBlockStatisFromDFile
(
pReadh
,
pBlock
);
}
return
0
;
}
int
tsdbEncodeSBlockIdx
(
void
**
buf
,
SBlockIdx
*
pIdx
)
{
int
tlen
=
0
;
...
...
@@ -758,7 +759,7 @@ static int tsdbLoadBlockDataColsImpl(SReadH *pReadh, SBlock *pBlock, SDataCols *
tdResetDataCols
(
pDataCols
);
// If only load timestamp column, no need to load SBlockData part
if
(
numOfColIds
>
1
&&
tsdbLoadBlock
Statis
(
pReadh
,
pBlock
)
<
0
)
return
-
1
;
if
(
numOfColIds
>
1
&&
tsdbLoadBlock
Offset
(
pReadh
,
pBlock
)
<
0
)
return
-
1
;
pDataCols
->
numOfRows
=
pBlock
->
numOfRows
;
...
...
@@ -800,7 +801,18 @@ static int tsdbLoadBlockDataColsImpl(SReadH *pReadh, SBlock *pBlock, SDataCols *
break
;
}
pBlockCol
=
&
(
pReadh
->
pBlkData
->
cols
[
ccol
]);
if
(
pBlock
->
blkVer
==
SBlockVerLatest
)
{
pBlockCol
=
&
(
pReadh
->
pBlkData
->
cols
[
ccol
]);
}
else
{
SBlockColV0
*
pBlkCol
=
((
SBlockColV0
*
)(
pReadh
->
pBlkData
->
cols
))
+
ccol
;
blockCol
.
colId
=
pBlkCol
->
colId
;
blockCol
.
len
=
pBlkCol
->
len
;
blockCol
.
type
=
pBlkCol
->
type
;
blockCol
.
offset
=
pBlkCol
->
offset
;
blockCol
.
offsetH
=
pBlkCol
->
offsetH
;
pBlockCol
=
&
blockCol
;
}
if
(
pBlockCol
->
colId
>
colId
)
{
pBlockCol
=
NULL
;
break
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录