您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何在Calcite中将项目,过滤,聚合下推到TableScan

如何在Calcite中将项目,过滤,聚合下推到TableScan

创建新产品RelOptRule是必经之路。请注意,您不应该尝试直接删除规则内的任何节点。而是,您匹配一个包含要替换的节点的子树(例如,位于Filter顶部的TableScan)。然后,将整个子树替换为等效节点,从而将过滤器下推。

这通常通过创建相关操作的子类来处理,该子类符合特定适配器的调用约定。例如,在Cassandra适配器中,有一个CassandraFilterRule与匹配LogicalFilterCassandraTableScanconvert然后,该函数构造一个CassandraFilter实例。该CassandraFilter实例设置了必要的信息,以便在实际发出查询时,过滤器可用。

浏览Cassandra,MongoDB或Elasticsearch适配器的某些代码可能会有所帮助,因为它们比较简单。我也建议将其添加邮件列表中,因为您可能会在此处获得更详细的建议。

其他 2022/1/1 18:25:15 有446人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶