我正在使用Apache Calcite来实现分布式OLAP系统,该数据源是RDBMS。所以我想将RelNode树中的项目/过滤器/聚合下推到MyTableScan extends TableScan。在MyTableScan中,是获取推送的RelBuilder的RelNode。最后,使用RelBuilder生成对源数据库的查询。同时,应移动或修改原始RelNode树中的项目/过滤器/聚合。 据我所知,方解石不支持此功能。 Current limitations: The JDBC adapter currently…

2020年11月5日 0条评论 25点热度 阅读全文

我想创建一个RexNode,以所需的格式转换日期字段。下面是等效的SQL SELECT CONVERT(varchar(12),“ DATE_FIELD”,101)-06/29/2009 我过去两天一直在努力在方解石API中找到它。请帮我解决一下这个。 解决方案如下: 我已经使用自定义的Sql运算符解决了该问题。 public static SqlOperator getConvertOperator () { return new SqlFunction(CONVERT_FUNCTION, SqlKind.OTH…

2020年10月27日 0条评论 48点热度 阅读全文

我正在尝试使用Calcite Avatica JDBC驱动程序通过Spring Boot项目调用示例Druid数据库。遵循大多数示例,我设计了此查询,如果我传递new Object[] { cityName },它将引发异常。但是,如果我通过Object[] {},则不会得到相同的异常。 String cityName = "Aachen"; results = jdbcTemplate.query("SELECT cityName, countryName FROM wikipedia WHERE cityNam…

2019年8月10日 0条评论 48点热度 阅读全文

我需要将所有表名和列名转换为SQL查询中的另一个名称,该名称将以字符串形式出现,而我必须使用Calcite SQL解析器来完成。我只知道我必须实现访问者接口,但是我不知道如何实现。请帮助我,并给我一些基本信息。 很抱歉问到这样的基本问题,但是我浏览了Calcite sqlparser的文档,却不知道该怎么做,并且它上的教程很少。 解决方案如下: 我在github上得到了这段代码,它有帮助,它显示了对树的基本操作,例如获取表名和列名 github code some more examples of calcite …

2019年7月6日 0条评论 28点热度 阅读全文

我正在使用Apache Calcite从Excel中读取数据。Excel具有带有以下字段的“薪金”表 整数编号整数emp_id整数工资 我有以下model.json { "version": "1.0", "defaultSchema": "excelSchema", "schemas": [{ "name" : "excelSchema", "type": "custom", "factory": "com.syncnicia.testbais.excel.ExcelSchemaFactory", "operan…

2019年6月9日 0条评论 25点热度 阅读全文