Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
2e52415e
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看板
未验证
提交
2e52415e
编写于
3月 29, 2023
作者:
H
Haojun Liao
提交者:
GitHub
3月 29, 2023
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #20677 from taosdata/fix/TD023101
fix:[TD-23339] parse block error
上级
1093c645
6f6239a7
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
48 addition
and
8 deletion
+48
-8
source/libs/parser/src/parInsertUtil.c
source/libs/parser/src/parInsertUtil.c
+48
-8
未找到文件。
source/libs/parser/src/parInsertUtil.c
浏览文件 @
2e52415e
...
...
@@ -631,10 +631,10 @@ int rawBlockBindData(SQuery* query, STableMeta* pTableMeta, void* data, SVCreate
ret
=
TSDB_CODE_INVALID_PARA
;
goto
end
;
}
for
(
int
c
=
0
;
c
<
boundInfo
->
numOfBound
;
++
c
)
{
SSchema
*
pColSchema
=
&
pSchema
[
c
];
SColData
*
pCol
=
taosArrayGet
(
pTableCxt
->
pData
->
aCol
,
c
)
;
if
(
tFields
==
NULL
||
findFileds
(
pColSchema
,
tFields
,
numFields
)){
if
(
tFields
==
NULL
)
{
for
(
int
j
=
0
;
j
<
boundInfo
->
numOfBound
;
j
++
){
SSchema
*
pColSchema
=
&
pSchema
[
j
]
;
SColData
*
pCol
=
taosArrayGet
(
pTableCxt
->
pData
->
aCol
,
j
);
if
(
*
fields
!=
pColSchema
->
type
&&
*
(
int32_t
*
)(
fields
+
sizeof
(
int8_t
))
!=
pColSchema
->
bytes
)
{
uError
(
"type or bytes not equal"
);
ret
=
TSDB_CODE_INVALID_PARA
;
...
...
@@ -652,12 +652,52 @@ int rawBlockBindData(SQuery* query, STableMeta* pTableMeta, void* data, SVCreate
tColDataAddValueByDataBlock
(
pCol
,
pColSchema
->
type
,
pColSchema
->
bytes
,
numOfRows
,
offset
,
pData
);
fields
+=
sizeof
(
int8_t
)
+
sizeof
(
int32_t
);
if
(
needChangeLength
)
{
pStart
+=
htonl
(
colLength
[
c
]);
pStart
+=
htonl
(
colLength
[
j
]);
}
else
{
pStart
+=
colLength
[
c
];
pStart
+=
colLength
[
j
];
}
}
}
else
{
for
(
int
i
=
0
;
i
<
numFields
;
i
++
)
{
for
(
int
j
=
0
;
j
<
boundInfo
->
numOfBound
;
j
++
){
SSchema
*
pColSchema
=
&
pSchema
[
j
];
if
(
strcmp
(
pColSchema
->
name
,
tFields
[
i
].
name
)
==
0
){
if
(
*
fields
!=
pColSchema
->
type
&&
*
(
int32_t
*
)(
fields
+
sizeof
(
int8_t
))
!=
pColSchema
->
bytes
)
{
uError
(
"type or bytes not equal"
);
ret
=
TSDB_CODE_INVALID_PARA
;
goto
end
;
}
int8_t
*
offset
=
pStart
;
if
(
IS_VAR_DATA_TYPE
(
pColSchema
->
type
))
{
pStart
+=
numOfRows
*
sizeof
(
int32_t
);
}
else
{
pStart
+=
BitmapLen
(
numOfRows
);
}
char
*
pData
=
pStart
;
SColData
*
pCol
=
taosArrayGet
(
pTableCxt
->
pData
->
aCol
,
j
);
tColDataAddValueByDataBlock
(
pCol
,
pColSchema
->
type
,
pColSchema
->
bytes
,
numOfRows
,
offset
,
pData
);
fields
+=
sizeof
(
int8_t
)
+
sizeof
(
int32_t
);
if
(
needChangeLength
)
{
pStart
+=
htonl
(
colLength
[
i
]);
}
else
{
pStart
+=
colLength
[
i
];
}
boundInfo
->
pColIndex
[
j
]
=
-
1
;
break
;
}
}
}
for
(
int
c
=
0
;
c
<
boundInfo
->
numOfBound
;
++
c
)
{
if
(
boundInfo
->
pColIndex
[
c
]
!=
-
1
){
SColData
*
pCol
=
taosArrayGet
(
pTableCxt
->
pData
->
aCol
,
c
);
tColDataAddValueByDataBlock
(
pCol
,
0
,
0
,
numOfRows
,
NULL
,
NULL
);
}
else
{
boundInfo
->
pColIndex
[
c
]
=
c
;
// restore for next block
}
}
else
{
tColDataAddValueByDataBlock
(
pCol
,
pColSchema
->
type
,
pColSchema
->
bytes
,
numOfRows
,
NULL
,
NULL
);
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录