Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
4a2d0d6a
T
TDengine
项目概览
taosdata
/
TDengine
大约 2 年 前同步成功
通知
1192
Star
22018
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看板
提交
4a2d0d6a
编写于
5月 11, 2022
作者:
H
Hongze Cheng
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refact data format
上级
89e8f14a
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
99 addition
and
2 deletion
+99
-2
include/common/tdataformat.h
include/common/tdataformat.h
+9
-1
source/common/src/tdataformat.c
source/common/src/tdataformat.c
+90
-1
未找到文件。
include/common/tdataformat.h
浏览文件 @
4a2d0d6a
...
...
@@ -41,9 +41,16 @@ int32_t tEncodeTSRow(SEncoder *pEncoder, const STSRow2 *pRow);
int32_t
tDecodeTSRow
(
SDecoder
*
pDecoder
,
STSRow2
*
pRow
);
// STSchema
int32_t
tTSchemaCreate
(
int32_t
sver
,
SSchema
*
pSchema
,
int32_t
n
c
ols
,
STSchema
**
ppTSchema
);
int32_t
tTSchemaCreate
(
int32_t
sver
,
SSchema
*
pSchema
,
int32_t
n
C
ols
,
STSchema
**
ppTSchema
);
void
tTSchemaDestroy
(
STSchema
*
pTSchema
);
// STSRowBuilder
int32_t
tTSRowBuilderInit
(
STSRowBuilder
*
pBuilder
,
int32_t
sver
,
SSchema
*
pSchema
,
int32_t
nCols
);
int32_t
tTSRowBuilderClear
(
STSRowBuilder
*
pBuilder
);
int32_t
tTSRowBuilderReset
(
STSRowBuilder
*
pBuilder
);
int32_t
tTSRowBuilderPut
(
STSRowBuilder
*
pBuilder
,
int32_t
cid
,
const
uint8_t
*
pData
,
uint32_t
nData
);
int32_t
tTSRowBuilderGetRow
(
STSRowBuilder
*
pBuilder
,
const
STSRow2
**
ppRow
);
// STRUCT =================
struct
STColumn
{
col_id_t
colId
;
...
...
@@ -74,6 +81,7 @@ struct STSRow2 {
};
struct
STSRowBuilder
{
STColumn
*
pTColumn
;
STSchema
*
pTSchema
;
STSRow2
row
;
};
...
...
source/common/src/tdataformat.c
浏览文件 @
4a2d0d6a
...
...
@@ -50,12 +50,101 @@ int32_t tTSchemaCreate(int32_t sver, SSchema *pSchema, int32_t ncols, STSchema *
return
-
1
;
}
// (*ppTSchema)
(
*
ppTSchema
)
->
numOfCols
=
ncols
;
(
*
ppTSchema
)
->
version
=
sver
;
(
*
ppTSchema
)
->
flen
=
0
;
(
*
ppTSchema
)
->
vlen
=
0
;
(
*
ppTSchema
)
->
tlen
=
0
;
for
(
int32_t
iCol
=
0
;
iCol
<
ncols
;
iCol
++
)
{
SSchema
*
pColumn
=
&
pSchema
[
iCol
];
STColumn
*
pTColumn
=
&
((
*
ppTSchema
)
->
columns
[
iCol
]);
pTColumn
->
colId
=
pColumn
->
colId
;
pTColumn
->
type
=
pColumn
->
type
;
pTColumn
->
flags
=
pColumn
->
flags
;
pTColumn
->
bytes
=
pColumn
->
bytes
;
pTColumn
->
offset
=
(
*
ppTSchema
)
->
flen
;
// skip first column
if
(
iCol
)
{
(
*
ppTSchema
)
->
flen
+=
TYPE_BYTES
[
pColumn
->
type
];
if
(
IS_VAR_DATA_TYPE
(
pColumn
->
type
))
{
(
*
ppTSchema
)
->
vlen
+=
(
pColumn
->
bytes
+
5
);
}
}
}
return
0
;
}
void
tTSchemaDestroy
(
STSchema
*
pTSchema
)
{
taosMemoryFree
(
pTSchema
);
}
int32_t
tTSRowBuilderInit
(
STSRowBuilder
*
pBuilder
,
int32_t
sver
,
SSchema
*
pSchema
,
int32_t
nCols
)
{
// TODO
return
0
;
}
int32_t
tTSRowBuilderClear
(
STSRowBuilder
*
pBuilder
)
{
// TODO
return
0
;
}
int32_t
tTSRowBuilderReset
(
STSRowBuilder
*
pBuilder
)
{
for
(
int32_t
iCol
=
pBuilder
->
pTSchema
->
numOfCols
-
1
;
iCol
>=
0
;
iCol
--
)
{
pBuilder
->
pTColumn
=
&
pBuilder
->
pTSchema
->
columns
[
iCol
];
pBuilder
->
pTColumn
->
flags
&=
(
~
COL_VAL_SET
);
}
return
0
;
}
int32_t
tTSRowBuilderPut
(
STSRowBuilder
*
pBuilder
,
int32_t
cid
,
const
uint8_t
*
pData
,
uint32_t
nData
)
{
if
(
pBuilder
->
pTColumn
->
colId
<
cid
)
{
// right search
}
else
if
(
pBuilder
->
pTColumn
->
colId
>
cid
)
{
// left search
}
// check if val is set already
if
(
pBuilder
->
pTColumn
->
flags
&
COL_VAL_SET
)
{
return
-
1
;
}
// set value
if
(
cid
==
0
)
{
ASSERT
(
pData
&&
nData
==
sizeof
(
TSKEY
));
pBuilder
->
row
.
ts
=
*
(
TSKEY
*
)
pData
;
}
else
{
if
(
pData
)
{
// set val
}
else
{
// set NULL val
}
}
pBuilder
->
pTColumn
->
flags
|=
COL_VAL_SET
;
// TODO
return
0
;
}
int32_t
tTSRowBuilderGetRow
(
STSRowBuilder
*
pBuilder
,
const
STSRow2
**
ppRow
)
{
if
((
pBuilder
->
pTSchema
->
columns
[
0
].
flags
&
COL_VAL_SET
)
==
0
)
{
return
-
1
;
}
// chose which type row to return
if
(
true
/* tuple row is chosen */
)
{
// set non-set values as None
}
*
ppRow
=
&
pBuilder
->
row
;
return
0
;
}
#if 1 // ====================
static
void
dataColSetNEleNull
(
SDataCol
*
pCol
,
int
nEle
);
int
tdAllocMemForCol
(
SDataCol
*
pCol
,
int
maxPoints
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录