分页查询SQL Bug

版本:社区版2.0.1

表结构
CREATE TABLE audit_project (
RowGuid varchar(65533) NOT NULL COMMENT “”,
APPLYDATE datetime NULL COMMENT “”,
AREACODE varchar(65533) NULL COMMENT “”
) ENGINE=OLAP
PRIMARY KEY(RowGuid)
COMMENT “OLAP”
DISTRIBUTED BY HASH(RowGuid) BUCKETS 32
PROPERTIES (
“replication_num” = “1”,
“in_memory” = “false”,
“storage_format” = “DEFAULT”
);

SQL:select * from audit_project where rowguid in (select rowguid from audit_project where 1=1 and areacode=‘210101’ order by applydate desc limit 10) order by applydate desc;

注释:原本的select * from 表 limit 性能非常差,因此想改写用子查询的方式优化,但是发现这么写sql结果集不对,貌似是个随机的值?并不是固定的值,理论上子查询里的结果集是固定的,那么外表的结果集也是固定的。用join的写法测试是正确的。

profile:
Query:
Summary:
- Query ID: 05d36bc6-87fd-11ec-a276-1c1b0d756fa2
- Start Time: 2022-02-07 18:02:13
- End Time: 2022-02-07 18:02:13
- Total: 6ms
- Query Type: Query
- Query State: EOF
- StarRocks Version: 2.0.1
- User: root
- Default Db: default_cluster:test
- Sql Statement: explain select * from audit_project where rowguid in (select rowguid from audit_project where 1=1 and areacode=‘210101’ order by applydate desc limit 10) order by applydate desc

profile.sql (467 字节)

辛苦发下两次不同的结果集

你好,已经提了issue,后续可以关注下https://github.com/StarRocks/starrocks/issues/3221