embulk / embulk/embulk-filter-calcite

Raise the `java.lang.NullPointerException` exception if `-l debug` option

Open
#47 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
13
Forks
5
PR merge metrics
No merged PRs in 30d

Description

embulk-filter-calcite raise the `java.lang.NullPointerException` exception if `-l debug` option used.

Reported-by: @joker1007

* OS: macOS 10.15.7
* Embulk: 0.9.23
* Java: 1.8.0_251

## Reproduce steps

```
embulk example hoge
embulk guess hoge/seed.yml -o config.yml
```

Add calcite config

```yaml
filters:
- type: calcite
query: 'select * from $PAGES'
```

without debug option

```
embulk run config.yml
1,32864,2015-01-27 19:23:49,2015-01-27 00:00:00,embulk
2,14824,2015-01-27 19:01:23,2015-01-27 00:00:00,embulk jruby
3,27559,2015-01-28 02:20:02,2015-01-28 00:00:00,Embulk "csv" parser plugin
4,11270,2015-01-29 11:54:36,2015-01-29 00:00:00,
```

```
embulk run -l debug config.yml
```

```
2020-12-04 18:36:09.595 +0900 [DEBUG] (0001:transaction): Plan after converting SqlNode to RelNode
LogicalProject(id=[$0], account=[$1], time=[$2], purchase=[$3], comment=[$4])
LogicalTableScan(table=[[page, $PAGES]])

2020-12-04 18:36:09.617 +0900 [DEBUG] (0001:transaction): Plan after trimming unused fields
LogicalProject(id=[$0], account=[$1], time=[$2], purchase=[$3], comment=[$4])
LogicalTableScan(table=[[page, $PAGES]])

2020-12-04 18:36:09.618 +0900 [DEBUG] (0001:transaction): Plan after trimming unused fields
LogicalProject(id=[$0], account=[$1], time=[$2], purchase=[$3], comment=[$4])
LogicalTableScan(table=[[page, $PAGES]])

2020-12-04 18:36:09.639 +0900 [DEBUG] (0001:transaction): For final plan, using rel#4:LogicalProject.NONE.[](input=HepRelVertex#3,id=$0,account=$1,time=$2,purchase=$3,comment=$4)
2020-12-04 18:36:09.639 +0900 [DEBUG] (0001:transaction): For final plan, using rel#0:LogicalTableScan.NONE.[](table=[page, $PAGES])
2020-12-04 18:36:09.640 +0900 [DEBUG] (0001:transaction): Plan after trimming unused fields
LogicalProject(id=[$0], account=[$1], time=[$2], purchase=[$3], comment=[$4])
LogicalTableScan(table=[[page, $PAGES]])

org.embulk.exec.PartialExecutionException: org.embulk.config.ConfigException: Cannot execute a query: select * from $PAGES
at org.embulk.exec.BulkLoader$LoaderState.buildPartialExecuteException(BulkLoader.java:340)
at org.embulk.exec.BulkLoader.doRun(BulkLoader.java:566)
at org.embulk.exec.BulkLoader.access$000(BulkLoader.java:35)
at org.embulk.exec.BulkLoader$1.run(BulkLoader.java:353)
at org.embulk.exec.BulkLoader$1.run(BulkLoader.java:350)
at org.embulk.spi.Exec.doWith(Exec.java:22)
at org.embulk.exec.BulkLoader.run(BulkLoader.java:350)
at org.embulk.EmbulkEmbed.run(EmbulkEmbed.java:242)
at org.embulk.EmbulkRunner.runInternal(EmbulkRunner.java:291)
at org.embulk.EmbulkRunner.run(EmbulkRunner.java:155)
at org.embulk.cli.EmbulkRun.runSubcommand(EmbulkRun.java:431)
at org.embulk.cli.EmbulkRun.run(EmbulkRun.java:90)
at org.embulk.cli.Main.main(Main.java:64)
Suppressed: java.lang.NullPointerException
at org.embulk.exec.BulkLoader.doCleanup(BulkLoader.java:463)
at org.embulk.exec.BulkLoader$3.run(BulkLoader.java:397)
at org.embulk.exec.BulkLoader$3.run(BulkLoader.java:394)
at org.embulk.spi.Exec.doWith(Exec.java:22)
at org.embulk.exec.BulkLoader.cleanup(BulkLoader.java:394)
at org.embulk.EmbulkEmbed.run(EmbulkEmbed.java:245)
... 5 more
Caused by: org.embulk.config.ConfigException: Cannot execute a query: select * from $PAGES
at org.embulk.filter.calcite.CalciteFilterPlugin.executeQuery(CalciteFilterPlugin.java:178)
at org.embulk.filter.calcite.CalciteFilterPlugin.getQuerySchema(CalciteFilterPlugin.java:150)
at org.embulk.filter.calcite.CalciteFilterPlugin.transaction(CalciteFilterPlugin.java:72)
at org.embulk.spi.util.Filters$RecursiveControl.transaction(Filters.java:76)
at org.embulk.spi.util.Filters.transaction(Filters.java:42)
at org.embulk.exec.BulkLoader$4.run(BulkLoader.java:511)
at org.embulk.spi.FileInputRunner$RunnerControl$1$1.run(FileInputRunner.java:112)
at org.embulk.standards.CsvParserPlugin.transaction(CsvParserPlugin.java:237)
at org.embulk.spi.FileInputRunner$RunnerControl$1.run(FileInputRunner.java:107)
at org.embulk.spi.util.Decoders$RecursiveControl.transaction(Decoders.java:68)
at org.embulk.spi.util.Decoders$RecursiveControl$1.run(Decoders.java:64)
at org.embulk.standards.GzipFileDecoderPlugin.transaction(GzipFileDecoderPlugin.java:25)
at org.embulk.spi.util.Decoders$RecursiveControl.transaction(Decoders.java:60)
at org.embulk.spi.util.Decoders.transaction(Decoders.java:29)
at org.embulk.spi.FileInputRunner$RunnerControl.run(FileInputRunner.java:105)
at org.embulk.standards.LocalFileInputPlugin.resume(LocalFileInputPlugin.java:79)
at org.embulk.standards.LocalFileInputPlugin.transaction(LocalFileInputPlugin.java:72)
at org.embulk.spi.FileInputRunner.transaction(FileInputRunner.java:62)
at org.embulk.exec.BulkLoader.doRun(BulkLoader.java:507)
... 11 more
Caused by: java.sql.SQLException: Error while executing SQL "select * from $PAGES": null
at org.apache.calcite.avatica.Helper.createException(Helper.java:56)
at org.apache.calcite.avatica.Helper.createException(Helper.java:41)
at org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:156)
at org.apache.calcite.avatica.AvaticaStatement.executeQuery(AvaticaStatement.java:218)
at org.embulk.filter.calcite.CalciteFilterPlugin.executeQuery(CalciteFilterPlugin.java:176)
... 29 more
Caused by: java.lang.NullPointerException
at org.apache.calcite.plan.volcano.VolcanoPlanner.validate(VolcanoPlanner.java:891)
at org.apache.calcite.plan.volcano.VolcanoPlanner.register(VolcanoPlanner.java:866)
at org.apache.calcite.plan.volcano.VolcanoPlanner.ensureRegistered(VolcanoPlanner.java:883)
at org.apache.calcite.plan.volcano.VolcanoPlanner.ensureRegistered(VolcanoPlanner.java:101)
at org.apache.calcite.rel.AbstractRelNode.onRegister(AbstractRelNode.java:336)
at org.apache.calcite.plan.volcano.VolcanoPlanner.registerImpl(VolcanoPlanner.java:1496)
at org.apache.calcite.plan.volcano.VolcanoPlanner.setRoot(VolcanoPlanner.java:308)
at org.apache.calcite.tools.Programs$5.run(Programs.java:309)
at org.apache.calcite.tools.Programs$SequenceProgram.run(Programs.java:387)
at org.apache.calcite.prepare.Prepare.optimize(Prepare.java:186)
at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:319)
at org.apache.calcite.prepare.Prepare.prepareSql(Prepare.java:228)
at org.apache.calcite.prepare.CalcitePrepareImpl.prepare2_(CalcitePrepareImpl.java:784)
at org.apache.calcite.prepare.CalcitePrepareImpl.prepare_(CalcitePrepareImpl.java:639)
at org.apache.calcite.prepare.CalcitePrepareImpl.prepareSql(CalcitePrepareImpl.java:609)
at org.apache.calcite.jdbc.CalciteConnectionImpl.parseQuery(CalciteConnectionImpl.java:214)
at org.apache.calcite.jdbc.CalciteMetaImpl.prepareAndExecute(CalciteMetaImpl.java:603)
at org.apache.calcite.avatica.AvaticaConnection.prepareAndExecuteInternal(AvaticaConnection.java:638)
at org.apache.calcite.avatica.AvaticaStatement.executeInternal(AvaticaStatement.java:149)
... 31 more

Error: org.embulk.config.ConfigException: Cannot execute a query: select * from $PAGES
```

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.