对分区的MySQL表的特定分区运行查询

Bar*_*acs 5 ecto

我想Ecto.Query.from在分区的MySQL表的特定分区上运行我.

示例表:

CREATE TABLE `dogs` (
  `dog_id` bigint(20) unsigned NOT NULL,
   ...
  PRIMARY KEY (`dog_id`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8
/*!50100 PARTITION BY HASH (dog_id)
PARTITIONS 10 */ 
Run Code Online (Sandbox Code Playgroud)

我希望实现的理想主义查询:

from(i in dogs, select: i.dog_id, partition: "p1")

上面的内容不起作用,所以我通过将查询转换为字符串Ecto.Adapters.SQL.to_sql并对其进行编辑实现了这 一点.

... <> "PARTITION (#{partition}) AS" <> ...

这感觉很糟糕,它可能会破坏未来的版本,有没有办法用Ecto实现这一目标?