zclllyybb opened a new issue, #53987: URL: https://github.com/apache/doris/issues/53987
### Search before asking - [x] I had searched in the [issues](https://github.com/apache/doris/issues?q=is%3Aissue) and found no similar issues. ### Description see https://doris.apache.org/zh-CN/docs/dev/table-design/data-partitioning/auto-partitioning for our auto partition function now. and in future we need to support arbitrary list expression partitoin. that is, `partition by list (x, y, z)` which `x`, `y`, `z` are all any expression which could be constant-folded in FE with exactly one column each one. ### Solution 1. you need to support relative parse rules in nereids. it's in `DorisParser.g4`. 2. you need to remove all restriction of expressions in partitionExprs. 3. you need to make sure it's could be passed to BE and calculated in it. in `vrow_distribution.cpp`, around `part_funcs[i]->execute`. 4. make sure partition prune could process it proper. if we change a range auto partition to list expression partition, the prune result should be as excellent as it. In nereids, the key of partition prune is in `PartitionPruner.java`. you should read it and understand its details completely. the key function is `canBePrunedOut`. ### Are you willing to submit PR? - [ ] Yes I am willing to submit a PR! ### Code of Conduct - [x] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
