Closed lw-leo closed 6 months ago
感谢提出,我会看下
可以提供下建表语句不
@yu285 创建库和超级表以及子表
create database if not exists `remote_control_db`;
create database if not exists `joystick_db`;
create database if not exists `sby_db`;
create stable if not exists `remote_control_db`.`remote_control_st` (
ts timestamp ,
h_version binary(64) ,
s_version binary(64) ,
use_count smallint unsigned ,
ltp tinyint unsigned ,
rtp tinyint unsigned ,
failure bigint unsigned
) tags (
sn binary(64)
);
create stable if not exists `joystick_db`.`joystick_st` (
ts timestamp ,
type tinyint unsigned ,
h_version binary(64) ,
s_version binary(64) ,
use_count int unsigned ,
x float ,
y float ,
z float ,
failure bigint unsigned
) tags (
sn binary(64)
);
create stable if not exists `sby_db`.`sby_st` (
ts timestamp ,
version binary(64) ,
voltage float ,
output_power float ,
failure bigint unsigned
) tags (
sn binary(64)
);
create table if not exists `sby_db`.`sby_00000` using `sby_db`.`sby_st` tags ('ID_00000');
create table if not exists `joystick_db`.`joy_00000` using `joystick_db`.`joystick_st` tags ('ID_00000');
create table if not exists `remote_control_db`.`rc_00000` using `remote_control_db`.`remote_control_st` tags ('ID_00000');
可以提供下建表语句不
3.0早期版本的bug 都已经都修复了,但是3.0.2.5 之前可能与现在的最新版(3.3.0.0)并不兼容,所以无法直接升级。因此建议重新部署一下最新的 3.3.0.0 ,后续升级都很方便,直接安装最新版软件即可。
开源版支持操作系统范围:https://docs.taosdata.com/reference/support-platform/
如果还有类似问题可以加微信 a15652223354
描述 向多个表插入记录失败,调整sql插入语句顺序后成功
复现环境
一、测试环境
二、表结构
三、失败插入sql
四、成功插入sql
BUG分析 分析源码后基本锁定问题所在(自认为)
测试发现 (int32_t)taosArrayGet(p->pTableMetaPos, i) 出来的结果是无序的taosArrayInsert在执行插入时会copy插入位置之后的数据,导致pCxt->pTableMetaPos存储的value值发生了变化最终导致分析sql时读取表信息是出现错位的情况。
将taosArrayInsert修改为taosArraySet (需要在taosArrayInit后设置size,需要在sqlTableNum基础上加1)后问题不在,项目中还有一些地方使用了taosArrayInsert,不知道是否还会有这种类似的错误使用场景。
(注: 如有理解不对的地方还请原谅并指出)