TDengine icon indicating copy to clipboard operation
TDengine copied to clipboard

last_row return wrong result

Open zhujiaxin opened this issue 1 year ago • 5 comments

General Questions A general question should be related to TDengine's user's manual, user experience, milestones, business cooperations etc. 根据issue295issue293 查询超级表下属子表的值只需要使用last_row关键字。但是我测试过程中出现了last_row返回的数据不正确的问题。 测试的过程如下 使用表名的最后四位作为小数,时间戳的毫秒作为整数生成数值,对应的时间作为时间写入到数据库中。 当我使用last_row关键字进行查询的时候发现数据居然和我生成的规则不一致,比如时间为2024-02-08 16:53:27.817表名为abcdefghijklmnopqrstuvwxyzabc0147的数据,按照生成逻辑应该是817.147,实际查询也是这样。 不过使用last_row关键字进行查询的时候可能就会出现时间与数值的逻辑不对应的结果。这里是对应的截图,子表和超级表查询都会出现这个问题。 image image 补充: 我的集群有三台4C8G虚拟机 taos版本是3.2.2.0 使用的是springboot进行插入,可能会有多线程写入的可能。 建库语句create database kkstable CACHEMODEL 'last_row' DURATION 30 WAL_FSYNC_PERIOD 60000 KEEP 3650 REPLICA 1 VGROUPS 3 STT_TRIGGER 1 建表语句create stable kkstable.kksstable (ts timestamp,current float) TAGS (kks binary(33));

zhujiaxin avatar Feb 08 '24 09:02 zhujiaxin

测试过程中使用last_row关键字进行查询发现current字段数值不变,ts字段一直在变。

zhujiaxin avatar Feb 08 '24 09:02 zhujiaxin

把缓存模式从last_row改为了last_value就处理了,不知道是不是说明理解不清晰。

zhujiaxin avatar Feb 16 '24 14:02 zhujiaxin

看起来像bug

可以加我微信远程排查一下

a15652223354

yu285 avatar Feb 17 '24 08:02 yu285

https://github.com/zhujiaxin/tdengine-24754-reproduce

复现仓库已创建。

zhujiaxin avatar Feb 17 '24 11:02 zhujiaxin

看起来像bug

可以加我微信远程排查一下

a15652223354

已经添加了,貌似只有float类型的数据才会出这个问题~

zhujiaxin avatar Feb 17 '24 11:02 zhujiaxin

碰到类似的问题,last_row存储的数据不会被删掉,即使数据过期被全部删除之后,执行select count(*)结果返回0,last_row模式还是会显示最后一条数据。

jandison avatar Feb 18 '24 07:02 jandison