ApacheCalcite在执行查询时抛出异常(SchemaPlus.getSubSchema返回null)
创始人
2024-09-05 13:00:56
0

该问题是由于SchemaPlus.getSubSchema方法返回null而导致的。出现该问题的原因是Calcite在执行查询时需要从一个或多个模式中检索表。如果SchemaPlus中没有子模式,则会触发该异常。

解决方法是在SchemaPlus中添加一个子模式,以确保在执行查询时不会出现null返回值。以下是一个简单的示例:

public class MySchema extends AbstractSchema {

private final Map tables = new HashMap<>();

public MySchema() {
  super();
}

@Override
protected Map getTableMap() {
  return tables;
}

public void addTable(Table table) {
  tables.put(table.getName(), table);
}

}

// ...

MySchema mySchema = new MySchema(); Table myTable = new CsvTable.Factory().create(mySchema, mapOf("file", "my_table.csv")); mySchema.addTable(myTable);

FrameworkConfig config = Frameworks.newConfigBuilder() .defaultSchema(mySchema).build(); SchemaPlus rootSchema = Frameworks.createRootSchema(true); rootSchema.add("my_schema", mySchema);

WithStatement with = parseQuery("SELECT * FROM my_schema.my_table"); Planner planner = Frameworks.getPlanner(config); RelOptCluster cluster = RelOptCluster.create(planner.getContext(), new RexBuilder()); SqlValidator validator = planner.getValidator(); SqlNode validated = validator.validate(with.getQuery()); SqlToRelConverter converter = planner.getSqlToRelConverter(); RelRoot relRoot = converter.convertQuery(validated, true, false); // ...

相关内容

热门资讯

科普常识!德州俱乐部俱乐部系统... 科普常识!德州俱乐部俱乐部系统(wpk盈利)外挂透视辅助神器(辅助挂)实用技巧(2024已更新)(哔...
科普常识(德扑安卓)外挂透明挂... 科普常识(德扑安卓)外挂透明挂辅助工具(辅助挂)解密教程(2025已更新)(哔哩哔哩);亲真的是有正...
9分钟了解!财神13张辅助有教... 9分钟了解!财神13张辅助有教程(辅助挂)外挂透视辅助app(2024已更新)(哔哩哔哩)1、让任何...
4分钟了解!轰趴大菠萝怎么提高... 您好,轰趴大菠萝这款游戏可以开挂的,确实是有挂的,需要了解加微【439369440】很多玩家在这款游...
玩家交流(菠萝德州)外挂透明挂... 玩家交流(菠萝德州)外挂透明挂辅助神器(辅助挂)wpk教程(2022已更新)(哔哩哔哩);免费菠萝德...
教学盘点!wpk辅助器是真的,... 教学盘点!wpk辅助器是真的,智星德州菠萝原来是真的有挂,攻略教程(有挂透明)-哔哩哔哩;精心打造了...
九分钟科普!乐太坊有挂,全民牛... 九分钟科普!乐太坊有挂,全民牛牛辅牌器购买,2024新版教程(有挂存在)是一款可以让一直输的玩家,快...
透视科技!德扑之星是什么机制(... 透视科技!德扑之星是什么机制(辅助挂)其实真的有挂2025已更新)(哔哩哔哩)1、这是跨平台的德扑之...
透视能赢!weopke真的,W... 透视能赢!weopke真的,Wepoke新更新原来是真的有挂,解密教程(有挂攻略)-哔哩哔哩,亲,有...
今日焦点(wepOkE)软件透... 今日焦点(wepOkE)软件透明挂辅助器(透视)软件透明挂(2024已更新)(哔哩哔哩);wepOk...