-
Notifications
You must be signed in to change notification settings - Fork 3.7k
Closed
Labels
Description
Describe the bug
- RangePartitionPruner的裁剪结果不合预期。
- The result of RangePartitionPruner is not as expected.
To Reproduce
- 创建一张拥有多列Range分区(>=3列)的表,
- 插入一条数据
- 查看执行计划,主要涉及 > 和 >= 操作符。可以看到分区已命中
Expected behavior
- 预期应该不会命中任何分区,即partitions=0/1
Additional context
- 主要原因是:以 a>0 作为过滤条件时,实际上是生成了区间 ( ('0'), (+∞) ) ;以 a>=0 作为过滤条件时,实际上生成了 [ ('0', -∞), (+∞) ) ;以 a=0 作为过滤条件时,实际上生成了[ ('0', -∞), ('0', +∞) ].
- 可以看到,原来代码的逻辑只会帮忙补充一次无穷值,而不是补全至末尾。由于它们的下界的size更小,在大小比较时会小于元组('0', -∞, -∞),因此与某个分区产生了交集。
EmmyMiao87




