Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
2cfdf7bf
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看板
提交
2cfdf7bf
编写于
12月 02, 2022
作者:
H
Hongze Cheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
finish more code
上级
5b83fcc1
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
40 addition
and
27 deletion
+40
-27
include/common/tdataformat.h
include/common/tdataformat.h
+1
-1
source/dnode/vnode/src/inc/tsdb.h
source/dnode/vnode/src/inc/tsdb.h
+10
-5
source/dnode/vnode/src/tsdb/tsdbDiskData.c
source/dnode/vnode/src/tsdb/tsdbDiskData.c
+1
-1
source/dnode/vnode/src/tsdb/tsdbUtil.c
source/dnode/vnode/src/tsdb/tsdbUtil.c
+28
-20
未找到文件。
include/common/tdataformat.h
浏览文件 @
2cfdf7bf
...
...
@@ -89,12 +89,12 @@ void tRowGet(SRow *pRow, STSchema *pTSchema, int32_t iCol, SColVal *pColVal);
void
tRowDestroy
(
SRow
*
pRow
);
void
tRowSort
(
SArray
*
aRowP
);
int32_t
tRowMerge
(
SArray
*
aRowP
,
STSchema
*
pTSchema
,
int8_t
flag
);
int32_t
tRowAppendToColData
(
SRow
*
pRow
,
STSchema
*
pTSchema
,
SColData
*
aColData
,
int32_t
nColData
);
// SRowIter ================================
int32_t
tRowIterOpen
(
SRow
*
pRow
,
STSchema
*
pTSchema
,
SRowIter
**
ppIter
);
void
tRowIterClose
(
SRowIter
**
ppIter
);
SColVal
*
tRowIterNext
(
SRowIter
*
pIter
);
int32_t
tRowAppendToColData
(
SRow
*
pRow
,
STSchema
*
pTSchema
,
SColData
*
aColData
,
int32_t
nColData
);
// STag ================================
int32_t
tTagNew
(
SArray
*
pArray
,
int32_t
version
,
int8_t
isJson
,
STag
**
ppTag
);
...
...
source/dnode/vnode/src/inc/tsdb.h
浏览文件 @
2cfdf7bf
...
...
@@ -117,7 +117,8 @@ static FORCE_INLINE int64_t tsdbLogicToFileSize(int64_t lSize, int32_t szPage) {
void
tsdbRowGetColVal
(
TSDBROW
*
pRow
,
STSchema
*
pTSchema
,
int32_t
iCol
,
SColVal
*
pColVal
);
int32_t
tsdbRowCmprFn
(
const
void
*
p1
,
const
void
*
p2
);
// STSDBRowIter
void
tsdbRowIterInit
(
STSDBRowIter
*
pIter
,
TSDBROW
*
pRow
,
STSchema
*
pTSchema
);
int32_t
tsdbRowIterOpen
(
STSDBRowIter
*
pIter
,
TSDBROW
*
pRow
,
STSchema
*
pTSchema
);
void
tsdbRowClose
(
STSDBRowIter
*
pIter
);
SColVal
*
tsdbRowIterNext
(
STSDBRowIter
*
pIter
);
// SRowMerger
int32_t
tsdbRowMergerInit2
(
SRowMerger
*
pMerger
,
STSchema
*
pResTSchema
,
TSDBROW
*
pRow
,
STSchema
*
pTSchema
);
...
...
@@ -571,10 +572,14 @@ struct SDFileSet {
};
struct
STSDBRowIter
{
TSDBROW
*
pRow
;
STSchema
*
pTSchema
;
SColVal
colVal
;
int32_t
i
;
TSDBROW
*
pRow
;
union
{
SRowIter
*
pIter
;
struct
{
int32_t
iColData
;
SColVal
cv
;
};
};
};
struct
SRowMerger
{
STSchema
*
pTSchema
;
...
...
source/dnode/vnode/src/tsdb/tsdbDiskData.c
浏览文件 @
2cfdf7bf
...
...
@@ -596,7 +596,7 @@ int32_t tDiskDataAddRow(SDiskDataBuilder *pBuilder, TSDBROW *pRow, STSchema *pTS
if
(
pBuilder
->
bi
.
maxKey
<
kRow
.
ts
)
pBuilder
->
bi
.
maxKey
=
kRow
.
ts
;
STSDBRowIter
iter
=
{
0
};
tsdbRowIter
Init
(
&
iter
,
pRow
,
pTSchema
);
tsdbRowIter
Open
(
&
iter
,
pRow
,
pTSchema
);
SColVal
*
pColVal
=
tsdbRowIterNext
(
&
iter
);
for
(
int32_t
iBuilder
=
0
;
iBuilder
<
pBuilder
->
nBuilder
;
iBuilder
++
)
{
...
...
source/dnode/vnode/src/tsdb/tsdbUtil.c
浏览文件 @
2cfdf7bf
...
...
@@ -594,42 +594,50 @@ int32_t tsdbRowCmprFn(const void *p1, const void *p2) {
}
// STSDBRowIter ======================================================
void
tsdbRowIterInit
(
STSDBRowIter
*
pIter
,
TSDBROW
*
pRow
,
STSchema
*
pTSchema
)
{
int32_t
tsdbRowIterOpen
(
STSDBRowIter
*
pIter
,
TSDBROW
*
pRow
,
STSchema
*
pTSchema
)
{
int32_t
code
=
0
;
pIter
->
pRow
=
pRow
;
if
(
pRow
->
type
==
TSDBROW_ROW_FMT
)
{
ASSERT
(
pTSchema
);
pIter
->
pTSchema
=
pTSchema
;
pIter
->
i
=
1
;
code
=
tRowIterOpen
(
pRow
->
pTSRow
,
pTSchema
,
&
pIter
->
pIter
);
if
(
code
)
goto
_exit
;
}
else
if
(
pRow
->
type
==
TSDBROW_COL_FMT
)
{
pIter
->
pTSchema
=
NULL
;
pIter
->
i
=
0
;
pIter
->
iColData
=
0
;
}
else
{
ASSERT
(
0
);
}
_exit:
return
code
;
}
SColVal
*
tsdbRowIterNext
(
STSDBRowIter
*
pIter
)
{
void
tsdbRowClose
(
STSDBRowIter
*
pIter
)
{
if
(
pIter
->
pRow
->
type
==
TSDBROW_ROW_FMT
)
{
if
(
pIter
->
i
<
pIter
->
pTSchema
->
numOfCols
)
{
tRowGet
(
pIter
->
pRow
->
pTSRow
,
pIter
->
pTSchema
,
pIter
->
i
,
&
pIter
->
colVal
);
pIter
->
i
++
;
tRowIterClose
(
&
pIter
->
pIter
);
}
}
return
&
pIter
->
colVal
;
}
SColVal
*
tsdbRowIterNext
(
STSDBRowIter
*
pIter
)
{
if
(
pIter
->
pRow
->
type
==
TSDBROW_ROW_FMT
)
{
return
tRowIterNext
(
pIter
->
pIter
);
}
else
if
(
pIter
->
pRow
->
type
==
TSDBROW_COL_FMT
)
{
if
(
pIter
->
i
<
pIter
->
pRow
->
pBlockData
->
nColData
)
{
SColData
*
pColData
=
tBlockDataGetColDataByIdx
(
pIter
->
pRow
->
pBlockData
,
pIter
->
i
);
tColDataGetValue
(
pColData
,
pIter
->
pRow
->
iRow
,
&
pIter
->
colVal
);
pIter
->
i
++
;
if
(
pIter
->
iColData
==
0
)
{
pIter
->
cv
=
COL_VAL_VALUE
(
PRIMARYKEY_TIMESTAMP_COL_ID
,
TSDB_DATA_TYPE_TIMESTAMP
,
(
SValue
){.
val
=
pIter
->
pRow
->
pBlockData
->
aTSKEY
[
pIter
->
pRow
->
iRow
]});
++
pIter
->
iColData
;
return
&
pIter
->
cv
;
}
return
&
pIter
->
colVal
;
if
(
pIter
->
iColData
<
pIter
->
pRow
->
pBlockData
->
nColData
)
{
tColDataGetValue
(
&
pIter
->
pRow
->
pBlockData
->
aColData
[
pIter
->
iColData
],
pIter
->
pRow
->
iRow
,
&
pIter
->
cv
);
++
pIter
->
iColData
;
return
&
pIter
->
cv
;
}
else
{
return
NULL
;
}
}
else
{
ASSERT
(
0
);
}
return
NULL
;
}
// SRowMerger ======================================================
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录