tikv-client mysqllexer语法解析出现的问题

我现在用的是tikv-client是来自tispark下面的 目前发现一个问题 能帮我解答下吗

为什么这里识别scalarFunction 只识别到了year函数呢 我用别的函数解析完返回NULL 请问这是个什么问题呢?

这里的代码是为了分区表过滤而实现的,由于分区表可能涉及的函数很多,目前仅支持表达式及 YEAR 函数过滤。过滤的功能由于仅影响不同函数时的查询性能,所以目前还未完成。如果有兴趣跟进的话可以一起讨论。

举例:

CREATE TABLE `t` (
  `id` int(11) DEFAULT NULL,
  `name` varchar(50) DEFAULT NULL,
  `purchased` date DEFAULT NULL,
  index `idx_id`(`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin
PARTITION BY RANGE (year(purchased)) (
  PARTITION p0 VALUES LESS THAN (1995),
  PARTITION p1 VALUES LESS THAN (2000),
  PARTITION p2 VALUES LESS THAN (2005),
  PARTITION p3 VALUES LESS THAN (MAXVALUE)
)

对于查询 select * from t where purchased = date'1994-10-10' 应仅命中 partition p0

如果有其他问题,欢迎在 AskTUG 上提问,你也可以:

  1. TiKV 社区TiDB 社区 的 Slack 或微信群中交流讨论
  2. 加入 Ecosystem SIG 详细讨论

查看 代码资料指引