Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
taosdata
TDengine
提交
6b5cd86d
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看板
未验证
提交
6b5cd86d
编写于
1月 03, 2023
作者:
D
dapan1121
提交者:
GitHub
1月 03, 2023
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #19281 from taosdata/fix/TD-21547-3.0
fix: insert into select with disorder column issue
上级
c684a7a3
d674bae8
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
29 addition
and
2 deletion
+29
-2
source/libs/executor/src/dataInserter.c
source/libs/executor/src/dataInserter.c
+9
-2
tests/script/tsim/insert/insert_select.sim
tests/script/tsim/insert/insert_select.sim
+20
-0
未找到文件。
source/libs/executor/src/dataInserter.c
浏览文件 @
6b5cd86d
...
...
@@ -41,6 +41,7 @@ typedef struct SDataInserterHandle {
SHashObj
*
pCols
;
int32_t
status
;
bool
queryEnd
;
bool
fullOrderColList
;
uint64_t
useconds
;
uint64_t
cachedSize
;
TdThreadMutex
mutex
;
...
...
@@ -153,7 +154,6 @@ int32_t buildSubmitReqFromBlock(SDataInserterHandle* pInserter, SSubmitReq2** pp
SSubmitReq2
*
pReq
=
*
ppReq
;
SArray
*
pVals
=
NULL
;
int32_t
numOfBlks
=
0
;
bool
fullCol
=
(
pInserter
->
pNode
->
pCols
->
length
==
pTSchema
->
numOfCols
);
terrno
=
TSDB_CODE_SUCCESS
;
...
...
@@ -196,7 +196,7 @@ int32_t buildSubmitReqFromBlock(SDataInserterHandle* pInserter, SSubmitReq2** pp
for
(
int32_t
k
=
0
;
k
<
pTSchema
->
numOfCols
;
++
k
)
{
// iterate by column
int16_t
colIdx
=
k
;
const
STColumn
*
pCol
=
&
pTSchema
->
columns
[
k
];
if
(
!
fullCol
)
{
if
(
!
pInserter
->
fullOrderColList
)
{
int16_t
*
slotId
=
taosHashGet
(
pInserter
->
pCols
,
&
pCol
->
colId
,
sizeof
(
pCol
->
colId
));
if
(
NULL
==
slotId
)
{
continue
;
...
...
@@ -439,12 +439,19 @@ int32_t createDataInserter(SDataSinkManager* pManager, const SDataSinkNode* pDat
return
TSDB_CODE_OUT_OF_MEMORY
;
}
inserter
->
fullOrderColList
=
pInserterNode
->
pCols
->
length
==
inserter
->
pSchema
->
numOfCols
;
inserter
->
pCols
=
taosHashInit
(
pInserterNode
->
pCols
->
length
,
taosGetDefaultHashFunction
(
TSDB_DATA_TYPE_SMALLINT
),
false
,
HASH_NO_LOCK
);
SNode
*
pNode
=
NULL
;
int32_t
i
=
0
;
FOREACH
(
pNode
,
pInserterNode
->
pCols
)
{
SColumnNode
*
pCol
=
(
SColumnNode
*
)
pNode
;
taosHashPut
(
inserter
->
pCols
,
&
pCol
->
colId
,
sizeof
(
pCol
->
colId
),
&
pCol
->
slotId
,
sizeof
(
pCol
->
slotId
));
if
(
inserter
->
fullOrderColList
&&
pCol
->
colId
!=
inserter
->
pSchema
->
columns
[
i
].
colId
)
{
inserter
->
fullOrderColList
=
false
;
}
++
i
;
}
tsem_init
(
&
inserter
->
ready
,
0
,
0
);
...
...
tests/script/tsim/insert/insert_select.sim
浏览文件 @
6b5cd86d
...
...
@@ -42,4 +42,24 @@ if $rows != 2 then
return -1
endi
print ======== step2
sql drop database if exists db1;
sql create database db1 vgroups 1;
sql use db1;
sql create table t1(ts timestamp, a int, b int );
sql create table t2(ts timestamp, a int, b int );
sql insert into t1 values(1648791211000,1,2);
sql insert into t2 (ts, b, a) select ts, a, b from t1;
sql select * from t2;
if $rows != 1 then
return -1
endi
if $data01 != 2 then
return -1
endi
if $data02 != 1 then
return -1
endi
system sh/exec.sh -n dnode1 -s stop -x SIGINT
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录