Github user paul-rogers commented on a diff in the pull request:
https://github.com/apache/drill/pull/1045#discussion_r156176534
--- Diff:
contrib/storage-jdbc/src/main/java/org/apache/drill/exec/store/jdbc/JdbcBatchCreator.java
---
@@ -33,10 +32,10 @@
public class JdbcBatchCreator implements BatchCreator<JdbcSubScan> {
@Override
public ScanBatch getBatch(FragmentContext context, JdbcSubScan config,
- List<RecordBatch> children) throws ExecutionSetupException {
+ List<RecordBatch> children) throws
ExecutionSetupException {
Preconditions.checkArgument(children.isEmpty());
JdbcStoragePlugin plugin = config.getPlugin();
- RecordReader reader = new JdbcRecordReader(context,
plugin.getSource(), config.getSql(), plugin.getName());
+ RecordReader reader = new JdbcRecordReader(plugin.getSource(),
config.getSql(), plugin.getName());
--- End diff --
For readers that don't need the fragment context, it is certainly helpful,
for unit testing, to omit it. However, operator context seems fair game. The
operator context provides the Drill file system, the physical operator
definition (the "config" here) and so on. Unfortunately, it is created inside
the `ScanBatch`, to late to pass to the reader constructor.
The new scan framework from the "batch size" project addresses these
issues; but only for those few readers that we choose to upgrade; most readers
will continue to use the changes you are making here.
One other point: in an earlier file, you removed the physical operator
definition (AKA "POP config") from the `ScanBatch` constructor. Here you leave
it. Will this cause unexpected modes in which sometimes the operator definition
is available, other times not?
---