cbo_eq_base_type参数不起作用

【StarRocks版本】3.2.4
set cbo_eq_base_type=‘Decimal’; 不起作用。 大佬们帮忙看看
(none)> select current_version();
±------------------+
| current_version() |
±------------------+
| 3.2.4-613f0b5 |
±------------------+
1 row in set (0.03 sec)
18:03:52 sr_test> desc sr_tb;
±---------±---------------±-----±------±--------±------+
| Field | Type | Null | Key | Default | Extra |
±---------±---------------±-----±------±--------±------+
| name | varchar(255) | YES | true | NULL | |
| addr | varchar(255) | YES | true | NULL | |
| dt | date | YES | false | NULL | |
| value | decimal(18,2) | YES | false | NULL | |
| str_test | varchar(65533) | YES | false | NULL | |
±---------±---------------±-----±------±--------±------+
5 rows in set (0.01 sec)

18:04:06 sr_test> set cbo_eq_base_type=‘Decimal’;
Query OK, 0 rows affected (0.00 sec)

18:04:13 sr_test> select value>str_test x1,str_test<value x2 ,a.* from sr_tb as a where dt=‘2024-04-22’;
±-----±-----±-----±-----±-----------±------±---------+
| x1 | x2 | name | addr | dt | value | str_test |
±-----±-----±-----±-----±-----------±------±---------+
| 1 | 1 | u1 | 0 | 2024-04-22 | 0.00 | 0 |
±-----±-----±-----±-----±-----------±------±---------+
1 row in set (0.06 sec)

18:04:17 sr_test> explain select value>str_test x1,str_test<value x2 ,a.* from sr_tb as a where dt=‘2024-04-22’;
±-------------------------------------------------------------------------------------+
| Explain String |
±-------------------------------------------------------------------------------------+
| PLAN FRAGMENT 0 |
| OUTPUT EXPRS:6: expr | 7: expr | 1: name | 2: addr | 3: dt | 4: value | 5: str_test |
| PARTITION: UNPARTITIONED |
| |
| RESULT SINK |
| |
| 2:EXCHANGE |
| |
| PLAN FRAGMENT 1 |
| OUTPUT EXPRS: |
| PARTITION: RANDOM |
| |
| STREAM DATA SINK |
| EXCHANGE ID: 02 |
| UNPARTITIONED |
| |
| 1:Project |
| | <slot 1> : 1: name |
| | <slot 2> : 2: addr |
| | <slot 3> : 3: dt |
| | <slot 4> : 4: value |
| | <slot 5> : 5: str_test |
| | <slot 6> : 8: cast > 5: str_test |
| | <slot 7> : 5: str_test < 8: cast |
| | common expressions: |
| | <slot 8> : CAST(4: value AS VARCHAR(65533)) |
| | |
| 0:OlapScanNode |
| TABLE: sr_tb |
| PREAGGREGATION: OFF. Reason: None aggregate function |
| PREDICATES: 3: dt = ‘2024-04-22’ |
| partitions=1/1 |
| rollup: sr_tb |
| tabletRatio=3/3 |
| tabletList=13065,13067,13069 |
| cardinality=3 |
| avgRowSize=8.833333 |
±-------------------------------------------------------------------------------------+
37 rows in set (0.02 sec)

该问题已修复,需要等 3.2.7 版本

好的 谢谢, 3.2.7 大概什么时候发布 ?

确认了下,cbo_eq_base_type 这个开关只控制 = 和 != 的行为,大于小于不会控制,如果要跟varchar类型对比,需要sql中转换一下 cast(string as double)

另外修复pr涉及到行为变更,暂时不合入3.2,应该会合入在3.3上

好的谢谢!

3.1版本还会进行修复嘛

你好 这个问题当前不会往3.1、3.2合入了 做了改动怕有冲突 您如果有需求可以先用 cast(string as double)

转换做一下规避处理

好的,谢谢