Closed
Description
Development Task
Now enum type data can only be calculated on the tidb side. So if a filter condition using enum type data, it can't push down.
We can support enum date calculation in TiKV, and push down the condition to filter data close to storage, to reduce network and computing pressure.
Task
- Support Enum expression calculation in TiKV copr: Roadmap to chunk-based Enum/Set support in TiKV tikv/tikv#9066
- Support Enum aggregate calculation in TiKV copr: Roadmap to chunk-based Enum/Set support in TiKV tikv/tikv#9066
- Support Enum type index calculation range and using IndexRangeScan. planner, expression: support enum index scan #22691
- Add an option to control this feature. *: add option for enum push down #24685
- Test
- Use randgen to test Enum aggregate. https://github.com/pingcap/tidb-test/pull/1191
- Use randgen to test Enum expression. https://github.com/pingcap/tidb-test/pull/1191
- Regression existing tests https://github.com/pingcap/tidb-test/pull/1194
- Fix all find bugs.
- tikv crash: Cannot compare two ScalarValueRef in different type #24395
- query result is incorrect while enum pushdown to tikv #24419
- Incompatible with MySQL when using expressions returning enum as WHERE conditions #23114
- copr: tikv crash when elt enum type #24479
- The function of if with enum type is not same with mysql #24494 duplicated
- enum type query result is incorrect while using
xxx_ci
collation #24530 - If fucntion can't process enum type. #24543
- Unexpected ExprType MysqlEnum and EvalType Bytes #24561
- batch point get for enum type get wrong result #24562
-
is not null
for enum type with other condition got wrong result #24576 - inner join for enum type got wrong result #24587 duplicated
- The result of inl_merge_join with the enum type join column is wrong #24473