对分区表建立的异步物化视图如果不包含分区字段将无法命中

【StarRocks版本】3.1.2

【集群规模】1fe(1 follower+1observer)+5be

问题详细描述:

为一张分区表建立物化视图,如果物化视图不包含分区字段,那么即便是原始查询语句没有分区字段的过滤,也会无法改写查询到物化视图上.

个人排查原因是因为,原始语句在对分区表进行查询时,即便没有任何过滤条件,也会为其默认加上分区的PREDICATES.

例子:
建表语句:create_table.sql (2.7 KB)
物化视图建立语句:mv_sql.sql (229 字节)
查询语句:
select
count(1)
from
(
select
1
from
test_table
group by
platform_name,
shop_name,
category_cnname1,
category_cnname3 ) as t

语句中没有增加任何条件查询,但是由于分区表的缘故,会默认加上
image
怀疑这是导致物化视图不添加分区字段就无法命中的原因

如果这样的话,那么物化视图建立的限制就很大,一些不依赖分区字段过滤的全表聚合查询,计算筛选项的语句都无法用上,我们还蛮多这种SQL的

没人能解答吗???

或者说基表是基于天分区的, 但是物化视图我想要的粒度是年份的, 那么因为这个过滤条件总被强行添加, 我必须将天粒度(分区字段)建入到物化视图中,我永远无法建立出年粒度的计算好的结果了

这是执行计划中看到的?我用咱们建表语句在3.1.3上测试没发现这个问题

另外这个客户问题,物化视图完全可以基于start_date创建年分区粒度的物化视图即可

在最新的main分支上测试可以正常work;
先执行refresh materialized view mv_test 后试试