Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
b73cf23c
TDengine
项目概览
taosdata
/
TDengine
1 年多 前同步成功
通知
1185
Star
22016
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看板
提交
b73cf23c
编写于
5月 28, 2022
作者:
C
Cary Xu
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: adapt the code according to large or small offset
上级
a9226df1
变更
1
显示空白变更内容
内联
并排
Showing
1 changed file
with
58 addition
and
13 deletion
+58
-13
source/common/src/tdataformat.c
source/common/src/tdataformat.c
+58
-13
未找到文件。
source/common/src/tdataformat.c
浏览文件 @
b73cf23c
...
...
@@ -574,20 +574,52 @@ static void debugPrintTagVal(int8_t type, const void *val, int32_t vlen, const c
}
}
// if (isLarge) {
// p = (uint8_t *)&((int16_t *)pTag->idx)[pTag->nTag];
// } else {
// p = (uint8_t *)&pTag->idx[pTag->nTag];
// }
// (*ppArray) = taosArrayInit(pTag->nTag + 1, sizeof(STagVal));
// if (*ppArray == NULL) {
// code = TSDB_CODE_OUT_OF_MEMORY;
// goto _err;
// }
// for (int16_t iTag = 0; iTag < pTag->nTag; iTag++) {
// if (isLarge) {
// offset = ((int16_t *)pTag->idx)[iTag];
// } else {
// offset = pTag->idx[iTag];
// }
void
debugPrintSTag
(
STag
*
pTag
,
const
char
*
tag
,
int32_t
ln
)
{
printf
(
"%s:%d >>> STAG === isJson:%s, len: %d, nTag: %d, sver:%d
\n
"
,
tag
,
ln
,
pTag
->
isJson
?
"true"
:
"false"
,
(
int32_t
)
pTag
->
len
,
(
int32_t
)
pTag
->
nTag
,
pTag
->
ver
);
char
*
p
=
(
char
*
)
&
pTag
->
idx
[
pTag
->
nTag
];
int8_t
isJson
=
pTag
->
flags
&
TD_TAG_JSON
;
int8_t
isLarge
=
pTag
->
flags
&
TD_TAG_LARGE
;
uint8_t
*
p
=
NULL
;
int16_t
offset
=
0
;
if
(
isLarge
)
{
p
=
(
uint8_t
*
)
&
((
int16_t
*
)
pTag
->
idx
)[
pTag
->
nTag
];
}
else
{
p
=
(
uint8_t
*
)
&
pTag
->
idx
[
pTag
->
nTag
];
}
printf
(
"%s:%d >>> STAG === %s:%s, len: %d, nTag: %d, sver:%d
\n
"
,
tag
,
ln
,
isJson
?
"json"
:
"normal"
,
isLarge
?
"large"
:
"small"
,
(
int32_t
)
pTag
->
len
,
(
int32_t
)
pTag
->
nTag
,
pTag
->
ver
);
for
(
uint16_t
n
=
0
;
n
<
pTag
->
nTag
;
++
n
)
{
int16_t
*
pIdx
=
pTag
->
idx
+
n
;
if
(
isLarge
)
{
offset
=
((
int16_t
*
)
pTag
->
idx
)[
n
];
}
else
{
offset
=
pTag
->
idx
[
n
];
}
STagVal
tagVal
=
{
0
};
if
(
pTag
->
isJson
)
{
tagVal
.
pKey
=
(
char
*
)
POINTER_SHIFT
(
p
,
*
pIdx
);
if
(
isJson
)
{
tagVal
.
pKey
=
(
char
*
)
POINTER_SHIFT
(
p
,
offset
);
}
else
{
tagVal
.
cid
=
*
(
int16_t
*
)
POINTER_SHIFT
(
p
,
*
pIdx
);
tagVal
.
cid
=
*
(
int16_t
*
)
POINTER_SHIFT
(
p
,
offset
);
}
printf
(
"%s:%d loop[%d-%d] offset=%d
\n
"
,
__func__
,
__LINE__
,
(
int32_t
)
pTag
->
nTag
,
(
int32_t
)
n
,
*
pIdx
);
tGetTagVal
(
p
,
&
tagVal
,
pTag
->
isJson
);
printf
(
"%s:%d loop[%d-%d] offset=%d
\n
"
,
__func__
,
__LINE__
,
(
int32_t
)
pTag
->
nTag
,
(
int32_t
)
n
,
(
int32_t
)
offset
);
tGetTagVal
(
p
,
&
tagVal
,
isJson
);
debugPrintTagVal
(
tagVal
.
type
,
tagVal
.
pData
,
tagVal
.
nData
,
__func__
,
__LINE__
);
}
printf
(
"
\n
"
);
...
...
@@ -771,8 +803,16 @@ int32_t tDecodeTag(SDecoder *pDecoder, STag **ppTag) { return tDecodeBinary(pDec
int32_t
tTagToValArray
(
const
STag
*
pTag
,
SArray
**
ppArray
)
{
int32_t
code
=
0
;
uint8_t
*
p
=
(
uint8_t
*
)
&
pTag
->
idx
[
pTag
->
nTag
];
STagVal
tv
;
uint8_t
*
p
=
NULL
;
STagVal
tv
=
{
0
};
int8_t
isLarge
=
pTag
->
flags
&
TD_TAG_LARGE
;
int16_t
offset
=
0
;
if
(
isLarge
)
{
p
=
(
uint8_t
*
)
&
((
int16_t
*
)
pTag
->
idx
)[
pTag
->
nTag
];
}
else
{
p
=
(
uint8_t
*
)
&
pTag
->
idx
[
pTag
->
nTag
];
}
(
*
ppArray
)
=
taosArrayInit
(
pTag
->
nTag
+
1
,
sizeof
(
STagVal
));
if
(
*
ppArray
==
NULL
)
{
...
...
@@ -781,7 +821,12 @@ int32_t tTagToValArray(const STag *pTag, SArray **ppArray) {
}
for
(
int16_t
iTag
=
0
;
iTag
<
pTag
->
nTag
;
iTag
++
)
{
tGetTagVal
(
p
+
pTag
->
idx
[
iTag
],
&
tv
,
pTag
->
flags
&
TD_TAG_JSON
);
if
(
isLarge
)
{
offset
=
((
int16_t
*
)
pTag
->
idx
)[
iTag
];
}
else
{
offset
=
pTag
->
idx
[
iTag
];
}
tGetTagVal
(
p
+
offset
,
&
tv
,
pTag
->
flags
&
TD_TAG_JSON
);
taosArrayPush
(
*
ppArray
,
&
tv
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录